MKLを使用したインテル®バーチャル・ポートランで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.
次は私が使用していたコードです?
私は 使用EVCRG_INT
を追加した後は、ERRORのINFOMATION与える:
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(私は私の記事の新しい情報を追加しました)。 –
編集を参照するには、 'COMPLEX'変数を使用する必要があります。 –
問題が解決しました。どうもありがとう! –