1
2!-----------------------------------------------------------------------
3      FUNCTION PRM_F2INT(XI)
4!-----------------------------------------------------------------------
5!
6! --- PRM_F2INT Module of AERMOD
7!              R.W. Brode, MACTEC/PES
8!
9! PURPOSE:     Function is the integrand of integral over the travel
10!              distance to obtain the fraction of material removed from
11!              the plume for the PRIME downwash component. Module MAIN1
12!              is used to pass data that are constant during the
13!              integration, so QATR (the integrator) only needs to
14!              pass values of distance.
15!
16! ARGUMENTS:
17!    PASSED:  xi         distance from source                        [r]
18!
19!  RETURNED:  PRM_f2int  value of integrand                          [r]
20!
21! CALLING ROUTINES:   QATR2, QG2D2
22!
23! EXTERNAL ROUTINES:
24!
25!-----------------------------------------------------------------------
26      USE MAIN1
27      IMPLICIT NONE
28
29      REAL XI , VWRAP , VLIFT , PRM_F2INT , ZETMP , ZHTMP
30      REAL :: DHPOUT , SYOUT , SZOUT , SYCAV , SZCAV
31      LOGICAL L_INWAKE
32
33      SAVE
34
35!     Set temporary receptor elevation and height scale
36      ZETMP = ZELEV                                                     !      0
37      ZELEV = ZS + (ZETMP-ZS)*XI/X
38
39      ZHTMP = ZHILL
40      ZHILL = HS + (ZHTMP-HS)*XI/X
41
42!     Calculate the plume rise                     ---   CALL PRMDELH
43      CALL PRMDELH(XI,L_INWAKE)
44
45!     Determine Effective Plume Height             ---   CALL PRMHEFF
46      CALL PRMHEFF
47
48! --- Calculate sigmas
49      DHPOUT = DHP
50      CALL WAKE_XSIG(XI,HS,DHPOUT,NOBID,SZOUT,SYOUT,SZCAV,SYCAV)
51      SY = SYOUT
52      SZ = SZOUT
53
54!     Calculate Plume Tilt Due to Settling, HV
55      HV = (XI/US)*VSETL
56      HE = MAX(0.0,HE-HV)
57
58!     Calculate FOPT = f(PHEE)                  ---   CALL FTERM
59      FOPT = 0.5
60
61!     Assign receptor height for vertical term calculations
62      ZR = ZRT + ZRDEP
63
64      IF ( STABLE ) THEN
65         CALL VRTSBN(SZ,HE,HSBL)                                        !      0
66      ELSEIF ( UNSTAB .AND. HE.LE.ZI ) THEN
67         CALL VRTSBL(SZ,HE,ZI)                                          !      0
68      ELSE
69         FSUBZ = 0.0                                                    !      0
70      ENDIF
71
72      VWRAP = FSUBZ/UEFF                                                !      0
73
74!---- Calculate the contribution due to terrain-following plume, VLIFT
75      IF ( ZRT.EQ.0.0 ) THEN
76!----    Effective receptor heights are equal, therefore VLIFT = VWRAP
77         VLIFT = VWRAP                                                  !      0
78      ELSEIF ( FOPT.EQ.1.0 ) THEN
79         VLIFT = 0.0                                                    !      0
80      ELSE
81!        Assign receptor height for vertical term calculations
82         ZR = ZRDEP                                                     !      0
83         IF ( STABLE ) THEN
84            CALL VRTSBN(SZ,HE,HSBL)                                     !      0
85         ELSEIF ( UNSTAB .AND. HE.LE.ZI ) THEN
86            CALL VRTSBL(SZ,HE,ZI)                                       !      0
87         ELSE
88            FSUBZ = 0.0                                                 !      0
89         ENDIF
90         VLIFT = FSUBZ/UEFF                                             !      0
91      ENDIF
92
93!     Blend horizontal and terrain-responding components of integral
94      PRM_F2INT = FOPT*VWRAP + (1.0-FOPT)*VLIFT                         !      0
95
96!     Reassign receptor elevation and height scales
97      ZELEV = ZETMP
98      ZHILL = ZHTMP
99
100      CONTINUE
101      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