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