我有一个用 Fortran 编写的热工水力学代码,我正在研究它。对于我的调试版本,我-check bounds
在编译时使用 ifort 11.1 中的选项。我过去以这种方式捕获了数组边界错误。不过,最近,我看到解决方案在给定案例中迅速爆发。奇怪的是,它在代码的发布版本中很好地融合了。果然,-check bounds
从我的调试生成文件中删除标志清除了问题。
奇怪的是,调试版本在我之前使用的许多其他测试用例中运行良好,并且在我的代码中超出任何数组边界时没有抛出任何错误。这种行为对我来说似乎很奇怪,我不知道我的代码中是否存在某种错误或什么。任何人有任何想法可能导致这种行为?
根据要求,我用于发布和调试的标志是:
发布:-c -r8 -traceback -extend-source -override-limits -zero -unroll -O3
调试:-c -r8 -traceback -extend-source -override-limits -zero -g -O0
当然,正如我最初的问题所表明的那样,我-check bounds
为调试案例打开和关闭了标志。