我有一个程序遍历数组,确定性地制作新的行向量,然后将它添加到数组。Fortran调试打印语句影响程序流程
在每次迭代中,都会采用向量的范数,以确保它不是零向量。如果它为零,则程序停止。
有一个错误,第三次迭代会导致向量归零。
在寻找这个bug时,我用调试打印语句,print *,“here”,this_var等填充了代码。其中一个打印语句(打印最新向量的规范)修复了程序。
我不喜欢打印声明。我也不喜欢我不明白发生了什么事。
有没有人有任何想法,为什么打印声明会影响它正在打印的东西?
代码(〜400线,大量的评论)提供
数组索引超出范围问题可能导致行为更改 – James 2010-08-12 13:51:01
您使用的编译器是什么?我们可能能够建议在调试时使用好的编译器选项。 – 2010-08-12 22:55:15
使用ifort(英特尔),但可以使用gfortran编译,如果有帮助?多谢你们! – Samizdis 2010-08-14 11:16:04