在Fortran的总和中忽略NaN项

时间:2017-09-05 12:40:47

标签: fortran nan

有没有办法将NaN和普通数字以不同的方式组合,然后通常在Fortran中完成?

我有几个摘要,其中包含“安全”术语,不能是NaN,还有一些其他术语可以是NaN。 我希望对表达式的评估忽略加数,以防它们是NaN

我不能把它们除去它们乘以空因子NaN,因为NaN x 0无论如何都会NaN。 想法?

由于

1 个答案:

答案 0 :(得分:4)

没有传播NaN的算术运算。因此,乘以0的想法将无效。

您唯一的解决方案是错过总和中的NaN条款。用基于

的东西做到这一点
IF (IEEE_IS_NAN(x)) 

如果您没有使用IEEE754或使用较旧的FORTRAN标准,那么您可以使用

IF(x .NE. x)

当且仅当x是NaN时才为TRUE。