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