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

时间:2009-08-25 23:42:22

标签: fortran

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

do j=1,ne

SOME STUFF

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

end

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

感谢, keely

1 个答案:

答案 0 :(得分:6)

导致此类错误的经典方法,通过插入write语句来“修复”:

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

  2. 提供给子程序的参数与预期的参数之间存在分歧。再次,如果可能的话,使用你的编译器,否则你的眼睛。

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