2

Fortran 90 コードで MRQMIN サブルーチンを使用する必要があります。このサブルーチン内には、いくつかの他のモジュールnrtype.90nrutil.f90ありnr.f90ます。これらすべてのモジュールと独自のコードをこれらのコマンドでコンパイルしています

ifort -c nrtype.90  
ifort -c nrutil.f90  
ifort -c nr.f90    
ifort test.f90 nrtype.o nrutil.o nr.o -o test 

しかし、私はこのエラーを受け取っています

/tmp/ifortcx4Tb3.o: In function `mrqmin_IP_mrqmin_private_':  
   test.f90:(.text+0x4041): undefined reference to `gaussj_'  
   test.f90:(.text+0x4896): undefined reference to `covsrt_'     
   test.f90:(.text+0x48a5): undefined reference to `covsrt_' 

コンパイル中に何かが欠けていますか?

4

1 に答える 1

3

nr.f90サブルーチン自体ではなく、サブルーチンへのインターフェイスのみを提供します。

コンパイルgaussj.f90してcovsrt.f90個別に指定する必要があります(試してみましたgfortranが、同様に動作するはずですifort):

gfortran -c gaussj.f90
gfortran -c covsrt.f90
gfortran test.f90 mrqmin.o nr.o nrtype.o nrutil.o gaussj.o covsrt.o
于 2013-10-18T12:33:52.550 に答える