使用ifort&编译f77代码时的输出差异gfortran

时间:2013-09-13 05:23:39

标签: fortran gfortran fortran77 intel-fortran

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

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

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

1 个答案:

答案 0 :(得分:1)

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

  1. 使用您的编译器检查您的编译器能够检查的所有内容,包括特别是数组边界(用于运行时置信度)和子例程参数匹配。
  2. 使用未初始化的变量。
  3. 真实,复杂和整数变量的种类;编译器(或编译选项)可能默认为不同类型。
  4. 常用块,等价,条目,...其他现已弃用或过时的功能。
  5. 最后,也许不是立即调查的问题,而是你应该尽快做出的事情(正确的选择)或更晚的(错误的选择),努力在所有范围内声明IMPLICIT NONE并为所有范围编写明确的声明实体。