intrinsic_rrspacing.f90   [plain text]


!Program to test RRSPACING intrinsic function.

program test_rrspacing
  call test_real4(3.0)
  call test_real4(33.0)
  call test_real4(-3.0)
  call test_real8(3.0_8)
  call test_real8(33.0_8)
  call test_real8(-33.0_8)
end
subroutine test_real4(orig)
  real x,y,orig
  integer p
  x = orig
  p = 24
  y = abs (x * 2.0 ** (- exponent (x))) * (2.0 ** p)
  x = rrspacing(x)
  if (abs (x - y) .gt. abs(x * 1e-6)) call abort
end

subroutine test_real8(orig)
  real*8 x,y,t,orig
  integer p
  x = orig
  p = 53
  y = abs (x * 2.0 ** (- exponent (x))) * (2.0 ** p)
  x = rrspacing(x)
  if (abs (x - y) .gt. abs(x * 1e-6)) call abort 
end