首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IMSL时出现MKL错误

使用IMSL时出现MKL错误
EN

Stack Overflow用户
提问于 2012-04-17 15:16:02
回答 1查看 953关注 0票数 1

我正在使用带有MKL的英特尔Virtual Fortran的IMSL。我尝试使用IMSL中的一个例程。它编译得很好,但当我尝试执行该文件时,它出现了一个错误,内容是:

代码语言:javascript
复制
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.

下面是我使用的代码:

代码语言:javascript
复制
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

我如何解决这个问题?

在我添加USE EVCRG_INT之后

它给出了错误信息:

代码语言:javascript
复制
    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用户指南中,它说:

代码语言:javascript
复制
   FORTRAN 90 Interface
   Generic:  CALL EVCRG (A, EVAL, EVEC [,…])
   Specific:  The specific interface names are S_EVCRG and D_EVCRG. 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-17 15:43:52

我不太了解IMSL,但我认为接口不匹配。因为您没有use任何IMSL模块,所以您使用的不是Fortran 90接口,而是Fortran 77接口,这需要更多的参数。参见IMSL manual。或者对模块执行use,或者将调用更改为类似于CALL EVCRG (2, p, 2,w, vr, 2)的调用。

可以使用的use语句可能是USE numerical_libraries

--编辑

这意味着,添加使用是一件好事。现在,它暴露了调用中确实存在错误。这些论点是错误的。参数2和3,即EVAL和EVEC必须为COMPLEX

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10186809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档