我一直试图找到一种符合标准的方法来检查Fortran 90/95中的无限值和NaN值,但事实证明这比我想象的要困难。
ieee_is_nan()
和ieee_is_finite()
内在函数的内部ieee_is_nan()
模块。然而,并不是所有编译器都支持它(特别是gfortran在4.9版时)。在一开始定义无穷大和NaN (比如pinf = 1. / 0
和nan = 0. / 0
)对我来说似乎有点麻烦,而IMHO可能会引发一些构建问题--例如,如果一些编译器在编译时检查它,那么就必须提供一个特殊的标志。
有什么方法可以在标准的Fortran 90/95中实现吗?
function isinf(x)
! Returns .true. if x is infinity, .false. otherwise
...
end function isinf
和isnan()
发布于 2013-06-30 15:43:20
不是的。
在Fortran 90/95中,也没有一种符合标准的方法来检查无穷大或NaNs,也没有符合标准的方法。在Fortran 90/95中,没有一种符合标准的方法来定义这些准数字。
https://stackoverflow.com/questions/17389958
复制相似问题