在Fortran中处理NaN,Infinity和大于双精度的数字?

时间:2016-02-25 21:09:57

标签: fortran fortran90 fortran95

我目前正在Fortran中运行计算模型。在计算过程中,有时我会得到“NaN”,“Infinity”和大于双精度的数字(显示为**************)。我需要检测它们。我可以使用以下命令检测“NaN”。

if(isnan(result))then
   continue = .false.
else
   continue = .true.
endif

我不知道如何检测“Infinity”和“************”(数字大于双精度)。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

现在,我用以下命令解决了星号(虽然效率可能不高)。谢谢Alexander Vogt。

  if(isnan(result))then
     continue = .false.
  elseif(result.gt.1.d20)then
     continue = .false.
  else
     continue = .true.
  endif

然而,我仍然无法解决“无限”。我试过“IEEE”,但我的编译器不支持。

由于