EPA-454/R-93-038
                           (Revised Februrary  8, 1995)
                                (Electronic  copy only)
             USER'S  GUIDE
                 TO THE
BUILDING  PROFILE INPUT  PROGRAM
    U.S. ENVIRONMENTAL PROTECTION AGENCY
Office of Air Quality Planning and Standards
         Technical Support Division
Research Triangle Park, North Carolina 27711

                October 1993

-------
                        ACKNOWLEDGEMENTS

    This document and associated computer program were created by
Peter A. Eckhoff of the Environmental Protection Agency.   The
author wishes to thank Mr. Russ Lee for his helpful discussions
and insights.  He is also grateful to those individuals who
provided many good comments on a draft copy of BPIP that was made
available through the SCRAM BBS of the OAQPS TTN.
                           DISCLAIMER

     The information in this document has been reviewed by the
Office of Air Quality Planning and Standards,  EPA,  and approved
for publication.  Mention of trade names or commercial products
is not intended to constitute endorsement or recommendation for
use.
     The following trademarks appear in this guide:

IBM is a registered trademark of the International Business
Machine Company.

Microsoft is a registered trademark of Microsoft Corp.
                                11

-------
                             PREFACE

     This document,  the User's Guide for the Building Profile
Input Program (BPIP),  provides the user with instructions for
setting up and running BPIP.  The document also provides an
overview of the Good Engineering Practice (GEP) stack height and
Building Downwash guidance and how the guidance was incorporated
into program construction.

     BPIP outputs a separate file that is formatted for user
transfer into the input file for an ISC2 model.  Two BPIP test
cases with results and a copy of the software are included.
                               111

-------
                             CONTENTS

ACKNOWLEDGEMENTS  	   ii
DISCLAIMER	ii
PREFACE	iii
FIGURES 	 v
TABLES	vi

1.0 INTRODUCTION	1-1

2.0 BPIP TECHNICAL BACKGROUND    	2-1

     2.1 BPIP IMPLEMENTATION OF GEP GUIDANCE AND PROCEDURES  .  2-1

          2.1.1 GEP Technical Background	2-1
          2.1.2 Structure and Tier Identification	2-5
          2.1.3 BPIP Coordinate System	2-5
          2.1.4 Treatment of GEP Structure Types	2-7

     2.2 BPIP IMPLEMENTATION OF BUILDING DOWNWASH  PROCEDURES 2-11

          2.2.1 Simple Structure Calculations  	  2-13
          2.2.2 Group of Structure Calculations  	  2-14

3.0 USER'S INSTRUCTIONS  	  3-1

     3.1 INPUT PREPARATION   	  3-1
     3.2 INITIAL PROGRAM SETTINGS  	  3-3
     3.3 INPUT FORMAT	3-3
     3.4 EXECUTION OF BPIP	3-3
     3 .5 OUTPUT FORMAT	3-8

          3.5.1 Primary Output File	3-8
          3.5.2 Summary File	3-11

4.0 REFERENCES	4-1

APPENDIX A. BPIP PROGRAM SOURCE CODE LISTING   	  A-l

APPENDIX B. TEST CASES	B-l

     B.I TEST CASE 1	B-l
     B.2 TEST CASE 2	B-8

APPENDIX C. ERROR MESSAGES AND TROUBLESHOOTING   	  C-l

     C.I ERROR MESSAGES	C-l
     C.2 NORMAL ERROR CHECKING   	  C-2
     C.3 TROUBLESHOOTING	C-2
                                IV

-------
                             FIGURES

Figure

 2-1.       Low Simple Structure and GEP Areas of Influence  .  2-3

 2-2.       Tall Simple Structure and GEP Areas of Influence .  2-3

 2-3.       On "Combining" Sufficiently Close Buildings  .  .  .  2-4

 2-4.       Rotation of BPIP Cartesian Coordinate System .  .  .  2-6

 2-5.       GEP vs.  Building Downwash Procedures For a
           Tall Structure	2-9

 2-6.       GEP 5L and Structure Influence Zone (SIZ)  Areas of
           Influence (Plot of Test Case 1 Input)   	2-12

 2-7.       SIZ Coverage of 22.5 Degree Wide GEP Area of
           Influence	2-15

 B-l.       Plot of  Test Case 2 Input	B-9
                                v

-------
                             TABLES




Table




 3-1.     Data Input Types	3-4




 3-2.     Data Input Sequence	3-6




 3-3.     Input Example	3-7




 3-4.     Example of a Primary Output File	3-9




 3-5.     Portions of a Summary File	3-12




 3-6.     Additional Portions of a Summary File	3-14




 B-l.     Test Case 1 Input Data	B-2




 B-2.     GEP Stack Height Data	B-3




 B-3.     Test Case 1 ISCST2 Output Data	B-5




 B-4.     Test Case 1 ISCLT2 Output Data	B-7




 B-5.     Test Case 2 Input Data	B-ll




 B-6.     Test Case 2 ISCST2 Output Data	B-13




 B-7.     Test Case 2 ISCLT2 Output Data	B-18
                               VI

-------
                         1.0  INTRODUCTION
     Building downwash is a complex technical subject that has
important ramifications in the field of air quality dispersion
modeling.  Building downwash algorithms have been developed for
air quality dispersion models such as the Industrial Source
Complex  (ISC2)  Models, ISCST2 and ISCLT2.   These algorithms
require additional input to be prepared and included in order to
run the models.  The degree of data input preparation depends on
current guidance, the sophistication of the algorithm,  and the
complexity of the structure-stack arrangement.

     This user's guide provides an overview of GEP stack height
and building downwash guidance and how the guidance was
incorporated into BPIP.  This is followed by instructions for
running the BPIP program.  Test cases and results are included in
the appendices along with other pertinent information and a copy
of the source code.
                               1-1

-------
              2.0  BPIP  PROGRAM  TECHNICAL  DESCRIPTION
     The Building Profile Input Program (BPIP) was designed to
incorporate the concepts and procedures expressed in the GEP
technical support document (see Reference 1),  the Building
Downwash guidance (References 2 through 4),  and other related
documents referenced below into a program that correctly
calculates building heights  (BH's)  and projected building widths
(PBW's).   A copy of the source code is attached in Appendix A.

     Other documents that relate directly to GEP and building
downwash guidance can be found in Section 4.  Among the documents
are procedures and guidelines for:  1)  when and how to use
building downwash (See References 5,  6, and 7),  2) how to format
the BH and PBW values for input to the ISC2 models (See Reference
6),  and 3) questions and answers on implementing GEP stack height
regulations (See Reference 8).

     BPIP is divided into two parts.   The first part is based
solely on the GEP technical support document and is designed to
determine whether or not a stack is being subjected to wake
effects from a structure or structures.  Several values are
determined such as the GEP stack height,  GEP related BH's and
PBW's.  Flags are set to indicate which stacks are being affected
by which structure wake effects.

     The second part calculates building downwash BH's and PBW's
based on References 2 through 4 which can lead to different BH
and PBW values than those calculated for GEP.   This part performs
the calculations only if a stack is being influenced by structure
wake effects.   Output is formatted for editing into either the
ISCST2 or ISCLT2 model input runstream (See Reference 6).


2.1 BPIP IMPLEMENTATION OF GEP GUIDANCE AND PROCEDURES

     In order to implement the GEP guidance in BPIP,  a framework
was written which includes a Cartesian coordinate system,  a
building and tier identification system,  and a method for
calculating BH's and PBW's following procedures and processes
discussed in the guidance.
2.1.1 GEP TECHNICAL BACKGROUND

     The GEP technical support document discusses four types of
structures where a structure can be a building or a terrain
                               2-1

-------
feature.  The four structure types are:

          - Low simple structures
          - Tall simple structures
          - Multi-tiered structures
          - Groups of structures

Procedures for determining GEP stack height are given for each
type.  BPIP follows these procedures by treating simple and
multi-tiered structures first and then processing applicable
structures into groups.

     Each structure type produces an area of wake effect
influence that extends out to a distance of five times L directly
downwind from the trailing edge of the structure, where L is the
lesser of the BH or PBW (See Figures 2-1 and 2-2).   As the wind
rotates full circle,  each direction-specific area of influence
changes and is integrated into one overall area of influence
termed the GEP 5L area of influence.  A line drawn around the
limit of the overall GEP 5L area of influence is termed the GEP
5L limit line.  Any stack that is on or within the limit line is
affected by GEP wake effects for some wind direction or range of
wind directions.

     Wakes from two structures, that are closer than the greater
of either structure's L, are considered to be 'sufficiently
close' to one another that their wakes act as one wake.
Therefore, when the projected widths of the structures do not
completely overlay each other, the structures are combined and
the gap between the two structures is treated as if the gap had
been filled with a structure equal in height to the lower
structure.  Otherwise, the two structures are processed
separately.

     The GEP technical support document calls for the gap,
between two structures being combined, to be treated as if filled
by a structure equal in height to the lesser projected height.
BPIP creates a Gap-Filling Structure  (GFS) by connecting each
pair of structures on a corner to corner basis and/or corner
perpendicular to the other side basis  (See Figure 2-3).  In the
figure, the lines labeled 'a' are connecting lines while the
longer lines, labeled 'b', are used as connecting lines only if
they are less than L in length.  In some cases,  the GFS can be
just two dimensions,  height and width  (See examples C through F
in Figure 2-3).   The most outward parts of the lines form the
perimeter of the GFS.  The GFS perimeter is used together with
the perimeters of the connected structures to determine the GEP
5L area of influence.

     In order to identify which stacks are in the GEP 5L area of
influence, a system was devised that identifies each structure
and its tiers, locates these in a coordinate system, and then
                               2-2

-------
                                         12m
Figure  2-1.   Low Simple  Structure  and GEP Areas of  Influence
       The outermost



       curved lines



       represent



       the GEP 5L



       Limit Line



       encircling the



       total GEP Area



       of Influence.



       Each directional



       area of influence



       extends up to



       5L downwind from



       the trailing edge of



       the structure.
5L
                                  12m
Figure  2-2.   Tall Simple Structure and GEP  Areas of Influence
                                        2-3

-------
   BPIP combines buildings using the 'a' lines and only those 'b' lines that are
   less than L. All 'a' lines are assumed to be less than L. The outside portion
   of the lines used form the perimeter of the Gap-Filling Structure (GFS).
                        B


































a








\
\
\








a









\
\
\
\
^


\

"\
\
\
\









\
a i

\
"\
"V
\
a "\









































\
\














\
\















\
\
\





\
\






I



\

b\






\
\
\



D




\

a
\
\
\







b
y
(
^.
\

.
Ja
/\
^ \


v y
\X


V
N
/
r











b





\
\

F








\
\
\
\


\
\ "a
\
b

\
\












\
\



































i
\
\
\
\
\
\
\
\
i
i
"u
i
i
i
i
i
a

I
\
\b
I
I
\
\

\
I
I
I
I
I
I
I
I
I




































Figure  2-3.   On  'Combining'   Sufficiently  Close Structures
                                            2-4

-------
processes the structure and tier data to calculate GEP stack
heights, and BH and PBW values based on Reference 1.  Flags are
also set to identify which stacks are being influenced by which
structures.

2.1.2 STRUCTURE AND TIER IDENTIFICATION

     Each tier of a structure (building) is identified in two
ways.  First, as a tier of a structure  (e.g. tier number 2 of
structure number 4) and second,  as a single structure - tier
number.  The second method is used to simplify some of the
calculations.  Conversion is accomplished by using the formula:

(struct, no. - 1) * (max. # of tiers per structure)  + (tier no.)

For example, when using a maximum of 4 tiers per structure, tier
2 of structure 4 would have a structure - tier number of 14 ((4-
1) * 4 + 2).  When structure - tier numbers are used, the program
is coded so that tiers of the same structure are not combined
with each other.
2.1.3  BPIP COORDINATE SYSTEM

     A Cartesian coordinate system was selected for BPIP where
true north is always upward in the positive Y (or UTM Northing)
direction.  East is always to the right in the positive X (or UTM
Easting)  direction  (See figure 2-4).   The advantage of a
Cartesian coordinate system is the ease in which a PBW can be
calculated.

     When the wind is blowing true north or south, the projected
width of a structure is the difference in the x-coordinates of
the most east and the most west corner.  However,  the wind very
rarely blows toward true north or south.  BPIP is programmed to
rotate the initial coordinate system so that the rotated positive
Y direction is always in the direction of the wind flow.  All the
initial x- and y-coordinates have to be adjusted to the rotated
axes.  This is illustrated in Figure 2-4 and the equations used
to transform the coordinates are shown below as Equations 1 and
2 .

     In Figure 2-4, the solid horizontal and vertical lines
represent the initial, unrotated BPIP Cartesian coordinate
system.  The wind in this figure is blowing toward the northeast.
A building and stack are also shown.   The rotated x- and y-axis
are shown as dashed lines that have been rotated clockwise so the
positive Y direction parallels the northeast wind direction flow.
Note that the building and stack are in the same relative
position with respect to each other and the wind flow.  The only
thing that has changed are the coordinate values.   The rotated
coordinate values are now based upon the dashed line coordinate
system.  Note how this is equivalent to rotating the structure,
stack, and wind flow in a counterclockwise direction the same

                               2-5

-------
      The BPIP program rotates the cartesian Coordinate system so
      the new north direction Is In the direction of the wind flow. This Is
      the equivalent of moving the structures and source the same
      degree of rotation In the opposite direction. This simplifies many
       of the trigonometric equations used to solve for projected
       building widths and the equations used to calculate SIZ coordinates.

                       N
                                                        Structure Influence
                                                            Zone (SIZ)
Figure  2-4.   Rotation  of  BPIP  Cartesian  Coordinate  System
                                               2-6

-------
angular distance as rotating the axes clockwise to the wind flow
direction.  Arrowed arcs on the axes, building, stack and air
flow show the relative rotated directions.

     In other words, the program examines the effects of each
wind direction from one direction to the next in a clockwise
direction, the program effectively rotates the building and stack
coordinates in a counterclockwise direction.  To simulate the
relative counterclockwise motion of the structure and stack, BPIP
uses the negative of the sine function in the following two
equations to simulate this counter rotational effect:

              x' = x cos 9 + y sin 9         (Equation 1)
              y' = y cos 9 - x sin 9         (Equation 2)

      where:   x -  initial x- coordinate
               y -  initial y- coordinate
               x' - new rotated x - coordinate
               y1 - new rotated y - coordinate
               9  - angular difference, measured in a clockwise
                    direction, between the initial true north
                    direction and the current wind flow
                    direction.
     If the structure and stack coordinates are obtained from a
polar coordinate plot, the coordinates will have to be manually
translated to the BPIP Cartesian coordinate system.  The program
does not have any features to translate the coordinates from one
system to another.  However,  BPIP can process UTM coordinate data
directly.

2.1.4  TREATMENT OF GEP STRUCTURE TYPES

     Low simple, tall simple, and multi-tiered structures are
initially processed as stand alone structures.  Each structure
and stack has its coordinates rotated from north to the current
wind direction flow.  The program sorts through the structure
corner coordinates determining which corner is furthest north,
south,  east,  and west.  The most east and west x1 - coordinates
are subtracted from each other to determine the projected width.
L is set to the lesser of the BH or PBW.

     L is used in the subroutine DISLIN, to determine if a stack
is at or within 5L directly downwind of one of the sides of each
structure.  If the stack is at or within 5L directly downwind of
the structure, the flag IBET is set.

     IBET only indicates that a stack is within the prescribed
downwind distance.  Several additional conditions are tested in
subroutine GPC.   The BH and PBW values are used to calculate a
GEP stack height based upon Equation I of the GEP technical
support document.  If the new GEP stack height value is higher
than the previous value calculated for that stack, the new value

                               2-7

-------
replaces the previous value along with the respective BH and PBW
values that were used to determine the new value.  If the new
value is equal to the previous value,  the GEP stack height value
produced with the narrower width is retained along with the BH
and PBW values that were used to determine the new value.  A
flag, GEPIN, is also set which identifies which stack is within
the GEP area of influence produced by a particular tier for a
particular tier or common height.

     By retaining the GEP stack height with the narrower width,
two purposes are served.  One, the 'more conservative'  Schulman-
Scire downwash algorithm is more likely to be invoked in an ISC2
model run than the Huber-Snyder algorithm.  Two,  narrower widths
generally mean higher buildings which enhance the sigma z's.
This generally leads to higher concentrations, closer in toward
the stack.

     For a tall structure,  where the BH is greater than the PBW,
L becomes a variable based on wind direction.  The downwind
distance of the direction-specific GEP areas of influence become
variable  (See Figure 2-5).   In such cases, the maximum GEP stack
height can occur when the wind is blowing perpendicular to the
maximum projected width; provided the stack is located within
that GEP 5L area of influence.  However, if the stack is located
off to the side of this direction-specific area of influence,  the
maximum GEP stack height occurs for one of the directions where
the stack intercepts the edge of the direction-specific GEP area
of influence.  BPIP calculates BH and PBW values for every
quarter of a degree for a full 360 degrees.  This increment is
fine enough to detect a stack within a GEP 5L area of influence
and to determine a realistic maximum GEP stack height value.  For
every stack within a GEP 5L area of influence, a GEP stack height
is calculated and the GEPIN flag is set.  The maximum of all the
GEP stack height values for a stack becomes the GEP stack height
value. The BH and PBW values for that height are saved.

     For a multi-tiered structure, each tier is treated as a low
or tall simple structure.  A tier can be a low structure for one
direction and tall in another direction.  The BH and PBW of the
tier producing the highest GEP stack height value over the stack
are saved and the GEPIN flag is set.

     After each tier has been treated as a stand alone structure,
every pair of tiers that do not belong to the same structure are
examined to see if they are sufficiently close for combining.
Sufficiently close structures are then combined into groups of
structures.  Each group is treated as a stand alone structure.

     The first step in combining tiers is to determine the
minimum distance between all tier pair combinations where both
tiers are not part of the same structure.  The DO 80 loop of BPIP
performs the calculations.   The direct corner to corner distance
between each tier is determined first.  The subroutine, CNRLIN,
is used to determine the closest distance between the corners of

                               2-8

-------
       Maximum GEP Projected Width is 17.95 meters

                              5L

         10m
                     40m
                                                  10m
                                  Wind Flow = 78.23 degrees
   GEP = Hb+ 1.5L
   GEP = 40+ 1.5*17.95
   GEP = 66.92m
        *
   HWE = Hb+ 1.5L
   HWE = 40+ 1.5*39.7
   HWE = 99.5m

   HWE » GEP

   * Wake Effect Height
    Structure
    Influence
    Zone (SIZ)
                              Building Downwash Projected
                                   Width is 39.7 Meters For a
                                         Wind Flow of 30 Deg.
                              GEP 5L Limit
                             Line and
                           SIZ Boundary
                                                              A stack with a
                                                             height greater than
                                                          GEP but less than the
                                                         Building Downwash wake
                                                       effect height is caught
                                                     between  one procedure
                                                   saying no to calculating a
                                                  PBW and the other saying yes.
                                                Use the GEP projected width.
Figure  2-5
GEP vs.  Building Downwash  Procedures  For  a Tall
Structure
                                           2-9

-------
one tier and the sides of the other tier.  The minimum distance
for each tier pair is stored in the array DISTMN.

     Next,  the projected widths for each tier are calculated for
the wind direction of concern.  The width values are stored in
the array W by building-tier number.  Ls are calculated for each
tier.  If the L of either tier is greater than the respective
DISTMN value, the tiers are considered sufficiently close for
combining.   This is performed in the DO 110 loop.

     Two structures 'overlay' each other when the most east and
the most west corners of two structures are exactly upwind and
downwind of each other, respectively.  Combining of two
structures that overlay each other produces the same areas of
influence as if the structures had not been combined.  To
simplify BPIP, overlaying structures are combined in the program.
Also, when the projected widths of the sufficiently close
structures (tiers) do not completely overlay each other, the
structures are combined and the gap between the two structures is
treated as if the gap had been filled with a structure equal in
height to the lower structure.  Otherwise, the two structures are
processed separately.   Only those tiers that are sufficiently
close initially are combined.  Already-combined-tiers that become
sufficiently close to other structures are not further combined.
     In BPIP, each group of structures is formed around a single
tier called a 'focal'  tier.  The process begins by the selection
of one tier as the focal tier.  All the other tiers are tested on
a one on one basis with the focal tier to determine if they can
be combined with the focal tier.  For each pair of focal and non-
focal tiers,  each respective tier height and projected width is
used to calculate an L.  If the greater of each pair of Ls is
greater than the minimum distance between the two tiers, then the
two tiers are considered to be combinable.  The building-tier
numbers of the focal and combinable non-focal tiers are saved in
an array, TLIST.  The array variable, TNUM, is used to store the
total number of combinable tiers in TLIST by focal tier number.
All the tiers that are entered into BPIP are selected, in
succession, to be a focal tier.

     Each group of combinable tiers is further processed into
subgroups.   Processing parallels the process used above to form
the combinable focal tier groups except in this case, the Ls are
based on a single tier height.  This single tier height is used
as the common height of the subgroup.  Again each non-focal tier
is paired with the focal tier.  For each pair of focal and non-
focal tiers,  the common tier height and the two projected widths
of each pair are used to calculate an L for each tier.  If the
greater L of each pair of Ls is greater than the minimum distance
between the two tiers, then the tiers are combined.  The
building-tier numbers of the focal and combined non-focal tiers
are saved in an array, TLIST2.  The array variable, TNUM2,  is
used to store the total number of tiers in TLIST2 for each
subgroup formed around a focal tier and a particular common
height.  All the tier heights that are entered into each focal

                               2-10

-------
group are selected, in succession, to be used as the common
height.

     For each focal tier subgroup with a particular common
height,   the overall PBW of the subgroup is determined.  L
becomes the lesser of the common height and the PBW of the group
as a whole.  The GFSs are formed between each tier and the focal
tier.  The subroutine, DISLIN, is used again to determine if a
stack is up to 5L directly downwind of any of the sides of any of
the tiers or the sides of the GFSs.  If so, the common BH and PBW
values are saved and used to calculate a GEP stack height value.
The maximum GEP stack height and related BH and PBW values are
saved.  A flag, GEPIN, is set which identifies which stack is
within the GEP 5L area of influence of which focal tier at a
particular common height.

     In the DO 133 loop,  the perimeter lines of the GFS are
calculated in two ways.  First, the corner to corner connecting
lines and distances are determined within the loop.  Second, the
subroutine, CNRLIN, is used to calculate the X -, and Y -
intercepts coordinates for the connecting lines and for the
distances from the corners of one tier to the sides of the other
tier.

2.2  BPIP IMPLEMENTATION OF BUILDING DOWNWASH PROCEDURES

     The building downwash guidance procedures are defined in
three memoranda concerning stack-structure relationships (See
References 2, 3, and 4).   The purpose of the memoranda were to 1)
incorporate the findings of a literature search on the question
of how far laterally a stack will be affected by building wake
effects, 2) define a simplified method for determining the area
of building wake effects, 3) state that any stack beyond the GEP
5L limit line was beyond the area of wake effects for building
downwash considerations,  and 4) restrict the wake effect height
to comply with the GEP stack height.  This guidance is applied to
each type of structure and is used after the GEP procedures have
been performed.

     In the downwash guidance, several concepts are discussed but
no terms have been used to define them.  For instance, the
simplified method for outlining the area of building wake effects
from Reference 2 has been termed a Structure Influence Zone (SIZ)
(See Figure 2-6).   It defines a rectangular area constructed
around a structure where the upwind side is 2L from the most
upwind corner and the sides are parallel to the wind and 1/2 L
outward from the most crosswind corners.  The downwind side has
                               2-11

-------
                  Wind Flow Direction = 20 Deg.
                                     SIZand GEP 5L Limit

                                                 Lines
                                                           101
                                                           GEP5L

                                                           Limit Line
     KEY:

       O
         101
- Indicates Stack Location and Number


-GEP 5L Limit Line

- Structure Influence Zone (SIZ) Boundary Line

- GEP 5L Limit Line and SIZ Lines Coincide
Figure 2-6.
 GEP  5L and  Structure Influence  Zone  (SIZ)  Areas of
 Influence

                     2-12

-------
become a segment of the GEP 5L limit line,  bordered on each end
by the sides of the SIZ.

     The SIZ was developed at a time when computer power and
costs were at a premium and the SIZ concept was designed to
reduce computational time.  The SIZ 5L downwind boundary was
there to represent the GEP 5L limit line.  In previous guidance,
stacks outside the GEP 5L limit line but inside the SIZ were
considered to be outside the areas of wake effect influence.
Since the centerline direction is suppose to represent a sector
as a whole,  those stacks that were beyond the SIZ 5L downwind
boundary but inside the GEP 5L limit line should have been
included in the sector.  In BPIP, the downwind SIZ boundary is
the GEP 5L limit line instead of a line 5L downwind from the most
downwind corner drawn perpendicular to the wind flow.

     The calculations to determine the building height and
projected width values for output to the ISC2 models parallels
the GEP stack height determination section of BPIP.  The main
difference is that the BH and PBW calculation procedures produced
one set of values for every sector instead of every degree or
direction of interest and that the building wake effect area of
influence is wider than the GEP area of influence for a given
wind direction.

2.2.1  Simple Structure Calculations

     In the first half of BPIP, a determination is made as to
whether a stack is under the influence of a structure or group of
structures.   If it is, the flag, GEPIN, is set for that
structure(group)-stack combination at the height of the structure
or common height of the group.  A GEP stack height is also
calculated and stored for that stack.  In the second half of
BPIP, the first half algorithms are essentially repeated with
some variation and additions in order to calculate BH and PBW
values for input to one of the ISC2 models.

     After the algorithms used to calculate the GEP stack height
were copied to the second half of BPIP, additional algorithms and
modifications were added so SIZ coordinates,  BH, and PBW values
could be calculated.  The algorithms check for a stack inside the
SIZ, and if so, the GEPIN flag is checked to see if the stack is
also within the GEP 5L area of influence.  If both conditions are
satisfied and if the calculated wake effect height is greater
than the maximum wake effect height calculated, the current BH
and PBW values are saved. If the GEP stack height is less than
the maximum wake effect height, the GEP BH and the GEP PBW values
are used instead of the BH and PBW values producing the maximum
wake effect height  (See Figure 2.5).
                               2-13

-------
2.2.2 Group of Structure Calculations

     The process for combining tiers of sufficiently close
structures in this second half of the program,  is not as complex
as it was in the first half of the program.  In this second half,
the tiers of each structure are examined and combined using the
same algorithms as the first half, but there is no need to
determine if a stack is at or within 5L directly downwind of
either the structures or the GFSs.  This was done by setting the
flag, GEPIN, to 1 which indicates that a stack is at or within
the GEP 5L limit.  In this half of BPIP, there is only a need to
determine if stack is within the SIZ and if its GEPIN flag has
been set to '1'.   If both conditions exist, BH and PBW values are
saved.

     When preparing to save BH and PBW values for input to
ISCST2, each stack location is examined to determine if it falls
within: 1) any of the SIZes of any of the individual tiers or any
one of the tier combination subgroups, and 2) the GEP 5L area
limits for that particular 10 degree increment of wind direction.
If so, the BH and PBW are saved for input.  If the wake effect
height is greater than the GEP stack height, the GEP BH and PBW
values are saved instead.

     Since a SIZ cannot cover a ISCLT2 sector,  three SIZs are
used to cover the sector (See Figure 2-7).  The centerlines of
the first and last SIZ are oriented to the direction of the
Sector's left and right boundary directions.  The middle SIZ is
oriented to the sector's centerline direction.   If a BH and PBW
for a stack are calculated using the middle SIZ, then those two
values are used regardless of any BH or PBW value calculated for
the first or last SIZ in the sector.  Otherwise, the other two BH
and PBW pairs undergo the same process that an ISCST2 BH and PBW
pair would undergo.

     If the building downwash wake effect height is greater than
the GEP stack height, the GEP BH and PBW values, saved from the
first part, are used instead of the building downwash related
values.  The BH and PBW values are saved to a file in a format
compatible with the respective ISC2 model input file format.

     Two test cases were run and are discussed in Appendix B.
One test case is very simple and the other is very complex and
uses almost all the BPIP algorithms.  Instructions for setting up
and running BPIP follow.
                               2-14

-------
     f
     Si
Figure 2-7.
SIZ Coverage of 22.5 Degree Wide GEP Area of

Influence
                               2-15

-------
                     3.0 USER'S INSTRUCTIONS
     The following subsections contain information on setting up
and running BPIP.  The BPIP program is straight forward in its
operation.


3.1 INPUT PREPARATION

     Before preparing the input data to BPIP,  the structure-
source relationships should be assessed with respect to the GEP
and building downwash guidance.  Any relationships that do not
appear to be covered by the guidance or in some way appear
ambiguous should be discussed with the Regional Modeling Contact.
For example, a multi-tiered building with two separate towers can
be treated in two ways.  The first way as strictly a multitiered
building where each tier is treated as a stand-alone structure.
The second way as a multitiered building with two towers that may
be combined.  If the second way is recommended, the base tier
would have to be entered twice; once with the first tower and
once with the second tower.

     Stacks can be on top of roofs and also be more than 5L
downwind from an upwind roof edge.  The main algorithms in BPIP
were not designed to process these stacks if they are further
than 5L downwind from a roof edge.  This is contrary to guidance.
An algorithm was written to automatically detect when a stack is
on a roof.

     Data preparation for use by the Huber-Synder downwash
algorithm should be prepared as if it were to be used by the
Schulman-Scire downwash algorithm.  Input data to BPIP should use
normal building dimensions and orientation in all cases.  BPIP
will calculate 36 pairs of BH and PBW values for input to the
ISCST2 model or 16 pairs of input for the ISCLT2 model for each
stack.

     It is up to the user to determine the suitability of BPIP to
meet the needs of the modeling situation.  There are additional
conditions and situations that are discussed in the GEP technical
support document which are not fully programmed into BPIP.  The
conditions and situations concern the use of various formulae for
determining GEP stack height based upon the date a stack came
into existence.  BPIP has not been programmed to use the 2.5H
formula that is prescribed for stacks in existence prior to
January 12, 1979 but after December 31, 1970.   However, for low
or squat buildings only, the 2.5H formula is equivalent to the H
+ 1.5L formula for calculating GEP stack height.  The user needs
to read and understand the guidance and this guide before running
BPIP.

     If the structure and location values are not in meters, the
conversion factor will be applied during the input process and

                               3-1               (Revised 2/8/95)

-------
the data will be processed in meters.  The UTM coordinates will
not be converted to meters since they should already be in
meters.  All output will be expressed in meters.

     BPIP processes input data on a structure by structure basis.
Each structure or building is identified by a name (maximum of 8
alphanumeric characters) and base elevation.  The number of tiers
and tier heights for each structure needs to be determined along
with the number of corners for each tier.  Each tier corner's
location must be identified by a pair of X - and Y - Cartesian or
respective UTM Easting and Northing coordinates (meters).   This
must be done for each structure to be processed through BPIP.  If
UTM coordinates are used, the UTM flag must also be changed from
'UTMN' to 'UTMY' in the input file.

     Each stack or source structure name used needs to be the
same name as used for the source emissions data in the respective
ISC2 input runstream.  The ISC2 programs restrict the stack or
source name to a maximum 8 characters and so does BPIP.  A stack
base elevation and stack height need to be determined for each
stack along with its X - and Y - Cartesian or UTM Easting and
Northing coordinates.  The direction for UTM 'north'  is assumed
to be the same as True North, but there can be a slight
difference that the user can adjust for by setting a value other
than 360.0 for  'plant north'.

     If UTM coordinates are used, BPIP will move the UTM origin
to the first tier coordinates entered.  The new origin will
become 0,0 and BPIP will adjust all the rest of the UTM
coordinates to the new origin values accordingly.

     Not all plant plots are oriented to True North.   The user
needs to determine the direction of 'plant north'  with respect to
True North.   If plant north is pointed towards the northwest,
then the user enters 315.0 for plant north.  Otherwise, if plant
north and true north are the same, the user enters either 360.0
or 0.0 for the direction.  BPIP will adjust the plant coordinates
to True North coordinates after any UTM adjustments are made but
before any GEP processing begins.  Plant north is entered on the
same line as UTMN or UTMY.

     Once this data has been determined, an input file to BPIP
can be written.  The data needs to be written on a line by line
basis as outlined in Tables 3-1 through 3-3.  The data can be
separated by commas or blank spaces.  Data entry is in 'Free
Format'.
                               3-2

-------
3.2 INITIAL PROGRAM SETTINGS

     BPIP has been programmed with parameters that the user can
set to accommodate increases in the number of structures,  tiers
per structure, or stacks that need to be processed without
changing the dimensions of over two dozen arrays.  The parameter
values are arguments in PARAMETER statements that are located
shortly after the definitions in the main program and at the
beginning of each subroutine.  Initially, BPIP is set up to
process a maximum of 8 buildings with a maximum of 4 tiers per
building and 14 stack locations.  In order to change the
dimensions of these variables,  the following parameters need to
be changed:
                                                       Initial
     Parameter  Definition                             Setting
        MB      Maximum Number of Buildings               8
        MT      Maximum Number of Tiers/Building          4
        MET     Maximum Building-Tier Number (MB*MT)     32
        MTS     Maximum Number of Sides/Tier              8
        MSK     Maximum Number of Stacks                 14
        MD      Number of Sectors - ISCST2               36
        ML      Number of Sectors - ISCLT2               16

BPIP will need to be recompiled after changing any one of the
above parameters.  BPIP was written to Fortran 77 standards and
compiled with Microsoft's Fortran 5.0 compiler.  No OPEN
statements were used in the source code.

3.3 INPUT FORMAT

     The input format consists of 12 different types of data
input lines or records.  Table 3-1 identifies each record type
and its purpose.  An example is given with each type of input.

     The types of record in Table 3-1 are required to be entered
into an ASCII file in a certain sequence.  In Table 3-2 is an
outline of that sequence.  After the eighth line, entry is
dependent upon the number of buildings, tiers,  tier corners, and
stacks.  An annotated example of the sequence,  using actual data,
is shown in Table 3-3.

3.4 EXECUTION OF BPIP

     Once the input file has been prepared and saved to disk,
BPIP is ready to be executed.  The execution line is as follows:

        BPIP input_filename output_filename summary_filename

     Several input data checks are made that will give a warning
message and halt the program.  Otherwise, the program should run
to termination.  On an 486/mhz IBM clone, test case 1 runs in
about 3 seconds while test case 2 runs in about 13 minutes.  Test
case 1 consists of 1 building with 1 tier and 4 stacks while test
case 2 consists of 3 combinable buildings with 3 tiers each and

                               3-3               (Revised 2/8/95)

-------
10 stacks.  A one stack version of test case 2 takes about 1 and
a half minutes to run.

                            Table 3-1
     Record
     TITLE
     PROCESS
     UNITS
     GRID
     B-NO
     BLDG,
                        Data  Input Types
Description

Contains a title or run description.  A maximum of
78 characters is permitted on this line.  The
title must be enclosed by single quotes.
  Example line: 'Acme Power - S02 Emiss. Limits'

A two character flag between single quotes
controls whether BPIP will calculate output for
input to either an ISCST2 or an ISCLT2 input file.
The two flags are:
  'ST' - Output will be for an ISCST2 input file.
  'LT' - Output will be for an ISCLT2 input file.
  Example line: 'ST'

Identifies the input units by name followed by a
units to meters conversion factor.  Up to 10
characters are allowed for the units name.  All
output will be in meters.
  Example line: 'Feet'  0.3048

Contains the UTM coordinate process flag and a
plant north direction value.  The flag can only be
set to:
  'UTMN' - for no UTM coordinate processing, or
  'UTMY' - for UTM coordinate processing

Plant north is the orientation of a plant plot
with respect to true north.  If a plant plot
showed that plant north was toward the southeast,
plant north would be 135 degrees.
  Example line: 'UTMY'  135.00

Contains the number of buildings to be processed.
This input is a single integer number.
  Example line:  3

Contains the building name, number of tiers for
the building, and the building's base elevation
The building name can be up to up to 8 characters
in length between single quotes.  The number of
tiers for this building is an integer and the
elevation value is a real number.
  Example line: 'Bldg #7'  4  553.75
                               3-4

-------
Record
TIER,
CORNER,
S-NO
STACK=
                   Table  3-1  Cont'd
Description

Contains the number of tier corner coordinates to
follow in the following record lines and the tier
height with respect to the building base
elevation.  The number of corners is an integer
while the base elevation value is real.
  Example line:  6  20.5

Contains a pair of tier corner x-y coordinate
values if the GRID line contains a 'UTMN'  flag.
If the GRID line contains a 'UTMY' flag, the
coordinate pair are treated as UTM Easting and
Northing coordinates,  respectively.
  Example line:  -23.5   46.75

Contains the integer value of the number of stacks
to be processed.
  Example line:  9

Contains the stack data which consists of:
  Stack name - up to 8 characters allowed with no
          spaces allowed in the name.  The name
          has to be between single quotes.
  Stack base elevation - real value
  Stack height - real value measured from the
     stack base.
  Stack coordinates - see CORNER for format
  Example line: 'Stk3'  123.1 10.5 -45.3 -34.1
                          3-5
                                  (Revised 2/8/95;

-------
                   Table 3-2

              Data Input Sequence

Record
  )e                     Placement
TITLE                    First line of file
PROCESS                  Second line of file
UNITS                    Third line of file
GRID                     Fourth line of file
B-NO                     Five line of file
  BLDG 1                 Sixth line of file
    TIER 1,1             Seventh line of file
      CORNER 1,1,1       Eight line of file
      CORNER 1,1,2       Etc.

      CORNER 1,1,m
    TIER 1,2
    .  CORNER 1,2,1

    .  CORNER 1,2,n
    TIER l,t
      CORNER 1,t,1

      CORNER 1,t,r
  BLDG 2

        (repeat of the TIER-CORNER pattern for BLDG 1.

  BLDG b (followed by a repeat of the BLDG 1 pattern.)
S-NO
  STACK 1

  STACK s
                      3-6               (Revised 2/8/95;

-------
                   Table 3-3
                 Input Example
Record
TITLE
PROCESS
UNITS
GRID
B-NO
  BLDG 1
    TIER 1,1
      CORNER
      CORNER
      CORNER
      CORNER
      CORNER
      CORNER
  BLDG 2
    TIER 2,1
      CORNER
      CORNER
      CORNER
      CORNER
S-NO
  STACK 1
  STACK 2
  STACK 3
  STACK 4
1,1,1
1,1,2
1,1,3
1,1,4
1,1,5
1,1,6
2,1,1
2,1,2
2,1,3
2,1,4
           Example input

           'Simple building'
           'LT'
           'Feet' 0.3048
           'UTMY' 270.0
'L - Big' 1
6 20.0
-10.3 -20
-10.3 80
40.3 80
40.3 30
90.4 30
90.4 -20
' Proc . 1 ' 1
4 10.0
110.3 120
110.3 180
140.3 180
140.3 120
'StacklOO' 5
'StacklOl' 5
'Stackl02' 5
'Stackl03' 5
10.0

.5
.1
.1
.3
.3
.5
15.5

.5
.1
.1
.5
. 25.0
. 25.0
. 25.0
. 25.0














-10.0 -20.0
10.0 15.0
136.0 121.0
118.0 103.0
                      3-7
                            (Revised 2/8/95;

-------
3.5 BPIP OUTPUT FILES AND FORMATS

     BPIP generates two output files.  One file contains the
essential output data such as the Preliminary GEP stack height
values and the BH and PBW input for an ISCST2 or ISCLT2 input
runstream file.  This file is considered to be the primary output
file.  The other file is a summary file and it contains detailed
output such as which tier(s)  are affecting which stack for a
particular wind flow direction.  Both files are generated toward
either an ISCST2 or an ISCLT2 computer run.

3.5.1  Primary Output File

     The output from the Primary Output File (see Table 3-4) is
headed by the date and time of execution,  title, and BPIP
Processing Information.  This is followed by a table listing each
stack, its stack height, GEP equation 1 stack height value and
preliminary GEP stack height values.  The list is part of the
Preliminary GEP Stack Height Results Table.  In the results
table, the GEP stack height values are called preliminary due to
other conditions and situations addressed in the GEP technical
support document.

     This GEP data is followed by the BH and PBW data.  The BH
and PBW output are also grouped on a stack by stack basis and
have to be manually edited into the appropriate ISC2 input
runstream file.  The output begins in column 4.  The ISCST2
numeric output begins with sector 1 which is centered on 10
degrees north.  Each ISCST2 sector is 10 degrees wide.  Sector
numbering proceeds in a clockwise direction and ends with sector
36.  BPIP places 6 output values on a line for 6 lines for both
the BH and PBW value sets.  The ISCLT2 numeric output begins with
sector 1 which is centered on 360 degrees.  Sector numbering also
proceeds in a clockwise direction but in 22.5 degree increments
and ends with sector 16.  Again, BPIP places up to 6 output
values on a line for 3 lines for both the BH and PBW sets.  The
BH values are listed first; followed by the PBW values. (Also,
see Tables B-4, B-6 and B-7).
                               3-1

-------
                                Table 3-4

                   Example of  a Primary  Output  File
DATE :  11/13/93
TIME :  16:27:23
BPIP users guide test case #1  -  input  file  with  1  bldg and 4 stacks.
BPIP PROCESSING INFORMATION:


  The ST flag has been set for processing  for  an  ISCST2  run.

  The inputs units are in: METERS      Multiplying METERS     by a conversion
   factor of    1.0000 will produce  BPIP results  in meters.

  The UTMP variable is set to UTMY.   The input is assumed to be in
    UTM coordinates.   BPIP will move the UTM origin to the  first pair of
    UTM coordinates read.   The UTM coordinates of the new origin will
    be subtracted from all the other UTM coordinates entered to form
    this new local coordinate system.

  The new local coordinates will be  displayed  in  parentheses just below
    the UTM coordinates they represent.

  Plant north is 210.00 degrees with respect to True North.


BPIP users guide test case #1 - input file with 1 bldg and  4 stacks.

              PRELIMINARY* GEP STACK HEIGHT RESULTS TABLE
                           (Units: METERS)
Stack
Name
StklOO
StklOl
Stkl02
Stkl03
Stack
Height
75.
66.
25.
47 .
.00
.00
.00
.00
Preliminary*
GEP** GEP Stack
EQN1 Height Value
49.00
.00
.00
46.00
49.
65.
25.
46.
.00
.00
.00
.00
  * Results based on Table 3.1  of  the  GEP  Technical  Support Document.
    Consult Table 3.1 for any additional steps  that  may be required.
 ** Results using Equation 1,  page 6 of GEP  Technical  Support Document.
                                    3-9

-------
                           Table 3-4 Cont'd
DATE :  11/13/93
TIME :  16:27:23
BPIP users  guide test case #1 - input file with 1 bldg and 4 stacks.
 BPIP output  in METERS
SO
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl03
Stkl03
Stkl03
Stkl03
Stkl03
Stkl03
Stkl03
Stkl03
Stkl03
Stkl03
Stkl03
Stkl03
20.
20.
20.
20.
20.
20.
111.
140 .
107 .
111.
140 .
107 .




























20.





140 .

.00
.00
.00
.00
.00
.00
.07
.88
.16
.07
.88
.16
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.88
.00
20.
20.
20.
20.
20.
20.
107 .
140 .
111.
107 .
140 .
111.




























20.





140 .

.00
.00
.00
.00
.00
.00
.16
.88
.07
.16
.88
.07
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.88
.00
20.
20.
20.
20.
20.
20.
100.
136.
111.
100.
136.
111.




























20.





136.

.00
.00
.00
.00
.00
.00
.00
.60
.60
.00
.60
.60
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.60
.00
20.
20.
20.
20.
20.
20.
115.
128.
108.
115.
128.
108.
























20.


20.
20.

115.


115.
128.

.00
.00
.00
.00
.00
.00
.85
. 17
.74
.85
. 17
.74
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.85
.00
.00
.85
. 17
.00
20.
20.
20.
20.
20.
20.
128.
115.
108.
128.
115.
108.



























20.
20.




128.
115.

.00
.00
.00
.00
.00
.00
. 17
.85
.74
. 17
.85
.74
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
. 17
.85
.00
20.
20.
20.
20.
20.
20.
136.
100.
111.
136.
100.
111.



























20.





136.


.00
.00
.00
.00
.00
.00
.60
.00
.60
.60
.00
.60
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.60
.00
.00
                                  3-10

-------
3.5.2  Summary File

     The second output file is a summary file with detailed
information such as a repeat of the input data with any
adjustments, which tier wake effects are affecting which stacks,
and associated GEP and SIZ values.  In Tables 3-5 and 3-6,  are
portions of an example summary file.  Normally summary files are
much larger such as the test case summary files which range in
size from around 90 Kbytes for test case 1 to over 267 Kbytes for
test case 2.

     In the first part of the file, in the BPIP Processing
Information section (see Table 3-5), the initial BPIP settings
are written with a brief explanation to clarify what BPIP was
requested to do with the input data.  This is followed by an
Input Summary that prints the original input data as read by BPIP
and which is followed by a line with those values converted to
meters.  Two additional lines may follow each of the original two
input data lines.  One line may contain a possible conversion of
the coordinates from UTM to a local X-Y coordinate system and the
other line may contain rotated plant coordinates from a plant
north direction to a True North direction.  There are no
parentheses or brackets around the original coordinate values as
there are around the converted UTM and rotated from plant north
values.  The example shows all four types of coordinate lines.

     Under the Overall GEP Summary Table section that follows the
section above (see Table 3-6, Part 1),  note that the difference
between the stack and building base elevations has been
subtracted from the GEP Eqnl values.  In this example, the
maximum GEP Eqnl value occurs under all wind flow directions, but
360. degrees is printed.  In other cases, where there is a
definitive direction in which a maximum occurs, the correct
direction is given.  Note that 'no tiers' are affecting stack 101
(see Figure 2-6 for stack location).

     In the second part of the summary file (see Table 3-6, Part
2), the number of tier(s) and the tier number(s) forming the
dominate group of combined tiers are listed, even if the 'group'
consists of only 1 tier such as shown for StklOO.  The common
height is the first value listed after the  'MAX:  BH:'
identifier.  In this case, it is 20.0 meters.   MAX refers to the
sector values producing the maximum wake effect height with the
minimum amount of width for the stack in question.  Since the
wake effect height is 50.0 meters and 1 meter greater than the
GEP Equation 1 Height, the height has been reduced to the GEP
value.  The GEP value was also 50 meters before the terrain
difference of 1 meter was subtracted from it.   The number of
tiers affecting StklOO is 1.  The first tier number listed is
always the building-tier number of the focal tier.  In this case
it is building-tier number 1.  The building-tier numbers can be
found in the Input Summary above.
                               3-11

-------
                                Table  3-5

                      Portions of  a Summary  File
DATE :  11/16/93
TIME :  22:18:18
BPIP users guide test case #1 -  input file with 1  bldg  and  4  stacks.
BPIP PROCESSING INFORMATION:


  The ST flag has been set for processing for an ISCST2  run.

  The inputs units are in: METERS     Multiplying METERS     by  a  conversion
   factor of    1.0000 will produce BPIP results in meters.

  The UTMP variable is set to UTMY.  The input is assumed  to  be  in
    UTM coordinates.   BPIP will move the UTM origin to the first pair of
    UTM coordinates read.   The UTM coordinates of the new  origin will
    be subtracted from all the other UTM coordinates entered  to  form
    this new local coordinate system.

  The new local coordinates will be displayed in parentheses  just  below
    the UTM coordinates they represent.

  Plant north is 210.00 degrees with respect to True North.
   The plant coordinates will appear as  entered in the Summary output
   file and they will be adjusted to True North prior to processing.
   The True North oriented coordinates appear below between
   the square brackets.
INPUT SUMMARY:


Number of buildings to be processed :    1

L-Shape  has 1  tier(s)  with a base elevation of    10.00  METERS

BUILDING  TIER   BLDG-TIER  TIER   NO.  OF      CORNER  COORDINATES
  NAME   NUMBER   NUMBER  HEIGHT  CORNERS         X           Y

L-Shape     1        1     20.00     6
                                               -10.00       -20.00
                                               -10.00       -20.00
                                        (          .00          .00)
                                        [          .00          .00]
                                               -10.00        80.00
                                               -10.00        80.00
                                        (          .00       100.00)
                                        [       -50.00       -86.60]
                                   3-12

-------
                             Table 3-5  Cont'd
 Number of stacks to be processed :    4

                    STACK            STACK    COORDINATES
  STACK NAME     BASE  HEIGHT         X           Y

  StklOO        11.00   75.00        -10.00       -20.00
                                     -10.00       -20.00
                              (          .00          .00)
                              [          .00          .00]
  StklOl        12.00   66.00        164.00       159.00
                                     164.00       159.00
                              (       174.00       179.00)
                              [      -240.19       -68.02]
The number of stack-tier combinations  entered, where each stack is at least 5L
 in from at least one of the  edges  of  their  respective tier roofs, is:   0
                                    3-13

-------
Part 1:
 StkNo:
                                 Table 3-6
                 Additional  Portions of  a Summary File
                     Overall  GEP  Summary  Table
                          (Units:  METERS)
          Stk Name:StklOO   Stk Ht:   75.00  Prelim.  GEP  Stk.Ht:   49.00
          GEP:  BH:   20.00  PBW:   111.60              *Eqnl Ht:   49.00
         *with a Stack-Building elevation difference  applied  =    1.00
No. of Tiers affecting Stk:   1   Direction occurred:   360.00
 Bldg-Tier nos.  contributing to GEP:    1
 StkNo:   2  Stk Name:Stkl01    Stk Ht:
            GEP:   BH:     .00   PBW:
       No tiers affect this  stack.
                                     66.00  Prelim.  GEP  Stk.Ht:   65.00
                                     .00              *Eqnl Ht:      .00
Part 2:
                     Summary By Direction  Table
                           (Units:  METERS)
 Dominate stand alone tiers:
 Drtcn:
 StkNo:
 StkNo:
       10.00
          Stk Name:StklOO
               MAX:   BH:
               GEP:   BH:
                            20.00
                            20.00
      No
                                              Stack Ht:   75.00
                          PBW:  111.07   *Wake  Effect Ht:   49.00
                          PBW:  111.60    *Equation  1 Ht:   49.00
  *with a Stack-Building elevation  difference applied  =    1.00
       BldNo:   1  Bid Name:L-Shape   TierNo:   1
2  Stk Name:Stkl01                            Stack Ht:   66.00
        MAX:   BH:     .00  PBW:     .00   *Wake  Effect Ht:      .00
        GEP:   BH:     .00  PBW:     .00    *Equation  1 Ht:      .00
tier affects  this  stack.
 Dominate combined buildings:

 Drtcn:   10.00

 StkNo:   1  Stk Name:StklOO                            Stack Ht:   75.00
                 MAX:   BH:   20.00   PBW:  111.07   *Wake Effect Ht:   49.00
                 GEP:   BH:   20.00   PBW:  111.60    *Equation 1 Ht:   49.00
           *with a Stack-Building  elevation  difference applied  =    1.00
  No.  of Tiers affecting Stk:   1
   Bldg-Tier nos.  contributing to  MAX:    1
 StkNo:   2  Stk Name:Stkl01                            Stack Ht:   66.00
                 MAX:   BH:     .00   PBW:     .00   *Wake Effect Ht:      .00
                 GEP:   BH:     .00   PBW:     .00    *Equation 1 Ht:      .00
       No tiers affect this  stack.
                                    3-14

-------
                          4.0  REFERENCES

GEP Guidance:

1.   Environmental Protection Agency, 1985:  Guideline for
     Determination of Good Engineering Practice Stack Height
     (Technical Support Document for the Stack Height
     Regulations)  - Revised EPA-450/4-80-023R, U.S. Environmental
     Protection Agency, Research Triangle Park, North Carolina
     27711.

Building Downwash Guidance:

2.   Tikvart, Joseph A., Stack-Structure Relationships,
     Memorandum to Richard L.  Daye, May 11, 1988.

3.   Tikvart, Joseph A., Clarification of Stack-Structure
     Relationships, Memorandum to Regional Modeling Contacts,
     Regions I-X,  June 28, 1989.

4.   Lee, Russell F., Stack-Structure Relationships--Further
     clarification of our memoranda dated May 11, 1988 and June
     28, 1989,  Memorandum to Richard L. Daye,  July 1, 1993

Other related documents:

5.   Environmental Protection Agency, 1992:  Screening Procedures
     For Estimating The Air Quality Impact Of Stationary Sources
     (Revised).  EPA-454/R-92-019,  U.S. Environmental Protection
     Agency, Research Triangle Park, North Carolina 27711.

6.   Memorandum (dated October 10,  1985), Questions and Answers
     on Implementing the Revised Stack Height Regulation, From G.
     T. Helms to Chief, Air Branch Regions I-X.

7.   Environmental Protection Agency, 1992:  User's Guide For the
     Industrial Source Complex  (ISC2) Dispersion Models Volume I.
     EPA-450/4-92-008a, U.S. Environmental Protection Agency,
     Research Triangle Park, North Carolina 27711.

8.   Environmental Protection Agency, 1986:  Guideline on Air
     Quality Models  (Revised).  EPA-450/2-78-027R, U.S.
     Environmental Protection Agency, Research Triangle Park,
     North Carolina 27711.

9.   Eckhoff, P.A., May 1993:  Evaluation of Computer Programs For
     Calculating Projected Building Widths (Draft).  U.S.
     Environmental Protection Agency, Research Triangle Park,
     North Carolina 27711.
                               4-1

-------
           APPENDIX A
BPIP PROGRAM SOURCE CODE  LISTING

-------
(2  **************************************************************************
c  *                                                                        *
C  *              BUILDING PROFILE INPUT PROGRAM (DATED 93320)               *
C  *                                                                        *
C  *              *** SEE BPIP MODEL CHANGE BULLETIN MCB#1 ***               *
C  *                                                                        *
C  *     ON THE SUPPORT CENTER FOR REGULATORY AIR MODELS BULLETIN BOARD     *
C  *                                                                        *
C  *                        (919)  541-5742 (8-N-l)                           *
C  *                                                                        *
(2  **************************************************************************
C
C        Programmed by: Peter Eckhoff
C                       EPA
C                       MD-14
C                       Research Triangle Park, NC 27711
C
(2  **************************************************************************
C
C           Written to: FORTRAN 77 Standards
C
(2  **************************************************************************
C
C        Modifications: November 16, 1993 - Original Code
C
(2  **************************************************************************
C
C                               INPUT FORMAT
C
C      Note: The tier coordinates need to be entered in a clockwise or
C            counter-clockwise direction.  Input is free format.  Single
C            quotes need to be around 'character input strings'.
C
C   'Run description'  (up to 78 characters)
C   'ST' or 'LT' processing
C   'Input Units Name'  Conversion to meters factor
C   'UTMN'  (for no UTM) or 'UTMY'(for UTM coordinates processing), Plant North
C   Number of Buildings
C     Building 1 Name,  Number of Tiers for Building 1, Base Elevation
C      Number of Corners for Tier 1, Tier 1 Height
C       Tier 1 Corner 1 X -,  and Y - Coordinates
C       Tier 1 Corner 2 X -,  and Y - Coordinates
C       Tier 1 Corner c X -,  and Y - Coordinates
C
C
C
C      Number of Corners for Tier t, Tier t Height
C       Tier t Corner 1 X -,  and Y - Coordinates
C       Tier t Corner 2 X -,  and Y - Coordinates
C       Tier t Corner c X -,  and Y - Coordinates
C
C
C
C     Building x Name,  Number of Tiers for Building x
C      Number of Corners for Tier 1, Tier 1 Height
C       Tier 1 Corner 1 X -,  and Y - Coordinates
C       Tier 1 Corner 2 X -,  and Y - Coordinates
C       Tier 1 Corner c X -,  and Y - Coordinates
C
C
C
C      Number of Corners for Tier t, Tier t Height
C       Tier t Corner 1 X -,  and Y - Coordinates
C       Tier t Corner 2 X -,  and Y - Coordinates


                                     A-l

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
Tier t Corner c X -, and Y - Coordinates
Number
Stack



Stack
Number
Stack



Stack

*******



of Stacks
1 name, Base Elevation, Height, Stack 1 X -, and Y - Coordinates



s name, Base Elevation, Height, Stack s X -, and Y - Coordinates
of Stacks whose roof location > 5L from a roof edge
number, Building number, Tier Number



number, Building number, Tier Number

*******************************************************************

EXECUTION STATEMENT

DOS Prompt> BPIP Input filename Output filename Summary filename

*******











*******



Al


A2


A
ADJ
ANG

AU
B
BELEV
BET


BTN
BU
C

Cl
C2
CH
CNRLIN



CONV

*******************************************************************

UNIT USAGE

UNIT PURPOSE

* - READ FROM THE KEYBOARD
* - WRITE TO THE SCREEN
10 - READ INPUT FROM FILE
12 - WRITE OUTPUT TO FILE
14 - WRITE SUMMARY FILE

*******************************************************************

DEFINITIONS

- AREA OF A SQUARE SQUARED. USED TO DETERMINE IF AN INTERCEPT IS
BETWEEN TWO TIER CORNERS. Al IS BASED ON THE CORNER COORDINATES
AND THE INTERCEPT COORDINATES.
- AREA OF A SQUARE SQUARED. USED TO DETERMINE IF AN INTERCEPT IS
BETWEEN TWO TIER CORNERS. A2 IS BASED ON THE CORNER COORDINATES
ONLY.
- TEMPORARY STORAGE VARIABLE ASSOCIATED WITH UTM COORDINATES
- ADJUST PLANT NORTH COORDINATES TO TRUE NORTH COORDINATES
- ANGLE THROUGH WHICH STACK AND TIERS ARE ROTATED SO THE WIND
DIRECTION IS POINTED "TRUE NORTH"
- TEMPORARY STORAGE VARIABLE ASSOCIATED WITH UTM COORDINATES
- TEMPORARY STORAGE VARIABLE ASSOCIATED WITH UTM COORDINATES
- BASE ELEVATION OF A BUILDING
- VALUE IN CNRLIN THAT WHEN A PERPENDICULAR LINE DRAWN FROM A TIER
CORNER TO ANOTHER TIER SIDE INTERCEPTS THE SIDE BETWEEN THE TWO
CORNERS, BET IS POSITIVE.
- NAME OF STRUCTURE
- TEMPORARY STORAGE VARIABLE ASSOCIATED WITH UTM COORDINATES
- NUMBER USED TO INDEX A BUILDING TIER (BLDG# - 1) * MXTRS + TIER#
WHERE 4 REPRESENTS THE MAX NUMBER OF TIERS PRE BUILDING
- BUILDING TIER NUMBER COMBINABLE WITH BUILDING TIER NUMBER C2
- BUILDING TIER NUMBER COMBINABLE WITH BUILDING TIER NUMBER Cl
- BUILDING-TIER NUMBER OF THE TIER HEIGHT USED AS A COMMON HEIGHT
- SUBROUTINE TO CALCULATE THE DISTANCE BETWEEN A TIER CORNER AND
THE SIDE OF ANOTHER TIER. SUBROUTINE ALSO CALCULATES WHETHER
OR NOT A PERPENDICULAR LINE DRAWN FROM THE CORNER TO THE SIDE
INTERCEPTS THE SIDE BETWEEN THE TWO CORNERS OF THE TIER.
- FACTOR TO CONVERT USER ' S UNITS TO METERS
A-2

-------
C   CSA    - COSINE OF ANG
C   CXMN   - X COORDINATE OF FURTHEST WEST POINT OF DISTURBED AIR  ZONE
C   CXMX   - X COORDINATE OF FURTHEST EAST POINT OF DISTURBED AIR  ZONE
C   CYMN   - Y COORDINATE OF FURTHEST SOUTH POINT OF DISTURBED AIR ZONE
C   CYMX   - Y COORDINATE OF FURTHEST NORTH POINT OF DISTURBED AIR ZONE
CD      - WIND DIRECTION SUBSCRIPT OR INDEX
C   DDEG   - INC'ENTAL WIND DIRECTION AND INITIAL WIND DIRECTION
C   DIF    - DIFFERENCE IN HEIGHT BETWEEN A STACK AND BUILDING BASE ELEVATION
C   DISLIN - SUBROUTINE THAT CALCULATES DISTANCE BETWEEN A  SIDE AND STACK
C             AND CHECKS IT AGAINST 5L
C   DIST   - DISTANCE BETWEEN TWO TIER CORNERS OR THE PERPENDICULAR DISTANCE
C             BETWEEN A TIER CORNER AND A TIER SIDE OF TWO  DIFFERENT TIERS
C   DISTMN - MINIMUM DISTANCE BETWEEN BUILDING TIER PAIRS
C   DMDxx  - NUMBER OF OUTPUT VALUES PER LINE
C   DR     - WIND DIRECTION FROM A CORNER TO A STACK
C   DTR    - DEGREES TO RADIANS CONVERSION FACTOR
C   FLG1   - FLAG FOR STACK INDICATING STACK'S X COORDINATE MAYBE  WITHIN  SIZ
C   FLG2   - FLAG FOR STACK INDICATING STACK'S Y COORDINATE MAYBE  WITHIN  SIZ
C   G65    - GEP 65 METER DECISION POINT CONVERTED TO USER'S INPUT UNITS
C   GDIRS  - WIND FLOW DIRECTION MAXIMUM GEP STACK HEIGHT OCCURS
C   GEP    - GEP STACK HEIGHT FOR SOURCE s.
C   GEPBH  - GEP STRUCTURE HEIGHT AFFECTING SOURCE
C   GEPBW  - GEP PROJECTED STRUCTURE WIDTH AFFECTING SOURCE
C   GEPIN  - FLAG INDICATING SOURCE IS IN GEP INFLUENCE OF  STRUCTURE C
C   GFS    - GAP-FILLING STRUCTURE. USED TO JOIN TWO SUFFICIENTLY  TIERS INTO
C             ONE COMBINED STRUCTURE
C   GPC    - SUBROUTINE THAT SET GEPIN TO 1 AND DETERMINES  MAX GEP STACK
C            HEIGHT
C   GTLIST - ARRAY OF TIER NUMBERS USED TO CALCULATE A GEP  STACK HEIGHT VALUE
C   GTNUM  - COUNTER WITH NUMBER OF TIERS USED TO CALCULATE A GEP  STACK HEIGHT
C   HWE    - HEIGHT OF WAKE EFFECT PRODUCED BY A TIER ON A  STACK
C   HT     - BUILDING HEIGHT - DIMENSIONED BY BUILDING-TIER NUMBER
C   HTA    - BUILDING TIER HEIGHT OR COMMON TIER HEIGHT
C   HTC    - FOCAL TIER HEIGHT
C   I      - BUILDING SUBSCRIPT OR INDEX
C   Ix     - COUNTER IN A DO LOOP
C   IBET   - FLAG IN DISLIN THAT WHEN SET INDICATES THAT A  STACK IS UP TO
C             5L DIRECTLY DOWNWIND OF A SIDE OF A TIER OR GFS
C   ICF    - FLAG TO INDICATE FIRST CHARACTER FOUND IN STKN VARIABLE NAME
C   IDAY   - DAY
C   IHR    - HOUR
C   IMIN   - MINUTER
C   IMON   - MONTH
C   ISEC   - SECOND
C   ISF    - FLAG TO INDICATE FIRST SPACE FOUND AFTER A CHARACTER  IN STKN
C   IX     - TIME RELATED DUMMY VARIABLE
C   IYR    - YEAR
C   IZ     - FOR ISCLT2 ONLY, IF A STACK IS NOT UNDER A WAKE EFFECT COVERED
C             BY THE CENTRAL SIZ THEN CHECK THE OTHER TWO SIZS COVERING THE
C             SECTOR AND USE THE ONE WITH THE HIGHEST WAKE  EFFECT  HEIGHT.
C   J      - TIER SUBSCRIPT OR INDEX
C   JJ     - TIER SUBSCRIPT FOR A SECOND TIER
C   JXMAX  - TIER CORNER NUMBER WHICH IS FURTHEST EAST
C   JXMIN  - TIER CORNER NUMBER WHICH IS FURTHEST WEST
C   JYMAX  - TIER CORNER NUMBER WHICH IS FURTHEST NORTH
C   JYMIN  - TIER CORNER NUMBER WHICH IS FURTHEST SOUTH
C   K      - TIER CORNER SUBSCRIPT
C          - FIRST TIER CORNER SUBSCRIPT OF A FIRST BUILDING
C   Kl     - SECOND TIER CORNER SUBSCRIPT OF A FIRST BUILDING
C   K2     - SECOND TIER CORNER SUBSCRIPT OF A SECOND BUILDING
C   KK     - FIRST TIER CORNER SUBSCRIPT OF A SECOND BUILDING
C   L2     - TWICE MAXIMUM BUILDING WIDTH OR HEIGHT WHICHEVER IS LESS
C   L5     - FIVE TIMES MAXIMUM BUILDING WIDTH OR HEIGHT WHICHEVER IS <
C   L5SQAT - NUMBER OF ROOF STACKS THAT ARE SUSPECTED OF BEING MORE
                                     A-3

-------
C            THAN 5L IN FROM AT LEAST ONE RESPECTIVE ROOF  EDGE
C   LFLAT  - FLAG THAT INDICATES WHICH STACK & BUILDING-TIER  COMBINATIONS
C            FALL UNDER THE L5SQAT DEFINITION
C   LTN1   - L OF FIRST COMBINABLE TIER
C   LTN2   - L OF SECOND COMBINABLE TIER OF TWO TIERS
C   LTN    - GREATER OF LTN1 OR LTN2
CM      - SLOPE OF A TIER SIDE
C   MB     - MAXIMUM NUMBER OF BUILDINGS ALLOWED  -  PARAMETER
C   MET    - MAXIMUM BUILDING TIER NUMBER  (MB*MT)  - PARAMETER
C   MD     - MAXIMUM NUMBER OF ISCST2 SECTORS - PARAMETER
C   MDIRS  - WIND FLOW DIRECTION MAXIMUM WAKE EFFECT HEIGHT OCCURS  IN
C   MH     - ARRAY HOLDING MAXIMUM HEIGHTS BY STACK AND  SECTOR
C   MHWE   - MAXIMUM HEIGHT OF WAKE EFFECT BY SOURCE AND WIND DIRECTION
C   MI     - AN ARRAY OF BUILDING NUMBERS
C   MJ     - AN ARRAY OF TIER NUMBERS
C   ML     - MAXIMUM NUMBER OF ISCLT2 SECTORS - PARAMETER
C   MSK    - MAXIMUM NUMBER OF STACK SOURCES - PARAMETER
C   MT     - MAXIMUM NUMBER OF TIERS/BUILDING - PARAMETER
C   MTLIST - ARRAY WITH A LIST OF COMBINED TIERS  USED TO CALCULATE  A MAXIMUM
C             PROJECTED WIDTH
C   MTNUM  - COUNTER HOLDING THE NUMBER OF COMBINED TIERS  FOR A  MAXIMUM
C             PROJECTED BUILDING WIDTH
C   MTS    - MAXIMUM NUMBER OF SIDES/TIER - PARAMETER
C   MW     - ARRAY HOLDING MAXIMUM WIDTHS BY STACK  AND SECTOR
C   MXBHW  - SUBROUTINE THAT CALCULATES BUILDING  WAKE EFFECT  HEIGHT
C   MXPBH  - MAXIMUM PROJECTED BUILDING HEIGHT BY SOURCE AND  WIND DRCTN
C   MXPBW  - MAXIMUM PROJECTED BUILDING WIDTH BY  SOURCE  AND WIND DRCTN
C   MXTRS  - MAXIMUM NUMBER OF TIERS PER BUILDING
C   NB     - NUMBER OF BUILDINGS ENTERED
C   ND     - NUMBER OF SIDES TO A TIER ENTERED
C   ND16   - NUMBER OF ISCLT2 SECTORS
C   NDIR   - NUMBER OF WIND DIRECTIONS TO BE PROCESSED
C   NS     - NUMBER OF STACKS ENTERED
C   NTRS   - NUMBER OF TIERS (MAXIMUM OF 4) / BUILDING
C   PBH    -           BUILDING HEIGHT BY BUILDING  TIER  NUMBER
C   PBW    - PROJECTED BUILDING WIDTH BY BUILDING TIER NUMBER
C   PN     - FLAG INDICATING PLANT NORTH IS OTHER THAN TRUE NORTH
C   PNORTH - PLANT NORTH AS OPPOSED TO TRUE NORTH
C   PV     - PRELIMINARY GEP STACK HEIGHT VALUE
C   R      - MINIMUM VALUE OF BUILDING HEIGHT AND PROJECTED BUILDING WIDTH
C             USED IN DETERMINING THE COMBINABILITY OF TWO TIERS
C   S      - STACK SOURCE SUBSCRIPT OR INDEX
C   SB     - STACK BASE ELEVATION
C   SH     - STACK HEIGHT
C   SM     - SLOPE OF A LINE
C   SNA    - SINE OF ANG
C   SNM    - TEMPORARY STACK NAME USED TO CHECK FOR BLANK  SPACES IN NAME  -
C            STKN
C   STKN   - STACK NAME
C   SWT    - FLAG INDICATING WHETHER TO CALCULATE VALUES FOR  ISCST  OR ISCLT
C   TH     - HEIGHT OF A TIER - DIMENSIONED BY BUILDING  NUMBER AND  TIER NO.
C   TITLE  - DATA TITLE OR IDENTIFICATION STATEMENT (UP  TO 78 CHARACTERS)
C   TLIST  - IDENTIFIES WHICH BUILDING TIER NUMBER  TO USE  IN  COMBINING
C   TLIST2 - SUBGROUP OF TLIST - BASED ON A TIER  HEIGHT  OF A  TIER IN TLIST
C            TIER HEIGHT IS USED AS BASIS FOR COMBINING
C   TNI    - SEE TNUM
C   TNUM   - COUNTER FOR NUMBER OF BUILDING TIERS TO EXAMINE  FOR COMBINING.
C   TNUM2  - COUNTER FOR TLIST2
C   TW     - PROJECTED WIDTH OF A TIER OR A GROUP OF COMBINED TIERS
C   UEAST  - LOCAL Y - COORDINATE OF ORIGIN IN UTM  COORDINATE VALUE
C   UNORTH - LOCAL X - COORDINATE OF ORIGIN IN UTM  COORDINATE VALUE
C   UTM    - FLAG TO INDICATE THE INPUT DATA ARE  IN UTM  COORDINATES
C   W      - TIER WIDTH FOR A WIND DIRECTION
C   WIDTH  - SUBROUTINE THAT CALCULATES PROJECTED WIDTHS AND  COORDINATES  OF
                                     A-4

-------
C
c
c
c
c
c
c
c
c
c
c
c
c
c
              THE MOST SOUTH, EAST, WEST, AND NORTH CORNERS
           - LESSER OF BUILDING HEIGHT OR PROJECTED BUILDING WIDTH  (L)
           - X COORDINATE OF FIRST TIER CORNER OF  FIRST BUILDING
           - X COORDINATE OF SECOND TIER CORNER OF FIRST BUILDING
           - X COORDINATE OF FIRST TIER CORNER OF  SECOND BUILDING
           - X COORDINATE OF SECOND TIER CORNER OF SECOND  BUILDING
           - X COORDINATE OF AN UNTRANSLATED TIER  CORNER
           - X COORDINATE OF A CORNER BY NUMBER
           - X INTERCEPT COORDINATE BETWEEN A CORNER AND A SIDE
           - X COORDINATE OF A TIER CORNER
           - X COORDINATE OF FURTHEST EAST OF A TRANSLATED TIER CORNER
           - X COORDINATE OF FURTHEST WEST OF A TRANSLATED TIER CORNER
           - TEMPORARY STORAGE OF FURTHEST WEST X  COORDINATE VALUE
           - TEMPORARY STORAGE OF FURTHEST EAST X  COORDINATE VALUE
           - X COORDINATE OF A TRANSLATED TIER CORNER
           - X COORDINATE OF A TRANSLATED STACK
           - X COORDINATE OF AN UNTRANSLATED STACK
           - Y COORDINATE OF FIRST TIER CORNER OF  FIRST BUILDING
           - Y COORDINATE OF SECOND TIER CORNER OF FIRST BUILDING
           - Y COORDINATE OF FIRST TIER CORNER OF  SECOND BUILDING
           - Y COORDINATE OF SECOND TIER CORNER OF SECOND  BUILDING
           - Y COORDINATE OF AN UNTRANSLATED TIER  CORNER
           - Y COORDINATE OF A CORNER BY NUMBER
           - Y INTERCEPT COORDINATE BETWEEN A CORNER AND A SIDE.
           - Y COORDINATE OF A TIER CORNER
           - Y COORDINATE OF FURTHEST NORTH OF A TRANSLATED TIER CORNER
           - Y COORDINATE OF FURTHEST SOUTH OF A TRANSLATED TIER CORNER
           - TEMPORARY STORAGE OF FURTHEST WEST Y  COORDINATE VALUE
           - TEMPORARY STORAGE OF FURTHEST EAST Y  COORDINATE VALUE
           - Y COORDINATE OF A TRANSLATED TIER CORNER
           - Y COORDINATE OF A TRANSLATED STACK
           - Y COORDINATE OF AN UNTRANSLATED STACK

    *************************************************************************

      LOGICAL      FLG1, FLG2
      REAL         L2, L5, MHWE, MXPBH, MXPBW, MH, MW, LTN1, LTN2,  LTN

      INTEGER      IHR, IMIN, ISEC, IX, IYR, IMON, IDAY, C, Cl, C2,  CH,
     "             D, GEPIN, GTLIST, GTNUM, MTNUM, MTLIST, S,  Tl, T2,
     "             TL1, TL2, TLIST, TLIST2, TNI, TNUM, TNUM2,  UTM

      CHARACTER*2  SWTN
      CHARACTER*4  UTMP
      CHARACTER*8  BTN, STKN, SNM
      CHARACTER*10 UNTS
      CHARACTER*78 TITLE
INITIAL PARAMETER SETTINGS

     MAX NUMBER OF BUILDINGS       MB  =  8
     MAX NUMBER OF TIERS/BUILDING  MT  =  4
     MAX NUMBER OF SIDES/TIER      MTS =  8
     MAX NUMBER OF STACK SOURCES   MSK = 14
     MAX BUILDING TIER NUMBER      MET = 32
     MAX NUMBER OF SECTORS - ST    MD  =36
     MAX NUMBER OF SECTORS - LT    ML  =16
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

ws
Xll
X12
X21
X22
X
xc
XI
XKP
XMAX
XMIN
XMN
XMX
XP
XPSTK
XS
Yll
Y12
Y21
Y22
Y
YC
YI
YKP
YMAX
YMIN
YMN
YMX
YP
YPSTK
YS

******

(MB  *  MT)
  ********************************************************************
   PARAMETER (MB = 8,  MT = 4,  MTS = 8, MET = MB*MT  , MSK =14,        *
  *           MD = 36, ML = 16)                                       *
      Remember to also change the parameter settings in the
                                     A-5

-------
C    *    subroutines  !                                                   *
(2    ********************************************************************
C
C DIMENSION SUBSCRIPT  FORMAT:  (BUILDING OR STACK #, WD OR TIER  #,  SIDE #)
C
      COMMON /BLDGIN/  X(MB,  MT,  MTS),  Y(MB, MT, MTS), ND(MB, MT)
      COMMON /BLDOUT/  XC(MBT,MTS),  YC(MBT,MTS)
      COMMON /ELEV/ BELEV(MB),  SB(MSK)
      COMMON /GP/ GEP(MSK),  GEPBH(MSK),  GEPBW(MSK), GEPIN(MSK,MET,MET)
      COMMON /HT/ TH(MB,  MT),  SH(MSK)
      COMMON /INTRCP/  XI,YI
      COMMON /MXB/ MHWE(MSK,  MD) ,  MXPBH(MSK, MD) ,  MXPBW(MSK, MD)
      COMMON /MXN/ XMAX(MET),  XMIN(MET),  YMAX(MET), YMIN(MET)
      COMMON /PWH/ PBH(MBT),  PEW(MET),  HWE(MET)
      COMMON /MIJ/ MI(MSK),  MJ(MSK)
      COMMON /STK/ XS(MSK),  YS(MSK)
      COMMON /TNM/ TNUM2(MET),  TLIST2(MET,MET)
      COMMON /GTNM/ GTNUM(MSK),  GTLIST(MSK,MET), GDIRS(MSK)
      COMMON /MTNM/ MTNUM(MSK),  MTLIST(MSK,MET), MDIRS(MSK)
      DIMENSION BTN(MB),  NTRS(MB),  W(MET), HT(MET)
      DIMENSION STKN(MSK)
      DIMENSION DISTMN(MBT,  MET),  LFLAT(MSK, MET)
      DIMENSION TNUM(MBT), TLIST(MET,MET)
      DIMENSION MH(MSK, ML),  MW(MSK,  ML)
      DIMENSION XP(MSK),  YP(MSK)
       DTR = 3.141593  /  180
       MXTRS = MT
C
C
C
READ INPUT DATA CONTAINING BUILDING AND STACK DATA
        WRITE(*,*;
        WRITE(*,*;
        WRITE(*,*;
                 'READING  INPUT DATA FROM FILE.
        READ(10,*) TITLE

        CALL GETTIM  (IHR,  IMIN,  ISEC,  IX)
        CALL GETDAT  (IYR,  IMON,  IDAY)
          IYR = MOD(IYR,100)
            WRITE  (12,  461)  IMON, IDAY,  IYR
            WRITE  (12,  462)  IHR,  IMIN,  ISEC
            WRITE  (12,1)  TITLE
            WRITE  (14,  461)  IMON, IDAY,  IYR
            WRITE  (14,  462)  IHR,  IMIN,  ISEC
            WRITE  (14,1)  TITLE

        WRITE(12,297)
        WRITE(12,*)  '============================
        WRITE(12,*)  'BPIP PROCESSING INFORMATION:
        WRITE(12,*)  '============================
        WRITE(12,297)
        WRITE(14,297)
        WRITE(14,*)  '============================
        WRITE(14,*)  'BPIP PROCESSING INFORMATION:
        WRITE(14,*)  '============================
        WRITE(14,297)
READ (10,*)
SWT = 2
IF (SWTN
IF (SWTN
IF (SWTN
SWTN

.EQ.
.EQ.
.EQ.


'St' )
'ST' )
'It')


SWT =
SWT =
SWT =


0
0
1
                                      A-6

-------
"ed.
   IF(SWTN  .EQ.  TLTT) SWT  =  1
  WRITE(12,2) SWTN
  WRITE(14,2) SWTN
  IF(SWT  .EQ. 2) THEN
    WRITE(*,*)  'The  SWTN

    STOP
  END IF

READ(10,*) UNTS, CONV
  WRITE(12,3) UNTS,  UNTS,  CONV
  WRITE(14,3) UNTS,  UNTS,  CONV
                            variable,  T,SWTN,T  is incorrectly enter
"ed.
               .EQ
               .EQ
               .EQ
               .EQ
READ(10,*)
  UTM = 2
   IF(UTMP
   IF(UTMP
   IF(UTMP
   IF(UTMP
  IF(UTM  .EQ.
    WRITE(12,
    WRITE(14,
   ELSE
    WRITE(12,
    WRITE(14,
  END IF
  IF(UTM  .EQ.
    WRITE(*,*

    STOP
  END IF
              UTMP, PNORTH
   'utmn'
   'UTMN'
   'utmy'
   'UTMY'
 1)  THEN
4)  UTMP
4)  UTMP
UTM
UTM
UTM
UTM
= 0
= 0
= 1
= 1
                5)
                5)
   UTMP
   UTMP
                 2) THEN
                   'The UTMP
            variable,  ',UTMP,'  is  incorrectly enter
     IF(PNORTH  .
       PN = 0
       WRITE(12,
       WRITE(14,
      ELSE
       PN = 1
       WRITE(12,
       WRITE(12,
       WRITE(12,
       WRITE(14,
       WRITE(14,
     END IF
             EQ. 360.0  .OR.  PNORTH .EQ.  0.0)  THEN
             17)
             17)
    PNORTH
    PNORTH
             17) PNORTH
             297)
             297)
             17) PNORTH
             18)
     ADJ =360. - PNORTH
      IF (PN  .EQ. 1) THEN
        ADJ = ADJ * DTR
        CSA = COS(ADJ)
        SNA = -SIN(ADJ)
      END IF

   WRITE(14,297)
   WRITE(14,*)  '==============
   WRITE(14,*)  'INPUT SUMMARY:
   WRITE(14,*)  '==============
   WRITE(14,297)
   READ(10,*)
      IF  (NB  .
        WRITE
        WRITE
*RAMETER, MB'
        STOP
           NB
           GT. MB) THEN
           *,*)   'WARNING  :'
           *, *)  'THE NUMBER  OF  BUILDINGS ENTERED EXCEEDS THE PA
                                 A-7

-------
           END  IF
          WRITE(14,6)  NB

        DO 10 I =  1,  NB
           READ(10,*)  BTN(I), NTRS(I),  BELEV(I)
           IF  (NTRS(I)  .GT. MT) THEN
             WRITE(*,*)   'WARNING  :'
             WRITE(*,  *)  'THE NUMBER OF TIERS/BUILDING EXCEEDS  THE  PARA
     *METER, MT'
             STOP
           END  IF

            WRITE(14,12)  BTN(I), NTRS(I),  BELEV(I), UNTS

         DO 20  J = 1,  NTRS(I)
             READ(10,*)  ND(I, J), TH(I,  J)
             IF (ND(I,J)  .GT. MTS) THEN
                 WRITE(*,*)    'WARNING  :'
              WRITE(*,  *)   'THE NUMBER OF TIERS/BUILDING EXCEEDS THE PARA
     *METER, MTS'
             STOP
           END  IF
             C  = (I -  1)  * MXTRS + J
             WRITE(14,13)  BTN(I), J, C,  TH(I,J),  ND(I,J)

          DO 30 K  = 1,  ND(I, J)
            READ(10,*)  X(I, J, K), Y(I,  J,  K)

              IF (UTM .EQ.  1) THEN
                 IF(I  .EQ.  1  .AND. J  .EQ.  1  .AND.  K .EQ.  1) THEN
                   UEAST  = X(1,1,1)
                   UNORTH = Y(1,1,1)
                   A = UEAST
                   B = UNORTH
                   AU  = 0.0
                   BU  = 0.0
                 ELSE
                   A = X(I,  J, K)
                   B = Y(I,  J, K)
                   AU  = A - UEAST
                   BU  = B - UNORTH
                 END IF
                   WRITE (14,14) A, B
                   WRITE (14,16) AU, BU
                   X(I,  J,  K) = AU
                   Y(I,  J,  K) = BU
                ELSE
                 WRITE (14,14) X(I, J, K),  Y(I,  J,  K)
              END  IF

              IF (PN  .EQ.  1) THEN
                 A  = X(I,  J, K) * CSA +  Y(I,  J,  K)  * SNA
                 B  = Y(I,  J, K) * CSA -  X(I,  J,  K)  * SNA
                 X(I,  J,  K)  = A
                 Y(I,  J,  K)  = B
                 WRITE (14,19) X(I, J, K),  Y(I,  J,  K)
              END  IF

30        CONTINUE
20       CONTINUE
10    CONTINUE
       PRINT  *
                                       A-8

-------
48
40
       READ(10,*)  NS
         IF  (NS  .GT.  MSK)  THEN
           WRITE(*,*)   'WARNING  :'
           WRITE(*,  *)  'THE NUMBER OF STACKS  ENTERED EXCEEDS THE  PARAMET
     *ER, MKS'
             STOP
           END IF

          WRITE  (14,11)  NS
          WRITE  (14,21)
      DO 40  S =  1,  NS
       READ  (10,*)  STKN(S), SB(S)
          AU = XS(S)  -  UEAST
          BU = YS(S)  -  UNORTH
                              SH(S), XS(S),  YS(S)
  IF  (UTM  .EQ.  0)  THEN
    WRITE  (14,  22)  STKN (S),  SB(S), SH(S),   XS(S),  YS(S)
   ELSE
    WRITE  (14,  22)  STKN(S),  SB(S), SH(S),  XS(S),  YS(S)
    WRITE  (14,  23)  AU,  BU
  END IF

  XS(S)  = AU
  YS(S)  = BU

  IF  (PN  .EQ.  1)  THEN
    A = XS(S)  *  CSA + YS(S)  * SNA
    B = YS(S)  *  CSA - XS(S)  * SNA
    XS(S) = A
    YS(S) = B
    WRITE  (14,42)  XS(S),  YS(S)
  END IF

         CHECK FOR BLANK SPACES IN STACK NAMES

    SNM = STKN(S)
    ICF = 0
    ISF = 0
   DO 48 I = 1,  8
     IF  (ICF  .EQ.  0)  THEN
       IF  (SNM(I:I)  .NE.  '  ') THEN
         ICF = 1
         GO TO 48
       END IF
     ELSE
       IF  (ISF .EQ.  0)  THEN
         IF  (SNM(I:I)  .EQ.  '  ') THEN
           ISF = 1
           GO  TO 48
         END IF
       ELSE
         IF  (SNM(I:I)  .NE.  '  ') THEN
            WRITE (14,47)
            GO TO 40
         END IF
       END IF
     END IF
    CONTINUE
CONTINUE

READ  (10,*) L5SQAT
    WRITE  (14,71)  L5SQAT

      IF(L5SQAT  .GT.  0)  THEN
                                      A-9

-------
              WRITE(14,73;
            END IF
70
C
C
C
DO 70 L = 1, L5SQAT
  READ(10, *) S,  I, J
   C =  (1-1) * MXTRS +  J
   GEPIN(S, C, C)  = 1
   LFLAT(S, C) =  1
  WRITE(14,72) STKN(S), S,  BTN(I),  I,  J
CONTINUE
        WRITE(*,*;
        WRITE(*,*;
        WRITE(*,*;
        WRITE(*,*;
        WRITE(*,*;
        WRITE(*,*;
            'END OF READING INPUT DATA FROM FILE.
                               END OF INPUT SECTION
            'CALCULATING  GEP VALUES.
C
C
C
C
       IF  (SWT  .EQ.  0)  THEN
        DDEG =10
        NDIR = MD
       ELSE
        DDEG = 11.25
        NDIR = ML *  2
       END IF
        ND16 = ML
        DMD8 = 8
        DMD12 = 12
                 Calculate  the minimum distance between structures
        DO 80 I =  1,
         DO 81 II  =
              (NB  -  1)
             [I +  1), NB
          DO 82 J =  1, NTRS(I)
           DO 83 JJ  =  1,  NTRS(II)
             Cl =  (I  -
             C2 =  (II
            DISTMN(C1,
               1)  * MXTRS  +  J
               -  1) * MXTRS + JJ
               C2) = 1000000
                  Cycle  through corners and sides of first tier
             DO 84 K  = 1,  ND(I,  J)
               Xll =  X(I,  J,  K)
               Yll =  Y(I,  J,  K)
                Kl =  K + 1
                 IF  (Kl  .GT.  ND(I,  J)
                     ND(I,
                     Kl)
                     Kl)
Kl = 1
               X12  = X(I,  J,
               Y12  = Y(I,  J,
                    Cycle  through corners and sides of other building's tier
              DO 85 KK  =  1,  ND(II,  JJ)
                X21 = X(II,  JJ,  KK)
                Y21 = Y(II,  JJ,  KK)
                 K2 = KK  + 1
                  IF  (K2  .GT.  ND(II,  JJ))  K2 = 1
                X22 = X(II,  JJ,  K2)
                Y22 = Y(II,  JJ,  K2)
               Calculate  corner  to  corner distance between two  structures
              DIST  = SQRT((X11 - X21)  ** 2 + (Yll - Y21) ** 2)
                                     A-10

-------
               IF  (DIST  .LT. DISTMN(C1,  C2))  DISTMN(C1,  C2)  = DIST
C                   Calculate distance  between a corner of one structure
C                    and the side  of  another  structure
               CALL CNRLIN(X21, Y21,  X22,  Y22,  BET,  DIST,  Xll, Yll)
C                  If the  intercept is  between the two corners of the
C                   other  structure,  test  to  see if it is  the
C                   shortest distance.
                 IF  (BET .GT. -.001)  THEN
                   IF  (DIST  .LT. DISTMN(C1, C2))  DISTMN(C1,  C2)  = DIST
                 END IF
               CALL CNRLIN(X11, Yll,  X12,  Y12,  BET,  DIST,  X21, Y21)
C                   If the intercept  is between the two corners of the
C                    other structure, test  to see if it is the
C                    shortest distance.
                 IF  (BET .GT. -.001)  THEN
                   IF  (DIST  .LT. DISTMN(C1, C2))  DISTMN(C1,  C2)  = DIST
                 END IF
85            CONTINUE
84           CONTINUE
              DISTMN(C2, Cl) = DISTMN(C1,  C2)
83          CONTINUE
82         CONTINUE
81        CONTINUE
80      CONTINUE
C
C
C             GEP STACK HEIGHT CALCULATIONS
C
C               DETERMINE  IF A STACK  IS WITHIN A GEP 5L AREA OF INFLUENCE
C
C                 AS STAND ALONE STRUCTURES AND TIERS
C
C                   FOR EVERY QUARTER OF A DEGREE
C
      DO 100 D = 1, 1440
        ANG = D * DTR/4
        CSA = COS(ANG)
        SNA = -SIN(ANG)
        DO 101 I = 1, NB
         DO 102 J = 1, NTRS(I)
           C = (1-1) * MXTRS + J
           CH = C
           TNUM2(C) = 0
C                CALCULATE PROJECTED  TIER  WIDTH,  TW
          CALL WIDTH(ANG,  I, J, C, TW)
             W(C)  = TW
              WS = TW
             HTA = TH(I,J)
              IF (HTA  .LT. TW) WS  = HTA
             L5 = WS * 5
C           X AND Y COORDINATES DEFINING AN INITIAL AREA around GEP 5L segment
             CXMN = XMIN(C)
             CXMX = XMAX(C)
             CYMX = YMAX(C) + L5
             CYMN = YMIN(C)
C
C                   CHECK  FOR STACK S LOCATION IN GEP 5L AREA.
C
         DO 103 S = 1, NS
          XPSTK = XS(S) *  CSA + YS(S) * SNA
          YPSTK = YS(S) *  CSA - XS(S) * SNA
          FLG1 = ((XPSTK .GE. CXMN)  .AND.  (XPSTK .LE.  CXMX))
          FLG2 = ((YPSTK .GE. CYMN))
          IF (FLG1  .AND. FLG2) THEN


                                     A-ll

-------
c
C                     Calculate  distance  between a stack and a side or corner
C                     of a tier.   If  less than 5L, set flag and calculate
C                     GEP stack  height.
C
           DO 106 K = 1, ND(I, J)
             XI = XC(C, K)
             Yl = YC(C, K)
             L = K + 1
              IF  (L .GT. ND(I, J) )  L  =  1
             X2 = XC(C, L)
             Y2 = YC(C, L)
            CALL DISLIN(X1, Yl,  X2, Y2, L5,  IBET,  XPSTK, YPSTK)
             IF (LFLAT  (S,C)  .EQ.  1)  IBET =  1
             IF (IBET .EQ. 1)  THEN
               TNUM2(C) = 1
               TLIST2(C,l) =  C
C                     Call subroutine to  calculate a GEP stk ht.  and others
               CALL GPC  (D, I, C,  S,  TW,  WS,  HTA,  C)
             END IF
106        CONTINUE
          END IF
103      CONTINUE
102     CONTINUE
101    CONTINUE
100   CONTINUE
C
C             GEP STACK HEIGHT CALCULATIONS
C
C               DETERMINE IF  A STACK  IS WITHIN A GEP 5L AREA OF INFLUENCE
C
C                 AS COMBINED STRUCTURES  AND TIERS
C
C                   FOR EVERY QUARTER OF  A DEGREE
C
C                     IDENTIFY TIER GROUPS EXAMINE FOR COMBINING
C
C                     USE ACTUAL HEIGHTS  - EACH GROUP FORMED AROUND FIRST TIER
C
C                     EVERY TIER IS USED  AS  FIRST OR 'FOCAL' TIER IN
SUCCESSION
C
      DO 110 D = 1, 1440
        ANG = D * DTR/4
        CSA = COS(ANG)
        SNA = -SIN(ANG)
C              First or  'Focal'  Tier
      DO 111 I = 1, NB
       DO 112 J = 1, NTRS(I)
          Cl = (I - 1) * MXTRS + J
          CALL WIDTH(ANG, I,  J,  Cl, TW)
          W(C1)  = TW
          HT(C1)  = TH(I,J)
           TNUM(Cl) = 1
           TLIST(C1, 1) = Cl
C                 Can the focal  tier  be combined with the other tiers ?
        DO 113 II = 1, NB
         IF (I .NE. II) THEN
          DO 114 JJ = 1, NTRS(II)
           C2 = (II - 1) * MXTRS +  JJ
           CALL WIDTH(ANG, II, JJ,  C2,  TW)
           W(C2)  = TW
           HT(C2)  = TH(II,JJ)
C                R is 'L'; combinable if  distance between tiers is < L


                                     A-12

-------
114

113
112
111
C
C
C
C
C
                  If yes, add tier number  to  TLIST and increment counter TNUM
               R = MIN(W(C1), HT(C1))
             IF  (DISTMN(C1,  C2)  .LT. R)  THEN
                TNUM(Cl) = TNUM(Cl)  +  1
                TNI = TNUM(Cl)
                TLIST(Cl,TNI) =  C2
              ELSE
                 R = MIN(W(C2),  HT(C2))
               IF (DISTMN(C1, C2)  .LT. R)  THEN
                  TNUM(Cl) = TNUM(Cl)  +  1
                  TNI = TNUM(Cl)
                  TLIST(C1,TN1)  = C2
               END IF
             END IF
          CONTINUE
         END IF
        CONTINUE
       CONTINUE
      CONTINUE

                       FOR SUFFICIENTLY  CLOSE STRUCTURES
                                    COMBINE  IDENTIFIED STRUCTURES BY GROUPS
       DO 120 I = 1, NB
        DO 121 J = 1, NTRS(I)
          Cl = (1-1) * MXTRS + J
C Combine tiers to each focal tier.
C Proceed, if more than 1 tier can be  combined
         IF  (TNUM(Cl) .GT. 1) THEN
           TNI = TNUM(Cl)
           HTC = HT(TLIST(C1,1))
C Use every height in the TLIST set as the common  height for combining
C Create focal subgroups based on common height; store numbers in TLIST2
          DO 122 Tl = 1, TNI
            TL1 = TLIST(C1,T1)
            HTA = HT(TLIST(C1,T1))
            CH = TL1
C use only those heights that are less than  or  equal  to the focal tier height.
           IF (( HTA .LT. HTC)  .OR.  (Cl  .EQ.  TL1))  THEN

C Save the focal tier as first structure in  the TLIST2 array.
            TNUM2(Cl) =1
            TLIST2(Cl,l) = Cl
C Initialize max & min X & Y coordinates for focal tier
            XMN = XMIN(Cl)
            YMN = YMIN(Cl)
            XMX = XMAX(Cl)
            YMX = YMAX(Cl)

C Check every candidate to see if it meets the  combining criteria of L >
DISTMN

           DO 123 T2 = 1, TNI

C Is a candidate structure above the common  tier height,  HTA ?

               TL2 = TLIST(C1,T2)
               C2 = TL2
            IF (Cl  .NE. TL2) THEN
C Use only those heights that are greater than  the common height.
             IF (HT(TL2)  .GE. HTA) THEN

C Is the candidate structure within LTN1 or  LTN2 of the focal  structure, Cl ?
                                     A-13

-------
              LTN1 = MIN(HTA,
              LTN2 = MIN(HTA, W(TL2))
              LTN = MAX(LTN1, LTN2 )
               IF (DISTMN(C1, TL2)  . LT .  LTN)
                 TNUM2(C1) = TNUM2(C1)  + 1
                 TLIST2 (C1,TNUM2 (Cl) ) =  TL2
                                              THEN
C If so, combine by examining the candidate  corner coordinates
C   with previous max & min values to  derive overall  combined width of
C   tiers in focal subgroup.

                IF (XMIN(TL2)
                IF (XMAX(TL2)
                   (YMIN(TL2)
                   (YMAX(TL2)
                   IF
LT.
GT.
LT.
GT.
XMN)
XMX)
YMN)
YMX)
XMN
XMX
YMN
YMX
=
=
=
=
XMIN
XMAX
YMIN
YMAX
(TL2)
(TL2)
(TL2)
(TL2)
123
C
C
C
                IF
                IF
               END
             END IF
            END IF
           CONTINUE

          Projected width of all  structures  at  or above the fixed height, HTA.

          TW = XMX - XMN
          WS = TW
            IF (HTA .LT. TW) WS = HTA
              L5 = WS * 5
C            X AND Y COORDINATES  DEFINING AREA  CORNERS OF DISTURBED AIR FLOW
              CXMN = XMN
              CXMX = XMX
              CYMX = YMX + L5
              CYMN = YMN
C
C
C Examine width and height of  focal  tier subgroup with respect to stacks
C
C
                        EVERY STACK  COORDINATE  IS  ROTATED SO THAT THE FLOW
                        VECTOR  IS ALWAYS  POINTING  'NORTH'.
C
C
C
C Perform only if more than one tier  in  focal  tier subgroup
        IF  (TNUM2(C1)  .GT.
         DO 130 S =  1, NS
           XPSTK = XS(S) *
           YPSTK = YS(S) *
                           1) THEN

                           CSA + YS(S)
                           CSA - XS(S)
SNA
SNA
C
C
C
C
C
C
             ARE STACK COORDINATES WITHIN  INITIAL  AREA OF DISTURBED AIR FLOW

          FLG1 = ((XPSTK  .GE. CXMN)  .AND.  (XPSTK .LE.  CXMX))
          FLG2 = ((YPSTK  .GE. CYMN))
           IF  (FLG1  .AND. FLG2) THEN
             If source is within  rectangle,  check  direct downwind
             distance from side of focal tier  to stack.  IBET = 1 if
             at or within 5L
             DO 131 K = 1, ND(I,  J)
               XI = XC(C1, K)
               Yl = YC(C1, K)
               L = K + 1
                IF (L .GT. ND(I,  J))  L  = 1
               X2 = XC(C1, L)
               Y2 = YC(C1, L)
C Set IBET to 1 if stack on or W/I 5L of tier  side
              CALL DISLIN(X1, Yl, X2, Y2,  L5,  IBET,  XPSTK,  YPSTK)
C If stack on top of roof, set IBET to  1
                IF (LFLAT  (S,C1)  .EQ. 1) IBET  =  1
                                     A-14

-------
c

131
C
C
C
C
C
                                     JJ)
          L = 1
                                         Y2,  L5, IBET, XPSTK, YPSTK)
 Yl,  X2,
1)  THEN
 I,  C2, S, TW, WS, HTA, TL1)
C

132
C
C
C
C
C
C
      IF (IBET  .EQ. 1) THEN
        CALL GPC  (D,  I, Cl,  S,  TW,  WS,  HTA,  TL1)
         GO TO  136
      END IF
   CONTINUE

If source is within rectangle,  check direct  downwind
 distance from  side of second  tier  to stack. IBET = 1 if
 at or within 5L

   DO 135 M = 2, TNUM2(C1)
     C2 = TLIST2(C1,M)
      II = INT((C2-1)/MXTRS) + 1
      JJ = C2 -  (II-l) * MXTRS
     DO 132 K = 1, ND(II, JJ)
      XI = XC(C2, K)
      Yl = YC(C2, K)
       L = K +  1
        IF (L .GT. ND(II,
      X2 = XC(C2, L)
      Y2 = YC(C2, L)
      CALL DISLIN(X1,
       IF (IBET  .EQ.
         CALL GPC  (D,
          GO TO 136
       END IF
     CONTINUE
If source is within rectangle,  check direct  downwind
 distance from  side of gap filling  structure (GFS)  to stack.
 IBET = 1,  if at or within 5L
     DO 133 K = 1, ND(I, J)
      Xll = XC(C1, K)
      Yll = YC(C1, K)
       Kl = K + 1
        IF(K1 .GT. ND(I,J))  Kl =  1
      X12 = XC(C1,
      Y12 = XC(C1,
     DO 133   L =
      X21 = XC(C2,
      Y21 = YC(C2,
       K2 = L + 1
        IF (K2  .GT. ND(II,JJ))  K2 = 1
      X22 = XC(C2,K2)
      Y22 = YC(C2,K2)
      DIST = SQRT  ((X11-X21)**2
       IF (DIST  .LE.  WS) THEN
         CALL DISLIN(X11, Yll,  X21,  Y21,  L5,
                      XPSTK,  YPSTK)
        IF (DIST  .LE. L5) THEN
         IF (IBET  .EQ. 1) THEN
           CALL GPC  (D, I, Cl,
            GO  TO 136
         END IF
        END IF
       END IF
         calculate corner of one  tier perpendicular to side
          of the other tier. If shorter than L use as
          perimeter of the GFS
      CALL CNRLIN(X11, Yll,  X12,  Y12, BET,  DIST,  X21, Y21)
       IF (DIST  .LE.  WS  .AND.  BET .GT.  -.001)  THEN
         CALL DISLIN(X21, Y21,  XI,  Yl,  L5,  IBET,  XPSTK, YPSTK)
        IF (DIST  .LE. L5) THEN
         IF (IBET  .EQ. 1) THEN
           CALL GPC  (D,I,C1,S,TW,WS, HTA, TL1)
                            .  Kl)
                            .  Kl)
                             1,  ND(II,JJ)
                            .  D
                            .  D
                                             (Y11-Y21)**2)
                                                        IBET,
                                          S,  TW, WS, HTA, TL1)
                                     A-15

-------
133
135
136

130
122

121
120
C
110
C
C
C
                GO TO  136
             END  IF
            END IF
           END IF
          CALL CNRLIN(X21,  Y21,  X22,  Y22, BET, DIST, Xll,  Yll)
           IF  (DIST  .LE. WS .AND.  BET .GT.  -.001) THEN
             CALL DISLIN(X11,  Yll,  XI, YI,  L5, IBET, XPSTK,  YPSTK)
            IF  (DIST  .LE.  L5)  THEN
             IF  (IBET  .EQ.  1)  THEN
               CALL GPC (D,  I,  C2,  S, TW, WS, HTA, TL1)
                GO TO  136
             END  IF
            END IF
           END IF
         CONTINUE
       CONTINUE
      CONTINUE
     END IF
    CONTINUE
     END IF
    END IF
   CONTINUE
    END IF
  CONTINUE
 CONTINUE

CONTINUE

   GEP stack height value  result(s)
        G65 = 65
        WRITE(12
        WRITE(12
           . / CONV
           1) TITLE
            297)
        WRITE(12,1005)  UNTS
        WRITE(14,
      DO 1010 S  =
        IF  ((SH(S)
        IF  (SH(S)
        IF  ((SH(S)
        IF  ((SH(S)
                                 (GEP(S)  .EQ. 0.00)) PV  =  G65
                                          GEP(S))) PV  =  SH(S)
                                          GT. 0.00)) PV  =  GEP(S)
                                          GEPBH(S), GEPBW(S),GEP(S)
1010
            1020) UNTS
            1, NS
              .GT. GEP(S))  .AND.
            .LE. G65) PV =  SH(S)
              .GT. G65)  .AND.  (SH(S)  .LT.
              .GT. GEP(S))  .AND.  (GEP(S)
   WRITE(14,1022) S, STKN(S),  SH(S),  PV,
   IF(GTNUM(S)  .EQ.  0)  THEN
     WRITE(14,*)  '       No  tiers affect this stack.
    ELSE
     DIF = SB(S) - BELEV(MI(S))
     WRITE(14,1025)  DIF
     WRITE(14,1023)  GTNUM(S),  GDIRS(S)
     WRITE(14,1024)  (GTLIST(S,I),  1=1,  GTNUM(S))
   END IF
   WRITE(14,297)

   WRITE(12,1000)
CONTINUE
  WRITE(12,1007)
  WRITE(12,297)
  WRITE(12,297)
                         STKN(S),  SH(S), GEP(S), PV
C
C
C
C
C
             CALCULATE  MAXIMUM PROJECTED BUILDING WIDTH  BY  WIND VECTOR
               FOR  SINGLE  AND MULTIPLE NEARBY STRUCTURES
               USING  STRUCTURE INFLUENCE ZONES  (SIZes)
                                     A-16

-------
c
c
c
c
        WRITE(*,*;
        WRITE(*,*;
        WRITE(*,*;
                        Single structure and tier loop
                    'CALCULATING BUILDING DOWNWASH INPUT VALUES.
                       (ANG,  I,  J,  C,  TW)
                           .LT.  TW)  WS = TH(I, J)
C Essentially a repeat  of  most of the code in the previous  GEP  half.

         WRITE(14,  2020) UNTS
      DO 300 D =  1, NDIR
        ANG = D * DDEG
          WRITE(14,604) ANG
        ANG = ANG * DTR
        CSA = COS(ANG)
        SNA = -SIN(ANG)
       DO 310 S = 1, NS
         XPSTK = XS(S)  * CSA + YS(S)  * SNA
         YPSTK = YS(S)  * CSA - XS(S)  * SNA
         XP(S) = XPSTK
         YP(S) = YPSTK
        DO 320 I  =  1, NB
         DO 330 J = 1,  NTRS(I)
           C =  (I - 1)  * MXTRS + J
           CH = C
           HTA = TH(I,J)
           CALL WIDTH
            WS = TW
             IF  (TH(I,  J)
              L2  = WS * 2
              L5  = WS * 5
C                X AND  Y COORDINATES DEFINING SIZ CORNERS
              CXMN  = XMIN(C)  - WS / 2
              CXMX  = XMAX(C)  + WS / 2
              CYMX  = YMAX(C)  + L5
              CYMN  = YMIN(C)  - L2
C                ARE STACK COORDINATES WITHIN SIZ ?
               FLG1 =  ((XPSTK .GE.  CXMN)  .AND.  (XPSTK  .LE.  CXMX))
               FLG2 =  ((YPSTK .GE.  CYMN))
               IF  (FLG1 .AND. FLG2)  THEN
C                   If so,  calculate the PBW & PBH, save max values
                 CALL MXBWH(D,  I, S,  C, TW, HTA, WS, CH)
               END  IF
330         CONTINUE
320        CONTINUE
310      CONTINUE
      DO 2011 S = 1, NS
           WRITE(14,2022)  S,  STKN(S), SH(S)
           WRITE(14,2026)  MXPBH(S,D), MXPBW(S,D), MHWE(S,D)
           WRITE(14,2027)  GEPBH(S),  GEPBW(S), GEP(S)
         IF  (MI(S)  .EQ. 0)  THEN
           WRITE(14,*)  '      No tier affects this stack.'
          ELSE
           DIF = SB(S)  - BELEV(MI(S))
           WRITE(14,1025)  DIF
           WRITE(14,2028)  MI(S),  BTN(MI(S)),  MJ(S)
         END IF
2011  CONTINUE

300   CONTINUE
C
C
                                     A-17

-------
C                       FOR  SUFFICIENTLY CLOSE STRUCTURES
C
C
C                                IDENTIFY STRUCTURE GROUPS TO COMBINE
        WRITE(14,297)
        WRITE(14,*)  'Dominate  combined buildings:'
      DO 350 D = 1, NDIR
        ANG = D * DDEG
          WRITE(14,604) ANG
        ANG = ANG * DTR
        CSA = COS(ANG)
        SNA = -SIN(ANG)
      DO 360 I = 1, NB
       DO 370 J = 1, NTRS(I)
          Cl =  (I - 1)  * MXTRS + J
           CALL WIDTH(ANG,  I,  J,  Cl,  TW)
            W(C1) = TW
           TNUM(Cl) = 1
           TLIST(C1, 1) = Cl
        DO 380 II = 1,  NB
         IF (I  .NE. II) THEN
          DO 390 JJ = 1, NTRS(II)
           C2 =  (II - 1) *  MXTRS + JJ
            CALL WIDTH(ANG, II,  JJ,  C2,  TW)
            W(C2) = TW
               R = MIN(W(C1),  HT(C1))
             IF  (DISTMN(C1, C2)  .LT.  R)  THEN
                TNUM(Cl) =  TNUM(Cl)  + 1
                TNI = TNUM(Cl)
                TLIST(C1,TN1)  =  C2
              ELSE
                 R = MIN(W(C2),  HT(C2))
               IF  (DISTMN(C1,  C2)  .LT.  R)  THEN
                  TNUM(Cl)  = TNUM(Cl)  + 1
                  TNI = TNUM(Cl)
                  TLIST(C1,TN1)  = C2
               END IF
             END IF
390       CONTINUE
         END IF
380     CONTINUE
370    CONTINUE
360   CONTINUE
C
C
C                                    COMBINE IDENTIFIED STRUCTURES BY GROUPS
C              Combine  sufficiently close structures and tiers
C                for centerline  directions
       DO 430 I = 1, NB
        DO 440 J = 1, NTRS(I)
          C = (1-1) * MXTRS +  J
C Proceed, if more than 1 tier can be combined
         IF (TNUM(C)  .GT. 1) THEN
           TNI = TNUM(C)
           HTC = HT(TLIST(C,1))
C Use every height in the TLIST  set as a criterion for combining

          DO 450 Tl = 1, TNI
            TL1 = TLIST(C,T1)
            HTA = HT(TLIST(C,T1))
            CH = TL1
           IF (( HTA  .LE. HTC)  .OR.  (C .EQ.  TL1))  THEN
C Save focal tier height as first structure in the TLIST2 array.
             TNUM2(C) = 1


                                     A-18

-------
             TLIST2(C,l) = C
C Initialize max & min X & Y coordinates  based  on  first  structure
C  in TLIST array
              XMN = XMIN(C)
              YMN = YMIN(C)
              XMX = XMAX(C)
              YMX = YMAX(C)
C Check every candiate to see if  it meets the combining  criteria of L > DISTMN

           DO 460 T2 = 1, TNI
              TL2 = TLIST(C,T2)
            IF  (C .NE. TL2) THEN

C Is a candidate structure high enough  above the reference tier height ?

             IF  (HT(TL2)  .GE. HTA) THEN

C Is the candidate structure within L of  the focal structure,  C ?

              LTN1 = MIN(HTA, W(C))
              LTN2 = MIN(HTA, W(TL2))
              LTN = MAX(LTN1,LTN2)
               IF (DISTMN(C, TL2)  .LT.  LTN) THEN
                 TNUM2 (C) = TNUM2 (C) +  1
                 TLIST2(C,TNUM2(C)) = TL2

C If so, combine by examining the  corner  coordinates  with max & min values
460
C
C
C
IF (XMIN(TL2)
IF (XMAX(TL2)
IF (YMIN(TL2)
IF (YMAX(TL2)
END IF
END IF
END IF
CONTINUE
.LT.
.GT.
.LT.
.GT.




XMN)
XMX)
YMN)
YMX)




XMN
XMX
YMN
YMX




= XMIN(TL2)
= XMAX(TL2)
= YMIN(TL2)
= YMAX(TL2)




        Projected width of all structures  at  or above a fixed height.

     TW = XMX - XMN
     WS = TW

     IF (HTA .LT. TW) WS = HTA
       L5 = WS * 5
       L2 = WS * 2
      X AND Y COORDINATES DEFINING AREA  CORNERS OF DISTURBED AIR FLOW
             CXMN
             CXMX
             CYMX
             CYMN
             XMN
             XMX
             YMX
             YMN
WS / 2
WS / 2
L5
L2
C
C
C
C
C
C
C
C
C
                             LOOP ON  SOURCES  FOR COMBINED BUILDINGS
EVERY STACK COORDINATE IS ROTATED SO THAT  THE  WIND
DIRECTION IS ALWAYS POINTING  'NORTH'.

  IF (TNUM2(C)  .GT. 1) THEN
   DO 400 S = 1, NS
     XPSTK = XS(S) * CSA + YS(S) *  SNA
     YPSTK = YS(S) * CSA - XS(S) *  SNA
              ARE STACK COORDINATES WITHIN AREA OF DISTURBED AIR FLOW ?
      If source is within rectangle, check
                                     A-19

-------
400
450

440
430
2012

350
C
C
C
512
C
514
510

C
C
C
C
C
      FLG1 =  ((XPSTK  .GE.  CXMN)  .AND.  (XPSTK .LE.  CXMX))
      FLG2 =  ((YPSTK  .GE.  CYMN))
       IF  (FLG1  .AND. FLG2)  THEN
           If  so, calculate  the  PBW & PBH,  save max values
         CALL MXBWH(D,  I,  S,  C,  TW,  HTA,  WS,  CH)
       END IF
    CONTINUE
   END IF
   END IF
  CONTINUE
   END IF
  CONTINUE
 CONTINUE

DO 2012 S  = 1, NS
   WRITE(14,2022) S,  STKN(S), SH(S)
   WRITE(14,2026) MXPBH(S,D), MXPBW(S,D),  MHWE(S,D)
   WRITE(14,2027) GEPBH(S),  GEPBW(S),  GEP(S)
   IF (MTNUM(S)  .EQ.  0) THEN
     WRITE(14,*)  '      No  tiers affect this stack.'
    ELSE
     DIF = SB(S) - BELEV(MI(S))
     WRITE(14,1025) DIF
     WRITE(14,2023) MTNUM(S)
     WRITE(14,2024)  (MTLIST(S,M),  M =  1,  MTNUM(S))
   END IF

CONTINUE

CONTINUE
        OF ALL TIERS,  PRINT/SAVE WHICH HAS MOST EFFECT BY STACK AND WD
  IF  (SWT  .EQ. 0) THEN
      WRITE  (12, 461)  IMON,  IDAY,  IYR
      WRITE  (12, 462)  IHR,  IMIN,  ISEC
      WRITE  (12, 297)
      WRITE  (12, 1) TITLE
      WRITE  (12, *)  '  BPIP  output in ',  UNTS

    DO 510 S = 1, NS
        L = NDIR /  6
         WRITE(12,297)
      DO 512 I = 1, 6
        J =  (1-1) * 6  +  1
        K = I * 6
       WRITE  (12,293)  STKN(S),  (MXPBH(S,D)  ,  D = J,K)
      CONTINUE
        WRITE  (12,297)
      DO 514 I = 1, 6
        J =  (1-1) * 6  +  1
        K = I * 6
       WRITE  (12,296)  STKN(S),  (MXPBW(S,D)  ,  D = J,K)
      CONTINUE
   CONTINUE
  END IF

       ISCLT2 output.  Use  centerline values if greater than 0.00
         Use values of other 2  of the 3  SIZs per sector, if
         centerline value 0.00  and others not.

  IF  (SWT  .EQ. 1) THEN
   DO 560 S = 1, NS
    L = 1
                                     A-20

-------










c


c





570
560





C





582

DO 570 D = 2, NDIR, 2
L = L + 1
I = D - 1
J = D + 1
IF (L .GT. ML) L = L - ML
IF (J .GT. MET) J = J - MET
IF (MHWE(S, D) .GT. 0.0) THEN
IZ = D
ELSE
IF (MHWE(S, I) .GT. MHWE (S, J) ) THEN
IZ = D
IZ = I
ELSE
IZ = D
IZ = J
END IF
END IF
MH(S,L) = MXPBH(S,IZ)
MW(S,L) = MXPBW(S,IZ)
CONTINUE
CONTINUE
WRITE (12, 461) IMON, IDAY, IYR
WRITE (12, 462) IHR, IMIN, ISEC
WRITE (12, 297)
DO 580 S = 1, NS
WRITE (12,297)
WRITE (12,411) STKN (S)
L = ND16 / 8
DO 582 I = 1, 2
J = (1-1) * 6 + 1
K = I * 6
WRITE (12,293) STKN(S), (MH(S,D) , D = J,K)
CONTINUE
WRITE (12,293) STKN(S), (MH(S,D) , D = (K+l)
                                                            ML)
C             WRITE  (12,297)
            DO 584 I = 1, 2
              J =  (1-1) * 6
              K =  I * 6
             WRITE (12,296)
584         CONTINUE
             WRITE (12,296)
C             WRITE  (12,292)
C             WRITE  (12,292)
580       CONTINUE
        END IF
                            +  1

                            STKN(S)

                            STKN(S)
(MW(S,D)
        (MW(S,D)
(MH(S,L)  ,  L = 1,
(MW(S,L)  ,  L = 1,
,  D = J,K)

,  D = (K+l)
 ND16)
 ND16)
                      ML)
        WRITE(*,*;
        WRITE(*,*;
        WRITE(*,*;
                    'END OF BPIP RUN.
C
C
C
   FORMAT STATEMENTS

  1   FORMAT(IX,A78,/)
  2   FORMAT(/3X,'The  ',A2,
     *ST2 run.'/)
  3   FORMAT(3X,'The inputs
     *y a conversion  '/3X,'
     *IP results  in meters.
                              flag has  been  set  for processing for an ISC

                            units are  in:  ',  A10,'  Multiplying ',A10,'  b
                            factor of',F10.4,  '  will  produce internal BP
      FORMAT(3X,'The UTMP variable  is  set  to  ',A4,'.   The input is assum
     *ed to be in'/4X,' UTM coordinates.   BPIP  will  move the UTM origin
     *to the first pair of'/4X,' UTM coordinates  read.   The UTM coordina
                                     A-21

-------
     *tes of the new origin will  '/4X, ' be subtracted from all the other
     * UTM coordinates entered to form  '/4X, ' this new local coordinate
     *system. ' //3X, 'The new local coordinates will be displayed in paren
     *theses just below'/4X,T the UTM coordinates they represent .',///)
  5   FORMAT ( 3X, ' UTMP is set to  T,A4,T.  The input is assumed to be  in a
     * local T/3x,T X-Y coordinate system as opposed to a UTM coordinate
     *system. ' /3x, ' True North is in the positive Y direction.'///)
  6   FORMAT (IX, 'Number of buildings to be processed  :',I4/)
  7   FORMAT ( 3 7X,  ' ( ' , 2F12 .2, ' ) ' )
  8   FORMAT ('  Factor to convert  from input units to meters is:',F10.4)
 11   FORMAT (/ IX,  'Number of stacks to be processed :',I4/)
 12   FORMAT ( IX, A8, '  has ' , 12 , '  tier(s) with a base elevation of, F8.2,
     * '  BUILDING  TIER  BLDG-TIER  TIER   NO. OF      CORNER   COORDINA
     *TES ' ,
     */'    NAME   NUMBER   NUMBER  HEIGHT  CORNERS        X           Y'
     */)
 13   FORMAT ( IX, A8, 15 , 5X, 14 , 4X, F6 . 2 , 16 )
 14   FORMAT (42X,2F12 .2)
 16   FORMAT (41X, '  ( ' , 2F12 .2, ' )  ' )
 17   FORMAT (3X, ' Plant north is',F7.2,'  degrees with respect to True Nor
     *th.  ')
 18   FORMAT (4X, 'The plant coordinates will appear as entered in the Sum
     *mary output ' /4x, ' file and they will be adjusted to True North prio
     *r to processing. ' /4x, 'The True North oriented coordinates appear b
     *elow between' /4X,  ' the square brackets.')
 19   FORMAT (4 IX, '  [ ' , 2F12 .2, ' ]  ' )
 21   FORMAT ('                    STACK            STACK   COORDINATES'/
     *        '  STACK NAME     BASE  HEIGHT          X           Y'/)
 22   FORMAT  (2X, A8,3X, 2F8.2, 2X, 2F12.2)
 23   FORMAT  (3 OX,  ' ( ' , 2F12 . 2 , '  ) ' )
 42   FORMAT (30X, '  [ ' , 2F12 .2, ' ]  ' )
 47   FORMAT ('  Caution: Blank spaces are not allowed in Stack names by
     *ISC2 models.  ' )
 71   FORMAT  (//' The number of stack-tier combinations entered, where e
     *ach stack is at least 5L'/'  in from at least one of the edges of t
     *heir respective tier roofs,  is:',I4,/)
 73   FORMAT(8x,' These stack/building-tiers are:'//
     * '     STACK         BUILDING -    TIER'/
     * '  NAME    NUMBER   NAME      NO .   NO . ' )
 72   FORMAT(  IX, A8,2X, 14,  3x,A8,2X, 214)
292   FORMAT(3 (/1X, 8F6.2))
293   FORMAT(5X, 'SO BUILDHGT ', A8 , 6F8.2)
296   FORMAT(5X, 'SO BUILDWID ', A8 , 6F8.2)
297   FORMAT (/)
411   FORMAT (/ IX, A8)
461   FORMAT (IX, 'DATE :   ' , 12 , '  / ' , 12 , ' / ' , 12 )
462   FORMAT (IX, 'TIME :   ' , 12 , '  : ' , 12 , ' : ' , 12 )
604   FORMAT (/ IX, 'Drtcn: ', F6.2/)
1000  FORMAT(15X, A8,2X, 3(F8.2,2X))
1005  FORMAT ( 15X, ' PRELIMINARY* GEP STACK HEIGHT RESULTS TABLE'/
     *       12X, '              (Input Units: ',A10,')'//
     *15X, '                              Preliminary*'/
     *15X, '  Stack      Stack     GEP**  GEP Stack'/
     *15X, '  Name       Height    EQN1   Height Value'//)
1007  FORMAT (/'    * Results based on Table 3 . 1 of the GEP Technical Supp
     *ort Document . ' /
     *'     Consult Table 3.1  for any additional steps that may be requi
     *red. '/
     *'  **  Results using Equation 1,  page 6 of GEP Technical Support Do
     *cument .  ' )
1020  FORMAT (//'                     Overall GEP Summary Table'/
     *          '                          (Units: ' , A8, ') '//)
1021  FORMAT (1 OX, 'NOTE:  The projected width values below are not always'


                                    A-22

-------
     *     ,/10X,'      the maximum width.  They  are  the  minimum value,'
     *     ,/10X,T      valid for the stack in question,  to  derive  the'
     *     ,/10X,T      maximum GEP stack height.'/)
1022  FORMAT(' StkNo:  ' ,  13,'  Stk Name: ' , A8, ' Stk  Ht: ' ,F7.2 ,
     *'  Prelim. GEP Stk.Ht: ',F8 . 2,
     */llx,'  GEP:  BH:',F7.2,'  PBW:',F8.2, 11X,  '  *Eqnl Ht:',F8.2)
1023  FORMAT('  No. of Tiers affecting  Stk:', 13,'  Direction  occurred:'
     *,  F8.2)
1024  FORMAT('   Bldg-Tier nos. contributing  to GEP:',  1014)
1025  FORMAT(1IX,'*with a Stack-Building elevation  difference  applied ='
     *,F8.2)
2020  FORMAT(//'                     Summary  By Direction Table'/
     *          '                           (Units:  ',  A8,')',
     *// '  Dominate stand alone tiers:'/)
2022  FORMAT(' StkNo:',  13,'  Stk Name:', A8, 23X,'    Stack  Ht:',  F8.2)
2026  FORMAT(1IX,'      MAX:  BH:',F7.2,'  PBW:',F7.2,
     * '   *Wake Effect Ht: ' , F8.2)
2027  FORMAT(1IX,'      GEP:  BH:',F7.2,'  PBW:',F7.2,
     * '    *Equation  1 Ht:', F8.2)
2028  FORMAT(15X,' BldNo:', 13,'  Bid Name:', A8,  '   TierNo:',  13)
2023  FORMAT('  No. of Tiers affecting  Stk:', 13)
2024  FORMAT('   Bldg-Tier nos. contributing  to MAX:',  1014)

999    END

        SUBROUTINE CNRLIN  (XI, Yl, X2,  Y2, BET, DIST,  XKP, YKP)
C            calculate corner perpendicular to side distance,
C             intercept point, and determine  if intercept on or between
C             corners.
          COMMON /INTRCP/ XI, YI
            IF  ((XI .NE. X2)  .AND.  (Yl  .NE. Y2))  THEN
               SM = (Y2 - Yl) / (X2 - XI)
               XI = (YKP + XKP / SM - Yl + XI * SM) / (SM +  1.0 / SM)
               YI = Yl + (XI - XI)  * SM
            ELSE
              IF  ((Y2 .EQ. Yl))  THEN
                 XI = XKP
                 YI = Yl
              ELSE
                 XI = XI
                 YI = YKP
              END IF
            END IF
C
           DIST = SQRT((YI  - YKP)  ** 2  +  (XI  - XKP) **  2)
C
C          Is the intercept point between the two corners of the
C            other structure ?
             Al =  (XI - XI) ** 2 +  (Yl  - YI)  ** 2 +
     *             (X2 - XI) ** 2 +  (Y2  - YI)  ** 2
             A2 =  (XI - X2) ** 2 +  (Yl  - Y2)  ** 2
            BET =  (A2 - Al)
        RETURN
        END
C
        SUBROUTINE DISLIN  (XI, Yl, X2,  Y2, L5, IBET,  XSP, YSP)
C          calculate  if stack directly  downwind of  a  side and  on or
C           within 5L of side.
          REAL L5
          IBET = 0
          DX1 = MIN (XI, X2)
          DX2 = MAX (XI, X2)
          IF  ((XSP .LT.  DX1)  .OR.  (XSP  .GT. DX2)) RETURN
          IF  (Yl  .EQ.  Y2) THEN


                                     A-23

-------
576
        DIST = YSP - Yl
        IF ((DIST  .GE. 0.0)  .AND.  (DIST .LE.  L5)) THEN
           IBET =  1
        END IF
     END IF

     IF (XI .EQ. X2) THEN
       IF  (XSP  .EQ. XI) THEN
        Dl = YSP - Yl
          IF ((Dl  .LE. L5)  .AND.  (Dl .GE.  0.0)) THEN
            IBET = 1
          END IF
        D2 = YSP - Y2
          IF ((D2  .LE. L5)  .AND.  (D2 .GE.  0.0)) THEN
            IBET = 1
          END IF
       END IF
     ELSE
       Yl = Y2 + (XSP  - X2)  *  (Yl  -  Y2)  / (XI  - X2)
         DIST = YSP -  Yl
         IF ((DIST  .GE. 0.0)  .AND.  (DIST .LE.  L5)) THEN
            IBET = 1
         END IF
     END IF
   RETURN
 END
 SUBROUTINE GPC (D, I, C,  S, TW, WS,  HTA,  CH)
     calculate GEP values

   INTEGER C,  CH,  D, S, GEPIN,  TNUM2,  TLIST2,  GTNUM, GTLIST

   PARAMETER (MB = 8,  MT = 4,  MTS  =  8,  MET = MB*MT, MSK  =  14,
"             MD = 36, ML  = 16)

   COMMON /ELEV/ BELEV(MB),  SB(MSK)
   COMMON /HT/ TH(MB,  MT),  SH(MSK)
   COMMON /GP/ GEP(MSK), GEPBH(MSK),  GEPBW(MSK), GEPIN(MSK,MET,MET)
   COMMON /TNM/ TNUM2(MET),  TLIST2(MET,MET)
   COMMON /GTNM/ GTNUM(MSK), GTLIST(MSK,MET),  GDIRS(MSK)
   COMMON /MIJ/ MI(MSK), MJ(MSK)

     HWE = HTA + 1.5 * WS
      GEPIN(S,  C,  CH)  = 1
       IF  (HWE  .GT. GEP(S))  THEN
         GEP(S) = HWE  + BELEV(I)
         GEPBH(S)  = HTA
         GEPBW(S)  = TW
         GTNUM(S)  = TNUM2(C)
         MI(S)  = I
         MJ(S)  = C -
          GDIRS(S)  =
          DO 576 M =
            GTLIST(S,
          CONTINUE
       END IF
        IF (HWE .EQ. GEP(S)) THEN
          IF (TW .LT.  GEPBW(S)) THEN
            GEP(S)  = HWE + BELEV(I)  -  SB(S)
            GEPBH(S) = HTA
            GEPBW(S) = TW
            GTNUM(S) = TNUM2(C)
            MI(S)  = I
            MJ(S)  = C  -  (1-1)*MT
            GDIRS(S) = FLOAT(D)/4
                                       - SB(S)
                           (1-1)*MT
                           FLOAT(D)/4
                           1,  GTNUM(S)
                          ,M)  = TLIST2(C,M)
                                      A-24

-------
                  DO  578  M = 1,  GTNUM(S)
                        GTLIST(S,M)  = TLIST2(C,M)
578               CONTINUE
               END  IF
             END  IF
      RETURN
      END
C
      SUBROUTINE  MXBWH(D,  I,  S,  C,  TW, HTA, WS, TL1)
(2    ********************************************************************
      PARAMETER  (MB = 8,  MT = 4,  MTS = 8, MET = MB*MT  , MSK =14,        *
     *            MD = 36,  ML = 16)                                        *
(2    ********************************************************************
C
C DIMENSION SUBSCRIPT FORMAT: (BUILDING OR STACK #, WD OR  TIER #,  SIDE #)
C

      REAL          MHWE,  MXPBH,  MXPBW
      INTEGER       C,  D,  GEPIN,  S,  TNUM2, TLIST2, TL1

      COMMON /ELEV/ BELEV(MB),  SB(MSK)
      COMMON /GP/ GEP(MSK),  GEPBH(MSK),  GEPBW(MSK), GEPIN(MSK,MET,MET)
      COMMON /HT/ TH(MB,  MT), SH(MSK)
      COMMON /MXB/  MHWE(MSK,  MD),  MXPBH(MSK, MD), MXPBW(MSK,  MD)
      COMMON /PWH/  PBH(MBT),  PBW(MET), HWE(MET)
      COMMON /MIJ/  MI(MSK),  MJ(MSK)
      COMMON /TNM/  TNUM2(MET),  TLIST2(MET,MET)
      COMMON /MTNM/ MTNUM(MSK),  MTLIST(MSK,MET), MDIRS(MSK)
C
C    Stack is within  GEP  5L ?
      IF  (GEPIN(S,C,TL1)  .EQ. 1)  THEN
        PBH(C) =  HTA
        PBW(C) =  TW
        HWE(C) =  HTA  + 1.5 * WS
          IF  (HWE(C)  .GT.  MHWE(S,  D))  THEN
             MHWE(S,  D) = HWE(C)  + BELEV(I) - SB(S)
             MXPBH(S,  D)  = PBH(C)
             MXPBW(S,  D)  = PBW(C)
             MTNUM(S)  = TNUM2(C)
             MI(S)  =  I
             MJ(S)  =  C -  (1-1)*MT
             MDIRS(S)  = FLOAT(D)
             DO 578 M = 1,  MTNUM(S)
               MTLIST(S,M)  = TLIST2(C,M)
578          CONTINUE
          END IF
C When wake effects are equal,  use those values with a lesser projected width.
          IF  (HWE(C)  .EQ.  MHWE(S,D))  THEN
            IF  (PBW(C)  .LT.  MXPBW(S,D))  THEN
              MHWE(S,  D)  = HWE(C)  + BELEV(I) -  SB(S)
              MXPBH(S,  D)  = PBH(C)
              MXPBW(S,  D)  = PBW(C)
              MTNUM(S)  =  TNUM2(C)
              MI(S) = I
              MJ(S) = C -  (1-1)*MT
              MDIRS(S)  =  FLOAT(D)
              DO  579  M =  1,  MTNUM(S)
                MTLIST(S,M)  = TLIST2(C,M)
579           CONTINUE
            END IF
          END IF
C When a wake effect  height is greater than the GEP STK Ht,  use the GEP values
          IF  (GEP(S)  .LT.  MHWE(S,D))   THEN
            MHWE(S, D)  =  GEP(S)


                                     A-25

-------
580
          MXPBW(S,D)
          MXPBH(S,D)
          MTNUM(S)  =
          MI(S) =  I
          MJ(S) =  C -
          MDIRS(S)  =
          DO 580 M =
            MTLIST(S,
          CONTINUE
        END IF
      END IF
                        = GEPBW(S)
                        = GEPBH(S)
                        TNUM2(C)

                         (1-1)*MT
                        FLOAT(D)
                        1,  MTNUM(S)
                        M)  = TLIST2(C,M)
C
C
C
INITIALIZE VALUES  FOR NEXT LOOP

      HWE(C) =  0.0
      PBH(C) =0.0
      PBW(C) =  0.0

    RETURN
    END

    SUBROUTINE  WIDTH  (ANG,  I,  J, C, TW)
        Calculate  projected building width,  TW
      INTEGER C
      PARAMETER (MB = 8,  MT = 4, MTS = 8, MET  =  MB*MT,  MSK = 14,
   *             MD = 36,  ML =  16)
      COMMON /BLDGIN/ X(MB, MT, MTS), Y(MB,  MT,  MTS),  ND(MB, MT)
      COMMON /BLDOUT/ XC(MBT,  MTS), YC(MBT,  MTS)
      COMMON /MXN/ XMAX(MET),  XMIN(MET), YMAX(MET),  YMIN(MET)
          CSA = COS(ANG)
            SNA  =  -SIN(ANG)
          DO  700 K = 1,  ND(I,J)
              XC(C,  K)  =  X(I, J, K) * CSA  +  Y(I,
              YC(C,  K)  =  Y(I, J, K) * CSA  -  X(I,
              IF  (K .EQ.  1)  THEN
               YMIN(C)  = YC(C, 1)
               YMAX(C)  = YC(C, 1)
               XMIN(C)  = XC(C, 1)
               XMAX(C)  = XC(C, 1)
              END IF
C           WHICH  TIER CORNER IS FURTHEST NORTH
              IF  (YC(C,  K)  .LE. YMIN(C)) YMIN(C)
              IF  (YC(C,  K)  .GE. YMAX(C)) YMAX(C)
              IF  (XC(C,  K)  .LE. XMIN(C)) XMIN(C)
              IF  (XC(C,  K)  .GE. XMAX(C)) XMAX(C)
700       CONTINUE
            TW = XMAX(C)  -  XMIN(C)
      RETURN
      END
                                                J,
                                                J,
K)
K)
SNA
SNA
                                                 SOUTH,
                                                = YC(C,
                                                = YC(C,
                                                = XC(C,
                                                = XC(C,
     EAST
     K)
     K)
     K)
     K)
     AND WEST
                                      A-26

-------
                           APPENDIX B
                           TEST CASES

     Two test cases were constructed to test the major features
of the program.  The tests were for a low simple building and a
multi-tiered 'city' block.  BPIP output from the tests are
presented below in formats for both the ISCST2 and ISCLT2 models.
B.I TEST CASE 1

     This first test case was originally used in an evaluation to
test the ability of BPIP to properly calculate PBWs for a low
simple structure.  As presented here,  the test case was
simplified by removing several redundant stacks and it now serves
as an example of a very basic BPIP run.

     Structure and stack input data for this test case can be
found in Table B-l.  See Figure 2-6 for a plot of Table B-l data.
Particular emphasis was placed on locating stacks where 1)  the
output could be searched for programming problems where positive
and negative numbers, trigonometric equations and other
formulation may not have been properly used or written, and 2)
misinterpretation of the guidance would be apparent such as
placing stacks in the areas outside the GEP 5L limit line where
they should be excluded but might be erroneously included in the
processing.  Stacks were also placed as controls where there is
no doubt about whether they should be excluded or included for
processing.

     Figure 2-6 illustrates this point.  For a wind flow
direction of 20 degrees,  Stacks 101 is outside the GEP 5L limit
line and the SIZ downwind boundary.  Therefore, no PBW values
should be calculated for Stack 101.  Stack 103 is inside the GEP
5L limit line and the revised SIZ boundary line.  PBW values were
calculated for Stack 103.  Stack 102 is outside the GEP 5L limit
line and therefore not subject to wake effects from the building.
However, Stack 102 would be inside a SIZ drawn with the old
downwind side 5L from the most downwind corner.  The guidance
states that stacks outside the GEP 5L limit are outside the zone
of wake effects.  Therefore, no PBW's should be calculated for
Stack 102.  The GEP stack height values, and the ISCST2 and
ISCLT2 results in Tables B-2, B-3, and B-4 were compared to hand
calculated values and the results are correct.

     In table B-2, note that the GEP Eqnl result for StklOO is 1
meter lower than expected.  This is because the stack-building
difference is 1 meter and the 1 meter was subtracted from the
result to produce a value of 49 instead of 50 meters.  A similar
situation applies to Stack 103.
                               B-l

-------
                                 Table  B-l

                                Test Case 1

                                Input Data
'BPIP users  guide  test case #1 - input file with 1  bldg  and  4 stacks.
,ST,
'METERS'  1.00
'UTMN'   210.00
1
'L-Shape'  1  10.00
6 20
 -10  -20
 -10   80
  40   80
  40   30
  90   30
  90  -20
4
'StklOO'   11.00  25.00     -10.00    -20.00
'StklOl'   12.00  25.00     164.00    159.00
'Stkl02'   13.00  25.00     136.00    121.00
'Stkl03'   14.00  25.00     118.00    103.00
0
                                    B-2

-------
                                Table B-2

                         GEP  Stack Height Data

                              ISCST2 Format
DATE :  11/16/93
TIME :  22:19:41
BPIP users guide test case  #1  -  input  file with  1 bldg and 4 stacks.
BPIP PROCESSING INFORMATION:
  The ST flag has been set  for processing  for an ISCST2 run.

  The inputs units are in:  METERS     Multiplying METERS     by a conversion
   factor of    1.0000 will produce  BPIP results in meters.

  UTMP is set to UTMN.  The input  is assumed to be in a local
   X-Y coordinate system as opposed  to  a UTM coordinate system.
   True North is in the positive Y direction.
  Plant north is 210.00  degrees  with  respect to True North.
BPIP users guide test case  #1  -  input  file with  1 bldg and 4 stacks.
              PRELIMINARY*  GEP  STACK  HEIGHT RESULTS TABLE
                           (Input  Units: METERS)
Stack
Name
StklOO
StklOl
Stkl02
StklOS
Stack
Height
25.
25.
25.
25.
.00
.00
.00
.00
Preliminary*
GEP** GEP Stack
EQN1 Height Value
49.00
.00
.00
46.00
25.
25.
25.
25.
.00
.00
.00
.00
  * Results based on Table  3.1  of  the  GEP Technical Support Document.
    Consult Table 3.1 for any additional steps that may be required.
 ** Results using Equation  1, page 6 of GEP Technical Support Document.
                                    B-3

-------
                            Table B-2  Cont'd

                         GEP  Stack Height Data

                              ISCLT2 Format
DATE :  11/17/93
TIME :  19:40:29
BPIP users guide test case  #1  -  input  file with 1 bldg and 4 stacks.
BPIP PROCESSING INFORMATION:
  The LT flag has been set  for  processing  for an ISCST2 run.

  The inputs units are in:  METERS     Multiplying METERS     by a conversion
   factor of    1.0000 will produce  BPIP results in meters.

  UTMP is set to UTMN.  The input  is assumed to be in a local
   X-Y coordinate system as opposed  to  a UTM coordinate system.
   True North is in the positive Y direction.
  Plant north is 210.00  degrees  with  respect to True North.
BPIP users guide test case  #1  -  input  file with 1 bldg and 4 stacks.
              PRELIMINARY*  GEP  STACK HEIGHT RESULTS TABLE
                           (Input Units: METERS)
Stack
Name
StklOO
StklOl
Stkl02
StklOS
Stack
Height
25.
25.
25.
25.
.00
.00
.00
.00
Preliminary*
GEP** GEP Stack
EQN1 Height Value
49.00
.00
.00
46.00
25.
25.
25.
25.
.00
.00
.00
.00
  * Results based on Table  3.1  of  the GEP Technical Support Document.
    Consult Table 3.1 for any additional steps that may be required.
 ** Results using Equation  1, page 6 of GEP Technical Support Document.
                                    B-4

-------
                             Table B-3

                            Test  Case 1

                         ISCST2 Output  Data

       Building Heights and Projected Building Widths  Only
DATE  : 11/16/93
TIME  : 22:18:18
BPIP  users guide test case #1 - input file with 1 bldg and 4 stacks.
 BPIP output in METERS
SO
so
so
so
so
so
so
so
so
so
so
so
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
StklOO
20.
20.
20.
20.
20.
20.
111.
140 .
107 .
111.
140 .
107 .
.00
.00
.00
.00
.00
.00
.07
.88
.16
.07
.88
.16
20.
20.
20.
20.
20.
20.
107 .
140 .
111.
107 .
140 .
111.
.00
.00
.00
.00
.00
.00
.16
.88
.07
.16
.88
.07
20.
20.
20.
20.
20.
20.
100.
136.
111.
100.
136.
111.
.00
.00
.00
.00
.00
.00
.00
.60
.60
.00
.60
.60
20.
20.
20.
20.
20.
20.
115.
128.
108.
115.
128.
108.
.00
.00
.00
.00
.00
.00
.85
. 17
.74
.85
. 17
.74
20.
20.
20.
20.
20.
20.
128.
115.
108.
128.
115.
108.
.00
.00
.00
.00
.00
.00
. 17
.85
.74
. 17
.85
.74
20.
20.
20.
20.
20.
20.
136.
100.
111.
136.
100.
111.
.00
.00
.00
.00
.00
.00
.60
.00
.60
.60
.00
.60
SO
SO
SO
SO
SO
SO
SO
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
so
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
StklOl
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
Stkl02
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
                                 B-5

-------
SO BUILDHGT StklOS       .00     .00     .00   20.00     .00     .00
SO BUILDHGT StklOS       .00     .00     .00     .00     .00     .00
SO BUILDHGT StklOS       .00     .00     .00     .00     .00     .00
SO BUILDHGT StklOS       .00     .00     .00   20.00   20.00   20.00
SO BUILDHGT StklOS     20.00   20.00   20.00   20.00   20.00     .00
SO BUILDHGT StklOS       .00     .00     .00     .00     .00     .00
SO BUILDWID StklOS       .00     .00     .00  115.85     .00     .00
SO BUILDWID StklOS       .00     .00     .00     .00     .00     .00
SO BUILDWID StklOS       .00     .00     .00     .00     .00     .00
SO BUILDWID StklOS       .00     .00     .00  115.85  128.17  136.60
SO BUILDWID StklOS    140.88  140.88  136.60  128.17  115.85     .00
SO BUILDWID StklOS       .00     .00     .00     .00     .00     .00
                                B-6

-------
                                Table B-4

                               Test  Case  1

                           ISCLT2  Output Data

       Building Heights and Projected Building Widths  Only
DATE :  11/17/93
TIME :  19:40:29
BPIP users guide  test  case  #1  - input file with 1 bldg and 4 stacks.


    SO  BUILDHGT StklOO     20.00   20.00   20.00   20.00   20.00   20.00
    SO  BUILDHGT StklOO     20.00   20.00   20.00   20.00   20.00   20.00
    SO  BUILDHGT StklOO     20.00   20.00   20.00   20.00
    SO  BUILDWID StklOO   111.60  105.67  122.47  140.21  136.60  112.20
    SO  BUILDWID StklOO   109.53  109.77  111.60  105.67  122.47  140.21
    SO  BUILDWID StklOO   136.60  112.20  109.53  109.77


    SO  BUILDHGT StklOl       .00      .00     .00     .00     .00     .00
    SO  BUILDHGT StklOl       .00      .00     .00     .00     .00     .00
    SO  BUILDHGT StklOl       .00      .00     .00     .00
    SO  BUILDWID StklOl       .00      .00     .00     .00     .00     .00
    SO  BUILDWID StklOl       .00      .00     .00     .00     .00     .00
    SO  BUILDWID StklOl       .00      .00     .00     .00


    SO  BUILDHGT Stkl02       .00      .00     .00     .00     .00     .00
    SO  BUILDHGT Stkl02       .00      .00     .00     .00     .00     .00
    SO  BUILDHGT Stkl02       .00      .00     .00     .00
    SO  BUILDWID Stkl02       .00      .00     .00     .00     .00     .00
    SO  BUILDWID Stkl02       .00      .00     .00     .00     .00     .00
    SO  BUILDWID Stkl02       .00      .00     .00     .00


    SO  BUILDHGT Stkl03       .00      .00     .00     .00     .00   20.00
    SO  BUILDHGT Stkl03       .00      .00     .00     .00   20.00   20.00
    SO  BUILDHGT Stkl03     20.00   20.00     .00     .00
    SO  BUILDWID Stkl03       .00      .00     .00     .00     .00  112.20
    SO  BUILDWID Stkl03       .00      .00     .00     .00  122.47  140.21
    SO  BUILDWID Stkl03   136.60  112.20     .00     .00
                                   B-7

-------
B.2 TEST CASE 2

    The second test was designed to test BPIP using three multi-
tiered buildings that are fairly close together (See Figure B-l).
As presented here,  this test case serves as an example of a
complex BPIP run.  Structure and stack input data for this test
case can be found in Table B-5.  See Figure B-l for a plot of
Table B-5 data.  Particular emphasis was placed on locating
stacks where they would be influenced primarily by only one of
the three tier levels for wind flow directions of 40 and 45
degrees or their reciprocal.   The lowest level of each building
ranged in height from 6.1 to 6.3 meters while the top levels
ranged from 7.5 to 7.7 meters.  Each of the tier levels can be
viewed in Figure B-l.  Three sets of stacks were placed to the
left and to the right of the 40 degree wind flow direction.

     Stack 7 was placed downwind of the buildings.  The stack was
designed to be influenced by the highest wake effect produced by
the three buildings.  Stack 10 was placed beyond any SIZes or GEP
5L areas of influence and served as a control stack.

     Stacks 8 and 9 were placed directly downwind of any GFSs for
the Cardinal directions of north, south, east and west.  Their
purpose was to serve as an indicator if there was a problem with
the multi-tiered GFS processing.

     In the ISCST2 output shown in Table B-6, the fourth entry
over from the left on the first and fourth line of each set of
values for each stack represents the output for winds blowing in
the 40 and 220 degree directions.  The BH values listed in Table
B-6 are the tier heights which are the lowest tier height of any
combined tiers producing the highest wake effect over the
respective stack.  From the figure, the other tiers used in each
combining can be found.  For Stack 1, the BH is 6.2 which belongs
to Building-Tier number 5 which was combined with Building-Tier
numbers 1, through 7, and 11.  The PBW value of 11.98 was from
the combining of these 7 tiers.  These combined tiers numbers
were read from the associated summary output file.  The combined
tiers producing the highest wake effects over the respective
stacks in Figure B-l are annotated in parentheses for the first 7
stacks.

     Values for Stacks 8 and 9 were calculated for the 90, 180,
270, and 360 wind flow directions.  This indicates that the GFS
algorithm was used.  The BH and PBW values indicate that the
values were correctly calculated.

     Similar results are shown in Table B-7 from the ISCLT2 run.
The second entry over from the left on the first line and the
second entry over from the left on the second row of each BH and
PBW set of values for each stack represents the output for winds
blowing in the 45 and 225 degree directions.  The BH values
listed in Table B-7 are the tier heights which are the lowest
tier height of the combined tiers.

                               B-8

-------
                          Wind Flow Direction = 40 Deg.
     Structure Influence
     Zone (SIZ) Segments
                                                             Stack 10
                                                      Stack 7
                                            Key:
                                 	      - SIZ line segment
                                 (3, 7, 11) - Dominate combined
                                 Building-Tier numbers used to
                                 draw the associated SIZ segment.
                                 Building 1
    • Stack 8
                                  Stack 6
                                     Stack 5
                                        Stack 4
                          e  Stack 9
Figure B-l.   Groups  of  Tiered Structures
                                          B-9

-------
     The ISCST2 and ISCLT2 values were properly sorted and the
heights of the single or combined tiers and their projected
widths which produced the highest wake effect heights were stored
in their proper sector locations in the associated ISCST2 and
ISCLT2 file.  The GEP stack height values,  and the ISCST2 and
ISCLT2 results in Tables B-2, B-6, and B-7 were compared to hand
calculated values and the results are correct.
                               B-10

-------
                            Table B-5

                           Test Case 2

                            Input  Data
'BPIP users guide test case #2, 3-3 tiered bldgs w/ 10 stacks.'
,ST,
1 METERS'  1.0
'UTMN' 360.00
3
'Bldg 1'  3 0.00
4  6.3
-30 -30
-30 -34
-34 -34
-34 -30
4  7.3
-31 -31
-34 -31
-34 -34
-31 -34
47.7
-31.4 -31.4
-34 -31.4
-34 -34
-31.4 -34
TBldg2' 3  0.00
46.2
-36 -30
-36 -34
-40 -34
-40 -30
47.2
-36 -31
-36 -34
-39 -34
-39 -31
47.6
-36 -31.5
-36 -34
-38.5 -34
-38.5 -31.5
'Bldg 3'  3  0.00
46.1
-30 -36
-34 -36
-34 -40
-30 -40
47.1
-31 -36
-34 -36
-34 -39

                               B-ll

-------
-31 -39
4 7.5
-31.5 -36
-34   -36
-34   -38.5
-31.5 -38.5
10
'S1H6.08' 0.00  15.2 -42    -28.35
'S2H7.08' 0.00  17.7 -41.6  -28.87
'S3H7.32' 0.00  18.3 -40.7  -29.50
'S4H6.08' 0.00  15.2 -27.9  -41.85
'S5H7.08' 0.00  17.7 -28.35 -41.33
'S6H7.32' 0.00  18.3 -29.20 -40.5
'S7H6.08' 0.00  15.2  -7.6   -3.1
'S8H6.08' 0.00  15.2 -50.0  -35.0
'S9H6.08' 0.00  15.2 -35.0  -50.0
'S10H6.08'  0.00  15.2   0.0    0.0
0
                               B-12

-------
                                Table B-6

                               Test  Case  2

                           ISCST2  Output Data
DATE :  11/19/93
TIME :   7:12:25
BPIP users guide test  case  #2,  3-3 tiered bldgs w/ 10 stacks.
BPIP PROCESSING INFORMATION:
  The ST flag has been  set  for processing for an ISCST2 run.

  The inputs units are  in:  METERS     Multiplying METERS     by a conversion
   factor of    1.0000  will produce BPIP results in meters.

  UTMP is set to UTMN.   The input  is assumed to be in a local
   X-Y coordinate system as opposed to a UTM coordinate system.
   True North is in the positive Y direction.
  Plant north is 360.00  degrees with respect to True North.
                                   B-13

-------
BPIP users guide test case #2, 3-3 tiered bldgs w/ 10 stacks.
              PRELIMINARY* GEP STACK HEIGHT RESULTS TABLE
                           (Input Units: METERS)
Stack
Name
slH6.
s2H7 .
S3H7.
S4H6.
S5H7.
S6H7.
S7H6.
S8H6.
S9H6.
S10H6
Stack
Height
08
08
32
08
08
32
08
08
08
.08
15.
17.
18.
15.
17.
18.
15.
15.
15.
15.
.20
.70
.30
.20
.70
.30
.20
.20
.20
.20
Preliminary*
GEP** GEP Stack
EQN1 Height
18.
18.
18.
18.
18.
18.
18.
18.
18.

.75
.75
.88
.94
.94
.94
.75
.75
.84
.00
15.
17.
18.
15.
17.
18.
15.
15.
15.
15.
Value
.20
.70
.30
.20
.70
.30
.20
.20
.20
.20
  * Results based on Table 3.1 of the GEP Technical Support Document.
    Consult Table 3.1 for any additional steps that may be required.
 ** Results using Equation 1,  page 6 of GEP Technical Support Document.
DATE : 11/19/93
TIME : 7:12:25
BPIP users guide test case #2,
BPIP output in
SO
SO
SO
SO
SO
SO
SO
SO
SO
SO
SO
SO
so
so
so
so
so
so
so
so
so
so
so
so
so
so
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDHGT
BUILDHGT
, 3-3 tiered
bldgs w/ 10
Stacks .
METERS
S1H6.
S1H6.
S1H6.
S1H6.
S1H6.
S1H6.
S1H6.
S1H6.
S1H6.
S1H6.
S1H6.
S1H6.
S2H7 .
S2H7 .
S2H7 .
S2H7 .
S2H7 .
S2H7 .
S2H7 .
S2H7 .
S2H7 .
S2H7 .
S2H7 .
S2H7 .
S3H7.
S3H7.
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.32
.32
7 .
7 .
7 .
7 .
7 .
7 .
8.
9.
7 .
8.
9.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
8.
8.
7 .
8.
8.
7 .
7 .
7 .
.20
.20
.30
.20
.20
.30
.69
.61
.67
.69
.61
.67
.50
.50
.30
.50
.50
.30
.11
.97
.67
.11
.97
.67
.50
.50
6.
7 .
7 .
6.
7 .
7 .
10.
8.
7 .
10.
8.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
9.
8.
7 .
9.
8.
7 .
7 .
7 .
.20
.50
.60
.20
.50
.60
.89
.11
.11
.89
.11
.11
.20
.50
.60
.20
.50
.60
.61
.11
.11
.61
.11
.11
.60
.50
6.
7 .
7 .
6.
7 .
7 .
11.
7 .
7 .
11.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
10.
7 .
7 .
10.
7 .
7 .
7 .
7 .
.20
.30
.50
.20
.30
.50
.61
.50
.50
.61
.50
.50
.20
.30
.50
.20
.30
.50
.25
.50
.50
.25
.50
.50
.50
.30
6.
7 .
7 .
6.
7 .
7 .
11.
7 .
7 .
11.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
10.
7 .
7 .
10.
7 .
7 .
7 .
7 .
.20
.50
.50
.20
.50
.50
.98
.44
.50
.98
.44
.50
.20
.50
.50
.20
.50
.50
.57
.44
.50
.57
.44
.50
.50
.50
6.
7 .
7 .
6.
7 .
7 .
11.
7 .
7 .
11.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
10.
7 .
7 .
10.
7 .
7 .
7 .
7 .
.20
.50
.50
.20
.50
.50
.98
.56
.50
.98
.56
.50
.20
.50
.50
.20
.50
.50
.57
.56
.50
.57
.56
.50
.50
.50
6.
7 .
7 .
6.
7 .
7 .
11.
7 .
7 .
11.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
10.
7 .
7 .
10.
7 .
7 .
7 .
7 .
.20
.50
.30
.20
.50
.60
.61
.45
.50
.61
.45
.10
.20
.50
.30
.20
.50
.60
.25
.45
.50
.25
.45
.10
.50
.50
                                    B-14

-------
SO BUILDHGT S3H7.32
SO BUILDHGT S3H7.32
SO BUILDHGT S3H7.32
SO BUILDHGT S3H7.32
SO BUILDWID S3H7.32
SO BUILDWID S3H7.32
SO BUILDWID S3H7.32
SO BUILDWID S3H7.32
SO BUILDWID S3H7.32
SO BUILDWID S3H7.32
SO BUILDHGT S4H6.08
SO BUILDHGT S4H6.08
SO BUILDHGT S4H6.08
SO BUILDHGT S4H6.08
SO BUILDHGT S4H6.08
SO BUILDHGT S4H6.08
SO BUILDWID S4H6.08
SO BUILDWID S4H6.08
SO BUILDWID S4H6.08
SO BUILDWID S4H6.08
SO BUILDWID S4H6.08
SO BUILDWID S4H6.08
7 .
7 .
7 .
7 .
8.
8.
7 .
8.
8.
7 .
7 .
6.
7 .
7 .
6.
7 .
8.
10.
7 .
8.
10.
7 .
.30
.50
.50
.30
.11
.97
.67
.11
.97
.67
.10
.10
.30
.10
.10
.30
.69
.89
.67
.69
.89
.67
7 .
7 .
7 .
7 .
7 .
8.
7 .
7 .
8.
7 .
6.
7 .
7 .
6.
7 .
7 .
10.
8.
7 .
10.
8.
7 .
.60
.60
.50
.60
.52
.11
.11
.52
.11
.11
.10
.10
.60
.10
.10
.60
.89
.69
.11
.89
.69
.11
7 .
7 .
7 .
7 .
9.
7 .
7 .
9.
7 .
7 .
6.
7 .
7 .
6.
7 .
7 .
11.
7 .
7 .
11.
7 .
7 .
.60
.50
.30
.60
.56
.50
.45
.56
.50
.45
.10
.30
.60
.10
.30
.60
.61
.50
.45
.61
.50
.45
7 .
7 .
7 .
7 .
9.
7 .
7 .
9.
7 .
7 .
6.
7 .
7 .
6.
7 .
7 .
11.
7 .
7 .
11.
7 .
7 .
.60
.50
.50
.60
.86
.44
.52
.86
.44
.52
.10
.50
.60
.10
.50
.60
.98
.44
.56
.98
.44
.56
7 .
7 .
7 .
7 .
9.
7 .
7 .
9.
7 .
7 .
6.
7 .
7 .
6.
7 .
7 .
11.
7 .
7 .
11.
7 .
7 .
.60
.50
.50
.60
.86
.56
.44
.86
.56
.44
.10
.50
.60
.10
.50
.60
.98
.56
.44
.98
.56
.44
7 .
7 .
7 .
7 .
9.
7 .
7 .
9.
7 .
7 .
6.
7 .
7 .
6.
7 .
7 .
11.
7 .
7 .
11.
7 .
7 .
.30
.50
.50
.60
.56
.45
.50
.56
.45
.10
.10
.50
.30
.10
.50
.60
.61
.45
.50
.61
.45
.10
                                B-15

-------
SO BUILDHGT S5H7.08
SO BUILDHGT S5H7.08
SO BUILDHGT S5H7.08
SO BUILDHGT S5H7.08
SO BUILDHGT S5H7.08
SO BUILDHGT S5H7.08
SO BUILDWID S5H7.08
SO BUILDWID S5H7.08
SO BUILDWID S5H7.08
SO BUILDWID S5H7.08
SO BUILDWID S5H7.08
SO BUILDWID S5H7.08
SO BUILDHGT S6H7.32     7.50
SO BUILDHGT S6H7.32     7.50
SO BUILDHGT S6H7.32     7.30
SO BUILDHGT S6H7.32     7.50
SO BUILDHGT S6H7.32     7.50
SO BUILDHGT S6H7.32     7.30
SO BUILDWID S6H7.32     8.11
SO BUILDWID S6H7.32     8.97
SO BUILDWID S6H7.32     7.67
SO BUILDWID S6H7.32     8.11
SO BUILDWID S6H7.32     8.97
SO BUILDWID S6H7.32     7.67
SO BUILDHGT S7H6.08      .00
SO BUILDHGT S7H6.08      .00
SO BUILDHGT S7H6.08      .00
SO BUILDHGT S7H6.08      .00
SO BUILDHGT S7H6.08      .00
SO BUILDHGT S7H6.08      .00
SO BUILDWID S7H6.08      .00
SO BUILDWID S7H6.08      .00
SO BUILDWID S7H6.08      .00
SO BUILDWID S7H6.08      .00
SO BUILDWID S7H6.08      .00
SO BUILDWID S7H6.08      .00
SO BUILDHGT S8H6.08      .00
SO BUILDHGT S8H6.08     7.50
SO BUILDHGT S8H6.08      .00
SO BUILDHGT S8H6.08      .00
SO BUILDHGT S8H6.08     7.50
SO BUILDHGT S8H6.08      .00
SO BUILDWID S8H6.08      .00
SO BUILDWID S8H6.08     8.97
SO BUILDWID S8H6.08      .00
SO BUILDWID S8H6.08      .00
SO BUILDWID S8H6.08     8.97
SO BUILDWID S8H6.08      .00
7 .
7 .
7 .
7 .
7 .
7 .
9.
8.
7 .
9.
8.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
8.
8.
7 .
8.
8.
7 .













7 .


7 .


8.


8.

.10
.50
.60
.10
.50
.60
.61
.11
.11
.61
.11
.11
.50
.50
.60
.50
.50
.60
.97
.11
.11
.97
.11
.11
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.50
.00
.00
.50
.00
.00
.11
.00
.00
.11
.00
7 .
7 .
7 .
7 .
7 .
7 .
10.
7 .
7 .
10.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
9.
7 .
7 .
9.
7 .
7 .
7 .





9.






7 .


7 .


7 .


7 .

.10
.30
.60
.10
.30
.60
.25
.50
.45
.25
.50
.45
.50
.30
.60
.50
.30
.60
.56
.50
.45
.56
.50
.45
.50
.00
.00
.00
.00
.00
.56
.00
.00
.00
.00
.00
.00
.30
.00
.00
.30
.00
.00
.50
.00
.00
.50
.00
7 .
7 .
7 .
7 .
7 .
7 .
10.
7 .
7 .
10.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
9.
7 .
7 .
9.
7 .
7 .
7 .





9.






7 .


7 .


7 .


7 .

.10
.50
.60
.10
.50
.60
.57
.44
.56
.57
.44
.56
.50
.50
.60
.50
.50
.60
.86
.44
.56
.86
.44
.56
.50
.00
.00
.00
.00
.00
.86
.00
.00
.00
.00
.00
.00
.50
.00
.00
.50
.00
.00
.44
.00
.00
.44
.00
7 .
7 .
7 .
7 .
7 .
7 .
10.
7 .
7 .
10.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
9.
7 .
7 .
9.
7 .
7 .
7 .





9.





6.
7 .

6.
7 .

11.
7 .

11.
7 .

.10
.50
.60
.10
.50
.60
.57
.56
.44
.57
.56
.44
.50
.50
.60
.50
.50
.60
.86
.56
.44
.86
.56
.44
.50
.00
.00
.00
.00
.00
.86
.00
.00
.00
.00
.00
.20
.50
.00
.20
.50
.00
.98
.56
.00
.98
.56
.00
7 .
7 .
7 .
7 .
7 .
7 .
10.
7 .
7 .
10.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
9.
7 .
7 .
9.
7 .
7 .












7 .


7 .


9.


9.


.10
.50
.30
.10
.50
.60
.25
.45
.50
.25
.45
.10
.50
.50
.30
.50
.50
.60
.56
.45
.50
.56
.45
.10
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.50
.00
.00
.50
.00
.00
.56
.00
.00
.56
.00
.00
                                B-16

-------
so
so
so
so
so
so
so
so
so
so
so
so
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
S9H6
S9H6
S9H6
S9H6
S9H6
S9H6
S9H6
S9H6
S9H6
S9H6
S9H6
S9H6
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
7.50
.00
.00
7.50
.00
.00
8.11
.00
.00
8.11
.00
.00
7 .


7 .


7 .


7 .


.60
.00
.00
.60
.00
.00
.49
.00
.00
.49
.00
.00
7 .


7 .


9.


9.


.50
.00
.00
.50
.00
.00
.56
.00
.00
.56
.00
.00
6.

7 .
6.

7 .
11.

7 .
11.

7 .
.10
.00
.60
.10
.00
.60
.98
.00
.49
.98
.00
.49


7 .


7 .


7 .


7 .
.00
.00
.60
.00
.00
.50
.00
.00
.44
.00
.00
.44


7 .


7 .


7 .


7 .
.00
.00
.30
.00
.00
.30
.00
.00
.50
.00
.00
.50
SO
SO
SO
SO
SO
SO
SO
so
so
so
so
so
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDHGT
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
BUILDWID
S10H6.
S10H6.
S10H6.
S10H6.
S10H6.
S10H6.
S10H6.
S10H6.
S10H6.
S10H6.
S10H6.
S10H6.
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.08
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
B-17

-------
                                Table  B-7

                               Test Case 2

                           ISCLT2  Output  Data
DATE :  11/19/93
TIME :   7:24:46
BPIP users guide test case #2,  3-3 tiered bldgs w/  10  stacks.
BPIP PROCESSING INFORMATION:
  The LT flag has been set for processing for an ISCST2  run.

  The inputs units are in: METERS     Multiplying METERS     by a  conversion
   factor of    1.0000 will produce BPIP results in meters.

  UTMP is set to UTMN.  The input is assumed to be in a  local
   X-Y coordinate system as opposed to a UTM coordinate  system.
   True North is in the positive Y direction.
  Plant north is 360.00 degrees with respect to True  North.
BPIP users guide test case #2,  3-3 tiered bldgs w/  10  stacks.
              PRELIMINARY* GEP STACK HEIGHT RESULTS TABLE
                           (Input Units:  METERS)

                                           Preliminary*
               Stack      Stack     GEP**  GEP Stack
               Name       Height    EQN1    Height Value
              S1H6.08
              s2H7.08
              S3H7.32
              S4H6.08
              S5H7.08
              S6H7.32
              S7H6.08
              S8H6.08
              S9H6.08
              S10H6.08
15.20
17 .70
18.30
15.20
17 .70
18.30
15.20
15.20
15.20
15.20
18.75
18.75
18.88
18.94
18.94
18.94
18.75
18.75
18.84
  .00
15.20
17 .70
18.30
15.20
17 .70
18.30
15.20
15.20
15.20
15.20
  * Results based on Table 3.1 of the GEP Technical  Support  Document.
    Consult Table 3.1 for any additional steps that  may be required.
 ** Results using Equation 1,  page 6 of GEP Technical  Support  Document.
DATE :  11/19/93
                                   B-18

-------
TIME :   7:24:46
    SO BUILDHGT S1H6.08
    SO BUILDHGT S1H6.08
    SO BUILDHGT S1H6.08
    SO BUILDWID S1H6.08
    SO BUILDWID S1H6.08
    SO BUILDWID S1H6.08
    SO BUILDHGT S2H7.08
    SO BUILDHGT S2H7.08
    SO BUILDHGT S2H7.08
    SO BUILDWID S2H7.08
    SO BUILDWID S2H7.08
    SO BUILDWID S2H7.08
    SO BUILDHGT S3H7.32
    SO BUILDHGT S3H7.32
    SO BUILDHGT S3H7.32
    SO BUILDWID S3H7.32
    SO BUILDWID S3H7.32
    SO BUILDWID S3H7.32
    SO BUILDHGT S4H6.08
    SO BUILDHGT S4H6.08
    SO BUILDHGT S4H6.08
    SO BUILDWID S4H6.08
    SO BUILDWID S4H6.08
    SO BUILDWID S4H6.08
    SO BUILDHGT S5H7.08
    SO BUILDHGT S5H7.08
    SO BUILDHGT S5H7.08
    SO BUILDWID S5H7.08
    SO BUILDWID S5H7.08
    SO BUILDWID S5H7.08
    SO BUILDHGT S6H7.32
    SO BUILDHGT S6H7.32
    SO BUILDHGT S6H7.32
    SO BUILDWID S6H7.32
    SO BUILDWID S6H7.32
    SO BUILDWID S6H7.32
    SO BUILDHGT S7H6.08
    SO BUILDHGT S7H6.08
    SO BUILDHGT S7H6.08
    SO BUILDWID S7H6.08
    SO BUILDWID S7H6.08
    SO BUILDWID S7H6.08
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .






.60
.30
.30
.10
.42
.50
.60
.30
.30
.10
.42
.50
.60
.30
.30
.10
.42
.50
.60
.30
.30
.10
.42
.50
.60
.30
.30
.10
.42
.50
.60
.30
.30
.10
.42
.50
.00
.00
.00
.00
.00
.00
6.
7 .
7 .
11.
7 .
7 .
7 .
7 .
7 .
9.
7 .
7 .
7 .
7 .
7 .
7 .
7 .
7 .
6.
7 .
7 .
11.
7 .
7 .
7 .
7 .
7 .
9.
7 .
7 .
7 .
7 .
7 .
9.
7 .
7 .
7 .


9.


.20
.50
.50
.11
.50
.55
.20
.50
.50
.80
.50
.55
.60
.60
.50
.52
.52
.55
.10
.60
.50
.11
.55
.55
.10
.60
.50
.80
.55
.55
.50
.60
.50
.15
.55
.55
.50
.00
.00
.71
.00
.00
6.
7 .
7 .
12.
7 .
7 .
7 .
7 .
7 .
10.
7 .
7 .
7 .
7 .
7 .
9.
7 .
7 .
6.
7 .
7 .
12.
7 .
7 .
7 .
7 .
7 .
10.
7 .
7 .
7 .
7 .
7 .
9.
7 .
7 .
7 .


9.


.20
.30
.30
.02
.50
.42
.20
.30
.30
.61
.50
.42
.50
.30
.30
.90
.50
.42
.10
.30
.30
.02
.50
.42
.10
.30
.30
.61
.50
.42
.50
.30
.30
.90
.50
.42
.50
.00
.00
.90
.00
.00
7 .
6.
7 .
9.
11.
7 .
7 .
7 .
7 .
9.
9.
7 .
7 .
7 .
7 .
9.
7 .
7 .
6.
6.
7 .
11.
11.
7 .
7 .
7 .
7 .
9.
9.
7 .
7 .
7 .
7 .
9.
9.
7 .






.20
.20
.50
.80
.11
.50
.50
.20
.50
.15
.80
.50
.50
.60
.60
.15
.52
.52
.10
.10
.60
.11
.11
.55
.10
.10
.60
.80
.80
.55
.50
.50
.60
.15
.15
.55
.00
.00
.00
.00
.00
.00
 7.30
 7.20

 7.50
10.61
 7.30
 7.50

 7.50
 9.90
 7.30
 6.10

 7.50
12.02
 7.30
 7 . 10

 7.50
10.61
 7.30
 7.50

 7.50
 9.90
.00
.00

.00
.00
       7.50
       7.50

       7.55
       9.15
       7.50
       7.50

       7.55
       9.15
       7.50
       6.10

       7.55
      11.11
       7.50
       7 . 10

       7.55
       9.80
       7.50
       7.50

       7.55
       9.15
          .00
          .00

          .00
          .00
                                    B-19

-------
SO BUILDHGT S8H6.08      .00     .00    7.50    7.50    7.30    7.50
SO BUILDHGT S8H6.08      .00     .00     .00     .00    7.50    7.50
SO BUILDHGT S8H6.08     7.30    7.50     .00     .00
SO BUILDWID S8H6.08      .00     .00    9.71    9.15    7.50    7.55
SO BUILDWID S8H6.08      .00     .00     .00     .00    9.71    9.15
SO BUILDWID S8H6.08     7.50    7.55     .00     .00
SO BUILDHGT S9H6.08     7.30    7.60    7.50     .00     .00     .00
SO BUILDHGT S9H6.08      .00    7.60    7.30    7.60    7.50     .00
SO BUILDHGT S9H6.08      .00     .00     .00    7.60
SO BUILDWID S9H6.08     7.50    7.49    9.71     .00     .00     .00
SO BUILDWID S9H6.08      .00    7.49    7.50    7.49    9.71     .00
SO BUILDWID S9H6.08      .00     .00     .00    7.49
SO BUILDHGT S10H6.08     .00     .00     .00     .00     .00     .00
SO BUILDHGT S10H6.08     .00     .00     .00     .00     .00     .00
SO BUILDHGT S10H6.08     .00     .00     .00     .00
SO BUILDWID S10H6.08     .00     .00     .00     .00     .00     .00
SO BUILDWID S10H6.08     .00     .00     .00     .00     .00     .00
SO BUILDWID S10H6.08     .00     .00     .00     .00
                                B-20

-------
                           APPENDIX C

                 ERROR MESSAGES  / TROUBLESHOOTING
     In additions to the error checking provided by a computer's
operating system such as DOS, BPIP has been programmed to provide
one other method of checking / troubleshooting data.  In the
other method, BPIP is executed and segments of the input file are
checked by the computer for incorrect flag names, stack names,
and values that exceed parameter settings.
C.I  ERROR MESSAGES

     Warning and error messages in this section will include
those that can be generated by BPIP operating under Microsoft
Fortran and Disk Operating System (MS-DOS)  software.  Below is a
list of some of the common messages that can occur and their
causes.
Message
Common Error Messages and Their Causes

                 Cause
  Bad Command or Filename
  Filename missing or blank
  UNIT 10?

  Filename missing or blank
  UNIT 12?

  Filename missing or blank
  UNIT 14?

  run-time error F6416 ( ...)
  - file not found

  run-time error F6505(input]
  - invalid string in input
                    BPIP.EXE not on Path or  in the
                    current directory

                    Input  filename missing from
                    execution  line.

                    Output filename missing  from
                    execution  line.

                    Summary filename missing from
                    execution  line.

                    Wrong  input filename
                    Quotes around a name, title,
                    or  flag are missing
  run-time error F6504(input]
  - invalid number in input

  Caution: Blank spaces are
  not allowed in stack names
  by ISC2 models.
                    A quote mark around a name,
                    title, or  flag maybe missing

                    The  input  stack name is used to
                    associate  particular building
                    height and width data with
                    stack emissions data through
                    the  ISC2s', source id, Scrid.
                    The  ISC2 models do NOT allow
                    blanks in  the Scrid name.
                               C-l

-------
In addition to these messages,  other messages may be given
especially if the user's computer system requires file OPEN
statements.  OPEN statements are not used in BPIP.
C.2  NORMAL ERROR CHECKING

     Under normal operation,  BPIP will check the input data for
obvious errors.  For instance,  if the number of buildings,  tiers
per building, or stacks entered exceeds the associated parameter
setting, BPIP will give a warning and a brief statement of the
cause of the warning and then terminate the run.  The same will
happen for the spelling of the flags such as TSTT,  TLTT,  'UTMN'
and 'UTMY'.   It is up to the user to quality control the input
units name,  conversion factor,  building,  tier,  and stack data.


C.3  TROUBLESHOOTING

     BPIP has been programmed to print a rather lengthy summary
file that details intermediate data for each sector/direction.
The data can include the direction of occurrence of a GEP related
value, the BH and PBW for a sector, and the number of tiers and
the building-tier numbers affecting a stack in a particular
direction.  The summary data should be reviewed when there is
need for more information concerning the data in the output file.
This will also help alleviate some concerns for those situations
where the user is unaware that a stack-building elevation
difference has been deducted from a preliminary GEP stack height
result or when there is a need to find out what tier or tiers may
be producing an undesired wake effect on a particular stack.
Therefore, the summary data should be used when troubleshooting
the results.
                               C-2

-------