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