!Program to test EXPONENT and FRACTION intrinsic function. program test_exponent_fraction real x integer*4 i real*8 y integer*8 j equivalence (x, i), (y, j) x = 3. call test_4(x) x = 0. call test_4(x) i = o'00000000001' call test_4(x) i = o'00010000000' call test_4(x) i = o'17700000000' call test_4(x) i = o'00004000001' call test_4(x) i = o'17737777777' call test_4(x) i = o'10000000000' call test_4(x) i = o'0000010000' call test_4(x) y = 0.5 call test_8(y) y = 0. call test_8(y) j = o'00000000001' call test_8(y) y = 0.2938735877D-38 call test_8(y) y = -1.469369D-39 call test_8(y) y = z'7fe00000' call test_8(y) y = -5.739719D+42 call test_8(y) end subroutine test_4(x) real*4 x,y integer z y = fraction (x) z = exponent(x) if (z .gt. 0) then y = (y * 2.) * (2. ** (z - 1)) else y = (y / 2.) * (2. ** (z + 1)) end if if (abs (x - y) .gt. abs(x * 1e-6)) call abort() end subroutine test_8(x) real*8 x, y integer z y = fraction (x) z = exponent(x) if (z .gt. 0) then y = (y * 2._8) * (2._8 ** (z - 1)) else y = (y / 2._8) * (2._8 ** (z + 1)) end if if (abs (x - y) .gt. abs(x * 1e-6)) call abort() end