SMFSTAT 
*NOSEQ
*WIDTH 132
.PROC,SMFSTAT.
RETURN,ZZZDATA. 
REWIND,ZZZSTAT,TAPE2,TAPE3,TAPE4,ZZZLGO.
$FSE,ZZZDATA.SUN
FTN5,I=ZZZSTAT,L=0,B=ZZZLGO.
ZZZLGO,ZZZDATA. 
REWIND,TAPE2,TAPE3,TAPE4,STATOUT. 
COPYSBF,TAPE4,STATOUT.
COPYSBF,TAPE3,STATOUT.
COPYSBF,TAPE2,STATOUT.
REWIND,TAPE4. 
COPY,TAPE4,OUTPUT.
REVERT. SMFSTAT COMPLETE. 
EXIT. 
REVERT. SMFSTAT FAILED. 
.DATA,ZZZSTAT.
          PROGRAM SMFSTAT(TAPE1,TAPE2,TAPE3,TAPE4)
  
          INTEGER SCLR(49), VCTR1(18), VCTR2(18)
          INTEGER VCTR3(18), VCTR4(18), VCTR5(18), VCTR6(18)
  
          CHARACTER*20 LBL1(18), LBL2(18), LBL3(18) 
          CHARACTER*20 LBL4(18), LBL5(18), LBL6(18) 
          CHARACTER*55 TAG(43)
  
          DATA (TAG(I),I=1,15) /
     +      ' SURPLUS WORD, NOT ON CONSOLE DISPLAYS            ', 
     +      ' NUMBER OF CRITICAL IAF BUFFER SHORTAGES          ', 
     +      ' NUMBER OF TASK SHORTAGES                         ', 
     +      ' NUMBER OF SESSIONS                               ', 
     +      ' NUMBER OF TRANSACTIONS                           ', 
     +      ' TOTAL RESPONSE TIME IN MILLISECONDS              ', 
     +      ' TOTAL THINK TIME IN MILLISECONDS                 ', 
     +      ' PREEMPTIVE SWAPS TO ADVANCE TTY OUTPUT           ', 
     +      ' PREEMPTIVE SWAPS FOR TASK SHORTAGE               ', 
     +      ' PREEMTIVE SWAPS FOR IAF BUFFER SHORTAGE          ', 
     +      ' TTY OUTPUT FRAGMENTATION (BUFFER OVERFLOW)       ', 
     +      ' USER BREAKS                                      ', 
     +      ' USER DETACHES                                    ', 
     +      ' MAXIMUM USERS LOGGED IN                          ', 
     +      ' CURRENT NUMBER OF USERS                          ' /
          DATA (TAG(I),I=16,30) / 
     +      ' REAL TIME CLOCK                                  ', 
     +      ' NUMBER OF RECALL CYCLES                          ', 
     +      ' NUMBER OF USER-ECS SWAPS                         ', 
     +      ' NUMBER OF DISK SWAPS                             ', 
     +      ' TOTAL SWAPPING TIME IN MILLISECONDS              ', 
     +      ' TOTAL CIO TIME IN MILLISECONDS                   ', 
     +      ' NUMBER OF CIO CALLS                              ', 
     +      ' NUMBER OF TRANSACTIONS CAUSING ZERO CIO CALLS    ', 
     +      ' NUMBER OF TRANSACTIONS CAUSING 16/MORE CIO CALLS ', 
     +      ' NUMBER OF CIO CALLS IN LARGE TRANSACTIONS        ', 
     +      ' TOTAL WORKFILE CIO CALLS FOR INITIAL BUILDS      ', 
     +      ' TTY INPUT WORDS                                  ', 
     +      ' TTY OUTPUT WORDS                                 ', 
     +      ' TTY OUTPUT BLOCKS                                ', 
     +      ' NUMBER OF OUTPUT FRAGMENTS WITH SWAP AVOIDANCE   ' /
          DATA (TAG(I),I=31,43) / 
     +      ' TOTAL MILLSECONDS OF TASK UTILIZATION            ', 
     +      ' WORKFILE LINE ACCESSES                           ', 
     +      ' WORKFILE SECTORS READ FROM CACHE                 ', 
     +      ' WORKFILE SECTORS READ FROM DISK                  ', 
     +      ' WORKFILE DRAIN OUTPUT TO SWITCH BUFFER TO INPUT  ', 
     +      ' WORKFILE PURGE WRONG INPUT SECTOR                ', 
     +      ' WORKFILE CACHE FLUSH SEQUENCES                   ', 
     +      ' WORKFILE PURGE INPUT TO SWITCH BUFFER TO OUTPUT  ', 
     +      ' WORKFILE SECTORS WRITTEN TO DISK                 ', 
     +      ' WORKFILE DISCONTIGUOUS WRITE EVENTS              ', 
     +      ' WORKFILE PADDING SECTORS                         ', 
     +      ' WORKFILE CIO READ FUNCTIONS                      ', 
     +      ' RECALL TO MINIMIZE CPU UTILIZATION              ' / 
  
          DATA LBL1/ ' ', ' ', 'INSTANT', '1/64 SEC', '1/32 SEC', 
     +      '1/16 SEC', '1/8 SEC', '1/4 SEC', '1/2 SEC', '1 SEC', 
     +      '1-2 SEC', '2-4 SEC', '4-8 SEC', '8-16 SEC', '16-32 SEC', 
     +      '32-64 SEC', '64-128 SEC', '128 OR MORE SEC' /
  
          DATA LBL2/ ' ', ' ', 'LESS THAN 1 SEC', '1-2 SEC',
     +      '2-4', '4-8', '8-16', '16-32', '32-64', '64-128', 
     +      '128-256', '256-512', '512-1K', '1K - 2K', '2K - 4K', 
     +      '4K - 8K', '8K - 16K', '16K OR MORE' /
  
          DATA LBL3/ ' ', ' ', 'ZERO', '1', '2-3', '4-7', 
     +      '8-15', '16-31', '32-63', '64-127', 
     +      '128-255', '256-511', '512-1K', '1K - 2K', '2K - 4K', 
     +      '4K - 8K', '8K - 16K', '16K OR MORE' /
  
          DATA LBL4/ ' ', ' ', 'ZERO', '1', '2-3', '4-7', 
     +      '8-15', '16-31', '32-63', '64-127', 
     +      '128-255', '256-511', '512-1K', '1K - 2K', '2K - 4K', 
     +      '4K - 8K', '8K - 16K', '16K OR MORE' /
  
          DATA LBL5/ ' ', ' ', 'ZERO', '1', '2-3', '4-7', 
     +      '8-15', '16-31', '32-63', '64-127', 
     +      '128-255', '256-511', '512-1K', '1K - 2K', '2K - 4K', 
     +      '4K - 8K', '8K - 16K', '16K OR MORE' /
  
          DATA LBL6/ ' ', ' ', 'ZERO', '1', '2-3', '4-7', 
     +      '8-15', '16-31', '32-63', '64-127', 
     +      '128-255', '256-511', '512-1K', '1K - 2K', '2K - 4K', 
     +      '4K - 8K', '8K - 16K', '16K OR MORE' /
  
          READ(1,1001) SCLR, VCTR1, VCTR2, VCTR3, VCTR4,
     +      VCTR5, VCTR6
1001      FORMAT( 49(O20,/), 6(O10,O10,/,4O5,/,4O5,/,4O5,/,4O5,/) ) 
  
          WRITE(3,3001) (TAG(I),SCLR(I),I=2,43) 
3001      FORMAT(1X,A55,I10)
  
          WRITE (4,4001) SCLR(4), SCLR(5), SCLR(14) 
4001      FORMAT(' SESSIONS, TRANSACTS, MAX USERS  ', 3I10) 
  
          WRITE (4,4002) .001*FLOAT(SCLR(6))/SCLR(5)
4002      FORMAT(' AVERAGE RESPONSE TIME        ', F10.3) 
  
          WRITE (4,4003) .001*FLOAT(SCLR(7))/SCLR(5)
4003      FORMAT(' AVERAGE THINK TIME           ', F10.3) 
  
          WRITE (4,4004) .001*FLOAT(SCLR(21))/SCLR(22)
4004      FORMAT(' AVERAGE CIO TIME             ', F10.3) 
  
          WRITE (4,4005) FLOAT(SCLR(22))/SCLR(5)
4005      FORMAT(' AVERAGE CIO PER TRANSACTION  ', F10.3) 
  
          WRITE (4,4006) FLOAT(SCLR(5))/SCLR(4) 
4006      FORMAT(' AVERAGE TRANSACT PER SESSION ', F10.3) 
  
          WRITE (4,4007) FLOAT(SCLR(23))/SCLR(5)
4007      FORMAT(' FRACTION OF ZERO-CIO TRANSACT', F10.3) 
  
          WRITE (4,4008) FLOAT(SCLR(34))/SCLR(33) 
4008      FORMAT(' RATIO PRUS READ/CACHED       ', F10.3) 
  
          WRITE (4,4009) FLOAT(SCLR(34))/SCLR(42) 
4009      FORMAT(' RATIO PRUS READ/CIO CALL     ', F10.3) 
  
          WRITE (4,4010) FLOAT(SCLR(33))/SCLR(42) 
4010      FORMAT(' RATIO CACHE HITS/CIO CALL    ', F10.3) 
  
          WRITE (4,4011) FLOAT(SCLR(27))/SCLR(5)
4011      FORMAT(' INPUT WORDS PER TRANSACT     ', F10.3) 
  
          WRITE (4,4012) FLOAT(SCLR(28))/SCLR(5)
4012      FORMAT(' OUTPUT WORDS PER TRANSACT    ', F10.3) 
  
          WRITE (4,4013) FLOAT(SCLR(24))/SCLR(5)
4013      FORMAT(' FRACTION OF TRANSACTS LARGE  ', F10.3) 
  
          WRITE (4,4014) FLOAT(SCLR(25))/SCLR(22) 
4014      FORMAT(' FRACTION OF CIOS, LARGE TRANS', F10.3) 
  
          WRITE (4,4015) FLOAT(SCLR(32))/SCLR(5)
4015      FORMAT(' AVERAGE LINE ACCESSES/TRANS  ', F10.3) 
  
          WRITE (4,4016) FLOAT(SCLR(32))/SCLR(22) 
4016      FORMAT(' RATIO LINE ACCESSES TO CIOS  ', F10.3) 
  
          WRITE (4,4017) FLOAT(SCLR(31))/SCLR(16) 
4017      FORMAT(' TASK UTILIZATION FACTOR      ', F10.3) 
  
          WRITE (4,4018) FLOAT(SCLR(30))/SCLR(11) 
4018      FORMAT(' FRACTION OF MSGS UNSWAPPED   ', F10.3) 
  
  
  
          WRITE(2,2051) VCTR1(1)/(64.0*VCTR1(2))
2051      FORMAT(/,' AVERAGE RESPONSE TIME PER TRANSACTION ',F10.3) 
  
          WRITE(2,2001) (LBL1(I),VCTR1(I),I=3,18) 
2001      FORMAT(/,' TRANSACTIONS PER RESPONSE TIME CATEGORY ', //, 
     +      16(10X,A12,I10,/) ) 
  
          WRITE(2,2052) VCTR2(1)/FLOAT(VCTR2(2))
2052      FORMAT(/,' AVERAGE THINK TIME PER TRANSACTION ',F10.3)
  
          WRITE(2,2002) (LBL2(I),VCTR2(I),I=3,18) 
2002      FORMAT(/,' TRANSACTIONS PER THINK TIME CATEGORY ', //,
     +      16(10X,A12,I10,/) ) 
  
          WRITE(2,2053) VCTR3(1)/FLOAT(VCTR3(2))
2053      FORMAT(/,' AVERAGE CIO CALLS PER TRANSACTION ',F10.3) 
  
          WRITE(2,2003) (LBL3(I),VCTR3(I),I=3,18) 
2003      FORMAT(/,' TRANSACTIONS PER CIO COUNT CATEGORY ', //, 
     +      16(10X,A12,I10,/) ) 
  
          WRITE(2,2054) VCTR4(1)/FLOAT(VCTR4(2))
2054      FORMAT(/,' AVERAGE TRANSACTIONS PER SESSION ',F10.3)
  
          WRITE(2,2004) (LBL4(I),VCTR4(I),I=3,18) 
2004      FORMAT(/,' SESSIONS PER TRANSACTION COUNT CATEGORY ', //, 
     +      16(10X,A12,I10,/) ) 
  
          WRITE(2,2055) VCTR5(1)/FLOAT(VCTR5(2))
2055      FORMAT(/,' AVERAGE WORKFILE LINES PER SESSION ',F10.3)
  
          WRITE(2,2005) (LBL5(I),VCTR5(I),I=3,18) 
2005      FORMAT(/,' SESSIONS PER FILE SIZE CATEGORY ', //, 
     +      16(10X,A12,I10,/) ) 
  
          WRITE(2,2056) VCTR6(1)/FLOAT(VCTR6(2))
2056      FORMAT(/,' AVERAGE OUTPUT MESSAGE SIZE ',F10.3) 
  
          WRITE(2,2006) (LBL6(I),VCTR6(I),I=3,18) 
2006      FORMAT(/,' TRANSACTIONS PER OUTPUT MSG SIZE CATEGORY ', //, 
     +      16(10X,A12,I10,/) ) 
  
          STOP
          END 
*WEOR 
