1
我正在使用帶有MKL的Intel Virtual Fortran的IMSL。我試圖使用IMSL的例程。它編譯罰款,但是當我嘗試執行該文件時,它想出了一個錯誤說:使用IMSL時發生MKL錯誤
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.
以下是我使用的代碼:
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
我怎樣才能解決這個問題?
後我加 使用EVCRG_INT
IT提供了錯誤信息描述:
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)
感謝。
在IMSL用戶指南,它說:
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(我在我的文章中添加了新的信息)。 – 2012-04-17 11:09:48
請參閱編輯,您必須使用'COMPLEX'變量。 – 2012-04-17 11:53:38
問題解決了。非常感謝! – 2012-04-17 15:58:06