Fortran运行时错误通过写输出"修复"

5 fortran

我遇到了一些用于研究的旧代码,我想用英特尔Fortran编译器进行编译.在特定的子例程中,除非我添加一个write只输出循环索引值的语句,否则会出现分段错误.

do j=1,ne

SOME STUFF

write(*,*) 'j=', j

end
Run Code Online (Sandbox Code Playgroud)

什么可能导致我的错误,这样的写声明将修复我的分段错误?(注意:j声明为整数)

谢谢,keely

Hig*_*ark 6

导致此类错误的典型方法是通过插入write语句来"修复":

  1. 走出一个数组的末尾 - 使用你的编译器打开边界检查和调试选项来检查这个;

  2. 提供给子计划的论据与预期的论点之间存在分歧.再次,如果可能的话,使用你的编译器,否则你的眼睛

赔率是5比1,其中一个是原因.