PROGRAM machine1 ! ! Author: Br. David Carlson ! ! Date: January 3, 2000 ! ! Revised: May 2, 2004 ! ! This program prints the values of certain machine constants. IMPLICIT NONE REAL::R1MACH, ans INTEGER::k k = 1 ans = 0 ans = R1MACH(1) WRITE (*, 100) ans 100 FORMAT (1X, 'The smallest positive magnitude = ', E17.8) WRITE (*, 150) TINY(ans) 150 FORMAT (1X, 'The smallest positive real according to TINY() = ', E17.8) ans = R1MACH(2) WRITE (*, 200) ans 200 FORMAT (1X, 'The largest magnitude = ', E17.8) ans = R1MACH(3) WRITE (*, 300) ans 300 FORMAT (1X, 'The smallest relative spacing = ', E17.8) ans = R1MACH(4) WRITE (*, 400) ans 400 FORMAT (1X, 'The largest relative spacing = ', E17.8) ans = R1MACH(5) WRITE (*, 500) ans 500 FORMAT (1X, 'LOG10(B) = ', E17.8) WRITE (*, 600) BIT_SIZE(k) 600 FORMAT (1X, 'Number of bits in an integer = ', I3) WRITE (*, 700) RANGE(k) 700 FORMAT (1X, 'Exponent range (in decimal) for integers = ', I2) WRITE (*, 800) RANGE(ans) 800 FORMAT (1X, 'Exponent range (in decimal) for reals = ', I3) WRITE (*, 900) PRECISION(ans) 900 FORMAT (1X, 'Precision (number of decimal digits) for reals = ', I2) END PROGRAM