IMPLICIT INTEGER*2 (A-Z) PARAMETER LEN = 59 ! WIDTH OF PAPER - 20 C NOTE: LEN SHOULD BE ODD INTEGER*4 TEMP4,NEWDAT(5),OLDDAT(5) INTEGER*2 TEMP2(2),STUFF(10) INTEGER*2 STRING(9) LOGICAL*1 BLANK,DELTA,TOTALC,PLOTBF(LEN) REAL DELTIM,CNULL,CUSER,CSWAP,CBATCH,CREAL REAL TNULL,TUSER,TSWAP,TBATCH,TREAL REAL TEMPR EQUIVALENCE(TEMP2,TEMP4) DATA BLANK/1H / ! SPACE DATA DELTA/1H*/ ! DELTA PERCENT CHARACTER DATA TOTALC/1H+/ ! CUMULATIVE PERCENT CHAR C C OPEN DATA FILE OPEN(UNIT=1,NAME='STAT.DAT',TYPE='OLD',READONLY, 1 CARRIAGECONTROL='NONE') C C SET OLDDAT TO -1 TO FORCE INITIAL HEADING OLDDAT(1) = 9999999 C C FIND MIDDLE OF PLOT FIELD (IMID) IMID = ((LEN-1)/2) + 1 C C FIND 25% AND 75% POSITIONS IN PLOT FIELD I25P = ((LEN-1)/4) + 1 I75P = LEN-I25P + 1 C C READ NEXT RECORD C 5 READ(1,20,END=9999)STRING,USERS,STUFF 20 FORMAT(9A2,X,11I7) C C CONVERT INT*2 TO DOUBLE WORD INT*4 DO 100 I=1,5 TEMP2(2)=STUFF(I*2-1) TEMP2(1)=STUFF(I*2) NEWDAT(I)=TEMP4 100 CONTINUE C C CHECK FOR TRANSITION IF (NEWDAT(1) .GE. OLDDAT(1)) GOTO 1000 ! SKIP HEADING C C OUTPUT HEADING WRITE(2,110)STRING 110 FORMAT('1RE-BOOT AT ',9A2,/) C C FORM PLOT HEADING C C BLANK OUT PLOTBF DO 115 I=1,LEN PLOTBF(I) = BLANK 115 CONTINUE C C 0% PLOTBF(1)=1H0 PLOTBF(2)=1H% C C 50% PLOTBF(IMID-1) = 1H5 PLOTBF(IMID) = 1H0 PLOTBF(IMID+1) = 1H% C C 100% PLOTBF(LEN-3) = 1H1 PLOTBF(LEN-2) = 1H0 PLOTBF(LEN-1) = 1H0 PLOTBF(LEN) = 1H% WRITE(2,120)PLOTBF 120 FORMAT(21X,112A1) C C COPY NEWDAT TO OLDDAT GOTO 8000 C C PLOT CURRENT LINE 1000 CONTINUE DELTIM = NEWDAT(1) - OLDDAT(1) C CNULL = 100. * ((NEWDAT(2)-OLDDAT(2))/DELTIM) CUSER = 100. * ((NEWDAT(3)-OLDDAT(3))/DELTIM) CSWAP = 100. * ((NEWDAT(4)-OLDDAT(4))/DELTIM) CBATCH = 100. * ((NEWDAT(5)-OLDDAT(5))/DELTIM) CREAL = 100. - CNULL - CUSER - CSWAP - CBATCH C TNULL = 100. * NEWDAT(2)/NEWDAT(1) TUSER = 100. * NEWDAT(3)/NEWDAT(1) TSWAP = 100. * NEWDAT(4)/NEWDAT(1) TBATCH = 100. * NEWDAT(5)/NEWDAT(1) TREAL = 100. - TNULL - TUSER - TSWAP - TBATCH C C PLOT DATA DO 2000 I = 2,LEN-1 PLOTBF(I) = BLANK 2000 CONTINUE PLOTBF(1) = 1H! PLOTBF(I25P) = 1H. PLOTBF(IMID) = 1H: PLOTBF(I75P) = 1H. PLOTBF(LEN) = 1H! C C FILL IN PLOT LINE TEMPR = (CUSER+CBATCH) * (LEN/100.) IPOS = TEMPR + 1 PLOTBF(IPOS) = DELTA TEMPR = (TUSER+TBATCH) * (LEN/100.) IPOS1 = TEMPR + 1 PLOTBF(IPOS1) = TOTALC C C OUTPUT PLOT LINE WRITE(2,2900)STRING,PLOTBF 2900 FORMAT(X,9A2,2X,112A1) C C MOVE NEWDAT INTO OLDDAT 8000 CONTINUE DO 8010 I=1,5 OLDDAT(I) = NEWDAT(I) 8010 CONTINUE C C READ NEXT RECORD GOTO 5 C C END OF FILE 9999 CLOSE (UNIT=1) CALL EXIT END