1 2 SUBROUTINE CHK_ENDYR 3 !*********************************************************************** 4 ! CHK_ENDYR Module of the AMS/EPA Regulatory Model - AERMOD 5 ! 6 ! PURPOSE: Checks date for "end-of-year" for use in ANNUAL 7 ! averages and post-1997 PM10 processing. 8 ! 9 ! PROGRAMMER: Roger Brode 10 ! 11 ! DATE: 12 ! 13 ! INPUTS: Input Runstream Image Parameters 14 ! 15 ! OUTPUTS: Plant Boundary Receptor Location Inputs 16 ! 17 ! CALLED FROM: HRLOOP 18 !*********************************************************************** 19 20 ! Variable Declarations 21 USE MAIN1 22 IMPLICIT NONE 23 CHARACTER MODNAM*12 24 25 SAVE 26 INTEGER :: IEND_DAY , I , J , K , L , M 27 CHARACTER SOID*8 28 29 ! Variable Initializations 30 MODNAM = 'CHK_ENDYR' ! 0 31 32 IF ( (IENDMN.EQ.2 .AND. IENDDY.EQ.29 .AND. IMONTH.EQ.2) .AND. & 33 & (MOD(IYR,4).NE.0) .OR. & 34 & (MOD(IYR,100).EQ.0 .AND. MOD(IYR,400).NE.0) ) THEN 35 ! Set End Day to 28 for non-leap year February 36 IEND_DAY = 28 ! 0 37 ELSE 38 IEND_DAY = IENDDY ! 0 39 ENDIF 40 41 IF ( IMONTH.EQ.IENDMN .AND. IDAY.EQ.IEND_DAY .AND. & 42 & IHOUR.EQ.IENDHOUR ) THEN 43 ! End of year reached, increment counter and store H4H values 44 NUMYRS = NUMYRS + 1 ! 0 45 IF ( ANNUAL ) CALL PERAVE 46 DO IGRP = 1 , NUMGRP 47 DO IREC = 1 , NUMREC ! 0 48 IF ( PM10AVE .AND. NUMAVE.EQ.1 ) SUMH4H(IREC,IGRP) & 49 & = SUMH4H(IREC,IGRP) + HIVALU(IREC,4,IGRP,1,1) 50 IF ( ANNUAL ) THEN 51 DO ITYP = 1 , NUMTYP ! 0 52 SUMANN(IREC,IGRP,ITYP) = SUMANN(IREC,IGRP,ITYP) & 53 & + ANNVAL(IREC,IGRP,ITYP) 54 ENDDO 55 ENDIF 56 ENDDO 57 ENDDO 58 NREMAIN = 0 ! 0 59 IF ( ANNUAL ) THEN 60 ! Re-initialize the annual counters and array 61 IANHRS = 0 ! 0 62 IANCLM = 0 63 IANMSG = 0 64 IANWET = 0 65 IWETCLM = 0 66 IWETMSG = 0 67 NSKIPTOT = 0 68 NSKIPDRY = 0 69 NSDRYCLM = 0 70 NSDRYMSG = 0 71 NSKIPWET = 0 72 NSWETCLM = 0 73 NSWETMSG = 0 74 DO L = 1 , NUMTYP 75 DO K = 1 , NUMGRP ! 0 76 DO J = 1 , NUMREC ! 0 77 ANNVAL(J,K,L) = 0.0 ! 0 78 ANNVALD(J,K,L) = 0.0 79 ANNVALW(J,K,L) = 0.0 80 ENDDO 81 ENDDO 82 ENDDO 83 ENDIF 84 IF ( PM10AVE .AND. NUMAVE.EQ.1 ) THEN ! 0 85 ! Re-initialize the High Value Arrays for post-1997 PM10 86 DO M = 1 , NUMTYP ! 0 87 DO L = 1 , NUMAVE ! 0 88 DO K = 1 , NUMGRP ! 0 89 DO J = 1 , NUMREC ! 0 90 DO I = 1 , NHIVAL ! 0 91 HIVALU(J,I,K,L,M) = 0.0 ! 0 92 NHIDAT(J,I,K,L,M) = 0 93 HCLMSG(J,I,K,L,M) = ' ' 94 ENDDO 95 ENDDO 96 ENDDO 97 ENDDO 98 ENDDO 99 ENDIF 100 ELSE 101 ! Increment counter for number of hours remaining after 102 ! the end of the last year 103 NREMAIN = NREMAIN + 1 ! 0 104 ENDIF 105 106 CONTINUE ! 0 107 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