关于intel fortran编译器选项的问题

时间:2014-08-27 18:24:06

标签: fortran intel flags

我目前在串行(单核)/并行(48核)上运行fortran代码,输出中有“无限”或“NaN”等值(不应该有)没有任何其他信息。我想使用编译器选项来帮助我找到infinity / NaN的来源。我尝试了“-O0 -g -traceback -fpe3”的组合,然后在运行期间,无穷大出现在这种情况下比正常情况更早(没有调试选项)。但是,仍然没有关于源代码中哪一行导致此类行为的信息。所以,我想知道,是否有任何可用的编译器选项可以帮助我找到无限/ NaN的来源?或者我使用正确的旗帜组合?

提前致谢! =)

1 个答案:

答案 0 :(得分:2)

fpe选项是正确的选择!但你使用了错误的数字:根据Intel Fortran Compiler documentation,当fpe之后的整数是3:

  

禁用所有浮点异常。浮点下溢   是渐进的,除非你明确指定一个编译器选项   在IA-32和/或IA-32上启用齐平到零,例如-ftz或/ Qftz,O3或O2   英特尔EM64T系统。此设置提供完整的IEEE支持。

您需要使用-fpe0,结果是:

  

浮点无效,被零除和溢出异常   启用。如果发生任何此类异常,则中止执行。这个   选项设置-ftz(Linux和Mac OS)或/ Qftz(Windows)选项;   因此,除非您明确说明,否则下溢结果将设置为零   指定-no-ftz(Linux和Mac OS)或/ Qftz-(Windows)。上   基于Itanium®的系统,下溢行为等同于指定   选项-ftz或/ Qftz。