1 2 3 SUBROUTINE REFL_HT(HEARG,XARG,SZBARG,VSIGZARG,HEREFL) 4 !*********************************************************************** 5 ! REFL_HT Module of the AMS/EPA Regulatory Model - AERMOD 6 ! 7 ! PURPOSE: Calculates height of the "effective reflecting surface" 8 ! for stable plumes, including penetrated source for 9 ! point sources. 10 ! 11 ! PROGRAMMER: Roger Brode, PES, Inc. 12 ! 13 ! DATE: November 10, 2000 14 ! 15 ! INPUTS: Height of plume (m), HEARG 16 ! Downwind distance (m), XARG 17 ! Bouyancy induced dispersion (m), SZBARG 18 ! Virtual source dispersion term (m), VSIGZARG 19 ! 20 ! OUTPUTS: Effective height of the reflecting surface (m), HEREFL 21 ! 22 ! CALLED FROM: PCALC, VCALC, ACALC, PLUMEF 23 ! 24 !*********************************************************************** 25 ! Variable Declarations 26 USE MAIN1 27 IMPLICIT NONE 28 CHARACTER MODNAM*12 29 INTEGER :: NDXHE 30 REAL :: HEARG , HEREFL , XARG , SZBARG , VSIGZARG , SVREFL , & 31 & SWREFL , UREFL , TGREFL , PTREFL , TTRAVL , BVFRQ , ZTMP ,& 32 & SZREFL , SZRF , SIGF , SZHSBL 33 34 SAVE 35 36 ! Variable Initializations 37 MODNAM = 'REFL_HT' ! 17592K 38 39 !---- Compute the height of the "effective reflecting surface" 40 !---- for stable plumes, HEREFL 41 !---- First locate index below HEARG 42 CALL LOCATE(GRIDHT,1,MXGLVL,HEARG,NDXHE) 43 44 IF ( NDXHE.GE.1 ) THEN 45 46 !---- Sigma_V at HEARG 47 CALL GINTRP(GRIDHT(NDXHE),GRIDSV(NDXHE),GRIDHT(NDXHE+1), & 48 & GRIDSV(NDXHE+1),HEARG,SVREFL) 49 50 !---- Sigma_W at HEARG 51 CALL GINTRP(GRIDHT(NDXHE),GRIDSW(NDXHE),GRIDHT(NDXHE+1), & 52 & GRIDSW(NDXHE+1),HEARG,SWREFL) 53 54 !---- Wind speed at HEARG 55 CALL GINTRP(GRIDHT(NDXHE),GRIDWS(NDXHE),GRIDHT(NDXHE+1), & 56 & GRIDWS(NDXHE+1),HEARG,UREFL) 57 58 !---- Temperature gradient at HEARG 59 CALL GINTRP(GRIDHT(NDXHE),GRIDTG(NDXHE),GRIDHT(NDXHE+1), & 60 & GRIDTG(NDXHE+1),HEARG,TGREFL) 61 62 !---- Potential temperature at HEARG 63 CALL GINTRP(GRIDHT(NDXHE),GRIDPT(NDXHE),GRIDHT(NDXHE+1), & 64 & GRIDPT(NDXHE+1),HEARG,PTREFL) 65 66 ELSE 67 SVREFL = GRIDSV(1) ! 0 68 SWREFL = GRIDSW(1) 69 UREFL = GRIDWS(1) 70 TGREFL = GRIDTG(1) 71 PTREFL = GRIDPT(1) 72 ENDIF 73 ! 74 !---- Apply minimum wind speed and turbulence checks to values 75 ! at HEARG 76 ! 77 SWREFL = AMAX1(SWREFL,SWMIN) ! 17592K 78 SVREFL = AMAX1(SVREFL,SVMIN,0.05*UREFL) 79 UREFL = SQRT(UREFL*UREFL+2.*SVREFL*SVREFL) 80 81 ! Compute surface sigma-z term for stable conditions 82 IF ( STABLE ) THEN 83 SZSURF = (RTOF2/RTOFPI)*USTAR*(XARG/UREFL) & 84 & *(1.0+0.7*XARG/OBULEN)**(-1.0/3.0) 85 ELSE 86 SZSURF = 0.0 ! 195196 87 ENDIF 88 89 ! Compute ambient sigma-z term at HEARG 90 TTRAVL = XARG/UREFL ! 17592K 91 !---- Apply Sigma-Z formulation from CTDMPLUS 92 93 BVFRQ = SQRT(G*TGREFL/PTREFL) 94 IF ( BVFRQ.LT.1.0E-10 ) BVFRQ = 1.0E-10 95 96 ! Set height for sigma-z calculation, ZTMP 97 ZTMP = AMAX1(HS,HEARG,1.0E-4) 98 SZREFL = SWREFL*TTRAVL/SQRT & 99 & (1.0+SWREFL*TTRAVL*(1.0/(0.72*ZTMP)+BVFRQ/(0.54*SWREFL))) 100 101 IF ( HEARG.GE.ZI ) THEN 102 SZRF = SZREFL ! 466552 103 ELSE 104 SIGF = AMIN1(HEARG/ZI,1.0) ! 17126K 105 SZRF = (1.0-SIGF)*SZSURF + SIGF*SZREFL 106 ENDIF 107 108 ! Calculate sigma-z at plume height, SZHSBL 109 SZHSBL = SQRT(SZBARG*SZBARG+SZRF*SZRF+VSIGZARG*VSIGZARG) ! 17592K 110 111 ! Compute height of effective reflecting surface, HEREFL 112 HEREFL = AMAX1(ZI,HEARG+2.15*SZHSBL) 113 114 ! For urban/stable plumes below ZI, set HEREFL = ZI. 115 IF ( URBSTAB .AND. HEARG.LT.ZI ) HEREFL = ZI 116 117 CONTINUE 118 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