P67.F90

Average program


!
! =====> 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

Come back to the previous page

Page builder: Charles Boivin

Last modified: 11/07/95