1
2      SUBROUTINE DISTF
3!***********************************************************************
4!                 DISTF Module of the AMS/EPA Regulatory Model - AERMOD
5!
6!        PURPOSE: Calculates Distance to Final Plume Rise
7!
8!        PROGRAMMER: Roger Brode, Jeff Wang
9!
10!        DATE:    March 2, 1992
11!
12!        INPUTS:  Arrays of Source Parameters
13!                 Buoyancy and Momentum Fluxes
14!                 Meteorological Variables for One Hour
15!                 Wind Speed Adjusted to Stack Height
16!
17!        OUTPUTS: Distance to Final Plume Rise, XF (m), and Distance
18!                 to Final Buoyant Rise (XFB) and Final Momentum Rise (XFM)
19!
20!        CALLED FROM:   PCALC
21!***********************************************************************
22
23!     Variable Declarations
24      USE MAIN1
25      IMPLICIT NONE
26      CHARACTER MODNAM*12
27      REAL :: XLN , DELHNN , XMAXN
28
29      SAVE
30
31!     Variable Initializations
32      MODNAM = 'DISTF'                                                  !  21622
33
34      IF ( STABLE .OR. (UNSTAB .AND. (HS.GE.ZI)) ) THEN
35
36!        Compute the distance to final rise, XMAX;
37!        The negative sign appears on the FB term to insure that the
38!           resulting angle is between 0 and PI (i.e., positive)
39         XMAX = UP*ATAN2(FM*BVPRIM,-FB)/BVPRIM                          !  20168
40
41!        Compute the final stable plume rise, DHF, from Eqn. 3-113 of MFD
42         DHFAER = 2.66*(FB/(BVF*BVF*UP))**0.333333
43         XLN = FB/(UP*USTAR*USTAR)
44         DELHNN = 1.2*XLN**0.6*(HSP+1.2*XLN)**0.4
45         DHFAER = AMIN1(DHFAER,DELHNN)
46
47!        Compute Neutral/Unstable Final Rise
48         IF ( FB.LE.0.0 ) THEN
49            XMAXN = 4.*DS*(VS+3.*UP)*(VS+3.*UP)/(VS*UP)                 !      0
50            DHFAER = AMIN1(DHFAER,3.0*DS*VS/UP)
51         ELSE
52            IF ( FB.GE.55.0 ) THEN                                      !  20168
53               XMAXN = 119.0*FB**0.4                                    !   7246
54            ELSE
55               XMAXN = 49.0*FB**0.625                                   !  12922
56            ENDIF
57            CALL CBLPRD(XMAXN)                                          !  20168
58            DHFAER = AMIN1(DHFAER,DHP1)
59         ENDIF
60
61!        Apply calm, stable rise limit
62         DHFAER = AMIN1(DHFAER,4.0*FB**0.25/(BVF*BVF)**0.375)           !  20168
63
64!        For urban stable boundary layers, limit plume rise to 1.25*ZI - HSP
65         IF ( URBSTAB ) THEN
66            IF ( HSP.LT.1.25*ZI ) THEN                                  !      0
67               DHFAER = MIN(DHFAER,1.25*ZI-HSP)                         !      0
68            ELSE
69               DHFAER = 0.0                                             !      0
70            ENDIF
71         ENDIF
72
73      ELSE
74!        Unstable plume
75
76         IF ( FB.LE.0.0 ) THEN                                          !   1454
77            XMAX = 4.*DS*(VS+3.*UP)*(VS+3.*UP)/(VS*UP)                  !      0
78            DHFAER = 3.0*DS*VS/UP
79         ELSE
80            IF ( FB.GE.55. ) THEN                                       !   1454
81               XMAX = 119.*FB**0.4                                      !    498
82            ELSE
83               XMAX = 49.*FB**0.625                                     !    956
84            ENDIF
85            CALL CBLPRD(XMAX)                                           !   1454
86            DHFAER = DHP1
87         ENDIF
88
89      ENDIF
90
91      CONTINUE                                                          !  21622
92      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