Fortran 运行时错误 "fixed"通过写入输出

标签 fortran

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

do j=1,ne

SOME STUFF

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

end

是什么导致了我的错误,以至于这个 write 语句可以修复我的段错误? (注意:j 被声明为整数)

谢谢,
凯利

最佳答案

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

  • 离开数组的末尾——使用你的编译器打开边界检查和调试选项来检查这个;
  • 提供给子程序的参数与预期的参数之间存在分歧。同样,如果可能,请使用您的编译器,否则请使用您的眼睛。

  • 其中一个是原因的赔率是 5 比 1。

    关于Fortran 运行时错误 "fixed"通过写入输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1331608/

    相关文章:

    fortran - 为什么在明确写入数组边界时没有运行时错误?

    string - 将字符串解释为 Fortran 中的变量名

    numpy - 用 Python 读取 Fortran 二进制文件

    arrays - Fortran 中字符串数组的动态分配不会调整大小

    arrays - 什么是 'Bus error' 以及我的 Fortran 代码中的什么触发了它?

    scipy - 使用 -fPIC 与 -frecursive 进行 gfortran 编译

    fortran - Fortran 77 中的 IEEE_UNDERFLOW_FLAG IEEE_DENORMAL

    python - 使用 f2py 从 python 将动态向量分配到 fortran

    python - 在 python 中获取用于执行使用多个线程的进程的实时输出?

    printing - 如何格式化 PRINT 或 WRITE 语句以覆盖控制台屏幕上的当前行?