!
! =====> Program - P67.F90
!
CHARACTER (LEN=3) :: MONTH(12)
INTEGER UNITS(12)
REAL SALES(12)
!
!
PRINT *, 'This is Program >> P67 - Average Program'
!
! Tell program where data for READ is coming from
OPEN(UNIT=5, FILE='P67.DAT') ! UNIT=5 is the default input
!
!
PRINT 99
99 FORMAT(/'AVERAGE PROGRAM 2'/)
L1: DO K=1,12
READ 27,MONTH(K),UNITS(K),SALES(K)
PRINT 28,MONTH(K),UNITS(K),SALES(K)
END DO L1
27 FORMAT(A3,I7,F5.1)
28 FORMAT(1X,A3,I7,F6.1)
!
! DATA HAS BEEN READ, STORED AND PRINTED
! NOW USE SUBROUTINE
! ONCE FOR EACH QUARTER
!
L2: DO J=1,4
MSTART=3*(J-1)+1
CALL AVERAGE(3,UNITS(MSTART), &
SALES(MSTART),MEANU,SAVE)
PRINT 78,MEANU,SAVE,J
END DO L2
78 FORMAT(/'MEAN',I7,F6.1,' QUARTER #',I1)
STOP
END
!
SUBROUTINE AVERAGE(N,UNITS,SALES,NAVE,DAVE)
! Size of the arrays below can be 1 or N or *
REAL SALES(1)
INTEGER UNITS(1)
NCARS=0
DOLLARS=0
L1: DO K=1,N
NCARS=NCARS+UNITS(K)
DOLLARS=DOLLARS+SALES(K)
END DO L1
! Calculate averages
NAVE=NCARS/N
DAVE=DOLLARS/N
RETURN
END
DATA:
Jan 672 3.4
Feb 609 3.2
Mar 715 3.7
Apr 803 4.2
May 810 4.8
Jun 831 5.1
Jul 829 5.1
Aug 727 5.1
Sep 780 4.3
Oct 703 3.9
Nov 791 4.2
Dec 783 3.6
OUTPUT:
Program entered
This is Program >> P67 - Average Program
AVERAGE PROGRAM 2
Jan 672 3.4
Feb 609 3.2
Mar 715 3.7
Apr 803 4.2
May 810 4.8
Jun 831 5.1
Jul 829 5.1
Aug 727 5.1
Sep 780 4.3
Oct 703 3.9
Nov 791 4.2
Dec 783 3.6
MEAN 665 3.4 QUARTER #1
MEAN 814 4.7 QUARTER #2
MEAN 778 4.8 QUARTER #3
MEAN 759 3.9 QUARTER #4
Fortran-90 STOP
Page builder: Charles Boivin
Last modified: 11/07/95