1 2 SUBROUTINE SUMTBL 3 !*********************************************************************** 4 ! SUMTBL Module of the AMS/EPA Regulatory Model - AERMOD 5 ! 6 ! PURPOSE: To Print Out The Error Summary Table 7 ! 8 ! PROGRAMMER: Jeff Wang, Roger Brode 9 ! 10 ! DATE: March 2, 1992 11 ! 12 ! INPUTS: Error Message Temporary File 13 ! 14 ! OUTPUTS: Summary Of Errors 15 ! 16 ! CALLED FROM: This is A Utility Program 17 !*********************************************************************** 18 19 ! Variable Declarations 20 USE MAIN1 21 IMPLICIT NONE 22 CHARACTER MODNAM*12 23 24 SAVE 25 REAL :: PERCENT 26 INTEGER :: J , IERRLN 27 CHARACTER ERRTP*1 , ERRCD*3 , ERRMG1*50 , ERRMG2*8 28 29 ! Variable Initialization 30 MODNAM = 'SUMTBL' ! 4 31 32 ! Write Out The Total Error Statistics 33 WRITE (IOUNIT,*) ' --------- Summary of Total Messages --------' 34 WRITE (IOUNIT,*) ' ' 35 WRITE (IOUNIT,9014) IFTL 36 9014 FORMAT (' A Total of ',I10,' Fatal Error Message(s)') 37 WRITE (IOUNIT,9015) IWRN 38 9015 FORMAT (' A Total of ',I10,' Warning Message(s)') 39 WRITE (IOUNIT,9016) INFO 40 9016 FORMAT (' A Total of ',I10,' Informational Message(s)') 41 IF ( NTOTHRS.GT.0 ) THEN 42 WRITE (IOUNIT,9017) ICLM ! 2 43 9017 FORMAT (/,' A Total of ',I10,' Calm Hours Identified') 44 ! Calculate percentage of missing hours, and check for > 10 percent. 45 PERCENT = 100.*(FLOAT(IMSG)/FLOAT(NTOTHRS)) 46 WRITE (IOUNIT,9018) IMSG , PERCENT 47 9018 FORMAT (/,' A Total of ',I10,' Missing Hours Identified (', & 48 & F6.2,' Percent)') 49 IF ( PERCENT.GT.10.0 ) THEN 50 WRITE (IOUNIT,9019) ! 0 51 9019 FORMAT (/,' CAUTION!: Number of Missing Hours Exceeds 10 ',& 52 & 'Percent of Total!',/,12X,'Data May Not Be ', & 53 & 'Acceptable for Regulatory Applications.',/,12X, & 54 & 'See Section 5.3.2 of "Meteorological Monitoring ', & 55 & 'Guidance',/,12X,'for Regulatory Modeling ', & 56 & 'Applications" (EPA-454/R-99-005).') 57 ENDIF 58 ENDIF 59 IF ( IHEZ.GT.0 ) THEN ! 4 60 WRITE (IOUNIT,9020) IHEZ ! 0 61 9020 FORMAT (/,' A Total of ',I10, & 62 & ' Cases Identified with HE > ZI') 63 ENDIF 64 WRITE (IOUNIT,*) ' ' ! 4 65 66 ! Write Out All The Fatal Error Messages 67 WRITE (IOUNIT,*) ' ' 68 WRITE (IOUNIT,*) ' ******** FATAL ERROR MESSAGES ******** ' 69 REWIND IERUNT 70 EOF = .FALSE. 71 J = 0 72 DO WHILE ( .NOT.EOF ) 73 READ (IERUNT,1116,END=99,ERR=9999) PATH , ERRTP , ERRCD , & 74 & IERRLN , MODNAM , ERRMG1 , ERRMG2 75 IF ( ERRTP.EQ.'E' ) THEN ! 1280 76 J = J + 1 ! 4 77 WRITE (IOUNIT,1117) PATH , ERRTP , ERRCD , IERRLN , & 78 & MODNAM(1:6) , ERRMG1 , ERRMG2 79 ENDIF 80 GOTO 11 ! 1280 81 99 EOF = .TRUE. ! 4 82 11 CONTINUE ! 1284 83 ENDDO 84 85 ! If No Fatal Error Messages, Then Write 'NONE' 86 IF ( J.EQ.0 ) THEN ! 4 87 WRITE (IOUNIT,*) ' *** NONE *** ' ! 2 88 WRITE (IOUNIT,*) ' ' 89 ENDIF 90 91 ! Write Out All The Warning Messages 92 WRITE (IOUNIT,*) ' ' ! 4 93 WRITE (IOUNIT,*) ' ******** WARNING MESSAGES ******** ' 94 REWIND IERUNT 95 EOF = .FALSE. 96 J = 0 97 DO WHILE ( .NOT.EOF ) 98 READ (IERUNT,1116,END=999,ERR=9999) PATH , ERRTP , ERRCD , & 99 & IERRLN , MODNAM , ERRMG1 , ERRMG2 100 IF ( ERRTP.EQ.'W' ) THEN ! 1280 101 J = J + 1 ! 0 102 IF ( .NOT.NOWARN ) THEN 103 IF ( J.LE.999 ) THEN ! 0 104 WRITE (IOUNIT,1117) PATH , ERRTP , ERRCD , IERRLN , & 105 & MODNAM(1:6) , ERRMG1 , ERRMG2 106 ELSE 107 WRITE (IOUNIT,*) 'More Than 999 Warning Messages ' , & 108 & 'Found. See ERRORFIL Output for' , & 109 & ' the Remainder.' 110 EOF = .TRUE. 111 ENDIF 112 ENDIF 113 ENDIF 114 GOTO 111 ! 1280 115 999 EOF = .TRUE. ! 4 116 111 CONTINUE ! 1284 117 ENDDO 118 119 ! If No Warning Messages, Then Write 'NONE' 120 IF ( J.EQ.0 ) THEN ! 4 121 WRITE (IOUNIT,*) ' *** NONE *** ' ! 4 122 WRITE (IOUNIT,*) ' ' 123 ELSEIF ( NOWARN ) THEN 124 WRITE (IOUNIT,*) ' ** WARNINGS SUPPRESSED BY NOWARN OPTION **' ! 0 125 WRITE (IOUNIT,*) ' ' 126 ENDIF 127 128 ! Use BACKSPACE To Reposition Temporary Error Message File Ahead of EOF; 129 ! This Is Needed in Order To Allow For Additional Message Writes 130 BACKSPACE IERUNT ! 4 131 132 GOTO 1000 133 134 ! WRITE Error Message: Error Reading Temp Error Message File 135 9999 CALL ERRHDL(PATH,MODNAM,'E','510','ERRORMSG') ! 0 136 137 1000 CONTINUE ! 4 138 139 1116 FORMAT (A2,1X,A1,A3,I6,1X,A6,1X,A50,1X,A8) 140 1117 FORMAT (1X,A2,1X,A1,A3,I6,1X,A6,':',A50,1X,A8) 141 END
HyperKWIC - Version 1.00DD executed at 20:00 on 1 Mar 2018 | Personal or Academic or Evaluation User | Free for Non-Commercial, Non-Government Use