4

我正在使用 BLUPF90 系列程序之一的“thrgibbs1f90b”,它基于“fortran”并用于 gibbs 采样以估计二进制数据的方差分量。每次我尝试运行 thrgibbs1f90b 时,都会收到以下错误消息:

forrtl:严重(157):程序异常 - 访问冲突

Image               PC                Routine            Line        Source

thrgibbs1f90b.exe    0000000140021961    Unknown    Unknown    Unknown
thrgibbs1f90b.exe    000000014000BB5B    Unknown    Unknown    Unknown
thrgibbs1f90b.exe    000000014026B41C    Unknown    Unknown    Unknown
thrgibbs1f90b.exe    000000014024F4E3    Unknown    Unknown    Unknown
kernel32.dll         0000000076E2652D    Unknown    Unknown    Unknown
ntdll.dll            0000000076F5C521    Unknown    Unknown    Unknown

知道为什么我会收到此消息吗?

谢谢!

4

1 回答 1

7

两个有根据的猜测

  1. 程序试图读取或写入不存在的数组元素,例如 25 元素数组的第 26 个元素。
  2. 为过程指定的虚拟参数与调用过程中的实际参数不匹配;例如,当期望 8 字节值时传递 4 字节实值(反之亦然

其中任何一个都可能导致尝试访问程序进程无权访问的内存位置。还有许多其他可能的原因,但根据我的经验,这些是导致此类错误消息的 Fortran 程序中最常见的错误。

这两者都很容易发现,您需要(重新)编译您的程序并设置编译器选项以检查这些条件

于 2012-11-15T09:32:52.507 回答