2017-12-28 20 views
0

Math Kernel Library(mkl)を初めて使用しました。私はLAPACK(MKLに付属)のシステムの線形方程式ソルバー(gesvルーチン)を使用するプログラムを持っています。私は既にMKL(インテル®Parallel Studio XE)をコンピュータにインストールしています。コードのコンパイル/リンクに問題があります。Fortranプログラムで-mkl Lapackルーチンを使用する

ifort -mkl matrixinv.f90 

はしかし、それは

/tmp/ifortjcXZTm.o: In function `MAIN__': 
matrixinv.f90:(.text+0xdf): undefined reference to `gesv_' 

コードはおそらく外部とgesv宣言したい

PROGRAM matrixinv 
IMPLICIT NONE 
REAL(8),DIMENSION(3,3)::A,C 
INTEGER(4),DIMENSION(3)::IPVT 
REAL(8)::RCOND 
REAL(8),DIMENSION(3)::V,B 
A(1,1)=3.0_8 
A(1,2)=2.0_8 
A(1,3)=-1.0_8 
A(2,1)=2.0_8 
A(2,2)=-2.0_8 
A(2,3)=4.0_8 
A(3,1)=-1.0_8 
A(3,2)=0.5_8 
A(3,3)=-1.0_8 
B(1)=1.0_8 
B(2)=-2.0_8 
B(3)=0.0_8 

call gesv(A,B) 
PRINT*,B 

END PROGRAM matrixinv 
+1

[インテルMKLのリンクライン顧問](https://software.intel.com/en-us/articles/intel-mkl-link-によると、 '-mkl = sequential' –

答えて

0

の下に取り付けられており、次のエラーを与える:私が使用してコードをコンパイルします。 「暗黙のなし」の後に次のステートメントを追加します。

external gesv 
+3

これは必須ではなく、リンカーがシンボルを見つけるのに役立つものでもありません。 – francescalus

+1

前に私のコードに上記の行がありました。動作しません。 – Dabu

+0

いいえ、blas95の例で必要なUSE mklが表示され、外部に置き換えられます。これがリンクアドバイザーの中で明示的にカバーされていれば好ましいでしょう。 – tim18

関連する問題