The arithmetic, geometric and harmonic means of three positive numbers are defined by the following formulas:
Write a program to read three positive numbers and use a single internal
subroutine to compute the arithmetic, geometric and harmonic means.
! ----------------------------------------------------------
! This program contains one subroutine for computing the
! arithmetic, geometric and harmonic means of three REALs.
! ----------------------------------------------------------
PROGRAM Mean6
IMPLICIT NONE
REAL :: u, v, w
REAL :: ArithMean, GeoMean, HarmMean
READ(*,*) u, v, w
CALL Means(u, v, w, ArithMean, GeoMean, HarmMean)
WRITE(*,*) "Arithmetic Mean = ", ArithMean
WRITE(*,*) "Geometric Mean = ", GeoMean
WRITE(*,*) "Harmonic Mean = ", HarmMean
CONTAINS
! ----------------------------------------------------------
! SUBROUTINE Means():
! This subroutine receives three REAL values and computes
! their arithmetic, geometric, and harmonic means.
! ----------------------------------------------------------
SUBROUTINE Means(a, b, c, Am, Gm, Hm)
IMPLICIT NONE
REAL, INTENT(IN) :: a, b, c
REAL, INTENT(OUT) :: Am, Gm, Hm
Am = (a + b + c)/3.0
Gm = (a * b * c)**(1.0/3.0)
Hm = 3.0/(1.0/a + 1.0/b + 1.0/c)
END SUBROUTINE Means
END PROGRAM Mean6
Click here to download this program.
Arithmetic Mean = 5.66666651 Geometric Mean = 5.24148321 Harmonic Mean = 4.80000019