程序的输出取决于任意打印语句?

时间:2013-05-16 14:25:22

标签: fortran gfortran

我有一个Fortran 95代码,其输出似乎是它不应该是函数的函数。具体来说,发生了以下场景:

  • 使用版本A运行代码;它不起作用(我的意思是,它在编译和运行时起作用,但它没有给出我期望的结果)

  • 使用版本B运行代码;有用。版本B仅包含对版本A的微不足道的修改,例如打印语句或变量数值的微小变化。

  • 使用版本A运行代码;突然间,它有效。

我认为在初始化之前内存或使用变量存在一些问题,所以我想知道是否有办法用gfortran检查这种事情,或者是否有人知道什么是问题可能是。我试过了gfortran my_program.f95 -Wall - Wextra,但它只是给了我一些关于不合格标签字符的投诉。

1 个答案:

答案 0 :(得分:0)

这是一段时间以前,但我解决了这个问题,所以我想我也可以发布它。说实话,我不确定这些步骤是否特别固定了它,但是它有效,所以它们是:

  1. 将所有程序放在模块中(这也有助于组织代码),而不仅仅是打开。"

  2. 通过in声明所有变量的意图(outinoutreal, intent(in) :: foo)。这显然对优化和组织很有用,但显然它也与界面有关......不知道那是什么。

  3. 那就是它!