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