practice example
program main
integer ihuge,inan
real ahuge,ahuge2
double precision dahuge
real anan,anan2,binf
anan=sqrt(-1.0)
print *, 'anan=',anan
binf=1.0/0.0
print *, 'binf=',binf
ihuge=huge(1)
print *, 'ihuge=',ihuge
ahuge=huge(1.0)
print *, 'ahuge=',ahuge
ahuge2=huge(1.0d0)
print *, 'ahuge2=',ahuge2
dahuge=huge(1.0d0)
print *, 'dahuge=',dahuge
anan2=ahuge2/binf
print *, 'anan=',anan2
if (ahuge2.gt.ahuge) then
print *,'ahuge2 is infinity'
else
print *,'ahuge2 is a valid number'
endif
if(anan.ne.anan) then
print *,'anan is NAN'
else
print *,'anan is a valid number'
endif
if(anan2.ne.anan2) then
print *,'anan2 is NAN'
else
print *,'anan2 is a valid number'
endif
pause
stop
end
Output:
D:\workdir\temp\inf_nan>inf_nan.exe
anan= NaN
binf= Infinity
ihuge= 2147483647
ahuge= 3.4028235E+38
ahuge2= Infinity
dahuge= 1.797693134862316E+308
anan= NaN
ahuge2 is infinity
anan is NAN
anan2 is NAN
Fortran Pause - Enter command or to continue.
网友评论