gpt4 book ai didi

fortran - 来自ifort编译器的 "floating invalid"的含义

转载 作者:行者123 更新时间:2023-12-05 04:02:19 29 4
gpt4 key购买 nike

我的 Fortran 代码使用英特尔的 ifort 编译器。

有时我在运行过程中会报错:

forrtl: error (65): floating invalid

编译器没有给出确切的“无效”原因。据我了解,这是否表明存在以下情况之一?

  1. 下溢,这意味着太接近于 0,例如1e-30。
  2. 溢出,表示太大,例如无穷大/-无穷大,除以零。
  3. NaN。

这很有用,因为我可以使用 if 语句来检查实际发生了哪些情况。

此外,我正在使用 -g -traceback 选项进行调试。是否有提供更多详细信息的选项?

最佳答案

英特尔 Fortran 编译器通常使用 IEEE 算法。 “ float 无效”消息是无效操作的未处理 IEEE 异常的结果。

下溢和上溢不被视为无效操作(注意零除以自身,或无穷大除以另一个无穷大是无效的,不是溢出)。在基本术语中,无效运算是指在数学上操作数不在运算符域中的运算。不只是前面提到的那两个例子,还有诸如对负实数求平方根或对数之类的事情。或者不恰本地使用 NaN。

英特尔编译器支持 Fortran 2003 的 IEEE 功能已有一段时间了。您可以使用它们来精细捕获异常。编译时选项 fpe 控制编译器如何响应异常。

关于fortran - 来自ifort编译器的 "floating invalid"的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54433124/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com