-------
SECTION 7
USES OF RAM
RAM simulates pollutants from point and area sources in urban or rural
settings over periods of one hour to one year. The meteorological data can be
entered on cards, with one card for each simulated hour, or on magnetic media
by using option 8. General emission information can also be on the input
stream or from disk or tape files using option 9 or 10.
Point and area sources are specified by options 5 and 6. The locations of
receptors may be specified by the user (option 14).
The use of options 15 and 16 to locate additional receptors downwind of
significant point and area sources assists in determining locations of maximum
concentration. Since the resultant wind vector for the averaging period
selected is used to determine the direction of these receptors from the
sources, averaging times that contain significant wind shifts may result in
misleading averages. The user should note that when options 15 and 16 are
used to locate receptors downwind from significant sources, the locations for
these receptors will shift for each averaging period, dependent upon the
resultant meteorological conditions for each period. Therefore, receptors
with the same numbers will be at different locations for different averaging
times.
If the user .desires to cover a specific area so that pollutant patterns
are discerned, option 17 can be used to place additional receptors. The
pattern used is such that adjacent receptors are equidistant; this is referred
to as a honeycomb pattern. The distance between receptors is selected by the
user as are the boundaries of the area covered. If the boundaries are entered
as zeros, the boundaries are set to coincide with the boundaries of the area
source map array. Since the honeycomb receptors are set for each averaging
time, they may be different from one averaging time to another. The model can
be executed for an hour without receptors downwind of significant sources in
59
-------
order to obtain a list of receptors for good area coverage- Their coordinates
can then be input for a longer period run where it is desired to have
receptors 1n fixed positions.
It should be noted that concentration gradients may be very steep,
especially those due to point source plumes. Therefore, the addition of more
receptors will result in a more complex concentration pattern and some hot
spots. The user, when searching for maximum concentrations, must decide on
receptor spacing commensurate with resources, analysis time, and the purpose
of the project before including additional receptors.
For the typical run, hourly output would be desired, so option 24 should
be set for hourly output. If option 24 is not set, no hourly output is
printed. The use of option 40 to write partial concentrations onto a disk
file should be used only if additional computer analysis is intended using the
individual contributions of sources upon particular receptors. Computer
programs to perform this analysis must be written by the individual user to
suit his or her purpose.
Option 30 is checked only if option 24 is used to obtain hourly
summaries. The use of option 30 will print a summary page for each hour.
This summary provides the total concentration for each receptor, the
contribution to the concentration from all point sources, the contribution to
the concentration from all area sources, the contribution from all the
significant point sources combined, and the contribution from all the
significant area sources. Information that will be obtained by using option
24, but not option 30, are the contributions to the concentrations at each of
the receptors from each of the significant sources. The maximum of 10
significant area sources results 1n an additional page of output per simulated
hour. The maximum of 25 significant point sources results in three additional
pages of output per simulated hour (one page for every 10 significant point
sources or fraction thereof). Unless the concentration contributions are
specifically needed for analysis of contributions from particular sources,
option 30 should be zero to reduce the quantity of output.
•
Option 8 would be set to one to enter meteorological data as part of the
run stream rather than reading an external file using unit 11. Options 9 and
10 are set to one to enter hourly emissions. If the contribution at a
60
-------
receptor from particular sources is of interest, and if these particular
sources are not high enough to be included in the significant source list from
RAM, options 11 and 12 may be used to specify the sources of interest. If
option 11 or 12 is used to obtain concentration contributions for the
averaging time, it is desirable to leave option 30 off to obtain hourly
output.
Option 41 or 42 would not usually be employed unless concentrations at
each receptor are required for further analysis or are to be used with
graphics software to produce concentration isopleth maps.
61
-------
SECTION 8
COMPUTER ASPECTS OF THE MODEL
STRUCTURE OF RAM
RAM consists of three sections: preprocessing subroutines, main logic, and
output subroutines. Actual source code for the program is included in
Appendix A.
Figure 7 is a system flowchart for the model. Inputs are assumed to be
from disk files; outputs either go to disk or printer. Options and program
control are read from FORTRAN unit 5; processing is then controlled through
specifications in this file. If so specified in the control file, meteorology
and emissions can be obtained from units 11, 15, and 16, respectively. The
program uses two temporary files for intermediate work, but they are not
temporary in the JCL sense, i.e., they are not deleted at the end of the job
step and should be deleted by the user when they are no longer needed. As the
program calculates concentrations, they are averaged and written to units 1,
10, 12, and 13 as noted in the option list. Tabular output is written to unit
6 which is usually the default for printed files.
Section I (page A-22) contains preprocessing subroutines to initialize
variables. These subroutines are called to determine dispersion parameter values
as functions of stability class and source-receptor distance. The data produced
are coefficients and exponents for the various ranges of effective height of
emission and are used to determine maximum xu/Q (relative concentration normalized
for wind speed) for point sources and distance to maximum concentration for point
and area sources as functions of stability class and effective height of emission.
Section J-K (pages A-25 - A-31) process the emission data. Their principal
task is to set up the area source map array. The area source map array provides
correspondence between locations (referred to by coordinates) and area source
62
-------
PROGRAM
CONTROL
/
OPTIONAL /
I METEOROLOGY!
OPTIONAL
POINT
EMISSIONS
Ico!
AVERAGE /
NCENTRATIONsl
PROGRAM
OUTPUT
a TABLES..
Ico
HOURLY
iNCENTRATIONS I
UNIT! 10
/ PARTIAL
IcONCENTRATIONS
OPTIONAL
AREA
EMISSIONS
TEMP
EMISSION
DATA
MAIN
a
SUBROUTINES
TEMP
HIGH-
FIVE
TABLES
/ AVERAGING
I PERIOD
^CONCENTRATIONS^
Figure 7. System flow for the model
63
-------
number. Other tasks, such as ranking sources according to set criteria, are also
accomplished.
RAM expects hourly meteorological input data, including mixing height and
stability class. This and other values can be entered in the input stream or
from a preprocessed file. The auxiliary program RAMMET can process raw
meteorological data into the needed format using hourly surface data and
mixing heights from the National Climatic Data Center. Input consists of one
year of surface data (one observation per hour) and one maximum and one
minimum mixing height per day. RAMMET determines hourly stability and
performs interpolations to estimate hourly mixing heights. The output data
are organized to produce a single record for each day.
The output subroutines are OUTPT and OUTAV. OUTPT provides hourly
concentrations in micrograms per cubic meter, including the contributions from
significant point sources along with a summary table. OUTAV provides the same
information for the averaging period.
PROGRAM MODULES
The main structure is given in Figure 8. After initialization, the flow
is governed by three loops: calendar days, averaging time, and hours. A
minimum of one hour and a maximum of 8,784 hours can be processed by the
model. A brief description of the main program and subroutines follows.
MAIN - The main program determines Xu/Q maxima and distance to the point of
maximum for point sources as functions of stability class and
effective height of emissions. Coefficients and exponents relating
these two parameters to effective height of emission are determined
for various stability and effective height range combinations.
These coefficients and exponents, as well as ones for determining
the distance of the maximum concentration downwind from the edge of
an area source, are calculated for use in the emissions module which
processes emission inventory information for later use. An
important aspect of this is the construction of the area source map
array which allows a correspondence between any location in the area
source region and the number of the area source at that location.
All source coordinates in units convenient to the user (user units)
64
-------
RAM
Indicates
* BLOCK DATA
*
*
*
#
READ PROGRAM CONTROL
INITIALIZE SUBROUTINE SGZ
INITIALIZE SUBROUTINE SYSZ
INITIALIZE SUBROUTINE JMHREC
READ EMISSION DATA
READ RECEPTOR DATA
LOOP FOR CALENDAR DAYS
LOOP FOR AVERAGING TIME
READ METEOROLOGICAL DATA
CALL FUNCTION ANGARC
CALL GREG (ENTRY TO JMHREC)
CALL JMHHON
LOOP ON HOURS
READ HOURLY EMISSIONS
* CALL PT
- LOOP ON RECEPTORS
- LOOP ON SOURCES
— * CALL RCON
L * CALL SYZ (ENTRY TO SYSZ !
* CALL JMH54
* CALL JMHCZ
*— * CALL S1GZ (ENTRY TO SGZ'
* CALL JMHARE
* LOOP ON- RECEPTORS
_ * CALL JMHPOL
* CALL RANK
* CALL OUTPT
*CALL OUTAV (ENTRY POINT IN OUTPT)
STOP
Figure 8. Structure of RAM.
65
-------
are converted to internal units. An Internal unit is a length such
that any area source side length used in a given run can be
expressed as an integer multiple of an internal unit. The internal
unit is generally equal to the length of the side of the smallest
area in the emission inventory. The user must determine the
internal unit length and specify it in user units. Both point and
area sources are ranked according to expected impact at ground
level. The 25 point sources and the 10 area sources with the
greatest expected ground-level impact are listed. Also, the total
emissions from various physical heights for both point and area
sources are listed. This helps the user in determining area source
heights and the number to be used.
BRIEF DESCRIPTION OF SUBROUTINES
The subroutine and function descriptions that follow are called by RAM to
perform specific tasks.
ANGARC - This function determines the appropriate arctan of the east
resultant wind component over the north resultant wind component
with the resulting angle between 0° and 360°.
JMHREC - This subroutine and entry point GREC called by RAM determine
receptor locations downwind of significant sources based upon the
resultant meteorological conditions for the averaging period,
usually 3 or 24 hours. Plume rise and effective height of emission
are calculated. The distance of the maximum concentration is
determined as a function of the stability and the effective height
of emission in order to locate the position of a receptor. Two
receptors are generated for each significant point source, one at
the expected distance of maximum concentration and one at twice this
distance. One receptor is generated for each significant area
source at the expected distance of maximum concentration.
OMHHON - This subroutine called by RAM generates additional receptors within
a specified area in order to give adequate coverage of that area
with the minimum number of receptors. Receptors are placed
66
-------
equidistant from nearby receptors, resulting in a honeycomb array.
The distance between receptors is an input to the main program.
Proposed honeycomb receptors located closer than half this distance
to any other receptor are not included.
PT - This subroutine calculates concentrations from point sources.
Subroutines RCON and SYZ (ENTRY point in SYSZ) are called to
complete the computations.
RCON - This subroutine called by PT calculates X/Q, the relative
concentrations from point sources. This subroutine calls SYZ.
SYZ - This subroutine called by RCON calculates the standard deviation of
the concentration in the y- and z- directions. It employs the
Briggs urban dispersion parameters for urban conditions, and the
Pasquill-Gifford parameters for rural conditions.
JMH54 - This subroutine called by RAM generates tables of Xu/q/^ (relative
concentration normalized for wind speed) from area sources that
extend from a receptor to various upwind distances. A table is
produced for each area source height. One to three heights can be
used. This subroutine calls subroutine OMHCZ.
JMHCZ - This subroutine called by JMH54 calculates concentrations from
infinite crosswind line sources at a distance x upwind from a
receptor. To obtain the vertical dispersion parameter value az,
subroutine SIGZ is called.
SIGZ - This subroutine called by JMHCZ determines the value of the vertical
dispersion parameter az for a given upwind distance of a receptor to
the source. The parameter values for urban areas are those put into
equation form by Briggs. The parameter values for rural areas are
from Pasquill-Gifford.
JMHARE - This subroutine performs the integration along the line upwind from
the receptor to obtain the effect of all area sources along the
line. This is accomplished by finding the nearest and farthest
distance of each source along the path and calling subroutine JMHPOL
for each distance.
67
-------
JMHPOL - This subroutine called by JMHARE interpolates for a given distance
from the values in the tables generated by subroutine JMH54. This
yields the effect of an area source at the given height extending
upwind to this distance.
RANK - This subroutine arranges concentrations of various averaging times
into tables of the highest five concentrations for each receptor for
each averaging time (high-five tables).
OUTPT - This subroutine produces output concentrations in micrograms per
cubic meter for each hour for significant sources and for the
summaries.
OUTAV - This subroutine called by RAM gives concentrations for the averaging
period. Contributions and/or summary information are also generated
by OUTAV.
PROCESSOR PROGRAM RAMMET
If option 8 specifies that meteorological data should be expected
from a file, a peripheral program RAMMET can be used to generate the
file. RAMMET processes meteorological data for one year. The data
input consists of hourly meteorological records in the standard card
format 144 of the National Climatic Data Center and twice-a-day
estimates of mixing height (minimum and maximum). Hourly stability
class is determined using the objective method of Turner (1964)
based on Pasquill's technique (Pasquill, 1961). Shifts by only one
stability class are allowed for adjacent hours. Hourly mixing
height is interpolated from the twice-a-day estimates. Hourly
meteorological data of wind direction, wind speed, temperature,
stability class, and mixing height are written into a file with one
record per day for the entire year. Random numbers can be read from
a file or generated by the computer used. RANDU is a library
subroutine of UNIVAC 1110's MATH-PACK. (For use on other computers,
this call must be replaced by a call to a suitable random number
generator.) For regulatory applications, the file of random numbers
included with RAMMET Test 1 in the UNAMAP (Version 6) U. S. EPA,
1986 should be used.
68
-------
SECTION 9
INPUT DATA PREPARATION
In this section, the general input data requirements are listed. There are
18 record types in the input stream. Each record type consists of one or more
records.
- Table 2 describes the input data; in some cases an explanation follows the
entry.
TABLE 2. RECORD INPUT SEQUENCE FOR RAM
Record type
and variable Column Format Variable description Units
Record type 1
LINE1 1-80 20A4 80-character title
Record type 2
LINE2 1-80 20A4 80-character title
Record type 3
LINE3 1-80 20A4 80-character title
RECORDS 1-3. Each card image has up to 80 alphanumeric
characters. The Input title appears on all output and can
suit the user. Normal use has been to identify the user
and run date on card-image 1, the location and date of the
emissions data on card-image 2, and the location and dates
of both surface and upper air meteorological data on
card-image 3.
RAM-RECORD TYPE 4-14 variables
Record type 4
IDATE(l) — FF* 2-digit year
*FF is free format. «
-------
Record type
and variable
Column Format Variable description
Units
IDATE(Z)
IHSTRT
NPER
NAVG
IPOL
MUOR
NSIGP
NSIGA
NAV5
CONONE
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
Example multipliers are:
Starting Julian day
Starting hour
Number of averaging per-
iods
Number of hours in an
averaging period (com-
monly 24)
Pollutant indicator:
3, sulfur dioxide
4, suspended particulate
Model indicator:
1, urban mode
2, rural mode
Number of point sources
from which concentration
contributions are desired
(maximums25)
Number of area sources
from which concentration
contributions are desired
(maximum=10)
Additional averaging time
for high-five table. Usu-
ally 2, 4, 6, or 12.
Multiplier to convert user •
units to kilometers.
3.048 x 10~4 for feet to
kilometers; 1.609347 for miles to kilometers; 1.0 x!CT3for
meters to kilometers.
UNITS
FF
Number of user units per
smallest area source side
length. Should equal 1
if no area sources.
(Internal units)
70
-------
Record type
and variable
Column Format Variable description
Units
Z — FF Receptor height m
HAFL — FF Pollutant half-life sec
An entry of zero in HAFL will cause RAM to skip pollutant
loss calculations.
RAM-RECORD TYPE 5 - The values are for 50 different
options; 1 is used to employ the option and a zero
indicates non-use.
Record type 5
IOPT(1) 1 II
IOPT(2) 2 II
IOPT(3) 3 II
IOPT(4) 4 II
IOPT(5) 5 II
IOPT(6) 6 II
IOPT(7) 7 II
IOPT(8) 8 II
IOPT(9) 9 II
IOPT(10) 10 II
IOPT(11) 11 II
No stack downwash
No gradual plume rise
Use buoyancy induced
dispersion
Not used
Input point sources
Input area sources
Use emissions from previous
run. Data accessed from
Unit 9.
Meteorology data in input
stream. Otherwise, input
from Unit 11.
Read hourly point source
emissions (Unit 15)
Read hourly area source
emissions (Unit 16)
Specify significant point
sources
Option 11 will allow the examination of the individual
contributions to each receptor from each of the specified
sources. Both point and area sources may be specified.
(See IOPT(12))
71
-------
Record type
and variable
Column Format Variable description
Units
IOPT(12)
12
II
IOPT(13)
IOPT(14)
IOPT(15)
IOPT(16)
IOPT(17)
13
14
15
16
17
II
II
II
II
II
Specify significant area
sources
Not used
Enter receptors by
specifying coordinates
RAM generates receptors
downwind of significant
point sources
RAM generates receptors
downwind of significant
area sources
RAM generates honeycomb
array of receptors to
cover specified area
RAM generates a honeycomb array of receptors, placed
equidistant in staggered rows over a specified area. This
insures good area coverage. Candidate receptor positions
are checked against other receptors (either input or
generated by other options of the program) and if the
distance between the proposed receptor is less than
one-half the normal distance between honeycomb receptors,
then the candidate receptor is not added to the list. The
boundaries of the area to be covered by these receptors
are specified by the user.
IOPT(18)
IOPT(19)
18 II Input radial distances
to generate polar
coordinate receptor array.
36 receptors for each
distance.
19 II Not used
Printed output is controlled by the options that follow.
Options 20 through 36 are all options to omit output. In
72
-------
Record type
and variaDle
Column Format Variable description
Units
the program default, most of these options to omit output
are used since some of the options can generate large
amounts of printed output.
IOPT(20)
IOPT(21)
IOPT(22)
IOPT(23)
IOPT(24)
IOPT(25)
IOPT(26)
IOPT(27)
IOPT(28)
IOPT(29)
IOPT(30)
IOPT(31)
IOPT(32)
IOPT(33)
20 II Omit point source list
21 II Omit area source list and
map
22 II Omit emissions with height -—
table
23 II Omit resultant meteorology ---
data summary for averaging
period
24 II Omit all hourly output
(point, area, summaries)
25 II Omit hourly point contribu- —
tions
26 II Omit meteorology data on
hourly point contribu-
ti ons
27 II Omit plume height and
distance to final rise
on hourly point contribution
28 II Omit hourly area
contributions
29 II Omit meteorology data on
hourly area contributions
30 II Omit hourly summary
31 II Omit meteorological data on —
hourly summary
32 II Omit all averaging period
output
33 II Omit point averaging period —
contributions
73
-------
Record type
and variable
Column Format Variable description
Unit:
IOPT(34)
IOPT(35)
IOPT(36)
IOPT(37)
34
35
36
37
11
11
11
11
Omit area averaging period —
contributions
Omit averaging period
summary
Omit average concentrations —
and highest five concen-
trations table
Not used —
The remaining options control the flow of the program and
the amount of output. This is especially so for Option
40, in which a large file can be generated by employing
this option.
IOPT(38)
38
II
Set default option for
regulatory application
Option 38 sets a series of options and parameters when the
model is to be used for regulatory application.
IOPT(39) 39 II Part of segmented run
IOPT(40) 40 II Write partial concentra-
tions to disk or tape
(Unit 10)
The user will need to write the software to process this
output. Although it is unlikely that Options 39 and 40
will be employed on the same run, it is possible to do
so. However, the second and subsequent segments will not
skip over previously generated partial concentration
files. Therefore, unless Unit 10 accesses a different
file on each segment, any previously generated partial
concentration files will be overwritten.
IOPT(41)
41 II Write hourly concentrations
to disk or tape (Unit 12)
74
-------
Record type
and variable Column Format Variable description Units
IOPT(42) 42 II Write averaging-period
concentration to disk
or tape (Unit 13)
The output files generated by Options 41 and 42 are useful
only when the receptors are set for the run and not
varying from one averaging period to another. Therefore,
these options can be used with Options 14 and 18, but a
program termination will occur in trying to use Option 41
or 42 in combination with any of Options 15, 16, or 17.
IOPT(43) 43 II Write averaging-period
concentrations in card-
image format (80 bytes)
to Unit 1.
IOPT(44) 44 II Not used this version
IOPT(45) 45 II Not used this version
IOPT(46) 46 II Not used this version
IOPT(47) 47 II Not used this version
IOPT(48) 48 II Not used this version
IOPT(49) 49 II Not used this version
IOPT(50) 50 II Not used this version
RAM-RECORD TYPE 6-2 variables, 1 to 7 values.
Selection of the default option (Option 38) causes wind
exponents to be set to the default values for the
appropriate urban or rural cases. This record is still
required to input the anemometer height; all other data on
the record will be ignored when Option 38 is set.
Record type 6
HANE — FF Anemometer height m
PL(I) — FF Wind speed power law
exponents
75
-------
Record type
and variable
Column Format Variable description
Units
RAM-RECORD TYPE 7-9 variables, 8 values (one of these
records for each point source). This is used if Option
5s! (the user inputs point sources) and Option 7=0 (no
emissions are entered from a previous run).
Record type 7
PNAME(I.NPT)
1-12
3A4
12 character point source
identification
East coordinate of point
source (user units)
North coordinate of point
source (user units)
Sulfur dioxide emission
rate
Emission rates for pollutants other than sulfur dioxide
and particulates may be substituted. If substitutions are
made, changes in data statements are necessary in order to
have the proper pollutant names on the printed output.
SOURCE(1,NPT) 13-20
SOURCE(2,NPT) 21-28
SOURCE(3,NPT) 29-36
F8.2
F8.2
F8.2
g/sec
SOURCE(4,NPT) 37-44 F8.2
SOURCE(5,NPT) 45-52 F8.2
SOURCE(6,NPT) 53-60 F8.2
SOURCE(7,NPT) 61-68 F8.2
SOURCE(8,NPT) 69-76 F8.2
Particulate emission rate
Physical stack height
Stack gas temperature
Stack inside diameter
g/sec
m
K
m
Stack gas exit velocity m/sec
To indicate the end of point source records, the word
"ENDP" is placed in record columns 1 to 4.
RAM-RECORD TYPE 8-7 variables, 6 values (one of these
records is required for each area source). This is used
if Option 6=1 (the user inputs area sources) and Option
7 = 0 (no emissions input from previous run).
76
-------
Record type
and variable
Column Format Variable description
Units
Record type 8
ANAME(J.NAS) 1-12 3A4
ASORC(l.NAS) 13-22 F10.2
ASORC(2,NAS) 23-32 F10.2
12 character area source
identification
East coordinate of SW
corner of area source
(user units)
North coordinate of SW
corner of area source
(user units)
ASORC(5,NAS) 33-42 F10.2 Side length of area source —
(user units)
Note that ASORC(5,NAS) - side length, is read out of order
to conform with the existing order of IPP emissions data.
ASORC(3,NAS) 43-52 F10.2 Sulfur dioxide emission -g/sec
rate for entire area
ASORC(4,NAS) 53-62 F10.2 Particulate emission rate g/sec
for entire area
Particulate Emission Rate for entire area is a total rate
for the entire area. It 1s later transformed into
-1 -2
gm/sec m . As with point sources, emission rates for
other pollutants may be substituted for sulfur dioxide and
particulates, with appropriate name changes made in the
data statements to modify titles on the printouts.
ASORC(6,NAS) 63-72 F10.2 Area source height m
Although only one pollutant can be considered for a
given run of RAM, both of the entered emission rates are
listed in the output. One of the emission rates may be
left off and will appear as zeros in the output.
77
-------
Record type
and variable Column Format Variable description Units
Area sources can vary in size, but certain
requirements must be met. There must be a definable
internal unit such that the side length of all other area
sources is an integer multiple of the side length of this
internal unit. For example, if an emission inventory
consists of area source squares having side lengths of 1,
2.5, 5, and 10 km, the internal unit must be chosen to
equal 0.5 km. It is better to conduct emission
inventories so that area source squares have side lengths
that are multiples of the side lengths of the smallest
area source squares. Also, if a grid is constructed of
unit squares, squares having side length of one internal
unit, the boundaries of all area sources must coincide
with lines in that grid; there can be no overlap of one
area source over another. Although these statements may
seem restrictive, the area source entries to RAM .are quite
versatile. Concentrations from area sources are
calculated by performing computations for each area source
encountered in proceeding from a receptor in the upwind
direction until the upwind boundary of the area source is
encountered. If there are large areas (larger than the
unit square) of zero emissions within the rectangle that
includes all area sources (area source region), it is
desirable to define these as area sources with zero
emissions in squares as large as possible. This will
result in considerable savings in computer processing
time.
If the height of emission is the effective height of
the area source at a wind speed of 5 m/sec, and if the
physical height of the source is a set fraction of this
value, which is the same for all area sources, it will be
78
-------
Record type
and variable Column Format Variable description Units
possible to consider the variation of effective height of
area sources with wind speed in RAM. Otherwise, the
fraction will be 1.0 and it will be assumed that the input
height of emission is the effective height for all wind
speeds.
RAM-RECORD TYPE 9-2 variables. This record is required
only if Option 11 is used (i.e., the user will specify
significant point sources).
Record type 9
INPT 1-3 13 Number of user specified —
significant sources
The maximum number of user specified significant point
sources is 25 - this number must be non-zero.
MPS(I) 4-78 13 INPT point source numbers
the user wants considered
significant (max = 25)
There will be as many sources in this list as indicated in
INPT.
RAM-RECORD TYPE 10-4 variables - 4 values. Information
for area sources. This record is required only if Option
6 is employed (user will input area sources).
Record type 10
FH — FF Fraction of area source —
height which is physical
height
XLIM — FF Distance limit on inte-
gration for area source
(user units)
The distance XLIM should be equal to or exceed the
greatest possible distance from a receptor (including
receptors generated by RAM) to the farthest corner of the
79
-------
Record type
and variable Column Format Variable description Units
area source region for this run, but cannot exceed 116
kilometers.
NHTS — FF Integer number of heights
to be used for area
sources (min=l, max=3)
HINT — FF Height(s) for area source m
integrations. Same
number as NHTS.
RAM-RECORD TYPE 11-1 variable - 1 or 2 values. This
record is required only if record type 10 is used.
Record type 11
BPH — FF Breakpoint heights between m
area source heights
These values are to be used as boundaries between the
specified area source heights used for calculations. If
.only one area source height is to be used, only one BPH
value is entered; it should be greater than any area
source height of the area source data. If NHTS is 2, the
single value for BPH should be between the two HINT
values. If NHTS is 3 and the three HINT values are, for
example, 15, 25, and 35; the two values for BPH might be
20 and 30.
RAM-RECORD TYPE 12-2 variables - 1 to 11 values. This
record is required only if Option 12 is used (i.e., user
specifies significant area sources).
Record type 12
INAS 1-3 13 Number of user specified
significant area sources
(max=10)
MAS 4-33 13 INAS area source numbers
the user wants to
consider significant
80
-------
Record type
and variable Column Format Variable description Units
RAM-RECORD TYPE 13-4 variables. Used if Option 8=0
(meteorological data will be Input on Unit 11).
Record type 13
ISFCD — FF Surface Met. Station
Identifier
ISFCD is a 5-digit Identification of the meteorological
tape to be used. For tapes generated by the National
Climatic Data Center, this will normally be the surface
station number.
ISFCYR — FF Year of surface meteoro-
logy data
IMXD — FF Upper-air Station
Identifier
IMXYR — FF Year of mixing height
data (2 digits)
RAM-RECORD TYPE 14-3 variables - 7 values. This record
1s used with Option 18 (input of polar coordinates) if the
user chooses to Input receptor positions according to a
radial distance from a coordinate source.
Record type 14
RADIL(I) — FF One to five radial dis-
tances (user units)
RADIL(I) 1s one to five radial distances (with the
remaining distances entered as zeros) centered on any
location . Each radial distance generates 36 receptors at
each radial distance at azimuths of 10 to 360 degrees.
CENTX — FF East coordinate about —
which radials are cen-
tered (user units)
81
-------
Record type
and variaole
CENTY
Column Format Variable description
FF North coordinate about
which radials are cen-
tered (user units)
RAM-RECORD TYPE 15-3 variables. If Option 14 (user
specifies receptor coordinates) is used there will be one
record for each receptor that the user specifies.
Record type 15
2A4
RNAME(I)
1-8
RREC
SREC
9-18 F10.3
19-28 F10.3
8 digit alphanumeric
station identification
East coordinate of
receptor (user units)
North coordinate of
receptor (user units)
Both coordinates of receptors should be positive.
Receptors may be either inside or outside the area source
region. A record with "ENDR" in columns 1-4 signals
that the receptor list has been completed.
RAM-RECORD TYPE 16-5 variables - 5 values. This record
is needed only if Option 17 is used to generate additional
receptors for area coverage.
Record type 16
GRDSPU
HRMIN
HRMAX
HSMIN
HSMAX
FF Grid spacing between
honeycomb receptors
(user units)
FF Minimum east coordinate
(user units)
FF Maximum east coordinate
(user units)
FF Minimum north coordinate
(user units)
FF Maximum north coordinate
(user units)
Uni
82
-------
Record type
and variable
Column Format Variable description
Units
If HRMIN, HRMAX, HSMIN, HSMAX are entered as zero, the
boundaries considered for these receptors will be the same
as those of the area source region. However, if no area
sources are input and if honeycomb receptors are to be
generated, this record must have boundaries included to
provide the bounds for receptor generation.
RAM-RECORD TYPE 17-2 variables. This record is needed
only if Option 39 is used (i.e., this run is part of a
segmented run).
Record type 17
I DAY — FF
LDRUN — FF
RAM-RECORD TYPE 18-8
Meteorology. Used if Option 8
Record type 18
JYR
DAY1
JHR
IKST
QU
QTEMP
QTHETA
QHL
FF
FF
FF
FF
FF
FF
FF
FF
Number of days previously
processed
Last day to be processed
in this run
variables - 8 values.
= 0.
Year of meteorology
data (2 digits)
Julian day of meteoro-
logy data
Hour of meteorology
data
Stability class for this
hour
Wind speed for this hour
Ambient air temperature
for this hour
Wind direction for this
hour (degrees azimuth
from which winds blows)
Mixing height for this
hour
m/sec
K
deg
m
83
-------
Emissions Data
In the emissions file either point sources, area sources, or both may be
included. When both types are included, the user still has the option to select
one or both source types. Any rectangular coordinate system is allowed provided
that the positive quadrant is used, that is, all coordinate values are positive
and a single coordinate system is used for both point and area sources. The
scale of the coordinate system is arbitrary. An option is also available in
which the user can specify radial coordinates of receptors by specifying up to
five radial distances.
To account for variability in emission rates with time in order to simulate
emissions most accurately, it is possible to enter new emission rates for each
of the sources for each simulated hour using Option 9 and/or Option 10. In
order to employ this option, emissions for each source must have been determined
and written on two tape or disk files (one for point sources and one for area
sources) with one record for each hour that is to be simulated. The emission
information from RAM is still required and must be a "normal" emission rate in
order that the exit velocity of the source can be scaled up or down in
proportion to the hourly emission rate. Also, all permanent information about
sources such as coordinates, physical stack height, and diameter are furnished
on record type 8.
Meteorological Data and RAMMET
As noted previously, meteorological data for RAM can be furnished in either
of two ways: 1) records containing the meteorological data for each simulated
hour (one record per hour), or 2) magnetic disk or tape output from program
RAMMET.
Meteorological data output from RAMMET may be used as input to RAM. RAMMET
requires one year of hourly surface observations and one year plus two days of
daily maximum and minimum mixing height data. The hourly surface data normally
on magnetic tape in card image format, CARD DECK 144, can be obtained from the
National Climatic Center in Asheville, NC.
All required surface data for each hour must be included on the tape;
therefore, all data flagged as missing by RAMMET must be accounted for,
84
-------
determined, and included in the data set before proceeding. The data used from
the surface observation tape for each hour are: year, month, day, hour, cloud
ceiling code, wind direction, wind speed, temperature, and opaque cloud cover.
The mixing height data is expected in card image format for RAMMET, one card
per day containing the minimum and maximum mixing height for that day.
When using meteorological data from RAMMET, there are greater restrictions
on certain input parameters than there are when meteorological data from cards
are used. Using RAMMET data, one averaging time must be used, and it must be
evenly divisible into 24. The start hour must be 1. Periods must be sequential
in the time series. The starting day may be any day included in the file. The
file will be positioned to the correct start day.
One averaging time must be used when using meteorological data with the run
stream, but it can be any integer value from 1 to 24. The start hour can be any
hour from 1 to 24. Day and hour values must be entered correctly and must be in
sequence within each period. Data from period to period needs to be in sequence;
for example, calculations for two 2-hour periods can be done first: day 181,
hour 24, followed by day 182, hour 1.
85
-------
SECTION 10
EXECUTION OF THE MODEL AND SAMPLE TEST
RAM produces an error-free compile on Unlvac EXEC 8, IBM MVS, and DEC
VAX/VMS computers with comparable output results.
Job Control Language (OCL) for model execution on a Univac EXEC 8 system
would have the following form:
@RUN,R/R JOB-ID, etc.
@ASG,A MODELS*LOAD
@XQT MODELS*LOAD.RAM
(Input records)
@FIN
On an IBM system under MVS, the JCL would be as follows,
//OOBID JOB (PROG,ACCT,OTHER),TIME»1
//RAM EXEC PGM=RAM,TIME»(,20)
//STEBLIB DO DSN-USERID.MODELS.LOAD,DISP*SHR
//FT06F001 DD SYSOUT-A
//FTD5F001 DD *
(Input records)
//
Sample Test
The example given here uses one year of meteorological data processed by
RAMMET, and uses the default option for regulatory application in the urban
mode. Because the default option is exercised, the following features apply:
86
-------
• urban dispersion parameters are used,
final plume rise is used,
• bouyancy-induced dispersion is accounted for,
• urban-profile exponents of .15, .15, .20, .25, .30 and .30 are used,
• stack-tip downwash is calculated,
• calms are processed according to regulatory guidance,
• options 7, 8, 11, 12, 15, 16 and 39 through 43 are set to zero, and
. output options 23 through 35 are set to 1.
The input stream is given on the following page. Four averaging periods
are requested with a high-five concentration table for each. It should be noted
that the default option overrides user input in most cases, for example, NAV5
is given as 6 in the run stream, but since the default option does not allow a
fifth averaging time, the request is overridden.
Hardcopy output produced by RAM follows the run stream. Notations are made
where appropriate to illustrate the application.
87
-------
3RUN,0/R 12EDK/80,(ACC7. NUMBER 1/BDU,2DB/XIMRT, 45
SYM,U PRINTS,,?D(HPR.
9ASG.A CINDAX2.
9USE 11,CINOAY2.
9A30,A EOB«USAMAP.
9XQT «OB*UNAMAP.RAMABS
SAMPLE TEST USING 1364 CINCINNATI-DAYTON DATA. D. BRUCE TURNER
EMISSIONS: TEST CITY, 1973
SFC MET DATA: TEST CITY 1973; UPPER AIR: TEST CITY 1973
54, 001, 01,366,24, 3,1, 5,10, 6,1.609344, 2. ,0., mOO.
10041111001131110090000000000000000171111114567890
PLANT 1
PLANT 2
PLANT 3
PLANT 4
PLANT S
PLANT 6
PLANT 7
PLANT 8
PLANT 9
PLANT 10
PLANT 11
PLANT 12
BNOP
AONE
ATWO
ATHRSE
APOUR
APIVB
ASIX
A3EVBH
AEIGHT
ANINB
ATEN
AELEVEN
ATUELVE
ATHIRTKEN
APOURTESN
AFIFTEBN
ENOA
.75, 25.,
13., 17.
93814,64,
RKCEP 1
RECEP 2
3
4
S
6
7
8
9
10
11
12
13
14
IS
16
17
18
19
20
21
22
23
24
25
26
27
ENDR
0PIN
99
99
99
579
575
571
571
579
567
564
577
576
580
583
574
570
574
576
578
578
574
570
574
578
580
582
580
582
580
582
3, 11
93815,
^
0
.
.
.
•
.
,
.
.
»
,
.
.
.
•
,
.
•
.
m
.
.
,
•
,
.
50
25
25
75
50
14
70
45
75
10
0
0
4406.75
4405.25
4407.00
4402.25
4403.25
4400.89
4407.50
4401.35
4400.70
4412.00
4400.90
4398.00
4400.
4400.
4400.
4400.
4402.
4402.
4404.
4406.
4406.
4406.
4406.
4404.
4404.
4402.
4402.
232.365
150.465
19.005
81.060
26.145
2.56
36.43
33.64
38.8
299.5
16.74
226.2
4.
2.
2.
2.
2.
4.
4.
2.
2.
2.
2.
2.
2.
2.
2.
13.335 82
57.005 76
3.255 25
28.350 40
5.145 18
0. 26
0. 48
0. 26
0. 6
0. 93
0. 13
0. 93
1.25
3.05
6.25
8.85
3.15
0.00
4.25
2.60
3.10
2.76
.83
1.66
1.90
.51
1.48
.9
.2
.9
.8
.3
.5
.8
.5
.
,
.1
.6
513.1
464.3
477.6
499.8
533.2
SOS.
464.
428.
6S4.
405.
506.
483.
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
3.5
3.2
1.0
2.3
0.6
1.04
3.05
1.68
.79
4.88
1.37
4.38
10.
10.
12.
15.
10.
0.
IS.
10.
12.
20.
20.
20.
20.
20.
20.
13.7
12.5
15.3
17.6
14.7
3.81
18.6
5.02
24.89
12.59
4.23
12.59
.,15. ,20.
64
566.00
564.00
572.
574.
576.
57S.
580.
571.
573.
575.
577.
579.
572.
574.
576.
578.
580.
571.
573".
575.
577.
579.
572.
574.
576.
578.
580.
4405.0
4401.5
4400.866
4400.866
4400.866
4400.866
4400.866
4402. S98
4402.598
4402.598
4402.598
4402.598
4404.330
4404.330
4404.330
4404.330
4404.330
4406.062
4406.062
4406.062
4406.062
4406.062
4407.794
4407.794
4407.794
4407.794
4407.794
-------
P 55
M UJ
1 s
§ u.
*•
*:
MO -a in
m c in co -
H"* * R
J°z 3! S
do: — o a
< ui ui o
§iu u D.
a iu iu
in
in M z »J
5M -J a H
o ui M u.
on
? t
M
IU U
i I
°' i
2
«
a
i
a
§
y«:
3s;
I;!
Z ui
Ife*-
D uj ••
I M IU
!iS =
PERIODS
ARE
CE
I
go -i
O> —I
AREA
24-HOUR
EA SOU
ALLEST
t- at
y> gj
i r iu
5v> i-
UJ
o uj a c
in >- iu o
PERIODS
S
i >
e,
OH
IU Q.
§O
Ul
it n
§
P '
2
SP
iHtHOOOOOOKI
§
3
§
E
o
§
I
IU Ul 4)
I" OT i-l iH
Z HI
5 3 H- H-
Df Of HI M
iu Z Z
in x 5 5
»• S. H in in • •
in &° HI in in in in
IUOTCZMHIIUIU
UiuOw£CCJtJ
K U tt Ul IU tt tf
i in o in DC iu u in vi
;. wz u. OK :
W
IU
§ S
: B uj i
i z a.!
I M I I
:3gi
ii5;
8u.
M O
K>
a <
i tx
S3
DZ
Ul
IU
10
!g^
u. H-
M a.
< a.
iu3
Q: —
O DC (O I
I CL < M I
I M O Ul
: in u
ooo
H-WJH
as
§0
u
«n .
xz
UO
->-S
M HI HI
•HOJW.fr
in'
• o a u u
»-<5UJUJI
Uiiuiua.
i a- o >H e\j KI
- L - . v -
5OOOU.OIUHI KIO
a aoaa:3<~z
is
si
g«
££
a. M
s
a
Ul
a
m
89
-------
9 »
U. * I
.
5 u. * -oiA-ro-
03 * r» i-t IH 1*1
C i-l f-l I-l
o co(0.ti-icMco-a
£X OO-OOlOCT-Oi-com.?
• O u!<»>^«\JeOeMi-!iHeOi-iff>l^
Zoe in*o»«o»-» -i |H i-l i-l i-t |H |H CJiH iH
Ul
ii E ooooo%*iftcOi>eOf^j->3'-o-3-in-3-
u E eooeooeooooo
Ul
a
SEC
10 M
Sj
g.
Ul
V)
_ CO -J
Ul < M <
-i >• lu M
ui H t fc m ft
K X < p 5 -HI P •
«n aaooeo z a
MX tr u x ox
-j p «pp u
gSS^zi^g
. SI
• M > HI
S > i§ t
a MO M
« t- M X
o — >- f-
» (H CM M |4
V> M Z Z
Z -H-~-
§M
Sgl «
—• 3 a. o
i — < a:
ui PS
a. ui o
i < O- K
;5«f°5
ao a OT .:
||M^
i§°
m u S < uj T t o
is i o
issi
, u
: v> i
a 3
H,g°
HO^Ii
it^2J5Hg5?g5l}-§«!,S"§:t:p "..2:'!5».2>.PSr5B!l|«3S Sfe^"gl,
. —
So: a o: i
Ul IU UJ (
<8^a'=*
K r iu_i o u j
iy m nt iii ui MI m
H H H K t- H >-
s^sni'
Ul -I O Ul -I
oc < x z o. i
a. < M u.
i£555a 3
Ul U.
I 1U IU W IU U Ul QC U UJ U Ul IU Ul U UJ IU
UIUIUIUIUIUIUI UIUIUIUIUIUIUIUIIUO Ul
oooaooo OQQOOQQoaZ in
i-i w to .» irt so r- cot>ei-icMKi^in«N
(MAICMCMCMCMCM cjcgmrrtKiMmmMro
< >-1
M Ul Ul Ul
5 «
in
N
in Kt
in IH i
t cam No»i-4^>«4>«0
Z — aacoaoo
-------
ooooo ooooooooo
(till I I I I I I I I I
«OO»COOOHeOKIO>r««OIAiH
s2
G c
M ^
M (S
r.
W
a
U. IU IU
Ul X £
ooooooooooooooo
ooooooooooooooo
O O CM IA O IAOCVIOOOOOO
I-l i-l I-l i-l rH Hi-4i-l(MIMCvl(M«l7 •••••••••••••••
I CM (VI CM, CM (VI
U yl '
IU > i
; ^-
I <
I K
|H IA
li-4 1^ i
SO« I
i-l i
I IA <
, in .
' K M (M i
1 O» CO f* I
M - o i-t ni
OOOOOOOOOOOOOOO
ooooooooooooooo
ooooooooooooooo
ooooooooooooooo
<*• o
o- o o
iH O IA •*
«55
£uio
M U O
iScJ
s
IU IU Z
Z Ul IU Ul IU
e -o -o w
•0 <« en
: in
O E
O IA IA
o o *
* O U.
S-0 UJ
tO CJ M
M CM H
w. >- n 2 >
§ bs
M
-------
ooooooooooooooooo
ooooooooooooooooo
ooooooooooooooooo
MMMMMi-tMi-IMMMiHi-IMr-IMM
ooooooooooooooooo
a-
f* 1** rt ^1 ^4 ^3 ^ ^^ *"4 ^ P^ *•$ *!f ^ o o CM in
* in « M m ro «
i i i i i i i i i i i i i i i i "V
<*i-<'»J{"*»*'ft>'J'O'1<<*>H>*H O t-
• 0 I/)
l-l • IU
IH in 2
M £
§ §s
J- . o IU
S ii m ii •
Of i-l « f»
tn o r 5
nc _ tu 3 in .
UJ 2 — t- II _)
tl 5S-5 z
a M z cc
in x z u. — iu
ZM C: i-i - E Oh-
UJ Z M O Z
UlP tft ^ H -1 O M
°K SEg2 oz
IU O -J 03 M 0 HI
> u. u — iu v> -a-
=2 fea'S-'S
SS SSS^Sz?
U W ^ W M W ^C
uui X J OT z S C IE
5 m o >- o S «o CB
O X Z M <
wg Sfe£52 n.
^ iu (9 in B in <
UIU1KI l-l M ID 3 £
SSllOSIKZOUJ
— U. (J Z HI 0 U
— •• »5
<(UXH-DeSiUHia>5
ZM2x5^oamin
w OT »• (9 H- re IO
Z HI IU X b <
uixcniuxiaoiu iu
i-i luxPHiinuiiof
in in iu a x <
UIV>IUZX«C3<
u < u u iu o s
ga-JaujujcK(Oo:u.
SuSso-S o
u. O o f- o: <
vtt-x
9> M
lH
^«
~> a
a >-
dg
Ik M
in ~
2S
S£
U
>- -
in
« M
«• co
M m
03 O-
m
o>
OH STATIONUSFCD)
FROM STATIONdMXD
ES
J
-------
§
OOOOOOOOOOOOOi
00000000000001
OOOOOOOOOOOOOI
IMMMMMMMMMHI-IMHIMMMM
93
-------
a
•f
CM
g
t-t
at
iu
0.
g
M O N «0 » O i-t M I
CO •• <
IU OT O
UJ If)
leeoooooooeooooi
PMWMMI-lMMIHMMMI-tMI-ll
94
-------
CM CJ CJ CM CM CMCMCM CM CJ (M CJ CM CM CM
IT! fotmiOi-ICMKtCMCMCMCMCMCMKI dKICMCM*H IH CM CM CM CM CM CM
i-liH-ICMCM>-ti-ICMCMCMCM
CM |H CM CM IH CM (M CM I-l CJ CJ CM CVI
•* (MIO CM CJ CJ pH r-l i-l CJ r-l r-l CMCMiHCMiHCMCM-ll-ICJK1 CM CM CJ
I CO •»• IH I
I 10 CM IA <
•<^ CM"~"«M" CM CM CMOJCMCMCMCMCM^i-l'eM
UIO! CM CM 1-4 CM CM r-4 rH iH CM PO CM r-l CMCJCMCMCMi-HIOlHKIrH i-l
Br
(A iHCMCMCOlOCMl-tCMCMMinpni-ICMCMfOr-ICMCMCMr^CJCJCMCMCJ
O *
CM CM CM CM CM CM 1-4 CM CM
IU iH i-l iH CM M m Kl CM i-l CM CM M CM mcMCMlHCMCMCMCM
HI
U. i-l f« CM CM CO W «M l-l ««-cr«4-«>«9'
oaoeooeeeooeeeooeeeeoecaeooca
eoooooeeeoooooooooooooooooo
95
-------
CM Cvl eg eg CU «t ro m r-< it it Kt eg 1-1 eg 1-1 eg rH
O O o u
I I .,„
3 o S S SJI
s s " =-=:
(9 O Ift tA Kl I
5 I- ***•
§U IA Kl r-l .
U « tA O> I
•• "• i
CU(M CJ (U CSICMM MOJCJ
ft eg KI cu KI CM CM c
U (J U
i9>oeg i-l It K)
cgcg NNcvicvi
AJCM MCM
« e iv cj co •» « * « r o « * M i-l 0« O (0 i* IA O» W « M O rv ,*• o •f -O t OJ r-l rt |H r-l r-t fH r1
H
CJ eg r-i io 1-1 Kt IA o> <0 n co m N •« m e rs o « e> f-i
M CM rt IA r» f» » M «0 * O !•» CO I*- » CM !•« •« IA 1^ CO
-------
IA
U U UUU UU O UU U U UUUU
arocoin>i-ir»(M^meoK^rotfK>i-iiHoinKVi-ii-4.^i-i- in
II
•» u
g £
§ S
Q &
—
~ « U.
~ * <
a a o « » -f a « « * a <* « « in«tn4>4>4'»u)in^>
o>««ooKo-om«jt^
U UUUU
-T.I
geh>N
Jn3£
«5»4oo
Soeeoeooooeoeeooooooeeooooo
K.
SS5K in
wift mift in
in
8
ui
ac
97
-------
CMCMCM«MCMCMCMCMCMCM«Mc*coi-iiHinin«*^«f M IO
p E 2 u u u u uuuuuuuu u u u u o u
u — o tnin-ir»cM>o^>M>cMmcoin>oroor«coiA^i'>iAco^inot-i
o u >-> 1-1 ro m o-
w M
1 I ^
CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM *eO'*o
en ^ coai'iiHcotHa>co(>t«-0t CO UJ * f» iH i-l O» Mf»>>0ecoocMi>«0^i-iito>coi^r4ao>«MiA»i-i^eChtn^>e> <
M ^*4it
-------
SECTION 11
ERROR MESSAGES AND REMEDIAL ACTION
RAM can generate up to 22 error messages, some of which cause program
termination. Table 3 lists each message along with error description and
suggested corrective action.
~ TABLE 3. ERROR MESSAGES AND CORRECTIVE ACTION
MESSAGE:
NSIGP (THE NUMBER OF SIGNIFICANT POINT SOURCES) WAS FOUND
TO EXCEED THE LIMIT (25). USER TRIED TO INPUT x SOURCES.
******** EXECUTION TERMINATED ********
DESCRIPTION: The maximum number of significant point sources allowed
by the program is 25.
ACTION:
Modify the value input in record type 9 to be 25*
MESSAGE:
DESCRIPTION:
ACTION:
NSIGA (THE NUMBER OF SIGNIFICANT AREA SOURCES) WAS FOUND
TO EXCEED THE LIMIT (10). USER TRIED TO INPUT x SOURCES.
****EXECUTION TERMINATED ****
The maximum number of significant area sources allowed by
the program is 10.
Modify the input value to be 10.
MESSAGE:
DESCRIPTION:
ACTION:
USER TRIED TO INPUT MORE THAN x POINT SOURCES. THIS GOES
BEYOND THE CURRENT PROGRAM DIMENSIONS.
The maximum number of point sources is 250.
Reduce the number of point sources to comply with the
maximum of 250.
99
-------
MESSAGE:
USER TRIED TO INPUT MORE THAN x AREA SOURCES. THIS GOES
BEYOND THE CURRENT PROGRAM DIMENSIONS.
DESCRIPTION: The maximum number of area sources is 100.
ACTION: Reduce the number of area sources to comply with the
maximum of 100.
MESSAGE:
DESCRIPTION:
ACTION: ~
DIMENSIONS TOO SMALL TO HOLD ARRAY x BY y.
The internal dimensions of the area source array are
(25,25) for internal units.
Recompile with dimensions larger than (25,25).
MESSAGE:
DESCRIPTION:
ACTION:
AREA SOURCES, UNITS OR SIDE LENGTHS SPECIFIED INCORRECTLY
ERROR ON EAST MAXIMUM BOUNDARY.
The area source east boundary extends beyond the east
boundary of the modeling region.
Reduce the area source size, increase the size of the
modeling region, or recompile the program with larger
dimensions.
MESSAGE:
DESCRIPTION:
ACTION:
AREA SOURCES, UNITS OR SIDE LENGTHS SPECIFIED INCORRECTLY
ERROR ON NORTH MAXIMUM BOUNDARY.
The area source north boundary extends beyond the north
boundary of the modeling region.
Reduce the area source size, increase the size of the
modeling region, or recompile the program with larger
dimensions.
MESSAGE:
SOURCE, x, IS ALREADY LOCATED AT POSITION (,x,). CHECK
SOURCE x.
DESCRIPTION: Two sources are collocated.
100
-------
ACTION:
Verify the input stream and separate or combine the
collocated sources.
MESSAGE:
DESCRIPTION:
ACTION:
MESSAGE:
DESCRIPTION:
ACTION:
AREA ARRAY IS TOO WIDE FOR PAGE SIZE, THEREFORE WILL NOT
BE PRINTED.
The area source array cannot be printed due to its size.
If a printout is needed, reduce the size of the area
source region.
***ERROR—USER TRIED TO SPECIFY, x, SIGNIFICANT SOURCES
BUT IS ONLY ALLOWING, y, TOTAL SIGNIFICANT SOURCES IN
THIS RUN. RUN TERMINATED-CHECK INPUT DATA.
The number of significant sources exceeds the total
significant sources specified.
Verify consistency of significant sources in the input
stream.
MESSAGE:
DESCRIPTION:
ACTION:
(MPS) THE INPUT SIGNIFICANT SOURCE NUMBER WAS FOUND TO
EQUAL ZERO - USER CHECK INPUT DATA.
The number of significant sources exceeds the total
significant sources specified.
Verify consistency of significant sources in the input
stream.
MESSAGE:
DESCRIPTION:
ACTION:
THE INPUT LIMIT OF MAXIMUM DISTANCE FOR AREA INTEGRATION,
x, CONVERTS TO y KM WHICH EXCEEDS STORAGE LIMITATIONS.
UP TO 116 KM DISTANCES ARE ALLOWED.
The maximum distance for area source integration was
exceeded.
Modify the limit such that the distance does not exceed
116 km.
101
-------
MESSAGE: ERROR IN SPECIFYING SIGNIFICANT POINT SOURCES.
DESCRIPTION: The significant point sources were not input properly.
ACTION: Verify the input stream and correct as needed.
MESSAGE:
DESCRIPTION:
ACTION:
DISAGREEMENT OF IDENTIFIERS- SURFACE DATA FROM CARD:
STATION = x, YEAR = x. FROM MET FILE: STATION = y, YEAR
= y. MIXING HEIGHT DATA FROM CARD: STATION = x, YEAR = x.
FROM MET FILE: STATION = y, YEAR = y.
Header information in the meteorological file is not in
agreement with that specified in the input stream.
Modify the input stream or replace the meteorological
data set to effect a match.
MESSAGE:
DESCRIPTION:
ACTION:
****USER EITHER TRIED TO INPUT MORE THAN 180 RECEPTORS OR
ENDR WAS NOT PLACED AFTER THE LAST RECEPTOR CARD.
********EXECUTION TERMINATED*******
The maximum number of user-specified receptors is 180,
and a record with ENDR in columns 1-4 is required to
signify the end of receptor input.
Modify the input as needed.
MESSAGE:
DESCRIPTION:
ACTION:
NO RECEPTORS HAVE BEEN CHOSEN.
Either user-input or program-generated receptors are
required. Neither type was specified.
Correct the input stream to specify receptors.
MESSAGE:
DESCRIPTION:
ACTION:
DAYS DO NOT MATCH, IDAY » x, IDAYS = Y.
If the run is part of a segmented run, the starting day
must match the day in the prior run.
Modify the input stream to effect a match.
102
-------
MESSAGE:
DESCRIPTION:
ACTION:
RUN TERMINATED. CAN NOT WRITE FILES (OPTIONS 41 OR 42)
MEN HAVING RAM GENERATE RECEPTORS FOR EACH AVERAGING
PERIOD, (OPTIONS 15,16,17).
Options 41 or 42 are not compatible with options 15,
16, 17.
Modify the input stream to ensure compatibility.
MESSAGE:
DESCRIPTION:
ACTION:
DATE ON MET TAPE, x, DOES NOT MATCH INTERNAL DATE, y.
The Julian date calculated by RAM does not match the date
in the input meteorological tape.
Verify the proper data sequence in the input meteorology.
MESSAGE:
DESCRIPTION:
ACTION:
HOUR, x, IS NOT PERMITTED. HOURS MUST BE DEFINED BETWEEN
1 AND 24.
The hour specified is other than 1-24.
Modify the input to conform to the hour stipulation
required by RAM.
MESSAGE:
DESCRIPTION:
ACTION:
DATE BEING PROCESSED IS - x. DATE OF HOURLY POINT
EMISSION RECORD IS y. ***PLEASE CHECK EMISSION RECORDS.
In the point emission record in process, the date does
not match the internal date calculated by RAM.
Verify data sequence in the hourly area source emission
file.
103
-------
REFERENCES
Briggs, Gary A., 1969: Plume Rise, USAEC Critical Review Series, TID-25075,
National Technical Information Service, Springfield, VA. 81 pp.
Briggs, Gary A., 1971: Some recent analyses of plume rise observation, in
Proceedings of the Second International Clean Air Congress, edited by H. M.
Englund and W. T. Beery. Academic Press, New York. pp. 1029-1032.
Briggs, Gary A., 1972: Discussion on chimney plumes in neutral and stable
surroundings. Atmos. Environ. 6: 507-510.
Briggs, Gary A., 1974: Diffusion Estimation for Small Emissions. In ERL, ARL
USAEC Report ATDL-106. U. S. Atomic Energy Commission. Oak Ridge, IN. 59 pp.
Briggs, Gary A., 1975: Plume rise predictions, Chapter 3 (pp. 59-111) in
Lectures on Air Pollution and Environmental Impact Analysis. Ouane A.
Haugen, editor, Amer. Meteorol. Soc. Boston, Mass. 296 pp.
Chico, Thomas, and Joseph Catalano, 1986: Addendum to the User's Guide for
MPTER. EPA/600/8-86/021. U. S. Environmental Protection. Agency, Research
Triangle Park, NC. 196 pp (July 1986). (Available only from NTIS. Accession
No. PB 86-217 163/AS.)
Gifford, Franklin A., Jr., 1960: Atmospheric dispersion calculations using the
generalized Gaussian plume model, Nucl. Saf. 2 (2): 56-59.
Gifford, Franklin A., and Hanna, Steven R., 1971: Urban air pollution modeling,
in Proceedings of the Second International Clean Air Congress, edited by
H. M. Englund and W. T. Beery. Academic Press, New York, pp 1146-1151.
Gifford, Franklin A., 1976: Turbulent diffusion-typing schemes: a review, Nucl.
Saf. 17 (1): 68-86.
Holzworth, George C., 1972: Mixing Heights, Wind Speeds, and Potential for
Urban Air Pollution through the contiguous United States, Office of Air
Programs Publication No. AP-101. U. S. Environmental Protection Agency,
Raleigh, NC. 118 pp.
Irwin, J. S., 1979: A theoretical variation of the wind profile law exponent as
a function of surface roughness and stability. Atmos. Environ. 13: 191-194.
104
-------
Novak, Joan Hrenko and Turner, 0. Bruce, 1976: An efficient Gaussian-plume
multiple-source air quality algorithm, J. Air Poll. Control Assoc., 26 (6):
57Q-575.
Pasquill, Frank, 1961: The estimation of the dispersion of windborne material,
Meteorol. Mag., 90 (1063): 33-49.
Pasquill, Frank, 1974: Atmospheric Diffusion, 2d ed., John Wiley and Sons, New
York. 429 pp.
Pasquill, Frank, 1976: Atmospheric Dispersion Parameters in Gaussian Plume
Modeling. Part II. Possible Requirements for Change in the Turner Workbook
Values. EPA-600/4-76-030b, U. S. Environmental Protection Agency, Research
Triangle Park, NC. 44 pp.
Pierce, T. E. and D. B. Turner, 1980: User's Guide for MPTER: A Multiple Point
Gaussian Dispersion Algorithm with Optional Terrain Adjustment.
EPA-600/8-80-016, U. S. Environmental Protection Agency, Research Triangle
Park, NC. 247 pp.
Pierce, T. E., D. B. Turner, J. A. Catalano, and F. V. Hale,1982: PTPLU - A
Single Source Gaussian Dispersion Algorithm. EPA-600/8-82-014, U. S.
Environmental Protection Agency, Research Triangle Park, NC 27711.
Turner, D.B., 1964: A diffusion model for an urban area. J. Appl. Meteorol. 3
(1): 83-91.
Turner, D.B., 1970: Workbook of Atmospheric Dispersion Estimates. Office of Air
Programs, Publication No. AP-26. U.S. Environmental Protection Agency,
Research Triangle Park, NC. 84 pp.
U. S. Environmental Protection Agency, 1986: User's Network for Applied Modeling
of Air Pollution (UNAMAP) Version 6, (Library of Computer Programs on Magnetic
Tape). NTIS PB86 222 361, National Technical Information Service, Spring-
field, VA.
U. S. Environmental Protection Agency, 1984: Calms Processor (CALMPRO) User's
Guide. EPA-901/9-84-001, U.S. Environmental Protection Agency, Region I,
Boston, MA 02003 (Available only form NTIS; Accession Number PB84-229 467.)
U. S. Environmental Protection Agency, 1986: Guideline on Air Quality Models
(Revised). EPA-450/2-78-027R, U.S. Environmental Protection Agency, Research
Triangle Park, NC 27711.
105
-------
APPENDIX A
FORTRAN SOURCE CODE FOR RAM
-------
RAMMET (VERSION 84136)
A MET PREPROCESSOR FOR RAM IN
SECTION 1. GUIDELINE MODELS
IN UNAMAP (VERSION 6) JULY 86
RME00010
RME00020
RME00030
RME00040
SOURCE: UNAMAP FILE ON EPA'S UNIVAC 1110, RTF, NC RME00050
C
C
C
C
C
C***RAMMET-PREPROCESSOR- WRITTEN BY JOAN HRENKO NOVAK " ' RME00060
C*** BASED ON METHODS SUGGESTED BY TURNER , ZIMMERMAN, AND IRWIN. RME00070
C***RAMMET ASSUMES THERE IS NO MISSING DATA ON THE MET. TAPE. RME00080
C***IF MISSING DATA IS DETECTED, THE LOCATION OF THE MISSING DATA IS RME00090
C***PRINTED. MISSING DATA MUST BE FILLED IN BEFORE PROCEEDING . RME00100
COMMON SEED,IRN,IRNP RME00110
DIMENSION LSTAB(12,7), IDFAC(12,2), ANGL(3), ICEIL(3), IDG(3), IDIRME00120
1G(11) RME00130
1)
DIMENSION KST(24), SPEED(24), TEMP(24), AFV(24), FVR(24), HLH(2,24RME00140
DIMENSION IRAND(8784s;, IHND(24,366)
EQUIVALENCE (IRAND,IRND)
DATA IDIG /'OV1V2V3' '4'.'5*.'6'.'7','8','9','-'/
DATA IREC /!/ , IMO /!/ .ANGL /60.,35.,15./ .CONST /S7.29578/ lu-muu^u
DATA IDFAC /O.31,59,90.120,151,181,212,243,273,304,334,0,31,60,91,RME00200
RME00150
RME00160
RME00170
RME00180
RME00190
unxn xiscnv / \j, •jf-.-jj. j\j, JL^.V/. 0.0j.. j.ol,212,243,273, 304,334,0.31,60, 91,
1121,152,182,213,244,274,305,335/ RME00210
DATA LSTAB /7,7,7,6,6,6,5,5,5,5,4,4,6,6,6,5,5,5,4,4,4,4,4,4,4,4,4,RME00220
1^,4,4,4.4,4,4,4,3,3,3,4,4,4,4^
RME00250
RME00260
RME00270
RME00280
C*** UNIT 9 = OUTPUT FILE
C*** UNIT 5 = UPPER AIR DATA IN CARD FORMAT
C*** UNIT 12 = RANDOM NUMBERS
CALL WSTCLK
WRITE (6.5432)
5432 FORMAT (}lf,21X,'RAMMET (VERSION 84136)'/
1 22X,'A MET PREPROCESSOR FOR RAM IN'/
2 22X,'SECTION 1. GUIDELINE MODELS '/
3 22X,'IN UNAMAP (VERSION 6) JULY 86'/
4 22X,'SOURCE: UNAMAP FILE ON EPA"S UNIVAC 1110, RTF, NC.')
IN=5
10=6
IFLAG=0
READ (5,395) IRN,IRNP,ISK
395 FORMAT (312)
C OPTIONAL FEATURES:
IRN - CONTROL FOR RANDOM NUMBERS.
IVIOUSLY PREPARED RANDOM NUMBERS FROM FILE 12.
RME00290
RME00300
RME00310
RME00320
RME00330
RME00340
RME00350
RME00360
RME00370
RME00380
RME00390
RME00400
RME00410
RME00420
RME00430
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
A SET OF RANDOM NUMBERS USING THE UNIVAC LIBRARY RME00440
SUBROUTINE RANDU.
2 GENERATE A SET OF RANDOM NUMBERS USING THE IMSL LIBRARY
SUBROUTINE GGUBS.
3 GENERATE A SET OF RANDOM NUMBERS USING A USER PROVIDED
ROUTINE ACCESSED BY USER WRITTEN CODE AT STATEMENT 170
IN SUBROUTINE RNDM.
IRNP - CONTROL FOR RANDOM NUMBER LISTING AND ANALYSIS.
0 PROVIDE AND PRINT ANALYSIS.
1 DON'T.
ISK - CONTROL FOR USING OPAQUE OR TOTAL SKY COVER.
OPAQUE IS PRE
0 USE OPAQUE (COL79
1 USE TOTAL (COL 56
WRITE (6.397) IRN,IRNP,IS
397 FORMAT TOIRN = ',12 ' CONTROL FOR RANDOM NUMBERS.'/
1 ' 0 - READ FROM FILE 12.'/ ' 1 - GENERATE USING UNIVAC RANDU.'/
RME00450
RME00460
RME00470
RME00480
RME00490
RME00500
RME00510
RME00520
RME00530
RME00540
RME00550
RME00560
RME00570
RME00580
RME00590
RME00600
RME00610
RME00620
2 ' 2 - GENERATE USING IMSL GGUBS.'/ ' 3 - GENERATE USING USER"S RRME00630
SOUTINE.'/'OIRNP = ',12,', CONTROL FOR RANDOM NUMBER LISTING AND ANRME00640
Vf\SW 4. .L1*U • / VX1U11. — f J.£t | ) WM i&l\XU C\Sn £VU1I/\S1*« 1VULM4JO1.1 JJ4.U J. J.11VJ
4ALYSIS.'/' 0 - PROVIDE AND PRINT ANALYSIS.'/' 1 - DON"T.'/
5 'OISK = ',12,', CONTROL FOR SKY COVER.'/
6 ' 0 - USE OPAQUE (COL 79).'/' 1 - USE TOTAL (COL 56).'//)
C***READ CARD TO INITIALIZE MET TAPE ID,YEAR,LATITUDE,LONGI
C*** TIME ZONE ,NO. OF DAYS IN YEAR, INITIAL RANDOM NUMBER.
RME00650
RME00660
RME00670
RME00680
RME00690
A- 1
-------
C***RAND(24) IS THE INITIAL RANDOM NO. USED TO GENERATE THE SEQUENCE OF RME00700
C***NUMBERS FOR THE RANDOMIZED FLOW VECTOR. IF THE SAME NO. IS USED IN RME00710
C***DIFFERENT EXECUTIONS OF THE PREPROCESSOR, THE SAME SET OF RANDOM NOSRME00720
C***WILL BE GENERATED. ANY ODD NUMBER GREATER THAN 3 DIGITS CAN BE USED RME00730
C***AS THE SEED. THIS SEED IS MULTIPLIED BY 10,000 INTERNALLY.
C***ZONE IS GMT-LST.
READ (IN,400) IDC,IYRC.ALAT,ALONG.ZONE.NDAYS,SEED
WRITE (10,410) IDC,IYRC.ALAT,ALONG,ZONE,NDAYS,SEED
C
C
C
C
C
C
C
C
C
IDC STATION IDENTIFICATION FOR SURFACE OBSERVATION TAPE
IYRC YEAR OF METEOROLOGICAL DATA
ALAT LATITUDE OF SITE
ALONG LONGITUDE OF SITE
ZONE TIME ZONE OF SITE
NDAYS NUMBER OF DAYS TO BE PROCESSED
SEED NUMBER USED AS SEED FOR RANDOM NUMBER GENERATION
RME00740
RME00750
RME00760
RME00770
RME00780
RME00790
RME00800
RME00810
RME00820
RME00830
RME00840
RME00850
RME00860
RME00870
RME00880
RME00890
RME00900
RME00910
RME00920
RME00930
RME00940
RME00950
RME00960
RME00970
RME00980
RME00990
RME01000
CALL HNDM(IRAND)
DUM=ALAT/CONST
SINLAT=SIN(DUM)
COSLAT=COS(DUM)
DUM=ALONG/15.-ZONE
TEMPZ=15.*ZONE-ALONG
C***RESET SUBSCRIPT IF LEAP YEAR
LYS=1
IF (NDAYS.EQ.366) LYS=2
C***READ MET DATA
C***THIS READ ASSUMES AN INPUT TAPE WITH HOURLY DATA FROM THE
C***NATIONAL CLIMATIC CENTER, ASHVILLE, NC. IN THEIR STANDARD
C***HOURLY CARD FORMAT.
C***SKIP 00 HOUR OF MET DATA.
READ (8,420) ID.IYEAR.IMONTH,IDAY,IHOUR,ICEIL,IDIR,ISPEED,ITEMP,ITRME01010
10AMT.ICOVER RME01020
LWD=IDIR RME01030
C***BEGIN PROCESSING WITH HOUR 01 • RME01040
READ (8,420) ID,IYEAR, LMONTH,IDAY,IHOUR,ICEIL,IDIR,ISPEED,ITEMP,ITRME01050
10AMT,ICOVER RME01060
C***MIXING HEIGHT VALUES ARE DETERMINED TWICE A DAY FROM RADIOSONDE DATARME01070
C***USING THE PROCEDURES OF HOLZWORTH. RME01080
C***READ PRIOR DAYS MIXING HEIGHT VALUES RME01090
READ (IN,430) XMNMl.XAFMl RME01100
C***PRESENT DAY RME01110
HEAD (IN,440) IDM.IYM,XMN,XAF RME01120
C***WRITE IDENTIFYING INFORMATION ON OUTPUT FILE RME01130
WRITE (9) ID.IYEAR,IDM,IYM RME01140
WRITE (10,450) IYEAR,ID,IYM,IDM RME01150
C*** HEAD NEXT DAY'S MIXING HEIGHT VALUES RME01160
READ (IN,430) XMNP1.XAFP1 RMEOU70
C***START DAY LOOP. RME01180
DO 380 IDY=l,NDAYS RME01190
C***CALCULATE THE DAY NO AND THE TIME OF SUNRISE AND SUNSET RME01200
DAY1=IDAY+IDFAC(IMONTH,LYS) RME01210
C***CONSTANT 0.0172028=360./365.242*57.29578 RME01220
C***DETERMINE THE ANGULAR?RADIANS) FRACTION OF A YEAR FOR THIS DATE. RME01230
DAYNO=(DAY1-1.0)*0.0172028 RME01240
TDAYNO=2.*DAYNO RME01250
SIND=SIN(DAYNO) RME01260
COSD=COS(DAYNO) RME01270
SINTD=SIN(TDAYNO) RME01280
COSTD=COS(TDAYNO) RME01290
C***ACCOUNT FOR ELLIPTICITY OF EARTH'S ORBIT. RME01300
SIGMA=279.9348+(DAYNO*CONST)+l.914827*8IND-0.079525*COSD+0.019938*RME01310
1SINTD-0.00162*COSTD RME01320
C***CONSTANT 0.39785=SIN(.4091720193=23.44383/57.29578) RME01330
C***FIND THE SINE OF THE SOLAR DECLINATION. RME01340
DSIN=0.39785*SIN(SIGMA/CONST) RME01350
DCOS=SQRT(1.0-DSIN*DSDO RME01360
C***DETERMINE TIME(HRS) OF MERIDIAN PASSAGE RME01370
AMM=12.0+0.12357*SIND-0.004289*COSD+0.153809*8INTD+0.060783*COSTD RME01380
HCOS=(-SINLAT*DSIN)/(COSLAT*DCOS) RME01390
A- 2
-------
C***DETERMINE SOLAR HOUR ANGLE OF SUNRISE-SUNSET.
H2=fATAN2(SQRT(1.-HCOS*HCOS).HCOSJ/15.0)*CONST
C***TIME OF SUNRISE(TSR) AND TIME OF SUNSET(TSS) ARE EXPRESSED IN
C***LOCAL STANDARD TIME SINCE THE ZONE CORRECTION HAS ALREADY BEEN MADE
C***OTHERWISE THEY WOULD BE IN GREENWICH MEAN TIME.
TSR=AMM-H2+DUM
TSS=AMM+H2+DUM
C***START HOUR LOOP
DO 370 KHR=1,24
KHRC=KHR
C***INITIALIZE STABILITY BEFORE IT IS CALCULATED
KST(KHR)=0
IF (KHR.EQ.24) GO TO 70
C***CHECK DATA FOR CORRECTNESS & CONTINUITY
C***CHECK STATION NUMBER.
IF (ID.EQ.IDC) GO TO 10
WRITE (10,460) IREC.ID.IDC
WRITE (10,510)
CALL WAUDIT
STOP
C***CHECK YEAR.
10 IF (IYEAR.EQ.IYRC) GO TO 20
WRITE (10,470) lYEAR.IYRC.IREC
WRITE (10,510)
CALL WAUDIT
STOP
C***CHECK MONTH
20
C***
IF (IMONTH.EQ.IMO) GO TO 40
IF (IMONTH.EQ.(IMO+1)) GO TO 30
WRITE (10,480) IMONTH.IMO.IREC
EQ.IDY) GO TO 50
DAY1.IDY.IREC
WRITE (10,510)
CALL WAUDIT
STOP
30 IMO=IMONTH
C***CHECK DAY
40 IF (IFIX(DAYl)
WRITE (10,490)
WRITE (10,510)
CALL WAUDIT
STOP
C***CHECK HOUR
50 IF (IHOUR.EQ.KHRC) GO TO 80
WRITE (10,500) IHOUR.KHR.IREC
WRITE (10,510)
GO TO 370
60 WRITE (10,520) KHR.IREC,IHOUR
CALL WAUDIT
STOP
70 IF (IHOUR.NE.O) GO TO 60
KHRC=IHOUR
C***UPDATE MIXING HEIGHTS- STARTING NEW DAY.
XMNM1=XMN
XAFM1=XAF
XMN=XMNP1
XAF=XAFP1
C***READ NEXT DAYS MIXING HEIGHTS.
READ (IN,430,END=80) XMNP1.XAFP1
80 ICDAMT=ICOVER
IF fISK.EQ.1) ICDAMT=ITOAMT
JK=0
90 JK=JK+1
IF (ICDAMT.NE.IDIG(JK)) GO TO 90
ISKY=JK-1
IF (ICEIL(l).NE.IDIG(ll)) GO TO 110
IDG(1)=9
IDG(2)=9
IDG(3)=8
GO TO 150
110 DO 140 JI=1,3
RME01400
RME01410
RME01420
.RME01430
RME01440
RME01450
RME01460
RME01470
RME01480
RME01490
RME01500
RME01510
RME01520
RME01530
RME01540
HME01550
RME01560
RME01570
RME01580
RME01590
RME01600
RME01610
RME01620
RME01630
RME01640
RME01650
RME01660
RME01670
RME01680
RME01690
RME01700
RME01710
RME01720
RME01730
RME01740
RME01750
RME01760
RME01770
RME01780
RME01790
RME01800
RME01810
RME01820
RME01830
RME01840
RME01850
RME01860
RME01870
RME01880
RME01890
RME01900
RME01910
RME01920
RME01930
RME01940
RME01950
RME01960
RME01970
RME01980
RME01990
RME02000
RME02010
RME02020
RME02030
RME02040
A- 3
-------
DO 120 JK=1,10
IF (ICEIL(JI).EQ.IDIG(JK)) GO TO 130
120 CONTINUE
130 IDG(JI)=JK-1
140 CONTINUE
150 IROOF=IDG(1)*100+IDG(2)*10+IDG(3)
C***IROOF IS CEILING HEIGHT IN HUNDREDS OF FEET.
C***CONVERT TEMP FROM FAHRENHEIT TO KELVIN
TEMP?KHR)=0.5556*(ITEMP-32.)+273.15
C***CONVERT WIND SPEED FROM KNOTS TO METERS/SEC
S=ISPEED*0.51444
C***WIND SPEED IS SET TO 1 METER/SEC
IF (S.LT.1.0) S=1.0
SPEED(KHR)=S
C***CHECK FOR CALMS
IF (IDIR.EQ.O) GO TO 160
C***WIND DIRECTION IS ASSUMED TO BE THE SAME AS FOR THE LAST HOUR
C***IF THE WIND DIRECTION IS REPORTED AS "CALM".
LWD=IDIR
GO TO 170
160 IDIR=LWD
170 XDIR=IDIR*10.
C***CALCULATE FLOW VECTOR AND RANDOM FLOW VECTOR
IF (XDIR.GT.180.) GO TO 180
FV=XDIR+180.
GO TO 190
180 FV=XDIR-180.
190 AFV(KHR)=FV
XRN=IRND(KHR.IDY)
FVR(KHR)=FV+XRN-4.
IF (FVR(KHR).GT.360.) FVR(KHR)=FVR(KHR)-360.
C***DETERMINE RADIATION INDEX.
IF (ISKY.EQ.10.AND.IROOF.LT.70) GO TO 200
IF (IHOUR.GT.TSR.AND.IHOUR.LT.TSS) GO TO 210
IRADX=2
IF (ISKY.LE.4) IRADX=1
GO TO 280
200 IRADX=3
GO TO 280
C***DETERMINE THE ANGLE OF ELEVATION
C***DETERMINE SOLAR HOUR ANGLE(RADIANS)
210 HI=(15.*(KHRC-AMM)+TEMPZ)/CONST
ALFSN=SINLAT*DSIN+DCOS*COSLAT*COS(HI)
C***DETERMINE SOLAR ELEVATION ANGLE(DEG).
ALF=ATAN2(ALFSN,SQRT(1.-ALFSN*ALFSN))*CONST
DO 220 1=1,3
220 IF (ALF.GT.ANGL(I)) GO TO 230
230 ICN=5-I
IF (ISKY.GT.5) GO TO 240
IRADX=ICN+3
GO TO 280
240 IRADX=ICN-1
IF (IROOF.LT.70) GO TO 250
IF (IROOF.LT.160) GO TO 260
IF (ISKY.EQ.10) GO TO 270
IRADX=ICN
GO TO 270
250 IRADX=ICN-2
GO TO 270
260 IF (ISKY.EQ.10)
270 IF (IRADX.LT.l)
IRADX=IRADX-1
IRADX=1
IF (IHADX.LT.
IRADX=IHADX+3
280 IND=ISPEED
IF (ISPEED.GT.12) IND=12
IF (ISPEED.LE.l) IND=1
C***DETERMINE STABILITY.
KST(KHR)=LSTAB(IND,IRADX)
C***DO NOT ALLOW STABILITY TO VARY RAPIDLY
IF (IDY.EQ. LAND.KHR.EQ.l) LST=KST(KHR)
RME02050
RME02060
RME02070
RME02080
RME02090
RME02100
RME02110
RME02120
RME02130
RME02140
RME02150
RME02160
RME02170
RME02180
RME02190
RME02200
RME02210
RME02220
RME02230
RME02240
RME02250
RME02260
RME02270
RME02280
RME02290
RME02300
RME02310
RME02320
RME02330
RME02340
RME02350
RME02360
RME02370
RME02380
RME02390
RME02400
RME02410
RME02420
RME02430
RME02440
RME02450
RME02460
RME02470
RME02480
RME02490
RME02500
RME02510
RME02520
RME02530
RME02540
RME02550
RME02560
RME02570
RME02580
RME02590
RME02600
RME02610
RME02620
RME02630
RME02640
RME02650
RME02660
RME02670
RME02680
RME02690
RME02700
RME02710
RME02720
RME02730
RME02740
A- 4
-------
IF ((KST(KHR)-LST).GT.l)
. • J. /
KST(KHR)=LST+1
KST(KHR)=LST-1
„ , < - - - < < ___ _ RME02750
IF ((LST-KST(KHR)).GT.l) KST(KHR)=LST-1 RME02760
LST=KST(KHR) RME02770
IF (KST(KHR).LT.l) WRITE (10,540) KST(KHR),IND,IRADX,IREC RME02780
C***CALCULATE MIXING HEIGHT RME02790
IHR=KHRC RME02800
XHR=IHR RME02810
IF (IHR.GT.14.AND.XHR.LE.TSS) GO TO 300 RME02820
IND=2 RME02830
IF (XHR.LE.TSS) GO TO 310 RME02840
IF (KST(KHR).EQ.4) GO TO 290 RME02850
HLH(2,KHR)=XAF+(XMNPl-XAF)*((XHR-TSS)/(24.-TSS)) RME02860
IND=1 RME02870
290 HLH(INDJKHR)=XAF+(XAFPl-XAF)*((XHR-TSS)/(38.-TSS)) RME02880
IF (IND.EQ.2) HLH(1,KHR)=HLH(2,KHR) RME02890
GO TO 360 RME02900
300 HLH(1,KHR)=XAF RME02910
HLH(2,KHR)=XAF . RME02920
GO TO 360 RME02930
310 IF (XHR.GT.TSR) GO TO 330 RME02940
KSTSP=KST(KHR) RME02950
IF (KST(KHR).EQ.4) GO TO 320 RME02960
HLH(2,KHR)=XMN RME02970
IND=1 RME02980
320 HLH(IND,KHR)=XAFMl+(XAF-XAFMl)*((24.-TSS+XHR)/(24.-TSS+14.)) RME02990
IF (IND.EQ.2) HLH(1,KHR)=HLH(2,KHR) RME03000
GO TO 360 RME03010
330 IF (KSTSP.EQ.4) GO TO 350 RME03020
HLH(2,KHR)=XMN+(XAF-XMN)*((XHR-TSR)/(14.-TSR)) RME03030
HLHU,KHR)=XAF*(XHR-TSR)/(14.-TSR) RME03040
GO TO 360 RME03050
340 IFLAG=1 RME03060
IHOUR=0 • RME03070
GO TO 370 RME03080
350 HLH(l,KHR)=XAFMl+(XAF-XAFMl)*((24.-TSS+XHR)/(24.-TSS+14.)) RME03090
HLH(2,KHR)=HLH(1,KHR) RME03100
C***READ NEXT HOUR'S MET DATA RME03110
360 IF (IFLAG.EQ.l) GO TO 390 RME03120
C***STORE CORRECT MONTH AND DAY FOR DAILY PRINTOUT, SINCE 24TH HOUR LABERME03130
IF(KHR.NE.23) GO TO 365 RME03140
LMON=IMONTH RME03150
LDAY=IDAY RME03160
365 READ (8,420,END=340) ID.IYEAR.IMONTH,IDAY.IHOUR,ICEIL,IDIR,ISPEED.RME03170
v_i»...i RME03180
RME03190
RME03200
JLUfUy V. U « -Xt*W * QtVMJ — *J~T\t I
1ITEMP,ITOAMT,ICOVER
IREC=IREC+1
C***END OF HOUR LOOP.
370 CONTINUE
C***WRITE DAYS CALCULATION ON TO FILE
C***EACH ARRAY CONTAINS THE COMPLETE INFORMATION FOR ONE DAY ORDERED
C***SEQUENTIALLY FROM HOUR 01 THRU 24
WRITE
WRITE
WRITE
9) IYEAR,LMON,DAY1,KST,SPEED,TEMP5AFV,FVR,HLH
10,550) lYEAR.LMON.LDAY.DAYl.TSR.TSS
10 560) KST
WRITE 10,570) SPEED,TEMP,AFV,FVR,((HLH(I,J),J=1,24),1=1,2)
C***END OF DAY LOOP.
380
390
CONTINUE
C
400
410
420
WRITE
WRITE
WRITE
WRITE
WRITE
CALL W/
STOP
9) lYEvi
10,550
10,560
10,570
10,580
«JDIT
IYEAR,LMON,DAY1,KST,SPEED,TEMP,AFV,FVR,HLH
"" IYEAR, LMON, LDAY.DAY1, TSR, TSS
KST
SPEED,TEMP,AFV,FVR,((HLH(I,J),J=1,24),I=1,2)
FORMAT (I5,I2,1X,2F10.1,F2.0,I4,F10.0)
FORMATrOV RAMMET - VERSION 84136\
*' STATION NUMBER=' 15,5X,'YEAR OF DATA=
*'LATITUDE=' F10.1 ' LONGITUDE=' F10.1,' ^.,«- .„.
*'NUMBER OF DAYS IN YEAR=' 13,' RANDOM SEED='.FlO.O)
FORMAT (I5,4I2,3A1,22X,2I2,4X,I3,6X,A1,22X,A1}
2/1X,
ZONE='
F4.0/1X,
RME03210
RME03220
RME03230
RME03240
RME03250
RME03260
RME03270
RME03280
RME03290
RME03300
RME03310
RME03320
RME03330
RME03340
RME03350
RME03360
RME03370
RME03380
RME03390
RME03400
RME03410
RME03420
RME03430
A- 5
-------
430
440
450
460
470
480
490
500
510
520
FORMAT (12X.F5.0.13X.F5.0)
FORMAT (I5,I2,5X,F5.6,13X,F5.0)
FORMAT (IX,'19'.12,' SURFACE DATA AT STATION ',15,10X,'19',12
1XING HEIGHT DATA AT STATION ',15)
FORMAT ?' ID DOES NOT MATCH IN RECORD ',14,' ID ON TAPE IS
*.' ID REQUESTED IS ',15)
YEAR IS' 13.' INSTEAD OF ',12 ' IREC='.I4)
MONTH ',12, DOES NOT AGREE WITH LOOP J,12
DAY 'F4.0 ' DOES NOT AGREE WITH LOOP ',12
HOUR ',12,' DOES NOT AGREE WITH LOOP ',12
,
FORMAT
FORMAT
FORMAT
FORMAT
FORMAT
FORMAT
1 RECORD
530 FORMAT
540
550
560
570
580
C
1FAULTS
FORMAT
FORMAT
*F5.0,'
FORMAT
FORMAT
TO
RME03440
RME03450
MIRME03460
RME03470
,I5RME03480
RME03490
RME03500
IREC=',I4) RME03510
.IREC=' 14) RME03520
IA\XUJ.L j -L-t*} i^vjju inw L nuiujAJ rrxiii, u\s\sf t X£» j IREC— . 14) HMEUoOoU
*****DATA IS MISSING. PLEASE CORRECT INPUT FILE*****'} RME03540
ERROR: MISSING HOUR LOOP VALUE= ',13,' WHILE VALUE ','ONRME03550
,A1,' IS NOT ALLOWABLE.
17,' IS = ' x,
THE CHARACTER
10.')
STABILITY^' 414)
IYEAR=' 12.' IMONTH=',I2, »n
UNRISE=',F7.3 ' SUNSET=',F7.3)
KST= ',24(11,4X))
SPEED= ',24(F4.1,
RME03560
CLOUD COVER DERME03570
RME03580
HME03590
DAY=',I2,' JULIAN DAY=', RME03600
RME03610
RME03620
TEMP=' 24(F4.0,1X)/' AFV= ',24(FRME03630
• - •- '£—~ A * --v •-—- - — -— — — - --\ / f DMtrnoc^in
C V/1UT1AJL I Uf CtCtL/— * i-~t VC~T% J.* JLA// XUL'il — • Lt~t \ Jt T • %J« iA// Jli' T — • 4*~t \ 1. AU'UU WOW*J V/
14.0.1X)/ FVR='.24(F4.0.1X)/' HLH1=',12(F5.0,1X)/6X,12(F5.0,lX)/) RME03640
2HLH2=',12(F5.0,ix)/6X,12(F5.0,lX)) RME03650
FORMAT (' ALL RECORDS HAVE BEEN PROCESSED')
END
;K5(10),K6(10),KG(10)
,14,' DOESN"T MATCH EXPECTED RECORD:
RME03660
RME03670
RME03680
RME03690
RME03700
RME03710
RME03720
RME03730
RME03740
RME03750
RME03760
RME03770
RME03780
RME03790
RME03800
RME03810
14) RME03820
RME03830
RME03840
RME03850
RME03860
RME03870
RME03880
RME03890
RME03900
RME03910
RME03920
RME03930
RME03940
RME03950
RME03960
RME03970
RME03980
RME03990
RME04000
RME04010
RME04020
__. .._ RME04030
HIS/HER OWN ROUTINE TO GENERATE 8784 RANDOM NUMBERS AND PLACE RME04040
SUBROUTINE RNDM(IRAND)
COMMON SEED.IRN.IRNP
DIMENSION RAND(8784).IRAND(8784),IDUM(24)
DIMENSION KS(10),K2(10),K3(10),K4(10),K5(:
DOUBLE PRECISION DSEED
DATA DLH.TLH.QLH.FLH.SLH/O.,0.,0.,0.,0./
IF URN.GT.O) GO TO. 120
DO 8 JA = 1,366
READ 712,1020) J.IDUM
1020 FORMAT (i8,3X,24il)
C CHECK TO SEE IF J CORRECT.
IF(J.EQ.JA) GO TO 4
WRITE (6.1030). J,JA
1030 FORMAT('OlNPUT RECORD:
4 IE = JA * 24
IB = IE - 24
DO 6 I = 1,24
IS = IB + I
6 IRAND(IS) = IDUM(I)
8 CONTINUE
GO TO 150
120 IF(IRN.GT.l) GO TO 160
WRITE (6.1050) SEED
1050 FORMAT (}OSEED USED FOR THIS RUN =',F10.0//)
C USE RANDU FROM UNIVAC LIBRARY.
RAND(l) = SEED
CALL RANDU (RAND,8784)
GO TO 190
160 IF(IHN.GT.2) GO TO 170
WRITE (6,1050) SEED
C USE GGUBS FROM IMSL LIBRARY.
DSEED = SEED
CALL GGUBS(DSEED,8784,RAND)
GO TO 190
C USER SHOULD REMOVE THIS STOP AND PLACE CODE THAT WILL USE
THEM IN THE ARRAY RAND. RME04050
170 WRITE (6.2200) RME04060
2200 FORMAT ('ONORMALLY EXECUTION WILL CONTINUE USING THE USER"S ', RME04070
1 'RANDOM NUMBER ROUTINE. CURRENTLY THERE IS A STOP CODE AT THAT 'RME04080
2 , 'POINT!!!') RME04090
CALL WAUDIT
STOP RME04100
190 DO 100 I = 1,8784 RME04110
A- 6
-------
300
1100
100 IRAND(I) = RAND(I) * 10.
150 IF (IRNP.EQ.l) RETURN
L — J.
IS = 1
200 IL = 120 * L
M = L * 5
IF (IL.GT.8784) GO TO 300
WRITE (6,1100) M,(IRAND(I), I = IS.IL)
IS = IL + 1
L = L + 1
GO TO 200
M = (.(8784 - IS + l)/24) + (L - 1) * 5
WRITE (6,1100) M,(IRAND(I), I = IS,8784)
FORMAT (I4,5(lX,24Il))
L = IRAND(l) + 1
DO 30 I = 1.8784
N = IRAND(I)
C L IS DIGIT FOR LAST HOUR.
C N IS DIGIT FOR THIS HOUR.
NA = N
IF (NA.EQ.O) NA = 10
KS(NA) = KS(NA) + 1
IF (N.NE.L) GO TO 60
C N = L, THEREFORE HAVE A DOUBLE THIS HOUR.
K2(NA) = K2(NA) + 1
IF (DLH.EQ.O.) GO TO 50
C THEREFORE HAVE A TRIPLE THIS HOUR.
K3(NA) = K3(NA) + 1
IF(TLH.EQ.O.) GO TO 40
C THEREFORE HAVE A QUAD THIS HOUR.
K4(NA) = K4(NA) + 1
IF (QLH.EQ.O.) GO TO 30
C THEREFORE HAVE FIVE-IN-A-ROW THIS HOUR.
K5(NA) = K5?NA) + 1
IF (FLH.EQ.O.) GO TO 20
C THEREFORE HAVE SIX-IN-A-ROW THIS HOUR.
K6(NA) = K6(NA) + 1
IF (SLH.EQ.O.) GO TO 10
C THEREFORE HAVE SEVEN-OR-MORE-IN-A-ROW THIS HOUR.
KG(NA) = KG(NA) + 1
10 SLH = 1.
20 FLH = 1.
30 QLH = 1.
40 TLH = 1.
50 DLH = 1.
GO TO 70
60 DLH = 0.
TLH = 0.
QLH = 0.
FLH = 0.
SLH = 0.
70 L = N
90 CONTINUE
WRITE (6.1200) (J,J = 1.9)
1200 FORMAT ('ODIGIT 6',915,7X,'SUM')
DO 95 J = 1,10
95 ISUM = ISUM + KS(J)
WRITE (6.1300) KS(10).(KS(J}. J
1300 FORMAT (1OSINGLE ',iOl5,li6)
CHISQ =0.
DO 400 J = 1,10
S = KS(J)
SA = S - 878.4
400 CHISQ = CHISQ + SA * SA/878.4
WRITE (6.1400) CHISQ
1400 FORMAT f'OCHI SQUARE =',F10.2)
ISUM =0
DO 450 J = 1,10
450 ISUM = ISUM + K2(J)
WRITE (6,1500) K2(10),(K2(J), J = 1,9),ISUM
= 1,9),ISUM
RME04120
RME04130
RME04140
RME04150
RME04160
RME04170
RME04180
RME04190
RME04200
RME04210
RME04220
RME04230
RME04240
RME04250
RME04260
HME04270
RME04280
RME04290
RME04300
RME04310
RME04320
RME04330
RME04340
RME04350
RME04360
RME04370
RME04380
RME04390
RME04400
RME04410
RME04420
RME04430
RME04440
RME04450
RME04460
RME04470
RME04480
RME04490
RME04500
RME04510
RME04520
RME04530
RME04540
RME04550
RME04560
RME04570
RME04580
RME04590
RME04600
RME04610
RME04620
RME04630
RME04640
RME04650
RME04660
RME04670
RME04680
RME04690
RME04700
RME04710
RME04720
RME04730
RME04740
RME04750
RME04760
RME04770
RME04780
RME04790
RME04800
RME04810
A- 7
-------
1500 FORMAT ('ODOUBLE ',1015,110)
CHISQ = 0.
DO 500 J = 1,10
S = K2(J)
SA = S - 87.83
500 CHISQ = CHISQ + SA * SA/87.83
WRITE (6,1400) CHISQ
ISUM = 0
DO 550 J = 1,10
550 ISUM = ISUM + K3(J)
WRITE (6.1600) K3(10).[K3(J). J
1600 FORMAT ('OTRIPLE ',1015,110)
CHISQ = 0.
DO 600 J = 1,10
S = K3(J)
SA - S - 8.782
600 CHISQ = CHISQ + SA * SA/8.782
WRITE (6,1400) CHISQ
ISUM = 0
DO 650 J = 1,10
650 ISUM = ISUM + K4(J)
WRITE (6.1700) K4(10).(K4(J). J
1700 FORMAT (J04 IN ROW ',1015,110)
CHISQ = 0.
DO 700 J = 1,10
S = K4(J)
SA = S - 0.8781
700 CHISQ = CHISQ + SA * SA/0.8781
WRITE (6,1400) CHISQ
ISUM = 0
DO 800 J = 1,10
ISUM = ISUM + K5(J)
800
1800 FORMAT
DO 900 J = 1,10
ISUM = ISUM + K6(J)
= 1,9),ISUM
= 1,9),ISUM
WRITE (6.1800) K5(10).(K5(J). J
.T ('05 IN ROW ',16l5,Il6)
ISUM = 0
900 ISUM = ISUM + K6(J)
WRITE (6.1900) K6(10).(K6(J), J
1900 FORMAT P06 IN ROW ',1015,110)
ISUM = 6
DO 950
950 ISUM =
J = 1,10
ISUM + KG(J)
WRITE (6.2000) KG(10).(KG(J). J
2000 FORMAT ('07 IN ROW ',1015,110)
WRITE (6.:
f * i
= 1,9),ISUM
= 1,9),ISUM
= 1,9),ISUM
.2100)
2100 FORMAT (*0 WITH 9 DEGREES OF FREEDOM, THE PROBABILITY'/,
1' THAT A VALUE OF CHISQ WILL EXCEED:'/,
2' 23.59 IS 0.005'/,' 21.67 IS 0.01'/,
3' 19.02 IS 0.025'/,' 16.92 IS 0.05'/,
4' 14.68 IS 0.10')
RETURN
END
RME04820
RME04830
RME04840
RME04850
RME04860
RME04870
RME04880
RME04890
RME04900
RME04910
RME04920
RME04930
RME04940
RME04950
RME04960
RME04970
RME04980
RME04990
RME05000
RME05010
RME05020
RME05030
RME05040
RME05050
RME05060
RME05070
RME05080
RME05090
RME05100
RME05110
RME05120
RME05130
•RME05140
RME05150
RME05160
RME05170
RME05180
RME05190
RME05200
RME05210
RME05220
RME05230
RME05240
RME05250
RME05260
RME05270
RME05280
RME05290
RME05300
RME05310
RME05320
RME05330
A- 8
-------
c
c
c
c
c
c
c
c
c
RAM (VERSION 85364)
AN AIR QUALITY DISPERSION MODEL IN
SECTION 1. GUIDELINE MODELS
IN UNAMAP (VERSION 6) JUL 86
SOURCE: UNAMAP FILE ON EPA'S UNIVAC 1110, RTP. NC.
THIS MAIN PROGRAM IS REFERRED TO AS A IN COMMMON STATEMENTS
OUTLINE OF
SECTION A -
SECTION B -
SECTION C -
SECTION D -
SECTION 2 -
SECTION F -
SECTION G -
SECTION H -
SECTION I -
SECTION J -
SECTION K -
SECTION L -
SECTION M -
SECTION N -
SECTION 0 -
SECTION P -
SECTION Q -
SECTION R -
SECTION S -
SECTION T -
SECTION U -
SECTION V -
SECTION W -
SECTION X -
SECTION Y -
PROGRAM SECTIONS
GENERAL REMARKS
DATA INPUT LISTS.
INPUT FILE DESCRIPTIONS
OUTPUT PUNCHED CARD DESCRIPTION
OUTPUT FILE DESCRIPTIONS
TEMPORARY FILE DESCRIPTION
COMMON, DIMENSION, AND DATA STATEMENTS .
FLOW DIAGRAM.
RUN SET-UP AND READ FIRST 6 INPUT CARDS.
INPUT AND PROCESS EMISSION INFORMATION.
EXECUTE FOR INPUT OF SIGNIFICANT SOURCE NUMBERS.
CHECK MET. DATA IF FROM FILE OF ONE YEARS 'S DATA
GENERATE POLAR COORDINATE RECEPTORS.
READ AND PROCESS RECEPTOR INFORMATION.
POSITION FILES AS REQUIRED.
START LOOPS FOR DAY AND AVERAGING TIME; READ
MET. DATA.
CALCULATE AND WRITE MET. SUMMARY INFORMATION.
DETERMINE ADDITIONAL RECEPTORS FOR THIS AVG-PER
(OPTIONAL)
INITIALIZE FOR HOURLY LOOP.
BEGIN HOURLY LOOP.
CALCULATE AND STORE FOR HIGH-FIVE TABLE.
END HOURLY, AVERAGING TIME, AND DAILY LOOPS.
WRITE AVERAGE CONG. AND HIGH-FIVE TABLES.
CLOSE OUT FILES.
FORMAT STATEMENTS.
C
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
g-
c
c
c
c
C->->->-> SECTION A - GENERAL REMARKS.
C
C******************************************************************
C NOTE: THE CARD INPUT FOR RAM (85364) DIFFERS FROM RAM00430
C PREVIOUS VERSIONS. RAM00440
C THIS VERSION OF RAM IS COMPILED WITH THE UNIVAC RAM00450
C ASCII FORTRAN COMPILER. THIS VERSION OF THE MODEL RAM00460
C DIFFERS SLIGHTLY FROM EARLIER VERSIONS IN THE AREAS RAM00470
C OF FORMAT STATEMENTS AND CONDITION STATEMENTS. RAM00480
C****************************************************
RAM00010
RAM00020
RAM00030
RAM00040
RAM00050
RAM00060
RAM00070
RAM00080
RAM00090
RAM00100
RAM00110
RAM00120
RAM00130
RAM00140
RAM00150
RAM00160
RAM00170
RAM00180
RAM00190
RAM00200
RAM00210
RAM00220
RAM00230
RAM00240
RAM00250
RAM00260
RAM00270
RAM00280
RAM00290
RAM00300
RAM00310
RAM00320
RAM00330
RAM00340
RAM00350
RAM00360
RAM00370
RAM00380
RAM00390
RAM00400
RAM00410
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
c
c
c
c
c
c
RAM PROGRAM ABSTRACT.
RAM IS AN EFFICIENT GAUSSIAN-PLUME MULTIPLE-SOURCE
AIR QUALITY ALGORITHM. RAM IS DESCRIBED IN: NOVAK,J.H., AND
TURNER.D.B., 1976: AIR POLLUTION CONTROL ASSOC. J.. VOL. 26, NO. 6,
PAGES 570-575(JUNE 1976). RAM'S PRINCIPAL USE IS TO DETERMINE
SHORT TERM (ONE-HOUR TO ONE-DAY) CONCENTRATIONS FROM POINT AND
AREA SOURCES IN URBAN AREAS.
EXECUTION OF RAM IS LIMITED TO A MAXIMUM OF 250 POINT
SOURCES,100 AREA SOURCES .AND 180 RECEPTORS. SIMULATION
IS DONE HOUff-BY-HOUR AND HOURLY METEOROLOGICAL DATA
ARE REQUIRED AS INPUT. LENGTH OF SIMULATED TIME CAN
VARY FROM 1 HOUR TO 1 YEAR.
RAM AUTHORS:
D. BRUCE TURNER* AND JOAN HRENKO NOVAK*
METEOROLOGY AND ASSESSMENT DISISION, ESRL
ENVIRONMENTAL PROTECTION AGENCY
* ON ASSIGNMENT FROM NATIONAL OCEANIC AND ATMOSPHERIC ADMIN.,
RAM00500
RAM00510
RAM00520
RAM00530
RAM00540
RAM00550
RAM00560
RAM00570
RAM00580
RAM00590
RAM00600
RAM00610
RAM00620
RAM00630
RAM00640
RAM00650
RAM00660
RAM00670
RAM00680
RAM00690
RAM00700
A- 9
-------
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
c
c
c
c
c
c
DEPARTMENT OF COMMERCE.
MODIFIED FOR DEFAULT OPTION BY:
JEROME B. MERSCH
SOURCE RECEPTOR ANALYSIS BRANCH
MONITORING AND DATA ANALYSIS DIVISION
ENVIRONMENTAL PROTECTION AGENCY
RAM SUPPORTED BY:
ENVIRONMENTAL OPERATIONS BRANCH
MAIL DROP 80, EPA
RESRCH TRI PK, NC 27711
PHONE: (919) 541-4564, FTS 629-4564.
BACKGROUND—
1. THE ORIGINAL RAM BY JOAN HRENKO NOVAK AND D.BRUCE TURNER
WAS MADE AVAILABLE IN FOUR VERSIONS:
RAM SHORT TERM URBAN
RAMR SHORT TERM RURAL
RAMF LONG TERM URBAN
RAMFR LONG TERM RURAL
ON UNAMAP(VERSION 3) IN MARCH 1978.
2. USING THE POINT SOURCE PORTIONS OF RAMR AS A BASIS,
THOMAS E. PIERCE AND D.BRUCE TURNER DEVELOPED THE MODEL
MPTER.THIS MODEL CONTAINS MANY OPTIONS SO THAT IT IS
QUITE VERSATILE PRIMARILY DUE TO ITS MANY USER SELECTED
OPTIONS.
3. IN BEGINNING THE TASK OF REVISING RAM FOR GUIDELINE
MODEL CONSISTENCY, IT WAS FELT THAT ADDITIONAL OPTIONS
COULD BE EMPLOYED, SIMILAR TO MPTER, IN ORDER TO MAKE
THE MODEL MORE VERSATILE. THE APPROACH USED HERE WAS
TO BEGIN WITH MPTER, REMOVE ITS OPTIONAL TERRAIN
FEATURES AND ADD BACK IN THE AREA SOURCE COMPUTATIONS
AND RECEPTOR LOCATION FEATURES.
CURRENT MODEL - USERS WILL FIND THAT THERE ARE NO LONGER FOUR
VERSIONS OF RAM BUT ONLY ONE. USE OF URBAN OR RURAL
DISPERSION PARAMETERS ARE CONTROLLED BY THE INPUT
VALUE FOR THE VARIABLE MUOR ( "1" FOR URBAN,"2" FOR
RURAL). THE LENGTH OF THE MODEL RUN IS DETERMINED BY
THE NUMBER OF AVERAGING PERIODS, NPER. TO BE RUN AND
THE LENGTH OF THE AVERAGING PERIOD,NAVG. FOR LONG-
TERM RUNS (SUCH AS USING A YEAR'S DATA), THE OPTION TO
CALCULATE AND PRINT THE HI-FIVE TABLE IS NORMALLY EMPLOYED
SO THAT THE HIGHEST AND SECOND HIGHEST CONCENTRATION FOR
EACH AVERAGING-TIME CAN BE EASILY DETERMINED.
THIS VERSION OF RAM WAS ASSEMBLED BY CURTIS A. SMITH
(JUN -AUG 1980)AND ALFREIDA D. RANKINS (AUG 1980 -PRESENT)
UNDER THE GUIDANCE OF D. BRUCE TURNER.
NOTE TO USERS:
ALTHOUGH THE ORIGINAL VERSION OF RAM CONTAINED
SUBROUTINES TO LOCATE RECEPTORS DOWNWIND FROM SIGNIFICANT
SOURCES FOR EACH AVERAGING PERIOD, THIS OPTION WAS DELETED
FROM THE LONG-TERM VERSION (THE VERY SITUATION WHERE IT
WOULD HAVE BEEN MOST USEFUL). THIS ACTION WAS TAKEN
BECAUSE IT WAS FELT IT WOULD CREATE CONFUSION FOR THE
USER TO GENERATE RECEPTORS WITH GIVEN RECEPTOR NUMBERS
WHOSE LOCATIONS SHIFT WITH EACH NEW AVERAGING PERIOD.
DETERMINATION OF MAXIMUM CONCENTRATIONS FROM
MULTIPLE SOURCES IS A DIFFICUT AND TIME CONSUMING TASK.
WITH THIS VERSION OF RAM THE FOLLOWING PROCEDURES CAN BE
APPLIED TO ASSIST LOCATING MAXIMUM CONCENTRATIONS THAT
CAN BE COMPARED WITH AIR QUALITY STANDARDS:
RAM00710
RAM00720
RAM00730
RAM00740
RAM00750
RAM00760
RAM00770
RAM00780
RAM00790
RAM00800
RAM00810
RAM00820
RAM00830
RAM00840
RAM00850
RAM00860
RAM00870
RAM00880
RAM00890
RAM00900
RAM00910
RAM00920
RAM00930
RAM00940
RAM00950
RAM00960
RAM00970
RAM00980
RAM00990
RAM01000
RAM01010
RAM01020
RAM01030
RAM01040
RAM01050
RAM01060
RAM01070
RAM01080
RAM01090
RAM01100
RAM01110
RAM01120
RAM01130
RAM01140
RAM01150
RAM01160
RAM01170
RAM01180
RAM01190
RAM01200
RAM01210
RAM01220
RAM01230
RAM01240
RAM01250
RAM01260
RAM01270
RAM01280
RAM01290
RAM01300
RAM01310
RAM01320
RAM01330
RAM01340
RAM01350
RAM01360
RAM01370
RAM01380
RAM01390
RAM01400
A-10
-------
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
c
c
c
c
c
c
RAM01410
EXECUTE FOR A LONG PERIOD OF RECORD (FOR EXAMPLE,A YEAR) RAM01420
FOR EXISTING MONITOR LOCATIONS AND EMPLOYING THE OPTION RAM01430
TO GENERATE RECEPTORS DOWNWIND OF SIGNIFICANT SOURCES
(DIFFERENT RECEPTOR LOCATIONS ARE GENERATED FOR EACH
AVERAGING PERIOD). YOU MAY WANT TO ADD SPECIFIED OR
GENERATED RECEPTORS TO GET REASONABLE AREA COVERAGE.
(MOST OUTPUT WOULD BE SUPPRESSED BY USE OF OPTIONS
TO AVOID EXCESS PRINTED OUTPUT.) THE HI-FIVE TABLE
WOULD BE NEEDED HOWEVER.
USING THE HI -FIVE TABLE SELECT DATES AND TIMES
(AND NOTE RECEPTOR NUMBERS) PRODUCING HIGH
VALUES ( HIGHEST, SECOND HIGHEST, AND POSSIBLY ,
THIRD HIGHEST).
RAM01440
RAM01450
RAM01460
RAM01470
RAM01480
RAM01490
RAM01500
RAM01510
RAM01520
RAM01530
RAM01540
RAM01550
RAM01560
RAM01570
RAM01580
RAM01590
3. MAKE SHORT-TERM RUNS FOR THE ABOVE IDENTIFIED PERIODS
USING THE SAME RECEPTORS, RECEPTOR OPTIONS AND AVERAGING
PERIOD AS IN THE INITIAL RUN. BE SURE TO GET PRINTOUT
FOR THE AVERAGING PERIOD. THIS ALLOWS DETERMINATION OF THERAM01600
COORDINATES OF EACH RECEPTOR IDENTIFIED IN STEP 2 ABOVE. RAM01610
RAM01620
4. MAKE A LONG TERM RUN USING INPUT RECEPTORS ONLY (SO GIVEN RAM01630
SOURCE NUMBER WILL BE AT SAME LOCATION THROUGHOUT RUN). RAM01640
ALL RECEPTORS IDENTIFIED AS PRODUCING HIGH CONCENTRATIONS RAM01650
IN STEPS 2 AND 3 SHOULD BE USED. THIS RUN IS PROBABLY RAM01660
FOR A ONE-YEAR PERIOD AND THE ONLY OUTPUT NEEDED IS THE RAM01670
HIGH-FIVE' TABLE FOR DETERMINATION OF ANNUAL CONCENTRATIONSRAM01680
AND HIGHEST AND SECOND HIGHEST CONCENTRATIONS FOR EACH RAM01690
AVERAGING TIME.(THESE WILL BE AVAILABLE FOR EACH RECEPTOR)RAM01700
RAM01710
ALTHOUGH THIS METHOD WILL STILL BE RELATIVELY EXPENSIVE
(ESPECIALLY IF MANY RECEPTORS ARE USED), IT PROVIDES A
SYSTEMATIC METHODOLOGY FOR LOOKING FOR MAXIMUM CONCENTRATIONS.
**********#********************#***********^^
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
DEFAULT OPTION DESCRIPTION
SELECTION OF THE DEFAULT OPTION CAUSES
FOLLOWING FEATURES TO BE SET:
THE
FINAL PLUME RISE IS USED: GRADUAL
(TRANSITIONAL) RISE IS NOT PERMITTED.
MOMENTUM PLUME RISE IS ALWAYS ACCOUNTED
FOR.
BUOYANCY INDUCED DISPERSION IS USED
THE POWER LAW WIND PROFILE EXPONENTS
HAVE BEEN PRESET TO .15. .15, .20, .25
.30 AND .30 FOR THE URBAN OPTION FOR
STABILITY A THROUGH F RESPECTIVELY;
MUOR HAS BEEN PRESET TO 1 , URBAN
OPTION.
STACK TIP DOWNWASH WILL ALWAYS BE
CALCULATED WHEN APPROPRIATE. BRIGGS
STACK TIP DOWNWASH IS USED.
EXPONENTIAL DECAY (HALF-LIFE) IS
SET TO 4 HOURS FOR URBAN S02 APPLICATIONS,
OTHER SITUATIONS USE NO DECAY. THIS IS
CONSISTENT WITH REGULATORY GUIDANCE.
CONCENTRATIONS FOR CALM HOURS ARE SET
FOR MULTI-HOUR AVERAGING PERIODS THE
THE CONCENTRATIONS RESULTING FROM THE
CONSIDERATION OF CALM WIND CONDITIONS
ARE TREATED AS DESCRIBED IN SECTION U
OF THIS PROGRAM.
IN ORDER TO FACILITATE THE HANDLING OF
CALM WIND CONDITIONS, THE START HOUR
AND THE AVERAGING PERIOD HAVE BEEN
TO 0.
'10*
:*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
$
*
*
*
*
*
*
*
#
*
*
*
*
*
*
*
*
*
*
RAM01720
RAM01730
FS.RAM01740
RAM01750
RAM01760
RAM01770
RAM01780
RAM01790
RAM01800
RAM01810
RAM01820
RAM01830
RAM01840
RAM01850
RAM01860
RAM01870
RAM01880
RAM01890
RAM01900
RAM01910
RAM01920
RAM01930
RAM01940
RAM01950
RAM01960
RAM01970
RAM01980
RAM01990
RAM02000
RAM02010
RAM02020
RAM02030
RAM02040
RAM02050
RAM02060
RAM02070
RAM02080
RAM02090
RAM02100
A-ll
-------
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
* PRESET. THIS WILL AVOID CONFLICT *
* WITH THE CALMS PROCESSING PROCEDURE. *
* - IF ONSITE OR OTHER THAN RAMMET METE- *
* GEOLOGICAL DATA ARE TO BE USED IT MUST *
* CORRESPOND TO THE FORMAT OF THE RAMMET *
* FILE AND BE READ INTO THE PROGRAM ON *
* DEVICE (11). *
* - OUTPUT OPTIONS 23 THROUGH 35 ARE SET TO 1 *
* AND OPTIONS 7,8,11,12,15,16 AND 39 *
* THROUGH 43 ARE SET TO 0. *
* *
*************************************************************
THREE SYSTEMS OF LENGTH AND COORDINATES ARE USED IN RAM:
THE FIRST SYSTEM, USER UNITS, IS SELECTED BY THE USER AND
NORMALLY USE THE COORDINATE SYSTEM OF THE EMISSION INVENTORY.
ALL LOCATIONS INPUT BY THE USER? SUCH AS SOURCES AND RECEPTORS)
ARE IN THIS SYSTEM. ALSO AS A CONVENIENCE TO THE USER ALL
LOCATIONS ON OUTPUT ARE ALSO IN THIS SYSTEM.
THE SECOND SYSTEM. INTERNAL UNITS, IS USED INTERNALLY IN RAM
FOR COORDINATE LOCATIONS AND DISTANCES. ONE INTERNAL UNIT IS THE
SIDE LENGTH OF THE SMALLEST AREA SOURCE SQUARE. THIS LENGTH MUST
BE IDENTIFIED AND SPECIFIED BY THE USER. THE PURPOSE OF USING
INTERNAL UNITS IS TO HAVE A CORRESPONDENCE BETWEEN LOCATION (GRID
COORDINATES) AND PARTICULAR AREA SOURCE POSITIONS. THIS IS
ACCOMPLISHED THROUGH THE USE OF THE AREA SOURCE MAP ARRAY (IA
ARRAY). THIS ALLOWS DETERMINATION AS TO WITHIN WHICH AREA SOURCE
ANY COORDINATE POINT RESIDES.
THE THIRD SYSTEM, X, Y, IS AN UPWIND, CROSSWIND COORDINATE SYSTEM
WITH REFERENCE TO EACH RECEPTOR. THE X-AXIS IS DIRECTED UPWIND
(SAME AS WIND DIRECTION FOR THE PERIOD). IN ORDER TO DETERMINE
DISPERSION PARAMETER VALUES AND EVALUATE EQUATIONS FOR
CONCENTRATIONS, DISTANCES IN THIS SYSTEM MUST BE IN KILOMETERS.
C->->->-> SECTION B - DATA INPUT LISTS.
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
CARD VARIABLES AND FORMAT.
THE REQUIRED AND OPTIONAL CARD TYPES USED AS INPUT TO
RAM ARE DESCRIBED BELOW:
CARDS 1-3 ALPHANUMERIC DATA FOR TITLES. FORMAT(20A4)
(THESE THREE CARDS ARE REQUIRED)
LINE1 - 80 ALPHANUMERIC CHARACTERS.
LINE2 - 80 ALPHANUMERIC CHARACTERS.
LINES - 80 ALPHANUMERIC CHARACTERS.
CARD 4 CONTROL AND CONSTANTS. FORMAT(FREE)
(THIS CARD IS REQUIRED)
IDATE(l) - 2-DIGIT YEAR FOR THIS RUN.
IDATE(2) - STARTING JULIAN DAY FOR THIS RUN.
IHSTRT - STARTING HOUR FOR THIS RUN.
NPER - NUMBER OF AVERAGING PERIODS TO BE RUN.
NAVG - NUMBER OF HOURS IN AN AVERAGING PERIOD.
IPOL - POLLUTANT INDICATOR; IS 3 FOR S02, 4 FOR SUSPENDED
PARTICULATE.
MUOR - MODEL INDICATOR; LS 1 FOR URBAN, 2 FOR RURAL.
NSIGP - NUMBER OF POINT SOURCES FROM WHICH CONG. CONTRIB.
ARE DESIRED (MAX =25).
NSIGA - NUMBER OF AREA SOURCES FROM WHICH CONG. CONTRIB.
ARE DESIRED (MAX=10).
NAV5 - ADDITIONAL AVERAGING TIME FOR HIGH-FIVE TABLE;
MOST LIKELY EQUAL TO 2, 4, 6, OR 12.
CONONE - MULTIPLIER TO CONVERT USER UNITS TO KILOMETERS.
EXAMPLE MULTIPLIERS:
RAM02110
RAM02120
RAM02130
RAM02140
RAM02150
RAM02160
RAM02170
RAM02180
RAM02190
RAM02200
RAM02210
RAM02220
RAM02230
RAM02240
RAM02250
RAM02260
RAM02270
RAM02280
RAM02290
RAM02300
RAM02310
RAM02320
RAM02330
RAM02340
RAM02350
RAM02360
RAM02370
RAM02380
RAM02390
RAM02400
RAM02410
RAM02420
RAM02430
RAM02440
RAM02450
RAM02460
RAM02470
RAM02480
RAM02490
RAM02500
RAM02510
RAM02520
RAM02530
RAM02540
RAM02550
RAM02560
RAM02570
RAM02580
RAM02590
RAM02600
RAM02610
RAM02620
RAM02630
RAM02640
RAM02650
RAM02660
RAM02670
RAM02680
RAM02690
RAM02700
RAM02710
RAM02720
RAM02730
RAM02740
RAM02750
RAM02760
RAM02770
RAM02780
RAM02790
RAM02800
A-12
-------
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
c
c
c
c
c
c
FEET TO KM 3.048E-04
MILES TO KM 1.609344
METERS TO KM l.OE-03
UNITS - NUMBER OF USER UNITS PER SMALLEST AREA SOURCE SIDE
LENGTH. (IF NOT USING AREA SOURCES, UNITS
SHOULD EQUAL 1.)
Z - RECEPTOR HEIGHT (METERS)
RAM02810
RAM02820
RAM02830
RAM02840
RAM02850
RAM02860
RAM02870
HAFL - POLLUTANT HALF-LIFE, SECONDS. AN ENTRY OF ZERO WILLRAM02880
CAUSE SKIPPING OF POLLUTANT LOSS CALCULATIONS .
******************************************************
* RAM IS CAPABLE OF GENERATING A *
* LARGE QUANTITY OF PRINTED INFORMATION UNLESS SOME *
* OF THESE OPTIONS TO DELETE OUTPUT ARE USED *
* LIBERALLY. *
******************************************************
CARD 5.~ OPTIONS. FORMAT(50I1)
(THIS CARD IS REQUIRED)
1 = EMPLOY OPTION (OR YES); 0 = DON'T USE OPTION (OR NO).
TECHNICAL OPTIONS:
IOPT
IOPT
IOPT
IOPT
"9 *
tj '
O '
4'
- NO STACK DOWNWASH.
- NO GRADUAL PLUME RISE.
- USE BUOYANCY INDUCED DISPERSION.
- NOT USED THIS VERSION.
INPUT OPTIONS:
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
f •
r*
*7
rV
9
1
1]
12
1C
- WILL YOU INPUT POINT SOURCES?
- WILL YOU INPUT AREA SOURCES?
- WILL YOU USE EMISSIONS FROM PREVIOUS RUN? (UNIT 9)
- MET. DATA ON CARDS? (FROM UNIT 11 OTHERWISE)
- READ HOURLY PT. SOURCE EMISSIONS. (UNIT 15)
) - READ HOURLY AREA SOURCE EMISSIONS. (UNIT 16)
. - SPECIFY SIGNIF. PT. SOURCES.
! - SPECIFY SIGNIF. AREA SOURCES.
! - NOT USED THIS VERSION.
RAM02890
RAM02900
RAM02910
RAM02920
RAM02930
RAM02940
RAM02950
3 AMD 2 960
RAM02970
RAM02980
RAM02990
RAM03000
RAM03010
RAM03020
RAM03030
RAM03040
RAM03050
RAM03060
RAM03070
RAM03080
RAM03090
RAMOS 100
RAM03110
RAMOS 120
RAM03130
RAMOS 140
RAM03150
RAMOS 160
RAMOS 170
RAMOS 180
RAMOS 190
RECEPTOR OPTIONS
IOPT?14) - WILL
IOPT(15) -
IOPT(16) -
IOPT(17) -
IOPT(18) -
IOPT(19) -
RAM03200
RAM03210
YOU ENTER RECEPTORS BY SPECIFYING COORDINATES7RAM03220
DO YOU WANT RAM TO GENERATE RECEPTORS DOWNWIND OF RAM03230
SIGNIF. PT. SOURCES? (WILL DO SO BY AVG-PERIOD)
DO YOU WANT RAM TO GENERATE RECEPTORS DOWNWIND OF
SIGNIF. AREA SOURCES? (WILL DO SO BY AVG-PERIOD)
DO YOU WANT RAM TO GENERATE A HONEYCOMB ARRAY OF
RECEPTORS TO COVER A SPECIFIC AREA?
WILL YOU INPUT RADIAL DISTANCES (UP TO 5) TO
GENERATE A POLAR COORDINATE RECEPTOR ARRAY
(36 RECEPTORS FOR EACH DISTANCE)
NOT USED THIS VERSION
PRINTED OUTPUT OPTIONS
IOPT(20}
IOPTC21
IOPT(22
IOPT(23J
IOPT(24
IOPT(25
IOPT(26
IOPT(27
FOR
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
28
29
30
31
32
33
DELETE POINT SOURCE LIST
DELETE AREA SOURCE LIST AND MAP
DELETE EMISSIONS WITH HEIGHT TABLE
DELETE RESULTANT MET. DATA SUMMARY
AVERAGING PERIOD.
DELETE ALL HOURLY OUTPUT (PT., AREA, & SUMMARIES)
DELETE HOURLY POINT CONTRIBUTIONS
DELETE MET. DATA ON HR. PT. CONTRIB.
DELETE PLUME HT. AND DIST. TO FINAL RISE ON
HR. PT. CONTRIB.
DELETE HOURLY AREA CONTRIBUTIONS
DELETE MET. DATA ON HR. AREA CONTRIB.
DELETE HOURLY SUMMARY.
DELETE MET. DATA ON HOURLY SUMMARY.
DELETE ALL AVG-PERIOD OUTPUT
DELETE POINT AVG-PERIOD CONTRIBUTIONS.
RAM03240
RAM03250
RAM03260
RAM03270
RAM03280
RAM03290
RAM03300
RAM03310
RAM03320
RAM03330
RAM03340
HAM03350
RAM03360
RAM03370
RAM03380
RAM03390
RAM03400
RAM03410
RAM03420
RAM03430
RAM03440
RAM03450
RAM03460
RAM03470
RAM03480
RAM03490
RAM03500
A-13
-------
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
c
c
c
c
c
c
IOPT 34 - DELETE AREA AVG-PERIOD CONTRIBUTIONS.
IOPT 35 - DELETE AVG-PERIOD SUMMARY.
IOPT 36 - DELETE AVERAGE CONCENTRATIONS & HI-FIVE TABLE.
IOPT 37 - NOT USED THIS VERSION.
DEFAULT OPTION
IOPT(38) - SET DEFAULT OPTION
OTHER CONTROL AND OUTPUT OPTIONS:
IOPT(39) - RUN IS PART OF A SEGMENTED RUN.
* * * * SEE CAUTION BELOW *****
IOPT(40) - WRITE PARTIAL CONG. TO DISK OR TAPE. (UNIT 10)
* * * * SEE NOTE BELOW *****
IOPT(41) - WRITE HOURLY CONG. TO DISK OR TAPE. (UNIT 12)
* * * * SEE NOTE BELOW *****
IOPT 42 - WRITE AVG-PERIOD CONG. TO DISK OR TAPE. (UNIT 13)
IOPT 43 - PUNCH AVG-PERIOD CONCENTRATIONS ON CARDS. (UNIT 1)
IOPT 44 - NOT USED THIS VERSION.
IOPT 45 - NOT USED THIS VERSION.
IOPT 46 - NOT USED THIS VERSION.
IOPT 47 - NOT USED THIS VERSION.
IOPT 48 - NOT USED THIS VERSION.
IOPT 49 - NOT USED THIS VERSION.
IOPT 50 - NOT USED THIS VERSION.
* * * * CAUTION ON USING OPTION 40. *****
A TREMENDOUS FILE OF MANY RECORDS CAN
CAN BE GENERATED BY EMPLOYING OPTION 40.
THE USER WILL NEED TO WRITE THE SOFTWARE
TO PROCESS THIS FILE ALSO. BE SURE YOU
PLAN AHEAD BEFORE USING THIS OPTION.
ALTHOUGH THE AUTHORS FEEL IT IS UNLIKELY
TO EMPLOY OPTIONS 39 AND 40 ON THE SAME RUN,
IT IS POSSIBLE TO DO SO. HOWEVER, NOTE THAT
THE SECOND AND SUBSEQUENT SEGMENTS WILL NOT
SKIP OVER PREVIOUSLY GENERATED PARTIAL CONG.
FILES. THEREFORE UNLESS THE EXECUTIVE CONTROL
LANGAGE HAS BEEN CHANGED SO THAT UNIT 10
ACCESSES A DIFFERENT FILE ON EACH SEGMENT,
ANY PREVIOUSLY GENERATED PARTIAL CONCENTRATION
FILES WILL BE DESTROYED BY WRITING OVER THESE
FILES.
* ** * NOTE ON OUTPUT FILES* * * * *
THE AUTHORS FEEL THAT THE OUTPUT FILES
GENERATED BY OPTIONS 41 AND 42 ARE USEFUL
ONLY WHEN THE RECEPTORS ARE SET FOR THE RUN
AND NOT VARYING FROM ONE AVG-PER TO ANOTHER.
THEREFORE THESE OPTIONS CAN BE USED WITH OPTIONS
14 AND 18, BUT A PROGRAM TERMINATION WILL
OCCUR IF TRYING TO USE OPTIONS 41 OR 42 IN
COMBINATION WITH ANY OF OPTIONS 15, 16, OR 17.
CARD 6. WIND. FORMAT (FREE)
(THIS CARD IS REQUIRED)
HANE - ANEMOMETER HEIGHT (METERS)
PL (I), 1=1, 6 - WIND SPEED POWER LAW PROFILE EXPONENTS FOR EACH
STABILITY.
*****DEFAULT OPTION NOTE*****
SELECTION OF THE DEFAULT OPTION CAUSES PL
TO BE SET TO THE VALUES DESCRIBED ABOVE UNDER
DEFAULT OPTION DESCRIPTION. UNDER THIS OPTION,
CARD 6 IS STILL REQUIRED TO INPUT HANE.
RAM03510
RAM03520
RAM03530
RAM03540
RAM03550
RAM03560
RAM03570
RAM03580
RAM03590
RAM03600
RAM03610
RAM03620
RAM03630
RAM03640
RAM03650
RAMOS 660
RAM03670
RAM03680
RAM03690
RAM03700
RAM03710
RAM03720
RAM03730
RAM03740
RAM03750
RAM03760
RAM03770
RAM03780
RAM03790
RAM03800
RAM03810
RAM03820
RAM03830
RAM03840
RAM03850
RAM03860
RAM03870
RAM03880
RAM03890
RAM03900
RAM03910
RAM03920
RAM03930
RAM03940
RAM03950
RAM03960
RAM03970
RAM03980
RAM03990
RAM04000
RAM04010
RAM04020
RAM04030
RAM04040
RAM04050
RAM04060
RAM04070
RAM04080
RAM04090
RAM04100
RAM04110
RAM04120
RAM04130
RAM04140
RAM04150
RAM04160
RAM04170
RAM04180
RAM04190
RAM04200
A-14
-------
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
c
c
c
c
c
c
ALL OTHER DATA ON THE CARD WILL BE IGNORED.
RAM04210
RAM04220
RAM04230
RAM04240
RAM04250
RAM04260
RAM04270
RAM04280
PNAME(I.NPT)I=1,3 - 12 CHARACTER POINT SOURCE IDENTIFICATION. RAM04290
EAST COORDINATE OF POINT SOURCE (USER UNITS) RAM04300
NORTH COORDINATE OF POINT SOURCE (USER UNITS)RAM04310
CARD TYPE 7. POINT SOURCE CARD. FORMAT(3A4,8F8.2)
(USED IF OPTION 5 = 1 AND OPTION 7=0)
(UP TO 250 POINT SOURCE CARDS ARE ALLOWED.)
SOURCE
SOURCE
SOURCE
SOURCE
SOURCE
SOURCE
.ma;
l.NPT
2.NPT
3.NPT
4.NPT
5,NPT
6,NPT
SOURCE 7.NPT,
SOURCE(8,NPT) -
SULFUR DIOXIDE EMISSION RATE (G/SE
PARTICULATE EMISSION RATE fG/SEC).
PHYSICAL STACK HEIGHT (METERS).
STACK GAS TEMPERATURE (KELVIN).
STACK INSIDE DIAMETER (.METERS;.
STACK GAS EXIT VELOCITY (M/SEC).
EC)
CARD WITH 'ENDP' IN COLS 1-4 IS USED TO SIGNIFY THE
END OF THE POINT SOURCES.
CARD TYPE 8. 'AREA SOURCE CARD. FORMAT(3A4.6F10.2)
(USED IF OPTION 6 = 1 AND OPTION
(ONE CARD FOR EACH AREA SOURCE, UP TO
100 AREA SOURCE CARDS ALLOWED.)
7 =0)
RAM04320
RAM04330
RAM04340
RAM04350
RAM0436G
RAM04370
RAM04380
RAM04390
RAM04400
RAM04410
RAM04420
RAM04430
RAM04440
RAM04450
RAM04460
RAM04470
RAM04480
RAM04490
RAM04500
RAM04510
RAM04520
RAM04530
RAM04540
RAM04550
RAM04560
RAM04570
RAM04580
RAM04590
RAM04600
RAM04610
RAM04620
RAM04630
RAM04640
RAM04650
RAM04660
RAM04670
j-j. — A* «u j.xji 1'iuu j. LIU n\xi* tiKtt\\j. / RAM04OOU
- NUMBER OF USER SPECIFIED SIGNIFICANT SOURCES.RAM04690
ANAME(J,NAS),J=1,3 - 12 CHAR. AREA SOURCE INDENT.
ASORC(l.NAS) - EAST COORD. OF SW CORNER OF AREA SOURCE
(USER UNITS).
ASORC(2,NAS) - NORTH COORD. OF SW CORNER OF AREA SOURCE
(USER UNITS).
ASORC(5,NAS) - SIDE LENGTH OF AREA SOURCE (USER UNITS).
ASORC(3,NAS) - SULFUR DIOXIDE EMISSION RATE FOR ENTIRE
AREA (G/SEC).
ASORC(4,NAS) - PARTICULATE EMISSION RATE FOR ENTIRE
AREA (G/SEC).
ASORC(6,NAS) - AREA SOURCE HEIGHT (METERS).
(NOTE THAT ASORC(5,NAS) - SIDE LENGTH IS READ OUT OF ORDER
TO CONFORM WITH THE EXISTING ORDER OF IPP EMISSIONS DATA.)
CARD WITH 'ENDA' IN COLS 1 -4 IS USED
TO SIGNIFY THE END OF THE AREA SOURCES.
CARD TYPE 9. SPECIFIED SIGNIFICANT PT. SOURCES. FORMAT(26I3)
(USED IF OPTION 11 = 1; NSIGP MUST BE NON-ZERO.)
INPT
MPS(I),I=1,NPT -
POINT SOURCE NUMBERS USER WANTS CONSIDERED
SIGNIFICANT. '
CARD TYPE 10. INFO. ASSOCIATED WITH AREA SOURCES. FORMAT(FREE)
(THIS CARD IS REQUIRED ONLY IF IOPT(6)=1)
FH
XLIM
FRACTION OF AREA SOURCE HEIGHT WHICH IS PHYSICAL
HEIGHT.
RAM04700
RAM04710
RAM04720
RAM04730
RAM04740
RAM04750
RAM04760
RAM04770
DISTANCE LIMIT ON INTEGRATION FOR AREA SOURCE (USER RAM04780
UNITS). XLIM CANNOT EXCEED 116 KM. RAM04790
INTEGER NUMBER OF HEIGHTS TO BE USED FOR AREA RAM04800
SOURCES (MIN=1,MAX=3). RAM04810
HEIGHT(S) (METERS) FOR AREA SOURCE INTEGRATIONS. RAM04820
THIS IS AN ARRAY OF FROM ONE TO THREE ELEMENTS. RAM04830
RAM04840
RAM04850
RAM04860
RAM04870
RAM04880
BPH -BREAKPOINT HEIGHTS (METERS) BETWEEN AREA SOURCE HEIGHTS.RAM04890
THESE VALUES DEFINE THE BOUNDS OF HEIGHTS CLASSES. RAM04900
NHTS
HINT
CARD TYPE 11. BREAKPOINT HEIGHTS. FORMAT(FREE)
(THIS CARD IS REQUIRED ONLY WHEN CARD TYPE 10 IS USED.)
A-15
-------
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
c
c
c
c
c
c
CARD TYPE 12. SPECIFY SIGNIF. AREA SOURCES. FORMAT(26I3)
(USED IF IOPT(12)=1; NSIGA MUST BE NON-ZERO.)
INAS - NUMBER OF USER SPECIFIED SIGNIFICANT AREA SOURCES
(MAX=10_).
MAS - AREA SOURCE NUMBERS USER WANTS TO CONSIDER SIGNIF.
CARD TYPE 13. MET. DATA IDENTIFIERS. FORMAT(FREE)
(USED IF OPTION 8=0)
ISFCD - SFC MET STATION IDENTIFIER
ISFCYR - YEAR OF SFC MET DATA
IMXD - UPPER-AIR STATION IDENTIFIER
IMXYR - YEAR OF MIXING HEIGHT DATA
DIGITS;
DIGITS
DIGITS
DIGITS
BPH IS AN ARRAY OF TWO ELEMENTS. ONE VALUE WILL BE READRAM04910
IF NHTS ON PREVIOUS CARD IS 1 OR 2. TWO VALUES READ FORRAM04920
NHTS=3. IF NHTS IS 1, THE VALUE OF BPH MUST BE LARGER RAM04930
THAN ANY AREA HEIGHT IN THE DATA SET FOR THE RUN. RAM04940
RAM04950
RAM04960
RAM04970
RAM04980
RAM04990
RAM05000
RAM05010
RAM05020
RAM05030
RAM05040
RAMOS050
RAM05060
RAM05070
RAM05080
RAM05090
RAM05100
RAMOS110
RAMOS120
RAMOS130
RAM05140
RAMOS150
RAM05160
RAMOS170
RAMOS180
RAMOS190
RAM05200
RAM05210
RAM05220
RAM05230
RAM05240
RAM05250
RAM05260
RAM05270
RAM05280
RAM05290
RAM05300
RAM05310
RAM05320
RAM05330
RAM05340
RAM05350
RAM05360
RAM05370
RAM05380
RAM05390
RAM05400
RAM05410
RAM05420
RAM05430
RAM05440
RAM05450
RAM05460
RAM05470
RAM05480
RAM05490
RAM05500
RAM05510
RAM05520
RAM05530
RAM05540
RAM05550
RAM05560
RAM05570
RAM05580
RAM05590
RAM05600
CARD TYPE 14. POLAR COORDINATE RECEPTORS. FORMAT(FREE)
(USED IF OPTION 18 = 1)
RADIL(I),I= 1,5 - ONE TO FIVE RADIAL DISTANCES (REST OF FIVE
ARE ZEROS) EACH OF WHICH GENERATES 36 '
RECEPTORS AROUND POINT CENTX. CENTY ON
AZIMUTHS 10 TO 360 DEGREES. (USER UNITS)
CENTX - EAST COORDINATE ABOUT WHICH RADIALS ARE CENTERED.
(USER UNITS)
CENTY - NORTH COORDINATE ABOUT WHICH RADIALS ARE-CENTERED.
(USER UNITS)
CARD TYPE 15. RECEPTOR. FORMAT(2A4.2F10.3, F10.0)
(USED IF OPTION 14 = 1)
(REMEMBER, 180 IS TOTAL NUMBER OF RECEPTORS ALLOWED IN RAM)
RNAME(I),I=1,2 - 8 DIGIT ALPHANUMERIC STATION IDENTIFICATION.
RREC - EAST COORDINATE OF RECEPTOR (USER UNITS)
SREC - NORTH COORDINATE OF RECEPTOR (USER UNITS)
CARD WITH 'ENDR' IN COLS 1-4 IS USED TO SIGNIFY THE END OF
THE RECEPTOR CARDS. (NEEDED ONLY IF IOPT(14)=1.)
CARD TYPE 16. HONEYCOMB BOUNDARIES. FORMAT(FREE)
(USED IF OPTION 17 = 1)
(HONEYCOMB RECEPTORS WILL ONLY BE GENERATED FOR THE AREA
DEFINED BY THESE BOUNDS)
NOTE, IF BOUNDARY VARIABLES ARE INPUT AS ZERO, BOUNDARIES
WILL BE THE SAME AS THE AREA SOURCE REGION. HOWEVER, IF
NO AREA SOURCES ARE INPUT AND IF HONEYCOMB RECEPTORS ARE
TO BE GENERATED, THIS CARD MUST HAVE BOUNDARIES INCLUDED
TO PROVIDE THE BOUNDS FOR RECEPTOR GENERATION.
GRIDSPACE - GRID SPACING (DISTANCE BETWEEN) FOR HONEYCOMB
RECEPTORS TUSER UNITS).
HRMIN - MINIMUM EAST COORDINATE (USER UNITS).
HRMAX - MAXIMUM EAST COORDINATE (USER UNITS).
HSMIN - MINIMUM NORTH COORDINATE (USER UNITS).
HSMAX - MAXIMUM NORTH COORDINATE (USER UNITS).
CARD TYPE 17. SEGMENTED RUN. FORMAT(FREE)
(USED IF OPTION 39=1)
A-16
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
IDAY - NUMBER OF DAYS PREVIOUSLY PROCESSED.
LDRUN - LAST DAY TO BE PROCESSED IN THIS RUN.
CARD TYPE 18. METEOROLOGY. FORMAT (FREE)
(USED IF OPTION 5=1)
(ONE CARD FOR EACH HOUR OF THE SIMULATION. )
JYR - YEAR OF MET DATA. (2 DIGITS)
DAY1 - JULIAN DAY OF MET DATA.
JHR - HOUR OF MET DATA.
IKST - STABILITY CLASS FOR THIS HOUR.
QU - WIND SPEED FOR THIS HOUR (M/SEC).
QTEMP - AMBIENT AIR TEMPERATURE FOR THIS HOUR (KELVIN).
QTHETA - WIND DIRECTION FOR THIS HOUR (DEGREES AZIMUTH FROM
WHICH THE WIND BLOWS).
QHL - MIXING HEIGHT FOR THIS HOUR (METERS).
C->->->-> SECTION C - INPUT FILE DESCRIPTIONS,
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
INPUT FILE (UNIT 11) METEOROLOGICAL DATA (USED IF IOPT(8)=0)
RECORD 1
ID SFC STATION IDENTIFIER, 5 DIGITS
IYEAR YEAR OF SURFACE DATA, 2 DIGITS
IDM MIX HT STATION IDENTIFIER, 5 DIGITS
IYR YEAR OF MIX HT DATA, 2 DIGITS
•
RECORD TYPE 2 (ONE FOR EACH DAY OF YEAR)
JYR YEAR
IMO MONTH
DAY1 JULIAN DAY
IKST(24) STABILITY CLASS
QU(24) WIND SPEED, METERS PER SECOND
QTEMP(24) AMBIENT AIR TEMPERATURE, KELVIN
DUMR(24) FLOW VECTOR TO 10 DEG, DEGREES AZIMUTH
QTHETA(24) RANDOMIZED FLOW VECTOR, DEGREES AZIMUTH
HLH(2,24) MIXING HEIGHT, METERS
INPUT FILE(UNIT 15) POINT SOURCE HOURLY EMISSION DATA
(USED IF IOPT(9)=1)
RECORD TYPE 1 (ONE FOR EACH HOUR OF SIMULATION)
IDATA DATE-TIME INDICATOR CONSISTING OF YEAR,
JULIAN DAY, AND HOUR: YYDDDHH.
SOURCE(IPOL,I),I=1,NPT EMISSION RATE FOR THE POLLUTANT IPOL
FOR EACH SOURCE, GRAMS PER SECOND.
INPUT FILE (UNIT 16) AREA SOURCE HOURLY EMISSION DATA
(USED IF IOPT(10) = 1)
RECORD TYPE 1 (ONE FOR EACH HOUR OF SIMULATION)
IDATA DATE-TIME INDICATOR CONSISTING OF YEAR,
JULIAN DAY, AND HOURS YYDDDHH.
ASORC(IPOL,I),I=1,NAS EMISSION RATE FOR THE POLLUTANT IPOL
RAM05610
RAM05620
RAM05630
RAM05640
RAM05650
RAM05660
RAM05670
RAM05680
RAM05690
RAM05700
RAM05710
RAM05720
RAM05730
RAM05740
RAM05750
HM105760
RAM05770
RAMOS 780
RAM05790
RAM05800
RAM05810
RAM05820
RAM05830
RAM05840
RAM05850
RAM05860
RAM05870
RAM05880
RAM05890
RAM05900
RAM05910
RAM05920
RAM05930
RAMOS 940
RAM05950
RAM05960
RAM05970
RAM05980
RAM05990
RAM06000
RAM06010
RAM06020
RAM06030
RAM06040
RAM06050
RAM06060
RAM06070
RAM06080
RAM06090
RAM06100
RAM06110
RAM06120
RAM06130
RAM06140
RAM06150
RAM06160
RAM06170
RAM06180
RAM06190
FOR EACH SOURCE, GRAMS PER SECOND FOR EACH AREARAM06200
C->->->-> SECTION D - OUTPUT PUNCHED CARD DESCRIPTION
C
C
C
C
C
C
C
C
OUTPUT PUNCHED CARDS (UNIT 1) AVERAGE CONCENTRATIONS
(PUNCHED IF IOPT(43)=1)
CARD TYPE 1 (ONE FOR EACH RECEPTOR FOR EACH AVERAGING TIME)
CC:l-4 WORD'CNTL' PUNCHED
CC:5 BLANK
RAM06210
RAM06220
RAM06230
RAM06240
RAM06250
RAM06260
RAM06270
RAM06280
RAM06290
RAM06300
A-17
-------
c
c
c
c
c
c
c
c
c
c
c
CC:6-15 RREC EAST COORDINATE OF RECEPTOR,, USER UNITS
CC: 16-25 SREC NORTH COORDINATE OF RECEPTOR, USER UNITS
RAM06310
RAM06320
CC: 26-35 GWU CONCENTRATION FOR AVERAGING TIME, MICROG/M**3RAM06330
CC: 36-45 ACHI(K) CONG. FROM AREAS , MICROG/M**3
CC: 46-55 PCHI(K) CONG. FROM POINTS, MICROG/M**3
CC: 56-60 K RECEPTOR NUMBER
CC: 61-65 IDATE(l) YEAR
CC: 66-70 IDATE(2) JULIAN DAY
CC: 71-75 NE ENDING HOUR FOR AVG-PER.
CC: 76-80 NAVG NUMBER OF HOURS IN AVG-PER.
C->->->-> SECTION E - OUTPUT FILE DESCRIPTIONS
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
OUTPUT FILE (UNIT 10) PARTIAL CONCENTRATIONS (USED IF IOPT(40)=1)
RECORD TYPE 1
NPER NUMBER OF PERIODS
NAVG NUMBER OF HOURS IN AVERAGING PERIOD.
LINE1(14) 80 ALPHANUMERIC CHARACTERS FOR TITLE.
LINE2(14) 80 ALPHANUMERIC CHARACTERS FOR TITLE.
LINES (14) 80 ALPHANUMERIC CHARACTERS FOR TITLE.
RECORD TYPE 2 (FROM RAM ) (ONE FOR EACH AVERAGING PERIOD)
NRECEP NUMBER OF RECEPTORS
NPT NUMBER OF POINT SOURCES
NAS NUMBER OF AREA- SOURCES
RREC (I), 1=1, NRECEP EAST COORDINATE OF RECEPTOR, USER UNITS
SREC(I), 1=1, NRECEP NORTH COORDINATE OF RECEPTOR, USER UNITS
FOR EACH SIMULATION HOUR, NRECEP RECORDS OF TYPE 3
ARE GENERATED FOLLOWED BY NRECEP RECORDS OF TYPE 4.
RECORD TYPE 3 (ONE FOR EACH RECEPTOR FOR EACH SIMULATED HOUR,
FROM PT )
IDATE YEAR AND JULIAN DAY
LH HOUR
K RECEPTOR NUMBER
PAHTC(J),J=1,NPT CONCENTRATION AT RECEPTOR K FROM POINT
SOURCE J, G/M**3.
RECORD TYPE 4 (ONE FOR EACH RECEPTOR FOR
EACH SIMULATED HOUR .FROM JMHARE)
IDATE YEAR AND JULIAN DAY
LH HOUR
KREC RECEPTOR NUMBER
PARTC(J),J=1,NAS CONCENTRATION AT RECEPTOR KHEC FROM AREA
SOURCE J, G/M**3
OUTPUT FILE (UNIT 12) HOURLY CONCENTRATIONS (USED IF IOPT(41)=1)
RECORD 1
NPER NUMBER OF PERIODS
NAVG NUMBER OF HOURS IN AVERAGING PERIOD.
LINE1Q4) 80 ALPHANUMERIC CHARACTERS FOR TITLE.
LINE2(14) 80 ALPHANUMERIC CHARACTERS FOR TITLE.
LINES (14) 80 ALPHANUMERIC CHARACTERS FOR TITLE.
RECORD 2
NRECEP NUMBER OF RECEPTORS.
RREC? I ),!=!, NRECEP EAST COORDINATE OF RECEPTOR, USER UNITS
SREC (I), 1=1, NRECEP NORTH COORDINATE OF RECEPTOR, USER UNITS
RECORD TYPE 3 (ONE FOR EACH SIMULATED HOUR)
RAM06340
RAM06350
RAM06360
RAM06370
RAM06380
RAM06390
RAM06400
RAM06410
RAM06420
RAM06430
RAM06440
RAM06450
RAM06460
RAM06470
RAM06480
RAM06490
RAM06500
RAM06510
RAM06520
RAM06530
RAM06540
RAM06550
RAM06560
RAM06570
RAM06580
RAM06590
RAM06600
RAM06610
RAM06620
RAM06630
RAM06640
RAM06650
RAM06660
RAM06670
RAM06680
RAM06690
RAM06700
RAM06710
RAM06720
RAM06730
RAM06740
RAM06750
RAM06760
RAM06770
RAM06780
RAM06790
RAM06800
RAM06810
RAM06820
RAM06830
RAM06840
RAM06850
RAM06860
RAM06870
RAM06880
RAM06890
RAM06900
RAM06910
RAM06920
RAM06930
RAM06940
RAM06950
RAM06960
RAM06970
RAM06980
RAM06990
RAM07000
A-18
-------
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
c
c
c
c
c
c
IDATE(2) JULIAN DAY
LH HOUR
PHCHI(I),!=!,NRECEP HOURLY CONCENTRATION FOR EACH RECEPTOR,
G/M**3.
OUTPUT FILE (UNIT 13) AVERAGING-PERIOD CONCENTRATIONS (USED IF
IOPT(42)=1)
RECORD 1
NPER
NAVG
LINEK
LINE2(
LINES(
RECORD 2
NRECEP
RREC
SREC
NUMBER OF PERIODS
NUMBER OF HOURS IN AVERAGING PERIOD.
80 ALPHANUMERIC CHARACTERS FOR TITLE.
80 ALPHANUMERIC CHARACTERS FOR TITLE.
80 ALPHANUMERIC CHARACTERS FOR TITLE.
NUMBER OF RECEPTORS.
=1,NRECEP EAST COORDINATE OF RECEPTOR, USER UNITS
NRECEP NORTH COORDINATE OF RECEPTOR, USER UNITS
RECORD TYPE 3 (ONE FOR EACH SIMULATED AVERAGING PERIOD)
IDATE(2) JULIAN DAY
NE ENDING HOUR OF PERIOD
PCHI(K),K=1,NRECEP AVERAGING PERIOD CONCENTRATION FOR EACH
RECEPTOR, G/M**3.
->-> SECTION F - TEMPORARY FILE DESCRIPTIONS
TEMPORARY FILE (UNIT 9) EMISSION DATA
(ALWAYS WRITTEN; READ IF IOPT (7)= 1)
RECORD 1
NPT
NAS
RECORD 2
NUMBER OF POINT SOURCES
NUMBER OF AREA SOURCES
IMPS(I), 1=1,25
SOURCE ( I, J),
1=1,9
J=1,NPT
RECORD 3
IMAS(I),I=1,10
RMIN
RMAX
SMIN
SMAX
IRSIZE
ISSIZE
ASORC(I.J)
1=1,6
J=1,NAS
1=1, IRSIZE
J=l, ISSIZE
NUMBER OF POINT SOURCE SIGNIF.
POINT SOURCE INFO.
ORDER OF AREA SOURCE SIGNIF.
WEST BOUNDARY OF AREA SOURCES
EAST BOUNDARY OF AREA SOURCES
SOUTH BOUNDARY OF AREA SOURCES
NORTH BOUNDARY OF AREA SOURCES
FIRST DIMENSION OF IA ARRAY
SECOND DIMENSION OF IA ARRAY
AREA SOURCE INFO.
AREA SOURCE MAP ARRAY.
TEMPORARY FILE (UNIT 14) VALUES FOR HIGH-FIVE TABLES (USED IF
IOPT(39)=1)
ONLY RECORD
IDAY(ON WRITE)
IDAYS(ON READ
SUM(180)
NUMBER OF DAYS PROCESSED
NUMBER OF DAYS PREVIOUSLY PROCESSED
RAM07010
RAM07020
RAM07030
RAM07040
RAM07050
RAM07060
RAM07070
RAM07080
RAM07090
RAM07100
RAM07110
RAM07120
RAM07130
RAM07140
RAM07150
RAM07160
RAM07170
RAM07180
RAM07190
RAM07200
RAM07210
RAM07220
RAM07230
RAM07240
RAM07250
RAM07260
RAM07270
RAM07280
RAM07290
RAM07300
RAM07310
RAM07320
RAM07330
RAM07340
RAM07350
RAM07360
RAM07370
RAM07380
RAM07390
RAM07400
RAM07410
RAM07420
RAM07430
RAM07440
RAM07450
RAM07460
RAM07470
RAM07480
RAM07490
RAM07500
RAM07510
RAM07520
RAM07530
RAM07540
RAM07550
RAM07560
RAM07570
RAM07580
RAM07590
RAM07600
RAM07610
RAM07620
RAM07630
RAM07640
RAM07650
RAM07660
RAM07670
RAM07680
RAM07690
CUMULATION OF LONG-TERM CONCENTRATION,(G/M**3RAM07700
A-19
-------
C NHR NUMBER OF HOURS PROCESSED RAM07710
C DAY1A JULIAN DAY OF START OF LENGTH OF RECORD. RAM07720
C HR1 START HOUR OF LENGTH OF RECORD RAM07730
C HMAXA(3,5,180,5) HIGHEST FIVE CONCENTRATIONS (G/M**3), AND RAM07740
C ASSOCIATED DAY AND HOUR, FOR EACH RECEPTOR, RAM07750
C FOR FIVE DIFFERENT AVERAGING TIMES. RAM07760
C . RAM07770
C->->->-> SECTION G - COMMON, DIMENSION, AND DATA STATEMENTS. RAM07780
C RAM07790
COMMON /AB/ DELM.DELN RAM07800
COMMON /AMOST/ DELH,FH,HINT(3),H,HL,10,IOPT(50),KST,MUOR,NHTS,RC,RRAM07810
1CZ,SY.SZ,TEMP,TLOS,UPL.X.Y,Z RAM07820
COMMON /AE/ HC1(10),PXUCOR(6,9),PXUEXR(6,9).PXCOR(6,9).PXEXR(6,9).RAM07830
1PXUCOF(6.9).PXUEXP(6,9),PXCOF(6,9),PXEXP(6,9),AXCOR(6,9),AXEXR(6,
-------
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
c
DATA ITMIN1 /9999/.IDIV8 /O/, IDIV24 /O/, ICALM /O/
DATA C/'C'/,ICFL3/0/,ICFL8/0/,ICFL24/0/,CF/5*' '/
DEFAULT POWER LAW EXPONENTS.
DATA PLL/.15,.15,.20,.25,.30,.30,.07,.07,.10,.15,.35,.55/
->->->SECTION H - FLOW DIAGRAM
RELATION OF SUBROUTINES IN RAM
RAM
* BLOCK DATA
* READ DATA FROM CARDS
* INITIALIZE SGZ
* INITIALIZE SYSZ
* INITIALIZE JMHREC
•* READ EMISSION DATA FROM
CARDS OR DISK
* READ RECEPTOR DATA
- LOOP FOR CALENDAR DAYS
- LOOP FOR AVERAGING TIME
* READ MET DATA
* ANGARC
* GREC (ENTRY TO JMHREC)
* JMHHON
- LOOP ON HOURS
- (READ HOURLY EMISSIONS)
***** PT
;
LOOP ON RECEPTORS
- LOOP OK
* * RCON
i
** SYZ(ENTRY TO SYSZ)
***** JMH54
i
! * * JMHCZ
i
i
* * SIGZ(ENTRY TO SGZ)
* * * * * JMHARE
----- LOOP ON RECEPTORS
I * * JMHPOL
RAM08410
RAM08420
RAM08430
RAM08440
RAM08450
RAM08460
RAM08470
RAM08480
RAM08490
RAM08500
RAM08510
RAM08520
RAM08530
RAM08540
RAM08550
HAM085SO
RAM08570
RAM08580
RAM08590
RAM08600
RAM08610
RAM08620
RAM08630
RAM08640
RAM08650
RAM08660
RAM08670
RAM08680
RAM08690
RAM08700
RAM08710
RAM08720
RAM08730
RAM08740
RAM08750
RAM08760
RAM08770
RAM08780
RAM08790
RAM08800
RAM08810
RAM08820
RAM08830
RAM08840
RAM08850
RAM08860
RAM08870
RAM08880
RAM08890
RAM08900
RAM08910
RAM08920
RAM08930
RAM08940
RAM08950
RAM08960
RAM08970
RAM08980
RAM08990
RAM09000
RAM09010
RAM09020
RAM09030
RAM09040
RAM09050
RAM09060
RAM09070
RAM09080
RAM09090
RAM09100
A-21
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
10
20
30
40
C
C
C
C
C
C
C
C
C
C
C
C
C
c
c
c
c
c
c
c
->->SECTION I
CALL WSTCLK
* RANK
* OUTPT
* OUTAV (ENTRY POINT IN OUTPT)
STOP
RUN SET-UP AND READ FIRST 6 INPUT CARDS.
RAM09110
RAM09120
RAM09130
RAM09140
RAM09150
RAM09160
RAM09170
RAM09180
RAM09190
RAM09200
RAM09210
RAM09220
RAM09230
RAM09240
RAM09250
RAM09260
RAM09270
INITIALIZATIONS RAM09280
THE FOLLOWING 18 STATEMENTS MAY BE DELETED FOR USE ON RAM09290
COMPUTERS THAT ZERO CORE LOCATIONS USED BY A PROBLEM RAM09300
PRIOR TO EXECUTION. RAM09310
NP=0 RAM09320
NHR=0 RAM09330
NP3=0 RAM09340
NP8=0 RAM09350
NP24=0 RAM09360
NPX=0 RAM09370
RMAX=0. RAM09380
SMAX=0. RAM09390
DO 10 1=1.21 RAM09400
TABLE(1,I)=0. RAM09410
TABLE(2,I)=0. RAM09420
DO 40 1=1,-180 RAM09430
SUM(I)=0. RAM09440
DO 30 J=l,5 RAM09450
CONC(I,J)=0. RAM09460
DO 20 K=l,5 RAM09470
HMAXA(J,I,K)=0. RAM09480
CONTINUE RAM09490
CONTINUE RAM09500
UNIT 11 - DISK INPUT OF MET DATA—USED WHEN IOPT(8)=0. RAM09510
UNIT 10 - DISK OUTPUT OF PARTIAL CONCENTRATIONS RAM09520
AT EACH RECEPTOR—USED WHEN IOPT(40) = 1. RAM09530
UNIT 12 TAPE/DISK OUTPUT OF HRLY CONCENTRATIONS-IF IOPT(41)=1. RAM09540
UNIT 13 TAPE/DISK OUTPUT OF CONCENTRATIONS FOR AVERAGING PERIODRAM09550
USED IF IOPT(42) = 1. RAM09560
UNIT 14 TAPE/DISK STORAGE FOR SUMMARY INFO, USED IF IOPT(39)=1.RAM09570
UNIT 15 - TAPE/DISK INPUT OF HOURLY POINT SOURCE EMISSIONS RAM09580
— USED IF IOPT(9) = 1. . RAM09590
UNIT 16 - TAPE/DISK INPUT OF HOURLY AREA SOURCE EMISSIONS— RAM09600
— USED IF IOPT (10)=1. RAM09610
RAM09620
RAM09630
RAM09640
RAM09650
RAM09660
RAM09670
RAM09680
READ (IN,*) IDATE(l),IDATE(2),IHSTRT.NPER.NAVG,IPOL,MUOR,NSIGP,NSIRAM09690
1GA,NAV5,CONONE,UNITS,Z.HAFL RAM09700
THE FORMAT REFERRED TO BY AN * IS UNIVACS FREE FIELD INPUT. RAM09710
VARIABLES MUST BE SEPARATED BY COMMAS. RAM09720
THIS IS SIMILAR TO IBM'S LIST DIRECTED 10. RAM09730
WRITE (10,2100) (MODEL(K,MUOR).K=1,2) RAM09740
WRITE (10,2110) LINE1.LINE2,LINES RAM09750
IPOLU=IPOLT(1) RAM09760
IF (IPOL.EQ.4) IPOLU=IPOLT(2) RAM09770
IF (NSIGP.LE.25) GO TO 50 RAM09780
READ CARDS 1-3 (SEE DESCRIPTION, SECTION B).
READ (IN,1790) LINE1.LINE2,LINES
READ CARD TYPE 4 (SEE DESCRIPTION, SECTION B).
A-22
-------
50
C
60
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
WRITE ERROR STATEMENT
WRITE (10,1860) NSIGP
CALL WAUDIT
STOP
IF (NSIGA.LE.10) GO TO 60
WRITE ERROR STATEMENT
WRITE (10,1870) NSIGA
CALL WAUDIT
STOP
IP=IPOL-2
CONTWO=CONONE*UNITS
READ CARD TYPE 5 (SEE DESCRIPTION, SECTION B).
READ (IN,1800) (IOPT(I),1=1,50)
IF(IOPT(38).NE.l) GO TO 55
DEFAULT SELECTION RESULTS IN THE FOLLOWING: USE STACK DOWNWASH
(1); USE FINAL PLUME RISE (2); USE BUOYANCY-INDUCED DISPERSION
(3); WRITE HIGH-5 TABLES (36) BUT DELETE ALL OTHER OUTPUT (23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, AND 35).
EMISSIONS FROM PREVIOUS RUN ARE NOT ALLOWED.
MET DATA ON CARDS ARE NOT ALLOWED.
SPECIFICATION OF SIGNIFICANT POINT AND AREA
SOURCES IS NOT ALLOWED.
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
IOPT
1
2
o .
7
O
1
12
15
16
23
24
25
26
27
28
29
30
31
32
33
34
35
36
39
40
41
42
43
=0
=1
=1
=0
=0
=0
=0
=0
=0
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=0
=0
=0
=0
=0
=0
SET HALF-LIFE FOR DEFAULT OPTION
IF(IPOL.EQ.3)HAFL=14400.
IF(IPOL.NE.3)HAFL=0.
SET POWER LAW WIND PROFILE EXPONENTS;
SET START HOUR, AND AVERAGING PERIOD :
SET THE NUMBER OF SIGNIFICANT POINT AND
AREA SOURCES.
MUOR=1
IHSTRT=1
RAM09790
RAM09800
RAM09810
RAM09820
RAM09830
RAM09840
RAM09850
RAM09860
RAM09870
RAM09880
RAM09890
RAM09900
RAM09910
RAM09920
RAM09930
RAM09940
RAM09950
RAM09960
RAM09970
RAM09980
RAM09990
RAM10000
RAM10010
RAM10020
RAM10030
RAM10040
RAM10050
RAM10060
RAM10070
RAM10080
RAM10090
RAM10100
RAM10110
RAM10120
RAM10130
RAM10140
RAM10150
RAM10160
RAM10170
RAM10180
RAM10190
RAM10200
RAM10210
RAM10220
RAM10230
RAM10240
RAM10250
RAM10260
RAM10270
RAM10280
RAM10290
RAM10300
RAM10310
RAM10320
RAM10330
RAM10340
RAM10350
RAM10360
RAM10370
RAM10380
RAM10390
RAM10400
RAM10410
RAM10420
RAM10430
RAM10440
RAM10450
RAM10460
A-23
-------
55
C
C
C
C
C
C
C
70
C
80
C
C
C
C
90
100
110
C
C
120
C
C
C
C
C
C
C
NAVG=24 RAM10470
NSIGP=0 RAM10480
NSIGA=0 RAM10490
CONTINUE RAM10500
RAM10510
RAM10520
RAM10530
RAM10540
RAM10550
RAM10560
WRITE GENERAL INPUT INFORMATION RAM10570
WRITE (10,2120) (1VK)DEL(K,MUOR),K=1,2),TITLE(IP)>NPER,NAVG,IHSTRT,IRAM10580
lDATE(2),IDATE(l),UNrrS,c6NONE,6oNTWO,Z RAM10590
DAY1A=IDATE(2) RAM10600
HR1=IHSTRT RAM10610
(HAFL.GT.0.0) GO TO 70
IF ,._
TLOS=0.
WRITE (10,2130)
GO TO 80
WRITE (10,2140) HAFL
TLOS=693./HAFL
IF HI-5 TABLE.IOPT(36).SEE IF FIFTH AVG-TIME NECESSARY.
IF (IOPT(36).EQ.l) GO TO §6
NAVT=5
FOR DEFAULT OPTION
ADDITIONAL AVERAGING PERIOD SET TO ZERO.
IF(IOPT(38).EQ.l) NAV5=0
RAM1CG20
RAM10630
RAM10640
RAM10650
RAM10660
RAM10670
RAM10680
RAM10690
RAM10700
RAM10710
RAM10720
RAM10730
RAM10740
RAM10750
IF (NAV5.EQ.1.0R.NAV5.EQ.3.0R.NAV5.EQ.8.0R.NAV5.EQ.24.0R.NAV5.EQ.ORAM10760
RAM10770
RAM10780
RAM10790
TTILJ. j..ii ij.v.iiAv'vy/ ivn. v JL . RAMlOoOO
IF (NAVT.EQ.5) WRITE (10,2160) NAV5 RAM10810
IF NO SIGNIF. SOURCES TO BE CONSIDERED,ELIMINATE CONTRIB OUTPUTRAM10820
1) NAVT=4
NTIME(5)=NAV5
ATIME(5)=NAV5
WRITE (10,2150) NAVT
IF (NSIGP.GT.O) GO TO 100
IOPT(25}=1
IOPT(33)=1
IF £NSIGA.GT.O) GO TO 110
IOPT(28)=1
IOPT(34)=1
WRITE
WRITE
WRITE
WRITE
WRITE
WRITE
ASSIGN
10,2170
10,2180
10,2190
10,2200
10,2210
10.2220
236 TO
I , IOPT
I , IOPT
I , IOPT
I , IOPT
I , IOPT
I , IOPT
•I=1.41
,1=5,13)
1=14,19
,1=20,31
,1=32,38
,1=39,50
MIX=2
IF (MUOR.EQ.l) GO TO 120
ASSIGN 240 TO KTRL
MIX=1
EXECUTE ASSIGN STATEMENTS FOR URBAN-RURAL SELECTIONS IN
SUBROUTINES.
CALL SGZ
CALL SYSZ
CALL JMHREC
READ CARD TYPE 6 (SEE DESCRIPTION, SECTION B).
SWITCH TO SELECT DEFAULT POWER LAW EXPONENTS,
TERRAIN ADJUSTMENT FACTORS.
IF(IOPT(38).NE.O)READ(IN,*)HANE
IF(IOPT(38}.EQ.O)READ(IN,*)HANE,PL
IF(IOPT(38).EQ.O) GO TO 105
DO 104 11=1,6
PL(I1)=PLL(I1,MUOR)
RAM10830
RAM10840
RAM10850
RAM10860
RAM10870
RAM10880
RAM10890
RAM10900
RAM10910
RAM10920
RAM10930
RAM10940
RAM10950
RAM10960
RAM10970
RAM10980
RAM10990
RAM11000
RAM11010
RAM11020
RAM11030
RAM11040
RAM11050
RAM11060
RAM11070
RAM11080
RAM11090
RAM11100
RAM11110
RAM11120
RAM11130
RAM11140
RAM11150
RAM11160
A-24
-------
104
105
C
C
C
C
C
C
C
C
CONTINUE
CONTINUE
MUCH OF THE FOLLOWING PROGRAM SECTION IS BASED UPON
RAMQ IN THE PREV. RAM. THIS SECTION IS RESPONSIBLE
FOR MAKING THE NECESSARY DATA CONVERSIONS ON THE RAW
EMISSIONS DATA IN ORDER TO ESTABLISH A STANDARD
DATA BANK WHICH WILL BE ACCEPTABLE. A CONVERSION FACTOR
FROM USER UNITS TO KILOMETERS IS APPLIED WHEN NECESSARY.
C->->->->SECTION J - INPUT AND PROCESS EMISSION INFORMATION.
C
C
C
C
C
C
C
C
130
C
C
C
140
C
C
150
C
C
160
C
C
C
C
170
C
C
C
C
C
180
C
190
C
200
IF NOT READING EMISSIONS FROM PREVIOUS RUN, SKIP
IF (lOPT(T).EQ.O) GO TO 140
HEAD (3) NPT, MS
IF NOT USING POINT SOURCES, SKIP
IF (NPT.EQ.O) GO TO 130
READ RECORD OF POINT SOURCE INFORMATION
READ (9) (IMPS(I),I=1,25),((SOURCE(I,J),I=1,9),J=1,NPT)
IF NOT USING AREA SOURCES, SKIP
IF (NAS.EQ.O) GO TO 630
READ RECORD OF AREA SOURCE INFORMATION
READ (9) (IMAS(I),I=1.10),RMIN,RMAX,SMIN,SMAX,IRSIZE,ISSIZE,
lC(I,J),I=l,6),J=i,NAS),((IA(I,J),I=l,IRSIZE),J=l,ISSIZE)
GO TO 630
ARE THERE POINT SOURCES? IF NOT, SKIP TO AREA SECTION.
IF (IOPT(5).EQ.O) GO TO 310
IF (IOPT(20).EQ.l) GO TO 150
WRITE HEADING FOR POINT SOURCE INFO.
WRITE (10,2240)
NPT=0
BEGIN LOOP TO READ THE POINT SOURCE INFORMATION
NPT=NPT+1
IF (NPT.LE.MAXP) GO TO 170
READ (IN,1810_) DUM
IF (DUM.EQ.ENDP) GO TO 270
WRITE ERROR STATEMENT
WRITE (10,1880) MAXP
CALL WAUDIT
STOP
READ CARD TYPE 7 (SEE DESCRIPTION, SECTION B).
READ (IN, 1820) (PNAME(I.NPT) , 1=1, 3) , ( SOURCE ( I, NPT) , 1=1,8)
CARD WITH 'ENDP' IN COL 1-4 IS USED TO SIGNIFY END
POINT SOURCES.
IF ( PNAME (1, NPT ).EQ. ENDP) GO TO 270
CALCULATE BUOYANCY FACTOR
D=SOURCE(7,NPT)
RAM11170
RAM11180
RAM11190
RAM11200
RAM11210
RAM11220
RAM11230
RAM11240
RAM11250
RAM11260
RAM11270
RAM11280
RAM11290
RAM11300
RAM11310
KAMI 1220
RAM11330
RAM11340
RAM11350
RAM11360
RAM11370
RAM11380
RAM11390
RAM11400
RAM11410
((ASORRAM11420
RAM11430
RAM11440
RAM11450
RAM11460
RAM11470
RAM11480
RAM11490
RAM11500
RAM11510
RAM11520
RAM11530
RAM11540
RAM11550
RAM11560
RAM11570
RAM11580
RAM11590
RAM11600
RAM11610
RAM11620
RAM11630
RAM11640
RAM11650
OF RAM11660
RAM11670
RAM11680
RAM11690
RAM11700
FOLLOWING VARIABLE IS BRIGGS' F WITHOUT TEMPERATURE FACTOR. RAM~117l6
SOURCE (9. NPT) =2 . 45153*SOURCE (8, NPT) *D*D
2.45153 IS GRAVITY OVER FOUR.
TS=SOURCE(6.NPT)
IF (TS.GT.293O GO TO 180
HF=SOURCE(5,NPT)
GO TO 200
F=SOURCE(9,NPT)*(TS-293. )/TS
IF (F.GE.55.) GO TO 190
ONLY BUOYANCY PLUME RISE IS CONSIDERED HERE.
HF=SOURCE (5 , NPT) +21 . 425*F**0 . 75/3 .
GO TO 200
HF=SOURCE(5,NPT)+38.71*F**0.6/3.
HSAV, DSAV, AND PSAV ARE USED FOR TEMPORARY STORAGE
HSAV(NPT)=HF
RAM11720
RAM11730
RAM11740
RAM11750
RAM11760
RAM11770
RAM11780
RAM11790
RAM11800
RAM11810
RAM11820
RAM11830
RAM11840
RAM11850
A-25
-------
210
220
230
240
250
C
C
r*
O
C
C
C
C
C
C
260
C
C
C
270
C
C
C
280
C
290
C
300
C
310
C
320
DETERMINE HEIGHT INDEX.
DO 210 IH=2,9
IF (HF.LT.(HCl(IH)-.Ol)) GO TO 220
CONTINUE
IH=10
IS=IH-1
GO TO KTRL, (230,240)
A=PXUCOF(2,IS)
B=PXUEXPf2,IS)
GO TO 250
A=PXUCOR(2,IS)
B=PXUEXR(2.IS)
DSAV(NPT)=(A*HF**B)*SOURCE(IPOL,NPT)/3.
AN ESTIMATE OF THE POTENTIAL IMPACT OF EACH SOURCE IS
DETERMINED AND STORED IN DSAV. MAX CONCENTRATION IS
DETERMINED 3Y CHI(MAXMA*H**B)*Q/U WHERE
A IS THE COEFFICENT AND B IS THE EXPONENT, OF
MAXIMUM CHI*U/Q VALUES PREDETERMINED FOR B STABILITY
AND A SPECIFIC EFFECTIVE HEIGHT RANGE. PLUME RISE
IS CALCULATED FOR B STABILITY AND 3 M/SEC WIND SPEED.
IPSIGS(NPT)=0
IF (IOPT(20).EQ.l) GO TO 260
LIST POINT SOURCE INFORMATION.
WRITE (10,2250) NPT,(PNAME(J,NPT),J=l,3),(SOURCE(K,NPT),K=
1V(NPT),HSAV(NPT),F
SOURCE COORDINATES ARE TRANSFORMED INTO INTERNAL UNITS,
SOURCE(1,NPT)=SOURCE(1,NPTj/UNITS
SOURCE(2,NPT)=SOURCE(2,NPT)/UNITS
GO BACK AND READ DATA FOR ANOTHER POINT SOURCE.
GO TO 160
NPT=NPT-1
RANK 25 HIGHEST POINT SOURCES.
NLIM=25
IF (NPT.LT.25) NLIM=NPT
DO 290 I=1.NLIM
SIGMAX=-1.0
DO 280 J=1.NPT
IF (DSAV(J).LE.SIGMAX) GO TO 280
SIGMAX=DSAV(J)
LMAX=J
CONTINUE
IMPS IS THE SOURCE NUMBER IN ORDER OF SIGNIFICANCE.
IMPS(I)=LMAX
PSAV IS THE CALC.
CONC
PSAV(I)=SIGMAX
DSAV(LMAX)=-1.0
OUTPUT TABLE OF RANKED SOURCES.
WRITE (10.2260) TITLE(IP)
DO 300 I=1.NLIM
WRITE (10,2270) I.PSAV(I),IMPS(I)
CONTINUE
IF NOT EXPECTING AREA SOURCES, SKIP.
IF (IOPT(6).EQ.O) GO TO 550
NAS=0
IF (IOPT(21).EQ.l) GO TO 320
WRITE (10,2280)
BEGIN LOOP TO READ AREA SOURCES
NAS=NAS+1
IF (NAS.LE.MAXA) GO TO 330
READ (IN,1810) DUM
IF (DUM.EQ.ENDA) GO TO 390
WRITE ERROR STATEMENT
WRITE (10,1890) MAXA
CALL WAUDIT
STOP
IN ORDER OF SIGNIFICANCE.
RAM11860
RAM11870
RAM11880
RAM11890
RAM11900
RAM11910
RAM11920
RAM11930
RAM11940
RAM11950
RAM11960
RAM11970
RAM11980
RAM11990
RAM12000
RAM12010
RAM12020
RAM12030
RAM12040
RAM12050
RAM12060
RAM12070
RAM12080
RAM12090
a,8),DSARAM12100
RAM12110
RAM12120
RAM12130
RAM12140
RAM12150
RAMI2160
RAM12170
RAM12180
RAM12190
RAM12200
RAM12210
RAM12220
RAM12230
RAM12240
RAM12250
RAM12260
RAM12270
RAM12280
RAM12290
RAM12300
RAM12310
RAM12320
RAM12330
RAM12340
RAM12350
RAM12360
RAM12370
RAM12380
RAM12390
RAM12400
RAM12410
RAM12420
RAM12430
RAM12440
RAM12450
RAM12460
RAM12470
RAM12480
RAM12490
RAM12500
RAM12510
RAM12520
RAM12530
RAM12540
A-26
-------
c
c
c
330
340
C
350
360
C
370
C
C
C
C
C
C
C
380
C
C
C
390
C
C
C
400
C
410
RAM12550
RAM12560
RAM12570
READ.-dN. 1830) ^ANAMEtJiNAS),_ Jf^S), ASpRC(l,NAS) , ASORC(2,NAS) , ASORRAM12580
RAM12590
RAM12600
READ CARD TYPE 8 (SEE DESCRIPTION, SECTION B)
KcAD (IN,1830) (ANAME(J,NAS),J=1,3),ASORC(1,NAS
1C(5,NAS).ASORC(3,NAS),ASORC(4,NAS).ASORC(6,NAS)
IF (ANAME(l.NAS).EQ.ENDA) GO TO 396
IF (IOPT(22).EQ.l) GO TO 370
STORE AREA EMISSIONS ACCORDING TO HEIGHT CLASS
DO 340 1=1,20
IF (ASORC(6,NAS).LE.HC) GO TO 350
CONTINUE
GO TO 360
ADD EMISSION RATE INTO TABLE AND TOTAL.
UNITS
WA=ASORC(5,NAS)/UNITS
CONVERTS SIDE LENGTH IN INTERNAL UNITS TO METERS AND ADJUST
EMISSION RATE
SF=WA*1000.*CONTWO
DETERMINE EMISSION RATE IN G/SEC-M**2.
ASORC(3,NAS)=ASORC(3,NAS)/(SF*SF)
ASORC(4,NAS)=ASORC(4,NAS)/(SF*SF)
FOR AREA SOURCES, SIGNIFICANCE IS DETERMINED BY SELECTING A
SPECIFIED NUMBER OF AREA SOURCES (N < OR = 10) WHICH HAVE
THE HIGHEST EMISSION RATE TIMES THE SIDE LENGTH OF THE AREA
SOURCE.
SIGNIF(NAS)=SF*ASORC[IPOL.NAS)
IF (IOPT(21).EQ.l) GO TO 380
RAM12610
RAM12620
RAM12630
RAM12640
RAM12650
RAM12660
RAM12670
RAM12680
RAM12690
RAM12700
RAM12710
RAM12720
RAM12730
RAM12740
RAM12750
RAM12760
RAM12770
RAM12780
RAM12790
RAM12800
RAM12810
RAM12820
RAM12830
RAM12840
WRITE (10,2290) NAS,(ANAME(J.NAS),J=l,3),(ASORC(K.NAS),K=1,6).SIGNRAM12850
1IF(NAS_)
CO-ORDINATES ARE TRANSLATED TO INTERNAL UNITS.
ASORC?1,NAS)=ASORC(1,NAS}/UNITS
ASORC(2,NAS)=ASDRC(2,NAS)/UNITS
ASORC(5,NAS)=WA
READJUST AREA SOURCE REGION BOUNDARIES AS REQUIRED
(INTERNAL UNITS).
RC=ASORC(1,NAS
SC=ASORC(2,NAS
IF (RC.LT.RMIN RMIN=RC
IF (SC.LT.SMIN SMIN=SC
RC.SC, AND WA IN INTERNAL UNITS.
A=RC+WA
B=SC+WA
IF (A.GT.RMAX) RMAX=A
IF (B.GT.SMAX) SMAX=B
GO BACK AND READ DATA FOR ANOTHER AREA SOURCE.
GO TO 320
NAS=NAS-1
DETERMINE SIZE OF AREA ARRAY
A=RMAX-RMIN+.0005
IRSIZE=A
IF (A-FLOAT(IRSIZE).GT.0.001) GO TO 410
B=SMAX-SMIN+.0005
ISSIZE=B
IF (B-FLOAT(ISSIZE).GT.0.001) GO TO 420
CHECK SIZE OF AREA SOURCE REGION WITH DIMENSIONS OF IA ARRAY.
IF (IRSIZE.GT.IRDIM) GO TO 400
IF (ISSIZE.LE.ISDIM) GO TO 430
WRITE ERROR STATEMENT
WRITE (10,1900) IRSIZE.ISSIZE
CALL WAUDIT
STOP
WRITE ERROR STATEMENT
WRITE (10,1910)
CALL WAUDIT
STOP
RAM12860
RAM12870
RAM12880
RAM12890
RAM12900
RAM12910
RAM12920
RAM12930
RAM12940
RAM12950
RAM12960
RAM12970
RAM12980
RAM12990
RAM13000
RAM13010
RAM13020
RAM13030
RAM13040
RAM13050
RAM13060
RAM13070
RAM13080
RAM13090
RAM13100
RAM13110
RAM13120
RAM13130
RAM13140
RAM13150
RAM13160
RAM13170
RAM13180
RAM13190
RAM13200
RAM13210
RAM13220
A-27
-------
C WRITE ERROR STATEMENT HAM13230
420 WRITE (10,1920) RAM13240
CALL WAUDIT
STOP HAM13250
C ZERO IA ARRAY(AREA SOURCE MAP ARRAY) RAM13260
430 DO 440 1=1.IRSIZE RAM13270
DO 440 J=1,ISSIZE RAM13280
440 IA(I,J)=0 RAM13290
C LOOP THROUGH ALL AREA SOURCES AND STORE SOURCE NO'S IN IA. RAM13300
C THERE CAN BE NO OVERLAPPING OF AREA SOURCES. LOCATIONS ARE RAM13310
C DEFINED BY THE INTERNAL GRID SYSTEM. RAM13320
A=RMIN-1. RAM13330
B=SMIN-1. RAM13340
DO 460 NS=1.NAS HAM13350
IR=ASORC(1,NS)-A+.0005 RAM13360
IS=ASORC(2,NS)-B+-0005 RAM12370
IWA=ASOHC(5,NS)+.0005-1. RAM13380
IQ=IS+IWA , RAM13390
ID=IR+IWA RAM13400
DO 450 I=IR,ID RAM13410
DO 450 J=IS,IQ RAM13420
C CHECK TO SEE IF IA ALREADY HAS A SOURCE IN THE I,J TH POSITION RAM13430
IF (lA(I.J).EQ.O) GO TO 450 RAM13440
C WRITE ERROR STATEMENT RAM13450
WRITE (10,1930) IA(I,J),I,J,NS RAM13460
CALL WAUDIT
STOP RAM13470
C STORE SOURCE NO. IN APPROPRIATE POSITION RAM13480
450 IA(I,J)=NS RAM13490
460 CONTINUE HAM13500
C PRINT OUT AREA SOURCE MAP ARRAY(IA) IF NOT TOO LARGE TO FIT RAM13510
C ACROSS PAGE. RAM13520
IF (IHSIZE.GT.41) GO TO 480 RAM13530
WRITE (10,2300) . RAM13540
ID=ISSIZE+1 ' RAM13550
DO 470 IQ=1,ISSIZE RAM13560
J=ID-IQ RAM13570
470 WRITE (10,2310) J,(IA(I,J),1=1,IRSIZE) RAM13580
WRITE (10,2320) (I,1=1,IRSIZE) RAM13590
GO TO 490 RAM13600
C WRITE EXPLANATORY STATEMENT RAM13610
480 WRITE (10.1940) RAM13620
C PRINT OUT ORIGIN CO-ORDINATES AND BOUNDARIES IN INTERNAL UNITS RAM13630
490 WRITE (10,2330) A,B,IRSIZE,ISSIZE RAM13640
WRITE (10,2340) RMIN,RMAX,SMIN,SMAX RAM13650
C RAM13660
C RANK HIGHEST 10 AREA SOURCES RAM13670
NLIM=10 RAM13680
IF (NAS.LT.10) NLIM=NAS RAM13690
DO 510 I=1.NLIM RAM13700
SIGMAX=-1.0 RAM13710
DO 500 J=1.NAS RAM13720
IF (SIGNIF(J).LE.SIGMAX) GO TO 500 RAM13730
SIGMAX=SIGNIF(J) RAM13740
LMAX=J RAM13750
500 CONTINUE RAM13760
IMAS(I)=LMAX RAM13770
HPR(li=SIGMAX RAM13780
510 SIGNIF(LMAX)=-1.0 RAM13790
IF (NSIGA.EQ.O) GO TO 530 RAM13800
WRITE (10.2350) TITLE(IP) RAM13810
DO 520 I=1.NLLM RAM13820
WRITE (10,2360) I,HPR(I),LMAS(I) RAM13830
520 CONTINUE RAM13840
530 DO 540 1=1,NAS RAM13850
ASORC(5,I)=ASORC(5,I)*0.5 RAM13860
540 IASIGS(I)=0 RAM13870
550 IF (IOPT(22).EQ.l) GO TO 610 RAM13880
C RAM13890
C EMISSIONS WITH HEIGHT TABLE. RAM13900
A-28
-------
560
C
C
C
570
580
590
C
C
C
C
C
C
C
C
600
C
610
C
C
C
620
C
DO 590 1=1,NPT
DO 560 J=l,20
HC=J*5.
IF (SOURCE(5,I).LE.HC) GO TO 570
CONTINUE
POINT SOURCES WITH PHYSICAL HEIGHTS GT 100 METERS ARE LISTED
SEPARATELY.
WRITE (10,2370) I,SOURCE(5,I).SOURCE(IPOL,I)
GO TO 580
ADD EMISSION RATE INTO TABLE AND TOTAL.
TABLE(1,J)=TABLE?1.J)+SOURCE{IPOL.I)
TABLE(l,2i)=TABLE(i,21)+SOURCE(IPOL,I)
CONTINUE
OUTPUT SOURCE-STRENGTH-HEIGHT TABLE
THIS TABLE DISPLAYS THE TOTAL EMISSIONS FOR BOTH POINT AND
AREA SOURCES AND THE CUMULATIVE FREQUENCY ACCORDING TO
HEIGHT CLASS. REQUIRED INPUT TO RAM, SUCH AS HEIGHT CLASS
BOUNDARIES FOR AREA SOURCES AND REPRESENTATIVE HEIGHTS FOR
EACH HEIGHT CLASS, CAN BE DETERMINED FROM THESE TABLES.
WRITE (10,2380) TITLE(IP)
HEIGHT CLASS EMISSIONS ARE IN 1 AND 3.
DETERMINE CUMULATIVE PERCENT IN 2 AND 4.
IF (TABLE(1,21).EQ.O.O) TABLE(1,21)=1.0
IF [TABLE(3,21).EQ.O.O) TABLE(3,21)=1.0
ID=0
IQ=5
TABLE(2,1)=TABLE(1,1)/TABLE(1,21)
TABLE(4,1)=TABLEC3,1)/TABLE(3,21}
WRITE (10.2390) ID,IQ,(TABLE(J,1),J=l,4)
DO 600 1=2,20
IQ=I*5
ID=IQ-4
TABLE(2,I)=TABLE(1,I)/TABLE(1,21)+TABLE(2,I-]
TABLE(4,I)=TABLE(3,I)/TABLE(3,21)+TABLE(4,I-]
-D,IQ,(TABLE(J,I),J=1,4)
TABLE(1,21)=0.0
TABLE (3, 21) =0.0
TABLE(1,21
T EMISSION
TABLE(3,21)
WRITE (10,2390)
CONTINUE
IF (NSIGP.EQ.O
IF (NSIGA.EQ.O
WRITE (10,2400
WRITE FIR
WRITE (9) NPT.NAS
IF (NPT.EQ.O) GO TO 620
WRITE RECORD OF POINT SOURCE INFORMATION
WRITE (9) (IMPS(I),1=1,25),((SOURCE(I.J),1=1,9),J=l,NPT)
IF (NAS.EQ.O) GO TO 630
WRITE RECORD OF AREA SOURCE INFORMATION
RAM13910
RAM13920
RAM13930
RAM13940
RAM13950
RAM13960
RAM13970
RAM13980
RAM13990
RAM14000
RAM14010
RAM14020
RAM14030
RAM14040
RAM14050
RAM14060
RAM14070
RAM14080
RAM14090
RAM14100
RAM14110
RAM14120
RAM14130
RAM14140
RAM14150
RAM14160
RAM14170
RAM14180
RAM14190
RAM14200
RAM14210
RAM14220
RAM14230
RAM14240
RAM14250
RAM14260
RAM14270
RAM14280
RAM14290
RAM14300
RAM14310
RAM14320
RAM14330
RAM14340
RAM14350
RAM14360
RAM14370
RAM14380
RAM14390
WRITE (9) (IMAS(I),I=1.10),RMIN,RMAX.SMIN,SMAX.IRSIZE,ISSIZE,((ASORAM14400
lRC(I,J),I=I,6),J=l,NAS5,((IA(I,.J),I=i,IRSiZE),.J=l,ISSIZE) RAM14410
C->->->->SECTION K - EXECUTE FOR INPUT OF SIGNIFICANT SOURCE NUMBERS.
C
630
C
C
C
640
WRITE (10,2410) NPT.NSIGP
IF (NSIGP.EQ.O_) GO TO 700
(NSIGP.GT.NPT) NSIGP=NPT
fNSIGA.GT.NAS) NSIGA=NAS
:iOPT(ll).EQ.O) GO TO 660
READ CARD TYPE 9 (SEE DESCRIPTION, SECTION B).
READ (IN,1840) INPT,(MPS(I).1=1.INPT)
WRITE ?10.2420) INPT.(MPS(I),1=1,INPT)
IF (INPT.LE.NSIGP) c6 TO 640
WRITE ERROR STATEMENT
WRITE (10,1950) INPT.NSIGP
CALL WAUDIT
STOP
IF (INPT.EQ.O) GO TO 660
RAM14420
RAM14430
RAM14440
RAM14450
RAM14460
RAM14470
RAM14480
RAM14490
RAM14500
RAM14510
RAM14520
RAM14530
RAM14540
RAM14550
RAM14560
RAM14570
RAM14580
RAM14590
A-29
-------
c
c
650
660
670
680
C
690
700
C
710
C
C
C
720
C
C
C
C
C
C
730
C
C
C
C
C
C
IF LAST SPECIFIED SOURCE NUMBER IS ZERO WRITE WARNING STATEMENTRAM14600
IF (MPS(INPT).EQ.O) WRITE (10,1960) RAM14610
J=INPT+1 RAM14620
K=l RAM14630
ADD SIGNIFICANT PT. SOURCES DETERMINED FROM RANKED SOURCE LIST RAM14640
IF NSIGP GREATER THAN INPT.
(J.GT.NSIGP) GO TO 680
650 I=J,
IF
DO 650 I=J,NSIGP
MPS(I)=IMPS(K)
K=K+1
GO TO 680
DO 670 1=1,NSIGP
MPS(I)=IMPS(I)
WRITE (10,2430) (MPS(I),1=1,NSIGP)
FILL IN SIGNIFICANT POINT SOURCE ARRAY
DO 690 1=1,NSIGP
J=MPS(l5
IPSIGS(J)=I
IF (IOPT(9j.EQ.O) GO TO 720
SAVE AVERAGE EMISSION RATE
DO 710 1=1,NPT
PSAV(I)=SOURCE(IPOL,I)
IOPT(6) CONTROL OPTION, AREA SOURCE INPUT? 0=NO, 1=YES.
IF NO AREA SOURCES, SKIP
IF (IOPT(6).EQ.O) GO TO 800
WRITE (10,2440) NAS.NSIGA
READ CARD TYPE 10
READ (IN,*) FH,XLIM,NHTS,(HINT(I),1=1,NHTS)
NBP=NHTS-1
WRITE ?IO,2450) NHTS,(HINT(I),1=1,NHTS)
IF (NBP.LE.O) NBP=1
READ CARD TYPE 11.
READ (IN,*) (BPH(I),!=!,NBP)
WRITE (10,2460) |BPH(I),I=1,NBP)
CONVERT TO USER UNITS FOR PRINT OUT. XLIM IS CONVERTED TO
C1=RMIN*UNITS
C2=RMAX*UNITS
C3=SMIN*UNITS
C4=SMAX*UNITS
C5=XLIM
XLIM=XLIM*CONONE
WRITE (10,2470) FH,C5,C1,C2,C3,C4,IRSIZE,ISSIZE
IF (XLIM.LT.116.) GO TO 730
WRITE ERROR STATEMENT
WRITE (10,1970) XLIM
CALL WAUDIT
STOP
IF (NSIGA.EQ.O) GO TO 810
IF NOT SPECIFYING SIGNIF.
KM.
IF (IOPT(12).EQ.O) GO TO 760
AREA SOURCES, SKIP
READ THE NUMBER OF SIGNIFICANT AREA SOURCES THAT USER
WANTS TO SPECIFY AND THE NUMBER DESIGNATIONS OF THOSE SOURCES
ON CARD TYPE 12.
740
C
READ (IN.1840) INAS,(MAS(
WRITE (10,2480) INAS,(MAS
IF (INAS.LE.NSIGA) GO TO
WRITE ERROR STATEMENT
WRITE (10,1950) INAS.NSIGA
CALL WAUDIT
STOP
IF (INAS.EQ.O) GO TO 760
1=1.INAS)
,1=1,INAS)
RAM14650
RAM14660
RAM14670
RAM14680
RAM14690
RAM14700
RAM14710
RAM14720
RAM14730
RAM14740
HAiMl-3730
RAM14760
RAM14770
RAM14780
RAM14790
RAM14800
RAM14810
RAM14820
RAM14830
RAM14840
RAM14850
RAM14860
RAM14870
RAM14880
RAM14890
RAM14900
RAM14910
RAM14920
RAM14930
RAM14940
RAM14950
RAM14960
RAM14970
RAM14980
RAM14990
RAM15000
RAM15010
RAM15020
RAM15030
RAM15040
RAM15050
RAM15060
RAM15070
RAM15080
RAM15090
RAM15100
RAM15110
RAM15120
RAM15130
RAM15140
RAM15150
RAM15160
RAM15170
RAM15180
RAM15190
RAM15200
RAM15210
RAM15220
RAM15230
RAM15240
RAM15250
IF LAST SPECIFIED SOURCE NUMBER IS ZERO WRITE WARNING STATEMENTRAM15260
IF (MAS(INAS).EQ.O) WRITE (10,1980) RAM15270
A-30
-------
c
c
750
C
C
760
770
780
C
790
800
C
C->-
C
810
C
C
C
820
C
J=INAS+1
K=l
ADD SIGNIFICANT AREA SOURCES DETERMINED FROM RANKED SOURCE
LIST IF NSIGA GREATER THAN INAS.
IF (J.GT.NSIGA) GO TO 780
DO 750 I=J,NSIGA
MAS(I)=IMAS(K)
K=K+1
GO TO 780
TRANSFER SIGNIFICANT SOURCES DETERMINED FROM SIGNIFICANT SOURCE
LIST IF INAS EQUAL ZERO.
DO 770 1=1,NSIGA
MAS(I)=IMAS(I)
WRITE (10,2490) (MAS(I),1=1,NSIGA)
FILL IN SIGNIFICANT AREA SOURCE MARKER ARRAY
DO 790 1=1,NSIGA
IASIGS(J)=I
CONTINUE
->->->SECTION L - CHECK MET DATA IF FROM FILE OF ONE YEAR'S DATA.
IF (IOPT(8).EQ.l) GO TO 840
READ CARD TYPE 13 (SEE DESCRIPTION, SECTION B).
READ (IN,*) ISFCD,ISFCYR,IMXD,IMXYR
READ ID RECORD FROM PREPROCESSED MET DISK OR TAPE FILE.
READ (11) ID.IYEAR.IDM.IYM
IF (ISFCD.EQ.ID.AND.ISFCYR.EQ.IYEAR) GO TO 820
WRITE ERROR STATEMENT
WRITE (10,1990) ISFCD,ISFCYR,ID,IYEAR,IMXD,IMXYR,IDM,IYM
CALL WAUDIT
STOP
IF QMXD.EQ.IDM.AND.IMXYR.EQ.IYM) GO TO 830
WRITE ERROR STATEMENT
WRITE (10,1990) ISFCD,ISFCYR,ID,IYEAR,IMXD,IMXYR,IDM,IYM
CALL WAUOiT
STOP
WRITE (10,2500) ISFCD,ISFCYR,IMXD,IMXYR
830
C
C->->->->SECTION M - GENERATE POLAR COORDINATE RECEPTORS.
C
840
850
C
C
C
860
C
C
NRECEP=0
WRITE (10.2510)
DO 850 1=1,180
DO 850 J=l,2
RNAME(J,I)=BNK4
IF (IOPT(18).NE.l) GO TO 890
READ CARD TYPE 14 (SEE DESCRIPTION, SECTION B).
READ (IN,*) RADIL.CENTX.CENTY
JA=0
DO 860 J=l,5
IF TRADIL(J).EQ.O) GO TO seo
JA=JA+1
CONTINUE
WRITE (10.2520) CENTX.CENTY.RADIL
DO 880 1=1,36
CALCULATE THE ANGLE IN RADIANS
A=FLOAT?I)*0.1745329
0.1745329 IS 2*PI/36
SINT=SIN(A)
COST=COS(A)
DO 870 J=1.JA
NRECEP=I+36*(J-1)
RREU(NRECEP)=(RADIL(J)*SINT)+CENTX
CALCULATE THE EAST-COORDINATE
RAM15280
RAM15290
RAM15300
RAM15310
RAM15320
RAM15330
RAM15340
RAM15350
RAM15360
RAM15370
RAM15380
RAM15390
RAM15400
RAM15410
RAM15420
RAM15430
RAM15440
RAM15450
RAM15460
RAM15470
RAM15480
RAM15490
RAM15500
RAM15510
RAM15520
RAM15530
RAM15540
RAM15550
RAM15560
RAM15570
RAM15580
RAM15590
RAM15600
RAM15610
RAM15620
RAM15630
RAM15640
RAM15650
RAM15660
RAM15670
RAM15680
RAM15690
RAM15700
RAM15710
RAM15720
RAM15730
RAM15740
RAM15750
RAM15760
RAM15770
RAM15780
RAM15790
RAM15800
RAM15810
RAM15820
RAM15830
RAM15840
RAM15850
RAM15860
RAM15870
RAM15880
RAM15890
RAM15900
RAM15910
RAM15920
RAM15930
RAM15940
RAM15950
A-31
-------
c
c
870
880
SREU(NRECEP)=(RADIL(J)*COST)+CENTY
CALCULATE THE NORTH-COORDINATE
ITYPE(NRECEP)=IRPC
RNAME(1,NRECEP)=DNAME(I)
ALPHANUMERIC INFORMATION WHICH INDICATES DEGREES AZIMUTH
ENCODE (4,2530,RNAME(2,NRECEP)) RADIL(J)
ENCODE THE FLOATING POINT VARIABLE OF RADIAL DISTANCE
TO ALPHANUMERIC REPRESENTATION SO INFO CAN BE PRINTED
CONTINUE
CONTINUE
NRECEP=36*JA
C
C->->->->SECTION N - READ AND PROCESS RECEPTOR INFORMATION.
C
C
c
c
890
C
C
900
C
C
C
910
C
C
920
930
940
C
950
960
C
C
C
C
C
C
C
970
NOW READ CARD TYPE 15 IF NECESSARY. MUST HAVE A CARD WITH
'ENDR'IN COLS 1-4 TO INDICATE END OF RECEPTOR CARDS.
NO MORE THAN 180 RECEPTORS CAN BE INPUT TO MPTER.
IF
IOPT(14).EQ.O) GO TO 940
TART LOOP TO ENTER RECEPTORS.
NRECEP=NRECEP+1
IF (NRECEP.LE.180) GO TO 910
READ (IN,1810,END=900) DUM
IF (DUM.EQ.ENDR) GO TO 930
WRITE ERROR STATEMENT
WRITE (10,2000)
CALL WAUDIT
STOP
READ CARD TYPE 15 (SEE DESCRIPTION, SECTION B).
READ (IN.1850) (RNAME(J,NRECEP),J=1,2),RREU(NRECEP),SREU(NRECEP)
PLACE 'ENDR' IN COLS 1 TO 4 ON CARD FOLLOWING LAST RECEPTOR
TO END READING TYPE 15 CARDS.
ITYPE(NRECEP)=IRIN
IF (RNAMEU,NRECEP).EQ.ENDR) GO TO 920
GO TO 890
RNAME(1,NRECEP)=BNK4
NRECEP=NRECEP-1
IF (NRECEP.GT.O) GO TO 940
WRITE ERROR STATEMENT
WRITE (10,2010) NRECEP
CALL WAUDIT
STOP
IF (NRECEP.EQ.O) GO TO 960
PRINT OUT TABLE OF RECEPTORS. (IN USER UNITS)
WRITE (10,2540)
DO 950 K=1,NRECEP
WRITE (10,2550) K,ITYPE(K),(RNAME(J.K),J=l,2),RREU(K),SREU(K)
RREC(K)=RREU(K)/UNITS
SREC(K)=SREU(K)/UNITS
ICODE(K)=0
NPREC=NRECEP
IF (IOPT(17).EQ.O) GO TO 990
READ CARD TYPE 16
READ (IN,*) GRDSPU,HRMNU,HRMXU,HSMNU,HSMXU
IF (HRMXU.EQ.0.0) GO TO 970
IF USER DOESN'T SPECIFY BOUNDARIES FOR HONEYCOMB SOURCES
USE AREA SOURCE BOUNDARIES.
CONVERT INPUT GRID BOUNDARIES(USER UNITS) TO INTERNAL UNITS
HRMIN=HRMNU/UNITS
HRMAX=HRMXU/UNITS
HSMIN=HSMNU/UNITS
HSMAX=HSMXU/UNITS
GO TO 980
RMIN,RMAX,SMIN,SMAX ARE IN INTERNAL UNITS
HRMIN=RMIN
HRMAX=RMAX
RAM15960
RAM15970
RAM15980
RAM15990
RAM16000
RAM16010
RAM16020
RAM16030
RAM16040
RAM16050
RAM16060
RAM16070
RAM16080
RAM16090
RAM16100
RAM161IO
RAM16120
RAM16130
RAM16140
RAM16150
RAM16160
RAM16170
RAM16180
RAM16190
RAM16200
RAM16210
RAM16220
RAM16230
RAM16240
RAM16250
RAM16260
RAM16270
RAM16280
RAM16290
RAM16300
RAM16310
RAM16320
RAM16330
RAM16340
RAM16350
RAM16360
RAM16370
RAM16380
RAM16390
RAM16400
RAM16410
RAM16420
RAM16430
RAM16440
RAM16450
RAM16460
RAM16470
RAM16480
RAM16490
RAM16500
RAM16510
RAM16520
RAM16530
RAM16540
RAM16550
RAM16560
RAM16570
RAM16580
RAM16590
RAM16600
RAM16610
RAM16620
RAM16630
A-32
-------
HSMIN=SMIN RAM16640
HSMAX=SMAX RAM16650
C CONVERT GRIDSP FROM USER UNITS TO INTERNAL UNITS. HAM16660
980 GRIDSP-^GRDSPU/UNITS RAM16670
C RAM16680
C->->->->SECTION 0 - POSITION FILES AS REQUIRED. RAM16690
C RAM16700
990 IF (IOPT(39).EQ.O) GO TO 1000 RAM16710
C RAM16720
C READ CARD TYPE 17 (SEE DESCRIPTION, SECTION B). RAM16730
C RAM16740
READ (IN.*) IDAY.LDRUN RAM16750
WRITE (10,2560) IDAY.LDRUN RAM16760
IF UDAY.EQ.O) GO TO 1000 RAM16770
C READ INFO FOR HIGH-FIVE TABLE FROM LAST SEGMENT. RAM16780
READ (14) IDAYS,SUM,NHR,DAY1A,HR1,HMAXA,NDAY,IHH IZAM16790
REWIND 14 RAM16800
IF (IDAY.EQ.IDAYS) GO TO 1000 RAM16810
C WRITE ERROR STATEMENT RAM16820
WRITE (10,2020) IDAY,IDAYS RAM16830
CALL WAUDIT
STOP RAM16840
1000 NP=IDAY*(24/NAVG) RAM16850
C IF OPTION 40 = 1, WRITE INITIAL INFO TO UNIT 10(PART. CONC.) RAM16860
— 'IOPT(40).EQ.l) WRITE (10) NPER.NAVG,LINE1.LINE2,LINES RAM16870
IOPT(41).EQ.O) GO TO 1040 RAM16880
IOPT(15).EQ.O.AND.IOPT(16).EQ.O.AND.IOPT(17).EQ.O) GO TO 1010 RAM16890
C WRITE TERMINATION OF RUN STATEMENT RAM16900
C (WRONG COMBINATION OF OPTIONS). RAM16910
WRITE (10,2030) RAM16920
CALL WAUDIT
STOP RAM16930
1010 IF (IDAY.LE.O) GO TO 1030 RAM16940
C SKIP PREVIOUSLY GENERATED HOURLY RECORDS. RAM16950
ISKIP=IDAY*24+2 RAM16960
DO 1020 I=1,ISKIP RAM16970
1020 READ (12) RAM16980
GO TO 1040 RAM16990
C WRITE LEAD TWO RECORDS ON HOURLY FILE. RAM17000
1030 WRITE (12) NPER,NAVG,LINE1,LINE2,LINES RAM17010
WRITE (12) NRECEP.(RREU(I).I=1,NRECEP),(SREU(I),I=1,NRECEP) RAM17020
1040 IF (IOPT(42).EQ.05 GO TO 1680 RAM17030
IF (IOPT(15).EQ.O.AND.IOPT(16).EQ.O.AND.IOPT(17).EQ.O) GO TO 1050 RAM17040
C WRITE TERMINATION OF RUN STATEMENT RAM17050
C (WRONG COMBINATION OF OPTIONS). RAM17060
WRITE (10,2030) RAM17070
CALL WAUDIT
STOP RAM17080
1050 IF (IDAY.LE.O) GO TO 1070 RAM17090
C SKIP PREVIOUSLY GENERATED AVERAGING-PERIOD FILE. RAM17100
ISKIP=NP+2 RAM17110
DO 1060 I=1,ISKIP RAM17120
1060 READ (13) RAM17130
GO TO 1080 RAM17140
C WRITE LEAD TWO RECORDS ON AVERAGING PERIOD FILE. RAM17150
1070 WRITE (13) NPER.NAVG,LINE1,LINE2,LINES RAM17160
WRITE (13) NRECEP,(RREU(I),I=1,NRECEP),(SREU(I),I=1,NRECEP) RAM17170
GO TO 1120 RAM17180
1080 IF (IOPT(9).EQ.O) GO TO 1100 RAM17190
IF (IDAY.EQ.O) GO TO 1100 RAM17200
C SKIP PREVIOUSLY USED HOURLY PT. EMISSIONS. RAM17210
ISKIP=IDAY*24 RAM17220
DO 1090 I=1,ISKIP RAM17230
1090 READ (15) RAM17240
1100 IF (lOPT(lO).EQ.O) GO TO 1120 RAM17250
IF (IDAY.EQ.O) GO TO 1120 RAM17260
C SKIP PREVIOUSLY USED HOURLY AREA EMISSIONS. RAM17270
ISKIP=IDAY*24 RAM17280
DO 1110 I=1,ISKIP RAM17290
1110 READ (16) RAM17300
A-33
-------
1120
IDAY=IDATE(2)-1
IF (IDAY.LE.O.OR.IOPT(8).EQ.l) GO TO 1140
SKIP PREVIOUSLY USED HOURLY MET.
DO 1130 1=1,IDAY
READ (11)
CONTINUE
RECORDS.
1130
1140
C
C->->->->SECTION P - START LOOPS FOR DAY AND AVG TIME; READ MET DATA.
1150 IDAY=IDAY+1
D=IDAY
NHRS=0
IF 7lOPT(8).EQ.l) GO TO 1190
C IF OPTION 8 EQUALS ZERO, INPUT MET DATA OFF DISK (UNIT 11)
READ (11) JYR,ID,DAY1,IKST,QU,QTEMP,DUMR,QTHETA,HLH
DO 1151 5M1=1,24
IDUMR(JM1)=DUMR(JM1)+0.5
1151 CONTINUE
C
C
1160
C
C
1170
1180
1190
C
1200
1210
C
C
C
C
C
C
C
C
C
1220
IF (JYR.NE.IDATE(l)) GO TO 1160
IF (DAY1.EQ.D) GO TO 1170
DATE ON MET TAPE DOES NOT MATCH INTERNAL DATE
WRITE .ERROR STATEMENT
WRITE (10,2040) JYR,IDATE(2),IDATE(l),IDAY
CALL WAUDh
STOP
MODIFY WIND VECTOR BY 180 DEGREES. SINCE FLOW VECTORS WERE
OUTPUT FROM RAMMET. THIS CONVERTS BACK TO WIND DIRECTIONS.
IDATE?2)=DAY1
DO 1180 IQ=1,24
IF (IKST(IQ).EQ.7) IKST(IQ)=6
QTHETAQQ) =QTHETA( IQ)+180.
IF (QTHETA(IQ).GT.360.) QTHETA(IQ)=QTHETA(IQ)-360.
QHL(IQ)=HLH(MIX,IQ)
NB=IHSTRT
NE=NB+NAVG-1
IF (NB.GT.O) GO TO 1200
WRITE ERROR STATEMENT
WRITE (10,2050) IHSTRT
CALL WAUDIT
STOP
START LOOP FOR AVERAGING PERIOD.
U=0.0
TEMP=0.0
DELN=0.0
DELM=0.0
DO 1210 1=1.7
IFREQ(I)=0.0
NRECEP=NPREC
DO 1240 I=NB,NE
JHR=I
DAY2=IDATE(2)
IF (IOPT(8).EQ.O) GO TO 1220
READ CARD TYPE 18 IF IOPT(8) =1.
(SEE DESCRIPTION, SECTION B).
(HOURLY MET DATA)
READ (IN,*) JYR,DAY1,JHR,IKST(JHR),QU(JHR),QTEMP(JHR),QTHETA(JHR)
IQHL(JHR)
IF U.NE.NB) GO TO 1220
REDEFINE START HOURS AND DATES AT FIRST HOUR OF EACH
AVERAGING PERIOD IF READING HOURLY MET DATA.
THE PURPOSE OF THIS IS TO BE ABLE TO CALCULATE
FOR SEVERAL AVG-PERIODS THAT ARE NOT CONTINUOUS
IN TIME.
IDATE(1)=JYR
IHSTRT=JHR
ISTDAY=DAY1
IDATE(2)=ISTDAY
DAY2=IDATE(2)
IF (IKST(JHR).EQ.7) IKST(JHR)=6
RAM17310
RAM17320
RAM17330
RAM17340
RAM17350
RAM17360
RAM17370
RAM17380
RAM17390
RAM17400
RAM17410
RAM17420
RAM17430
RAM17440
RAM17450
RAM17460
RAM17470
RAM17480
RAM17490
RAM17500
RAM17510
RAM17520
RAM17530
RAM17540
RAM17550
RAM17560
RAM17570
RAM17580
RAM17590
RAM17600
RAM17610
RAM17620
RAM17630
RAM17640
RAM17650
RAM17660
RAM17670
RAM17680
RAM17690
RAM17700
RAM17710
RAM17720
RAM17730
RAM17740
RAM17750
RAM17760
RAM17770
RAM17780
RAM17790
RAM17800
RAM17810
RAM17820
RAM17830
RAM17840
.RAM17850
RAM17860
RAM17870
RAM17880
RAM17890
RAM17900
RAM17910
RAM17920
RAM17930
RAM17940
RAM17950
RAM17960
RAM17970
RAM17980
A-34
-------
IF (IOPT(15).EQ.O.AND.IOPT(16).EQ.O.AND.IOPT(23).EQ.l) GO TO 1240 RAM17990
RAM18000
Q - CALCULATE AND WRITE MET. SUMMARY INFO. RAM18010
RAM!8020
RAM18030
RAM18040
C->->->->SECTION
C
IF (IOPT(23
IF (I.EQ.NB
.EQ.l) GO TO 1230
WRITE (10.2570) NAVG,IHSTRT.IDATE
xr v J. • B«4 • LVJLJ / rriLX lu v ±.\s • *-<-/ i v/ / IIO.T vj j .LAID XJLLJ. • j.isnj.u iiniTiJ.uw-ru
WRITE (10,2580) JHR.QTHETA(JHR),QU(JHR),QHL(JHH).QTEMP(JHR),IKST(JRAM18050
1230
C
1240
1HR)
TRAD=QTHETA(JHR)*0.01745329
SINT=SIN(TRAD)
COST=COS(TRAD)
CALCULATE WIND COMPONENTS
URES=QU(JHR)
A=URES*SINT
B=URES*COST
DELM=DELM+A
DELN=DELN+B
TEMP=TEMP+QTEMP(JHR)
U=U+URES
KST=IKST(JHR)
IFREQ(KST)=IFREQ(KST)+1
END LOOP TO READ ALL MET DATA
CONTINUE
1250
1260
C
1270
1280
C
1290
FOR AVERAGING PERIOD.
RAM18060
RAM18070
RAM18080
RAM18090
RAM18100
RAM18110
RAM18120
RAM18130
RAM18140
RAM18150
RAM18160
RAM18170
RAM18180
RAM18190
RAM18200
RAM18210
C
C
C
C
C
1300
C
C
1310
IF (IpPTjl5^.EQ1OiAOT^IOPT(16)iEQ101ANDJ[OPT(23).EQ.l) GO TO 1310 RAM18220
RAM18240
RAM18250
RAM18260
RAM18270
RAM18280
RAM18200
RAM18300
RAM18310
RAM18320
RAM18330
RAM18340
RAM18350
RAM18360
RAM18370
RAM18380
RAM18390
RAM18400
RAM18410
RAM18420
RAM18430
RAM18440
RAM18450
RAM18460
RAM18470
RAM18480
RAM18490
RAM18500
RAM18510
RAM18520
RAM18530
RAM18540
RAM18550
RAM18560
RAM18570
RAM18580
RAM18590
RAM18600
RAM18610
RAM18620
RAM18630
RAM18640
RAM18650
RAM18660
1=YESRAM18670
RAM18680
CALCULATE RESULTANT WIND DIRECTION THETA
DELN=DELN/NAVG
DELM=DELM/NAVG
THETA=ANGARC(DELM.DELN)
CALCULATE AVERAGE AND RESULTANT SPEED AND PERSISTENCE.
U=U/NAVG
TEMP=TEMP/NAVG
URES=SQRT(DELN*DELN+DELM*DELM)
A=URES/U
DETERMINE MODAL AND AVERAGE STABILITY
LSMAX=0
DO 1250 1=1.7
LST=IFREQ(I)
IF (LST.LE.LSMAX) GO TO 1250
LSMAX=LST
LSTAB=I
CONTINUE
ID=LSTAB+1
KST=LSTAB
DO 1260 I=ID,7
IF (LSMAX.EQ.IFREQ(I)) GO TO 1270
CONTINUE
GO TO 1290
IF TIE FOR MAX MODAL STABILITY, CALCULATE AVERAGE STABILITY
IQ=0
DO 1280 J=1.7
IQ=IQ+IFREQ(J)*J
KST=FLOAT(IQ)/FLOAT(NAVG)+0.5
PRINT RESULTANT MET DATA SUMMARY FOR AVERAGING PERIOD.
IF (JOPT(23).EQ.1) GO TO 1300
WRITE (10,2590) THETA,URES.U,TEMP,A,KST
C->->->->SECTION R - DETERMINE ADDITIONAL RECEPTORS FOR THIS AVG-PERIOD
(OPTIONAL).
DETERMINE RECEPTORS ACCORDING TO SIGNIFICANT SOURCES
IOPT(15) CONTROL OPTION, SIGNIFICANT POINT RECEPTORS?
SIGNIFICANT AREA RECEPTORS?
TO 1310
IOPTU6) CONTROL OPTION,
IF ((IOPT(15)+IOPT(16)).EQ.O) GO
TRAD=THETA*0.01745329
SINT=SIN(TRAD)
COST=COS(TRAD)
CALL GREG
FILL IN RECEPTORS WITH HONEYCOMB ARRAY
IOPT(17) CONTROL OPTION, FILL IN HONEYCOMB RECEPTORS? 0=NO,
IF (IOPT(17).EQ.O) GO TO 1320
A-35
-------
1320
C
C
C
1330
C
WRITE (10.2600) HRMNU,HRMXU,HSMNU,HSMXU,GRDSPU
CALL JMHHON
IF (NRECEP.NE.O) GO TO 1330
WRITE ERROR STATEMENT
WRITE (10,2060)
CALL WAUDIT
STOP
RAM18G90
RAM18700
RAM18710
RAM18720
RAM18730
RAM18740
INITIALIZE CONCENTRATION SUMS RAM18750
IF SIGNIFICANT OR HONEYCOMB RECEPTORS,WRITE CAUTIONING STATEMENT.RAM18760
IF ((IOPT(15)+IOPT(16)+IOPT(17)).GT.O) WRITE (10,2610)
REDEFINE NB AND NE IN CASE NON-CONSECUTIVE DAYS ARE BEING RUN
IF (IOPT?8).EQ.O) GO TO 1340
NB=IHSTRT
NE=IHSTRT+NAVG-1
c
C->->->->SECTION S - INITIALIZE FOR HOURLY LOOP.
C
C
1340
1350
1360
1370
C
C
C->->->->SECTION T - BEGIN HOURLY LOOP.
C
1380
HAM18770
RAM18780
RAM18790
RAM18800
RAM18810
RAM18820
RAM18830
RAM18840
RAM18850
RAM18860
RAM18870
RAM18880
RAM18890
RAM18900
RAM18910
RAM18920
RAM18930
RAM18940
RAM18950
C
1390
1400
1410
1420
C
C
C
1430
1440
INITIALIZE SUMS FOR CONG AND PARTIAL CONG FOR AVG PERIOD.
DO 1370 K=1,NRECEP
ACHI(K)=0.
PCHI(K)=0.0
DO 1350 1=1,11
ASIGS(K,I)=0.
DO 1360 1=1.26
PSIGS(K,I)=0.0
CONTINUE
IF SAVING PARTIAL CONCENTRATIONS, WRITE SECOND RECORD .
IF (IOPT(40).EQ.O) GO TO 1380
WRITE (10) NRECEP,NPT,NAS,(RREU(I),I=1,NRECEP),(SREU(I),I=1,NRECEPRAM18960
.) RAM18970
RAM18980
RAM18990
RAM19000
DO 1580 ID=NB,NE
LH=ID
IF (LH.LE.24) GO TO 1390
LH=MOD(ID,24)
IF (LH.EQ.l) IDATE(2)=DAY1
INITIALIZE SUMS FOR CONG AND PARTIAL CONG FOR HOURLY PERIODS
DO 1420 K=1,NRECEP
AHCHI(K)=0.
PHCHI(K)=0.0
DO 1400 1=1,11
AHSIGS(K,I)=0.
DO 1410 1=1,26
RAM19010
RAM19020
RAM19030
RAM19040
RAM19050
RAM19060
RAM19070
RAM19080
RAM19090
RAM19100
RAM19110
RAM19120
RAM19130
RAM19140
RAM19150
RAM19160
C
C
PHSIGS(K,I)=0.0
CONTINUE
SET MET CONDITIONS FOR THIS HOUR
THETA=OTHETA^ LH")
DETERMINE WIND DIRECTION CONTROL, IWD, 90 DEG. QUADRANT OF WIND RAMl9l70
RAM19180
DO 1430 1=1,3 RAM19190
IF (THETA.LE.DEG(I)) GO TO 1440 RAM19200
CONTINUE RAM19210
1=4 RAM19220
IWD=I RAM19230
U=QUfLH) RAM19240
HL=QHL(LH) RAM19250
TEMP=QTEMP(LH) RAM19260
KST=IKST(LHT RAM19270
TRAD=THETA*0.01745329 RAM19280
SINT=SIN(TRAD) RAM19290
COST=COS(TRAD) RAM19300
IF OPTION 9 IS 1, READ HOURLY EMISSIONS. RAM19310
IF (IOPT(9).EQ.O) GO TO 1450 RAM19320
WRITE ERROR STATEMENT RAM19330
IDCK=IDATE(1)*100000+IDATE[2)*100+LH RAM19340
READ (15) IDATA,(SOUHCE(IPOL,I),I=1,NPT) RAM19350
CHECK DATE RAM19360
IF (IDCK.EQ.IDATA) GO TO 1450 RAM19370
A-36
-------
C WRITE ERROR STATEMENT
WRITE (10,2070) IDCK,IDATA
CALL WAUDIT
STOP
C CALCULATE POINT SOURCE CONTRIBUTIONS
1450 CALL PT
C CHECK FOR AREA SOURCES
IF (IOPT(6).NE.l) GO TO 1490
C lOPT(lO) CONTROL OPTION, HOURLY EMISSION INPUT? 0=NO, 1=YES
IF (lOPT(lO).EQ.O) GO TO 1480
IDCK=IDATE(1)*100000+IDATE(2)*100+LH
C READ HOURLY AREA SOURCE EMISSION RECORD
READ (16) IDATA,(ASORC(IPOL,I),I=1,NAS)
C CHECK DATE
IF (IDCK.EQ.IDATA) GO TO 1460
C WRITE ERROR STATEMENT
WRITE (10,2080) IDCK,IDATA
CALL WAUDIT
STOP
C CONVERT HOURLY AREA EMISSIONS FROM G/SEC TO G/SQ. M/SEC
1460 DO 1470 I=1,NAS
C CONVERT SIDE LENGTH TO METERS.
C NOTE: SIDE LENGTH HAD BEEN MULTIPLIED BY .5 ABOVE FOR TIME
C CONSIDERATIONS
SF=ASORC(5,I}*2000*CONTWO
1470 ASORC(IPOL,I)=ASORC(IPOL,I)/(SF*SF)
C SET UP INTEGRATION TABLEf —
1480 CALL JMH54
C CALCULATE AREA SOURCE CONTRIBUTIONS
CALL JMHARE
C DETERMINE TOTAL CONCENTRATION.
1490 DO 1500 K=1.NRECEP
1500 GRANDT(K)=AHCHI(K)+PHCHI(K)
IF (IOPT(41).EQ.O) GO TO 1510
C WRITE HOURLY CONCENTRATIONS TO TAPE
C THIS WILL GENERATE NPER*NAVG RECORDS.
WRITE (12) IDATE(2),LH,(GRANDT(I),I=1,NRECEP)
C->->->->SECTION U - CALCULATE AND STORE FOR HIGH-FIVE TABLE.
C
1510 NHR=NHR+1
C IF OPTION 36 IS 1, DELETE COMPUTATIONS FOR AVG CONG.
C FOR LENGTH OF RECORD AND HIGH-FIVE TABLE.
IF (IOPT(36).EQ.l) GO TO 1570
CUMULATE CONCENTRATIONS FOR AVG TIMES AND LENGTH OF RECORD.
SS FOR AREA SOURCE CALCULATIONS
FOR DEFAULT OPTION DETERMINE CALM HOURS.
FOR CALM HOURS, CONCENTRATIONS AT EACH RECEPTOR ARE
SET EQUAL TO ZERO.
A CALM HOUR IS AN HOUR WITH A WIND SPEED
OF 1.00 M/S AND A WIND DIRECTION THE SAME
AS THE PREVIOUS HOUR.
IF(IOPT(38).EQ.l.AND.QU(LH).LT.1.009.AND.ITMIN1.EQ.
*IDUMR(LH))THEN
ICALM=ICALM+1
DO 955 K=1.NRECEP
GRANDT(K)=0.0
955 CONTINUE
GO TO 971
END IF
DO 1530 K=1,NRECEP
DO 1520 L=1.NAVT
1520 CONC(K,L)=CONC(K,L)+GRANDT(K)
1530 SUM(K)=SUM(K)+GRANDT(K)
C STORE DATE FOR WHICH CONCS. HAVE BEEN CALCULATED.
971 JDAY=IDATE(2)
C SUBROUTINE RANK IS CALLED WHENEVER A COUNTER
C INDICATES THAT ENOUGH END TO END HOURLY CONCENTRATIONS
C HAVE BEEN STORED OFF TO COMPLETE AN AVG TIME.
C NP3, NP8, NP24, NPX ARE USED AS COUNTERS FOR EACH
RAM19380
RAM19390
RAM19400
RAM19410
RAM19420
RAM19430
RAM19440
RAM19450
RAM19460
RAM19470
RAM19480
RAM19490
RAM19500
RAM19510
HAM19520
RAM19530
RAM19540
RAM19550
RAM19560
RAM19570
RAM19580
RAM19590
RAM19600
RAM19610
RAM19620
RAM19630
RAM19640
RAM19650
RAM19660
RAM19670
RAM19680
RAM19690
RAM19700
RAM19710
RAM19720
RAM19730
RAM19740
RAM19750
RAM19760
RAM19770
RAM19780
RAM19790
RAM19800
RAM19810
RAM19820
RAM19830
RAM19840
RAM19850
RAM19860
RAM19870
RAM19880
RAM19890
RAM19900
RAM19910
RAM19920
RAM19930
RAM19940
RAM19950
RAM19960
RAM19970
RAM19980
RAM19990
RAM20000
RAM20010
RAM20020
RAM20030
RAM20040
RAM20050
A-37
-------
c
c
c
c
c
c
c
972
974
C
C
C
975
976
C
C
C
977
1011
C
C
C
C
C
979
AVG TIME AND ARE ZEROED AFTER EACH CALL TO RANK.
FOR THE DEFAULT OPTION CALCULATE AVERAGE
CONCENTRATION FOR APPROPRIATE AVERAGING PERIOD.
SET UP CALM FLAG FOR ENTRY INTO SUBROUTINE RANK.
IF(IOPT(38).EQ.O) GOTO 979
CALL RANK(l)
NP3=NP3+1
IF(QU(LH).LT.1.009.AND.IDUMR(LH).EQ.ITMIN1)ICFL3=1
IF(NP3.NE.3) GO TO 974
FOR 3 HOUR AVERAGING PERIOD DIVIDE SUM BY 3.0.
DO 972 LQ=1,NRECEP
CONC(LQ,2)=CONC(LQ,2)/3.0
LL2=2
IF(ICFL3.EQ.1)LL2=22
CALL RANK(LL2)
NP3=0
ICFL3-0
NP8=NP8+1
IDIV8=IDIV8+1
IF(QU(LH).LT.1.009.AND.IDUMR(LH).EQ.ITMIN1)THEN
IDIV8=IDIV8-1
ICFL8=1
END IF
IF(NP8.NE.8)GO TO 976
IF(IDIV8.LT.6)IDIV8=6
DIV8=IDIV8
FOR 8 HOUR AVERAGING PERIOD DIVIDE THE SUM OF THE HOURLY
CONCENTRATIONS BY THE NUMBER OF NON-CALM HOURS OR 6.0
WHICHEVER IS GREATER.
DO 975 LQ=1,NRECEP
CONG (LQ., 3) =CONC (LQ, 3) /DIV8
LL3=3
IFUCFL8.EQ.1)LL3=33
CALL RANK(LL3)
NP8=0
IDIV8=0
ICFL8=0
NP24=NP24+1
IDIV24=IDIV24+1
IF(QU(LH).LT.1.009.AND.IDUMR(LH).EQ.ITMIN1)THEN
IDIV24=IDIV24-1
ICFL24=1
END IF
IF(NP24.NE.24)GO TO 1011
IF(IDIV24.LT.18)IDIV24=18
DIV24=IDIV24
FOR 24 HOUR AVERAGING PERIOD DIVIDE THE SUM OF THE HOURLY
CONCENTRATIONS BY THE NUMBER OF NON-CALM HOURS OR 18,
WHICHEVER IS GREATER.
DO 977 LQ=1,NRECEP
CONC(LQ,4)=CONC(LQ,4)/DIV24
LL4=4
IF (ICFL24.EQ.1)LL4=44
CALL RANK(LL4)
NP24=0
IDIV24=0
ICFL24=0
ITMIN1=IDUMR(LH)
GO TO 1570
WHEN DEFAULT OPTION IS NOT USED, DETERMINE ENTRY INTO
SUBROUTINE RANK FOR APPROPRIATE AVERAGING PERIOD.
RANKING BASED ON HIGH AVERAGING PERIOD SUM.
CALL RANK (1)
NP3=NP3+1
IF (NP3.NE.3)
CALL RANK (2)
GO TO 1540
RAM20060
RAM20070
RAM20080
RAM20090
RAM20100
RAM20110
RAM20120
RAM20130
RAM20140
RAM20150
RAM20160
RAM20170
RAM20180
RAM20190
RAM20200
RAM20210
RAM20220
RAM20230
RAM20240
RAM20250
RAM20260
RAM20270
RAM20280
RAM20290
RAM20300
RAM20310
RAM20320
RAM20330
RAM20340
RAM20350
RAM20360
RAM20370
RAM20380
RAM20390
RAM20400
RAM20410
RAM20420
RAM20430
RAM20440
RAM20450
RAM20460
RAM20470
RAM20480
RAM20490
RAM20500
RAM20510
RAM20520
RAM20530
RAM20540
RAM20550
RAM20560
RAM20570
RAM20580
RAM20590
RAM20600
RAM20610
RAM20620
RAM20630
RAM20640
RAM20650
RAM20660
RAM20670
RAM20680
RAM20690
RAM20700
RAM20710
RAM20720
RAM20730
RAM20740
RAM20750
A-38
-------
1540
1550
1560
C
1570
C
1580
C
C
C
1590
C
C
1600
C
1610
C
1620
1630
C
C
C
C
1640
C
C
C
C
C
1650
NP3=0
NP8=NP8+1
IF (NP8.NE.8) GO TO 1550
CALL RANK (3)
NP8=0
NP24=NP24+1
IF (NP24.NE.24) GO TO 1560
CALL RANK (4)
NP24=0
IF (NAVT.EQ.4) GO TO 1570
NPX=NPX+1
IF (NPX.NE.NAV5) GO TO 1570
CALL RANK (5)
NPX=0
->-/SECTION V - END HOURLY, AVERAGING TIME, AND DAILY LOOPS.
IF (IOPT(24).EQ.l) GO TO 1580
IF IOPT(24) = l.SKIP HOURLY OUTPUT.
CALL OUTPT
CONTINUE
END OF HOURLY LOOP
IF (NE.GT.24) IDATE(2)=ISTDAY
DETERMINE AVG.-PER.CONCENTRATIONS.
DO 1590 K=1,NRECEP
ACHI(K)=ACHI(K}/NAVG
PCHIfK)=PCHI(K)/NAVG
GRANDT(K)=ACHI(K)+PCHI(K)
IF (IOPTI42).EQ.O) GO TO 1600
WRITE PERIODIC CONG. TO DISK/TAPE- FOR LONG-TERM
APPLICATION. THIS STATEMENT WILL GENERATE 'NPER' RECORDS
WRITE (13) IDATE(2),NE,(GRANDT(K),K=1,NRECEP)
IF (IOPT(43).EQ.O) GO TO 1620
PUNCH AVG.-PER. CONG. CARDS (ONE FOR EACH RECEPTOR).
DO 1610 K=1.NRECEP
GWU=GRANDT(fc)*1.OE+06
A=ACHI(K)*1.OE+06
B=PCHI(K)*1.OE+06
WRITE (1,2090) RREU(K),SREU(K),GWU,A,B,K,IDATE,NE,NAVG
CONTINUE
OUTPUT AVG.-PER. RESULTS
IF (IOPT(32).EQ.l) GO TO 1630
CALL OUTAV
NP=NP+1
NHRS=NHRS+NAVG
NEXT STATEMENT IS BRANCH FOR END OF RUN.
IF (NP.GE.NPER) GO TO 1660
IF (NHRS.LT.24) GO TO 1640
IF (IOPT(39).EQ.OO GO TO 1150
NEXT STATEMENT CHECKS FOR END OF SEGMENTED RUN.
IF (IDAY.GE.LDRUN) GO TO 1650
GO TO 1150
END OF LOOP FOR CALENDAR DAYS
NB=NB+NAVG
NE=NE+NAVG
IF (NB.LE.24)
NB=MOD(NB,24)
NE=NB+NAVG-1
GO TO 1200
GO TO 1200
END OF LOOP FOR AVERAGING PERIOD.
IF SEGMENTED RUN. TEMPORARILY STORE
HIGH-FIVE INFO ON UNIT 14 FILE.
WRITE (14) IDAY,SUM.NHR,DAY1A,HR1,HMAXA,NDAY,IHR
WRITE (10,2620) IDAY
RAM20760
RAM20770
RAM20780
RAM20790
RAM20800
RAM20810
RAM20820
RAM20830
RAM20840
RAM20850
RAM20860
RAM20870
RAM20880
RAM20890
RAM20900
RAM20910
RAM20920
RAM20930
RAM20940
RAM20950
RAM20960
RAM20970
RAM20980
RAM20990
RAM21000
RAM21010
RAM21020
RAM21030
RAM21040
RAM21050
RAM21060
RAM21070
RAM21080
RAM21090
RAM21100
RAM21110
RAM21120
RAM21130
RAM21140
RAM21150
RAM21160
RAM21170
RAM21180
RAM21190
RAM21200
RAM21210
RAM21220
RAM21230
RAM21240
RAM21250
RAM21260
RAM21270
RAM21280
RAM21290
RAM21300
RAM21310
RAM21320
RAM21330
RAM21340
RAM21350
RAM21360
RAM21370
RAM21380
RAM21390
RAM21400
RAM21410
RAM21420
RAM21430
RAM21440
RAM21450
A-39
-------
GO TO 1750
IF (IOPT(36).EQ.l) GO TO 1750
1660
C
C->->->->SECTION W - WRITE AVERAGE CONG. AND HIGH-FIVE TABLES.
C
C
C
IF OPTION 36 = 0, WRITE AVERAGE CONCENTRATION.
FOR LENGTH OF RECORD AND HIGH-FIVE TABLE.
DO 1670 J=1,NRECEP
is\s jLWfw *j — j. « 1*1 u;
STAH(1,J)=BLNK
STAR(2,J)=BLNK
1670 CONTINUE
WRITE (10,2630) LINE1.LINE2,LINES
HR2=NE
C FOR DEFAULT OPTION CALCULATE AND REPORT THE
C NUMBER OF CALMS FOR AVERAGING PERIOD.
IF<:iOFT(38}.ZQ.i,THEN
NHR=NHR-ICALM
WRITE(6,1761)ICALM
END IF
C INITIALIZE PERIODIC CONC TO BEGIN RANKING FOR PERIODIC MAX
SUM(1)=SUM(1)/NHR
HF=SUM(1)
ID=1
C FIND HIGHEST AVERAGE CONC. AMONG RECEPTORS.
DO 1680 K=2,NRECEP
SUM(K)=SUM(K)/NHR
IF (SUM(K).LE.HF) GO TO 1680
ID=K
HF=SUM(K)
1680 CONTINUE
STAR(1,ID)=STR
C WRITE AVERAGE CONC.(HIGHEST HAS ASTERISK).
WRITE (10,2640) DAY1A,HR1,DAY2,HR2
DO 1690 K=1,NRECEP
1690 WRITE (10,2650) K, ITYPE(K), ICODE(K), (RNAME(J.K), J=l,2) ,RREU(K)-,
lUOQ,STAR(1,K),SUM(K)
STAR(1,ID)=BLNK
C LOOP TO WRITE HIGH-FIVE TABLE FOR 4 OR 5 AVG TIMES.
DO 1740 L=1,NAVT
C ASTERISKS DEPICT RECEPTORS WITH HIGHEST AND
C SECOND HIGHEST CONCENTRATIONS.
ID=1
IQ=1
A=HMAXA(1,1,L)
B=HMAXA(2,1,L)
DO 1710 K=2,NRECEP
IF (HMAXA(1,K.L).LE.A) GO TO 1700
A=HMAXA(1,K,L)
ID=K
1700 IF (HMAXA(2,K.L).LE.B) GO TO 1710
B=HMAXA(2,K,L)
IQ=K
1710 CONTINUE
STAR(1,ID)=STR
STAR(2,IQ)=STR
C WRITE HIGH-FIVE TABLE FOR AN AVERAGING TIME.
IF((IOPT(38).EQ.1.AND.L.EQ.1).OR.(IOPT(38).NE.1))THEN
WRITE (10,2660) NTIME(L).TITLE(IP),(1,1=1,5)
END IF
IF(IOPT(38).EQ.1.AND.L.NE.1)THEN
WRITE (10,2661) NTIME(L).TITLE(IP),(1,1=1,5)
END IF
DUM=ATIME(L)
DO 1730 K=1,NRECEP
C SET CALM FLAG FOR PRINTING.
C RESET HOUR VARIABLE FOR CALM HOURS.
IF(IOPT(38).EQ.1)THEN
DO 1712 J=l,5
CF(J)=BLNK
IF(IHR(J,K,L).GT.24)THEN
RAM21460
RAM21470
RAM21480
RAM21490
RAM21500
RAM21510
RAM21520
RAM21530
RAM21540
RAM21550
RAM21560
RAM21570
RAM21580
RAM21590
RAM21600
HAM21610
RAM21620
RAM21630
RAM21640
RAM21650
RAM21660
RAM21670
RAM21680
RAM21690
RAM21700
RAM21710
RAM21720
RAM21730
RAM21740
RAM21750
RAM21760
RAM21770
RAM21780
RAM21790
SRERAM21800
RAM21810
RAM21820
RAM21830
RAM21840
RAM21850
RAM21860
RAM21870
RAM21880
RAM21890
RAM21900
RAM21910
RAM21920
RAM21930
RAM21940
RAM21950
RAM21960
RAM21970
RAM21980
RAM21990
RAM22000
RAM22010
RAM22020
RAM22030
RAM22040
RAM22050
RAM22060
RAM22070
RAM22080
RAM22090
RAM22100
RAM22110
RAM22120
RAM22130
RAM22140
RAM22150
A-40
-------
IHR(J,K,L)=IHR(J,K,L)-100 RAM22160
CF(J)=C RAM22170
END IF RAM22180
1712 CONTINUE RAM22190
END IF RAM22200
IF(IOPT(38).EQ.1)GO TO 1711 RAM22210
C CALCULATE AVERAGE CONCENTRATIONS WHEN RAM22220
C DEFAULT OPTION IS NOT ON. RAM22230
DO 1720 J=1.5 RAM22240
1720 HMAXA(J,K,L)=HMAXA(J,K,L)/DUM RAM22250
1711 WHITE (10.2670) K,RREU(K).SREU(K),(STAR(J.K),HMAXA(J,K,L),CF(J), RAM22260
lNDAYTj,K,t)>IHR(J,K,L),J=l>2)>(HMAXA(J,K,i),6F(J),NDAY(J,k,L), RAM22270
2IHR(J.K,L),J=3,5) RAM22280
1730 CONTINUE RAM22290
C INITIALIZE ASTERISK STORAGE TO BLANKS. RAM22300
STAR(1,ID)=BLNK RAM22310
STAR(2,IQ)=BLNK RAM22320
1740 CONTINUE RAM22330
C RAM22340
C->->->->SECTION X - CLOSE OUT FILES. RAM22350
C RAM22360
1750 IF (IOPT(40).EQ.O) GO TO 1760 RAM22370
END FILE 10 RAM22380
END FILE 10 RAM22390
1760 IF (IOPT(41).EQ.O) GO TO 1770 RAM22400
END FILE 12 RAM22410
END FILE 12 RAM22-120
1770 IF (IOPT(42).EQ.O) GO TO 1780 RAM22430
END FILE 13 RAM22440
END FILE 13 - RAM22450
1780 WRITE (10,2680) RAM22460
CALL WAUDIT
STOP
C->->->->SECTION Y -
C
FORMAT STATEMENTS.
C
C
1761
1790
1800
1810
1820
1830
1840
1850
C
C
C
1860
INPUT FORMATS
FORMAT (f
FORMAT
FORMAT
FORMAT
FORMAT
FORMAT
FORMAT
FORMAT
5X.T98 '# CALMS FOR PERIOD: ',14)
20A4/20A4/20A4)
5011)
A4)
3A4.8F8.2)
3A4.6F10.2)
2613)
2A4.2F10.3)
ERROR AND WARNING STATEMENT
FORMAT (IX,' NSIGP (THE NO. OF
FORMATS
SIGNF POI
1870
1880
1890
' • vi u xvjii^ i \s ^11 j. u w&i\suw j iTfuJ c \yuiii/ •
25). USER TRIED TO INPUT ',13,' SOURCES'/'
INATED ********')
i. \SJIU MfM ^ J./1 | If kj XVJ4
10 EXCEED THE LIMIT
2******** EXECUTION
FORMAT (IX 'NSIGA(THE NO. OF SIGNIF. AREA SOURCES) WAS FOUND TO
1'EXCEED THE LIMIT (10). USER TRIED TO INPUT ',13,' SOURCES.'/'
2****EXECUTION TERMINATED *****')
FORMAT (' USER TRIED TO INPUT MORE THAN ',14
JL V/1U *** * V UUuH J. AfcXul/ i V X1T1 VJ i I iV/illJ J. HjTlil • X~ •
1 GOES BEYOND THE CURRENT PROGRAM DIMENSIONS.')
EY1DMAT ( ' ITCUD TOTT?n Tf\ TMDITT M("lDT? TUAM » T/l '
1900
1910
1920
1950
RAM22470
RAM22480
RAM22490
RAM22500
RAM22510
RAM22520
RAM22530
RAM22540
RAM22550
RAM22560
RAM22570
RAM22580
RAM22590
RAM22600
RAM22610
RAM22620
RAM22630
TRAM22640
RAM22650
RAM22660
',RAM22670
RAM22680
RAM22690
THISRAM22700
RAM22710
THIS RAM22720
RAM22730
BY ',13) RAM22740
POINT SOURCES.
AREA SOURCES.
FORMAT (' USER TRIED TO INPUT MORE THAN ',14,
1GOES BEYOND THE CURRENT PROGRAM DIMENSIONS.')
FORMAT (' DIMENSIONS TOO SMALL TO HOLD ARRAY ',13,' Ui t^j wtf.*.,-*v
FORMAT (' AREA SOURCES, UNITS OR SIDE LENGTH SPECIFIED INCORRECTLYRAM22750
1; ERROR ON EAST MAX BOUNDARY.') RAM22760
FORMAT (' AREA SOURCES. UNITS OR SIDE LENGTH SPECIFIED INCORRECTLYRAM22770
1; ERROR ON NORTH MAX BOUNDARY.') RAM22780
1930 FORMAT (' SOURCE ',13,' IS ALREADY LOCATED AT POSITION (',13,',',IRAM22790
13,') CHECK SOURCE ',13) RAM22800
1940 FORMAT (' AREA ARRAY IS TOO WIDE FOR PAGE SIZE, THEREFORE WILL NOTRAM22810
1 BE PRINTED') RAM22820
FORMAT (1H1,'***ERROR USER TRIED TO SPECIFY ',14,' SIGNIFICANT SRAM22830
10URCES, BUT IS ONLY ALLOWING ',13,' TOTAL SIGNIFICANT SOURCES IN TRAM22840
A-41
-------
2HIS RUN.',/2X,' RUN TERMINATED-CHECK INPUT DATA! ') RAM22850
1960 FORMAT (' CMPS) THE INPUT SIGNIFICANT SOURCE NUMBER '.WAS FOUND TRAM22860
10 EQUAL ZERO - USER CHECK INPUT DATA.') RAM22870
1970 FORMAT (' THE INPUT LIMIT OF MAX DISTANCE FOR AREA INTEGRATION '.'RAM22880
1 CONVERTS TO '.F10.3,' KM WHICH EXCEEDS STORAGE '.'LIMITATIONS. UPRAM22890
2 TO 116 KM DISTANCES ARE ALLOWED.') RAM22900
1980 FORMAT (47H ERROR IN SPECIFYING SIGNIF. POINT SOURCES ) RAM22910
1990 FORMAT ('ODISAGREEMENT OF IDENTIFIERS- ',/' SURFACE DATA FROM CARDRAM22920
1: STATION = ',15,' YEAR = ',I2,/' FROM MET FILE: STATRAM22930
2ION = ',15,' YEAR = ',I2,/' MIX HT DATA FROM CARD: STATION = ' I5RAM22940
3,' YEAR =',I2,/' FROM MET FILE: STATION = ',15,' YEARRAM22950
4 = ',12) RAM22960
2000 FORMAT (IX,'****USER EITHER TRIED TO INPUT MORE THAN 180 ','RECEPTRAM22970
10RS OR ENDR WAS NOT PLACED AFTER THE LAST RECEPTOR ','CARD *'/'*RAM22980
2*******EXECUTION TERMINATED*******') RAM22990
2010 FORMAT (IX,'NO RECEPTORS HAVE BEEN CHOSEN') HAM23000
2020 FORMAT (1HO,1 DAYS DO NOT MATCH, IDAY = ',14,', IDAYS = '.14) RAM23010
2030 FORMAT ('0 RUN TERMINATED . CAN NOT WRITE FILES (OPTIONS 41, ','QRAM23020
1R 42)'/1X,'WHEN HAVING RAM GENERATE RECEPTORS FOR EACH AVG-PER','(RAM23030
20PTIONS 15,16,OR 17).') RAM23040
2040 FORMAT (' DATE ON MET. TAPE, ',12,13,' .DOES NOT MATCH INTERNAL DARAM23050
1TE, ',12.13) RAM23060
2050 FORMAT (' HOUR ',13,' IS NOT PERMITTED. HOURS MUST BE DEFINED BETWRAM23070
1EEN 1 AND 24') RAM23080
2060 FORMAT (IX,'NO RECEPTORS HAVE BEEN CHOSEN') RAM23090
2070 FORMAT (' DATE BEING PROCESSED IS = ',I8/1X.'DATE OF HOURLY POINT RAM23100
1EMISSION RECORD IS =',I8/1X,'***PLEASE CHECK EMISSION RECORDS ')RAM23110
2080 FORMAT (' DATE BEING PROCESSED IS= ',I8/1X,'DATE OF HOURLY AREA EMRAM23120
1ISSION RECORD IS =',I8/1X,'***PLEASE CHECK EMISSION RECORDS***') RAM23130
C RAM23140
C PUNCH CARD FORMAT(FOR OUTPUT, OPTION 43) RAM23150
C RAM23160
2090 FORMAT ('CNTL',1X.5F10.3.5I5) • • RAM23170
C . RAM23180
C OUTPUT FORMATS • ' ' RAM23190
C RAM23200
2100 FORMAT (1H1.T40,' OUTPUT FROM '.A4.A1,' RAM (VERSION 85364) './1X.RAM23210
1T40,' AN AIR QUALITY DISPERSION MODEL IN ' /.1X.T40 ' SECTION 1. GRAM23220
2UIDELINE MODELS './,1X,T40, ' IN UNAMAP (VERSION 6) DEC 86 ',/,1XRAM23230
3.T40,' SOURCE: UNAMAP FILE ON EPA"S UNIVAC 1110, RTP. NC.') RAM23240
2110 FORMAT T/1X,20A4/1X,20A4/1X,20A4) RAM23250
2120 FORMAT £'0' T30 'GENERAL INPUT INFORMATION'//2X, "THIS IS THE '.A4,RAM23260
1A1,' VERSION(81352T OF RAM FOR THE POLLUTANT ',A4,' FOR ',13.IX,I3RAM23270
2,'-HOUR PERIODS.'/2X,'CONCENTRATION ESTIMATES BEGIN ON HOUR-',12 'RAM23280
3, JULIAN DAY-',13,', YEAR-19',12,'.'/1X,' UNITS - THERE ARE ',F14.RAM23290
47,' USER UNITS(INPUT UNITS) PER SMALLEST AREA SOURCE SQUARE SIDE LRAM23300
5ENGTH(INTERNAL UNIT)'/2X,'CONONE - THERE ARE',F14.7,' KILOMETERS PRAM23310
6ER USER UNIT'/2X,'CONTWO - IT IS CALCULATED THAT THERE ARE' F14.7.RAM23320
7' KILOMETERS PER SMALLEST AREA SOURCE SQUARE SIDE LENGTH(INTERNAL RAM23330
8UNIT)'/2X,'RECEPTOR HEIGHT IS ' F14.7,' METERS') RAM23340
2130 FORMAT (IHO.'THIS RUN WILL NOT CONSIDER ANY POLLUTANT LOSS.') RAM23350
2140 FORMAT (1HO ' A HALF-LIFE OF '.F10.2,' (SECONDS) HAS BEEN ASSUMED RAM23360
1 BY THE USER.') RAM23370
2150 FORMAT (IX ' HIGH-FIVE SUMMARY CONCENTRATION TABLES ','WILL BE OUTRAM23380
1PUT FOR ',13,' AVERAGING PERIODS.'/' AVG TIMES ','OF 1,3,8, AND 2RAM23390
24 HOURS ARE AUTOMATICALLY DISPLAYED.') RAM23400
2160 FORMAT (IX.'THE FIFTH AVERAGING PERIOD FOR THE HIGH '.'-FIVE TABLERAM23410
IS IS ',13/HOURS 'I RAM23420
2170 FORMAT (1HO,T3,'OPTION ',T16 'OPTION LIST',T46,'OPTION SPECIFICATRAM23430
1ION : 0= IGNORE OPTION'/IX,T68 ' 1= USE OPTIONVT25,'TECHNICAL OPTRAM23440
2IONS'/1X,T7,I2,T16,'NO STACK DOWNWASH',T70,I1/1X,T7,I2,T16,'NO GRARAM23450
3DUAL PLUME RISE.',T70,11/1X.T7,12.T16/USE BOUYANCY INDUCED DISPERHAM23460
4SION',T70,I1/1X,T7,I2,T16,'NOT USED THIS VERSION',T70,II) RAM23470
TUJ.W11 , J. I U , ii/ J./V, i f , ii. , i JL<->, 11VS1. UOB1S liiJ-O T OHX3 J. VII . J, ( U , 0. J- / rUU'l£.Ot ( U
2180 FORMAT (1HO,T25.'INPUT OPTIONS'/1X,T7.12,T16 'WILL YOU ' 'INPUT PORAM23480
(RAM23520
ORAM23530
RAM23540
A-42
-------
7,T70.il/lX.T7.I2.T16,'SPECIFY SIGNIF. AREA ','SOURCES.',T70,I1/1X.RAM23550
8T7,I2,T16/NOT USED THIS VERSION' T70,II) RAM23560
2190 FORMAT (1HO.T25/RECEPTOR OPTIONS'/1X.T7,12, T16/WILL YOU ENTER '.RAM23570
1'RECEPTORS BY SPECIFYING COORDINATES?',T70,11/1X.T7,12.T16/DO'/ RAM23580
2YOU WANT RAM TO GENERATE RECEPTORS DOWNWIND '/1X,T7,T16.' OF '/SIRAM23590
3GNIF. PT. SOURCES? (WILL DO SO BY AVG-PERIOD)',T70.II,/1X.T7,12,T1RAM23600
46,'DO YOU WANT RAM TO GENERATE RECEPTORS DOWNWIND J/1X,T7.T16,'OF RAM23610
5SIGNIF. AREA SOURCES?(WILL DO SO BY AVG-PERIOD)',T70,II,/IX,T7,12,RAM23620
6T16 'DO YOU WANT RAM TO GENERATE A HONEYCOMB ARRAY OF',/lX.T7,Tl6,RAM23630
7'RECEPTORS TO COVER A SPECIFIC AREA?',T70,I1/1X.T7,12,T16.'WILL YORAM23640
8U INPUT RADIAL DISTANCESOJP TO 5) TO GENERATE ' /1X.T7,T16,'A POLARAM23650
9R COORDINATE RECEPTOR ARRAY'/IX.T7.T16,'(36 RECEP'/TORS FOR EACH RAM23660
ADISTANCE)'.T70.il/lX.T7,12.T16,'NOT USED THIS ',' VERSION' T70.il)RAM23670
2200 FORMAT (1HO,T25,'PRINTED OUTPUT OPTIONS'/IX,T7,12,T16,'DELETE POIavfy /XA.I^J., luoi
4' T39,'(GRAMS/M**2/SEC) ',T58/(USER UNITS) (METERS)'/1X) "RAM24170
2290 FORMAT (1X,T2,I3,1X.3A4.2F9.3,1X,2(1X,1PE11.4),2X,OPF6.3,5X,F6.3,2RAM24180
1X.1PE11.4) RAM24190
2300 FORMAT ('0',5X,'AREA SOURCE MAP ARRAY (IA)'/1X) RAM24200
2310 FORMAT (IX.I3.2X.41I3/1X) RAM24210
2320 FORMAT (/6X,4ll3^1X) RAM24220
2330 FORMAT ('OTHE ORIGIN IN INTERNAL UNITS IS ('.F10.2.' / .F10.2/)'/1RAM24230
IX, "THE SIZE OF THE AREA SOURCE ARRAY IS (',I5// , l5/J') RAM24240
A-43
-------
2340 FORMAT (' RMIN=',F8.2 ' RMAX=',F8.2, ' SMIN=',F8.2,' SMAX=",F8.2,' RAM24250
1 (IN INTERNAL UNITS)') RAM24260
2350 FORMAT ('0'IX,T3,'SIGNIFICANT ',A4.' AREA SOURCES'//IX,T8,'RANK RAM24270
1',T20,'Q*LENGTH',T33,'SOURCE NO.1/1X,T19,'(G/M/SEC)'/1X) RAM24280
2360 F6RMAT (IX,T9,13 T18 1PE12.4.T35,13) RAM24290
2370 FORMAT (IX,'HEIGHT ABOVE 100M FOR POINT SOURCE'.14,3X,' HEIGHT=',FRAM24300
16.2,' (METERS)'.' EMISSIONS^',F10.2,' (G/SEC)') RAM24310
2380 FORMAT ('0',4X,'TOTAL ',A4,' EMISSION AND CUMULATIVE FRACTION ACCORAM24320
1RDING TO HEIGHT'//1X,T12,'TOTAL POINT CUMULATIVE TOTAL AREARAM24330
2 CUMULATIVE'/IX 'HEIGHT(M) EMISSIONS(G/S) FRACTION EMISSIRAM24340
30NS(G/S) FRACTION'/IX) RAM24350
2390 FORMAT (1X.T2.I2 ' -' 13.Til.F8.2,T26.F7.3,T41,F8.2,T56,F7.3) RAM24360
2400 FORMAT ('0',T2,'TOTAL',2X,FIO.2,T39,FIO.2) RAM24370
2410 FORMAT (1H0.21X 'ADDITIONAL INFORMATION ON SOURCES.'/1X,T21.'POINTRAM24380
1 SOURCE INFORMATION'/'0',2X,'EMISSION INFORMATION FOR ',14,l (NPT)RAM24390
2 POINT SOUR','CES HAS 3EEN INPUT', 2X,12,' SIGNIFICANT POINT SOUHCEIZAMC 1400
3s (NSIGP) VARE TO BE USED FOR THIS RUN'/SX) RAM24410
2420 FORMAT (1HO ' USER SPECIFIED ',13,' (NPT) SIGNIFICANT POINT ','SORAM24420
1URCES AS LISTED BY POINT SOURCE NUMBER:'/2X.2515) RAM24430
2430 FORMAT (IX,'THE ORDER OF SIGNIFICANCE (IMPS) FOR 25'.' OR LESS POIRAM24440
INT SOURCES USED IN THIS RUN AS LISTED BY POINT ','SOURCE NUMBER:'/RAM24450
22X.25I5) RAM24460
2440 FORMAT (1HO.T21,'AREA SOURCE INFORMATIONV/2X,'EMISSION INFORMATIORAM24470
IN FOR ',14,' (NAS) AREA SOURCES HAVE BEEN DETERMINED BY RAM'/2X.I2RAM24480
2,' SIGNIFICANT AREA SOURCES (NSIGA) ARE TO BE USED FOR THIS RUN') RAM24490
2450 FORMAT (2X,'NUMBER OF AREA HEIGHT CLASSES (NHTS)=' I2/2X 'REPRESENRAM2 1500
1TATIVE AREA SOURCE HEIGHTS FOR EACH HEIGHT CLASS (HINT) IN METERS RAM24510
2=',3F10.2) RAM24520
2460 FORMAT (2X,'BREAK POINT HEIGHT BETWEEN THE AREA HEIGHT CLASSES (BPRAM24530
1H) IN METERS =',2F10.2) HAM24540
2470 FORMAT (2X,' FRACTION OF AREA SOURCE HEIGHT WHICH IS PHYSICAL HEIGRAM24550
1HT (FH) = ' FIO.3/2X 'LIMIT OF DISTANCE FOR AREA SOURCE INTEGRATIONRAM24560
2 TABLES (XLIM) IN USER UNITS =',FIO.3/2X,'BOUNDARIES OF THE AREA 'RAM24570
3,'SOURCE GRID IN USER UNITS:'/1X.T6 'RMIN=',F10.3,5X,'RMAX='.F10.3RAM24580
4.5X,'SMIN=',F10.3,5X,'SMAX=',F10.3/2X,'SIZE(IRSIZE X ISSIZE) OF '.RAM24590
5' AREA SOURCE MAP ARRAY(IA) IN INTERNAL UNITS =',13,' EAST-WEST '?RAM24600
6BY ',13,' NORTH-SOUTH') RAM24610
2480 FORMAT (1HO ' USER SPECIFIED ',13 ' (NAS) SIGNIFICANT AREA ','SORAM24620
1URCES AS LISTED BY AREA SOURCE NUMBER:'/2X,2515) RAM24630
2490 FORMAT (1X,T21,'THE ORDER OF SIGNIFICANCE (IMAS) FOR 10 OR LESS '.RAM24640
1' AREA SOURCE IS LISTED BY AREA SOURCE NUMBER:*/2X,1015) RAM24650
2500 FORMAT (1HO,'SURFACE MET DATA FROM STATION(ISFCD) '16 ' YEAR(ISFRAM24660
1CYR) 19%I2/2X 'MIXING HEIGHT DATA FROM STATION(IMXD) },I6,', YEARRAM24670
2CEMXYR) 19', 12) RAM24680
2510. FORMAT (1HO.T21,'RECEPTOR INFORMATION') RAM24690
2520 FORMAT (1HO.' MPTER INTERNALLY GENERATES 36 RECEPTORS ' 'ON A CIRCRAM24700
1LE CORRESPONDING TO EACH NON-ZERO ','RADIAL DISTANCE FROM A CENTERRAM24710
2 POINT '/IX.TIO,'COORDINATES ARE (USER UNITS): (' F8.3 ' , 'F8.3 ')'RAM24720
3/1X,T10,'RADIAL DISTANCE(S) USER SPECIFIED (USER UNITS): ',5(F11.3RAM24730
4 ' ')) RAM24740
2530 FORMAT (F4.1) RAM24750
2540 FORMAT ('0',' RECEPTOR IDENTIFICATION EAST NORTH RAM24760
I'/IX.TSO.'COORD',T39,'COORD'/1X.T31,'(USER UNITS)') RAM24770
2550 FORMAT (1X.T3.I3,1X.A1,8X,2A4,F13.3,F10.3) RAM24780
2560 FORMAT (//1X,J THE NUMBER OF DAYS PREVIOUSLY COMPLETED EQUAL '.RAM24790
113,' AND THE LAST DAY TO BE COMPLETED IN THIS RUN IS ',13) RAM24800
2570 FORMAT ('1INPUT MET DATA FOR ',13.'-HR PERIOD STARTING AT HOUR: '.RAM24810
113,', YEAR',13,', JULIAN DAY',I4/1X.T2,'HOUR THETA SPEED MIRAM24820
2XING TEMP STABILITY'/1X.T9,'(DEC) (M/S) HEIGHT(M) (DEG-KRAM24830
3) CLASS'/lXl RAM24840
2580 FORMAT (
2590 FORMAT (
2,'AVERAGE TEMP='^F7.2/2X,'WIND PERSISTENCE^7,F6.3,T367TMODAL STABIRAM24880
3tlTY=',I2) RAM24890
2600 FORMAT ('0',T20,'GENERATED HONEYCOMB RECEPTORSVIX,/IX,'THE AREA TRAM24900
10 BE COVERED BY HONEYCOMB RECEPTORS IS BOUNDED BY:'/1X,' RMIN=',F1RAM24910
20.3.' RMAX=' F10.3,' SMIN='.F10.3,' SMAX=',FIO.3//1X,1DISTANCE BETRAM24920
3WEEN HONEYCOMB RECEPTORS(GRIDSP) IN USER UNITS='.F7.3//1X,'RECEPTORAM24930
4R EAST NORTH') RAM24940
A-44
-------
FORMAT (' PLEASE NOTE: THE RECEPTOR NUMBERS AND LOCATIONS GENERRAM24950
1ATED FOR THIS AVERAGING TIME PERIOD ARE DIFFERENT FROM THOSE GENERRAM24960
2ATED FORV18X,' THE PRECEEDING AVERAGING PERIOD. ') RAM24970
FORMAT (1HO,' THIS SEGMENT OF A SEGMENTED RUN HAS COMPLETED',15,' RAM24980
1UDAY1 DAYS.') RAM24990
FORMAT ('1',20A4/1X,20A4/1X,20A4) RAM25000
FORMAT ('0',T9,' RECEPTORS'//IX,'RECEPTOR IDENTIFICATION RAM25010
1EAST NORTH ',T99,'AVGRAM25020
RAM25030
F4.0,'HR' F3.0/1XRAM25040
,T100,'RAM25050
RAM25060
2610
2620
2630
2640
2650
2660
.
2661 FORMAT
2 CONG FOR PERIOD'/1X,T30 'COORD'.T39,'COORD
3 ',T94 'DAY',F4.0,'HR',F3.0,' TO DAY
.T31 '(USER UNITS)
5(MICROGRAMS/M**3)'
GHEST '12, '-HOUR ' A4
fViU'UlJ. \ -LJ1JL . l^.u< > l'J.>ii ilJ.UIlUO.1 >-!•*• I ilWUil I ^1 I ) UVJl«V/tU»
1NDING ON JULIAN DAY, HOUR)'/1X,T55,'(MICROGRAMS/M**3)'/
RAM25100
CONCENTRATIONS((EKAM25110
2670
END
BLOCK DATA
•C BLOCK DATA (VERSION 80336), PART OF RAM.
C BLOCK DATA FOR RAM
C COEFFICIENTS GENERATED WITH RURAL SIGMAS USING PGSYSZ &PGSZ
C DIST OF MAX. CONG. FROM PT SOURCE = PXCORHCST,IH)*H**PXEXR(KST,IH)
C RELATIVE CONG. NORMALIZED FOR WIND SPEED FROM PT SOURCE, CHI*U/Q, =
C PXUCOR(KST,IH)*H**PXUEXR(KST,IH)
C DISTANCE OF MAX. CONG. FROM DOWNWIND EDGE OF AREA SOURCE =
C AXCOR(KST,IH)*H**AXEXR(KST,IH)
C IH=1 FOR H LESS THAN 20 METERS.
C IH=2 FOR H FROM 20 TO 30 METERS.
C IH=3 FOR H FROM 30 TO 50 METERS.
C IH=4 FOR H FROM 50 TO 70 METERS.
C IH=5 FOR H FROM 70 TO 100 METERS.
C IH=6 FOR H FROM 100 TO 200 METERS.
C IH=7 FOR H FROM 200 TO 300 METERS.
C IH=8 FOR H FROM 300 TO 500 METERS.
C IH=9 FOR H GREATER THAN 500 METERS.
C
RAM25180
RAM25190
RAM25210
RAM25220
RAM25230
RAM25240
RAM25250
RAM25260
RAM25270
RAM25280
RAM25290
RAM25300
RAM25310
RAM25320
RAM25330
RAM25340
RAM25350
RAM25360
RAM25370
RAM25380
RAM25390
COMMON /AE/ HClflO).PXUCOR(6,9),PXUEXR(6,9).PXCOR(6,9),PXEXR(6,9).RAM25400
1PXUCOF(6,9KPXUEXP(6,9),PXCOF(6,9),PXEXP(6,9),AXCOR(6,9),AXEXR(6,9RAM25410
-L.i Ik WVi. V W * ^ / I 1 /LU.UH4 V \J ) W /
2),AXCOF(6,9),AXEXP(6,9)
.20.,30..50.,70.,100.,200.,300.,500..1000./
.67049E-02,.76095E-02
.67199E-02,.75237E-02
.10509E-01,
.10418E-01,
.10468E-01,
10472E-01,
75283E-02,
75363E-02,
.74961E-02,
DATA HC1 /10..*.«.,-«.,.
DATA PXCOR /.38964E-02
1,.21051E-01,.59088E-02
2,.10867E-01,.59366E-02
.10552E-01..10739E-01
.13053E-02..14425E-01
.79956E-03..37139E-01
.14422E-03..51107E-01
.43952E-09 .50921E-01
.13979E-02,.50996E-01;.10401E-01
,,.20000E+04>
DATA PXEXR /.10995E+01,.10757E+01
1,.12577E+01,.96054E+00,.11000E+01
2, .14784E+01, .95916E+00, .10182E+01,' .10937E+01,'
3,.14870E+01,.80763E+00,.10176E+01,.10966E+01
4, .20212E+01,.73818E+00,.91238E+00
5,.21366E+01,.53282E+00,.91427E+00
6,.25085E+01,.47257E+00,.91337E+00
7..49057E+01..47321E+00..91331E+00
8,.22807E+01,.47297E+00,.91440E+00
9..00000E+00/
RAM25420
RAM25430
RAM25440
4 . t \J . • J.\J\J * g t*\J\J • • OV/U • • \J\J\J , . J. WW • / LlfWl£4iJ~T*t\J
54607E-02,.75278E-02,.115§3E-01,.12743E-01RAM25450
.50774E-02,.74442E-02,.87095E-02,.10152E-01RAM25460
14437E-01,.79376E-02RAM25470
22618E-02,.38170E-02RAM25480
22489E-02,.24006E-02RAM25490
17287E-02,.15400E-02RAM25500
75324E-02,.12670E-02,.13842E-03RAM25510
75225E-02,.84890E-03,.10930E-06RAM25520
19441E-03..10859E-04RAM25530
RAM25540
11383E+01
10965E+01.
11002E+01..12329E+01
10843E+01
15582E+01
15595E+01,'
12469E+01RAM25550
13228E+01RAM25560
13951E+01RAM25570
15823E+01RAM25580
. 16914E+01RAM25590
16166E+01,.17878E+01RAM25600
10965E+01
10963E+01
10964E+01,'. 16753E+01;. 22426E+01RAM25610
10966E+01,.17455E+01,.34951E+01RAM25620
10971E+01,.19827E+01,.27551E+01RAM25630
RAM25640
A-45
-------
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
DATA PXUCOR /.10401E+00,.12133E+00,.14273E+00,
10,.18668E+00,.77533E-01,.11728E+00,
20,.34326E+00,.67228E-01,.10013E+00,
30,.76271E+00,.40484E-01,.75308E-01,
40,.22936E+01,.28539E-01,.66936E-01,
15351E+00,.18855EfORAM25650
14120E+00;.18239E+00,.20458E+ORAM25660
13963E+00,.19162E+00,.38998E+ORAM25670
13784E+00,.54357E+00,.72550E+ORAM25680
13615E+00..52790E+00,
51,.56943E+01,.14792E-01,.65799E-01,.13315E+00,.74832E+00,
12908E+ORAM25690
28818E+ORAM25700
77020E+ORAM25710
•64321E-01,.12927E+00,.10826E+01
,62874E-01,.12546E+00,.15580E+01,.68810E+ORAM25720
.60615E-01,.11952E+00,.22517E+01,.42842E+ORAM25730
61,.40940E+03,.12403E-01,
72,.23011E+05,.12340E-01,
83,.46522E+06,.12245E-01,
93,. OOOOOE+00/ iuvrj*.j i ™
DATA PXUEXR /-. 19460E+01,-.19774E+01.-.20086E+01,-.20742E+01.-.218RAM25750
122E+01.-.22176E+01.-.18479E+01,-.19661E+01.-.20050E+01.-.213i7E+01RAM25760
2,-.22094E+01,-.24269E+01,-.180feOE+01,-.19196E+01,-.200l7E+01,-.214RAM25770
362E+01,-.23991E+01,-.26556E+01,-.16763E+01,-.18468E+01.-.19984E+01RAM25780
4,-.24128E+01,-.25578E+01,-.29371E+01,-.15940E+01,-.181§lE-K)l,-.199RAM25790
555E+01.-.24050E-01. -.26934E+01,-.31511E+01.-. 14513E+01,-. 18153E^01RAr-^CCOO
6,-.19967E+01,-.248l7E+01,-.28678E+01,-.40795E+01.-.14181E+01,-.181RAM25810
711E+01,-.19851E+01.-.255i4E+01,-.34879E+01.-.48399E+01,-.14172E+01RAM25620
8,-.18071E+01.-.19799E+01,-.26152E+01,-.387l9E+01,-.53670E+01,-.141RAM25830
960E+01,-.18012E+01,-.19721E+01,-.26744E+01,-.37956E+01,-.17020E+02RAM25840
A/
RAM25850
1
7'
ii
.19793E-01,.
.65416E-02,.
.17087E-02 .
.13715E-03,.
.73510E-06 .
.28987E-05,.
.20000E+04,.
.20000E+04,.
. 20000E+04/
92054E-02,
12311E-01,
19297E-01
32619E-01,
53524E-01,
55881E-01,
55160E-01,
55799E-01,
.94211E-02,
.11151E-01,
.L3824E-01,
.13833E-01,
.13821E-01,
.13920E-01,
.13838E-01,
.13881E-01,
.11254E-01,
.11079E-01,
.11267E-01
.11119E-01,
.11115E-01,
.11152E-01,
.11153E-01,
.11140E-01,
.13875E-01,
.53876E-02,
.42195E-02,
.30122E-02,
.22334E-02,
.11204E-02,
.61078E-03,
.61554E-03,
DATA AXCOR /.68365E-02,.79134E-02,.11062E-01,.14818E-01,.17234E-01RAM25860
„,/ „.,» ~.. „„ -,» .91114E-02RAM25870
,48999E-02RAM25880
.17526E-02RAM25890
.11144E-02RAM25900
.20868E-04RAM25910
.21361E-05RAM25920
.10114E-03RAM25930
. 20000E+04RAM25940
RAM25950
. ,10748E+01,.10960E+01,.12112E+01,.13211E+01RAM25960
1,.14994E+01,.91095E+00,.10166E+01,.10903E+01,.12332E+01,.15339E+01RAM25970
2,.18689E+01,.82547E+00,.96699E+00,.10949E+01,.15113E+01,.17163E+01RAM25980
3,.22636E+01,.71059E+00,.91206E+00,.10906E+01,.15738E+01,.19791E+01RAM25990
4, .29084E+01, .58703E+00, . 91191E400, . 10937E+01, . 16531E+01, .20856E-(-01RAM26000
~ ,91210E+00,.10938E+01,.17181E+01,.29494E+01RAM26010
.91075E+00,.10932E+01,.18483E+01,.33796E+01RAM26020
.91178E+00,.10932E+01,.19546E+01,.27033E+01RAM26030
8i .OOOOOE+00,' .47178E+00,' .91129E+00, .10933E+01, .19534E+01, .OOOOOE+OORAM26040
9, . OOOOOE-i-00/ RAM26050
RAM26060
COEFFICIENTS GENERATED WITH URBAN SIGMAS USING BRSYSZ & BRSZ
DIST OF MAX. CONC. FROM PT SOURCE = PXCOFfKST,IH)*H**PXEXP(KST,IH)
5..41392E+01,
6..38412E+01,
7,.OOOOOE+00
47949E+00,
47136E+00,,
47363E+00,
RAM26070
RAM26080
RELATIVE CONC. NORMALIZED FOR WIND SPEED FROM PT SOURCE, CHI*U/Q, = RAM26090
PXUCOF(KST,IH)*H**PXUEXP(KST,IH)
DISTANCE OF MAX. CONC. FROM DOWNWIND EDGE OF AREA SOURCE =
AXCOF?KST,IH)*H**AXEXP(KST,IH)
IH=1 FOR H LESS THAN 20 METERS.
IH=2 FOR H FROM 20 TO 30 METERS.
IH=3 FOR H FROM 30 TO 50 METERS.
IH=4 FOR H FROM 50 TO 70 METERS.
IH=5 FOR H FROM 70 TO 100 METERS.
IH=6 FOR H FROM 100 TO 200 METERS.
IH=7 FOR H FROM 200 TO 300 METERS.
IH=8 FOR H FROM 300 TO 500 METERS.
IH=9 FOR H GREATER THAN 500 METERS.
DATA PXCOF /.29000E-02,.29000E-02,.33389E-02,.49374E-02,
1,.76841E-02,.31586E-02,.31586E-02,.34293E-02,.50285E-02,
2,.65931E-02 .31977E-02,.31977E-02 .36114E-02 .45861E-02
3,.51435E-02,.34513E-02,.34513E-02,.34298E-02,.43860E-02,
4,.33140E-02,.36196E-02,.36196E-02,.33575E-02,.39506E-02,
5,.19672E-02,.41677E-02,.41677E-02,.32748E-02,.32439E-02,.63291E-03RAM26280
6,.63291E-03,.50465E-02,.50465E-02,.31556E-02,.21446E-02,.19145E-03RAM26290
7,.19145E-03,.60289E-02,.60289E-02,.30537E-02,.12214E-02,
„ — .77521E-02 .29817E-02 .39130E-03
RAM26100
RAM26110
RAM26120
RAM26130
RAM26140
RAM26150
RAM26160
RAM26170
RAM26180
RAM26190
RAM26200
RAM26210
RAM26220
76841E-02RAM26230
65931E-02RAM26240
51435E-02RAM26250
33140E-02RAM26260
19672E-02RAM26270
8,.12483E-03 .77521E-02,
9..11337E-03/
12483E-03RAM26300
11337E-03RAM26310
RAM26320
• • JLJLWO f U \J*J/ £L/UT1£«UO£.U
DATA PXEXP /.10000E+01,.10000E+01,.10205E+01,.10141E+01,.10829E+01RAM26330
1,.10829E+01,.97149E+00,.97149E+00,.10116E+01,.10080E+01,.11340E+01RAM26340
A-46
-------
2,.11340E+01,.96787E+00,.96787E+00,
3,.12070E+01,.94836E+00,.94836E+00,
4,.13194E+01,.93716E+00,.93716E+00,
5,.14421E+01,.90654E+00,.90654E+00,
6,.16884E+01,.87043E+00,.87043E+00,
7,.19141E+01,.83924E+00,.83924E+00,
8,.19890E+01,.79879E+00,.79879E+00,
" .20045E+01/
._. 16808E+00
.99634E+00,.10350E+01,
.10095E+01..10465E+01,
.10145E+01..10711K+01,
.10200E+01..11139E+01,
.10270E+01..11920E+01,
. 10327E+01..12907E+01,
.10365E+01,.14738E+01,
20927E+00,.20378E+00
20527E+00..20229E+00
19871E+00..20011E+00
18908E+00,.19685E+00
17767E+00,. 19301E+00,' .34521E+ORAM26470
15327E+00,.18499E+00 .34368E+ORAM26480
65533E-01,'. 11984E+00, . 17445E+00, .23640E+OnAM26490
-01,.39821E-01,.16720E+00,
12070E+01RAM26350
13194E+01RAM26360
14421E+01RAM26370
16884E+01RAM26380
19141E+01RAM26390
19890E+01RAM26400
20045E+01RAM26410
RAM26420
.18861E+ORAM26430
21253E+ORAM26440
24888E+ORAM26450
30041E+ORAM26460
flATA PXUCOF ,/.16808E+00,.16808E+00,
10,.18861E+00,.15945E+00,.15945E+00,
20,.21253E+00,.14777E+00,.14777E+00,
30,.24888E+00,.13262E+00,.13262E+00,
40,. 30041E+00,.11745E+00,.11745E+00,
50,.34521E+00,.91943E-01,.91943E-01,
60,.34368E+00
70..23640E+00
80,.15537E+00;.29993E-01,.29993E-01,.56100E-01;.16747E+00;.11009E+ORAM26510
90,.11009E+00/ RAM26520
DATA PXUEXP /-.19722E+01,-.19722E+01,-.19896E+01.-.19965E+01,-.206RAM26530
149E+01.-.20649E+01,-.19546E+01,-.19546E+01.-.19831E+01,-.19940E+01RAM26540
2.-.21047E+01.-.21047E+01.-.19322E+01,-.19322E+01,-.19736E+01.-.199RAM26550
308E+01i-.21512E+01.-.21512E+01,-.19045E+01,-.19045E+01i-..19609E+01RAM26560
4.-.19867E+01.-.21993E+01,-.21993E+01.-.18759E+01.-.18759E+01,-.194RAM26570
562E+01,-.19820E+01,-.22320E+01.-.22320E+01.-.18228E+01,-.18228E+01RAM26580
6,-.19142E+01,-.19728E+01.-.223lOE+01.-.223iOE+01.-.17589E-i-01. -. 175RAM26590
789E+01.-.18677E+01,-.19617E+01,-.21604E+01,-.21604E+01,-.17019E+01RAM26600
8.-.17019E+01.-.18172E+01.-.19643E+01.-.20868E+01.-.20868E+01.-.162HAM2B610
984E+01,-.16284E+01J-.174l4E+01,-.19545E+01,-.203i4E+01,-.20314E+01RAM26620
/ " .44505E-02,.50000E-02,.68776E-02,
.45289E-02,.50000E-02,.68258E-02,
.47786E-02,.50000E-02,.63099E-02,
.52938E-02,.50000E-02,.59067E-02,
.57593E-02,.50000E-02,.52626E-02,
.68765E-02,.50000E-02,.39429E-02,
.82988E-02,.50000E-02,.22800E-02,
7; .39161E-03,' .99556E-02,' .99556E-02, .50000E-02, .10882E-02,
8,.29900E-03,.12206E-01,.12206E-01,.50000E-02,.28165E-03,
9..25538E-03/
DATA AXEXP /.96437E+00,.96437E+00,.10000E+01,.10199E+01,
1,.11356E+01,.95855E+00,.95855E+00,.10000E+01,.10224E+01,
2,.12269E+01,.94276E+00,.94276E+00,.10000E+01,.10455E+01,
3,. 13430E+01,.91659E+00,.91659E+00,. 10000E+01,. 10624E t-01,
4,.14866E+01,.89676E+00,.89676E+00,.10000E+01,.10896E+01
5,.16163E+01,.85826E+00,.85826E+00,.10000E+01,.11523E+01,
_» 10000E+01 .12557E+01
DATA AXCOF /.44505E-02
1,.10026E-01,.45289E-02
2,.76276E-02,.47786E-02
3..51380E-02,
4..29303E-02,
5..16889E-02,
6..74769E-03
52938E-02,
57593E-02,
68765E-02,
82988E-02,
6,.17932E+01 .82277E+00 .82277E+00
7,.19153E+01,.79086E+00,.79086E+00,
8,.19626E+01,.75807E+00,.75807E+00,
9..19880E+01/
END
, lOOOOE+Oi;.13853E+01,
.10000E+01..16028E+01,
RAM26630
10026E-01RAM26640
76276E-02RAM26650
51380E-02RAM26660
29303E-02RAM26670
16889E-02RAM26680
74769E-03RAM26690
39161E-03RAM26700
29900E-03RAM26710
25538E-03RAM26720
RAM26730
11356E+01RAM26740
12269E+01RAM26750
13430E+01RAM26760
14866E+01RAM26770
16163E+01RAM26780
17932E+01RAM26790
19153E+01RAM26800
19626E+01RAM26810
19880E+01RAM26820
RAM26830
RAM26840
RAM26850
FUNCTION ANGARC(DELM,DELN) RAM26870
C FUNCTION ANGARC (VERSION 80336), PART OF RAM. RAM26880
C THIS SUBROUTINE IS REFERRED TO AS B IN THE COMMON STATEMENTS RAM26890
C DETERMINES APPROPRIATE ANGLE OF TAN(ANG) = DELM/DELN RAM26900
C WHICH IS REQUIRED FOR CALCULATION OF RESULTANT WIND DIRECTION. RAM26910
C DELM IS THE AVERAGE WIND COMPONENT IN THE EAST DIRECTION. RAM26920
C DELN IS THE AVERAGE WIND COMPONENT IN THE NORTH DIRECTION. RAM26930
C USES LIBRARY FUNCTION ATAN RAM26940
C RAM26950
IF (DELN) 10,40,80 RAM26960
10 IF (DELM) 20,30,20 RAM26970
20 ANGARC=57.29578*ATAN(DELM/DELN)+180. RAM26980
RETURN RAM26990
30 ANGARC=180. RAM27000
RETURN RAM27010
40 IF (DELM) 50,60,70 RAM27020
50 ANGARC=270. RAM27030
RETURN RAM27040
A-47
-------
60
C
80
90
100
110
C
C
C
C
C
C
C
C
C
C
C
10
20
30
40
50
60
ANGARC=0.
ANGARC=0. INDICATES INDETERMINATE ANGLE
RETURN
ANGARC=090.
RETURN
IF (DELM) 90,100,110
ANGARC=57.29578*ATAN(DELM/DELN)+360.
RETURN
ANGARC=360.
RETURN
ANGARC=57.29578*ATAN(DELM/DELN)
RETURN
END
SUBROUTINE SYSZ
SUBROUTINE SYSZ (VERSION 80336), PART OF RAM.
• THIS SUBROUTINE REFERRED TO AS C IN THE COMMON STATEMENTS
COMMON 7AMOST/ DELH.FH,HINT(3),H,HL,10,IOPT(50),KST,MUOH,NHTS,RC,
1CZ,SY,SZ,TEMP,TLOS,UPL,X,Y,Z
DIMENSION XA(7), XB(2), XD(5), XE(8), XF(9), AA(8), BA(8), AB(3),
1BB(3), AD(6), 66(6). AE(9). BE(9), AF(10), BF(10)
DATA XA /.5,.4,.3,.25,.2,.15,.I/
DATA XB /.4,.27
DATA XD /30.,10.,3.,1.,.3/
DATA XE /40.,20.,10.,4.,2.,!.,.3,.I/
DATA XF /60.,30.,15.,7..3.,2.,!.,.7..27
DATA AA /453.85,346.75,258.89 217.41,179.52,170.22,158.08,122.8/
DATA BA /2.1166.1.7283,1.4094,1.2644,1.1262,1.0932,1.0542,.9447/
DATA AB /109.30,98.483!90.6737
DATA BB 71.0971,0.98332.0.931987
DATA AD /44.053,36.650,33.504,32.093,32.093,34.459/
DATA BD /O.51179.0.56589,0.60486,0.64403,0.81066.0.869747
DATA AE 747.618,35.420,26.970,24.703,22.534,21.628,21.628,23.331,
14.26/
DATA BE 70.29592,0.37615,0.46713,0.50527,0.57154,0.63077,0.75660,
1.81956,0.83667
DATA A£ 734.219,27.074,22.651,17.836,16.187,14.823,13.953,13.953,
14.457.15.209/
DATA BF 70.21716,0.27436,0.32681,0.41507,0.46490,0.54503,0.63227,
1.68465,0.78407,0.81558/
ASSIGN 10 TO K
IF (MUOR.EQ.2) ASSIGN 70 TO K
RETURN
ENTRY SYZ
GO TO K, (10,70)
MCELROY-POOLER URBAN DISPERSION PARAMETERS FROM ST.
EXPERIMENT AS PUT IN EQUATION FORM BY BRIGGS.
XK IS DISTANCE IN KM.
KST IS PASQUILL STABILITY CLASS.
SY AND SZ ARE IN METERS.
CONVERT X TO METERS
XM=1000.*X
GO TO (20,20,30,40,50.50), KST
SY=0.32*XM/SQRT(1.+0.0004*XM)
SZ=0.24*XM*SQRT(1.+0.001*XM)
GO TO 60
SY=0.22*XM/SQRT(1.+0.0004*XM)
SZ=0.2*XM
GO TO 60
SY=0.16*XM/SQRT(1.+0.0004*XM)
SZ=0.14*XM/SQRT(1.+0.0003*XM)
GO TO 60
SY=0.11*XM/SQRT(1.+0.0004*XM)
SZ=0.08*XM/SQRT(1.+0.0015*XM)
LOUIS
IF (SZ.GT.5000.
RETURN
SZ=5000.
RAM27050
RAM27060
RAM27070
RAM27080
RAM27090
RAM27100
RAM27110
RAM27120
RAM27130
RAM27140
RAM27150
RAM27160
RAM27170
RAM27180
3AM27200
RAM27210
RAM27220
RAM27230
RRAM27240
RAM27250
RAM27260
RAM27270
RAM27280
RAM27290
RAM27300
RAM27310
RAM27320
RAM27330
RAM27340
RAM27350
RAM27360
RAM27370
RAM27380
2RAM27330
RAM27400
ORAM27410
RAM27420
1RAM27430
RAM27440
ORAM27450
RAM27460
RAM27470
RAM27480
RAM27490
RAM27500
RAM27510
RAM27520
RAM27530
RAM27540
RAM27550
RAM27560
RAM27570
RAM27580
RAM27590
RAM27600
RAM27610
RAM27620
RAM27630
RAM27640
RAM27650
RAM27660
RAM27670
RAM27680
RAM27690
RAM27700
RAM27710
RAM27720
RAM27730
RAM27740
A-48
-------
c
c
c
c
c
c
c
c
70
C
80
90
100
C
110
120
130
C
140
C
150
160
170
C
180
190
200
C
210
220
230
240
250
260
C
C
C
C
C
C
RAM27750
PASQUILL-GIFFORD PARAMETERS VALID FOR RURAL CONDITIONS. RAM27760
VERTICAL DISPERSION PARAMETER VALUE, SZ DETERMINED BY RAM27770
SZ = A * X ** B WHERE A AND B ARE FUNCTIONS OF BOTH STABILITY RAM27780
AND RANGE OF X. RAM27790
HORIZONTAL DISPERSION PARAMETER VALUE. SY DETERMINED BY RAM27800
LOGARITHMIC INTERPOLATION OF PLUME HALF-ANGLE ACCORDING TO RAM27810
DISTANCE AND CALCULATION OF 1/2.15 TIMES HALF-ARC LENGTH. RAM27820
GO TO (80,110,140,150,180,210), KST RAM27830
STABILITY A RAM27840
TH=(24.167-2.5334*ALOG(X))/57.29S8 RAM27850
IF (X.GT.3.11) GO TO 240 RAM27860
DO 90 ID=1,7 RAM27870
IF (X.GE.XA(ID)) GO TO 100 RAM27880
CONTINUE RAM27890
ID=8 R.iM273GO
SZ=AA(ID)*X**BA(ID) RAM27910
GO TO 260 RAM27920
STABILITY B RAM27930
TH= f18.333-1.8096*ALOG(X))/57.2958 RAM27940
IF (X.GT.35.) GO TO 240 RAM27950
DO 120 ID=1,2 RAM27960
IF (X.GE.XB(ID)) GO TO 130 RAM27970
CONTINUE RAM27980
ID=3 RAM27990
SZ=AB(ID)*X**BB(ID) RAM28000
GO TO 250 RAM28010
STABILITY C RAM28020
TH=(12.5-1.0857*ALOG(X))/57.2958 RAM28030
SZ=61.141*X**0.91465 RAM28040
GO TO 250 RAM28050
STABILITY D RAM28060
TH=(8.3333-0.72382*ALOG(X))/57.2958 RAM28070
DO 160 ID=1.5 RAM28080
IF (X.GE.XD(ID)) GO TO 170 RAM28090
CONTINUE RAM28100
ID=6 RAM28110
SZ=AD(ID)*X**BD(ID) RAM28120
GO TO 250 RAM28130
STABILITY E RAM28140
TH=(6.25-0.54287*ALOG(X))/57.2958 RAM28150
DO 190 ID=1.8 RAM28160
IF (X.GE.XE(ID)) GO TO 200 RAM28170
CONTINUE RAM28180
ID=9 RAM28190
SZ=AE(ID)*X**BE(ID) RAM28200
GO TO 250 RAM28210
STABILITY F RAM28220
TH=(4.1667-0.36191*ALOG(X))/57.2958 RAM28230
DO 220 ID=1.9 RAM28240
IF (X.GE.XF(ID)) GO TO 230 RAM28250
CONTINUE RAM28260
ID=10 RAM28270
SZ=AF(ID)*X**BF(ID) RAM28280
GO TO 250 RAM28290
SZ=5000. RAM28300
GO TO 260 RAM28310
IF (SZ.GT.5000.) SZ=5000. RAM28320
SY=465.116*X*SIN(TH)/COS(TH) RAM28330
465.116 = 1000. (M/KM) / 2.15 RAM28340
RETURN RAM28350
RAM28360
END RAM28370
SUBROUTINE SGZ
SUBROUTINE SGZ (VERSION 81352), PART OF RAM.
THIS SUBROUTINE IS REFERRED TO AS D IN THE COMMON STATEMENTS
RAM28390
RAM28400
RAM28410
RAM28420
COMMON /AMOST/ DELH,FH,HINT(3),H,HL,10,IOPT(50),KST>MUOR,NHTS,RC,RRAM28430
ICZ.SY.SZ.TEMP.TLOS.UPL.X.Y.Z RAM28440
A-49
-------
AA(8), BA(8), AB(3)
C
C
C
C
C
10
20
30
40
50
60
C
C
C
C
70
C
80
90
100
C
110
120
130
C
140
C
150
DIMENSION XA(7), XB(2), XD(5), XE(8), XF(9), AA(8
1BB(3), AD(6), BD(6), AE(9). BE(9), AF(10), BF(10)
DATA XA /.5,.4,.3,.25,.2,.15,.I/
DATA XB /.4\.2/
DATA XD /30.,10.,3.,!.,.3/
DATA XE /40.,20.,10.,4.,2.,!.,.3,.I/
DATA XF /60.,30..15.,7..3.,2..1...7..27 RAM28510
DATA AA /453.85,346.75,258.89,217.41,179.52,170.22,158.08,122.8/ RAM28520
RAM28450
RAM28460
RAM28470
RAM28480
RAM28490
RAM28500
DATA BA /2.1166,1-7283,1-4094,1.2644,1-1262,1.0932;1.0542;.9447/ RAM28530
DATA AB /109.30.98.483.90.673/ RAM28540
DATA BB /I.0971,0.98332.0.931987 RAM28550
DATA AD /44.053,36.650,33.504,32.093,32.093,34.459/ RAM28560
BD /O.51179.0.56589,0.60486,0.64403,0.81066.0.869747 RAM28570
/47.618,35.420,26.970,24.703,22.534,21.628,21.628,23.331,2RAM28580
RAM28590
37615,0.46713,0.50527,0.57154,0.63077,0.75660
DATA
DATA AE
14.26/
DATA BE /O.29592,0
1.81956,0.83667
DATA AF /34. 219,27. 074,22. 651, 17. 836, 16. 187, 14. 823, 13. 953, 13. 953,
14.457,15.2097 i«u-«.u«uu
DATA BF /O. 21716, 0.27436, 0.32681, 0.41507, 0.46490, 0.54503,0. 63227, ORAM28640
1.68465,0.78407,0.815587
ORAM28600
RAM28610
1RAM28620
RAM28630
ASSIGN 10 TO K
IF (MUOR.EQ.2) ASSIGN 70 TO K
RETURN
ENTRY SIGZ
GO TO K, (10,70)
MCELROY-POOLER URBAN SIGMA Z.
XM IS DISTANCE IN KM.
KST IS PASQUILL STABILITY CLASS.
SZ IS IN METERS.
CONVERT X TO METERS
XM=1000.*X
GO TO (20,20.30,40,50.50). KST
SZ=0.24*XM*SQRT(1.+0.001*XM)
GO TO 60
SZ=0.2*XM
GO TO 60
SZ=0.14*XM/SQRT(1.+0.0003*XM)
GO TO 60
SZ=0.08*XM/SQRT(1.+0.0015*XM)
IF (SZ.GT.5000.) SZ=5000.
RETURN
PASQUILL-GIFFORD PARAMETER VALID FOR RURAL CONDITIONS.
VERTICAL DISPERSION PARAMETER VALUE, SZ DETERMINED BY
SZ = A * X ** B WHERE A AND B ARE FUNCTIONS OF BOTH STABILITY
AND RANGE OF X.
GO TO (80,110.140.150,180,210), KST
STABILITY A (16)
IF (X.GT.3.11) GO TO 240
DO 90 ID=1,7
IF (X.GE.XA(ID)) GO TO 100
CONTINUE
ID=8
SZ=AA(ID)*X**BA(ID)
GO TO 260
STABILITY B (20)
IF (X.GT.35.) GO TO 240
DO 120 ID=1,2
IF TX.GE.XB(ID)) GO TO 130
CONTINUE
ID=3
SZ=AB(ID)*X**BB(ID)
GO TO 250
STABILITY C
SZ=61.141*X**0.
GO TO 250
STABILITY D
DO 160 ID=1,5
91465
(40)
RAM28650
RAM28660
RAM28670
RAM28680
RAM28690
RAM28700
RAM28710
RAM28720
RAM28730
RAM28740
RAM28750
RAM28760
RAM28770
RAM28780
RAM28790
RAM28800
RAM28810
RAM28820
RAM28830
RAM28840
RAM28850
RAM28860
RAM28870
RAM28880
RAM28890
RAM28900
RAM28910
RAM28920
RAM28930
RAM28940
RAM28950
RAM28960
RAM28970
RAM28980
RAM28990
RAM29000
RAM29010
RAM29020
RAM29030
RAM29040
RAM29050
RAM29060
RAM29070
RAM29080
RAM29090
RAM29100
RAM29110
RAM29120
RAM29130
RAM29140
A-50
-------
160
170
C
180
190
200
C
210
220
230
240
250
260
C
C
C
C
C
C
C
C
10
C
C
C
C
C
C
C
C
IF (X.GE.XD(ID)) GO TO 170
CONTINUE
ID=6
SZ=AD(ID)*X**BD(ID)
GO TO 250
STABILITY E (50)
DO 190 ID=1,8
IF (X.GE.XE(ID)) GO TO 200
CONTINUE
ID=9
SZ=AE(ID)*X**BE(ID)
GO TO 250
STABILITY F (60)
DO 220 ID=1,9
IF (X.GE.XF(ID)1) GO TO 230
COMTi:-,TE
ID=10
SZ=AF(ID)*X**BF(ID)
GO TO 250
SZ=5000.
RETURN
IF (SZ.GT.5000.) SZ=5000.
RETURN
END
SUBROUTINE JMHREC
SUBROUTINE JMHREC (VERSION 80336), PART OF RAM.
THIS SUBROUTINE IS REFERRED TO AS E IN THE COMMON STATEMENTS
THE PURPOSE OF THIS SUBROUTINE IS TO DETERMINE RECEPTORS FROM
SIGNIFICANT SOURCES.
COMMON /AMOST/ DELH,FH,HINT(3) ,H,HL, 10, IOPT(50) ,KST,MUOR,NHTS,RC,
ICZ.SY.SZ.TEMP.TLOS.UPL.X.Y.Z
COMMON /AE/ HC1(10),PXUCOR(6,9),PXUEXR(6,9),PXCOR(6,9),PXEXR(6,9)
1PXUCOF(6.9).PXUEXP(6,9),PXCOF(6,9),PXEXP(6,9),AXCOR(6,9),AXEXR(6,
2),AXCOF(6,9},AXEXP(6 9)
COMMON /AEFM/ ITYPE(180), ICODE( 180) .UNITS. RREU(180) ,SREU(180)
COMMON /AEFGKM/ NRECEP,RREC(180) ,SREC(180) , IDATE(2) ,LH,NPT
COMMON /AEG/ SOURCE (9, 250)
COMMON /AEGIKM/ IPOL,CONTWO,SINT,COST,U,HANE,PL(6)
COMMON /AEK/ ASORC(6,100)
COMMON /AEM/ NSIGP,MPS(25) ,NSIGA,MAS(10)
DATA ICHAR /'P'/ ,JCHAR /V/
ASSIGN 120 TO KNTRL
ASSIGN 190 TO KNTRM
IF (MUOR.EQ.l) GO TO 10
ASSIGN 110 TO KNTRL
ASSIGN 180 TO KNTRM
RETURN
ENTRY GREC
IF (NSIGP.EQ.O) GO TO 150
IF (IOPT(15).EQ.O) GO TO 150
WRITE (10,270)
LOOP ON SIGNIFICANT POINT SOURCES
DO 140 IP=1,NSIGP
X=0.0
I=MPS(IP)
EAST AND NORTH COORDINATES OF THE SOURCE (INTERNAL UNITS)
RS=SOUHCE(1,I)
SS=SOURCE(2,I)
Q=SOURCE(IPOL,I)
MODIFY WIND SPEED BY POWER LAW PROFILE IN ORDER TO TAKE INTO
ACCOUNT THE INCREASE IN WIND SPEED WITH HEIGHT.
UPL=U* (SOURCE (5, I)/HANE)**PL(KST)
CALCULATE BUOYANCY PLUME RISE
RAM29150
RAM29160
RAM29170
RAM29180
RAM29190
RAM29200
RAM29210
RAM29220
RAM29230
RAM29240
RAM29250
RAM29260
RAM29270
RAM29280
RAM29290
RAM29300
RAM29310
RAM29320
RAM29330
RAM29340
RAM29350
RAM29360
RAM29370
RAM29380
RAM29390
RAM29410
RAM29420
RAM29430
RAM29440
RAM29450
RAM29460
RRAM29470
RAM29480
,RAM29490
9RAM29500
RAM29510
RAM29520
RAM29530
RAM29540
RAM29550
RAM29560
RAM29570
RAM29580
RAM29590
RAM29600
RAM29610
RAM29620
RAM29630
RAM29640
RAM29650
RAM29660
RAM29670
RAM29680
RAM29690
RAM29700
RAM29710
RAM29720
RAM29730
RAM29740
RAM29750
RAM29760
RAM29770
RAM29780
RAM29790
RAM29800
RAM29810
RAM29820
RAM29830
RAM29840
A-51
-------
TS=SOURCE(6,I) RAM29850
IF (TS.GT.TEMP) GO TO 20 RAM29860
HF=SOURCE(5,I) RAM29870
GO TO 80 RAM29880
20 F=SOURCE(9,I)*(TS-TEMP)/TS RAM29890
GO TO (30,30.30,30,50,60), KST RAM29900
30 IF (F.GE.55.) GO TO 40 RAM29910
HF=SOURCE(5,I)+21.425*F**0.75/UPL RAM29920
GO TO 80 RAM29930
40 HF=SOUHCE(5,I)+38.71*F**0.6/UPL RAM29940
GO TO 80 RAM29950
50 DTIIDZ=0.02 RAM29960
GO TO 70 RAM29970
60 DTHDZ=0.035 RAM29980
70 S=9.80616*DTHDZ/TEMP RAM29990
IIF=oOURCE(5,1)^-2. 6*(F,'(UPL*S) )**0.333333 ILVMnOOOO
C DETERMINE PROPER HEIGHT CLASS RAM30010
80 DO 90 IH=2,10 RAM30020
IF (HF.LT.(HCl(IH)-.Ol)) GO TO 100 RAM30030
90 CONTINUE RAM30040
IH=10 RAM30050
100 IS=IH-1 RAM30060
GO TO KNTRL, (110,120) RAM30070
110 A=PXUCOR(KST,IS) RAM30080
B=PXUEXR(KST,IS) RAM30090
C=PXCOR(KST,IS) RAM30100
D=PXEXR(KST,IS) RAM30110
GO TO 130 RAM30120
120 A=PXUCOF?KST,IS) RAM30130
B=PXUEXP(KST,IS) RAM30140
C=PXCOF(KST,IS) RAM30150
D=PXEXP(KST,IS) RAM30160
C CALCULATE RELATIVE CONG. NORMALIZED FOR WIND SPEED RAM30170
130 CONM=A*HF**B*Q/UPL HAM30180
C CALCULATE DISTANCE TO MAX. CONG. FROM POINT SOURCE. RAM30190
C X IN KM. RAM30200
X=C*HF**D RAM30210
C DO NOT ALLOW RECEPTORS BEYOND 1000 KM. RAM30220
IF (X.GT.1000.) GO TO 140 RAM30230
NRECEP=NRECEP+2 RAM30240
IF (NRECEP.GT.180) GO TO 260 RAM30250
C RAM30260
C TWO RECEPTORS ARE GENERATED FOR EACH SIGNIFICANT POINT SOURCE. RAM30270
C RECEPTORS ARE LOCATED AT A DISTANCE OF X AND AT 2X. X RAM30280
C IS THE LOCATION WHERE THE HIGHEST CONCENTRATION FROM THE IP-THRAM30290
C POINT SOURCE IS EXPECTED. A RECEPTOR IS LOCATED AT A DIST RAM30300
C OF 2X TO ALLOW FOR THE INTERSECTION OF PLUMES FROM SEVERAL RAM30310
C POINT SOURCES. THE CHARACTERS "A" FOR AREA SOURCE AND "P" RAM30320
C FOR POINT SOURCES SIGNIFY WHICH TYPE OF SOURCE CAUSED THE RAM30330
C GENERATION OF A SPECIFIC RECEPTOR. RAM30340
K=NRECEP-1 RAM30350
ITYPE(K)=ICHAR RAM30360
ICODE(K)=I RAM30370
C CALCULATE EAST AND NORTH COORDINATES(INTERNAL UNITS) OF THE RAM30380
C RECEPTOR. SINT AND COST REFER TO THE SINE AND COSINE OF THE RAM30390
C RESULTANT WIND DIRECTION. RAM30400
RREC(K)=RS-X*SINT/CONTWO RAM30410
SREC(K)=SS-X*COST/CONTWO RAM30420
C CONVERT TO USER UNITS FOR PRINT OUT. RAM30430
RREU(K)=RREC(K)*UNITS RAM30440
SREU(K)=SREC(K)*UNITS RAM30450
WRITE (10,280) K,ICHAR,I,RREU(K),SREU(K),CONM,X,HF,UPL RAM30460
X=2.0*X RAM30470
ITYPE(NRECEP)=ICHAR RAM30480
ICODE(NRECEP)=I RAM30490
RREC(NRECEP)=RS-X*SINT/CONTWO RAM30500
SREC(NRECEP)=SS-X*COST/CONTWO RAM30510
C CONVERT TO USER UNITS FOR PRINT OUT. RAM30520
RREUfNRECEP)=RREC(NRECEP)*UNITS RAM30530
SREU(NRECEP)=SREC(NRECEP)*UNITS RAM30540
A-52
-------
140
C
C
C
C
C
C
150
C
C
C
C
160
170
C
180
190
200
C
210
220
230
240
250
260
C
270
WRITE (10,290) NRECEP,ICHAR,I,RREU(NRECEP),SREU(NRECEP),X,HF,UPL
CONTINUE
LOOP ON SIGNIFICANT AREA SOURCES
ONE RECEPTOR IS LOCATED ON THE DOWNWIND AZIMUTH FROM THE CENTER
OF EACH SIGNIFICANT AREA SOURCE AT A DISTANCE WHERE MAXIMUM
CONCENTRATION IS EXPECTED.
IF (NSIGA.EQ.O) GO TO 250
IF aOPT(16).EQ.O) GO TO 250
WRITE (10,300)
DO 240 IP=1,NSIGA
I=MAS(IP)
WA=ASORCt5,I)
LOCATE SOURCE CENTER
RS=ASORC(l,I)i-WA
SS=ASORC(2,I)+WA
H=ASORC?6,I)
DETERMINE HEIGHT CLASS
IS = 1 FOR H LESS THAN 20 METERS.
IS = 2 FOR H FROM 20 TO 30 METERS.
IS = 3 FOR H FROM 30 TO 50 METERS.
DO 160 IH=2.3
IF ?H.LT.HC1(IH)-0.01) GO TO 170
CONTINUE
IH=4
IS=IH-1
CALCULATE DISTANCE(KM) TO MAXIMUM CONCENTRATION.
GO TO KNTRM, (180,190)
C=AXCOR(KST,IS)
D=AXEXR(KST,IS)
GO TO 200
C=AXCOF(KST,
D=AXEXP(KST,
X=C*H**D
X IN KM.
IF (COST.EQ.O.) GO TO 210
A=ABS(WA/COST)
IF (SINT.EQ.O.) GO TO 220
B=ABS(WA/SINT)
AB=AMIN1(A,B)
GO TO 230
AB=ABS(WA/SINT)
GO TO 230
AB=A
X=X-t-AB*CONTWO
NRECEP=NRECEP+1
NO MORE THAN 180 RECEPTORS ARE ALLOWED.
IF (NRECEP.GT.180) GO TO 260
DETERMINE RECEPTOR COORDINATES(INTERNAL UNITS)
RREC(NRECEP)=RS-X*SINT/CONTWO
SREC(NRECEP)=SS-X*COST/CONTWO
RREU(NRECEP)=RREC(NRECEP)*UNITS
SREmNRECEP)=SREC|NRECEP)*UNITS
WRITE (10,280) NRECEP,JCHAR,I,RREU(NRECEP),SREU(NRECEP)
ITYPE(NRECEP)=JCHAR
ICODE(NRECEP)=1
CONTINUE
RETURN
WRITE (10.310)
NRECEP=186
RETURN
IS)
IS)
FORMAT (1HO.T9,'SIGNIFICANT POINT RECEPTORS'//IX,'RECEPTOR
1 EAST NORTH PREDICTED MAX CONG. MAX. DIST EFF. HT
RAM30550
RAM30560
RAM30570
RAM30580
RAM30590
RAM30600
RAM30610
RAM30620
RAMS0630
RAM30640
RAM30650
RAM30660
RAM30670
RAM30680
RAM30690
RAM30700
RAM30710
RAM30720
RAM30730
RAM30740
RAM30750
RAM30760
RAM30770
RAM30780
RAM30790
RAMS0800
RAM30810
RAM30820
HAM30830
RAM30840
RAM30850
RAM30860
RAM30870
RAM30880
RAM30890
RAM30900
RAM30910
RAM30920
RAM30930
RAM30940
RAM30950
RAM30960
RAM30970
RAM30980
RAM30990
RAM31000
RAM31010
RAMS1020
RAMS1030
RAMS1040
RAMS 1050
RAM31060
RAM31070
RAMS1080
RAM31090
RAMS1100
RAM31110
RAMS 1120
RAMS1130
RAM31140
RAM31150
RAMS1160
RAM31170
300
RAM31180
... U(PHRAM31190
2Y HTW1X.T38,' (MICROGRAMS/M**3)' ,T59,' (KM)' ,T70,' (M)' ,T80,' (M/SECRAM31200
FORM t rt RAM31210
FORMAT (1H&.T9,'SIGNIFICANT AREA SOURCE*RECEPTORS'//IX,'RECEPTOR #RAM31240
A--53
-------
310
C
c
C
c
1 EAST NORTH V/1X)
FORMAT (' THE MAXIMUM NO.
C
C
C
C
C
C
C
c
c
c
c
c
c
c
c
c
c
10
c
c
20
c
c
c
10 OTHERS WILL BE ACCEPTED')
END
RAMS1250
OF RECEPTORS HAS BEEN GENERATED'//IX, ' NRAM31260
RAMS1270
RAMS 12 80
RAMS1290
SUBROUTINE JMHHON
SUBROUTINE JMHHON (VERSION 80336), PART OF RAM.
THIS SUBROUTINE IS REFERRED TO AS F IN THE COMMON STATEMENTS
THIS ROUTINE GENERATES RECEPTORS IN A HONEYCOMB ARRANGEMENT.
VV/l*jri\Si1 / fU'JV/hJ J./ Ul^Uil} K H| 11X11 J. \ ».
1CZ,SY.SZ,TEMP,TLOS,UPL.X,Y, Z
COMMON /AEFM/ ITYPE(180), ICODEQ80) .UNITS.RREU(180) ,SREU(180)
COMMON /AEFGKM/ NRECEP,RREC(180),SREC(180 ,IDATE(2),LH.NPT
COMMON /AF/ GRIDSP,HRMIN.HRMAX.HSMIN.HSMAX
DIMENSION HCOMBR(250), HCOMBS(250j
THE CHARACTER 'H' IDENTIFIES A RECEPTOR WHICH WAS GENERATED
THIS ROUTINE.
DATA ICHAR /'H'/
DATA 10 /6/
RAM31310
RAMS1320
RAM31330
RAMS1340
RAM31350
COMMON /AMOST/ DELH,FH,HINT(3),H,HL,10,IOPT(50),KST,MUOR,NHTS,RC,RRAM31360
._ „ RAM31370
RAMS1380
RAMS1390
RAM:: 1100
RAMS1410
BY RAMS 1420
RAMS1430
RAMS1440
RAM31450
RAMS1460
RAM31470
RAMS1480
HAMS 14 90
RAMS1500
RAM31510
RAMS1520
RAM31530
RAMS1540
RAM31550
RAMS1560
RAM31570
RAMS1580
RAM31590
RAMS1600
INITIALIZE SPACING PARAMETER FOR RECEPTOR GENERATION.
THE HORIZONTAL LOCATIONS OF ODD AND EVEN ROWS ARE STAGGERED.
THE FIRST HORIZONTAL RECEPTOR (EVEN ROW) IS AT A DISTANCE
OF .5 GRIDSP FROM THE MINIMUM HORIZONTAL DISTANCE IN CONTRAST
TO A DISTANCE OF GRIDSP FOR ODD ROWS.
XINC=GRIDSP*0.5
YINC=GRIDSP*0.866
YCD=HSMIN+YINC/2.
DUM=HRMAX-HEMIN
NCOLS1=DUM/GRIDSP
NCOLS2=(DUM+XINC)/GRIDSP
NROWS=(HSMAX-HSMIN)/(2.*YINC)+1.
NBEES=0
DO 50 J=l,NROWS nor.oo.^w
THE STARTING LOCATION FOR THE GENERATION OF POSSIBLE HONEYCOMB RAM31610
RECEPTORS IS THE SOUTH WEST CORNER OF THE DEFINED HONEYCOMB GRIDRAM31620
AREA.
XCD1=HRMIN
XCD2=HRMIN-XINC
GENERATION OF ODD ROWS.
THE FIRST POINT(ODD ROW) IS LOCATED AT THE DISTANCE OF GRIDSP
EAST FROM THE SOUTH WEST CORNER.
RAM31630
RAMS 1640
RAMS1650
RAMS1660
RAMS1670
RAMS1680
RAMS1690
RAM31700
RAM31710
RAMS1720
RAMS1730
RAMS1740
RAM31750
RAMS1760
RAM31770
RAMS1780
RAMS1790
RAM31800
DO 10 I=1,NCOLS1
XCD1=XCD1+GRIDSP
IF (XCD1.GT.HRMAX) GO TO 20
NBEES=NBEES+1
NO MORE THAN 250 CANDIDATE RECEPTORS ARE ALLOWED.
IF (NBEES.GT.250) GO TO 110
HCOMBR(NBEES)=XCD1
HCOMBS(NBEES)=YCD
CONTINUE
ROWS ARE LOCATED AT A PERPENDICULAR DISTANCE OF .866 TIMES GRIDSPRAM31810
ABOVE THE PRECEEDING ROW. RAMS1820
YCD=YCD+YINC RAM31830
IF (YCD.GT.HSMAX) GO TO 60 RAM31840
RAM31850
GENERATION OF EVEN ROWS RAMS1860
RAM31870
DO 30 I=1,NCOLS2 RAM31880
XCD2=XCD2+GRIDSP RAM31890
IF (XCD2.GT.HRMAX) GO TO 40 RAM31900
NBEES=NBEES+1 RAM31910
IF (NBEES.GT.250) GO TO 110 RAM31920
HCOMBR(NBEES)=XCD2 RAM31930
HCOMBS(NBEES)=YCD RAM31940
A-54
-------
30
40
50
C
C
C
C
60
C
C
C
70
80
C
90
100
110
C
120
130
140
C
C
C
C
C
RAMS1950
HAMS1960
RAMS 1970
HAM319SO
RAMS1990
ELIMINATE POSSIBLE HONEYCOMB RECEPTORS THAT ARE CLOSE TO OTHER RAM32000
CONTINUE
YCD=YCD+YINC
IF (YCD.GT.HSMAX) GO TO 60
CONTINUE
RECEPTORS.
NULIM=NRECEP
DLIM=XINC*XINC
DO 90 N=1,NBEES
RH=HCOMBR(N)
SH=HCOMBS(N)
IF NO PREVIOUS RECEPTORS, THERE WILL BE NO COMPARISONS
IF (NRECEP.LE.O) GO TO 80
DO 70 M-l,.\TJILM
R=RREC(M)
S=SREC(M)
DUM1=ABS(R-RH)
IF 7DUM1.GT.XINC) GO TO 70
DUM2=ABS(S-SH)
IF (DUM2.GT.XINC) GO TO 70
DISQ=DUM1*DUM1+DUM2*DUM2
IF THE DISTANCE BETWEEN A CURRENT RECEPTOR AND A POSSIBLE
HONEYCOMB RECEPTOR IS LESS THAN HALF THE GRIDSPACING,
THE POSSIBLE HONEYCOMB RECEPTOR IS DISCARDED.
IF nnSQ.LT.DLIM) GO TO 90
CONTINUE
NRECEP=NRECEP+1
THE TOTAL NUMBER OF RECEPTORS CAN NOT EXCEED 180.
IF (NRECEP.GT.180) GO TO 100
ADD NEW RECEPTOR COORDINATES (INTERNAL UNITS)
RREC(NHECEP)=RH
SREC(NRECEPi=SH
ITYPE(NRECEP}=ICHAR
ICODE(NRECEPi=0
CONVERT TO USER UNITS FOR PRINTOUT.
RREU(NRECEP)=RREC(NRECEP)*UNITS
SREU(NRECEPj=SREC(NRECEP)*UNITS
WRITE (10,120) NRECEP,ICHAR,RREU(NRECEP),SHEU(NRECEP)
CONTINUE
RETURN
WRITE (10,130)
NRECEP=180
RETURN
WRITE (10,140)
CALL WAUDIT
STOP
RAM32010
RAM32020
RAM32030
RAM32040
RAM32050
RAMS2060
RAM32070
RAM32080
RAM32090
RAM32100
RAM32110
RAM32120
RAM32130
RAM32140
RAM32150
RAM32160
RAM32170
RAM32180
RAM32190
RAM32200
RAMS2210
RAM32220
RAM32230
RAM32240
RAM32250
RAM32260
RAM32270
RAM32280
RAM32290
RAM32300
RAM32310
RAM32320
RAM32330
RAM32340
RAM32350
RAM32360
RAM32370
RAM32380
RAM32390
RAM32400
RAM32410
RAM32420
FORMAT ax,T3,l3.1X,Al.6X,F9.3,3X,F9.3) RAM32430
FORMAT (' THE MAXIMUM NO. OF RECEPTORS HAS BEEN GENERATED'/IX,' NORAM32440
1 OTHERS WILL BE ACCEPTED.')
FORMAT (' TOO MANY POSSIBLE HONEYCOMB RECEPTOR LOCATIONS HAVE
1BEEN GENERATED. PLEASE REDEFINE BOUNDARIES OR GRID SPACING.')
END
SUBROUTINE PT
RAM32450
VRAM32460
RAM32470
RAM32480
RAM32490
SUBROUTINE PT (VERSION 80336), PAflT OF RAM.
THIS SUBROUTINE IS REFERRED TO AS G IN THE COMMON STATEMENTS
THE PURPOSE OF THIS ROUTINE IS TO CALCULATE CONCENTRATIONS FROM
POINT SOURCES.
RAM32510
RAM32520
RAM32530
RAM32540
RAM32550
RAM32560
RAM32570
RAM32580
C->->->->SECTION PT.A - COMMON AND DIMENSION.
C
COMMON /AMOST/ DELH.FH,HINT(3),H,HL,10,IOPT(50),KST,MUOH,NHTS,HC,HRAM32596
1CZ,SY,SZ,TEMP,TLOS,UPL,X,Y,Z RAM32600
COMMON /AEFGKM/ NRECEP,RREC(180),SREC(180),IDATE(2).LH.NPT RAM32610
COMMON /AEG/ SOURCE(9,250) RAM32620
COMMON /AEGIKM/ IPOL,CONTWO,SINT,COST,U,HANE,PL(6) RAM32630
A-55
-------
COMMON /AGK/ PARTC(250) RAM32640
COMMON /AGM/ PSAV(250),HSAV(250),DH(250),DSAV(250),UPH(250).HPR(25RAM32650
10).FPf250),PCHI(180),PHCHId80)>PSIGS(180)26)>PHSIGS(180>26),IPSIGRAM32660
2S(250),GRANDT(180)
C->->->->SECTION
C
PT.B - INITIALIZE AND START RECEPTOR LOOP.
C
C
C
C
10
C
C
ZERO EFFECTIVE STACK HEIGHT FOR EACH SOURCE
NPT - THE NUMBER OF POINT SOURCES
DO 10 J=1,NPT
HSAV WILL BE USED TO STORE THE SOURCE PLUME HEIGHTS.
HSAV(JJ=0.0
LOOP ON RECEPTORS
NRECEP - THE NUMBER OF RECEPTORS
DO 160 K=l,NRECEP
PT.C - START SOURCES LOOP, CALCULATE
UPWIND AND CROSSWIND DISTANCES.
C->->->->SECTION
C
C
DO 150 J=1,NPT
PARTC(J)=0.0
RQ - EAST COORDINATE OF THE SOURCE
C
C
C
C
C
C
C
C
C
C
C
C
C
C
RQ=SOURCE(1,J)
SQ - NORTH COORDINATE OF THE SOURCE
SQ=SOURCE(2,J)
DETERMINE UPWIND DISTANCE
XDUM.YDUM IN INTERNAL UNITS. X,Y IN KM.
RREC - EAST COORDINATE OF THE RECEPTOR
XDUM=RQ-RREC(K)
SREC - NORTH COORDINATE OF THE RECEPTOR
YDUM=SQ-SREC(K)
SINT AND COST ARE THE SIN AND COS OF THE WIND DIRECTION
CONTWO - MULTIPLIER CONSTANT TO CONVERT USER UNITS TO KM
X=(YDUM*COST+XDUM*SINT)*CONTWO
X IS THE UPWIND DISTANCE OF THE SOURCE FROM THE RECEPTOR.
IF X IS NEGATIVE, INDICATING THAT THE SOURCE IS DOWNWIND OF
THE RECEPTOR, THE CALCULATION IS TERMINATED ASSUMING NO
CONTRIBUTION FROM THAT SOURCE.
IF (X.LE.0.0) GO TO 150
DETERMINE CROSSWIND DISTANCE
Y=(YDUM*SINT-XDUM*COST)*CONTWO
H=HSAV(J)
SKIP PLUME RISE CALCULATION IF
CALCULATED FOR THIS SOURCE
EFFECTIVE HT. HAS ALREADY BEEN
IF (H.EQ.O.
DELH=DH(J)
0) GO TO 20
PT.D - EXTRAPOLATE WIND SPEED TO STACK TOP
CALCULATE PLUME RISE.
C->->->->SECTION
C
C
GO TO 100
C MODIFY WIND SPEED BY POWER LAW PROFILE IN ORDER TO TAKE INTO
C ACCOUNT THE INCREASE OF WIND SPEED WITH HEIGHT.
C ASSUME WIND MEASUREMENTS ARE REPRESENTATIVE FOR HEIGHT = HANE.
C THT IS THE PHYSICAL STACK HEIGHT
20 THT=SOURCE(5,J)
C POINT SOURCE HEIGHT NOT ALLOWED TO BE LESS THAN 1 METER.
IF (THT.LT.l.) THT=1.
C U - WIND SPEED AT HEIGHT 'HANE'
C PL - POWER FOR THE WIND PROFILE
C UPL - WIND AT THE PHYSICAL STACK HEIGHT
UPL=U*(THT/HANE)**PL(KST)
C WIND SPEED NOT ALLOWED TO BE LESS THAN 1 METER/SEC.
IF (UPL.LT.l.) UPL=1.
C STORE THE STACK TOP WIND FOR THE JTH SOURCE FOR THIS HOUR
UPH(J)=UPL
VS=SOURCE(8,J)
RAM32670
RAM32G80
RAM32690
RAM32700
RAM32710
RAM32720
HAM32730
RAM32740
RAM32750
RAM32760
RAM32770
RAM327SO
HAM::2790
RAM32800
RAM32810
RAM32820
RAM32830
RAM32840
RAM32850
RAM32860
RAM32870
RAM32880
RAM32890
RAM32900
RAM32910
RAM32920
RAM32930
RAM32940
RAM32950
RAM32960
RAM32970
RAM32980
RAM32990
RAM33000
RAM33010
RAM33020
RAM33030
RAM33040
RAM33050
RAM33060
RAM33070
RAM33080
RAM33090
RAM33100
RAM33110
RAM33120
RAM33130
RAM33140
RAM33150
RAM33160
RAM33170
RAM33180
RAM33190
RAM33200
RAM33210
RAM33220
RAM33230
RAM33240
RAM33250
RAM33260
RAM33270
RAM33280
RAM33290
RAM33300
RAM33310
RAM33320
RAM33330
A-56
-------
c
c
30
C
C
40
C
C
C
C
c
c
c
c
c
c
c
c
c
c
50
c
c
c
c
60
C
C
C
c
c
c
BUOY=SOURCE(9,J) RAM33340
TS=SOURCE(G,J) RAM33350
TEMP- THE AMBIENT AIR TEMPERATURE FOR THIS HOUR RAM33360
DELT=TS-TEMP RAM33370
F=BUOY*DELT/TS RAM33380
IOPT(9) HOURLY EMISSION INPUT FROM TAPE/DISK? 0=NO, 1=YES. RAM33390
IF (IOPT(9).EQ.O) GO TO 30 RAM33400
MODIFY EXIT VELOCITY AND BUOYANCY BY RATIO OF HOURLY EMISSIONS RAM33410
TO AVERAGE EMISSIONS
SCALE=SOURCE(IPOL,J)/PSAV(J)
VS=VS*SCALE
F=F*SCALE
D=SOURCE(7,J)
CALCULATE H PRIME WHICH TAKES INTO ACCOUNT STACK DOWNWASH
BRIGGS(1973) PAGE 4
HPRM=THT
IF IOPT(1;=1. THEN NO STACK DOWNWASH COMPUTATION
IF (lOPT(l).EQ.l) GO TO 40
DUM=VS/UPL
IF (DUM.LT.1.5) HPHM=THT+2.*D*(DUM-1.5)
>HPRM' IS BRIGGS' H-PRIME
IF (HPRM.LT.O.) HPRM=0.
CONTINUE
CALCULATE PLUME RISE AND ADD H PRIME TO OBTAIN EFFECTIVE
STACK HEIGHT.
PLUME RISE CALCULATION
IF (KST.GT.4) GO TO 60
PLUME RISE FOR UNSTABLE CONDITIONS
IF (TS.LT.TEMP) GO TO 70
IF (F.GK.55.) GO TO 50
DETERMINE DELTA-T FOR BUOYANCY-MOMENTUM CROSSOVER(F<55)
RAM33420
RAM33430
RAM33440
RAM33450
RAM33460
HAM33470
RAMS3480
RAM3C-190
RAM33500
RAM33510
RAM33520
RAM33530
RAM33540
RAM33550
RAM33560
RAM33570
RAM33580
RAM33590
RAM33600
HAM33610
RAM33620
RAM33630
RAM33640
RAM33650
RAM33660
FOUND £Y EQUATING BRIGGS(1969) EQ 5.2, P.59 WITH COMBINATION OFRAM33670
BRIGGS(1971) EQUATIONS 6 AND 7, PAGE 1031 FOR F<55. RAM33680
DTMB=0.0297*TS*VS**0.33333/D**0.66667 RAM33690
IF (DELT.LT.DTMB) GO TO 70 RAM33700
DISTANCE OF FINAL BUOYANT RISE(0.049 IS 14*3.5/1000) RAM33710
BRIGGS(1971) EQN. 7,F<55, AND DIST TO FINAL RISE IS 3.5 XSTAR RAM33720
DISTF IN KILOMETERS RAM33730
DISTF=0.049*F**0.625 RAM33740
COMBINATION OF BRIGGS(1971) EQNS. 6 AND 7, PAGE 1031 FOR F<55. RAM33750
DELH=21.425*F**0.75/UPL RAM33760
GO TO 90 RAM33770
DETERMINE DELTA-T FOR BUOYANCY-MOMENTUM CROSSOVER(F>55) RAM33780
FOUND BY EQUATING BRIGGS(1969) EQ 5.2, P.59 WITH COMBINATION OFRAM33790
BRIGGS(1971) EQUATIONS 6 AND 7, PAGE 1031 FOR F>55. RAM33800
DTMB=0.00575*TS*VS**0.66667/D**0.33333 RAM33810
IF (DELT.LT.DTMB) GO TO 70 RAM33820
DISTANCE OF FINAL BUOYANT RISE (0.119 IS 34*3.5/1000) RAM33830
BRIGGS(1971) EQN. 7, F>55, AND DIST TO FINAL RISE IS 3.5 XSTAR.RAM33840
DISTF IN KILOMETERS RAM33850
DISTF=0.119*F**0.4 RAM33860
COMBINATION OF BRIGGS(1971) EQNS. 6 AND 7, PAGE 1031 FOR F>55. RAM33870
DELH= 38.71*F**0.6/UPL RAM33880
GO TO 90 RAM33890
PLUME RISE FOR STABLE CONDITIONS. RAM33900
DTHDZ=0.02 RAM33910
IF (KST.GT.5) DTHDZ=0.035 RAM33920
S=9.80616*DTHDZ/TEMP RAM33930
IF (TS.LT.TEMP) GO TO 80 RAM33940
DETERMINE DELTA-T FOR BUOYANCY-MOMENTUM CROSSOVER(STABLE) RAM33950
FOUND BY EQUATING BRIGGS(1975) EQ 59. P. 96 FOR STABLE BUOYANCYRAM33960
RISE WITH BRIGGS(1969) EQ 4.28, P. 59 FOR STABLE MOMENTUM RISE.RAM33970
DTMB=0.019582*TEMP*VS*SQRT(S) RAM33980
IF (DELT.LT.DTMB) GO TO 80 RAM33990
STABLE BUOYANT RISE FOR WIND CONDITIONS.(WIND NOT ALLOWED LOW RAM34000
ENOUGH TO REQUIRE STABLE RISE IN CALM CONDITIONS.) RAM34010
BRIGGS(1975) EQ 59, PAGE 96. RAM34020
DELH=2.6*(F/(UPL*S))**0.333333 RAM34030
A-57
-------
C COMBINATION OF BRIGGS(1975) EQ 48 AND EQ 59. NOTE DISTF IN KM. RAM34040
DISTF=0.0020715*UPL/SQHT(S) RAM34050
GO TO 90 RAM34060
C UNSTABLE-NEUTRAL MOMENTUM RISE RAM34070
C BRIGGS(19695 EQN. 5.2, PAGE 59 NOTE: MOST ACCURATE WHEN VS/U>4;RAM34080
C TENDS TO OVERESTIMATE RISE WHEN VS/U<4 (SEE BRIGGS(1975) P. 78.RAM34090
C FIGURE 4.) RAM34100
70 DELH=3.*VS*D/UPL RAM34110
DISTF=0. RAM34120
GO TO 90 RAM34130
C STABLE MOMENTUM RISE RAM34140
80 DHA=3.*VS*D/UPL RAM34150
C BRIGGSQ969) EQUATION 4.28, PAGE 59 RAM34160
DELH=1.5*(VS*VS*D*D*TEMP/(4.*TS*UPL))**0.333333/S**0.166667 RAM34170
IF (DHA.LT.DELH) DELH=DHA RAM34180
DISTF=0. RAM34190
C STORE OFF PLUME HEIGHT(ETC.) FOR THIS SOURCE FOR USE WITH RAM34200
C OTHER RECEPTORS. RAM34210
90 H=HPRM+DELH RAM34220
HSAV(J)=H RAM34230
DH(J)=DELH RAM34240
DSAV(J)=DISTF . RAM34250
UPH(J)=UPL . RAM34260
HPR(J)=HPRM RAM34270
FP(J)=F RAM34280
C IF SOURCE-RECEPTOR DISTANCE IS GREATER OR EQUAL TO DISTANCE TO RAM34290
C FINAL RISE, SKIP PLUME RISE CALCULATION AND USE FINAL RISE. RAM34300
100 IF (X.GE.DSAV(J)) GO TO 110 RAM34310
__ ;iOPT(3).EQ.O.AND.IOPT(2).EQ.l) GO TO 110 RAM34320
C CALCULATE GRADUAL PLUME RISE IF (1) THE USER SPECIFIES SO, RAM34330
C OR (2) USER EMPLOYS CALCULATION OF INITIAL DISPERSION RAM34340
C IN THIS CASE, USE OF FINAL EFFECTIVE HEIGHT IN THE CALCULATION RAM34350
C OF DISPERSION COEFFICENTS COULD LEAD TO MISLEADING VALUES SINCERAM34360
C , SIGMA-Y.-Z = DELTA-H/3.5 RAM34370
DELH=160.*FP(jT**0.333333*X**0.666667/UPHfJ) RAM34380
C PLUME RISE FOR DISTANCE X(160 IS 1.6*1000**.67 BECAUSE X IN KM)RAM34390
IF (DELH.GT.DH(J)) DELH=DH(J) HAM34400
IF (IOPT(2).EQ.l) GO TO 110 RAM34410
C IF SPECIFYING CALCULATION OF INITIAL DISPERSION BUT ARE NOT RAM34420
C SPECIFYING CALCULATION OF GRADUAL PLUME RISE, THEN DO NOT RAM34430
C ADD THE NEW GRADUAL DELTA-H TO THE EFFECTIVE HEIGHT. OTHERWISE,RAM34440
C CHECK THE GRADUAL RISE PLUME HEIGHT WITH FINAL EFFECTIVE HEIGHTRAM34450
C AND SET THE PLUME HEIGHT TO THE SMALLER OF THE TWO VALUES. RAM34460
H=HPR(J)+DELH RAM34470
C ADD PLUME RISE TO STACK HEIGHT FOR TOTAL EFFECTIVE STACK HT. RAM34480
C END PLUME RISE CALCULATION RAM34490
110 UPL=UPH(J) RAM34500
C RAM34510
C->->->->SECTION PT.E - CALCULATE THE CONTRIBUTION OF RAM34520
C ONE SOURCE TO ONE RECEPTOR. RAM34530
C . RAM34540
IF (KST.GT.4) GO TO 120 RAM34550
IF (H.LT.HL) GO TO 120 RAM34560
PROD=0. RAM34570
GO TO 130 RAM34580
C RCON CALCULATES RAM34590
C THE RELATIVE CONCENTRATION , CHI/Q (SEC/M**3) RAM34600
120 CALL RCON RAM34610
C CALCULATE TRAVEL TIME IN KM-SEC/M TO INCLUDE DECAY RATE OF RAM34620
C POLLUTANT. RAM34630
TT=X/UPL RAM34640
C TLOS IN METERS/KM-SEC, SO TT*TLOS IS DIMENSIONLESS RAM34650
C INCLUDE THE POLLUTANT LOSS RAM34660
PROD=RC*SOURCE(IPOL,J)/EXP(TT*TLOS) RAM34670
C IF HAFL IS ZERO, TLOS WILL START AS ZERO AND RAM34680
C RESULT IN NO COMPUTATIION OF POLLUTANT LOSS. RAM34690
C INCREMENT CONCENTRATION AT K-TH RECEPTOR(G/M**3) RAM34700
C PCHI - SUM FOR THE AVERAGING TIME AT RECEPTOR K RAM34710
130 PCHI(K)=PCHI(K)+PROD RAM34720
C PHCHI - CONCENTRATION FOR THIS HOUR AT RECEPTOR K RAM34730
A-58
-------
PHCHI(K;=PHCHI^K)+PROD
KSIG=IPSIGS(J)
IF (KSIG.EQ.Oi GO TO 140
STORE CONCENTRATIONS FROM SIGNIFICANT SOURCES.(G/M**3)
PSIGS(K,KSIG)=PSIGS(K,KSIG)+PROD
PHSIGS(K.KSIG)=PHSIGS(K,KSIG)+PROD
PSIGS(K.26)=PSIGS(K,26)+PROD
PHSIGS(K,26)=PHSIGS(K,26)-HPROD
PARTC(J)=PROD
140
C
C->->->->SECTION
C
PT.F - END SOURCE AND RECEPTOR LOOPS.
150
C
C
160
C
C
C***
C
C
C
C
C
C
C
C
C
C
CONTINUE
END OF LOOP FOR SOURCES
WRITE PARTIAL CONCENTRATIONS ON DISK(G/M**3) IF IOPT(40) = 1.
IF (IOPT(40).SQ.O) GO TO 160
USER PLEASE NOTE: PARTIAL CONC. IN G/M**3, NOT MICnOGRAM/M**3
WRITE (10) IDATE.LH.K,(PAHTC(J),J=1,NPT)
CONTINUE
END OF LOOP FOR RECEPTORS
RETURN
SECTIONS OF SUBROUTINE PTR.
SECTION
SECTION
SECTION
PT.A
PT.B
PT.C
AND
SECTION PT.D -
SECTION PT.E -
SECTION PT.F -
COMMON AND DIMENSION.
INITIALIZE AND START RECEPTOR LOOP.
START SOURCES LOOP; CALCULATE UPWIND
CROSSWIND DISTANCES.
EXTRAPOLATE WIND SPEED TO STACK TOP;
CALCULATE PLUME RISE.
CALCULATE CONTRIBUTION FROM A SOURCE TO ONE
RECEPTOR.
END SOURCE AND RECEPTOR LOOPS.
END
SUBROUTINE RCON
SUBROUTINE RCON
THIS SUBROUTINE IS REFERRED
C
C
C
C->->->->SECTION RCON.A - COMMON.
(VERSION 80336), PART OF RAM.
TO AS H IN THE COMMON STATEMENTS
RAM34740
RAM34750
RAM34760
RAM34770
RAM34780
RAM34790
RAM34800
RAM34810
RAM34820
RAM34830
RAM34840
RAM34850
RAM34860
RAM34870
RAM34880
RAM34890
RAM34900
RAM34910
RAM34920
RAM34930
RAM34940
RAM34950
RAM34960
RAM34970
RAM34980
RAM34990
RAM35000
RAM35010
RAM35020
RAM35030
RAM35040
RAM35050
RAM35060
RAM35070
RAM35090
RAM35100
RAM35110
RAM35120
RAM35130
COMMON /AMOST/ DELH,FH,HINT(3),H,HL,10,IOPT(50),KST,MUOR,NHTS,RC,RRAM35140
W\Sl*a*i\SlV / fU'JW A / lSUJJi.1.* 4. il« A4J.il 1 \
ICZ.SY.SZ.TEMP.TLOS.UPL.X.Y.Z
DATA 10 /6/
C->->->->SECTION RCON.B - EXPLANATIONS AND COMPUTATIONS
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
COMMON TO ALL CONDITIONS.
Z
H
HL
X
Y
KST
RCON DETERMINES RELATIVE CONCENTRATIONS, CHI/Q, FROM POINT SOURCES.
IT CALLS UPON SYZ TO OBTAIN STANDARD DEVIATIONS.
THE INPUT VARIABLES ARE
UPL WIND SPEED (M/SECJ
RECEPTOR HEIGHT (M)
EFFECTIVE STACK HEIGHT (M)
MIXING HEIGHT- TOP OF NEUTRAL OR UNSTABLE LAYER(M).
DISTANCE RECEPTOR IS DOWNWIND OF SOURCE (KM)
DISTANCE RECEPTOR IS CROSSWIND FROM SOURCE (KM)
STABILITY CLASS
DELH PLUME RISE(METERS)
THE OUTPUT VARIABLES ARE
SY HORIZONTAL DISPERSION PARAMETER
SZ VERTICAL DISPERSION PARAMETER
RC RELATIVE CONCENTRATION (SEC/M**3) ,CHI/Q
10 IS OUTPUT UNIT FOR WARNING OUTPUT.
THE FOLLOWING EQUATION IS SOLVED —
RC = (1/(2*PI*UPL*SIGMA Y*SIGMA Z))* (EXP(-0.5*(Y/SIGMA Y)**2))RAM35380
(EXP(-0.5*((Z-H)/SIGMA Z)**2) + EXP(-0.5*((Z+H)/SIGMA Z)**2)RAM35390
PLUS THE SUM OF THE FOLLOWING 4 TERMS K TIMES (N=1,K) — RAM35400
FOR NEUTRAL OR UNSTABLE CASES: RAM35410
TERM 1- EXP?-0.5*((Z-H-2NL)/SIGMA Z)**2) RAM35420
TERM 2- EXP(-0.5*((Z+H-2NL)/SIGMA Z)**2)
RAM35150
RAM35160
RAM35170
RAM35180
RAM35190
RAM35200
RAM35210
RAM35220
RAM35230
RAM35240
RAM35250
RAM35260
RAM35270
RAM35280
RAM35290
RAM35300
RAM35310
RAM35320
RAM35330
RAM35340
RAM35350
RAM35360
RAM35370
RAM35430
A-59
-------
C TERM 3- EXP(-0.5*((Z-H+2NL)/SIGMA Z}**2) RAM35440
C TERM 4- EXP(-0.5*(iZi-H+2NL)/SIGMA Z)**2) RAM35450
C NOTE THAT MIXING HEIGHT- THE TOP OF THE NEUTRAL OR UNSTABLE LAYER- RAM35460
C HAS A VALUE ONLY FOR STABILITIES 1-4, THAT IS, MIXING HEIGHT, RAM35470
C THE HEIGHT OF THE NEUTRAL OR UNSTABLE LAYER, DOES NOT EXIST FOR STABLERAM35480
C LAYERS AT THE GROUND SURFACE- STABILITY 5 OR 6. RAM35490
THE ABOVE EQUATION IS SIMILAR TO EQUATION (5.8) P 36 IN HAM35500
WORKBOOK OF ATMOSPHERIC DISPERSION ESTIMATES WITH THE ADDITIONRAM35510
OF THE EXPONENTIAL INVOLVING Y. RAM35520
IF STABLE. SKIP CONSIDERATION OF MIXING HEIGHT. RAM35530
IF (KST.GE.5) GO TO 30 RAM35540
C IF THE SOURCE IS ABOVE THE LID, SET RC = 0., AND RETURN. RAM35550
IF (H.GT.HL) GO TO 10 RAM35560
IF fZ-HL) 30,30,20 RAM35570
10 IF (Z.LT.HL) GO TO 20 RAM35580
WRITE (10,260) HAM35530
20 RC=0. RAM35600
RETURN RAM35610
C IF X IS LESS THAN 1 METER, SET RC=0. AND RETURN. THIS AVOIDS RAM35620
C PROBLEMS OF INCORRECT VALUES NEAR THE SOURCE. RAM35630
30 IF (X.LT.0.001) GO TO 20 HAM35640
C CALL SYZ TO OBTAIN VALUES FOR SY AND SZ RAM33650
CALL SYZ RAM35660
C SY = SIGMA Y, THE STANDARD DEVIATION OF CONCENTRATION IN THE RAM35670
C Y-DIRECTION (M) RAM35680
C SZ = SIGMA Z, THE STANDARD DEVIATION OF CONCENTRATION IN THE RAM35690
C Z-DIRECTION (M) RAM35700
C IF IOPT(3)=1, CONSIDER BUOYANCY INDUCED DISPERSION OF PLUME DUE RAM35710
C TO TURBULENCE DURING BUOYANT RISE. RAM35720
IF (IOPT(3).EQ.O) GO TO 40 RAM35730
DUM=DELH/3.5 RAM35740
DUM=DUM*DUM RAM35750
SY=SQRT(SY*SY+DUM) HAM35760
SZ=SQRT(SZ*SZ+DUM) RAM35770
40 Cl=l. RAM35780
IF (Y.EQ.0.0) GO TO 50 RAM35790
YD=1000.*Y RAM35800
C YD IS CROSSWIND DISTANCE IN METERS. RAM35810
DUM=YD/SY RAM35820
DUM=0.5*DUM*DUM RAM35830
IF (DUM.GE.50.) GO TO 20 RAM35840
C1=EXP(DUM) RAM35850
50 IF (KST.GT.4) GO TO 60 RAM35860
IF (HL.LT.5000.) GO TO 110 RAM35870
C IF STABLE CONDITION OR UNLIMITED MIXING HEIGHT, RAM35880
C USE EQUATION 3.2 IF Z = 0, OR EQ 3.1 FOR NON-ZERO Z. RAM35890
C (EQUATION NUMBERS REFER TO WORKBOOK OF ATMOSPHERIC DISPERSION RAM35900
C ESTIMATES.) RAM35910
60 C2=2.*SZ*SZ RAM35920
IF (Z) 20,70,80 RAM35930
C NOTE: AN ERRONEOUS NEGATIVE Z WILL RESULT IN ZERO CONCENTRATIONSRAM35940
C RAM35950
C->->->->SECTION RCON.C - STABLE OR UNLIMITED MIXING, Z IS ZERO. RAM35960
C RAM35970
70 C3=H*H/C2 RAM35980
IF (C3.GE.50.) GO TO 20 RAM35990
A2=I./EXP(C3) RAM36000
C WADE EQUATION 3.2. RAM36010
RC=A2/(3.14159*UPL*SY*SZ*C1) RAM36020
RETURN RAM36030
C RAM36040
C->->->->SECTION RCON.D - STABLE OR UNLIMITED MIXING, Z IS NON-ZERO. RAM36050
C RAM36060
80 A2=0. RAM36070
A3=0. RAM36080
CA=Z-H RAM36090
CB=Z+H RAM36100
C3=CA*CA/C2 RAM36110
C4=CB*CB/C2 RAM36120
IF (C3.GE.50.) GO TO 90 RAM36130
A-60
-------
90
C
100
A2=1./EXP(C3)
IF (C4.GE.50.) GO TO 100
A3=1./EXP(C4)
WADE EQUATION 3.1.
RC=(A2+A3)/(6.28318*UPL*SY*SZ*C1)
C
C-^->->->SECTION RCON.E - UNSTABLE, ASSURED OF UNIFORM MIXING.
C
C
C
C
C
110
C
IF SIGMA-Z IS GREATER THAN 1.6 TIMES THE MIXING HEIGHT,
THE DISTRIBUTION BELOW THE MIXING HEIGHT IS UNIFORM WITH
HEIGHT REGARDLESS OF SOURCE HEIGHT OR RECEPTOR HEIGHT BECAUSE RAM36250
OF REPEATED EDDY REFLECTIONS FROM THE GROUND AND THE MIXING HTRAM36260
RAM36140
RAM36150
RAM36160
RAM36170
RAM36180
RAM36190
RAM36200
HAM36210
RAM36220
RAM36230
RAM36240
120
C
C
C
120
C
C
C
C
C
C
C
C
C
130
140
150
160
170
180
190
200
IF (SZ/HL.LE.1.6) GO TO
WADE EQUATION 3.5.
HC=1.,(2.50G6*UPL*SY*HL*C1)
RETURN
INITIAL VALUE OF
AN - THE NUMBER
AND ADDED
AN=0.
IF (Z) 20,210,130
AN SET = 0.
OF TIMES THE
IN.
SUMMATION TERM IS EVALUATED
->->SECTION RCON.F - UNSTABLE, CALCULATE MULTIPLE EDDY
REFLECTIONS, Z IS NON-ZERO.
THE FOLLOWING STATEMENTS CALCULATE RC, THE RELATIVE CONC.,
USING THE EQUATION DISCUSSED ABOVE. SEVERAL INTERMEDIATE
VARIABLES ARE USED TO AVOID REPEATING CALCULATIONS.
CHECKS ARE MADE TO BE SURE THAT THE ARGUMENT OF THE
EXPONENTIAL FUNCTION IS NEVER GREATER THAN 50 (OR LESS THAN
-50).
CALCULATE MULTIPLE EDDY REFLECTIONS FOR RECEPTOR HEIGHT Z.
Al=1. / (6. 28318*UPL*SY*SZ *C1)
C2=2.*SZ*SZ
A2=0.
A3=0.
CA=Z-H
CB=Z+H
C3=CA*CA/C2
C4=CB*CB/C2
IF (C3.GE.50.) GO TO 140
A2=1./EXP(C3)
IF (C4.GE.50.) GO TO 150
A3=1./EXP(C4)
SUM=0.
THL=2.*HL
AN=AN+1.
A4=0.
A5=0.
A6=0.
A7=0.
C5=AN*THL
CC=CA-C5
CD=CB-C5
CE=CA+C5
CF=CB+C5
C6=CC*CC/C2
C7=CD*CD/C2
C8=CE*CE/C2
C9=CF*CF/C2
IF (C6.GE.50.) GO TO 170
A4=1./EXP(C6)
IF (C7.GE.50.) GO TO 180
A5=1./EXP(C7)
IF fC8.GE.50.) GO TO 190
A6=1./EXP(C8)
IF (C9.GE.50.)
A7=1./EXP(C9)
T=A4+A5+A6+A7
GO TO 200
RAM36270
RAM36280
RAM36310
RAM36320
RAM36330
RAM36340
RAM36350
RAM36360
RAM36370
RAM36380
RAM36390
RAM36400
RAMS 64 10
RAM36420
RAM36430
RAM36440
RAM36450
RAM36460
RAM36470
RAM36480
RAM3G490
RAM36500
RAM36510
RAM36520
RAM3G530
RAMS 6540
RAM36550
RAM36560
RAM36570
RAM36580
RAM36590
RAM36600
RAM36610
RAM36620
RAM36630
RAM36640
RAM36650
RAM36660
RAM36670
RAM36680
RAM36690
RAM36700
RAM36710
RAM36720
RAM36730
RAM36740
RAM36750
RAM36760
RAM36770
RAM36780
RAM36790
RAM36800
RAM36810
RAM36820
RAM36830
A-61
-------
SUM=SUM+T
IF (T.GE.0.01) GO TO 160
RC=A1*(A2+A3+SUM)
RETURN
C
C->->->->SECTION RCON.G - UNSTABLE, CALCULATE MULTIPLE EDDY
C REFLECTIONS, Z IS ZERO.
C
C CALCULATE MULTIPLE EDDY REFLECTIONS FOR GROUND LEVEL RECEPTOR
C HEIGHT.
210 A1=1./(6.28318*UPL*SY*SZ*C1)
A2=0.
C2=2.*SZ*SZ
C3=H*H/C2
IF (C3.GE.50.) GO TO 220
A2=2./EXP(C3;
220 SUM=0.
THL=2.*HL ,
230 AN=AN+1 .
A4=0.
A6=0.
C5--AN*THL
CC=H-C5
CE=H+C5
C6=CC*CC/C2
C8=CE*CE/C2
IF (C6.GE.50.) GO TO 240
A4=2./EXP(C6)
240 IF (CS.GE.'SO.) GO TO 250
A6=2./EXP(C8)
250 T=A4+A6
SUM=SUM+T
IF (T.GE.0.01) GO TO 230
RC=A1*(A2+SUM)
RETURN
C
C->->->-> SECTION RCON.H - FORMAT
RAM36840
RAMS 6850
RAM36860
RAM36870
RAMS 6880
RAM36890
RAM36900
RAM36910
RAM36920
RAM36930
RAM36940
RAM36950
RAM36960
RAM36970
RAM36980
RAM36990
RAM37000
RAM37010
RAM37020
RAM37030
RAM37040
RAM37050
RAM37060
RAM37070
RAM37080
RAM37090
RAM37100
RAM37110
HAM37120
RAM37130
RAM37140
RAM37150
RAM371CO
RAM37170
RAM37180
RAM37190
RAM37200
260 FORMAT 7lHO 'BOTH H AND Z ARE ABOVE THE MIXING HEIGHT SO A RELIABLRAM37210
IE COMPUTATION CAN NOT BE MADE.'} RAM37220
C
C
C*** SECTIONS OF SUBROUTINE RCON.
C SECTION RCON. A - COMMON.
C SECTION RCON.B - EXPLANATIONS AND COMPUTATIONS COMMON TO ALL
C CONDITIONS.
C SECTION RCON.C - STABLE OR UNLIMITED MIXING, Z IS ZERO.
C SECTION RCON.D - STABLE OR UNLIMITED MIXING, Z IS NON-ZERO.
C SECTION RCON.E - UNSTABLE, ASSURED OF UNIFORM MIXING.
C SECTION RCON.F - UNSTABLE, CALCULATE MULTIPLE EDDY
C REFLECTIONS: Z IS NON-ZERO.
C SECTION RCON.G - UNSTABLE, CALCULATE MULTIPLE EDDY
C REFLECTIONS; Z IS ZERO.
C SECTION RCON.H - FORMAT.
C
END
C
SUBROUTINE JMH54
C SUBROUTINE JMH54 (VERSION 80336), PART OF RAM.
C THIS SUBROUTINE IS REFERRED TO AS I IN THE COMMON STATEMENTS
C THE PURPOSE OF THIS ROUTINE IS TO CALCULATE TABLES OF
C CONCENTRATION NORMALIZED FOR WIND SPEED AND EMISSION RATE
C FROM AREA SOURCES (CHI*U/Q) . SUBROUTINE JMHCZU IS CALLED FOR
C INTEGRATION OF RELATIVE CONCENTRATION.
C INPUT VARIABLES ARE...
C HINT- REPRESENTATIVE HEIGHTS FOR AREA SOURCES
C NHTS- NUMBER OF HEIGHT CLASSES
C Z- RECEPTOR HEIGHT(M)
C XLIM- DISTANCE LIMIT ON INTEGRATION OF AREA SOURCES (KM)
C TLOS- PARTIAL COMPUTATION RELATED TO POLLUTANT LOSS
C
RAM37230
RAM37240
RAM37250
RAM37260
RAM37270
RAM37280
RAM37290
RAM37300
RAM37310
RAM37320
RAM37330
*AM37340
RAM37350
RAM37360
RAM37370
RAM37380
RAM37400
RAM37410
RAM37420
RAM37430
RAM37440
RAM37450
RAM37460
RAM37470
RAM37-180
RAM37490
RAM37500
RAM37510
RAM37520
RAM37530
A-62
-------
L. W4-J ) W *. J k^*J J AXJilA J .1. J-IVt-f J W* -U ) 4k ) * J 4»l
COMMON /AEGIKM/ IPOL.CONTWO.SINT.COST.U.HANE.PLCS)
COMMON /AIL/ CIN(3,200),XLIM
COMMON /AIM/ HARE(3)
COMMON /AMOST/ DELH,FH,HINT(3),H,HL,10,IOPT(50),KST,MUOR,NHTS,RC,RRAM37540
lCZ,_SY>SZ,TEMP,TLOS1yPLLX1_YLZ RAM37550
RAM37570
RAM37580
C .... RAM37590
C CONCENTRATION TABLES ARE GENERATED FOR UP TO 3 HEIGHTS. RAM37600
DO 190 IH=1,NHTS RAM37610
H=HINT(IH) HAM37620
HARE(IH)=H RAM37630
IF (FH.EQ.l.) GO TO 10 RAM37640
PHT=FH*H RAM37650
UPL=U*(PHT/HANE)**PL(KST) RAM37660
IF (UPL.LT.l.) tJPL=l. RAM37670
H=((H-PHT)*5.)/UPL+PHT RAM37680
HAHE(IH)-H HAM37690
GO TO 20 RAM37700
C MODIFY WIND SPEED BY POWER LAW PROFILE. RAM37710
10 IF (H.LT.1.0) H=1.0 RAM37720
UPL=U*(H/HANE}**PL(KST) RAM37730
IF (UPL.LT.l.0) DPL=1.0 RAM37740
C ZERO CONCENTRATION ARRAY ' RAM37750
20 DO 30 J=l,200 RAM37760
30 CIN(IH,J)=0.0 RAM37770
N=0 RAM37780
NC=10 RAM37790
CP=0.0 RAM37800
CI=0.0 RAM37810
JD=1 RAM37820
C DISTANCE IN KM. RAM37830
X=0.0 RAM37840
DELX=0.001 RAM37850
ID=1 RAM37860
40 CL=CP , RAM37870
X=X+DELX RAM37880
C SUBROUTINE JMHCZ DETERMINES THE RELATIVE CONCENTRATION AT RAM37890
C VARYING DOWNWIND DISTANCES. RAM37900
CALL JMHCZ RAM37910
C CALCULATE TRAVEL TIME IN KM-SEC/M. RAM37920
TT=X/UPL RAM37930
C ADJUST RELATIVE CONCENTRATION BY POLLUTANT DECAY RATE. RAM37940
C TLOS IN METERS/KM-SEC, SO TT*TLOS IS DIMENSIONLESS. RAM37950
CP=RCZ/EXP(TT*TLOS) RAM37960
C INTEGRATED RELATIVE CONCENTRATION IS DIMENSIONLESS. RAM37970
C MULTIPLICATION BY 500. CONVERTS TO METERS AND DIVIDES BY 2. RAM37980
CI=500.*DELX*(CL+CP)-K?I RAM37990
GO TO (50,90,120,150.180), JD RAM38000
C NORMALIZED CONCENTRATIONS ARE STORED IN TABLES FOR VARYING RAM38010
C DISTANCES AT VARYING TIME INTERVALS.THE FOLLOWING COMMENTS DETAILRAM38020
C THE TABLE'S CONSTRUCTION. RAM38030
C DISTANCE<100M: CALCULATE EVERY 1 M, STORE EVERY" 10 M, 0.01KM. RAM38040
50 IF (X-0.0993) 60,80,80 RAM38050
60 N=N+1 RAM38060
IF (N.LT.NC) GO TO 40 RAM38070
N=0 RAM38080
70 ID=(100.*X)+0.0008 RAM38090
C STORAGE LOCATIONS 1-9 CONTAIN INTEGRATIONS FOR 10-90 M. RAM38100
CIN(IH,ID)=CI RAM38110
GO TO 40 RAM38120
C DISTANCE 100-500M: CHANGE DELX TO 10M; STORE EVERY 10 M, 0.01KM. RAM38130
80 JD=2 RAM38140
DELX=0.01 RAM38150
GO TO 70 RAM38160
C STORAGE LOCATIONS 10-49 CONTAIN INTEGRATIONS FOR 100 M TO 490 M. RAM38170
90 IF (X-0.497) 70.100,100 RAM38180
C DISTANCE 500 -3000M; CHANGE DELX TO 100 M; STORE EVERY 100 M, 0.1KMRAM38190
100 JD=3 RAM38200
DELX=0.1 RAM38210
110 ID=(10.*X)+45.08 RAM38220
C STORAGE LOCATIONS 50-74 CONTAIN INTEGRATIONS FOR 500 M TO 2900 M. RAM38230
A-63
-------
120
C
C
130
140
C
C
150
C
C
160
170
C
C
180
190
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
CIN(IH,ID)=CI
GO TO 40
IF (X-2.95) 110.130,130
DISTANCE 3000-15, OOOM. ; CHANGE DELX TO 500 M; STORE EVERY 500 M
0.5KM.
JD=4
DELX= . 5
ID=(2.*X))-69.08
STORAGE LOCATIONS 75-98 CONTAIN INTEGRATIONS FOR 3000 M TO
14.5 KM.
CIN(IH,ID)=CI
GO TO 40
IF (X-14.95) 140,160,160
DISTANCE > 15, OOOM.; CHANGE DELX TO 1000M; STORE EVERY 1000 M,
1KM.
JD=5
DEIX=1.
ID=X+84.08
STORAGE LOCATIONS 99-200 CONTAIN INTEGRATIONS FOR 15 KM TO A
MAXIMUM OF 116 KM.
CIN(IH,ID)=CI
GO TO 40
IF (X-XLIM) 170,190,190
CONTINUE
RETURN
END
SUBROUTINE JMHCZ
SUBROUTINE JMHCZ (VERSION 80336), PART OF RAM.
THIS SUBROUTINE IS REFERRED TO AS J IN THE COMMON STATEMENTS
COMMON /AMOST/ DELH,FH,HINT(3) ,H,HL, 10, IOPT(50) ,KST,MUOR,NHTS,RC,
1CZ,SY,SZ,TEMP,TLOS,UPL,X,Y,Z
DATA 10 /6/
SUBROUTINE JMHCZ CALCULATES CHI*U/Q, RELATIVE CONCENTRATION
NORMALIZED FOR WIND SPEED AND EMISSION RATE, FOR A RECEPTOR
RAM38240
RAM38250
RAM382GO
, RAM38270
RAM38280
RAM38290
RAM38300
RAM38310
RAM38320
RAM38330
RAM38340
RAM38350
RAM38360
RAM38370
RAM38380
RAM38390
RAM38400
RAM38410
RAM38420
RAM38430
RAM38440
RAM38450
RAM38460
RAM38470
RAM38480
RAM38490
RAM38500
RAM38520
RAM38530
RAM38540
RRAM38550
RAM38560
RAM38570
RAM38580
RAM38590
RAM38600
DOWNWIND OF A CROSSWIND INFINTE SOURCE (IN UNITS OF: PER METEHRAM38610
JMHCZ CALLS SUBROUTINE SGZ
THE INPUT VARIABLES ARE
Z RECEPTOR HEIGHT (M)
H EFFECTIVE STACK HEIGHT (M)
HL MIXING HEIGHT- TOP OF NEUTRAL OR UNSTABLE LAYER(M)
(THROUGH COMMON/METCON/J
X DISTANCE RECEPTOR IS DOWNWIND OF SOURCE (KM)
KST STABILITY CLASS (THROUGH COMMON /METCON/)
THE OUTPUT VARIABLES ARE
SZ VERTICAL DISPERSION PARAMTER.
RCZ RELATIVE CONCENTRATION HAS UNITS OF: PER METER.
THE FOLLOWING EQUATION IS SOLVED —
RC = (1/2.5066 *SIGMA Z) * ((EXP(-.05*((Z-H) /SIGMA Z)**2)
+ (EXP(-0.5*((Z+m/SIGMA Z)**2))
PLUS THE SUM OF THE FOLLOWING 4 TERMS K TIMES (N=1,K) —
FOR NEUTRAL OR UNSTABLE CASES:
TERM 1- EXP(-0.5*((Z-H-2NL /SIGMA Z)**2
TERM 2- EXP(-0.5*(fZ+H-2NL /SIGMA Z)**2
TERM 3- EXP(-0.5*((Z-H+2NL /SIGMA Z)**2
TERM 4- EXP(-0.5*((Z+H+2NL /SIGMA Z)**2
2.5066 IS THE SQUARE ROOT OF 2 * PI
NOTE THAT MIXING HEIGHT- THE TOP OF THE NEUTRAL OR UNSTABLE LAYER-
HAS A VALUE ONLY FOR STABILITIES 1-4, THAT IS, MIXING HEIGHT
DOES NOT EXIST FOR STABLE LAYERS AT THE GROUND SURFACE- STABILITY
5 OR 6.
THE SUBROUTINE CALCULATES RC. THE RELATIVE CONCENTRATION,
USING THE EQUATION DISCUSSED ABOVE. SEVERAL INTERMEDIATE
VARIABLES ARE USED TO AVOID REPEATING CALCULATIONS.
CHECKS ARE MADE TO BE SURE THAT THE ARGUMENT OF THE
EXPONENTIAL FUNCTION IS NEVER GREATER THAN 50 (OR LESS THAN
-50). IF 'AN' BECOMES GREATER THAN 45, A LINE OF OUTPUT IS
PRINTED INFORMING OF THIS.
RAM38620
RAM38G30
RAM38640
RAMS 8650
RAM38660
RAM38670
RAM38680
RAM38690
RAM38700
RAM38710
RAM38720
RAM38730
RAM38740
RAM38750
RAM38760
RAM38770
RAM38780
RAM38790
RAM38800
RAM38810
RAM38820
RAM38830
RAM38840
RAM38850
RAM38860
RAM38870
RAM38880
RAM38890
HAM38000
RAM38910
RAM38920
RAM38930
A-64
-------
c
c
10
20
C
C
30
C
40
C
50
C
60
70
80
C
C
C
90
C
C
C
100
C
C
110
120
130
140
10 IS OUTPUT UNIT FOR OUTPUT
IF STABLE, SKIP CONSIDERATION OF MIXING HEIGHT.
IF (KST.GE.5) GO TO 30
IF THE SOURCE IS ABOVE THE LID, SET RC = 0., AND RETURN.
IF fH.GT.Hl] GO TO 10
IF CZ-HL) 30,30,20
IF jfZ.LT.HL) GO TO 20
WRITE (10,240)
RCZ=0.
RETURN
IF X IS LESS THAN 1 METER, SET RC=0. AND RETURN. THIS AVOIDS
PROBLEMS OF INCORRECT VALUES NEAR THE SOURCE.
IF (X.IT.0.001) GO TO 20
CALL SIGZ
SZ = SIGMA Z, THE STANDARD DEVIATION OF CONCENTRATION IN THE
Z-DIRECTION CM)
IF (KST.GT.4) GO'TO 40
IF (HL.LT.5000) GO TO 90
IF STABLE CONDITION OR UNLIMITED MIXING HEIGHT:
C2:--2.*SZ*SZ
IF (Z) 20,50,60
FOR Z = ZERO:
C3=H*H/C2
IF (C3.GE.50.) GO TO 20
RCZ=2./(2.5066*SZ*EXP(C3))
RETURN
FOR NON-ZERO Z:
A2=0.
A3^0.
CA=Z-H
CB=Z+H
C3=CA*CA/C2
C4=CB*CB/C2
IF (C3.GE.50.) GO TO 70
A2=I./EXP(C3)
IF (C4.GE.50.) GO TO 80
A3=1./EXP(C4)
RCZ=(A2+A3)/(2.5066*SZ)
RETURN
IF SIGMA-Z IS GREATER THAN 1.6 TIMES THE MIXING HEIGHT,
THE DISTRIBUTION BELOW THE MIXING HEIGHT IS UNIFORM WITH
HEIGHT REGARDLESS OF SOURCE HEIGHT.
IF (SZ/HL.LE.1.6) GO TO 100
RCZ=1./HL
RETURN
INITIAL VALUE OF AN SET = 0.
AN THE NUMBER OF TIMES THE SUMMATION TERM IS EVALUATED
AND ADDED IN.
AN=0.
IF (Z) 20,190,110
NOTE: AN ERRONEOUS NEGATIVE Z WILL RESULT IN ZERO CONCENTRATIONS
CALCULATE MULTIPLE EDDY REFLECTIONS FOR ELEVATED RECEPTOR HEIGHT
A1=1./72.5066*SZ)
C2=2.*SZ*SZ
A2=0.
A3=0.
CA=Z-H
CB=Z+H
C3=CA*CA/C2
C4=CB*CB/C2
IF (C3.GE.50.) GO TO 120
A2=I./EXP(C3)
IF (C4.GE.50.) GO TO 130
A3=I./EXP(C4)
SUM=0.
THL=2.*HL
AN=AN+1.
A4=0.
A5-0.
A6=0.
RAM38940
RAM38950
RAM38960
RAM38970
RAM38980
RAM38990
RAM39000
RAM39010
RAM39020
RAM39030
RAMS9040
RAM39050
RAM39060
RAM39070
RAM39080
1-; * i T^^non
*Uli'iO.JU JU
RAM39100
RAM39110
RAM39120
TMM39130
RAM39140
RAM39150
RAM39160
RAM39170
RAM39180
RAM39190
RAM39200
RAM39210
RAM39220
RAM39230
RAM39240
RAM39250
RAM392RO
RAM39270
RAM39280
RAM39290
RAM39300
RAM39310
RAM39320
RAM39330
RAM39340
RAM39350
RAM39360
RAM39370
RAM39380
RAM39390
RAM39400
RAM39410
RAM39420
RAM39430
,RAM39440
•RAM39450
RAM39460
RAM39470
RAM39480
RAM39490
RAM39500
RAM39510
RAM39520
RAM39530
RAM39540
RAM39550
RAM39560
RAM39570
RAM39580
RAM39590
RAM39600
RAM39610
RAM39620
RAM39630
A-65
-------
150
160
170
180
C
190
200
210
220
230
C
240
C5=AN*THL
CC=CA-C5
CD=CB-C5
CE=CA+C5
CF=CB+C5
C6=CC*CC/C2
C7=CD*CD/C2
C8=CE*CE/C2
C9=CF*CF/C2
IF (C6.GE.50.)
A4=1./EXP(C6)
IF (C7.GE.50.)
A5=1./EXP(C7)
IF fC8.GE.50.)
A6=l./EXPfC8)
IF (C9.GE.50.) GO
A7=l./EXP(C9i
T=A4+A5+A6+A7
SUM=SUM+T
IF (T.GE.0.01) GO TO
RCZ=A1*(A2+A3-K3UM)
RETURN
CALCULATE MULTIPLE
A1=1./(2.5066*SZ)
A2=0.
C2=2.*SZ*SZ
C3=H*H/C2
IF (C3.GE.50.) GO TO 200
A2=2./EXP(C3)
SUM=O:
THL=2.*HL
AN=AN+1.
W=0.
GO TO 150
GO TO 160
GO TO 170
TO 180
140
A4=
A6=
C5=AN*THL
CC=H-C5
CE=H+C5
C6=CC*CC/C2
C8=CE*CE/C2
IF (C6.GE.50.)
A4=2./EXP(C6)
IF (C8.GE.50.)
A6=2./EXP(C8)
GO TO 220
GO TO 230
SUM=SUM+T
IF (T.GE.0.01) GO TO 210
RCZ=A1*(A2+SUM)
RETURN
FORMAT (IHO.'BOTH H AND
IE COMPUTATION CAN NOT B
END
RAM39640
HAM39650
RAM39660
RAMS9670
RAM39680
RAM39690
RAM39700
RAMS9710
RAM39720
RAM3'J730
RAM39740
RAM39750
RAM39760
RAM39770
RAM39780
RAMS97,00
RAM39800
RAM39810
RAM39820
RAM39830
RAM39840
RAMS9850
RAMS9860
EDDY REFLECTIONS FOR GROUND LEVEL RECEPTOR HT.RAM39870
RAM39880
RAM39890
RAM39900
RAMS9910
RAM39920
RAM39930
RAM39940
RAM39950
RAM39960
RAM39970
RAMS9980
RAM39990
RAM40000
RAM40010
RAM40020
RAM40030
RAM40040
RAM40050
RAM40060
RAM40070
RAM40080
RAM40090
RAM40100
RAM40110
RAM40120
RAM40130
THE MIXING HEIGHT SO A RELIABLRAM40i40
RAM40150
RAM40160
RAM40170
Z ARE ABOVE
BE MADE.1)
SUBROUTINE JMHARE RAM40190
C SUBROUTINE JMHARE (VERSION 80336), PART OF RAM. RAM40200
C THIS SUBROUTINE IS REFERRED TO AS K IN THE COMMON STATEMENTS RAM40210
C RAM40220
C THE FUNCTION OF THIS SUBROUTINE IS TO CALCULATE THE CONCENTRATIONS RAM40230
C AT EACH RECEPTOR DUE TO AREA SOURCES. THE HANNAH TECHNIQUE RAM40240
C IS USED TO EXAMINE THE AREA SOURCES ALONG AN UPWIND LINE FROM RAM40250
C THE RECEPTOR. SUBROUTINE JMHPOL IS CALLED TO INTERPOLATE CONG. RAM40260
C INPUT VARIABLES ARE ... RAM40270
C NHTS- THE NUMBER OF AREA SOURCE HEIGHTS. RAM40280
C XLIM- DISTANCE LIMIT ON AREA INTEGRATION RAM40290
C IDATE - YEAR AND JULIAN DAY(IN COMMON/METDAT/) RAM40300
C LH- HOUR RAM40310
C RAM40320
COMMON /AMOST/ DELH,FH,HINT(3),H,HL,IO,IOPT(50),KST,MUOR,NHTS,RC,RRAM40330
A--6G
-------
c
c
10
c
c
c
c
c
c
c
c
c
20
c
c
c
c
c
c
c
c
c
c
30
1CZ,SY,SZ,TEMP,TLOS,UPL,X,Y,Z RAM40340
COMMON /AEFGKM/ NRECEP,RREC(180),SREC(180),IDATE(2),LH,NPT RAM40350
COMMON /AEGIKM/ IPOL,CONTWO,SINT,COST,U,HANE,PL(S) RAM40360
COMMON /AEK/ ASORC(6,100) RAM40370
COMMON /AGK/ PARTC(250) RAM40380
COMMON /AK/ BPH(2),RMIN,SMIN,RMAX,SMAX,NAS,IRSIZE,ISSIZE,IA(25,25)RAM40390
1, IWD,IASIGS(100).NBP RAM40400
COMMON /AKL/ IH.NS.KREC RAM40410
COMMON /AKM/ BPHM(2),ACHI(180),AHCHI(ISO),ASIGS(180,11),AIISIGS(180RAM40420
1,11)
DIMENSION ADELR(4). ADELS(4)
DATA ADELR /O. 001,0. 001. -0.001. -0 .001/
DATA ADEIS /O. 001, -0. 001, -0.001,0. 001/
CALCULATE MODIFIED BREAK-POINT HEIGHTS,
DO 10 1=1, NBP
H-BPH(I)
IF NECESSARY
IF (FH.EQ.l.) GO TO 10
PHT=FH*H
UPL=U* (PHT/HANE ) **PL (KST)
IF (UPL.LT.l.) UPL=1.
BPHMf I) = ( (H-PHT) *5 . ) /UPL+PHT
CONTINUE
DELE: SMALL EAST-WEST INCREMENT DEPENDENT ON WIND DIRECTION
USED TO STEP INTO NEXT UPWIND AREA SOURCE.
DELR=ADELR(IWD)
DELS: SMALL NORTH-SOUTH INCREMENT DEPENDENT ON WIND DIRECTION
USED TO STEP INTO NEXT UPWIND AREA SOURCE
DELS=ADELS(IWD)
. SOUTHWEST CORNER OF AREA SOURCE
(1,1).
SUBTRACT 1
REGION WILL
RMINI=RMIN-1.
SMINI=SMIN-1.
SO THAT POINT IN
HAVE IA INDEX OF
LOOP ON RECEPTORS
UNITS FOR GEOMETRIC CALCULATIONS ARE INTERNAL UNITS.
DO 290 KREC=1,NRECEP
ZERO PARTIAL CONCENTRATION ARRAY
DO 20 1=1. NAS
PARTCfI)=0.0
XL=0.0
CONCL=0.0
IHL=0
SEARCH FOR UPWIND AREA SOURCES WHICH CONTRIBUTE TO THE K-TH
RECEPTOR, BEGINNING AT THE K-TH RECEPTOR LOCATION.
RRE=RREC(KREC)
SRE=SREC(KREC)
SUBTRACT MINIMUM AND STEP UPWIND INTO AREA SOURCE,
THEN INTEGERIZE TO ACCESS SOURCE NUMBER IN IA ARRAY.
IR=RRE-RMINH-DELR
IS=SRE-SMINI+DELS
IS RECEPTOR WITHIN DEFINED LIMITS?
IF ((RRE.LE.RMIN).OR.(RRE.GE.RMAX)) GO TO 230
IF ((SRE.LE.SMIN).OR.(SRE.GE.SMAX)) GO TO 230
RECEPTOR IS WITHIN AREA SOURCE REGION.
DETERMINE SOURCE NUMBER,NS, SOURCE CENTER(RC,SC),
HALF OF SOURCE SIDE LENGTH,D, SOURCE STRENGTH,QA, AND
SOURCE HEIGHT, HA.
IF ((IR.LE.O).OR.riR.GT.IRSIZE)) GO TO 280
IF ((IS.LE.O).OR.(IS.GT.ISSIZE)) GO TO 280
NS=IA(IR,IS)
DO ONLY GEOMETRIC CALCULATIONS IF NS = 0.
IF (NS.EQ.O) GO TO 60
D=ASORC(5,NS)
RC=ASOFC(1,NS}+D
SC=ASORC(2,NS)+D
QA=ASORC(IPOL,NS)
RAM40430
RAM40440
RAM40450
RAM40460
RAM40470
nAM40480
RAM40500
RAM40510
RAM40520
RAM40530
RAM40540
RAM40550
RAM40560
RAM40570
RAM40580
RAM40590
RAM40600
RAM40610
RAM40620
RAM40630
RAM40640
RAM40650
RAM40660
RAM40670
RAM40680
RAM40690
RAM40700
RAM40710
RAM40720
RAM40730
RAM40740
RAM40750
RAM40760
RAM40770
RAM40780
RAM40790
RAM40800
RAM40810
RAM40820
RAM40830
RAM40840
RAM40850
RAM40860
RAM40870
RAM40880
RAM40890
RAM40900
RAM40910
RAM40920
RAM40930
RAM40940
RAM40950
RAM40960
RAM40970
RAM40980
RAM40990
RAM41000
RAM41010
RAM41020
RAM41030
A-67
-------
c
c
c
c
c
c
c
40
50
C
c
c
60
C
70
C
C
80
C
'C
90
100
C
C
110
C
c
120
130
C
140
C
C
C
C
C
150
C
C
C
160
170
HA=ASORC(6,NS)
IF fOA.LE.0.0) GO TO 70
USE POWER LAW DEPENDENT ON STABILITY CLASS TO MODIFY WIND
AT EFFECTIVE HEIGHT OF STACK.
VARY EFFECTIVE HEIGHT(M) ACCORDING TO WIND SPEED
HA- EFFECTIVE AREA SOURCE HEIGHT(M)
FH- FRACTION OF HA WHICH IS PHYSICAL HEIGHT
PHT- PHYSICAL STACK HEIGHT(M)
(HA-PHT) IS PLUME RISE
FHT=FH*HA
THT=PHT
IF (PHT.LT.l.) THT=1.
UPL=U*(THT/HANE)**PL(KST)
IF (UPL.LT.l.) UPL=1.
HA=((HA-PHT)*5.)/UPL+PHT
DETERMINE HEIGHT CLASS
IH=NHTS
NHTS ,
IH=2
IH=1
SPEED
GO TO (70,50.40).
" -".BPHM(2)
IF £HA.LT.BPHM(1)
IF (HA.LT.
RAM41040
RAM41050
RAM41060
RAM41070
RAM41080
HAM41090
RAM41100
RAM41110
RAM41120
RAM41130
RAM41140
RAM41150
RAM411GO
RAM41170
RAM41180
RAM41100
RAM41200
RAM41210
RAM41220
RAM41230
GO tO 70 " " RAM4124C
SINCE SOURCE NO. IS ZERO, CALCULATE COORDINATES OF SOURCE CENTERRAM41250
AND DEPENDING ON WIND DIRECTION BRANCH TO CODE WHICH DETERMINES RAM412BO
THE NEXT AREA SOURCE IN THE UPWIND DIRECTION. RAM41270
D=.5 RAM41230
RC=FLOAT(IR)+RMINI+D HAM41290
SC=FLOAT(IS) KSMINI+D RAM41300
IWD IS 1 FOR THETA LESS THAN 90 DEG., 2 FOR 90-180 DEC, ETC. RAM41310
GO TO (80,90,110,120), IWD RAM41320
IWD=I RAM41330
DETERMINE TWO UPWIND BOUNDARIES(NORTH AND EAST). RAM41340
SB=SC+D RAM41350
GO TO 100 RAM41360
IWD=2 . RAM41370
DETERMINE TWO UPWIND BOUNDARIES(SOUTH AND EAST). RAM41380
SB=SC-D RAM41390
RB=RC+D RAM41400
GO TO 140 RAM41410
IWD=3 RAM41420
DETERMINE TWO UPWIND BOUNDARIES(SOUTH AND WEST). RAM41430
SB=SC-D RAM41440
GO TO 130 RAM41450
IWD=4 RAM41460
DETERMINE TOO UPWIND BOUNDARIES(NORTH AND WEST). RAM41470
SB=SC+D RAM41480
RB=RC-D RAM41490
FIND LOCUS OF UPWIND RAY AND CLOSEST BORDER RAM41500
IF (SINT.EQ.O.I GO TO 160 RAM41510
IF SIN=0. NORTH OR SOUTH BOUNDARY IS APPROPRIATE. RAM41520
XD1=(RB-RRE)/SINT RAM41530
XD1 IS DISTANCE(USER UNITS) TO EAST OR WEST BOUNDARY, RAM41540
WHICHEVER IS UPWIND. RAM41550
IF (COST.EQ.O.) GO TO 170 RAM41560
IF COS=0. EAST OR WEST BOUNDARY IS APPROPRIATE. RAM41570
XD2=(SB-SRE)/COST RAM41580
XD2 IS DISTANCE(USER UNITS) TO NORTH OR SOUTH BOUNDARY, RAM41590
WHICHEVER IS UPWIND. RAM41600
IF (XD1.LT.XD2) GO TO 170 RAM41610
RDUM=RRE+XD2*SINT+DELR RAM41620
SDUM=SB+DELS RAM41630
RDUM.SDUM ARE COORDINATES OF INTERSECTION WITH BOUNDARY PLUS RAM41640
SMALL INCREMENTS TO STEP INSIDE NEXT UPWIND SOURCE. RAM41650
DIST=XD2 RAM41660
DIST IS DISTANCE TO NEAREST BORDER. RAM41670
GO TO 180 RAM41680
XD2=(SB-SRE)/COST RAM41690
GO TO 150 RAM41700
RDUM=RB+DELR RAM41710
SDUM=SRE+XD1*COST+DELS RAM41720
DIST=XD1 RAM41730
A-68
-------
180 DIST=DIST*CONTWO RAM41740
C DIST IS IN KM. RAM41750
C IF SOURCE NO. IS ZERO, PASS ON TO NEXT UPWIND AREA SOURCE RAM4I760
IF (NS.EQ.O) GO TO 210 RAM41770
C IF EMISSION RATE < 10E-10, POLLUTANT CONTRIBUTION WILL BE RAM41780
C INSIGNIFICANT. GO ON TO NEXT UPWIND AREA SOURCE. RAM41790
IF (QA.LE.10.0E-10) GO TO 210 RAM41800
C (A SUBSTANTIAL SAVINGS IN COMPUTATION TIME IS EFFECTED IF A LARGERAM41810
C AREA WITH NO EMISSIONS IS DEFINED WITH A ZERO SOURCE STRENGTH RAM41820
C AS OPPOSED TO LEAVING THE AREA UNDEFINED.THUS DEFAULTING TO THERAM418IJO
C MIN.GRID SQ.SIZE WHEN SEARCHING FOR THE NEXT UPWIND SOURCE. )USERAiM41840
C THIS SOURCE TO RECEPTOR DISTANCE AND HEIGHT CLASS TO GET A VALUERAM41850
C FOR INTEGRATED XU/Q TO THIS DISTANCE BY INTERPOLATING IN TABLE RAM41860
C OF PRECALCULATED CHIW/Q VALUES. SUBROUTINE JMHPOL PERFORMS THERAM41870
C INTERPOLATION. RAM41880
CALL JMHPOL 'DIST.CONA) KAM41300
C XL(KM) IS THE UPWIND DISTANCE TO THE LAST INTERSECTION WITH A HAM41000
C .BOUNDARY POINT. RAM41910
IF (XL.LE.O) GO TO 190 RAM41920
IF (IH.NE.IHL) CALL JMHPOL (XL.CONCL) RAM41930
190 DIFF=CONA-CONCL RAM41940
C THE CHI*U/Q DIFFERENCE IS MULTIPLIED BY EMISS. RATE AND DIVIDEDRAM41950
C BY WIND SPEED WHICH HAS BEEN MOD.BY THE POWER LAW TO THE PROPERRAM41960
C HEIGHT.THIS CALCULATED VALUE,PROD,IS THE CONTRIBUTION OF SOURCERAM41970
C NS TO THE TOTAL POLLUTANT CONCENTRATION AT THE K-TH RECEPTOR. RAM41980
PROD=QA*DIFF/UPL RAM41990
ACHI(KREC)=ACHI(KREC)+PROD RAM42000
AHCHI{KREC)=AHCHI(KREC)+PROD RAM42010
KSIG=IASIGS(NS) RAM42020
IF (KSIG.EQ.O) GO TO 200 RAM42030
C IF THE SOURCE IS SIGNIFICANT, STORE PARTIAL CONCENTRATION RAM42040
ASIGS(KREC,KSIG)=ASIGS(KREC,KSIG)+PROD RAM42050
AHSIGS(KREC.KSIG)=AHSIGS(KREC,KSIG)+PROD RAM42060
ASIGS(KREC,11}=ASIGS(KREC,11}+PROD RAM42070
AHSIGS(KREC,li)=AHSIGS(KREC,ll)+PROD RAM42080
200 CONCL=CONA RAM42090
C SAVE PARTIAL CONCENTRATION FOR ALL SOURCES RAM42100
PARTC(NS)=PROD RAM42110
IHL=IH RAM42120
GO TO 220 RAM42130
210 IHL=0 RAM42140
220 XL=DIST RAM42150
C IS THIS POINT OUTSIDE SOURCE REGION? RAM42160
IF ((RDUM.LE.RMIN).OR.(RDUM.GE.RMAX)} GO TO 280 RAM42170
IF ((SDUM.LE.SMIN).OR.(SDUM.GE.SMAX)} GO TO 280 RAM42180
C IR.IS ARE IA INDICES FOR NEXT SOURCE RAM42190
IR=RDUM-RMINI RAM42200
IS=SDUM-SMINI RAM42210
GO TO 30 RAM42220
C RAM42230
C RECEPTOR IS OUTSIDE AREA SOURCE REGION. RAM42240
C RAM42250
230 DXMIN=99999. RAM42260
C FIND THE INTERSECTION OF THE UPWIND AZIMUTH FROM THE RECEPTOR TORAM42270
C THE NEAREST BORDER OF THE AREA SOURCE REGION. RAM42280
ICNT=0 RAM42290
RM=RMIN RAM42300
C FIND LOCUS FOR RMIN, THEN RMAX RAM42310
DO 250 L=l,2 RAM42320
RMR=RM-RRE RAM42330
C IF SINT IS ZERO, THERE IS NO LOCUS WITH THIS BOUNDARY. RAM42340
IF (SINT.EQ.O.) GO TO 240 RAM42350
C FIND NORTH COORDINATE OF LOCUS. RAM42360
S=RMR*COST/SINT+SRE RAM42370
IF (S.GT.SMAX) GO TO 240 RAM42380
IF (S.LT.SMIN) GO TO 240 RAM42390
C FIND DISTANCE FROM RECEPTOR TO LOCUS. RAM42400
DX=RMR*SINT-KS-SRE_)*COST RAM42410
C IF DISTANCE IS NEGATIVE, THIS IS A DOWNWIND LOCUS, NOT UPWIND. RAM42420
IF (DX.LT.O.) GO TO 240 RAM42430
A-69
-------
C IS THIS DISTANCE SHORTER THAN A PREVIOUS LOCUS? RAM42440
IF (DX.GE.DXMIN} GO TO 240 RAM42450
RLOC=RM RAM42460
SLOC=S RAM42470
DXMIN=DX RAM42480
C COUNT THE NUMBER OF LOCI FOUND. RAM42490
ICNT=ICNT+1 RAM42500
240 RM=RMAX RAM42510
250 CONTINUE RAM42520
SM=SMIN RAM42530
C FIND LOCUS FOR SMIN, THEN SMAX. RAM42540
DO 270 L=3,4 RAM42550
SMS=SM-SRE RAM42560
C IF COSINE IS ZERO, THERE IS NO LOCUS WITH THIS BOUNDARY. RAM42570
IF (COST.EQ.O.) GO TO 260 RAM42580
C FIND EAST COORDINATE OF LOCUS. RAM42300
R=SMS*SINT/COST+RRE RAM42600
IF (R.GT.RMAX) GO TO 260 RAM42610
IF (R.LT.RMIN) GO TO 260 RAM42620
C FIND DISTANCE FROM RECEPTOR TO LOCUS. RAM42630
DX=(R-RRE)*SINT+SMS*COST RAM42640
C IF DISTANCE IS NEGATIVE, THIS IS A DOWNWIND LOCUS, NOT UPWIND. RAM42650
IF (DX.LT.O.) GO TO 260 RAM42660
C IS THIS DISTANCE SHORTER THAN A PREVIOUS LOCUS? RAM42670
IF (DX.GE.DXMIN) GO TO 260 RAM42680
RLOC=R RAM42690
SLOC=SM RAM42700
DXMIN=DX RAM42710
ICNT=ICNT+1 RAM42720
260 SM=SMAX RAM42730
270 CONTINUE RAM42740
C IF ICNT=0 NO LOCI WERE FOUND, THEREFORE NO AREA SOURCE CONTRIB. RAM42750
C AT THIS RECEPTOR. RAM42760
IF (ICNT.EQ.O) GO TO 280 RAM42770
DIST=DXMIN ' RAM42780
C FIND THE DISTANCE TO THE NEAREST SOURCE IN KM RAM42790
C FIND CO-ORDINATES TO LOCATE SOURCE RAM42800
C DIST IS IN INTERNAL UNITS. RAM42810
XL=DIST*CONTWO RAM42820
C XL IS IN KM. RAM42830
C IR AND IS NOW ARE COORDINATES OF A POINT LYING IN THE NEXT RAM42840
C UPWIND AREA SOURCE. RAM42850
IR=RLOC+DELR-RMINI RAM42860
IS=SLOC+DELS-SMINI RAM42870
GO TO 30 RAM428SO
C WRITE PARTIAL CONCENTRATIONS TO DISK RAM42890
280 IF UOPT(40).EQ.O) GO TO 290 RAM42900
WRITE (10) IDATE,LH,KREC,(PARTC(J),J=1,NAS) RAM42910
290 CONTINUE RAM42920
RETURN RAM42930
C RAM42940
END RAM42950
C
SUBROUTINE JMHPOL (X.CON) RAM42970
C SUBROUTINE JMHPOL (VERSION 80336), PART OF RAM. RAM42980
C THIS SUBROUTINE IS REFERRED TO AS L IN THE COMMON STATEMENTS RAM42990
C INTERPOLATE FROM PRECALCULATED AREA TABLES. RAM43000
C THIS SUBROUTINE INTERPOLATES FROM A TABLE OF INTEGRATED VALUES RAM43010
C TO DETERMINE THE CONCENTRATION AT A RECEPTOR FROM AN AREA SOURCE RAM43020
C AT A GIVEN DISTANCE AND HEIGHT RAM43030
C INPUT VARIBALES ARE... RAM43040
C X - UPWIND DISTANCE IN KM. RAM43050
C IH - THE HEIGHT INDEX. • RAM43060
C CON - RELATIVE CON. NORMALIZED FOR WIND SPEED, CHI*U/Q. RAM43070
C NS - CURRENT SOURCE NUMBER RAM43080
C KREC - CURRENT RECEPTOR NUMBER RAM43090
C XLIM - MAXIMUM DISTANCE FOR INTERPOLATION IN AREA TABLES RAM43100
C RAM43110
COMMON /AIL/ CIN(3,200),XLIM RAM43120
COMMON /AKL/ IH.NS.KREC RAM43130
A-70
-------
DATA 10 /6/
C
C
10
C
C
20
C
C
C
C
30
40
C
C
C
C
50
60
C
70
IF (X.LT.0.01) GO TO 50
IF (X.< '"
C
C
C
C
C
C
C
C
C
C
.GE.0.5) GO TO 10
FOR DISTANCES < 500M, CON. WAS STORED EVERY 10M.
STORAGE LOCATIONS 1-50 CONTAIN INTEGRATED CON. FOR 10 TO 500M.
J=100.*X
D=J
XL=D/100.
XU=XL+0.01
GO TO 40
IF (X.GE.3.) GO TO 20
FOR DISTANCES FROM 500 TO 3.000KM CON. WAS STORED EVERY 100M.
RAM43140
RAM43150
HAM431GO
RAM43170
RAM43180
RAM43190
RAM43200
RAM43210
RAM43220
RAM43230
RAM43240
RAM43250
i W4.1 U JLU I.C\L*\JL±U X ilVSl'I *^WV/ XV W . Wt/WXU'l WV11 . rrfUJ U ±\Jl\.l±U JJ ¥ 1J1L I J. VWl'J . tljCliTJ*T U ±*'J\J
STORAGE LOCATIONS 50-75 CONTAIN INTEGRATED CON. FOR 0.5 TO 3. KM.RAM43260
J=IFIX(10.*X)+45
D=J-45
.\L-LJ iU.
XU---XL-O.I
GO TO 40
IF (X.GE.15.) GO TO 30
FOR DISTANCES 3 TO 15 KM, CON. WAS STORED EVERY 500M.
STORAGE LOCATIONS 75-99 CONTAIN INTEGRATED CON. FOR 3 TO 15 KM.
J=IFIX(2.*X)+69
D=J-69
XL=D/2.
XU=XL+0.5
GO TO 40
FOR DISTANCES > 15,DOOM CON. WAS STORED EVERY 1000M.
RAM43270
RAM43280
RAM43290
RAM43300
RAM43310
RAM43320
RAM43330
RAM43340
RAM43350
RAM43360
RAM43370
RAM43380
RAM43390
RAM43-10G
E V/Jl Lf JL*J J. *1I1 V Kt iJ S ±\J « V/Wl I \^\/i» • TFZlhJ U X\^J,UUJ^ UVUJ.LJ. J. v V/ \Jl'l • IL*U J f •.' J W v,1
STORAGE LOCATIONS 99-200 CONTAIN INTEGRATED CON. FOR 15 TO 116KM.RAM43410
IF (X.GT.XLIM) GO TO 60 RAM-13-120
J=IFIX(X)+84 RAM43430
XL=J-84 RAM43440
XU=XL+1. RAM43450
K=J+1 RAM43460
RETRIEVE CONCENTRATIONS FOR INTERPOLATION ACCORDING TO HEIGHT RAM43470
CLASS AND DISTANCE OUT. RAM43480
C1=CIN(IH,J) RAM43490
CON=C1+((X-XL)/(XU-XL))*(CIN(IH,K)-C1) RAM43500
RETURN RAM43510
FOR DISTANCES < 100M, CON. WAS STORED IN GIN EVERY 10 M. RAM43520
STORAGE LOCATION 1 CONTAINS INTEGRATED CON. FOR 10 M. RAM43530
CON=100.*X*CIN(IH,1) RAM43540
RETURN RAM43550
WRITE (10,70) XLIM,NS,KREC RAM43560
CALL WAUDIT
STOP
FORMAT (' ***THE INPUT VALUE OF XLIM,',F10.2.
IE CALCULATED DISTANCE FROM AREA SOURCE ',14,*
2*'/1X,'PLEASE REDEFINE XLIM')
END
RAM43570
RAM43580
', IS SMALLER THAN THRAM43590
TO RECEPTOR ',14,'**RAM43600
RAM43610
RAM43620
RAM43630
SUBROUTINE OUTPT RAM43650
SUBROUTINE OUTPT (VERSION 80336). PART OF RAM. RAM43660
THIS SUBROUTINE IS REFERRED TO AS M IN THE COMMON STATEMENTS RAM43670
THIS SUBROUTINE PROVIDES OUTPUT CONCENTRATIONS IN RAM43680
MICROGRAMS PER CUBIC METER FOR EACH HOUR IN TWO WAYS: RAM43690
1) CONTRIBUTIONS FROM SIGNIFICANT SOURCES, AND RAM43700
2) SUMMARIES. RAM43710
BEYOND ENTRY POINT OUTAV THE SUBROUTINE PROVIDES RAM43720
CONCENTRATION OUTPUT FOR EACH AVERAGING PERIOD AGAIN RAM43730
IN THE ABOVE MANNER. RAM43740
RAM43750
C->->->->SECTION OUTPT.A - COMMON, DIMENSION, AND DATA. RAM43760
C RAM43770
COMMON /AMOST/ DELH,FH,HINT(3),H,HL,10,IOPT(50),KST,MUOR,NHTS,RC,RRAM43780
ICZ.SY.SZ.TEMP.TLOS.UFL.X.Y.Z RAM43790
COMMON /AEFM/ ITYPE(180),ICODE(180).UNITS.RREU(180),SREU(180) RAM43800
COMMON /AEFGKM/ NRECEP,RREC(180),SREC(180),IDATE(2),LH.NPT RAM43810
COMMON /AEGIKM/ IPOL,CONTWO,SINT>COST,U,HANE,PL(6) RAM43820
A-71
-------
COMMON /ASM/ NSIGP,MPS(25),NSIGA,MAS(10) RAM43830
COMMON /AGM/ PSAV(250),HSAV(250),DH(250).DSAV(250).UPIK250).HFR(25RAM43840
lO),FP(250),PCHia80)lPHCHI(180),PSIGS(180,26),PHSIGS(180,265,IPSIGHAM43850
2S(250),GRANDT(180) RAM43860
COMMON /AIM/ HARE(3) RAM43870
COMMON /ARM/ BPHM(2),ACHI(180),AHCHI(180),ASIGS(180,11),AHSIGS(180RAM43880
1,11) HAM43890
COMMON /AM/ LINEK20), LINE2(20), LINE3(20). IPOLU,QTHETA(24) ,QU(24),RAM43900
1QHL(24).QTEMP(24).IKST(24),NAVG,NB1HNAME(2,180)
DIMENSION IRANK(180)
DIMENSION GRANDS(180)
C->->->->SECTION OUTPT.B - HOURLY CONTRIB. OUTPUT FROM PT. SOURCE
C
C SKIP IF THERE ARE NO POINT SOURCES
IF ::OPT.,5}.EQ.O) GO TO 100
C
C->->->->SECTION OUTPT.B(l) DELETE HOURLY PT. SOURCE CONTRIB. OUTPUT?
IF (IOPT(25).EQ.l) GO TO 100
C
C PRODUCE POINT SOURCE CONTRIBUTION TITLE
WRITE (10,390) LINE1.LINE2,LINES
WRITE (10,410) IPOLU.IDATE.LH
C->->->->SECTION_OUTPT1B(2) - DELETE MET. DATA FROM HOURLY PT.
C
C
C
C
10
C
SOURCE OUTPUT?
IF (IOPT(26).EQ.l) GO TO 10
PRODUCE HOURLY MET. DATA
WRITE (10,530)
WRITE (10,540) IH,QTHETA(LH),QU(LH),QHL(LH),QTEMP(LH),IKST(LH)
WRITE (10,520) HANE,PL(KST)
C->->->->SECTION_OyTPT.B(3) - DELETE FINAL PLUME HT. AND DIST.
C
C
C
C
C
C
FINAL RISE?
IF (IOPT(27).EQ.l) GO TO 20
PRODUCE FINAL PLUME HT. AND DIST. TO FINAL RISE
WRITE (10.550) (1,1=1,10)
HSAV ARE CALCULATED PLUME HEIGHTS FOR THIS HOUR
WRITE (10,560) ?HSAV(I),I=1,NPT)
DSAV ARE DISTANCES TO FINAL RISE FOR THIS HOUR.
WRITE (10,570) (DSAV(I),I=1,NPT)
TO
C->->->->SECTION OUTPT.B(4) - PRINT POINT CONTRIBUTIONS
C
20
C
IF (NSIGP.GT.10) GO TO 40
RAM43910
RAM43920
RAM43930
RAM43940
RAM43950
RAM439GO
RAM43970
I7.1M43980
RAM43990
RAM44000
RAM44010
RAM44020
RAM44030
RAM44040
RAM44050
RAM44060
RAM44070
RAM440HO
RAM44090
RAM44100
RAM44110
RAM44120
RAM44130
RAM44140
RAM44150
HAM441BO
RAM44170
RAM44180
RAM44190
RAM44200
RAM44210
RAM44220
RAM44230
RAM44240
RAM44250
RAM44260
RAM442-7Q
RAM44280
RAM44290
RAM44300
RAM44310
WRITE
WRITE
WRITE
WRITE
WRITE
PRINT OUT FIRST PAGE AND TOTALS FOR 10 OR < SIGNIF. SOURCES RAM44320
10,430
10,440
10,460
10,440
10,470
DO 30 K=1,NRE
(I,I=1,NSIGP)
(MPS(I),I=1,NSIGP)
EP
C
30
C
C
40
50
WRITE (10,480) K,(PHSIGS(K,I),I=1,NSIGP)
WRITE (10,490) PHSIGS(K,26),PHCHI(K)
CONTINUE
GO TO 100
PRINT FIRST PAGE FOR MORE THAN 10 SIGNIFICANT SOURCES.
WRITE (10,430)
WRITE (10,440) (1,1=1.10)
WRITE (10,500) (MPS(lJ,I=l,10)
WRITE (10,470)
DO 50 K=1,NRECEP
WRITE (10,480) K,(PHSIGS(K,I),1=1,10)
IF (NSIGP.GT.20) GO TO 70
RAM44330
RAM44340
RAM44350
RAM44360
RAM44370
RAM44380
RAM44390
RAM44400
RAM44410
RAM44420
RAM44430
RAM44440
RAM44450
RAM44460
RAM44470
RAM44480
RAM44490
RAM44500
RAM44510
RAM44520
A-72
-------
C
C
60
C
C
PRINT SECOND PAGE AND TOTALS FOR 11 TO
WRITE (10,390 LINE1.LINE2,LINES
WRITE (10,410 IPOLU.IDATE.LH
10 430
10,440
10,460
10,440
10,470
:=1,NRECEP
10,480^ K,(riISIGS(K.I),I=ll,NSIGP)
10,490) PHSIGS(K,26),PHCHI(K)
00
WRITE
WRITE
WRITE
WRITE
WRITE
DO 60
WRITE
WRITE
GO TO
(I,I=11,NSIGP)
(MPS(I),I=11,NSIGP)
WRITE SECOND PAGE FOR MORE THAN 20 SIGNIFICANT SOURCES
80
C
C
WRITE ;10,390
WRITE (10,410
WRITE (10,430
WRITE ""
WRITE
WRITE
DO 80
WRITE
WRITE
WRITE
WRITE
LINE1.LINE2,LINES
IPOLU.IDATE.LH
10,440
10,500
10,470
=1,NRECEP
10,480 "
10,390
10,410
10,430
(1,1=11,20)
(MPS(I),I=ll,20)
K, (PHSIGS(K,I),I=11,20)
LINE1.LINE2,LINES
IPOLU.IDATE.LH
WRITE LAST PAGE AND TOTALS
WRITE (10,440) (I,I=21,NSIGP)
WRITE (10,460)
WRITE (10,440) (MPS(I),I=21,NSIGP)
WRITE (10,470)
DO 90 K=1,NRECEP
WRITE (10,480) K,(PHSIGS(K.I),I=21,NSIGP)
90 WRITE (10,490) PHSIGS(K,26),PHCHI(K)
C
C->->->->SECTION OUTPT.C - HOURLY CONTRIB. FROM AREA SOURCE
C
C
SKIP IF THERE ARE
IF (IOPT(6).EQ.O) GO TO
NO AREA SOURCES
130
c
100
C
C
C
C
•C
C
C
C
c->
C
110
>->->SECTION OUTPT.C(l) - DELETE HOURLY AREA CONTRIB.?
IF (IOPT(28).EQ.l) GO TO 130
PRODUCE AREA SOURCE CONTRIB. TITLE
WRITE (10,390) LINE1.LINE2,LINES
WRITE (10,420) IPOLU.IDATE.LH
>->->SECTION OUTPT.C(2) - DELETE HOURLY AREA MET.
IF (IOPT(29).EQ.l) GO TO 110
AREA SOURCE MET. DATA
PRODUCE HOURLY
WRITE (10,530)
WRITE (10,540) LH,QTHETA(LH),QU(LH),QHL(LH),QTEMP(LH),IKST(LH)
RAM44530
20 SIGNIFICANT SOURCESRAM44540
RAM44550
RAM44560
RAM44570
RAM44580
RAM44590
RAM44600
RAM44610
RAM44620
RAM44630
RAM44640
RAM44650
RAM446GO
RAM44670
RAM44G80
RAM44690
RAM44700
RAM44710
RAM44720
RAM44730
RAM44740
RAM44750
RAM44760
RAM44770
RAM44780
RAM44790
FOR MORE THAN 20 SIGNIF. SOURCES.RAM44SOO
RAM44810
RAM44820
RAM44830
RAM44840
RAM44850
RAM44860
RAM44870
RAM44880
RAM44890
RAM44900
RAM44910
RAM44920
RAM44930
RAM44940
RAM44950
RAM44960
RAM44970
RAM44980
RAM44990
RAM45000
RAM45010
DATA RAM45020
RAM45030
RAM45040
RAM45050
RAM45060
RAM45070
RAM45080
RAM45090
->->->SECTION OUTPT.C(3) - PRINT AREA CONTRIBUTIONS
120
C
HANE,PL(KST)
HARE.BPHM
(I,I=1,NSIGA)
(MAS(I),I=1,NSIGA)
CEP
WRITE (10,480) K,(AHSIGS(K.I),I=1.NSIGA)
WRITE (10,490) AHSIGS(K,11),AHCHI(K)
WRITE
WRITE
WRITE
WRITE
WRITE
WRITE
WRITE
DO 120
10,520
10,400
10,430
10,440
10,450
10,440
10,470
K=1,NR
RAM45100
RAM45110
RAM45120
RAM45130
RAM45140
RAM45150
RAM45160
RAM45170
RAM45180
RAM45190
RAM45200
RAM45210
RAM45220
A-73
-------
C
130
C
C
C->->->->SECTION OUTPT.D - HOURLY SUMMARY TABLE
C
>->->SECTION OUTPT.D(1) - DELETE HOURLY SUMMARIES?
IF (IOPT(30).EQ.l) RETURN
PRODUCE HOURLY SUMMARY TITLE
WRITE (10,390) LINE1.LINE2,LINES
WRITE (10,510) IPOLU,IDATE,LH
C
C->->->->SECTION OUTPT.D(2) - DELETE HOURLY MET. DATA?
C
IF (IOPT(31).EQ.l) GO TO 140
C PRODUCE HOURLY SUMMARY TABLE MET. DATA
WRITE (10,530}
';niTr , 10, "40} LH, QTHETA(LII), QU(LII} , QHL(LII), QTEMP(LH) , IIIST (LII
140 WRITE (10.520) HANE.PL(KST)
IF (IOFT,'o).EQ.l) WRITE (10,400) HARE.BPHM
WRITE (10,580)
RAM45230
RAM45240
RAM45250
RAM45260
RAM45270
RAM45280
RAM45290
RAM45300
RAM45310
RAM45320
RAM45330
RAM45340
RAM45350
RAM45360
RAM45370
C->->->->SECTION OUTPT.D(3) - RANK CONCENTRATIONS
150
C
160
DO 150 K=1,NRECEP
GRANDS (K)^--GRANDT(K)
DO 170 I=1,NRECEP
CMAX=-1.0
DO 160 K=1,NRECEP
IF (GRANDTUO.LE.CMAX) GO TO 160
CMAX=GRANDT(K)
IMAX=K
CONTINUE
IRANK(LMAX)=I
GRANDT(LMAX)=-1.0
CONTINUE
170
C
C->->->->SECTION OUTPT.D(4) - PRINT SUMMARY TABLE
C
180
DO 180 K=1,NRECEP
RAM45390
RAM'15400
RAM45410
RAM45420
RAM45430
nAM-15440
RAM45450
RAM45460
RAM45470
RAM-15-180
RAM45490
RAM45300
RAM45510
RAM45520
RAM45530
RAM45540
RAM45350
RAM45560
RAM45570
RAM45580
RAM45590
RAM45600
RAM45610
ICODE(K),(RNAME(J,K).J=l,2),RREU(K),SREUHAM45620
C
C
C->->->->SECTION OUTPT.E - ENTRY POINT FOR AVERAGING TIME
C
C
C
C
C
C
C
C
C
C
ENTRY OUTAV
AT THIS ENTRY POINT, CONCENTRATION OUTPUT
IN MICROGRAMS PER CUBIC METER ARE PRINTED FOR THE
AVERAGING PERIOD. CONTRIBUTIONS AND/OR SUMMARY
INFORMATION IS AVAILABLE.
;->->->->SECTION OUTPT.E(l) - AVG. CONC. OVER SPEC. TIME PERIOD
190
200
210
C
C->
C
C
C
M\S X WV IV— J. • 111LU\> LJl
WK-L lEi \ L\J 9 OyUy K j iTYPCi ( K/ > xww^iyjLJ ^ii/ . i iuv/u-j-u \^^ >I4y t *-* ~~ *- > ** J j iiiui \J \L\S , fjinj ui»-iiu*±--'Wi-L/
UK),PHSIGS(K,26),PHCHI(K),AHSIGS(K,11),AHCHI(K),GRANDS(K),IRANK(K)RAM45630
RETURN RAM45640
RAM45650
RAM45660
RAM45670
RAM45680
RAM45690
RAM45700
RAM45710
RAM45720
RAM45730
RAM45740
RAM45750
RAM45760
RAM45770
SKIP IF THERE ARE NO POINT SOURCE CONTRIBUTIONS PRINTED OUT RAM45780
IF (IOPT?5).EQ.O) GO TO 290 RAM45790
CALCULATE AVERAGE POINT CONTRIBUTIONS. RAM45800
DO 190 K=1.NRECEP RAM45810
PSIGS(K,26}=PSIGS(K,26)/NAVG RAM45820
IF 7lOPT(33).EQ.l) GO TO 290 RAM45830
DO 210 K=1,NRECEP RAM45840
DO 200 I=1,NSIGP RAM45850
PSIGS(K,I)=PSIGS(K,I)/NAVG RAM45860
CONTINUE RAM45870
RAM45880
->->SECTION OUTPT.F - AVG. PERIOD PT. CONTRIB. RAM45890
SKIP IF THERE ARE NO POINT SOURCES RAM45900
RAM45910
RAM45920
A-74
-------
C-N-'
c
c
c
220
C
c
230
240
C
C
250
C
C
260
270
C
C
280
C
^->->SECTION OUTPT.F(2) - PRINT AVG. PERIOD PT. SOURCE CONTRIB.
WRITE (10,390) LINE1.LINE2, LINES
WRITE (10,600) NAVG.IPOLU.IDATEjNB.HANE.PL
IF (NSiGP.GT.10) GO TO 230
PRINT OUT FIRST PAGE AND TOTALS FOR 10 OR < SIGNIF. SOURCES
WRITE 10,440) (I,I=1,NSIGP)
WRITE 10,460)
WRITE 10,440) (MPS(I),I=1,NSIGP)
WRITE 10.470)
DO 220 K=i,NRECEP
WRITE (10,480) K,(PSIGS(K,I),I=1,NSIGP)
PRINT TOTAis
WRITE (10,490) PSIGS(K,26),PCHI(K)
GO TO 290
PRINT FIRST PAGE FOR MORE THAN 10 SIGNIF SOURCES
WRITE (10,440) (1,1=1.10)
WRITE (10,500 (MPS(I),I=1,10)
WRITE ( 10. 4701
DO 240 K-i,NRECEP
WRITE (10,480) K, (PSIGSfK. I) , 1=1, 10)
IF (NSIGP.GT.20) GO TO 260
PRINT SECOND PAGE AND TOTALS FOR 11 TO 20 SIGNIF SOURCES
WRITE 10,390 LINE 1.LINE2, LINES
WRITE 10,600 NAVG,IPOLU,IDATE,NB,HANE,PL
WRITE 10,440 (I,I=11,NSIGP)
WRITE 10,460
WRITE 10,440 (MPS(I),I=11,NSIGP)
WRITE 10.470
DO 250 K=1.NRECEP
WRITE (10,480) K, (PSIGS(K. I) , I~11.NSIGP)
WRITE (10,490) PSIGS(K,26),PCHI(K)
GO TO 290
WRITE SECOND PAGE FOR MORE THAN 20 SIGNIF SOURCES
WRITE 10,390) LINE1.LINE2, LINES
WRITE 10,600) NAVG,IPOLU.IDATE,NB,HANE,PL
WRITE 10,440) (1,1=11,20]
WRITE 10,500) (MPS(I),I=ll,20)
WRITE 10. 470)
DO 270 K=1,NRECEP
WRITE (10,480) K, (PSIGS(K, I) , 1=11,20)
WRITE LAST PAGE AND TOTALS FOR MORE THAN 20 SIGNIF SOURCES
WRITE 10,390) LINE1.LINE2, LINES
WRITE 10,600) NAVG,IPOLU,IDATE,NB,HANE,PL
WRITE 10,440) (I,I=21,NSIGP)
WRITE 10,460)
WRITE 10,440) (MPS(I),I=21,NSIGP)
WRITE 10 . 4701
DO 280 K=I,NRECEP
WRITE (10,480) K.rPSIGSfK. Il,I=21.NSIGP)
WRITE (10,490) PSIGS(K,26),PCHI(K)
C->->->->SECTION OUTPT.G - AVG. PERIOD AREA CONTRIB.
C
C->->->->SECTION OUTPT.G(l) - DELETE AVG. PERIOD AREA SOURCE CONTRIB?
290
C
300
310
320
C
IF (IOPT(6).EQ.O) GO TO 340
CALCULATE AVERAGE AREA CONTRIBUTIONS.
DO 300 K=1,NRECEP
ASIGS(K,11)=ASIGS(K,11)/NAVG
IF fIOPT(34).EQ.l) GO TO 340
DO 320 K=1,NRECEP
DO 310 I=1,NSIGA
ASIGS(K,I)=ASIGS(K,I)/NAVG
CONTINUE
C->->->->SECTION OUTPT.G(2) - PRINT AVG. PERIOD AREA SOURCE CONTRIB.
RAM45930
RAM45940
RA.M45950
RAM45960
RAM45970
RAM45980
RAM45990
RAM4GOOO
RAM-16010
RAM4G020
RAM46030
RAM46040
RAM46050
RAM46060
RAM4G070
n"iM4'>uyo
RAM46090
RAM46100
RAM46110
RAM46120
RAM4G130
RAM4G140
RAM46150
RAM4G160
RAM46170
RA.M4G180
RAM4G190
RAM4G200
RAM46210
RAM46220
R:\iM4B230
RAM46240
RAM46250
RAM46260
R/\M4G270
RAM46280
RAM46290
RAM4G300
RAM463JO
RAM46320
RAM4R330
RAM46340
RAM46350
RAM46360
RAM46370
RAM46380
RAM46390
RAM46400
RAM46410
RAM46420
RAM46430
RAM46440
RAM46450
RAM46460
RAM46470
RAM46480
RAM46490
RAM46500
RAM46510
RAM46520
RAM46530
RAM46540
RAM46550
RAM46560
RAM46570
RAM46580
RAM46590
RAM46600
RAM46610
RAM46620
A-75
-------
LINK1.LINE2,LINES
NAVG,IPOLU,IDATE,MB,HANE,PL
(I,I=1,NSIGA)
(MAS(I),I=1,NSIGA)
330
C
WRITE 10,390
WRITE 10,610
WRITE 10,440
WRITE 10,450
WRITE 10,440
WRITE 10.470;
DO 330 K=i,NRECEP
WRITE (10,480) K,(ASIGSfK.I),I=1,NSIGA)
WRITE (10,490) ASIGS(K,11),ACHI(K)
PERIOD SUMMARY
C->->->->SECTION OUTPT.H - AVG.
C
C->->->->SECTION OUTPT.H(l) - DELETE AVG. PERIOD SUMMARY?
C
IF :iOPT(35}.EQ.l) RETURN
340
C
C
C
350
360
370
380
C
C
PRINT AVG. PERIOD SUMMARY
WRITE (10,390) LINE1.LINE2,LINES
WRITE (10,620) NAVG,IPOLU,IDATE,NB.HANE,PL
WRITE (10,580)
RANK CONCENTRATIONS
DO 350 K=1,NRECEP
GRANDS(K)=GRANDT(K)
DO 370 I=1,NHECEP
CMAX=-1.0
DO 360 K=1.NRECEP
IF (GRANDT(K).LE.CMAX) GO TO 360
CMAX=GRANDT(K)
LMAX=K
CONTINUE
IRANK(LMAX)=I
GRAND!(IMAX)=-1.0 '
DO 380 K=1,NRECEP
WRITE (10.590) K,ITYPE(K),ICODE(K).(RNAMECJ,K).J=1,2),RREU(K}.
1(K),PSIGS(K,26),PCHI(K),ASIGS(K,11),ACHI(K),GRANDS(K),IRANK(K)
RETURN
C->->->->SECTION OUTPT.J - FORMATS
C
390 FORMAT ('1',20A4/1X,20A4/1X,20A4)
FORMAT (1HO.T40,'AREA HTS: ',F8.3,',',F8.3,',',F8.3,';
ION HTS: ' F8.3,' ' F8.3)
FORMAT ('0',T30,A4,' CONTRIBUTION(MICROGRAMS/M**3)
IT POINT SOURCES ',5X,12,'/',14,' '
400
410
420
RAM46630
RAM46640
RAM46630
RAM46660
RAM4G670
RAM46680
RAM46690
RAM46700
RAM46710
RAM46720
RAM46730
RAM46740
RAM46750
RAM4G7GO
RAM46770
.1AM-16730
RAM46790
RAM46800
RAM46810
RAM46820
RAM46830
RAM46840
RAM46850
RAM46860
RAM46870
RAM-1GR80
RAM46890
RAM46000
RAM46910
RAM46920
RAM46930
RAM46940
RAM46950
RAM46960
SREURAM46970
HAM46980
RAM4G9DO
RAM47000
RAM47010
RAM47020
RAM47030
RAM47040
SEPARATIRAM47050
RAM47060
FROM SIGNIFICANRAM47070
430
440
450
460
FORMAT (' + ',T12,10U3,7X))
FORMAT f'+',T113,'TOTAL TOTAL'/lX.TllS,'SIGNIF
1,T113,'AREA SOURCES'/IX,'SOURCE #')
FORMAT ('+' T113,'TOTAL TOTAL'/IX,T113,'SIGNIF
IX.TllS.'POIN! SOURCES'/IX,'SOURCE #')
IX.'RECEP #')
1X.I3.2X,6P10F10.3)
'+',!l09,6P2F10.31
1HO,'SOURCE #',T12,10(13,7X)) RAM47200
'0',T25,A4.' SUMMARY CONCENTRATION TABLE(MICROGRAMS/M**3) RAM47210
/',I4 ' : HOUR ',12/lX) RAM47220
1H+.T60.'ANEMOM HT: '.F6.2,' PL: '.F6.2) RAM47230
IX,T2,'HOUR THETA SPEED MIXING TEMP STABILITY'/RAM47240
DEGl (M/S) HEIGHT(M) (K) CLASS'/1X) RAM47250
1X.T3,I2.4F9.2,6X,I1) RAM47260
lH6,8X,l6lll/) RAM47270
" FINAL HT (M) '.10F11.2) RAM47280
DIST FIN HT (KM)',10F11.3) RAM47290
IX,'RECEPTOR NO. EAST NORTH ' 2X,5('TOTALRAM47300
1 FROM '),' CONCENTRATION'/IX,T46,'SIGN'.'IF POINT ALL POINT SRAM47310
2IGNIF AREA ALL AREA ALL SOURCES',5X,'RANK'/1X,T48,4('SOURCEHAM47320
470
480
490
500
510
520
530
540
550
560
570
580
X A j XJ..LO)
FORMAT
FORMAT
FORMAT
FORMAT
FORMAT
1'5X,I2,
FORMAT
FORMAT
11X,T9,'
FORMAT
FORMAT
FORMAT
FORMAT
FORMAT
RAM47120
ALL AREA'/1XRAM47130
RAM47140
ALL POINT'/1RAM47150
RAM47160
RAM47170
RAM47180
RAM47190
A-76
-------
RAM47330
3S',6X)/1X)
590 FORMAT (1X.T3,13,IX.Al,I3.2X,2A4,F11.3,F12.3,6P5F13.4,6X,13) RAM47340
600 FORMAT ('O1,T22,12, -HOUR AVERAGE ',A4,' CONTRIBUTION(MICROGRAMS/MHAM47350
1**3) FROM SIGNIFICANT POINT SOURCES',5X,12.'/',13.' START HOUR: 'RAM47360
2.I2//1X.T20,'ANEMOM HT: ' F4.0.3X,'PL: A-' F4.2,2X,'B- ',F4.2 'C-RAM47370
3 ' F4.2.2X,'D- ',F4.2.2X,'E- ' F4.2,2X,'F- ',F4.2/1X,T5,'RANK') RAM47380
FORMAT ('0',T22,12,'-HOUR AVERAGE ',A4,' CONTRIBUTION(MICROGRAMS/MRAM47390
1**3) FROM SIGNIFICANT AREA SOURCES' 5X,12,'/',I3.' START HOUR: '.RAM47400
OT*7 / /"] y nr*^n * ANFMOM TTT1 * * P^ 0 *^ Y * F*T * A * F**-! •* *?x * R ' V^l "^ "~? V * r*T? AM^17110
S-^'.F^'^^X.'D- \F4.2.2X, 'E->r,F4.2'. 2X ,'F- ''7F4.2./1X, T5, ;RANK?)'RAM47420
FORMAT ('0',T25,I2.'-HOUR AVERAGE ',A4,' SUMMARY CONCENTRATION TABRAM47430
1LE(MICROGRAMS/M**3)',5X,12.'/',13,' START HOUR: '.I2//1X.T20,'ANERAM47440
2.MOM HT: ' .F4.0.2X, PL: A- ' F4.2,2X,'B- ', F4.2,2X, 'C- \F4.2.2X, 'DRAM47450
3- ',F4.2,2X,'E- ',F4.2,2X,'F- '.F4.2/1X) RAM47460
RAM47470
END RA.M'17 ISO
610
620
C
C
SUBROUTINE RANK fL^
C SUBROUTINE RANK (VERSION 80336), PART OF RAM.
C THIS SUBROUTINE IS REFERRED TO AS N IN THE COMMON STATEMENTS
C CALLED BY RAM TO ARRANGE CONCENTRATIONS OF VARIOUS AVG
C TIMES INTO HIGH-FIVE TABLES... THAT IS, ARRAYS STORING
C THE HIGHEST FIVE CONCENTRATIONS FOR EACH RECEPTOR FOR
C EACH AVG TIME.
C VARIABLES OUTPUT:
C HMAXA(J,K,L) CONCENTRATIONS ACCORDING TO
C J RANK OF CONC. (1-5)
C K RECEPTOR NUMBER
C L AVG TIME
C NDAY(J.K.L) : ASSOCIATED DAY OF CONC.
C IHR(J,K,L) : ENDING HOUR OF CONC.
COMMON /AEFGKM/ NRECEP.RREC(180),SREC(180).IDATE[2),LH,NPT
COMMON /AN/ HMAXA(5,180,5),NDAY(5,180,5),IHR(5,180,5),CONC(180,5);
1JDAY
C
10=6
C RESET AVERAGING PERIOD FLAG AND SET CALM FLAG, LL.
C CALMS ACCOUNTED FOR ONLY WHEN DEFAULT OPTION ON.
LL=0
IF(L.GT.4)LL=1
IF(L-EQ.22)L=2
IF(L.EQ.33)L=3
IF(L.EQ.44)L=4
DO 50 K=1.NRECEP
IF TCONC?K,L).LE.HMAXA(5,K,L)) GO TO 50
DO 10 J=l,5
IF (CONC(K,L).GT.HMAXA(J,K,L)) GO TO 20
C CONCENTRATION IS ONE OF THE TOP FIVE
10 CONTINUE
WRITE (10,70)
GO TO 50
C THE FOLLOWING DO-LOOP HAS THE EFFECT OF INSERTING A NEW
C CONCENTRATION ENTRY INTO ITS PROPER POSITION WHILE SHIFTING
C DOWN THE 'OLD' LOWER CONCENTRATIONS THUS ESTABLISHING THE
C 'HIGH-FIVE' CONCENTRATION TABLE.
20 IF (J.EQ.5) GO TO 40
DO 30 IJ=4,J,-1
IJP1=IJ+1
HMAXA(IJP1,K,L)=HMAXA( LJ,K.L)
NDAY(IJP1.K.L)=NDAY(IJ,K,L)
30 IHR(IJP1,K,L)=IHR(IJ,K,L)
C INSERT LATEST CONC, DAY AND ENDING HR INTO THE
C PROPER RANK IN THE HIGH-FIVE TABLE
40 HMAXA(J,K,L)=CONC(K,L)
NDAY(J,K,t)=JDAY
IHR(J,K.L)=LH
C ADD 100 TO HOUR TO SET CALM FLAG FOR MAIN.
IF(LL.EQ.1.AND.L.NE.1)IHR(J,K,L)=IHR(J,K,L)+100
50 CONTINUE
DO 60 K=1,NRECEP
RAM47500
RAM47510
RAM47520
RAM47530
RAM47540
RAM47550
RAM47560
RAM47570
IMM47580
RAM47590
HAM47GOO
RAM47610
RAM47620
RAM47630
RAM47640
RAM47650
RAM47660
RAM47670
RAM47680
RAM47690
RAM47700
RAM47710
RAM17720
RAM47730
RAM47740
RAM47750
RAM47760
RAM47770
RAM47780
RAM47790
RAM47800
RAM47810
RAM47820
RAM47830
RAM47840
RAM47850
RAM47860
RAM47870
RAM47880
RAM47890
RAM47900
RAM47910
RAM47920
RAM47930
RAM47940
RAM47950
RAM47960
RAM47970
RAM47980
RAM47990
RAM48000
RAM48010
RAM48020
A-77
-------
CONC(K.L)=0. RAM48030
60 CONTINUE RAM48040
RETURN RAM48050
C RAM48060
70 FORMAT (IX,' ****ERROR IN FINDING THE MAX CONCENTRATION***') RAM48070
C RAM48080
END RAM48090
A-78
-------
APPENDIX B
JAPCA REPRINT
-------
-------
An Efficient Gaussian-Plume Multiple-Source
Air Quality Algorithm
Joan Hrenko Novak and D. Bruce Turner
U. S. Environmental Protection Agency
The information presented In this paper to directed to air pollution
•dentists wtth an Interest In applying air quality simulation models.
RAM to me three letter designation tor Into efficient Gaussian-plume
multiple-source air quality algorithm. RAM to a method of estimating
short-term dispersion using the Gaussian steady-state model. Thto
algorithm can be used for estimating air quality concentrations of
relatively stable pollutants for averaging times from an hour to a day
In urban areas from point and area sources. The algorithm to appli-
cable for locations wtth level or gently rolling terrain where a single
wind vector for each hour to a good approximation to the How over
the source area considered. Calculations are performed for each hour.
Hourly meteorological data required are wmd dfceetton, wind speed,
stability class, and mixing height Emission information required of
point sources consists Of source coordinates, •minion rate, physical
height, stack gas volume flow and stack gas temperature. Emission
Information required of area sources consists of south-west corner
coordinates, source area, total area emission rate and effective area
source height Computation Ume to kept to a mMmum by the manner
In which concentrations from area sources are estimated using a
narrow plume hypothesis and using the area source squares as given
rather than breaking down a> sources to an area of uniform elements.
Options are available to the user to allow use of three different types
of receptor locations: 1) those whose coordinates are Input by the
user, 2) those whose coordinates are determined by the model and
are downwind of significant point and area sources where maxima
are likely to occur, and 3) those whose coordinates are determined
by the model to give good area coverage of a specific portion of the
region. Computation time to also decreased by keeping the number
of receptors to a minimum.
The purpose of formulating RAM is to provide a readily
available computer program based on the assumptions of
steady-state Gaussian dispersion. RAM can be used for any
short-term (one-hour to one-day) determination of urban air
quality resulting from pollutants released from point and/or
area sources. Urban planners can use RAM to determine the
effects of new source locations and of control strategies upon
short term air quality. If the input meteorological parameter
values can be forecast with sufficient accuracy, control agency
officials can use RAM to predict ambient air quality levels,
primarily over the 24-hour averaging time, to 1) locate mobile
air sampling units, and 2) assist with emission reduction tac-
tics. Especially for control tactics, diurnal and day-to-day
emission variations must be considered in the source inventory
input to the model For most of these uses, the optional feature
to assist in locating maximum points should be utilized.
Computations are organized so that execution of the program
is rapid, thus real-time computations are feasible.
Briggs' plume rise equations are used to estimate effective
height of point sources. Concentrations from the point sources
are determined using distance crosswind and distance upwind
from the receptor. Considerable time is saved in calculating
concentrations from area sources by using a narrow plume
Mrs. Novak is systems analyst, Model Development and
Assessment Branch, and Mr. Turner is Chief, Environmental
Applications Branch, Meteorology and Assessment Division,
U.S. Environmental Protection Agency, Research Triangle
Park, NC 27711. Both authors are on assignment from the
National Oceanic and Atmospheric Administration, U. S.
Department of Commerce. This paper was presented as
Paper No. 75-04.3 at the 69th Annual Meeting of APCA at
Boston in June 1975.
Reprinted from APCA JOURNAL, Vol. 26, No. S, June 1976
-------
simplification which considers sources upwind from a receptor
to be representative of those affecting the receptor. Area
source sizes are used as given in the inventory rather than
creating an internal inventory of uniform elements.
The algorithm is applicable for locations with level or gently
rolling terrain where a single wind vector for each hour is a
reasonable approximation of the flow over the source area
considered. A single mixing height and a single stability class
for each hour are assumed representative of the area. The use
of the RAM is restricted to relatively stable pollutants.
Options are available to allow the use of three different*
types of receptor locations: 1) those whose coordinates are
input by the user, 2) those whose coordinates are determined
by RAM and are downwind of significant point and area
sources where maxima are likely to occur, and 3) those whose
coordinates are determined by RAM to give good area cov-
erage of a specific portion of the region. Options are also
available concerning the detail of output produced.
The Algorithm
Input* Required
The algorithm always requires emission and meteorological
data, and depending on receptor options used, it may also
require receptor data. Any convenient east-north rectangular
coordinate system may be used since all conversion from user
units to meters is performed internally by use of an input
conversion factor.
A. Point source information consists of the following for each
source:
1. East coordinate of source location, user units
2. North coordinate of source location, user units
3. Stack height (above ground), meters
4. Stack inside top diameter, meters
5. Stack gas temperature, °K
6. Stack gas velocity, m sec"1
7. Pollutant emission rate, g sec"1
B. Area source information consists of the following for each
source:
1. Bast coordinate of the southwest corner of the area
source, user units
2. North coordinate of the southwest comer of the area
source, user units
3. Effective emission height, meters
4. Side length of area source, user units
5. Total pollutant emission rate for the area, g sec'1
Area sources must be squares. They can be of various
sizes, but their side length must be an integer multiple of a
common side length. The term UNIT SQUARE refers to a
source with this minimum common side length. The effective
emission height of the area sources is assumed to be the ef-
fective height that occurs with a 5 m sec"1 wind. The effective
height of the area sources can be varied with wind speed. Area
emission rates are converted internally to g sec"1 m"2.
C. Meteorological data, representative of the region being
considered, consists of hourly values of the following:
1. Wind direction, deg clockwise from North
2. Wind speed, m sec"1
3. Stability class, dimensionless
4. Mixing height, meters
The stability class is that of Pasquill.
D. Receptor information, if required by user specification,
consists of the following for each receptor:
1. East coordinate of the receptor location, user units
2. North coordinate of the receptor location, user units
Only one receptor height, z, above ground is allowed for a
given execution ol the model. This height can be zero or pos-
itive.
Basic Principles
The following assumptions are made: 1) Dispersion from
points and area elements result in Gaussian distributions in
both the horizontal and vertical directions through the dis-
persing plume, and therefore steady-state Gaussian plume
equations can be used for point sources and the integration
of these equations for area sources. 2) Concentration estimates
may be made for each hourly period using the mean meteo-
rological conditions appropriate for each hour. 3) The total
concentration at a receptor is the sum of the concentrations
estimated from all point and area sources, that is, concen-
trations are additive.
For point sources, the plume rise is calculated from the
stack gas temperature, stack diameter, and stack gas velocity
using the equations of Briggs.1-3 The effective emission height
is the physical stack height plus the plume rise.
In order to calculate contributions from point sources the
upwind distance, x, and the crosswind distance, y, of each
source from each receptor are calculated using Eq. Al and A2
PLAN VIEW OF ARE* SOURCES
SOURCE NUMSER IN LOWER LEFT CORNER
EMISSION RATE 1GM I* PARENTHESES
\ .
V
'•'\
7
7
1
1
7
7
1
1
1
•
•
2
g
i
i
3
a
0
•
4
1
1
I
i-1 2345
Figure 1. Plan view of area sources and area source map array.
June 1976 Volume 26, No. 6
571
-------
simplification which considers sources upwind from a receptor
to be representative of those affecting the receptor. Area
source sizes are used as given in the inventory rather than
creating an internal inventory of uniform elements.
The algorithm is applicable for locations with level or gently
rolling terrain where a single wind vector for each hour is a
reasonable approximation of the flow over the source area
considered. A single mixing height and a single stability class
for each hour are assumed representative of the area The use
of the RAM is restricted to relatively stable pollutants.
Options are available to allow the use of three different*
types of receptor locations: 1) those whose coordinates are
input by the user, 2) those whose coordinates are determined
by RAM and are downwind of significant point and area
sources where maxima are likely to occur, and 3) those whose
coordinates are determined by RAM to give good area cov-
erage of a specific portion of the region. Options are also
available concerning the detail of output produced.
Only one receptor height, z, above ground is allowed for a
execution of the model. This height can be zero or pos-
itive.
Input* Required
The algorithm always requires emission and meteorological
'data, and depending on receptor options used, it may also
require receptor data. Any convenient east-north rectangular
coordinate system may be used since all conversion from user
units to meters is performed internally by use of an input
conversion factor.
A. Point source information consists of the following for each
source:
1. East coordinate of source location, user units
2. North coordinate of source location, user units
3. Stack height (above ground), meters
4. Stack inside top diameter, meters
5. Stack gas temperature, °K
6. Stack gas velocity, m sec'1
7. Pollutant emission rate, g sec'1
B. Area source information consists of the following for each
source:
1. East coordinate of the southwest corner of the area
source, user units
2. North coordinate of the southwest corner of the area
source, user units
3. Effective emission height, meters
4. Side length of area source, user units
5. Total pollutant emission rate for the area, g sec'1
Area sources must be squares. They can be of various
sizes, but their side length must be an integer multiple of a
common side length. The term UNIT SQUARE refers to a
source with this minimum common side length. The effective
emission height of the area sources is assumed to be the ef-
fective height that occurs with a 5 m sec'1 wind. The effective
height of the area sources can be varied with wind speed. Area
emission rates are converted internally to g sec'1 m'2.
C. Meteorological data, representative of the region being
considered, consists of hourly values of the following:
1. Wind direction, deg clockwise from North
2. Wind speed, m sec'1
3. Stability class, dimensionless
4. Mixing height, meters
The stability class is that of Pasquill.
D. Receptor information, if required by user specification,
consists of the following for each receptor:
1. East coordinate of the receptor location, user units
2. North coordinate of the receptor location, user units
The following assumptions are made: 1) Dispersion from
points and area elements result in Gaussian distributions in
both the horizontal and vertical directions through the dis-
persing plume, and therefore steady-state Gaussian plume
equations can be used for point sources and the integration
of these equations for area sources. 2) Concentration estimates
may be made for each hourly period using the mean meteo-
rological conditions appropriate for each hour. 3) The total
concentration at a receptor is the sum of the concentrations
estimated from all point and area sources, that is, concen-
trations are additive.
For point sources, the plume rise is calculated from the
stack gas temperature, stack diameter, and stack gas velocity
using the equations of Briggs.1"3 The effective emission height
is the physical stack height plus the plume rise.
In order to calculate contributions from point sources the
upwind distance, x, and the crosswind distance, y, of each
source from each receptor are calculated using Eq. Al and A2
HAN VIEW OF AREA SOURCES
SOURCE NUMSER III LOWER LEFT CORNER
EMISSION RATE 16/ac) IN PARENTHESES
\ .
\
3
'\
7
7
1
1
7
7
1
I
1
t
t
2
•
1
1
«
t
0
S
4
i-1 2 1 4 S
Figure 1. Plan view of area sources and area source map array.
June 1976 Volume 26, No. 6
571
-------
An Efficient Gaussian-Plume Multiple-Source
Air Quality Algorithm
Joan Hrenko Novak and D. Bruce Turner
U. S. Environmental Protection Agency
The information presented In this paper Is directed to air pollution
scientist* with an Interest In applying air quality simulation models.
RAM to the three letter designation for thto efficient Gaussian-plume
multiple-source air quality algorithm. RAM Is a method of estimating
short-term dispersion using the Gaussian steady-state model. This
algorithm can be used for estimating air quality concentrations of
relatively stable pottutants for averaging times from an hour to a day
In urban areas from point and area sources. The algorithm Is appli-
cable for locations with level or gently rolling terrain where a single
wind vector for each hour Is a good approximation to the flow over
the source area considered. Calculations are performed for each hour.
Hourly meteorological data required are wind direction, wind speed.
stability class, and mixing height. Emission Information required of
poM source* consists of source coordinates, emission rate, physical
height, stack gas volume flow and stack gas temperature. Emission
information required of area sources consists of south-west comer
coordinates, source area, total area emission rate and effective area
source height Computation time Is kept to a minimum by the manner
in which concentrations from area sources are estimated using a
narrow plume hypothesis and using the area source squares as given
rather than breaking down all sources to an area of uniform elements.
Options are available to the user to allow use of three different types
of receptor locations: 1) those whose coordinates are Input by the
user, 2) those whose coordinates are determined by the model and
are downwind of significant point and area sources where maxima
are likely to occur, and 3) those whose coordinates are determined
by the model to give good area coverage of a specific portion of the
region. Computation time Is also decreased by keeping the number
of receptors to a minimum.
The purpose of formulating RAM is to provide a readily
available computer program baseM on the assumptions of
steady-state Gaussian dispersion. RAM can be used for any
short-term (one-hour to one-day) determination of urban air
quality resulting from pollutants released from point and/or
area sources. Urban planners can use RAM to determine the
effects of new source locations and of control strategies upon
short term air quality. If the input meteorological parameter
values can be forecast with sufficient accuracy, control agency
officials can use RAM to predict ambient air quality levels,
primarily over the 24-hour averaging time, to 1) locate mobile
air sampling units, and 2) assist with emission reduction tac-
tics. Especially for control tactics, diurnal and day-to-day
emission variations must be considered in the source inventory
input to the model For most of these uses, the optional feature
to assist in locating maximum points should be utilized.
Computations are organized so that execution of the program
is rapid, thus real-time computations are feasible.
Briggs' plume rise equations are used to estimate effective
height of point sources. Concentrations from the point sources
are determined using distance crosswind and distance upwind
from the receptor. Considerable time is saved in calculating
concentrations from area sources by using a narrow plume
Mrs. Novak is systems analyst, Model Development and
Assessment Branch, and Mr. Turner is Chief, Environmental
Applications Branch, Meteorology and Assessment Division,
U.S. Environmental Protection Agency, Research Triangle
Park, NC 27711. Both authors are on assignment from the
National Oceanic and Atmospheric Administration, U. S.
Department of Commerce. This paper was presented as
Paper No. 75-04.3 at the 69th Annual Meeting of APCA at
Boston in June 1975.
Reprinted from APCA JOURNAL, Vol. 26, No. 6, June 1976
-------
in the Appendix. The dispersion parameter values, ft,., and irr
are determined as a function ot the upwind distance, x, and
stability class (See p 374 of Pasquill4). The three equations
used to estimate concentrations under various conditions of
stability and mixing height (Equations A3, A4, and A5) are
discussed in the Appendix. These equations are for a receptor
height, z, above ground and simplify considerably when the
receptor height is assumed to be at ground level, 2=0. (Those
simplifications are incorporated into RAM.)
The total concentration at a receptor arising from the
two-dimensional area-source distribution is calculated using
the narrow plume simplification of Gifford and Hanna.5 This
simplification is assumed because, on an urban scale, the
plume from a point source release is normally quite narrow
in comparison with the characteristic length scale for appre-
ciable changes of the magnitude of the area-source emission
rate itself. Under these circumstances the two-dimensional
integral that expresses the total area-source contribution to
concentration can be replaced approximately by a one-di-
mensional integral that only involves knowledge of the dis-
tribution of the area-source emissions along the line in the
direction of the upwind azimuth from the receptor location,
and the meteorologically-dependent function that specifies
the crosswind-integrated concentration in the Gaussian plume
from a point source. Further evidence for the validity of this
approximation for treating area-source concentrations has
been provided by some numerical tests of Thayer and Koch.6
In the use of this area source technique by Gifford and
Hanna,5 area source emissions were assumed at ground level
allowing integration upwind to be accomplished analytically.
However, in our application of this technique within RAM,
the area sources are considered to have an effective height,
thus requiring the integration to be accomplished numerically.
The equations used to estimate concentrations from area
sources (Eq. AlO through A13) are given in the Appendix. The
total concentration from all area sources is determined by
performing the integration in the upwind direction until the
farthest boundary of the source region is reached.
Concentrations at a receptor for periods longer than 1 hr
are determined by averaging the hourly concentrations over
the period of interest.
How Computations Ar* Mad*
Initially, a preprocessor program is used to store the emis-
sion inventory in a convenient form and perform any neces-
sary conversions. A most important function of the prepro-
cessor is to arrange the area sources in such a way as to mini-
mize computation time for area source concentrations. Each
area source number (area sources are numbered sequentially
as the sources are input) is stored in a two dimensional array
which essentially forms a map of the relative locations of all
the area sources. Each element in the array corresponds to an
area the size of a unit square (previously defined). Therefore
a unit source will have its source number stored into one ele-
ment of the array, whereas an area source that is 4 units by 4
units will have its source number stored into 16 elements of
the array (4 X 4). Obviously area sources must be mutually
exclusive; they must not overlap. Array elements corre-
sponding to areas of the source region not covered by area
sources will have a zero stored in the array. As will be ex-
plained later, it is to the advantage of the user to define areas
2X2 units or larger with no emissions aa specific source areas
with zero emissions (source 6, Figure 1). An example of a
simplified source region and the resulting array are shown in
Figure 1.
Concentration estimates are made hour-by-hour for up to
24 hr. This algorithm is not designed to determine average
AREA SOURCE REGION
10
70
(0
8 *
20
X. UPWIND DISTANCE (k»l
112 3 4 S I 7
X. UPWIND DISTANCE (km)
Figure 2. Features of arm soiree estimates.
concentrations over periods longer than 24 hr. First, concen-
trations resulting from area sources are calculated. In an effort
to reduce the total amount of computer time, tables (arrays)
which contain relative concentrations, V, normalized for
emission rate and wind speed, are calculated only once for each
simulated hour using the appropriate stability and mixing
height, and thereby eliminating all repetitive calculations. The
function V is calculated from:
Jo
fdx
(1)
and is the non-dimensional concentration resulting from an
area source of given effective height extending upwind from
a receptor to the distance, d. The function /, whose form de-
pends on stability, and mixing height, is defined in the Ap-
pendix (Eq. All, A12, and A13). The stored tables contain
values of this integral obtained by numerical integration for
a number of values of d. Both / and V for 3 area source heights
are shown in Figure 2. Because V(d) changes rapidly for small
values of d, the numerical integration using the trapezoidal
rule is done using varying size intervals, as small as 1 meter
572
Journal of the Air Pollution Control Association
-------
for i less than 100 meters, and as large as 1 km for x greater
than 15 km. The values of V are also stored for varying in-
tervals of d (ranging from 10 m to 1 km), so that linear inter-
polation between stored values will result in an accurate es-
timate of V. For each effective area source height, up to a
maximum of three, a V table is generated and stored at the
beginning of each simulated hour.
The concentrations from the area sources are computed
receptor by receptor. If the receptor is outside the source re-
gion (the rectangular region containing all the area sources),
it is first determined if the upwind ray (the line pointed in the
wind direction) intersects the source region. If it does not in-
tersect the source region, no contribution from area sources
at this receptor is calculated. If the upwind ray does intersect
the source region, the distance, d\, (See Figure 2) along the
ray to the source region is determined using Eq. A6 and A8 in
the Appendix. The coordinates of this intersection point and
consideration of wind direction provide direct access, through
the area source map array, to the source number of the par-
ticular area source at this intersection point. Since all other
source information is stored hi .arrays indexed on source
number, the1 area source location (coordinates of SW corner),
size, effective height, and emission rate are readily
available.
Knowledge of the location and size of the area source per-
mits the calculation of the intersection point of the upwind
ray from the receptor with the area source boundary on the
other side of the source (See Equations A6 through A9 in
Appendix) and subsequently the calculation of distance (d2)
from the receptor to this point (Figure 2). These two distances,
d j and d-i, are then used to obtain linearly interpolated values
of V from the tables, V(d2) and V(di). The concentration
from this source (assume this is source number i) is then given
by:
XAi = (
-------
for x less than LOO meters, and as large as 1 km for x greater
than 15 km. The values of V are also stored for varying in-
tervals of d (ranging from 10 m to 1 km), so that linear inter-
polation between stored values will result in an accurate es-
timate of V. For each effective area source height, up to a
maximum of three, a V table is generated and stored at the
beginning of each simulated hour.
The concentrations from the area sources are computed
receptor by receptor. If the receptor is outside the source re-
gion (the rectangular region containing all the area sources),
it is first determined if the upwind ray (the line pointed in the
wind direction) intersects the source region. If it does not in-
tersect the source region, no contribution from area sources
at this receptor is calculated. If the upwind ray does intersect
the source region, the distance, d\, (See Figure 2) along the
ray to the source region is determined using Eq. A6 and A8 in
the Appendix. The coordinates of this intersection point and
consideration of wind direction provide direct access, through
the area source map array, to the source number of the par-
ticular area source at this intersection point. Since all other
source information is stored in .arrays indexed on source
number, the* area source location (coordinates of SW corner),
size, effective height, and emission rate are readily
available.
Knowledge of the location and size of the area source per-
mits the calculation of the intersection point of the upwind
ray from the receptor with the area source boundary on the
other side of the source (See Equations A6 through A9 in
Appendix) and subsequently the calculation of distance (d?)
from the receptor to this point (Figure 2). These two distances,
di and
-------
in the Appendix. The disoersion parameter values, ITV and o>
are determined as a function of the upwind distance, *, and
stability class (See p 374 of Pasquill4). The three equations
used to estimate concentrations under various conditions of
stability and mixing height (Equations A3, A4, and A5) are
discussed in the Appendix. These equations are for a receptor
height, z, above ground and simplify considerably when the
receptor height is assumed to be at ground level, z = 0. (Those
simplifications are incorporated into RAM.)
The total concentration at a receptor arising from the
two-dimensional area-source distribution is calculated using
the narrow plume simplification of Gifford and Hanna.5 This
simplification is assumed because, on an urban scale, the
plume from a point source release is normally quite narrow
in comparison with the characteristic length scale for appre-
ciable changes of the magnitude of the area-source emission
rate itself. Under these circumstances the two-dimensional
integral that expresses the total area-source contribution to
concentration can be replaced approximately by a one-di-
mensional integral that only involves knowledge of the dis-
tribution of the area-source emissions along the line in the
direction of the upwind azimuth from the receptor location,
and the meteorologically-dependent function that specifies
the crosswind-integrated concentration in the Gaussian plume
from a point source. Further evidence for the validity of this
approximation for treating area-source concentrations has
been provided by some numerical tests of Thayer and Koch.6
In the use of this area source technique by Gifford and
Hanna,5 area source emissions were assumed at ground level
allowing integration upwind to be accomplished analytically.
However, in our application of this technique within RAM,
the area sources are considered to have an effective height,
thus requiring the integration to be accomplished numerically.
The equations used to estimate concentrations from area
sources (Eq. AID through A13) are given in the Appendix. The
total concentration from all area sources is determined by
performing the integration in the upwind direction until the
farthest boundary of the source region is reached.
Concentrations at a receptor for periods longer than 1 hr
are determined by averaging the hourly concentrations over
the period of interest.
How Computations AT* Made
Initially, a preprocessor program is used to store the emis-
sion inventory in a convenient form and perform any neces-
sary conversions. A most important function of the prepro-
cessor is to arrange the area sources in such a way as to mini-
mize computation time for area source concentrations. Each
area source number (area sources are numbered sequentially
as the sources are input) is stored in a two dimensional array
which essentially forms a map of the relative locations of all
the area sources. Each element in the array corresponds to an
area the size of a unit square (previously defined). Therefore
a unit source will have its source number stored into one ele-
ment of the array, whereas an area source that is 4 units by 4
units will have its source number stored into 16 elements of
the array (4 X 4). Obviously area sources must be mutually
exclusive; they must not overlap. Array elements corre-
sponding to areas of the source region not covered by area
sources will have a zero stored in the array. As will be ex-
plained later, it is to the advantage of the user to define areas
2X2 units or larger with no emissions as specific source areas
with zero emissions (source 6, Figure 1). An example of a
simplified source region and the resulting array are shown in
Figure 1.
Concentration estimates are made hour-by-hour for up to
24 hr. This algorithm is not designed to determine average
'AREA SOURCE REGION
10
70
M
5f SO
I-
u*
1 "
>
It
10
0
2 J 4 5 6
X, UPWIND DISTANCE (km)
NEUTRAL -
STABILITY
I
I
012 345(7
X. UPWIND DISTANCE (km)
Figure 2. Features of area source estimates.
concentrations over periods longer than 24 hr. First, concen-
trations resulting from area sources are calculated. In an effort
to reduce the total amount of computer time, tables (arrays)
which contain relative concentrations, V, normalized for
emission rate and wind speed, are calculated only once for each
simulated hour using the appropriate stability and mixing
height, and thereby eliminating all repetitive calculations. The
function V is calculated from:
Jo
fdx
(1)
and is the non-dimensional concentration resulting from an
area source of given effective height extending upwind from
a receptor to the distance, d. The function /, whose form de
pends on stability, and mixing height, is defined in the Ap
pendix (Eq. All, A12, and A13). The stored tables contair
values of this integral obtained by numerical integration fo
a number of values of d. Both / and V for 3 area source height
are shown in Figure 2. Because V(d) changes rapidly for smal
values of d, the numerical integration using the trapezoida
rule is done using varying size intervals, as small as 1 mete
572
Journal of the Air Pollution Control Associatio
-------
The second receptor option also determines the location of
a single receptor downwind of each significant area source.
Since the effective height of area sources are generally lower
than point sources, the maximum concentration from the area
source is calculated quite near the boundary of the source.
The location of the maximum concentrations from specific
point and area sources will, of course, not necessarily be a
location where the contribution from all sources will result in
a maximum. Since the location of the maxima are highly de-
pendent upon the dispersion parameter values, ay and alt any
modification of the algorithm that changes the way in which
these dispersion parameters are calculated will also require
extensive modifications to the subroutines, which determine
the maximum distances from point and area sources, if the
second receptor option is to be used.
The third receptor option allows for good area coverage of
a specified portion of the region. The boundaries of the region
to be covered and the spacing between receptors, w, are
specified by the user. In order to cover the maximum area with
the fewest number of stations, a hexagonal or 'honeycomb'
grid is used. Receptor locations are at equal distances from
nearby receptors so that if lines are drawn to all nearby re-
ceptors, six equilateral triangles will result. Also in order to
keep the total number of receptors to a minimum, any po-
tential receptor locations generated by the third option are
deleted if they are within one-half w of any other existing re-
ceptor.
Several other options available are mainly used to delete
special output when not required. These options are not as
significant as the receptor options and will not be discussed
here.
Summary
RAM is a steady state Gaussian algorithm applicable to
urban areas for pollutants emitted from point and area
sources. Calculations are made for one-hour time periods.
Average concentrations may be obtained for time periods up
to24hr.
Estimation of concentrations from point sources is
straightforward. Briggs' plume rise equations are used. Up-
wind and crosswind distances of each source from each re-
ceptor are determined and concentration is estimated from
various Gaussian equations.
Innovative techniques are used in keeping the number of
receptors to a minimum and in the treatment of the area
emission inventory. Except for the area source map array used
for coordinating area source number with location, area source
information is stored and used directly for a number of pos-
sible source sizes. A narrow plume simplification with con-
sideration of source height of each area is used. The emission
rates of the area sources in the source region along the upwind
azimuth are considered representative of the area emission
rates affecting the receptor from various distances upwind
(narrow plume hypothesis). Determination, at the beginning
of each simulated hour, of the effect of area sources extending
to different distances upwind are stored in tabular form with
a different table for each effective area source height (up to
3 heights allowed). Linear interpolation of these tabular values
for each source, and receptor by receptor, to obtain concen-
trations from area sources saves considerable computer time.
The various receptor options in the model allow for versa-
tility in the use of RAM. Coordinates corresponding to fixed
locations, such as air quality sampling locations may be used.
In attempting to estimate maximum concentrations for par-
ticular short-term periods, the option to select locations
downwind of particularly significant sources can be used. To
insure good area coverage, an option is available to select ad-
ditional receptors equally spaced from each other. These
equally spaced receptors cover a particular defined region and
are added only if other receptors have not been located in the
vicinity of each proposed receptor location.
A user's guide for RAM is under preparation. One version
of this algorithm has been applied to a 3-month urban data
base related to sulfur dioxide. In order to assess the validity
of the model, comparisons of these estimates with measure-
ments are being accomplished by a group under Dr. Patrick
Hamill at Clark College in Atlanta. It is anticipated that the
algorithm will soon be made available to users as part of EPA's
User's Network for Applied Modeling of Air Pollution
(UNAMAP).
Acknowledgment
The authors appreciate the assistance.of Lea Prince.
References
1. Gary A. Briggs, Plume Rise, USAEC Critical Review Series,
TID-25075, National Technical Information Service, Springfield,
VA 22161,1969.
2. Gary A. Briggs, "Some Recent Analyses of Plume Rise Observa-
tion," in Proceedings of the Second International Clean Air
Congress, edited by H. M. England and W. T. Beery. Academic
Press, New York, 1971. pp 1029-1032.
3. Gary A. Briggs, "Discussion on chimney plumes in neutral and
stable surroundings," Atmos. Environ. 6:507 (1972).
4. F. Pasquill, Atmospheric Diffusion, 2nd ed., Halsted Press, John
Wiley & Sons, Inc., New York, 1974. p. 374.
5. F. A. Clifford, Jr. and Steven R. Hanna, "Urban Air Pollution
Modelling," in Proceedings of the Second International Clean Air
Congress, edited by H. M. Englund and W. T. Beery. Academic
Press, New York, 1971. pp 1146-1151.
6. Scott D. Thayer and Robert C. Koch, "Validity of the Multiple-
Source, Gaussian Plume Urban Diffusion Model Using Hourly
Estimates of Input," in Preprint Volume of the Conference on
Urban Environment and Second Conference on Biometeorology,
Oct. 31-Nov. 2,1972, Philadelphia, PA, published by Amer. Me-
teorol. Soc., Boston, MA.
Appendix
Dispersion and Analytic Geometry Equations Used In RAM
Expression*
These expressions are used in the discussions that follow:
gl - exp (-0.5y2/
-------
Point Source Computation*
The upwind distance, x, and the crosswind distance, y, of
a point source from a receptor are given by:
x = (Sp-Sr)caae + (Rp-Rr)sin6 (Al)
y=(Sp-Sr)sm«-(Bp-flr)cosfl (A2)
where Rp> Sp are the coordinates of the point source; Rr, Sr
are the coordinates of the receptor, and 8 is the wind direction
(the direction from which the wind blows). The units of x and
y will be the same as those of the coordinate system R, S.
Frequently a conversion is required in order to express x, and
y in meters or kilometers.
The contribution to the concentration, \p, from a single
point source to a receptor is given by one of the three following
equations where \p is in g m,~3- Q is point source emission rate
in g sec'1, u is wind speed in m sec'1, and ay and a, are eval-
uated for the upwind distance x, and the stability class.
For stable conditions or unlimited mixing:
XP
(A3)
In unstable or neutral conditions and if az is greater than
1.6 times the mixing height, L, the distribution below the
mixing height is uniform with height provided that both the
effective height, H, and the receptor height, z, are below the
mixing height:
XP " Qgi/[
-------
Point Source Computation*
The upwind distance, x, and the crosswind distance, y, of
a point source from a receptor are given by.
p - Sr) cos e + (Rp - Rr) sin 6 (Al)
(A2)
tersection is:
(S
where Rp, Sp are the coordinates of the point source; Rr, Sr
are the coordinates of the receptor, and 6 is the wind direction
(the direction from which the wind blows). The units of x and
y will be the same as those of the coordinate system R, S.
Frequently a conversion is required in order to express x, and
y in meters or kilometers.
The contribution to the concentration, \p, from a single
point source to a receptor is given by one of the three following
equations where XP is in g m,~3' Q is point source emission rate
in g sec"1, u is wind speed in m sec"1, and ay and Sr + di cos 8
(A7)
The distance, d%, along an upwind ray in the direction 8
from a receptor Rr, Sr to an east-west boundary given by S =
$6 is:
(. The east coordinate of this intersection
is:
RL * Rr + dz sin 8
(A9)
(Depending upon the units of the coordinate system R, S, the
results of these equations may have to be multiplied by a
factor to convert to meters).
The contribution of the concentration, XA, from a uniform
area source directly upwind of a receptor is:
XA =
f*2
\ fdx
•/*!
(A10)
where x,4 is in g m"3, QA is area source emission rate in g sec"1
m~2,u is wind speed in m sec"1, Xi is the distance in meters
from the receptor to the locus of the upwind ray (extending
from the receptor) and the closest boundary of the area source,
X2 is the distance in meters from the receptor to the locus of
the upwind ray (extending from the receptor) and the distant
boundary of the area source, and / is given by one of the three
equations below. The integral in the preceeding equation is
evaluated numerically.
For stable conditions or unlimited mixing:
/'- #2/M2ir)1/2] (All)
In unstable or neutral conditions and if
-------
The second receptor option also determines the location ot
a single receptor downwind of each significant area source.
Since the effective height of area sources are generally lower
than point sources, the maximum concentration from the area
source is calculated quite near the boundary of the source.
The location of the maximum concentrations from specific
point and area sources will, of course, not necessarily be a
location where the contribution from all sources will result in
a maximum. Since the location of the maxima are highly de-
pendent upon the dispersion parameter values, ay and a,, any
modification of the algorithm that changes the way in which
these dispersion parameters are calculated will also require
extensive modifications to the subroutines, which determine
the maximum distances from point and area sources, if the
second receptor option is to be used.
The third receptor option allows for good area coverage of
a specified portion of the region. The boundaries of the region
to be covered and the spacing between receptors, w, are
specified by the user. In order to cover the maximum area with
the fewest number of stations, a hexagonal or 'honeycomb'
grid is used. Receptor locations are at equal distances from
.nearby receptors so that if lines are drawn to all nearby re-
ceptors, six equilateral triangles will result. Also in order to
keep the total number of receptors to a minimum, any po-
tential receptor locations generated by the third option are
deleted if they are within one-half w of any other existing re-
ceptor.
Several other options available are mainly used to delete
special output when not required. These options are not as
significant as the receptor options and will not be discussed
here.
Summary
RAM is a steady state Gaussian algorithm applicable to
urban areas for pollutants emitted from point and area
sources. Calculations are made for one-hour tune periods.
Average concentrations may be obtained for time periods up
to24hr.
Estimation of concentrations from point sources is
straightforward. Briggs' plume rise equations are used. Up-
wind and crosswind distances of each source from each re-
ceptor are determined and concentration is estimated from
various Gaussian equations.
Innovative techniques are used in keeping the number of
receptors to a minimum and in the treatment of the area
emission inventory. Except for the area source map array used
for coordinating area source number with location, area source
information is stored and used directly for a number of pos-
sible source sizes. A narrow plume simplification with con-
sideration of source height of each area is used. The emission
rates of the area sources in the source region along the upwind
azimuth are considered representative of the area emission
rates affecting the receptor from various distances upwind
(narrow plume hypothesis). Determination, at the beginning
of each simulated hour, of the effect of area sources extending
to different distances upwind are stored in tabular form with
a different table for each effective area source height (up to
3 heights allowed). Linear interpolation of these tabular values
for each source, and receptor by receptor, to obtain concen-
trations from area sources saves considerable computer time.
The various receptor options in the model allow for versa-
tility in the use of RAM. Coordinates corresponding to fixed
locations, such as air quality sampling locations may be used.
In attempting to estimate maximum concentrations for par-
ticular short-term periods, the option to select locations
downwind ot particularly significant sources can be used. To
insure good area coverage, an option is available to select ad-
ditional receptors equally spaced from each other. These
equally spaced receptors cover a particular defined region and
are added only if other receptors have not been located in the
vicinity of each proposed receptor location.
A user's guide for RAM is under preparation. One version
of this algorithm has been applied to a 3-month urban data
base related to sulfur dioxide. In order to assess the validity
of the model, comparisons of these estimates with measure-
ments are being accomplished by a group under Dr. Patrick
Hamill at Clark College in Atlanta. It is anticipated that the
algorithm will soon be made available to users as part of EPA's
User's Network for Applied Modeling of Air Pollution
(UNAMAP).
Acknowledgment
The authors appreciate the assistance of Lea Prince.
References
1. Gary A. Briegs, Plume Rise, USAEC Critical Review Series,
TID-25075, National Technical Information Service, Springfield,
VA 22161,1969.
2. Gary A. Briggs, "Some Recent Analyses of Plume Rise Observa-
tion," in Proceedings of the Second International Clean Air
Congress, edited by H. M. Englund and W. T. Beery. Academic
Press, New York, 1971. pp 1029-1032.
3. Gary A. Briggs, "Discussion on chimney plumes in neutral and
stable surroundings," Atmos. Environ. 6:507 (1972).
4. F. Pasquill, Atmospheric Diffusion, 2nd ed., Halsted Press, John
Wiley & Sons, Inc., New York, 1974. p. 374.
5. F. A. Gifford, Jr. and Steven R. Hanna, "Urban Air Pollution
Modelling," in Proceedings of the Second International Clean Air
Congress, edited by H. M. Englund and W. T. Beery. Academic
Press, New York, 1971. pp 1146-1151.
6. Scott D. Thayer and Robert C. Koch, "Validity of the Multiple-
Source, Gaussian Plume Urban Diffusion Model Using Hourly
Estimates of Input," in Preprint Volume of the Conference on
Urban Environment and Second Conference on Biometeorology,
Oct. 31-Nov. 2,1972, Philadelphia, PA, published by Amer. Me-
teorol. Soc., Boston, MA.
Appendix
Dispersion and Analytic Geometry Equations Used in RAM
Expression*
These expressions are used in the discussions that follow:
gl = exp (-0.5y2/V)
g2 = exp [-0.5(2 - HW
-------