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