1

我需要一些指针来解决我只能以有限的方式描述的问题。我从一位资深科学家那里得到了一个用 f77 编写的代码。我无法在公共论坛上提供有关所有权问题的代码。它并不大(750 行),但考虑到隐式声明和 goto 语句,它非常不可读。因此,我很难找出错误的根源。这是问题所在:

当我用 ifort 编译代码时,它运行良好并给了我合理的数字,但是当我用 gfortran 编译它时,它编译得很好,但没有给我正确的答案。该代码是复杂等离子体物理问题的数字求根器。ifort 编译版本找到根目录,但 gfortran 编译版本找不到根目录。

关于如何继续寻找解决方案的任何想法?当我找到一个问题时,我会更新问题以反映实际问题。

4

1 回答 1

1

有些事情要调查,不一定按照我尝试的顺序:

  1. 使用您的编译器检查您的编译器能够检查的所有内容,包括特别是数组边界(用于运行时信心)和子例程参数匹配。
  2. 使用未初始化的变量。
  3. 实数、复数和整数变量的种类;编译器(或您的编译选项)可能默认为不同类型。
  4. 通用块、等效项、条目……其他现在已弃用或过时的功能。

最后,也许不是立即调查的问题,而是您应该尽早(正确的选择)或稍后(错误的选择)做的事情,努力IMPLICIT NONE在所有范围内声明并为所有实体编写显式声明。

于 2013-09-13T08:49:37.483 回答