我正在使用一个旧的 FORTRAN 77 程序,我遇到了一个奇怪的错误。照原样,代码似乎运行良好,并且在不到一秒的时间内完成。但它会产生一堆我不感兴趣的无关输出。所以,我进入了源代码,并注释掉了所有额外的 WRITE 语句。
好吧,当我注释掉一些 WRITE 语句时,代码似乎运行得有点慢(尽管我对此不确定;它可能看起来更慢,因为我滚动的文本行数较少以让我忙碌) . 当我注释掉最后一个额外的 WRITE 语句时,程序就会挂起,并且永远不会完成执行。
现在,从逻辑上讲,注释掉 WRITE 语句应该仍然让程序的其余部分完全正常运行,对吗?我认为这意味着代码中潜伏着一些其他问题,并且 WRITE 语句以某种方式掩盖了它(可能是清除缓冲区?)。
一位了解 Fortran 的同事(为数不多的一位)建议我可能无意中注释掉了一个语句标签,但事实并非如此。另一位不了解 Fortran 但总体上对编程非常熟练的同事建议这对他来说听起来像是一个指针问题,但据我所知,我从来没有将越界索引传递给数组,我不确定还会出现这样的问题。
我正在 PowerPC Mac 计算机上使用 g77 编译程序。