! program tstexp implicit none ! ! xlf90 -qrealsize=8 -qflttrap=inexact:enable ! core dumps on exparg=700. ! xlf90 -qrealsize=8 -qflttrap=ov:und:zero:inv:imp:enable ! no core dump ! -qsigtrap=xl__trcedump expmax.f ! no traceback ! -qsigtrap=xl__ieee expmax.f ! no traceback ! Note this does not trap because exp() is a library routine. ! ! exparg=-745.13 x=exp(exparg)= 0.49406565-323 ! exparg=-745.14 x=exp(exparg)= 0.00000000E+00 ! ! exparg= 709.78 x=exp(exparg)= 0.17928228+309 ! exparg= 709.79 x=exp(exparg)= INF ! real :: x,exparg integer :: i ! huge(x) = 0.17976931+309 ! write(6,"('huge(x) = ',e15.8)") huge(x) ! exparg = 709.7 ! exparg = -745.1 ! do i=1,10 ! x = exp(exparg) ! write(6,"('exparg=',f7.2,' x=exp(exparg)=',e15.8)") exparg,x ! exparg = exparg+1. ! exparg = exparg+0.1 ! exparg = exparg+0.01 ! ! exparg = exparg-1. ! exparg = exparg-0.1 ! exparg = exparg-0.01 ! enddo x = .1e81 exparg = -8.e-21*x write(6,"('exparg=',e12.4,' exp(exparg)=',e12.4)") | exparg,exp(exparg) end