克林壁虎 2022-10-21 11:47 采纳率: 84.6%
浏览 19
已结题

fortran中FPE相关问题

您好!
我在读fortran90代码文件时遇到了一些看不懂的定义,这些定义似乎是默认的,但我在网上找不到它们的解释。
如:
FPE$INVALID,FPE$DENORMAL,FPE$ZERODIVIDE,FPE$OVERFLOW,FPE$UNDERFLOW,FPE$INEXACT
我感到它们似乎是某一个体系的(因为前面都有FPE)。但我不太明白它们各自具体的涵义,也不明白$这个符号在这里起到怎样的作用,看起来也和%有点像?
谢谢!

附代码如下:(这一整段我都没看懂QAQ)
module sim_mod
use mpi
use ifport
……
function hand_fpe(sigid, except)
!DEC$ ATTRIBUTES C :: hand_fpe
use ifport
INTEGER(4) :: hand_fpe
INTEGER(2) :: sigid, except

  if (sigid/=SIG$FPE) then
     print "('The hand_fpe is not for signal ', I0)", sigid
     hand_fpe = 1
     return
  end if
  select case(except)!select case
     case( FPE$INVALID )
        print *, ' Floating point exception: Invalid number'
     case( FPE$DENORMAL )
        print *, ' Floating point exception: Denormalized number'
     case( FPE$ZERODIVIDE )
        print *, ' Floating point exception: Zero divide'
     case( FPE$OVERFLOW )
        print *, ' Floating point exception: Overflow'
     case( FPE$UNDERFLOW )
        print *, ' Floating point exception: Underflow'
     case( FPE$INEXACT )
        print *, ' Floating point exception: Inexact precision'
     case default
        print *, ' Floating point exception: Non-IEEE type'
  end select
  print *, 'lake failed: ', lake_info
  hand_fpe = 1

end function
end module

  • 写回答

2条回答 默认 最新

  • 地球屋里老师 2022-10-21 12:23
    关注

    !DEC$ 是编译指令,不是fortran语法,属于编译器自己的扩展。
    FPE$DENORMAL是模块ifport中定义的普通变量,其中的$没有特殊意义,就是个字符而已。

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 10月21日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改