MKL이있는 Intel Virtual Fortran에서 IMSL을 사용하고 있습니다. IMSL에서 루틴을 사용하려고했습니다. 그것은 잘 컴파일,하지만 난 파일을 실행하려고 할 때 그것을 말하는 오류를 내놓았다했다 : 나는이 문제를 해결할 수있는 방법IMSL을 사용할 때 MKL 오류
PROGRAM test_evcrg
include 'link_fnl_static.h'
!DEC$ OBJCOMMENT lib:'libiomp5mt.lib'
IMPLICIT NONE
REAL, Dimension(2,2) :: p,vr
REAL, Dimension(2) :: w
p = RESHAPE([0.7, 0.3, 0.5,0.5],[2,2])
CALL EVCRG (p,w,vr)
WRITE (*,*), w
WRITE (*,*)
WRITE (*,*), vr
END PROGRAM test_evcrg
:
MKL ERROR: Parameter 7 was incorrect on entry to SGEEVX
*** TERMINAL ERROR 2 from EVCRG. The required storage cannot be allocated.
*** The specified N may be too large, where N = 1064682127.
다음은 내가 사용하고있는 코드입니다 ?
test_evcrg.f90(14): error #6285: There is no matching specific subroutine for this generic subroutine call. [EVCRG]
CALL EVCRG(p,w,vr)
---------^
compilation aborted for test_evcrg.f90 (code 1)
감사 :
나는 IT 오류 INFOMATION를 부여 사용 EVCRG_INT에게추가 후에.
이FORTRAN 90 Interface
Generic: CALL EVCRG (A, EVAL, EVEC [,…])
Specific: The specific interface names are S_EVCRG and D_EVCRG.
대단히 감사합니다. 인터페이스가 정확하다고 생각합니다. Fortran 90 인터페이스를 사용하고 있습니다. 나는 또 다른 시도를했다 : 코드에 USE EVCRG_INT를 추가했다.이 코드는 라이브러리의 명명법을 따르는 것으로 생각된다. 그것은 새로운 오류를주었습니다 : test_evcrg (저는 새 정보를 내 게시물에 추가했습니다). –
편집을 보시려면'COMPLEX' 변수를 사용해야합니다. –
문제가 해결되었습니다. 고마워요! –