我有一个Fortran 95代码,其输出似乎是它不应该是函数的函数。具体来说,发生了以下场景:
使用版本A运行代码;它不起作用(我的意思是,它在编译和运行时起作用,但它没有给出我期望的结果)
使用版本B运行代码;有用。版本B仅包含对版本A的微不足道的修改,例如打印语句或变量数值的微小变化。
使用版本A运行代码;突然间,它有效。
我认为在初始化之前内存或使用变量存在一些问题,所以我想知道是否有办法用gfortran
检查这种事情,或者是否有人知道什么是问题可能是。我试过了gfortran my_program.f95 -Wall - Wextra
,但它只是给了我一些关于不合格标签字符的投诉。
答案 0 :(得分:0)
这是一段时间以前,但我解决了这个问题,所以我想我也可以发布它。说实话,我不确定这些步骤是否特别固定了它,但是它有效,所以它们是:
将所有程序放在模块中(这也有助于组织代码),而不仅仅是打开。"
通过in
声明所有变量的意图(out
,inout
或real, intent(in) :: foo
)。这显然对优化和组织很有用,但显然它也与界面有关......不知道那是什么。
那就是它!