PROGRAM ERRSUM C C GET THE SUMMARY STATISTICS FOR EACH ERROR TYPE C BYTE AFMT,AENTRY INTEGER COUNTS(0:255) DIMENSION IHARD(0:100,64),ISOFT(0:100,64) DIMENSION NAMDEV(64) COMMON /ERRREC/ ISIZE,AFMT,AENTRY,ITIME(6),IERR,J1,J2, + IDEV,IUNIT,IFILL(100) BYTE IREC(256) EQUIVALENCE (IREC(1),ISIZE) C PARAMETER KSTRT="40,KHDW="1,KITMO="140,KMEM="2 PARAMETER KPWR="42,KUNEX="141,KCFG2="50,KCFG="51 PARAMETER KDMO0="100,KDMO1="101,KINI=0,KTERM="41 C DATA COUNTS/256*0/ DATA IHARD/6464*0/ DATA ISOFT/6464*0/,ISEQ/0/ DATA NAMDEV/64*0/ C C C CV3 OPEN(NAME='ERROR.SYS',UNIT=1,ACCESS='SEQUENTIAL',ERR=90, CV3 + RECORDTYPE='VARIABLE',READONLY,FORM='FORMATTED') OPEN(UNIT=1,NAME='ERROR.SYS',TYPE='OLD',READONLY,ERR=90) C 10 READ(1,11,ERR=90,END=100) ICNT,(IREC(K),K=1,ICNT) 11 FORMAT(Q,A1) COUNTS(AENTRY)=COUNTS(AENTRY)+1 D IF(AENTRY.EQ.KCFG) GOTO 10 D WRITE(5,201) AENTRY,ISIZE,ICNT,(IREC(K),K=1,20) D201 FORMAT(1X,'TYPE =',O4,' HDRSIZE =',I4,' SIZE=',I6,2(/,T5,10O5)) D IF(AENTRY.EQ.KHDW.OR.AENTRY.EQ.KITMO) WRITE(5,202) IDEV,IUNIT D202 FORMAT(T6,'ON ',A2,O2) IF(AENTRY.NE.KHDW.AND.AENTRY.NE.KITMO) GOTO 10 DO 20 I=1,64 IF(NAMDEV(I).EQ.0) GOTO 22 IF(NAMDEV(I).EQ.IDEV) GOTO 24 20 CONTINUE 22 NAMDEV(I)=IDEV 24 IHARD(IUNIT,I)=IHARD(IUNIT,I)+1 IOFF=IFILL(2)/2+2 IF(IFILL(IOFF).GE.0) ISOFT(IUNIT,I)=ISOFT(IUNIT,I)+1 GOTO 10 C 90 WRITE(5,91) 91 FORMAT(1X,'ERROR READING ERROR.SAV - SUMMARY TERMINATED') IEXIT=4 GOTO 160 C 100 WRITE(5,101) 101 FORMAT(1X,T20,' ERROR SUMMARY:',/) D DO 300 I=1,64 D IF(NAMDEV(I).EQ.0) GOTO 301 D WRITE(5,251) NAMDEV(I),(IHARD(J,I),J=0,63) D251 FORMAT(1X,A2,8(8O7,/)) D300 CONTINUE D301 IH=0 ISUM=COUNTS(KPWR)+COUNTS(KMEM)+COUNTS(KUNEX)+COUNTS(KHDW)+ + COUNTS(KITMO) WRITE(5,102) COUNTS(KPWR) 102 FORMAT(2X,'POWER FAILS:',T28,I10) COUNTS(KPWR)=0 WRITE(5,103) COUNTS(KMEM) 103 FORMAT(2X,'MEMORY PARITY ERRORS:',T28,I10) COUNTS(KMEM)=0 WRITE(6,104) COUNTS(KUNEX) 104 FORMAT(2X,'UNEXPECTED INTERRUPTS:',T28,I10) COUNTS(KUNEX)=0 WRITE(5,106) COUNTS(KITMO) 106 FORMAT(2X,'SOFTWARE DEVICE TIMEOUTS:',T28,I10) IBYDEV=COUNTS(KITMO)+COUNTS(KHDW) IEXIT=COUNTS(KHDW) COUNTS(KITMO)=0 WRITE(5,107) COUNTS(KHDW) 107 FORMAT(2X,'HARDWARE DEVICE ERRORS:',T28,I10) COUNTS(KHDW)=0 COUNTS(KSTRT)=0 COUNTS(KDMO0)=0 COUNTS(KDMO1)=0 COUNTS(KINI)=0 COUNTS(KTERM)=0 COUNTS(KCFG2)=0 COUNTS(KCFG)=0 DO 120 I=0,255 IF(COUNTS(I).NE.0) WRITE(5,111) I,COUNTS(I) 111 FORMAT(7X,'ERROR CODE ',O3,':',T28,I10) 120 CONTINUE WRITE(5,121) 121 FORMAT(1X) IF(IBYDEV.EQ.0) GOTO 155 WRITE(5,122) 122 FORMAT(2X,'SUMMARY OF HARDWARE AND TIMEOUT ERRORS', + ' BY DEVICE:') WRITE(5,123) 123 FORMAT('0',T46,'HARD',T56,'SOFT',/) IS=0 IH=0 DO 150 I=1,64 IF(NAMDEV(I).EQ.0) GOTO 151 IC=1 DO 140 J=0,90 IF(J.EQ.8) IC=2 IF(IHARD(J,I).EQ.0) GOTO 140 IHARD(J,I)=IHARD(J,I)-ISOFT(J,I) WRITE(5,144) NAMDEV(I),J,IHARD(J,I),ISOFT(J,I) 144 FORMAT(T35,A2,O,T40,2I10) IH=IH+IHARD(J,I) IS=IS+ISOFT(J,I) 140 CONTINUE 150 CONTINUE 151 K=IH+IS WRITE(5,152) K,IH,IS 152 FORMAT('0',T15,'TOTALS:',T30,3I10,/) C C EXIT STATUS IS 1 IF ANY HARDWARE ERRORS C 155 IF(IEXIT.GT.0) IEXIT=1 160 CLOSE(UNIT=1) CALL EXST(IEXIT) END