У меня есть функции blas/lapack, которые я получил с веб-сайта NETLIB. Я хотел бы включить эти функции в модуль Fortran. Остальная часть моего кода в Fortran 90. Так что я идти об этом:Модули и устаревшие коды Fortran 77
module modname
contains
double precision function ddot(n,dx,incx,dy,incy)
.
.
.
end function
subroutine dpofa(a,lda,n,info)
.
.
double precision ddot
.
end subroutine dopfa
end module
Когда я компилирую с помощью
gfortran modname.f90
Я получаю следующее сообщение об ошибке:
/tmp/ccC2EUFj.o: In function
__temp_MOD_dpofa': temp.f90:(.text+0x11c): undefined reference to
ddot_'
Я игнорируя ошибку около Undefined reference to main
, я понимаю, что это происходит, потому что у меня нет программных программных программ в файле.
Если, однако, я удаляю строки с module modname
, contains
и end module
компилятор компилируется без каких-либо проблем.
В чем может быть проблема?
Вы должны сообщить gfortran о связи с математическими библиотеками, например: '-llapack -lblas' –
У меня есть исходный код в модуле. Я не понимаю, зачем мне связываться с lapack/blas – mod0