All pastes #996104 Raw Edit

Something

public text v1 · immutable
#996104 ·published 2008-04-24 18:48 UTC
rendered paste body
      program TTPV
c     This program reads data from a file, then calculates the average
c     of the data and displays it in a readable table.
c     *******Nathaniel Hayes 4/02/08 ***********
      CHARACTER*2, TCH
      integer EOF, TIME, COUNT
      logical TEST
      real TEMP, PRES, VOL, SUMT, SUMP, SUMV, ASUMT, ASUMP, ASUMV
      DATA COUNT, TCH, SUMT, SUMP, SUMV/0, 'am', 3*0.0/

c     ***Prep by opening the File*****
      open (UNIT=15, FILE='free.txt', STATUS= 'OLD')
      
c     ***Set up the Formats to be used throughout the program***

100   FORMAT(1x, I4.4, A3, F10.1, F12.1, F10.1)
110   FORMAT(1X, 'AVERAGES', F10.3, F12.3, F10.3)

c     ***Set up the Header of the Table****
      Print *, 'Time', '     Temperature', '   Pressure', '  Volume'
      Print *, '====', '     ===========', '   ========', '  ======'
      
c     ***Read the file and execute minor adjustments***
      read(UNIT=15, FMT=*, IOSTAT=EOF) TIME, TEMP, PRES, VOL
10      if(EOF .GE. 0) THEN
          COUNT=COUNT+1
          
c     ***Change to military time and add appropraite time stamp***
      TEST = .TRUE.
        if(TIME .GE. 1200) TEST = .FALSE.
        if(TIME .GE. 1300) TIME=TIME-1200
        if(test) then
         goto 20
        else
          TCH='pm'
          endif
          
c     ***Start the average calculations and print the numbers***
20      SUMT=SUMT + TEMP
        SUMP=SUMP + PRES
        SUMV=SUMV + VOL
        print 100, TIME, TCH, TEMP, PRES, VOL
        read(UNIT=15, FMT=*, IOSTAT=EOF) TIME, TEMP, PRES, VOL
      goto 10
      end if
      
c     ***Finish the average calculations and End the tables***
      ASUMT=SUMT/COUNT
      ASUMP=SUMP/COUNT
      ASUMV=SUMV/COUNT
      
      print *, '======================================='
      print 110, ASUMT, ASUMP, ASUMV
      
      end