program generate implicit none integer, parameter :: maxgen = 4 integer, parameter :: maxtime = 6 character(len=20) :: filename integer :: igen integer :: itime real, dimension(maxtime,maxgen) :: power real, dimension(maxgen) :: powerave real, dimension(maxtime) :: powersum integer :: status powerave = 0.0 powersum = 0.0 write(*, 1000) 1000 format (1x, 'Enter the name of the file: ') read (*, 1010) filename 1010 format (A20) open (unit = 9, file = filename, status='old', action='read', & iostat=status) fileopen: if (status==0) then read(9, *, iostat=status) power sum1: do itime = 1, maxtime sum2: do igen = 1, maxgen powersum(itime) = power(itime,igen) + powersum(itime) end do sum2 end do sum1 ave1: do igen = 1, maxgen ave2: do itime = 1, maxtime powerave(igen) = power(itime,igen) + powerave(igen) end do ave2 powerave(igen) = powerave(igen) / real(maxtime) end do ave1 out1: do itime = 1, maxtime write(*,1020) itime, powersum(itime) 1020 format ('Instantaneous power at time ', I1, ' is ', & F7.2, 'MW.') end do out1 out2: do igen = 1, maxgen write(*,1030) igen, powerave(igen) 1030 format ('Average power of generator ', I1, ' is ', & F7.2, 'MW.') end do out2 else fileopen write(*, 1050) status 1050 format (1X,'File open failed--status = ', I6) end if fileopen end program