Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Need Help with my Fortran Code

  1. Mar 9, 2013 #1
    Trying to write a single Fortran program that calculates the arithmetic mean, rms (root-mean-square) average, geometric mean, and harmonic mean for a set of numbers (for example - 4 4 4 4 4).

    I don't know if I am doing the write way. Please guide me.

    PROGRAM ComputingMeans


    INTEGER :: Count
    INTEGER :: Valid
    INTEGER :: i

    REAL :: Item
    REAL :: Arithmetic, Geometric, Harmonic ! Arithmetic, geometric and harmonic mean

    WRITE(*,*) "Write count of items:"
    READ(*,*) Count

    ! Reads items and computes arithmetic, geometric and harmonic mean
    Valid = 0
    Arithmetic = 0.
    Geometric = 1.
    Harmonic = 0.
    DO i = 1, Count
    WRITE(*,*) "Write items:"
    READ(*,*) Item
    IF (Item > 0) THEN
    Valid = Valid + 1
    Arithmetic = Arithmetic + Item
    Geometric = Geometric * Item
    Harmonic = Harmonic + (1 / Item)
    END IF
    END DO

    ! Writes results on screen
    IF (Valid > 0) THEN
    WRITE(*,"(A,I3,A)") "Count of valid items: ", Valid, "."
    Arithmetic = Arithmetic / Valid
    Geometric = Geometric**(1./Valid)
    Harmonic = Valid / Harmonic
    WRITE(*,"(A,F9.6,A)") "Arithmetic mean: ", Arithmetic, "."
    WRITE(*,"(A,F9.6,A)") "Geometric mean: ", Geometric, "."
    WRITE(*,"(A,F9.6,A)") "Harmonic mean: ", Harmonic, "."
    WRITE(*,*) "ERROR: None of the input is positive!"
    END IF

    END PROGRAM ComputingMeans
  2. jcsd
  3. Mar 9, 2013 #2
    do you know how to calculate such quantities by hand?
    pick a sequence, preferably not 4 4 4 4 4, but another sequence with different numbers
    calculate the quantities by hand
    run your program
    provide the sequence
    see what your program calculates and how it compares to the answers
    that's easy
    then, what might get difficult is go back and figure out why something may not be right

    other than that, your "please guide me" request seems way too general for somebody who wrote the program as shown...no specifics whatsoever? that's odd.
  4. Mar 9, 2013 #3


    User Avatar
    Staff Emeritus
    Science Advisor
    Homework Helper

    The write way is wrong. The right way is right.
  5. Mar 9, 2013 #4
    I am aware of the hand calculations.

    I am new to fortran programming language and I have written basic programs for average calculation of three number.

    But I am stuck with this.

    I was trying to write single Fortran program that calculates the arithmetic mean, rms (root-mean-square) average, geometric mean, and harmonic mean for a set of numbers. (that can be 4 4 4 4 4 or 1 2 3 4 5 6 7 or 4, 1, 4, 7, 4, 1, 7).

    I have been trying to write it but I'm not able to get it.
  6. Mar 9, 2013 #5


    User Avatar
    Science Advisor
    Homework Helper

    As gsal said, tell us exactly what you are "stuck" with.

    I can't see any obvious mistakes in the code that you posted.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook