Я пытаюсь использовать CERNLIB, в частности, для начала, функцию B100 (RBINOM). Я использую очень простой код Fortran, который будет использовать функцию DBINOM, предоставленную CERNLIB для вычисления биномиального коэффициента.
Проблема возникает при попытке получить доступ к самой функции. Этот конкретный файл должен быть в libmathlib от CERNLIB, но я не могу получить к нему доступ. Я пробовал разные команды, но ни одна из них, похоже, не работает
Мой код Fortran выглядит следующим образом:
IMPLICIT NONE
INTEGER X,K
DOUBLE PRECISION ANS
DOUBLE PRECISION DBINOM
X = 4
K = 1
ANS = DBINOM(X,K)
WRITE(6,*) 'ANS = ',ANS
END
А затем, чтобы скомпилировать его, я использую:
gfortran -o exemple.exe exemple.f -lmathlib
он компилируется, но дает бессмысленный результат, как будто он не идентифицирует какую-либо функцию там. Например, в нем говорится, что биномиальный коэффициент от 3 до 1 имеет порядок 10 ^ -314.
Если я теперь вручную добавлю библиотеку:
gfortran -o exemple.exe exemple.f libmathlib.a -lmathlib
, это даст следующий вывод:
/usr/bin/ld: libmathlib.a(binom64.o): undefined reference to symbol 'mtlprt_'
//usr/lib/x86_64-linux-gnu/libpacklib.so.1_gfortran: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
, поэтому я не уверен, как получить доступ к функциям в CERNLIB, чтобы использовать их в моем коде. У кого-нибудь есть идея или можно привести пример?
Спасибо!
Л.