PROGRAM machine_constants_real IMPLICIT NONE INTEGER, PARAMETER, DIMENSION(2) :: ikvl = & & (/ KIND(1.0), KIND(1.0D0) /) REAL (KIND = ikvl(1)) :: r1 REAL (KIND = ikvl(2)) :: r2 r1 = 1.0 r2 = 2.0 WRITE (*,*) 'Machine constants for real & &variables with different kind values' WRITE (*,*) WRITE (*,*) 'Default precision has kind value: ', & & KIND(1.0) WRITE (*,'(/'' ikv Digits Huge & & Tiny Range''/)') WRITE(*,'(I5,I7, 7X, E10.2, 6X, E10.2, I7)') & & KIND(r1), DIGITS(r1), HUGE(r1), TINY(r1), RANGE(r1) WRITE(*,'(I5,I7, 7X, E10.2, 6X, E10.2, I7)') & & KIND(r2), DIGITS(r2), HUGE(r2), TINY(r2), RANGE(r2) STOP END PROGRAM machine_constants_real