2017-12-28 43 views
0

수학 커널 라이브러리 (mkl)를 처음 사용합니다. LAPACK (MKL과 함께 제공)의 시스템 - 선형 방정식 - 솔버 (gesv 루틴)를 사용하는 프로그램이 있습니다. 내 컴퓨터에 이미 MKL (Intel 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-에 따르면, line-advisor) 다음과 같이 사용해야합니다 :'-mkl = sequential' –

답변

0

아래에 부착되어 다음과 같은 오류를 제공합니다 : 내가 사용하여 코드를 컴파일합니다. 은 "암시 적 없음"다음에 다음 문을 추가

external gesv 
+3

이것은 필수 요소는 아니며 링커가 심볼을 찾는 데 도움이되지 않습니다. – francescalus

+1

이전에 위 코드를 사용했습니다. 작동하지 않습니다. – Dabu

+0

아니요, 필수 USE mkl이 blas95의 예제에 나타나야하고 외부를 대체해야합니다. 이것이 링크 조언자에서 명시 적으로 다루어지면 바람직 할 것이다. – tim18