私はFortranを初めて使用するので、これは簡単な質問かもしれませんが、SOに関する同様の投稿を調べても機能する解決策は見つかりませんでした。
私の問題は、srft.f95で定義されたモジュールsrftModuleを使用するtestsrft.f95でメインプログラムをコンパイルしようとすると、
gfortran -c dfft.f
gfortran -c srft.f95
gfortran -c testsrft.f95
gfortran dfft.o srft.o testsrft.o -o testsrft
(srftModuleのサブルーチンにはdfft.fのFortran77コードが必要です)、リンカーエラーが発生します
testsrftF.o: In function `MAIN__':
testsrftF.f95:(.text+0x98): undefined reference to `fftofmat_'
collect2: ld returned 1 exit status
モジュールは次のように定義されています
module srftModule
implicit none
contains
... (some subroutines)
subroutine fftofmat(A)
implicit none
real*8, dimension(:, :), intent(inout) :: A
...
end subroutine fftofmat
... (some more subroutines)
end module srftModule
そして私のメインファイルには、
program testsrft
use srftModule
implicit none
...(code to initialize a 10x10 matrix A)
call fftofmat(A)
end program testsrft
リンカが文句を言うのはなぜですか?