1
2      SUBROUTINE XYDIST(INDX)
3!***********************************************************************
4!                 XYDIST Module of the AMS/EPA Regulatory Model - AERMOD
5!
6!        PURPOSE: Sets Receptor Variables and Calculates Downwind (X)
7!                 and Crosswind (Y) Distances,
8!                 and Radial Distance from Source to Receptor (DISTR)
9!
10!        PROGRAMMER: Roger Brode, Jeff Wang
11!
12!        DATE:    March 2, 1992
13!
14!        MODIFIED BY R.W. Brode, PES, Inc. to use calling argument to
15!                 specify array index, so that routine can be used by
16!                 both the regular ISCST3 routines and the routines of
17!                 the EVENT processor (ISCEV3). - 12/29/97
18!
19!        INPUTS:  Source Location
20!                 Arrays of Receptor Locations
21!                 SIN and COS of Wind Direction FROM Which Wind
22!                 is Blowing, WDSIN and WDCOS
23!
24!        OUTPUTS: Values of X, Y, and DISTR (m)
25!
26!        CALLED FROM:   PCALC
27!                       VCALC
28!***********************************************************************
29
30!     Variable Declarations
31      USE MAIN1
32      IMPLICIT NONE
33      CHARACTER MODNAM*12
34
35      SAVE
36      INTEGER :: INDX
37
38!     Variable Initializations
39      MODNAM = 'XYDIST'                                                 !2630016
40
41!     Set Receptor Coordinates, Terrain Elevation and Flagpole Heights
42      XR = AXR(INDX)
43      YR = AYR(INDX)
44      ZELEV = AZELEV(INDX)
45      ZHILL = AZHILL(INDX)
46      ZFLAG = AZFLAG(INDX)
47
48!     Calculate Downwind (X) and Crosswind (Y) Distances
49      X = -((XR-XS)*WDSIN+(YR-YS)*WDCOS)
50      Y = (XR-XS)*WDCOS - (YR-YS)*WDSIN
51
52!     Calculate Source-Receptor (Radial) Distance, DISTR
53      DISTR = SQRT(X*X+Y*Y)
54
55!     Calculate height of receptor above stack base, ZRT
56      ZRT = ZELEV - ZS + ZFLAG
57
58!     Check for SCREENing Mode and Set X,Y to Force Centerline Calc.
59      IF ( SCREEN ) THEN
60         X = DISTR                                                      !      0
61         Y = 0.0
62      ENDIF
63
64      CONTINUE                                                          !2630016
65      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