!
      PROGRAM P54
!
      IMPLICIT NONE
      CHARACTER (LEN=3) :: MONTH(12)
      INTEGER :: I,J,K,UNITS(12),UQ(4),NCARS,MAXS,MINS
      REAL :: SALES(12),SQ(4),TOTALS,SBIG,SMIN
      REAL :: NAVE,TAVE
!
!
      PRINT *, 'This is Program >> P54  - Array Max, Min, Average'
!
!     Tell program where data for  READ *  is coming from
      OPEN(UNIT=5, FILE='P54.DAT')      ! UNIT=5 is the default input
!
!
L1:   DO I=1,12
         READ 202,MONTH(I),UNITS(I),SALES(I)
      END DO L1
202   FORMAT(A3,I7,F5.1)
!
      NCARS=UNITS(1)
      TOTALS=SALES(1)
      SBIG=TOTALS  ! Set biggest to the first one
      SMIN=TOTALS  ! Set smallest to the first one
      MINS=1
      MAXS=1
!
!     Loop through the arrays and find max and min
!     and totals
L2:   DO I=2,12
         NCARS=NCARS+UNITS(I)
         TOTALS=TOTALS+SALES(I)
         IF(SALES(I) > SBIG)THEN
            SBIG=SALES(I)
            MAXS=I  ! Remember position of biggest
         ELSE IF(SALES(I) < SMIN)THEN
            SMIN=SALES(I)
            MINS=I  ! Remember position of smallest
         END IF
      END DO L2
!
!     Form the totals by quarter
!
      I=0
L3:   DO J=1,4
         UQ(J)=0
         SQ(J)=0
LOOP:      DO K=1,3
            I=I+1
            UQ(J)=UQ(J)+UNITS(I)
            SQ(J)=SQ(J)+SALES(I)
         END DO LOOP
      END DO L3
!
!      OUTPUT ORIGINAL DATA + RESULTS
!
      PRINT 501
501   FORMAT(//'MONTH UNIT', &
      '  SALES M$'/)
L4:   DO K=1,12
         PRINT 503,MONTH(K),UNITS(K),SALES(K)
      END DO L4
503   FORMAT('   ',A3,I6,F6.1)
      PRINT 504,NCARS,TOTALS
504   FORMAT(/' TOTALS',I5,F6.1)
      NAVE=NCARS/12
      TAVE=TOTALS/12.0
      PRINT 505,NAVE,TAVE
505   FORMAT(/' AVE.',F5.1,F6.1)
      PRINT 506,SBIG,SMIN      ! Biggest and smallest values and
      PRINT 507,MONTH(MAXS),MONTH(MINS)  ! corresponding months
506   FORMAT(/' BEST/WORST-',2F7.1)
507   FORMAT(/' OCCURED IN ',2('    ',A3))
      PRINT 530,UQ
      PRINT 531,SQ
530   FORMAT(/' CARS SOLD BY QUARTER',4I8)
531   FORMAT(' SALES BY QUARTER    ',4F8.1)
      STOP
      END PROGRAM P54