2014-10-05 3 views
1

BLAS를 처음 사용하고 행렬 - 행렬 곱셈에 BLAS를 사용하는 포트란 프로그램을 컴파일하려고합니다. 나는 두 행렬 A를 가지고 B. fortran 컴파일 blas 프로그램 오류

integer, parameter :: RK = selected_real_kind(10,2) 
real(kind=RK),pointer :: A(:,:), B(:,:), C(:,:) 

다음 내가 그것으로 어떤 임의의 값을 넣어 번식을 시도 :

call dgemm('N', 'N', N, N, N, 1.0_RK, 
     A, N, B, N, 0.0_RK, C, N) 

N 두 행렬의 크기입니다. 모든 매개 변수가 정확합니까?

내가 컴파일하고 다음과 같은 오류 얻을 수 없습니다

call dgemm('N', 'N', N, N, N, 1.0_RK, 
             1 
Error: Syntax error in argument list at (1) 
matrixmul.F90:44.2: 

    A, N, B, N, 0.0_RK, C, N) 
    1 
Error: Unclassifiable statement at (1) 

문제가 무엇입니까? 지정된 BLAS 플래그로 컴파일해야합니까? BLAS를 explained here으로 설치했습니다. 당신은 단지 포트란에서 새 줄에 계속할 수 없습니다

답변

3

, 당신은 계속에 대한 라인의 끝을 지정해야합니다 :

call dgemm('N', 'N', N, N, N, 1.0_RK, & 
     A, N, B, N, 0.0_RK, C, N) 

를 대신 새 줄에 여섯 번째 열에서 무엇을 넣어 고정 된 형태.

BLAS 플래그가 없으므로 BLAS 라이브러리에 연결하려는 링커에만 알려야합니다. 내 운영 체제에서는 -lblas 또는 -lmkl 또는 이와 유사합니다.

+0

Thans! 이제 -lblas로 컴파일하고 또 다른 오류가 있습니다 : matrixmul.F90 :(. text + 0x592) :'dgemm_ '에 대한 정의되지 않은 참조. BLAS가 설치되었는지 어떻게 확인할 수 있습니까? – Bob

+0

'libblas.so' 또는'libblas.a' 또는'blas.dll'을 검색하십시오 당신은 어떤 OS를 가지고 있습니까? –

+0

내 OS - 우분투 12.04 이후 검색 : /etc/alternatives/libblas.a /usr/lib/libblas.a /usr/lib/libblas/libblas.a, 라이브러리가 설치되었음을 나타냅니다. – Bob

관련 문제