1
2      SUBROUTINE OUMXVL
3!***********************************************************************
4!                 OUMXVL Module of the AMS/EPA Regulatory Model - AERMOD
5!
6!        PURPOSE: To Process Maximum (Overall) Value Table
7!                 Output Selections
8!
9!        PROGRAMMER: Jeff Wang, Roger Brode
10!
11!        DATE:    March 2, 1992
12!
13!        INPUTS:  Input Runstream Parameters
14!
15!        OUTPUTS: Output Option Switches
16!
17!        CALLED FROM:   OUCARD
18!***********************************************************************
19
20!     Variable Declarations
21      USE MAIN1
22      IMPLICIT NONE
23      CHARACTER MODNAM*12
24
25      SAVE
26      INTEGER :: I , J , IPRDT
27      LOGICAL FOUND
28
29!     Variable Initializations
30      MODNAM = 'OUMXVL'                                                 !      3
31      FOUND = .FALSE.
32
33!     Check for Appropriate Number of Fields
34      IF ( IFC.EQ.2 ) THEN
35!        Error Message: No Parameters
36         CALL ERRHDL(PATH,MODNAM,'E','200',KEYWRD)                      !      0
37         GOTO 999
38      ELSEIF ( IFC.EQ.3 ) THEN
39!        Error Message: Not Enough Parameters
40         CALL ERRHDL(PATH,MODNAM,'E','201',KEYWRD)                      !      0
41         GOTO 999
42      ELSEIF ( IFC.GT.4 ) THEN
43!        Error Message: Too Many Fields
44         CALL ERRHDL(PATH,MODNAM,'E','202',KEYWRD)                      !      0
45         GOTO 999
46      ENDIF
47
48!     Retrieve Averaging Period
49      IF ( FIELD(3).EQ.'ALLAVE' ) THEN                                  !      3
50!        Go For All Averaging Periods
51         DO I = 1 , NUMAVE                                              !      3
52            MAXAVE(I) = 1                                               !      6
53         ENDDO
54         FOUND = .TRUE.                                                 !      3
55      ELSE
56         IF ( FIELD(3).EQ.'MONTH' .AND. MONTH ) THEN                    !      0
57!           Set Value of IPRDT = 720 for MONTHly Averages
58            IPRDT = 720                                                 !      0
59         ELSE
60            CALL STONUM(FIELD(3),ILEN_FLD,FNUM,IMIT)                    !      0
61            IF ( IMIT.NE.1 ) THEN
62!              Write Error Message:Invalid Numerical Field
63               CALL ERRHDL(PATH,MODNAM,'E','208',KEYWRD)                !      0
64               GOTO 999
65            ENDIF
66            IPRDT = NINT(FNUM)                                          !      0
67         ENDIF
68!        Check Averaging Period Against KAVE Array
69         J = 1                                                          !      0
70         DO WHILE ( .NOT.FOUND .AND. J.LE.NUMAVE )
71            IF ( IPRDT.EQ.KAVE(J) ) THEN                                !      0
72               FOUND = .TRUE.                                           !      0
73               INDAVE = J
74               MAXAVE(J) = 1
75            ENDIF
76            J = J + 1                                                   !      0
77         ENDDO
78      ENDIF
79      IF ( .NOT.FOUND ) THEN                                            !      3
80!        Error Message: E203 AVEPER Not Match With Pre-Defined One
81         CALL ERRHDL(PATH,MODNAM,'E','203','AVEPER')                    !      0
82         GOTO 999
83      ENDIF
84
85!     Set Number of Maximum Values to Sort
86      CALL STONUM(FIELD(4),ILEN_FLD,FNUM,IMIT)                          !      3
87      IF ( IMIT.NE.1 ) THEN
88!        Write Error Message:Invalid Numerical Field
89         CALL ERRHDL(PATH,MODNAM,'E','208',KEYWRD)                      !      0
90         GOTO 999
91      ENDIF
92      INUM = NINT(FNUM)                                                 !      3
93      IF ( INUM.GT.NMAX ) THEN
94!        WRITE Error Message:  Maximum Value Selected Exceeds NMAX
95         WRITE (DUMMY,'(I8)') NMAX                                      !      0
96         CALL ERRHDL(PATH,MODNAM,'E','280',DUMMY)
97         GOTO 999
98      ELSEIF ( INUM.LE.0 ) THEN
99!        Write Error Message:Invalid Numerical Field
100         CALL ERRHDL(PATH,MODNAM,'E','208',KEYWRD)                      !      0
101         GOTO 999
102      ENDIF
103
104      IF ( FIELD(3).EQ.'ALLAVE' ) THEN                                  !      3
105!        Go For All Averaging Periods
106         DO I = 1 , NUMAVE                                              !      3
107            IMXVAL(I) = INUM                                            !      6
108         ENDDO
109      ELSE
110         IMXVAL(INDAVE) = INUM                                          !      0
111      ENDIF
112
113      IF ( INUM.GT.NMXVAL ) NMXVAL = INUM                               !      3
114
115 999  CONTINUE                                                          !      3
116      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