回 帖 发 新 帖 刷新版面

主题:IMSL库函数DCBJNS调用出错,求解

在调用IMSL库函数DCBJNS时出错,如下图。
其中的CBJNS实际上是DCBJNS。
我已经使用了ERSET[0,0,0]函数关闭所有警告并要求不退出程序,但程序仍出错退出了。
我希望出错时不停止程序,该如何实现?
另外,CBJNS(800,800,2,aaa)为什么会出错呢?其中传入的复数是(800,800),aaa是一个数组。

相当于Fortran的:CALL DCBJNS ((800,800), 2, aaa)

回复列表 (共2个回复)

沙发

补充:我用的是Compaq Fortran 6.0中的imsl。

板凳

USE Numerical_Libraries
INTEGER(4) N
PARAMETER (N=11)
INTEGER(4) K, NOUT
COMPLEX*16 CBS(N), Z
Z = (800.0, 800.0)
CALL DCBJNS (Z, N, CBS)
CALL UMACH (2, NOUT)
DO 10 K=1, N
WRITE (NOUT,99999) K-1, Z, CBS(K)
10 CONTINUE
99999 FORMAT (' J sub ', I2, ' ((', F6.3,',', F6.3, ')) = (', F9.3,',', F9.3,')')
END

上面的Fortran代码在运行时与Forcal出现的错误相同,想贴个图,怎么无法贴呢?
显示如下错误信息:

run-time error M6203: MATH
- exp: OVERFLOW error
Image              PC        Routine            Line        Source
bb.exe             0040E6D9  Unknown               Unknown  Unknown
bb.exe             0040E50B  Unknown               Unknown  Unknown
bb.exe             0040E691  Unknown               Unknown  Unknown
bb.exe             00410908  Unknown               Unknown  Unknown
bb.exe             00431AE8  Unknown               Unknown  Unknown
bb.exe             00409B51  Unknown               Unknown  Unknown
bb.exe             0040105A  MAIN$BB                     7  bb.f90
bb.exe             0043B519  Unknown               Unknown  Unknown
bb.exe             0042D8D4  Unknown               Unknown  Unknown
kernel32.dll       7C817077  Unknown               Unknown  Unknown

这是个什么类型的运行错误?该如何自己控制错误输出,而不终止程序呢?

我来回复

您尚未登录,请登录后再回复。点此登录或注册