我有一些编写fortran代码的经验,但我从未见过这样的东西。
我正在使用大型HPC代码(~10K行),我正在修改子程序。我使用print语句验证一切都已正确完成并在必要时进行调试。当我使用我使用的最后一个PRINT
语句运行我的代码时,代码在任何地方都给我实数。一旦我对最后一个PRINT
语句发表评论,代码就会给我NaN
是我的一些变量。由于我的代码太大,我显然无法在此发布,但我会发布PRINT
语句:
PRINT*, "outletBC up1 ", SUM(ABS(up(nptsx,:,:)))
其中up
是一些速度数组。
问题:
怎么可能? PRINT
语句如何影响任何变量?
答案 0 :(得分:1)
我认为这表明代码中存在其他一些错误(例如内存损坏)。我不确定你使用的是什么调试标志。但是,请尝试编译标志“-check all”(对于intel fortran编译器)。此标志检查多个可能的错误。有关详细信息,请参阅 https://software.intel.com/sites/default/files/m/f/8/5/8/0/6366-ifort.txt