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