1 !---------------------------------------------------------------------- 2 SUBROUTINE WAKE_XSIG(X,HSTK,RISE,NOBID,SZ,SY,SZC,SYC) 3 !---------------------------------------------------------------------- 4 ! 5 ! --- PRIME Version: 1.0 Level: 970812 WAKE_XSIG 6 ! D. Strimaitis, EARTH TECH 7 ! Prepared for EPRI under contract WO3527-01 8 ! 9 ! --- PURPOSE: Extract sigmas in the wake by interpolating among the 10 ! stored values; compute sigmas outside tabulated range 11 ! using HOST sigma curves with BID or virtual source 12 ! adjustments 13 ! 14 ! --- MODIFIED: For use with the AERMOD model. Replaced calls to SIGY 15 ! and SIGZ with calls to SIGYPR and SIGZPR. Added virtual 16 ! source sigmas to be added to HOST sigmas in quadrature. 17 ! Also added physical stack height to calling arguments. 18 ! R.W. Brode, PES, Inc. - 07/05/01 19 ! 20 ! --- INPUTS: 21 ! X - real - Downwind distance (m) from source 22 ! HSTK - real - Physical stack height (m) 23 ! RISE - real - Gradual plume rise (m) 24 ! NOBID - logical - Directs use of buoyancy enhancement 25 ! 26 ! Common block /PARAMS/ variables: 27 ! MXNTR 28 ! Common block /WAKEDAT/ variables: 29 ! NWAK, XWAK(mxntr), SZWAK(mxntr), SYWAK(mxntr), 30 ! VSIGZ, VSIGY, 31 ! NCAV, XCAV(mxntr), SZCAV(mxntr), SYCAV(mxntr), 32 ! VSIGZC, VSIGYC 33 ! 34 ! --- OUTPUT: 35 ! SZ - real - Sigma-z (m) at downwind distance X 36 ! due to primary source 37 ! SY - real - Sigma-y (m) at downwind distance X 38 ! due to primary source 39 ! SZC - real - Sigma-z (m) of cavity source at 40 ! downwind distance X from primary source 41 ! SYC - real - Sigma-y (m) of cavity source at 42 ! downwind distance X from primary source 43 ! 44 ! --- WAKE_XSIG called by: PDIS 45 ! --- WAKE_XSIG calls: SIGZ, SIGY 46 !---------------------------------------------------------------------- 47 ! 48 INCLUDE 'params.pri' 49 INCLUDE 'wakedat.pri' 50 ! 51 LOGICAL NOBID 52 53 ! --- Primary source: 54 ! ------------------- 55 IF ( X.LE.0.0 ) THEN ! 515730 56 ! --- Report null values (these should never get used!) 57 SZ = 0.0 ! 0 58 SY = 0.0 59 ELSEIF ( NWAK.LE.1 ) THEN 60 ! --- Plume never altered by wake turbulence; use HOST curves 61 CALL SIGZPR(X,HSTK+RISE,SZ) ! 0 62 CALL SIGYPR(X,HSTK+RISE,SY) 63 IF ( .NOT.NOBID ) THEN 64 BIDSQ = (RISE/3.5)**2 ! 0 65 SZ = SQRT(SZ**2+BIDSQ) 66 SY = SQRT(SY**2+BIDSQ) 67 ENDIF 68 ELSEIF ( X.LT.XWAK(1) ) THEN 69 ! --- Point lies upwind of wake region; use HOST curves 70 CALL SIGZPR(X,HSTK+RISE,SZ) ! 39908 71 CALL SIGYPR(X,HSTK+RISE,SY) 72 IF ( .NOT.NOBID ) THEN 73 BIDSQ = (RISE/3.5)**2 ! 39890 74 SZ = SQRT(SZ**2+BIDSQ) 75 SY = SQRT(SY**2+BIDSQ) 76 ENDIF 77 ELSEIF ( X.GT.XWAK(NWAK) ) THEN 78 ! --- Point lies downwind of transition to ambient growth; use 79 ! --- HOST curves with virtual source term 80 CALL SIGZPR(X,HSTK+RISE,SZ) ! 63528 81 CALL SIGYPR(X,HSTK+RISE,SY) 82 SZ = SQRT(SZ*SZ+VSIGZ*VSIGZ) 83 SY = SQRT(SY*SY+VSIGY*VSIGY) 84 ELSE 85 ! --- Point lies within range of tabulated values 86 NWKM1 = NWAK - 1 ! 412294 87 SZ = SZWAK(1) 88 SY = SYWAK(1) 89 DO I = NWKM1 , 1 , -1 90 IF ( X.GE.XWAK(I) ) THEN ! 10189K 91 IP1 = I + 1 ! 412294 92 FAC = (XWAK(IP1)-X)/(XWAK(IP1)-XWAK(I)) 93 SZ = SZWAK(IP1) - (SZWAK(IP1)-SZWAK(I))*FAC 94 SY = SYWAK(IP1) - (SYWAK(IP1)-SYWAK(I))*FAC 95 GOTO 50 96 ENDIF 97 ENDDO 98 ENDIF 99 100 ! --- Cavity source: 101 ! ------------------- 102 50 IF ( NCAV.LE.1 ) THEN ! 515730 103 ! --- No contribution from cavity source (report initial values) 104 SZC = SZCAV(1) ! 49568 105 SYC = SYCAV(1) 106 ELSEIF ( X.LT.XCAV(1) ) THEN 107 ! --- Point lies upwind of cavity region (report initial values) 108 SZC = SZCAV(1) ! 30326 109 SYC = SYCAV(1) 110 ELSEIF ( X.GT.XCAV(NCAV) ) THEN 111 ! --- Point lies downwind of transition to ambient growth; use 112 ! --- HOST curves with virtual source term 113 CALL SIGZPR(X,0.0,SZC) ! 60220 114 CALL SIGYPR(X,0.0,SYC) 115 SZC = SQRT(SZC*SZC+VSIGZC*VSIGZC) 116 SYC = SQRT(SYC*SYC+VSIGYC*VSIGYC) 117 ELSE 118 ! --- Point lies within range of tabulated values 119 NCVM1 = NCAV - 1 ! 375616 120 SZC = SZCAV(1) 121 SYC = SYCAV(1) 122 DO I = NCVM1 , 1 , -1 123 IF ( X.GE.XCAV(I) ) THEN !9691098 124 IP1 = I + 1 ! 375616 125 FAC = (XCAV(IP1)-X)/(XCAV(IP1)-XCAV(I)) 126 SZC = SZCAV(IP1) - (SZCAV(IP1)-SZCAV(I))*FAC 127 SYC = SYCAV(IP1) - (SYCAV(IP1)-SYCAV(I))*FAC 128 RETURN 129 ENDIF 130 ENDDO 131 ENDIF 132 133 CONTINUE ! 140114 134 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