克林壁虎 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日

悬赏问题

  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥15 小红薯封设备能解决的来
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答
  • ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'
  • ¥15 vue+element项目中多tag时,切换Tab时iframe套第三方html页面需要实现不刷新
  • ¥50 深度强化学习解决能源调度问题