在 Fortran 中处理 NaN、无穷大和大于双倍精度的数字



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

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

我不知道如何检测"无穷大"和"******"(大于双精度的数字)。

我该怎么做?

现在,我用以下命令解决了星号(尽管它可能不是那么有效)。谢谢亚历山大·沃格特。

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

但是,我仍然无法解决"无限"。我尝试了"IEEE",但我的编译器不支持。

谢谢

最新更新