您好!
我在读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