United States Office of Air Quality EPA-450/4-84-024
Environmental Protection Planning and Standards August 1984
Agency Research Triangle Park NC 27711
Air
&EPA User's Manual For
OZIPM-2: Ozone
Isopleth Plotting
With Optional
Mechanisms/
Version 2
-------
OZIPM Manual Revision
Air Management Technology Branch (MD-14)
Monitoring and Data Analysis Division
U. S. Environmental Protection Agency
Research Triangle Park, North Carolina 27711
I would like to receive future revisions to the User's Manual For OZIPM-2;
Ozone Isopleth Plotting With Optional Mechanisms/Version 2.
NAME:
ADDRESS:
ZIP:
TELEPHONE (Optional):
LL!
U.S. Environmental Protection Agency
Region 5, I-nnry fS^L-iq
230 S. Dea-Lc.ni K: -Ml, Lcr-ra 1670
Chi oago, IL
-------
EPA-450/4-84-024
User's Manual For OZIPM-2:
Ozone Isopleth Plotting With Optional
Mechanisms/Version 2
By
Gerald L. Gipson
Air Management Technology Branch
U.S. ENVIRONMENTAL PROTECTION AGENCY
Office Of Air Quality Planning And Standards
Monitoring And Data Analysis Division
Research Triangle, North Carolina 27711
August 1984
-------
DISCLAIMER
This report has been reviewed by the Office of Air Quality Planning and
Standards, U. S. Environmental Protection Agency, and approved for publication.
Mention of trade names or commercial products is not intended to constitute
endorsement or recommendation for use.
ACKNOWLEDGEMENTS
The original OZIPM User's Manual was prepared by Dr. Gary Whitten and
Mr. Henry Hogo at Systems Applications, Inc., and served as a basis for this
manual. Some of the computer code used in the EKMA routine was developed by
Mr. Mike Mueller of the Missouri Department of Natural Resources. The author
also wishes to thank Dr. Edwin Meyer, Dr. Marcia Dodge, and Mr. David Layland
at the U. S. Environmental Protection Agency for their helpful suggestions.
Finally, special thanks are extended to Mrs. Carole J. Mask and Ms. Edna Winstead
for their help in typing, editing, and assembling the document.
ii
-------
PREFACE
This publication contains information on the OZIPM-2 computer program.
Although the program has been checked throughly on a UNIVAC computing system,
incompatibilities on other systems may be found. In case there is a need to
update this program, revisions will be distributed in the same manner as this
report. Revisions may also be obtained as they are issued by completing and
mailing the form at the front of the manual.
The computer program described in this manual is available from the U. S.
Environmental Protection Agency, and can be acquired by sending a magnetic tape
along with a written request to:
OZIPM-2 Program
Air Management Technology Branch (MD-14)
Monitoring and Data Analysis Division
U. S. Environmental Protection Agency
Research Triangle Park, North Carolina 27711
iii
-------
TABLE OF CONTENTS
PAGE
Disclaimer • i i
Acknowledgments ii
Preface ill
List of Figures vi
List of Tables vii
1.0 INTRODUCTION 1
1.1 Model Overview 2
1.2 System Description 5
1.3 Input/Output Data 7
2.0 TECHNICAL DISCUSSION 9
2.1 Mathematical Formulation of the OZIPM-2 Kinetics
Model 9
2.1.1 Initial Conditions 10
2.1.2 Dilution 12
2.1.3 Entrainment of Pollutants From Aloft 16
2.1.4 Post-0800 Emissions 16
2.1.5 Chemical Reaction 20
2.2 Description of OZIPM-2 Operations 21
2.2.1 Single Simulation (CALCULATE) 21
2.2.2 Isopleth Diagram (ISOPLETH) 23
2.2.3 Control" Calculation (EKMA) 25
3.0 OZIPM-2 OPTIONS AND DATA REQUIREMENTS 32
3.1 Overview of OZIPM-2 OPERATION 32
3.2 Description of OZIPM-2 Options 37
3.2.1 Alternative Mechanism Inputs (MECHANISM) 38
3.2.1.1 Mechanism Structure 39
3.2.1.2 MECHANISM Inputs 44
3.2.2 City-specific Inputs 50
3.2.2.1 Light Intensity (PLACE) 51
3.2.2.2 Dilution (DILUTION AND MIXING) 52
3.2.2.3 Post-0800 Emissions (EMISSIONS AND MASSEMISS) 54
3.2.2.4 Reactivity Factors (REACTIVITY) 57
3.2.2.5 Transported Pollutants (TRANSPORT) 59
3.2.3 Options for Program Control 62
3.2.3.1 Single Simulation Option (CALCULATE) 62
3.2.3.2 Isopleth Diagram Option (ISOPLETH) 64
3.2.3.3 Control Calculation (EKMA) 68
3.2.4 Miscellaneous Options 70
3.2.4.1 Title (TITLE) 70
3.2.4.2 Offline Plot (PLOT) 71
3.2.4.3 Simulation Length (TIME) 72
3.2.4.4 Isopleth Diagrams for Alternate Species (SPECIES) 72
3.2.4.5 Setting Initial Concentrations (INITIAL) 73
3.2.4.6 Controlling Simulation Accuracey (ACCURACY) 74
3.2.4.7 Using Previous Simulation Results (ALREADY) 75
iv
-------
PAGE
3.3 Multiple Isopleths or Calculates 76
4.0 USER'S GUIDE 81
4.1 Formats for Input Data 81
4.2 Program Generated Messages 110
4.2.1 Fatal Error Messages 110
4.2.2 Warning Me ssages 112
4.3 Computer Considerations 113
4.3.1 Potential System Incompatibilities 114
4.3.2 Computer Requirements 116
4.3.3 Input/Output 117
4.3.4 CALCOMP Routine 118
4.3.5 Job Control Language 118
5.0 EXAMPLE OZIPM-2 RUNS 120
5 .1 Benchmark Example 120
5.2 EKMA Example 125
5.3 Alternate Mechanism Example 131
5.4 Miscellaneous Option Example 144
6.0 REFERENCES 157
APPENDIX A A-l
APPENDIX B B-l
APPENDIX C C-l
-------
LIST OF FIGURES
No. Page
1-1 Schematic of OZIPM-2 System , 6
2-1 Graphical Depicion of Characteristic Curve 15
2-2 Example Ozone Isopleth Diagram 24
2-3 Example Emission Reduction Calculation Using A Single Ozone
Isopleth Diagram 28
3-1 Example Order for OZIPM-2 Inputs 77
3-2 Schematic Diagram Indicating Multiple Runs 79
5-1 Output For Example 5-1 122
5-2 Output For Example 5-2 128
5-3 Output For Example 5-3 136
5-4 Output For Example 5-4 149
vi
-------
LIST OF TABLES
No.
2-1 Mathematical Representation of the OZIPM-2 Kinetics/
Trajectory Model 11
2-2 Determination of Initial Concentrations 13
2-3 Mathematical Representation of Entrainment 17
2-4 Mathematical Representation of Post-0800 Emission 19
3-1 Options Common to Both OZIPP and OZIPM-2 33
3.2 New OZIPM-2 Options 35
3-3 CB-3 Mechanisms Input for OZIPM-2 45
4-1A Input Format For MECHANISM Option 82
4-1B Input Format For TITLE Option 87
4-1C Input Format For PLOT Option 88
4-1D Input Format For TIME Option 89
4-1E Input Format For SPECIES Option 90
4-1F Input Format For INITIAL Option 91
4-1G Input Format For ACCURACY Option 92
4-1H Input Format For ALREADY Option 93
4-11 Input Format For PLACE Option 94
4-1J Input Format For DILUTION Option 95
4-1K Input Format For MIXING Option 96
4-1L Input Format For REACTIVITY Option 97
4-1M Input Format For EMISSIONS Option 99
4-1N Input Format For MASSEMISS Option 101
4-10 Input Format For TRANSPORT Option 103
4-1P Input Format For CALCULATE Option 106
4-1Q Input Format For ISOPLETH Option 107
4-1R Input Format For EKMA Option 108
5-1 Input Data for Example 5-1 121
5-2 Input Data for Example 5-2 126
5-3 Input Data for Example 5-3 133
5-4 Input Data for Example 5-4 146
vii
-------
1.0 INTRODUCTION
The Empirical Kinetics Modeling Approach (EKMA) is a procedure for
evaluating what effect changes in emissions of Volatile Organic Compounds
(VOC) and oxides of nitrogen (NOX) will have on ambient concentrations of
ozone. 1 >2>3 ,•+ The evaluations are carried out by using ozone isopleth diagrams
that graphically depict peak, one-hour average concentrations of ozone as a func-
tion of early-morning concentrations of nonmethane organic compounds (NMOC) and
NOX. The isopleth diagrams can be generated by a computer program known as the
Kinetics Model and Ozone Isopleth Plotting Package, or OZIPP.5,6 xn construc-
ting these -diagrams, OZIPP makes use of a simplified trajectory model and a
chemical kinetic mechanism developed by Dodge that mathematically simulate the
atmospheric processes leading to the formation of ozone and other by-products.2
With the advent of newer chemical mechanisms, the need has arisen for a more
general program that allows the use of alternate mechanisms. One such program,
Ozone Isopleth Plotting with" Optional Mechanisms (OZIPM), has been available
for some time.' Since its development, a number of revisions have been made to
the computer code in an effort to improve its flexibility and to enhance its
compatability among various computer systems. The purpose of this manual is to
describe the revised computer program, its associated input requirements, out-
put generated by the program and some computer considerations that should be
taken into account when executing the program. To avoid confusion with the
previous version of OZIPM, the new program will be referred to as OZIPM/Version
2, or OZIPM-2.
Those familiar with the original OZIPM program know that it is operation-
ally similar to OZIPP, the program designed to be used exclusively with the
DODGE mechanism. This same operational structure has been retained in OZIPM-2.
Because the theoretical basis for OZIPM-2 and OZIPP is the same, and because
-------
both models operate in a similar manner, the descriptions of each overlap con-
siderably. As a consequence, most emphasis in this document will be placed on
describing the new options that have been incorporated in OZIPM-2. For those
unfamiliar with either OZIPP or OZIPM, the use of Reference 6, User's Manual
For Kinetics Model and Ozone Isopleth Plotting Package, as a companion document
to this manual is recommended. Finally, it should be emphasized that this
document is directed primarily towards those who are involved in coding input
data and setting up the computer runs. For info ration on how the model inputs
are formulated and how the model results can be used in typical regulatory
applications, the reader is referred to documents such as Preferences 8 and 9.
The remaining portions of this chapter are divided into three sections.
The first provides a general overview of the OZIPM-2 model, with particular
emphasis placed on summarizing differences between OZIPM-2 and OZIPP. This
section is followed by brief discussions of OZIPM-2 structure, required input
data, and the output produced by the program. The remaining chapters discuss
the technical basis for the model, the program options, and the procedures for
formatting input data and running the model. The final chapter includes example
model runs illustrating the concepts discussed in the previous chapters.
1.1 MODEL OVERVIEW
As noted previously, the EKMA technique makes use of ozone isopleth diagrams
to relate changes in peak ozone concentration to changes in VOC and/or NOX emis-
sions. As such, it is primarily intended for estimating emission controls that
are needed within an urban area as part of the State Implementation Plans (SIPs)
to achieve the National Ambient Air Quality Standard (NAAQS) for ozone. EKMA
is therefore most appropriately used to address the following two types of
quastions:
-------
0 What percentage reduction in VOC emissions will be needed to attain the
NAAQS for ozone?
0 What change in ozone Is likely to accompany a given change in VOC
emissions?
The isopleth diagrams that are generated by either OZIPP or OZIPM-2 can be made
to reflect conditions that are specific to any particular urban area. Gen-
eration of these city-specific diagrams requires the use of city-specific infor-
mation on the location and time of year (determining sunlight intensity), local
atmospheric dilution rates, diurnal patterns of VOC and NOX emissions, and infor-
mation on pollutants transported into the city from upwind areas. The two pro-
grams can also be used to simulate the formation of a single ozone peak for a
specified set of city-specific assumptions and initial concentrations of NMOC
and NOX. In this mode, the program can display the time rate of change in
pollutant concentrations, as well as rates of individual chemical reactions. In
either the isopleth or single simulation mode, the models are generally limited
in applicability to ozone problems within or immediately downwind of urban areas,
and thus, not applicable to the following types of situations:
° rural ozone problems
0 cases in which peak ozone occurs very early in the morning or
at night
0 development of control strategies for single sources or small
groups of sources.
The theoretical model underlying both OZIPP and OZIPM-2 is conceptually
similar to a trajectory-type photochemical simulation model. A column of air
contains initial concentrations of ozone and its precursors. The height of the
-------
column extends from the earth's surface to the top of the surface-based mixed
layer, and the diameter of the column is chosen such that (1) pollutant concen-
trations inside and just outside the column are similar so that the horizontal
exchange of the air at the perimeter of the column can be ignored, and (2) the
horizontal exchange at the column's boundaries is small compared to the volume
of air within the column. The column moves along a user-defined trajectory,
picking up fresh emissions which are dispersed uniformly and instantaneously
throughout the column. Also as the column moves, the mixed layer (i.e., the
column height) increases, resulting in the dilution of pollutant concentrations
within the column and the entrainment of pollutants from aloft into the column.
As all of these physical processes are occuring, the chemical kinetics mechanise
is used to simulate the chemical reactions taking place within the column.
As noted earlier, the chemical reactions are simulated in OZIPP by means of
the DODGE chemical mechanism shown in Appendix A. While OZIPM-2 also contains
this mechanism as a default, a major feature of this program is that it allows
the use of an alternative mechanism, and a substantial portion of this document
will be directed towards describing this option.
Another new feature of OZIPM-2 is the inclusion of a routine that uses the
EKMA technique to calculate directly VOC emission reductions needed to lower peak
ozone to the level of the ozone NAAQ3 (currently, 0.12 ppm). This new option
bypasses the need to generate ozone isopleth diagrams and then manually compute
control estimates. Although this option does not provide as much information
as the isopleth diagram, it is typically more efficient in terms of computer
time. Other features of OZIPM-2 that enhance its flexibility and facilitate its
routine application include the following:
-------
0 an optioa that allows the user to specify the diurnal gcovth pattern
in the mixed layer;
0 an option that permits the user to supply the program with informa-
tion needed to compute hourly emission fractions directly rather thaa computing
them manually; and
0 options that permit specifying the composition of pollutants trans-
ported into an urban area.
1.2 SYSTEM DESCRIPTION
The system structure of OZIPM-2 is almost identical to that of OZIPP (see
Figure 1-1). The program receives card-image input, and produces line printer
output. Two optional output files may also be generated by the user. The first
is an output file that contains the data needed to produce an isopleth diagram
on an off-line plotter such as CALCOMP or VERSATEC. The second file contains
information on the change in ozone as a function of VOC emission reduction that
is produced by the new EKMA routine.
Internally, the structures of OZIPM-2 and OZIPP are also similar. A
simulation section controls the individual model simulations, and an interpo-
lation and plotting section controls the generation of isopleth diagrams. In
addition to these two sections, OZIPM-2 also contains a new section to direct
the VOC control calculations performed with the EKMA routine. The EKMA routine
is described in Chapter 2, but users desiring more information on the simulation
section and the interpolation and plotting section are referred to Preference 6,
the OZIPP User's Manual.
-------
CARD
IMAGE
INPUT
OZIPM-2
Optional
OFF-
LINE
PLOTTER
PRINTOUT
Figure 1-1. Schematic of OZIPM-2 System
-------
1.3 INPUT/OUTPUT DATA
The OZIPM-2 program contains preset data that must generally be over-
ridden when a city-specific diagram, EKMA calculation or single simulation is
performed. Typically, these values will include:
0 city latitude
0 city longitude
° time zone
0 date
0 morning and afternoon mixing heights
0 concentrations of ozone, NMOC and/or NOX in the air above the early
morning mixing height
0 concentrations of ozone, NMOC and/or NOX within the early morning
mixed layer that are transported from upwind of the city
0 emissions of VOC and/or NOX after 0800 LDT
0 organic reactivity
0 initial fraction of NOX that is N02
Tf a chemical mechanism other than the default is used, then additional input
variables are required. Examples include identification of the organic compon-
ents, proper specification of the photolytic reaction rates, and specification
of the individual mechanism reactions and their corresponding rates of reaction.
Additional input information is also required for the EKMA routine, including
the NMOC/NOX ratio, the observed peak ozone concentration, and the manner in
which transported pollutants are assumed to change in the future. The use of
some of OZIPM-2's other new options may also require additional information.
For example, if the user wishes to define the diurnal mixing height profile
rather than use the default pattern, then hourly mixing heights must be input.
-------
As with QZI??, OZIPM-2 also allows the user to control various parameters that
govern program operation (e.g., error tolerances, number of simulations per-
formed in generating an ozone isopelth diagram, etc.).
The output of OZIPM-2 is controlled by the operational mode selected by
the user. In the isopleth diagram mode, tables summarizing simulation results
are produced as well as a line-printer isopleth plot- The user also has the
option of generating a diagram via an off-line plotter such as CALCOMP. Under
the single simulation mode, summary tables are routinely produced, but the user
has th'i option of obtaining detailed information for any particular simulation
(e.g., concentrations of all species, rates of individual reactions, etc.).
Selection of the EKMA mode causes tha generation of tabular reports summarizing
the simulations performed and the information used in the control calculations.
Regardless of the mode that is selected, the input information supplied by the
user is displayed before the generation of other outputs.
-------
2.0 TECHNICAL DISCUSSION
The OZIPM-2 program mathematically simulates the chemical and physical
processes leading to the formation of ozone in the atmosphere. The OZIPM-2
user controls these simulations by selecting one of three major options. The
first option directs the model to perform a single simulation. It might be
invoked, for example, to test the model's predictive capabilities. A second
option available to the user causes the generation of an isopleth diagram. An
ozone isopleth diagram could, for example, be used to estimate the VOC emission
reduction needed to achieve the ozone NAAQS. The third major option directs
OZIPM-2 to compute a VOG emission reduction estimate directly, thereby circum-
venting the need to generate an ozone isopleth diagram.
Of the three options discussed above, the final two (i.e., isopleth diagram
generation and direct calculation of a VOC control estimate) are essentially
repeated applications of the first option (i.e., the single simulation). The
basis for the single simulation is a simplified kinetics/trajectory model. The
purposes of this chapter are to document the mathematical formulation of that
model, and to document the other, principal computational procedures associated
with each of the three major options discussed above. The discussions that
follow are quite detailed, and not essential to successful formulation of model
inputs and subsequent model execution. Thus, potential OZIPM-2 users may wish
to read the remaining chapters before this one.
2.1 MATHEMATICAL FORMULATION OF THE OZIPM-2 KINETICS MODEL
A brief narrative description of the kinetics/trajectory model underlying
OZIPM-2 was presented in Chapter 1. More extensive descriptions are contained
in References 3, 6, 8, and 9. Conceptually, the model is virtually identical
to the one incorporated in OZIPP, although some modifications have been made
-------
to allow the use of chemical mechanisms other than the default DODGE mechanism.
Since the theoretical basis for the model is Independent of the mechanism
selected, the discussions that follow are structured accordingly. The pro-
cedures for implementing and using an alternative mechanism will be discussed
in subsequent chapters.
The mathematical formulation of the trajectory model underlying OZIPM-2
can be summarized by the set of ordinary differential equations derived from
the definitions shown in Table 2-1. Several of the terms in these equations
correspond to physical processes such as dilution, entrainment of pollutants
from aloft, and precursor emissions. Additional terms are required to account
for increases or decreases in pollutant concentrations resulting from chemical
reaction. Also, solving the set of differential equations requires that the
species concentrations at the beginning ol the simulation (i.e., initial con-
centrations) be specified. The equations in Table 2-1 are solved numerically
to produce instantaneous concentrations of individual species as a function of
time. OZIPM-2 also computes the maximum one-hour concentration of ozone (or
any other specified pollutant) that occurs within the simulation period (nor-
mally 0800 LOT to 1800 LDT). The discussions below begin with definitions of
the individual terms in the set of equations shown in Table 2-1, and conclude
with descriptions of the procedures used to perform a single simulation, generate.
an isopleth diagram, or compute a VOC control estimate directly.
2.1.1 Initial Conditions
In any trajectory model application, concentrations of all species
within the theoretical column of air must be specified for the time at which
the simulation starts. Whenever a single simulation is performed with OZIPM-2,
the initial concentrations of organics and NOX must be specified by the user.
10
-------
TABLE 2-1. MATHEMATICAL REPRESENTATION OF THE OZIPM-2
KINETICS/TRAJECTORY MODEL3
= the concentrations of the ith chemical species in the mixed
volume at time = t
= the initial concentration of the ith species in the mixed
volume at time = 0
c^aloft _ j^g concentration of the ith species above the mixed layer
H = f(t) mixing height at time = t
dfL = f'(t) rate of rise at time = t
dt
Kn = ^H^ dt dilution rate at time = t
= -KD Cj decrease in species i caused by mixing height rise
dt
dil
dt
= KD
C-a increase in species i caused by entra lament due to
ent
mixing height rise
E_£ = f(t) mass of species C-^ emitted per unit time at time = t
(concentration - height units)
dC
dt
emis
increase in species C^ caused by emissions into a mix-
ing volume with unit area and height, MH, at time t
Pj_ = func (Cj,j=l,n) production of species Cj due to chemical formation at
time t
L^ = func (Cj,j=l,n) loss of species C^ due to chemical reaction at tine t
dt
= PI ~ LI increase or decrease in species C^ caused by chemical
chem reactions of all species at time t
dt I TOTAL dt
dil
dt
ent
dt
emis
dC-j
1' ^ Ichem
SOLUTION:
rc
dC-j
dt
TOTAL
numerical integration used to solve initial
value, differential equation problem
aAdopted from Reference 10.
11
-------
(When utilizing the isopleth or EKMA options, however, these concentrations are
generated internally by the program.) For all other species in the mechanism,
default concentrations are zero, although the usar has tha option to override
these by specifying the concentration of any individual species. In addition
to the initial concentrations, the user has the option of specifying ozone,
NOX) and/or NMOG levels that are transported into the city within the surface
layer. The transport levels are added to the initial concentrations to determine.
the overall initial concentrations used in the model simulation.
Table 2-2 summarizes the initialization calculations that are per-
formed for ozone, NOX and organics. Note that the expression for organics has
been written generally for any organic species. The actual number of species
included in the simulation will be dictated by the particular choice of chemical
mechanism. With regard to the organic compounds, OZIPM-2 is structured to keep
track of nonmethane hydrocarbon compounds separately from oxygenated corapounls
such as formaldehyde, acetaldehyde, etc. The computational procedures, however,
are identical for both types of compounds. The carbon fractions and carbon num-
bers in Table 2-2 (i.e., f^, (fts)i' (CN)i) must be specified by the user when
a mechanism other than DODGE is used, and these will be discussed in later
chapters. For the DODGE mechanism, default numbers are preset in OZIPM-2, and
the reader is referred to Reference 6 for a discussion of default assumptions.
The initialization procedures for ozone and NOX are the same for both OZIPM-2
and OZIPP, and are not affected by choice of mechanism.
2.1.2 Dilution
In OZIPM-2, dilution occurs as a result of the rise in the mixed layer.
As shown in Table 2-1, the dilution rate is determined at any particular ti:iia
in the simulation by dividing the rate of mixing height rise by the magnitude
-------
TABLE 2-2. DETERMINATION OF INITIAL CONCENTRATIONS
1. Ozone
[0310 = [°3lts
where
[03]o = initial concentration of ozone, ppmV
1^3 Its = ozone concentration transported in surface layer, ppmV
(default is zero)
2. N02, NO
[N02]0 = [NOX]0 fN02 + [N0x]ts
[N0]0 - [NOX]0 (l-fN02)
where
[N02JQ = initial concentration of N02, ppmV
[N0]0 = initial concentration of NO, ppmV
[NOX]0 = initial concentration of NOX, ppmV
%02 = fraction of initial NOX that is N02 (default = 0.25)
[N0x]ts = NOX concentration transported in surface layer, ppmV
(default is zero)
3. Organics
[HCiJo = |[NMOC]0 (fi) + [NMOC]ts (fts)il /(CN)i
where
[HC^]0 = initial concentration of organic species i, ppmV
[NMOC]0 = initial concentration of total NMOC, ppmC
fj = fraction of NMOC that is organic species i (ppmC basis)
[NMOC]ts = NMOC concentration transported in surface layer, ppmC
(fts)i = fraction of surface transported NMOC that is organic
species i (ppmC basis)
= number of carbon atoms associated with organic
species i (i.e., the carbon number)
13
-------
of the mixing height. Thus, the dilution rate is determined solely by the
diurnal profile of the mixing height used in the simulation. Within OZIPM-2,
two options exist for specifying this pattern. In the first, the growth in the
mixed layer is governed by a generic, preset, characteristic curve.H With the
second option, the user specifies mixing heights at hourly intervals of the
simulation. Each option is discussed in more detail below.
The characteristic curve relates the fraction of growth in mixing
height during any particular day to the corresponding fraction of time between
sunrise and sunset (see Figure 2-1).* Since the timing of sunrise and sunset
varies throughout the year, the OZIPM-2 program internally computes these times
for the specific day being modeled. Typically, the user specifies only the
mixing height at the start of the simulation and the maximum afternoon mixing
height. Alternatively, the user has the option of specifying the time at which
the mixing height begins to rise, and the time at which the afternoon mixing
height reaches its maximum. In the latter case, the general shape of the
characteristic curve will be used, but the timing will conform to the user
defined inputs.
As an alternative to the characteristic curve, any particular mixing
height profile may be specified by the user. Under this option, the model inputs
consist of the mixing heights at each hour of the model simulation. The dilution
rate is computed from the specified profile by linear interpolation of the mixing
height and the rate of growth between the appropriate hourly inputs. It should
be added that the linear interpolation approach introduces discontinuities in
*This curve has been modified slightly in OZIPM-2 by using cubic-splines
to eliminate discontinuities in the dilution rate at inflection points.
14
-------
1.00
F
R
A
C
T
I
0
N
0
F
G
R
0
U
T
H
0.75 —
0.50 —
0.35 —
0.00
0.0
0.2
0.4
0.6
0.8
1.0
SUNRISE
SUNSET
FRACTION OF DAVLIGHT HOURS
FIGURE 2-1. GRAPHICAL DEPICTION OF CHARACTERISTIC CURVE
15
-------
the dilution rate due to the abrupt changes in the rate of growth of the mixing
height from one hourly interval to the next. Although these discontinuities are
not desirable, tests have indicated that their effect on the overall simulation
results is not significant.
2.1.3 Entrainment of Pollutants From Aloft
Entrainment is treated essentially the same in OZIPM-2 as in OZIPP.
Pollutants from aloft are entrained and distributed uniformly and instantane-
ously in the mixed layer as a result of growth in the mixing height from its
early morning level to its afternoon maximum. The concentrations of the pollut-
ants aloft do not change with time, and thus are assumed to be constant within
the layer extending from the top of the mixing height to an altitude at least
as high as the afternoon maximum. As shown in Table 2-1, the rate of entrain-
taent of any particular species varies proportionally with the dilution rate and
the concentration aloft. Default concentrations of all pollutant levels aloft
are zero, but the user may provide inputs for ozone, N02 and NMOC. (Note that
all NOX aloft is assumed to be NC^O If the concentration of organics aloft is
input, and a mechanism other than DODGE is being used, then the user must specify
apportioning factors to split total NMOC aloft into the individual organic
groups. Table 2-3 gives the mathematical representation of the entrainment
process.
2.1.4 Post-0800 Emissions
As in OZIPP, emissions of VOC and NOX that occur subsequent to the
simulation starting time may be included in the model simulations. These emis-
sions are modeled by adding pollutant concentrations to the levels already within
the column. The magnitude of the concentration that is added is derived by mul-
tiplying a user determined emission fraction times the initial concentration of
16
-------
TABLE 2-3. MATHEMATICAL REPRESENTATION OF ENTRAINMENT
dt ent = KD[03]ta
d[NO?]
dt
dt
where
dt
ent = KD[NOx]ta
ent = KD (fta)i[NMOC]ta/(CN)1
d[N02]
ent, dt
d[HC<]
ent, dt
ent
entrainment rates of ozone, N02
and organic species i, ppmV/min
l03]ta,[NOx]ta
[NMOC]ta
dilution rate, min
03 and NOX concentrations aloft, ppmV
total NMOC concentration aloft, ppmC
fraction of aloft NMOC that is organic
species i
(CN)i = carbon number for species i
17
-------
NMOC or NOX. (Expressing the emissions as a function of initial concentrations
permits easy evaluation of emission changes through manipulation of initial con-
centrations alone, i.e., hourly emission levels do not have to be adjusted
separately.) The emission fractions are expressed on an hourly basis, but the
OZIPM-2 model internally converts the hourly data to continuous functions for
use in solving the differential equations. In addition to this adjustment, the
concentrations added to represent the impact of fresh emissions must be adjusted
relative to the column volume. This is done internally within the program by
multiplying the concentration times the ratio of the mixing height at the start
of the simulation to the height at any particular time in the simulation.
The procedures just described are expressed mathematically as shown in Table
2-4. It should be noted that 90% of all NOX emissions are assumed to be NO,
with the remaining 10% being N02- Apportionment of total NMOC into individual
organic species is accomplished by using the same carbon fractions that are
used to apportion initial NMOC concentrations to individual species.
The key inputs to be supplied by the user for post-0800 emissions are
the hourly emission fractions. Although they may be specified directly as is
done with OZIPP, a special option has been added to OZIPM-2 that allows the user
to input information on mass emission rates, initial concentrations, and initial
mixing height, and direct OZIPM-2 to compute the emission fractions internally.
The procedures used in the computations have been explained in detail in
Reference 8, Guideline For Use Of City-specific EKMA In Preparing Ozone SIPs.
In summary, an emission fraction may be computed according to the following
formula:
18
-------
TABLE 2-4. MATHEMATICAL REPRESENTATION OF POST-0800 EMISSIONS
d[N09]
dt
- O'1 t
em
tNOx3o
d[NO]
dt
d[HC,]
dt
fi
em
where
dt em,
d[NO;>]
dt
(ENOx)t>
VHt) [NMOC]0/(CN);
em, d t em
H
[NOX]0,[NMOC]0
= rates of change in concentration
due to post-0800 emissions, ppmV/min
= value of emission fractions at time t
= mixing height at start of simulation
= mixing height at time t
= initial concentrations of NOX (ppmV)
and NMOC (ppmC)
= fraction of total NMOC that is organic
species i (same value used for
initial conditions)
= carbon number for species i
19
-------
Ei = a CoHo (2-1)
where
E^ = emission fraction for hour i
f\
0. = mass emission density for hour i, kg/km
Co = initial NMOC or NOX concentration, ppmC or ppm
Ho = mixing height at start of simulation, km
a = conversion factor: 595 kg/km3 ppmC for organics
and 1890 kg/km3 ppm for NC>
A
This new OZIPM-2 option requires the user to specify the initial concentrations
of NMOC and NOX, initial mixing height Ho, and the mass emission density for each
hour. (The procedures for formulating these inputs are described in Reference 8
and will not be repeated here.) OZIPM-2 will then compute the hourly emission
fractions from this set of information, thereby eliminating the need for the user
to compute the fractions manually. When using this option, the model inputs must
be expressed in the units indicated in equation 2-1.
2.1.5 Chemical Reaction
The rate of change in pollutant concentration due to chemical reaction
is treated identically in OZIPP and OZIPM-2. The overall rate of change is equal
to the difference between production rate and rate of loss. The production rate
(loss rate) is the sum of all individual rates of reaction in which a species is
produced (destroyed). An individual reaction rate is expressed as the product of
a concentration term and a reaction rate constant term, e.g.,
Nr
Rj = kj TT Cp (2-2)
P=l
where
Ri = rate of reaction j
20
-------
k.: = rate constant for reaction j
J
Cp = concentration of reactant p
Nr = total number of reactants in reaction j
Within OZIPM-2, the DODGE mechanism has been set up in the appropriate format
needed for computing the chemical rates of change for each species. When an
alternative mechanism is used, the chemical rates of change are derived from the
user supplied inputs on the reactants and products of each reaction, and their
rate of reaction. Chapter 3 will include a discussion of the specific methods
that should be used when encoding a chemical mechanism for use with OZIPM-2.
2.2 DESCRIPTION OF OZIPM-2 OPERATIONS
As described in the introduction to this chapter, the OZIPM-2 user may
direct the program to perform three distinct operations:
1. conduct a single simulation,
2. generate an ozone isopleth diagram,
3. calculate a VOC control estimate directly.
The computational procedures used in OZIPM-2 to perform the first two
operations are virtually identical to those used in OZIPP, and thus will only
be summarized here. For a more complete description of these procedures, the
reader is referred to the OZIPP User's Manual, Reference 6.
2.2.1 Single Simulation (CALCULATE)
A single simulation is conducted when the OZIPM-2 user invokes the
CALCULATE option. (Chapters 3 and 4 explain in detail the specific inputs
associated with the selection of this operation.) In most instances, the user
will supply city-specific inputs for the city under review (e.g., city location,
date, dilution, post-0800 emissions, transported pollutant levels, etc.). If a
mechanism other than DODGE is being used, the user must also supply information
21
-------
on how total NMOC is to be divided into individual organic groups. OZIPM-2 uses
this information to set up the differential equations that must be solved (i.e.,
Table 2-1). In setting up those equations, input variables that vary with time
(e.g., dilution rate, post-0800 emissions and photolytic rate constants) are
structured so that they may be updated continuously throughout the simulation.
The only other set of inputs that must be supplied by the user is the initial
concentrations of NOX and total NMOC. Procedures that may be used to estimate
these values are discussed in Section 3.3 of Reference 9, Guideline For Using
The Carbon-Bond Mechanism In City-specific EKMA. (Note that, while Reference 9
is directed towards use of the carbon-bond mechanism, the procedures described
in that section are applicable to the use of any chemical mechanism with EKMA.)
In performing a single simulation, OZIPM-2 numerically integrates the
set of differential equations discussed in the previous sections. Since the
numerical integration scheme has been discussed in Reference 6, the OZIPP User's
Manual, it will not be repeated here. The solution produces instantaneous con-
centrations of individual species as a function of time. OZIPM-2 will also
compute the maximum one-hour average concentration of a specified pollutant that
occurs during the simulation. While this operation is routinely performed for
ozone, the user has the option of changing to another pollutant by means of the
SPECIES option (discussed in Chapters 3 and 4). The user also has the option of
controlling the amount of information about the solution that is displayed. With
the default operational mode, concentrations of major pollutants (e. g., NMOC,
NOX and ozone) are shown at hourly intervals (e.g., 0800, 0900, 1000, etc.).
However, the user may control the times at which the concentrations are displayed
(e.g., half-hour intervals), and may display additional information such as the
concentrations of all species in the mechanism, the rates of all chemical reac-
tion, and the overall time rates of change of the species due to both chemical
22
-------
and physical processes. Again, these options will be more fully discussed in
subsequent chapters.
2.2.2 Isopleth Diagram (ISOPLETH)
An isopleth diagram is a graphical display of maximum one-hour average
concentrations of any pollutant plotted as a function of initial NMOC and NOX
concentrations. An example ozone isopleth diagram is shown in Figure 2-2. Such
a diagram is created by performing repeated single simulations in which all vari-
ables except the initial NMOC and NOX concentrations remain unchanged from
simulation to simulation. The initial NMOC and NOX concentrations used in the
individual simulations must be chosen in a way that will provide good diagram
definition (i.e., provide enough points that are sufficiently well spaced to
permit accurate interpolation). The final step involves using the single
simulation results to interpolate and plot the isopleths representing specific,
one-hour average concentration levels.
The OZIPM-2 procedures for generating an ozone isopleth diagram are
the same as those used in OZIPP, and will only be briefly described here. Single
simulations are first performed using the initial NMOC and NOX concentrations
corresponding to each of the four corners of the diagram. Two more simulations
are performed for the diagram edges in an attempt to locate the intersection
points of the lowest valued isopleth with those edges. After performing these
six simulations, the initial NMOC and NOX concentrations for subsequent calcula-
tions are chosen along radial lines emanating from the origin (i.e., lines
corresponding to constant ratios of NMOC to NOX). Finally, two simulations are
again performed for the diagram edges to aid in the location of the lowest valued
isopleth. As with OZIPP, the OZIPM-2 user may control the scales of the abscissa
(NMOC) and the ordinate (NOX), the number of NMOC/NOX radials used, and the
23
-------
0.2 0.4 0.8 0.8 1.0 - 1.2 1.4 1-6 1.8
111 I ! I L 1 J t 11 ± 1 L1 lllIJIIltl»tl
0.2 0.4 0.6 0.8 1.0 1.2 1-4 1.6 1.8 2.0
HttHC.fPMC
Figure 2-2. Example Ozone Isopleth Diagram
24
-------
number of points along those radials that are used in the simulations. The
selection of the individual simulation points is, however, controlled internally
by OZIPM-2.
The selection of the individual simulation points along each radial,
and the drawing of a smooth curve of constant concentration through the data
points generated from the single simulations are both controlled by an inter-
polation scheme that makes use of hyperbolic splines. The hyperbolic spline
approach was selected over the cubic spline approach since kinetic systems
generally yield curves more closely resembling exponential functions. A note-
worthy feature of the hyberbolic splines is the existence of a tension factor
that affects the interpolated values. The lowest value drives the interpolation
towards the cubic-spline approach, while the highest value drives the inter-
polation towards piece-wise linear interpolation. While the tension factors
are adjustable by the user, the default values should be adequate in most cases.
Whenever the ISOPLETH option is invoked, a line-printer diagram is
always produced. The OZIPM-2 user also has the option of producing a diagram
on an off-line plotter (such as CALCOMP). The only major new feature of OZIPM-2
is the capability to produce an isopleth diagram of any particular species,
rather than just ozone. Although the default species is ozone, the user may
select any other species by invoking the SPECIES option, which will be discussed
in Section 3.2.4.4.
2.2.3 Control Calculation (EKMA)
A major new feature of OZIPM-2 is the capability to compute directly
the percent reduction in NMOC needed to lower peak ozone to the level of the
ozone NAAQS, i.e., 0.12 ppm. Heretofore, this particular computation has
usually been performed using an ozone isopleth diagram. The new feature permits
25
-------
the computation to be done analytically without performing all the simulations
needed to generate an ozone isopelth diagram. Since the new procedure is simply
an automated method of using an ozone isopleth diagram, the concepts underlying
the use of such a diagram to compute VOC control estimates should be fully under-
stood. Detailed discussions have been presented in References 3 and 8, and only
the major points will be addressed here. For additional information, the reader
may wish to consult these two references.
A control estimate calculation performed with an ozone isopleth
diagram begins by establishing a starting point on the diagram. This base-case
point is located by finding the intersection of a design NMOC/NOX ratio line
with the isopleth corresponding to the base-case ozone value. Typically, the
NMOC/NOX ratio used in the calculation is derived from 6-9 a.m. measurements of
NMOC and NOX taken in the urban core, and the base-case ozone value corresponds
to a peak ozone concentration measured within or downwind of the city under
review (see for example, Reference 8). Conceptually, the base point corresponds
to existing conditions in the city (i.e., observed ozone, base emissions, base
transport levels, etc.). All other points on the diagram represent the effects
of changing precursor emissions relative to the base-case, assuming everything
else remains constant.
In order to determine how much VOC emissions must be reduced to lower
the observed ozone peak to 0.12 ppm, the change in NOX must be accounted for.
Usually, this is done by estimating the change in NOX emissions expected to occur
between the base-case time (say, 1984 for example) and the time at which the
ozone standard is to be achieved (e.g., 1987). This information is then incor-
porated in the EKMA analysis by adjusting the NOX base-case coordinate by the
expected percentage change in NOX emissions. This new, adjusted NOX coordinate,
referred to as the post-control NOX coordinate, is thus calculated as follows:
26
-------
(NOX)2 = (N0xh x (1- 100) (2-3)
where
(NOX)2 = post-control NOX coordinate, ppm
(N0x)i = base NOX coordinate, ppm
(ANOX) = anticipated percentage change in NOX emissions
The corresponding NMOC post-control point is found by locating the
intersection of the NOX post-control point, (NOX)2, with the 0.12 ppm ozone
isopleth. The VOC reduction estimate is then obtained by computing the per-
centage change between the NMOC base coordinate and the post-control coordinate,
or
(NMOC)2
percent reduction = [1- (NMOC)i ] x 100 (2-4)
An example problem illustrating these concepts is shown in Figure 2-3.
The basis for the direct control calculation feature in OZIPM-2 (i.e.,
the EKMA routine) lies in the fact that the base-case point and the post-control
point correspond to single simulations. For the base-case point, the NMOC and
NOX coordinates represent the initial concentrations, in the specified ratio,
that generate the base-case ozone concentration. For the post-control point,
the NMOC coordinate corresponds to the initial NMOC concentration that generates
0.12 ppm ozone, given the post-control NOX coordinate. The EKMA routine conducts
single simulations within an iterative search procedure to locate these two
points, and then calculates the percent change between the base and post-control
NMOC coordinates (i.e., [NMOC]^ and [NMOC]2).
27
-------
GIVEN: 03 Daily Design Value = .24
Design NMOC/NOX =8:1
Anticipated Change in NOY = -20%
*\
Base case diagram shown below
FIND: Percent reduction in VOC emissions needed to reduce ozone from .24
to 0.12 ppm . ...
SOLUTION:
C 1
0-3
0 . .< 0 . S
:.s : .?
STEP 1: The base case point is found by the intersection of the 8:1 NMOC/NO
ratio line with the .24 ozone isopleth (Point 1} on the diagram. At
Point 1, (NMOC)i. = 1.64 and (N0¥)i = .205
A
STEP 2: The post-control NO coordinate is calcualted as follows:
A
(NOJ2 = (.205) x (1 -
= .164
STEP 3: The post-control point is located at the intersection of the .164 NO
coordinate and the 0.12 ppm ozone isopleth (Point 2). At Point 2,
(NMOC)2 = 0.46
STEP 4: The VOC emission reduction is calculated as
% reduction = (1 - , -4jj) x 100 = 72%
Figure 2-3. Example emission reduction calculation using a single ozone
isopleth diagram
28
-------
The iterative search procedure employed in OZIPM-2 is a modified form
of that developed by the Missouri Department of Natural Resources for use with
OZIPP.13 With this procedure, the user must supply the design NMOC/NOX ratio and
the base-case ozone value. OZIPM-2 then searches for the initial NMOC and NOX
coordinates that generate a maximum ozone concentration within 0.0005 ppra of the
desired value (i.e., the base-case ozone concentration for the starting point,
or 0.12 ppm for the post-control point). In conducting the search, the number
of simulations performed is limited to ten. If a solution has not been found
within this limit, the program exits from the EKMA routine with a message to that
effect. Should this situation occur, the user is advised to generate an isopleth
diagram and perform the control calculations graphically. If a solution cannot
be obtained with an isopleth diagram either, the user should check all model
inputs to insure that they have been correctly specified.
OZIPM-2 begins the search for the starting point by conducting a
simulation with the initial NMOC concentration set to 1.0 ppmC, and the initial
NOX concentration equal to 1.0 ppmC divided by the input design NMOC/NOX ratio.
A second simulation is then performed with an NMOC initial concentration that
is computed as the product of 1.0 ppmC and the ratio of input base-case ozone
value to the maximum ozone concentration found from the first simulation. (The
NOX initial concentration is also updated by dividing the second NMOC estimation
by the design NMOC/NOX ratio.) All successive approximations are then based on
the results of the previous two, according to the following linear interpolation
scheme .
- (03)1
(NMOC)i+i = (NMOC)! + (03)! - (O^l-l x
where I refers to the iteration number, (NMOC) refers to the NMOC initial
concentration used in the simulation, (03) to the maximum ozone concentration
29
-------
computed in the simulations, and (03)3 to the base-case ozone value. As with the
first two simulations, the NOX initial concentration is always computed by divid-
ing the NMOC initial concentration used in this simulation by the input design
NMOC/NOX ratio. In the event an approximation of the NMOC initial concentration
should be negative, it is reset to 0.1 ppmC.
The search routine for the post-control point is virtually identical
to that used to find the base case point. In this procedure, however, repeated
simulations are performed until the predicted ozone concentration is within
0.0005 ppm of 0.12 ppm. Although the initial NMOC concentrations used in suc-
cessive simulations are computed according to equation 2-5, the NOX coordinate
always corresponds to the post-control NOX coordinate computed according to
equation 2-3. Also, when determining the post-control point, the OZIPM-2
program has the capability of considering changes in precursor transport levels
that could occur. The user has the option, therefore, to change the levels of
transport to conditions indicative of the post-control state. Conceptually,
this is similar to using two isopleth diagrams as has been discussed in
Reference 8, Guideline For The Use Of City-specific EKMA In Preparing Ozone
SIPs. The reader is referred to this document for methods which can be used to
estimate the post-control transport values.
As is readily apparent from the discussions above, use of the EKMA
routine bypasses the need to generate an ozone isopleth diagram for most control
calculations. As noted above, however, situations may arise in which the
iterative search procedure fails to find a solution. In these situations, the
user may wish to fall back to the isopleth diagram approach for performing the
needed calculations. Furthermore, the EKMA routine focuses on two single simu-
lations, i.e., the base-case point and the post-control point, corresponding to
30
-------
an ozone peak of 0.12 ppm. An ozone isopleth diagram displays graphically ozone
changes relative to changes in precursor levels over a wider range and for a
continuous range of NMOC/NOX ratios. Thus, the generation of an ozone isopleth
diagram will typically provide more information than the EKMA routine, and may
be a preferable approach in some situations.
31
-------
3.0 OZIPM-2 OPTIONS AND DATA REQUIREMENTS
The operational structure of OZIPM-2 is virtually identical to that of
OZIPP. The program contains preset default values that can be used to gen-
erate the so-called Standard Ozone Isopleth Diagram (see Reference 3). In most
instances, however, the OZIPM-2 user will desire to incorporate city-specific
information on dilution, light intensity, post-0800 emissions, etc., and perhaps
use a chemical mechanism other than the one embedded in the program (i. e., the
DODGE mechanism). Inputs such as these are controlled by selecting one or more
specific program options for each type of input. Further, the user controls the
functional mode of program operation by selecting one of three major options:
(1) the CALCULATE option to perform a single simulation, (2) the ISOPLETH option
to generate an isopleth diagram, or (3) the EKMA option to perform a single VOC
control calculation. All of the options available to the user are discussed in
this chapter, along with their individual data requirements. Information on
the specific formats that are used to code the data for input to OZIPM-2 is
contained in the next chapter, the User's Guide.
3.1 OVERVIEW OF OZIPM-2 OPERATION
Inputs are supplied to OZIPM-2 by means of input records that are identified
by special option code words. Even though OZIPM-2 contains several new options,
most of the options are identical to those contained in OZIPP, and these are
summarized in Table 3-1. The new options that have been incorporated in OZIPM-2
are summarized in Table 3-2.
To activate any of the options described in Tables 3-1 or 3-2, the input
data must contain an input record with the appropriate code word beginning in
column 1. Only the first four characters of any code word need be specified,
and these will be underlined throughout the remaining text. Associated with
32
-------
TABLE 3-1. OPTIONS COMMON TO BOTH OZIPP AND OZIPM-2
ISOPLETH - This option calls for an isopleth diagram to be constructed
according to all specified input parameters. The parameters associ-
ated with this option include specification of the maximum NMOC and
NOX concentrations to be considered, and selection of the isopleth
levels to be drawn. Default values are as follows: maximum NMOC is
2.0 ppmC; maximum NOX is 0.28 ppm; and 11 concentration levels to be
plotted, 0.08, 0.12, 0.16, 0.20, 0.24, 0.28, 0.30, 0.32, 0.34, 0.36,
and 0.40 ppm. An additional parameter activates printing solar noon
and the time of the center of the maximum one-hour average ozone
concentration for each simulation. This information will not be
printed under default conditions.
CALCULATE - With this option, only one simulation is performed (i.e., only
one diagram point calculated) according to the specified input para-
meters. No isopleth diagram is produced. Initial NMOC and NOX con-
centrations must be input with this option. An additional parameter
activates the printing of the following: reaction rates, species
concentrations, net rates of change in concentrations of all species,
and photolytic rate constants for user specified times during the
simulation. This information will not be printed under default
conditions.
PLOT - This option activates the drawing of the isopleth diagram on an
offline plotter. Standard CALCOMP routines are used. Input para-
meters associated with this option control the physical dimensions of
the offline plot. Parameters to be specified and their associated
default values are as follows: length of abscissa (8.5 inches),
length of ordinate (5.95 inches), character and number size (0.10
inches), and label size (0.07 inches). An additional parameter
activates the overlaying of a grid of different color on the diagram.
Under default conditions, the grid is not drawn.
TITLE - This option allows the user to title the program output. Under
default conditions, all output is titled "Standard Ozone Isopleth
Conditions."
PLACE - This option allows determination of the photolysis constants in the
kinetic mechanism according to geographical location and time of
year. Input parameters associated with this option include the
geographic location of the urban area (latitude and longitude), the
time zone in which the urban area is located and the time of the
simulation. Default values are for a simulation for Los Angeles,
California, on June 21, 1975.
REACTIVITY - This option allows the user to specify reactivity factors for
the chemical mechanism. For the DODGE mechanism, these are the frac-
tion of NMOC that is propylene and the fraction of NMOC to be added
as aldehydes. (Default values for these parameters are 0.25, and
0.05, respectively.) For other mechanisms, the user must supply
inputs on organic reactivity. These option also allows the user to
specify initial N02/NOX ratio, whose default value is 0.25.
33
-------
TABLE 3-1. OPTIONS COMMON TO BOTH OZIPP AND OZIPM-2 (continued)
o
EMISSIONS - This option permits the consideration of post-0800 emissions.
Under default conditions, post-0800 emissions are assumed zero. To
override this assumption, the user must specify the fractions of the
initial NMOC and/or NOX concentrations that are to be added each hour
to represent the effect of post-0800 emissions. This option is not
used if the MASSEMISS option described in Table 3-2 is invoked.
0 TRANSPORT - This option allows the consideration of transported pollutants.
Pollutants can be transported in both the surface layer and aloft.
Input parameters include the initial surface layer transported con-
centrations of NMOC, NOX and ozone, and the concentrations of these
pollutants in the air above the mixed layer. All of these concentra-
tions are assumed zero under default conditions.
0 DILUTION - This option allows for the consideration of dilution due to the
rise of the mixing height. Input parameters include the height of
the mixed layer in the morning, the final height after the rise, the
time at which the rise begins, and the time at which it reaches its
final height. Under default conditions, the mixed layer is assumed
to rise from 510 meters at 0800 LOT to 630 meters at 1500 LOT.
0 ALREADY - This option permits the use of results from a previous simulation.
Input parameters include the initial NMOC concentration, the initial
NOX concentration and the maximum one-hour ozone concentration from
each previous simulation. Under default conditions, this option is
not exercised.
0 ACCURACY - This option controls the number of simulations, the accuracy of
each simulation and the accuracy of the interpolations. Input para-
meters and their associated default values are as follows: the
number of constant NMOC/NOX radials to be included in the simulations
(11), the number of simulations per radial line (5), the error
tolerance in the numerical integration scheme (0.01), the tension
factor for the first stage of interpolation (1.0), and the tension
factor for the hyperbolic spline functions used in plotting isopleths
(1.0).
34
-------
o
TABLE 3.2. NEW OZIPM-2 OPTIONS
MECHANISM - This option provides for the use of a chemical mechanism other
than the default DODGE mechanism. Inputs required include reactants,
products, rate constants, and activation energies (optional) for each
reaction, and identification of the organic species and photolytic
reactions.
TIME - This option permits the user to control the simulation times. Default
starting and ending times are 0800 LOT and 1800 LOT, respectively.
MIXING - This option permits the user to specify mixing heights at hourly
intervals.
SPECIES - This option permits the user to calculate maximum one-hour average
concentrations and construct isopleth diagrams for any species
contained in the chemical mechanism.
MASSEMISS - This option allows the user to specify post-0800 emissions on
a mass-density basis (i.e., kg/km^), and direct OZIPM-2 to compute
post-0800 emission fractions.
INITIAL - This option permits the user to specify initial concentrations of
species other than the organic compounds, NOX and ozone.
EKMA - This option directs the OZIPM-2 program to perform a control reduction
calculation with user specified input ozone design value and NMOC/NOX
ratio.
35
-------
any input record containing an option code word are six numeric fields, each 10
columns wide, beginning in column 11. Any numerical data that may be required
by a particular option are coded in these fields, and any additional data that
may be required are supplied in input records that immediately follow the option
record. With the exception of the MECHANISM option, all numerical data that
may be required in subsequent input records are supplied in records made up of
seven fields that are 10 columns wide and begin in column 1. Alphanumeric infor-
mation that may be needed is supplied in a subsequent input record beginning with
the first column. It should also be added that the input information required
by a particular option may be affected by the selection of other options. For
example, a single input record for the REACTIVITY option is needed when the
default mechanism is being used, but more than one input record may be required
when an alternate mechanism is being used. Finally, most numeric data associated
with any particular option have preset default values. In these cases, the pre-
set default value will be used whenever a numeric field is left blank.
The OZIPM-2 program is structured to process the input option records in
a sequential manner, and with a few exceptions, the order of the input records
is not critical. The first exception is that multiple input records required
by any particular option must be grouped together in the proper order (i.e.,
input option with the code word first, followed by the records containing the
required data). Second, all options used to provide city-specific or other
inputs (e.g., MECHANISM) must be placed before one of the options that controls
the program operation (i.e., CALCULATE, ISOPLETH or EKMA). If any particular
input is not provided by the user before one of these options is read by the
program, then the pre-set default values will be used. For example, if the
MECHANISM option is not used to provide an alternate chemical mechanism, then
the default mechanism will be used in the simulations performed by the program.
36
-------
Additional information on the organization of the input records is contained in
the last section of this chapter, and examples are included in Chapter 5.
3.2 DESCRIPTION OF OZIPM-2 OPTIONS
For purposes of the ensuing discussion, the OZIPM-2 options have been
grouped according to the following general categories:
> Alternative Mechanism Inputs
— MECHANISM
> City-specific Inputs
— PLACE
— DILUTION
— MIXING
— REACTIVITY
-- EMISSIONS
— MASSEMISS
— TRANSPORT
> Program Operation Control
— CALCULATE
— ISOPLETH
— EKMA
> Additional Simulation Options
— TITLE
—• PLOT
— TIME
~ SPECIES
— INITIAL
~ ACCURACY
— ALREADY
37
-------
Although each of the options listed above will be discussed, most emphasis is
placed on describing the new OZIPM-2 options. The user may wish to refer to
Reference 6, the OZIPP User's Manual, for additional details regarding the
options common to both OZIPP and OZIPM-2.
3.2.1 Alternative Mechanism Inputs (MECHANISM)
A major feature of the OZIPM-2 program is the capability to accept as
an input a chemical mechanism other than the default DODGE mechanism. Since
chemical kinetic mechanisms are typically lengthy, a substantial amount of
information is usually required for input. Also, the incorporation of a chemical
mechanism in any photochemical model can be a complicated procedure. Since each
mechanism's characteristics and structure are unique, only general guidance on
developing mechanism inputs can be provided here. In the event that guidelines
are not available on incorporating a specific mechanism in OZIPM-2 (e.g.,
Reference 9 on using the Carbon-bond mechanism), the user is advised to consult
with a photochemical modeling specialist familiar with both OZIPM-2 and the
mechanism of interest.
As noted earlier, chemical mechanism inputs are supplied to OZIPM-2 by
means of the MECHANISM option. These inputs must include the individual chemical
reactions (i.e., reactants and products of each reaction) and the rate constants
for all non-photolytic reactions. The user must also identify all photolytic
reactions, specify how the diurnally varying photolytic rates of reaction are to
be determined, identify all organic species, and specify their respective carbon
numbers (i.e., the number of carbon atoms associated with each organic group.)
In addition, the user has the option of providing activation energies for indi-
vidual reactions, and specifying the temperature used to determine individual
rate constants. Before describing the specific mechanism inputs that are needed
38
-------
for OZIPM-2, some general concepts associated with developing these inputs for
any particular mechanism are discussed below.
3.2.1.1 Mechanism Structure.
A chemical kinetic mechanism consists of a group of individual
chemical reactions and their associated rates of reaction. In general, the
OZIPM-2 inputs include the reactants and products of each reaction, and the
rate at which the reaction proceeds (i.e., the rate constant). However, the
structure of the mechanism must conform to the format required by OZIPM-2. The
discussion below begins with a description of how the individual reactions must
be structured for input to OZIPM-2, and how some reactions may be transformed
to the required form.
Structure of Individual Reactions. Each species in the
mechanism must be identified consistently throughout the mechanism by a unique,
alphanumeric code (up to four letters). Except for species that photolyze, the
selection of the species code is entirely up to the user. (As an example, the
species N03 and HN03 might be represented by N03 and HN03, respectively.) The
total number of reactions that may be input is limited to 200, and the total
number of mechanism species is limited to 80. In addition, the user must assign
a unique identification number to each reaction, although these need not be
numbered sequentially. For each reaction, the total number of reactants is
constrained to three, and the total number of products to four. Further, the
stoichiometric coefficients of each reactant and product must be one. Thus,
for example, a reaction of the form
A + B > 2C (3-1)
would have to be rewritten as
A + B > C + C (3-2)
39
-------
Some additional guidelines for restructuring individual reactions to conform to
the appropriate form for input to OZIPM-2 are contained in Appendix B.
Rate Constants. For each non-photolytic reaction, the rate constant
at 298°K must be specified. The user may also specify activation energies (in
°K) for each reaction. If so done, the rate constant is computed at the simula-
tion temperature (default = 303°K) according to Arrhenius's Law, i.e.,
1 !_
A E<298 - T)
kT = k298 e (3-3)
where
k^ = reaction rate constant at temperature T
k298 = input rate constant at 298°K
A E = input activation energy, °K
Finally, it should be added that reactions in which some of the reactant
concentrations do not vary with time (e.g., oxygen) may be transformed to lower
order reactions by using a psuedo rate constant that is the product of the true
reaction rate constant and the concentration of the invariant species. The
reader is referred to Appendix B for a more detailed discussion.
Photolytic Reactions. The proper selection of photolytic
reaction rates depends to a large extent on the structure of the chemical
mechanism under consideration. As a consequence, specific guidance cannot
be provided here. The discussion that follows focuses on describing the vari-
ous options that are available to the OZIPM-2 user in dealing with photolytic
reactions. Since photolytic reactions are among the most important in any
chemical mechanism, their proper treatment is essential. As suggested earlier,
40
-------
consultation with a photochemical modeling specialist is advised when specific
guidance is unavailable.
The OZIPM-2 program internally generates photolytic reaction
rates for nitrogen dioxide, ozone, nitrous acid, hydrogen peroxide, formalde-
hyde, and acetaldehyde using the computer code developed by Schere and
Demerjian.^-3 These rates correspond to zero cloud cover conditions, and are for
reactions at the earth's surface. The photolysis rates for the individual
species are made city-specific by means of the PLACE option that makes use of
the date and city location to determine the individual rates. (The PLACE option
will be discussed in a subsequent section.)
In OZIPM-2, the maximum number of photolytic reactions permitted
is eight, and the species that photolyze must be identified by one of the
following pre-defined codes:
N02 = nitrogen dioxide
03 = ozone
HONO = nitrous acid
H202 = hydrogen peroxide
HCHO = formaldehyde
ALD2 = acetaldehyde
For ozone and formaldehyde, two separate photolytic pathways are possible:
hv
HCHO > stable products (3-4)
hv
HCHO > radical products (3-5)
hv
03 > OrD) + 02 (3-6)
41
-------
hv
03 > 0(3P) + 02 (3-7)
If the mechanism contains photolytic reactions for either HCHO or 03, then both
pathways must be included in the mechanism. Thus, for example, it is not permis-
sible to have HCHO photolyzing to just radical products.
In addition to the special code words defined above, the user
assigned identification number of each photolytic reaction must be specified,
and "rate constants" for each photolytic reaction must also be supplied. These
"rate constants" are actually multiplicative constants used to adjust the rate
constants generated internally by OZIPM-2, i.e.,
Kactual = (Kinput)(KOZIPM-2) (3-8)
where
^actual = photolytic rate used in the simulation
Kinput = multiplicative constant input by user
KoZIPM-2 = photolytic rate generated internally by OZIPM-2
V
In Equation 3-8, OZIPM-2 corresponds to the photolytic rates generated for NOn,
03, HONO, H202, HCHO, or ALD2, with the appropriate value determined by the
selected species code-word (i.e. N02, 03, HONO, etc.) If the rates to be used
in the model simulations are to be identical to those generated by OZIPM-2, the
input photolytic "rate constants" (i.e., the multiplicative constants) should be
set to 1.0. Again, the choice of the multiplicative constant will generally be
dictated by the structure of the mechanism. Note, however, that updates to
theoretical photolysis rates can be handled at least partially by the
multiplicative constants as well.*
*Updates to photolytic rates may lead to different patterns that are not directly
proportional to the older rates over the entire diurnal cycle. In such cases,
the multiplicative constants can only be used to approximate the updated
patterns.
42
-------
In some chemical mechanisms, photolytic reaction rates may be
expressed relative to the photolytic reaction rate of N0£. For example, in the
CB-3 mechanism, the photolytic reaction for the ALD2 species is equal to 0.02
times the rate of N0£ photolysis. To handle situations such as this, the mul-
tiplicative constants are input as usual, (e.g., .02 in this example), but the
reactions of this form must be specifically identified by the user-defined
reaction identification number. In the example, the identification of the
reaction number for ALD2 photolysis directs the program to use NO? instead of
•Tf
ALD2 in equation 3-8 to determine the ALD2 photolysis rate.
Organic Species. A key component of any chemical mechanism is
the treatment of organic species. Because the total concentration of organic
species must be apportioned to the individual organic groups, those groups must
be explicitly identified. Furthermore, the number of carbon atoms associated
with each group (i.e., the carbon number) must also be specified. In OZIPM-2,
two different classes of organic groups may be used: "hydrocarbons" and "alde-
hydes." Up to ten "hydrocarbon" species and four "aldehyde" species are per-
mitted. It should be added that it is not necessary to use both classes of
organics.* For example, the organic species normally thought of as aldehydes
could be included in the "hydrocarbon" class, thereby eliminating the need to
provide separate inputs for both the hydrocarbons and aldehydes. Whichever
convention is ultimately used, the apportioning scheme must be accurately
specified. (This will be discussed further in Section 3.2.2). If the conven-
tion is adopted whereby aldehydes are not explicitly named in the mechanism
(i.e., the mechanism aldehyde species are included with the hydrocarbon class),
*It should be emphasized that chemical mechanisms always contain both hydro-
carbon and aldehyde species. What is meant here is that it is not always
necessary to use the OZIPM-2 naming conventions to account for each.
43
-------
a message will be printed to that effect. This message can be ignored, provided
aldehydes have been properly accounted for in the mechanism.
3.2.1.2 MECHANISM Inputs
The inputs to OZIPM-2 that are are supplied by means of the
MECHANISM option can be quite lengthy. To facilitate the discussions that fol-
low, a sample set of inputs is shown in Table 3-3.* The first column of each
input record corresponds to the location of M in the first input record. The
sequential numbers to the extreme left refer to the input record number. Thus,
there are 87 input records associated with this particular mechanism. Finally,
in the ensuing discussions, reference will be made to the reaction identification
numbers. These numbers are located in the middle portion of the input records,
beginning with record number six.
The mechanism option code word (i.e., MECH) is located in columns
1-4 of the first input record (see Table 3-3). Additional numerical data
required by this option are located in the six numeric fields beginning in column
11. (Recall that each field is ten columns wide, so the starting locations for
these fields are columns 11, 21, 31, 41, etc.). The first numeric field must
contain the identification number of the last reaction in the mechanism. In
the example shown in Table 3-3, the last reaction identification number is 99.
The second field contains the total number of photolytic reactions in the mech-
anism (i.e., seven in the example). The total number of hydrocarbon species is
entered in the third field, and the total number of aldehydes is entered in the
fourth field. In the example shown in Table 3-3, seven hydrocarbon species are
indicated, and since the fourth field was left blank, aldehyde species are not
*The mechanism shown in Table 3-3 is the CB-3 mechanism discussed in References
9 and 14.
44
-------
Table 3-3. CB-3 Mechanism Inputs for OZIPM-2.
1
z
3
4
5
6
~
3
9
10
11
" *!
.!.£.
13
14
15
16
1 /
13
19
20
tl
u <_
23
24
ZS
26
C7
23
2?
30
31
32
33
3n
35
36
j /
33
39
40
41
42
43
44
"5
46
•+7
43
49
50
51
52
53
54
55
56
MECH
1.
67.
PAR
1.
H02
0
03
03
0
03
03
NC2
CO
NO
NO 3
NO 3
HC2
H02
PAR
PAR
OLE
OLE
OLE
OLE
OLE
ETH
ETH
ETH
ETH
AC03
RE02
PA02
ME02
KE02
MEC2
RE02
PA02
CH
HCHO
HCHO
HCHO
HCHO
CQ
OQ
xco
AC03
PAH
AC03
ME02
CRIG
CRIG
CPIG
KCRG
MC3G
MCP.G
99.
71.
ETH
2.
NO
HO 2
NO 2
CH
HC2
CH
CH
HO
HO
H02
NO
H02
X
OH
0
0
CH
03
03
0
0
CH
03
NO
NO
NO
NO
HO
HO
03
03
HCHO
CH
CH
NO Z
H02
H02
HO
NC2
HCHO
NO
NC2
HCHO
1
2
3
4
5
6
/
8
0
10
11
12
13
14
15
16
17
13
19
20
21
22
23
24
25
26
27
23
29
30
31
32
33
34
35
36
37
33
31
32
33
39
40
41
42
43
44
45
46
47
43
7.0
99.
OLE
2.
NO
03
HO 2
NO 3
NO
H02
CH
H02
H8 2
NO 2
NO 2
ME02
MEQ2
HCHO
PA02
HCHO
HCHO
ME02
HCHO
RE02
HCHO
N02
NO 2
NG2
NO 2
NO 2
HCHO
HCHO
CF02
H02
X
CO
GQ
H02
ME02
X
PAH
AC03
H02
NO 3
HO 2
N03
7.0
73. 33.
ARO HCHO
6. 1.
0
NO 2
NC2
CH
AC03 X
PAR
CRIG
MCRG X
H02 CO
PAR
CRIG
KEC2
H02 HCHO
HC2 HCHO
ME02 HCHO
HCHO H02
HCHO .402
HCHO H02
X
CO
AC03
H02 CO
ME02 X
CO
N02
HCHO
HCHO
HCHO PAR
HCHO PAR
1.0
37. 67.
ALD2 NR
3. 1.
l.OCE+0
4.40E+6
2.66E+1
4.3E-2
1.30E+4
l.OE+2
2.4E+0
1.6E+4
4.4E+2
1.50E-H
2.3E+4
2.6E+1
1.2E+4
1.5E+4
l.OE+5
1.2E+3
2. / c + 3
2 . 7c+3
3.7E+4
8.0E-3
8.0E-3
o.CE+2
6.0E+2
1.2E+4
2.4E-3
1.04E+4
HCHO 1.2E+4
HCHO 1.2E+4
X 3.70E+3
7.40E+3
9.0E+2
5.0E+0
2.0E+1
l.OE+2
9.0E+3
8.2E+3
2.4E-1
5.64E-1
8.e67E+3
XCO 1.133E+3
l.OE+4
7.0E+3
2.2E-2
1.5E+4
9.0E+3
1.2E+4
8.0E+3
2.0E+3
1.2E+4
3.0£»3
2.0E+3
1450.0
2450.0
1000.
1525.0
-10600.
560.0
j25. 3
325.0
-540.0
1900.0
1900.0
300.0
800.0
-332.0
2560. 0
13500.0
45
-------
Table 3-3. CB-3 Mechanism Inputs for OZIPM-2. (continued)
57
53
59
60
61
62
b3
64
65
66
67
63
69
73
71
72
73
74
75
76
77
73
70
33
31
32
33
34
65
C D
37
CPIG
C3IG
CPIG
MCFG
MCFG
MC? 3
rCRG
AFO
ARO
PAFO
CPEN
AF=C
FHEN
FHO
FHO
CFEN
CH
ALD2
FHEN
CP02
AL02
)-i^v T\
n w. >u
CH
C3
01D
010
CH
CH
k '"3
i irt
03
OH
CH
NO
NO
NO 3
NO 2
HQ2
03
FHEN
OH
NO
OH
NO
49
50
51
52
53
54
55
56
57
53
59
63
61
62
63
6*
65
66
67
63
69
70
71
72
73
74
75
90
"1
92
99
rn
l»U
H02
ME02
HE02
HCHO
R/,CQ
H02
N02
NO 2
AL02
. KCKO
FHO
PKEN
ALD2
H02
HQ2
PHO
NC2
AC03
CH
_;••>* *r\
n i ^ , , j
01D
CH
HC2
ME02
NR
Q
H02
CH
H02
HC2
OPEN
FHEN
AL02
HCHO
KCHO
HN03
X
AFP.C
AC03
HCHO
CO
NO
OH
CO
CO
H02
H02
X
CO
CO
AFRC
PAR
CO
AC03
6.7E+2
2.4E+2
9.0E+1
1.5E+2
3.4E+2
4 J> c ^ . o
" . £ J Z T C
CO 8.SE+1
6.0E+3 600.0
1.45E+4 400.0
4.CE+3
AFPC 6.CE+3
X 1 . 0 E*4
CO l.OE+4
5.0E+3
4.0E+-3
5 . CE+4
4.0E+1
HCHO 3.GE+4
2-CE-2
l.OE+4
X 1.2E+4
2 .5E+4
3.1EO
9.77E*3
5.4E-1
4.44E+1Q
6.3Ei9
3.5E+1
2.6E+1
l.OE+0
l.OE+0
46
-------
explicitly identified as such (i.e., they have been grouped with the hydrocarbon
species). The fifth field contains the temperature at which the rate constants
are computed. In the example, this field is also left blank, indicating that the
default temperature of 303°k is to be used. Finally, the last field contains the
total number of photolytic reactions whose rates are to be expressed as a func-
tion of the N02 photolysis rate. (The N(>2 photolysis rate itself need not be
included in this number.) For the example, the total number of reactions of this
type is 1.
The second input record contains the user defined identification
numbers of the photolytic reactions. These entries are located in seven numeric
fields, each 10 columns wide, beginning in column 1. If eight photolytic reac-
tions are used, one additional input record would be required (immediately fol-
lowing the second input record), and the identification number of the eighth
reaction would be placed in its first numeric field (i.e., columns 1-10). With
one exception, the order of the entries in input record two (and three if needed)
is not important. The identification numbers for the two HCHO pathways and for
the two 03 pathways must be placed in consecutive fields, respectively. For
HCHO, the first entry in the two consecutive fields must be the identification
number of the HCHO reaction leading to radical products, and the second entry
must be the identification number of the reaction leading to the formation of
stable products. For 03 photolysis, the first entry corresponds to the for-
mation of 0(-*P), and the second to O(^-D). Note that in the example, reaction
identification number 38 corresponds to HCHO photolysis to radical products,
and reaction 37 to photolysis to stable products.
47
-------
The next input record (number three in the example) contains the
user-defined identification numbers for all photolytic reactions whose rate is
expressed relative to the NC>2 photolysis rate. In the example, only reaction
number 67 is so identified.
The next group of input records contain information on the names
of the organic species and their respective carbon numbers. The first record
of this set contains the user-defined names of the hydrocarbon species. These
are located in the seven fields beginning in columns 1, 11, 21, 31, etc. Again,
up to four characters may be used, and the codes must be consistent throughout
the mechanism. Since only the first four characters of any field are read, the
species names must begin in the exact starting location of each field. (If
more than seven hydrocarbon species are used in a mechanism, then the names
would be continued on the next input record which would have the exact same
format as the first.) Note that in the example, input record number 4 contains
the hydrocarbon code names PAR, ETH, OLE, etc. The input record immediately
following this one contains the carbon numbers for each hydrocarbon species.
The order that these values are entered must correspond exactly to the order in
which the hydrocarbon names are entered. Thus, in the example, the carbon
number for PAR is 1, the number for ETH is 2, and so forth. (For more than
seven hydrocarbon species, carbon number entries would be continued on an input
record immediately following the record containing the first seven carbon
numbers.) If aldehyde species are to be explicitly named in the mechanism, the
next two records would contain the analogous information for them (i.e., one
input record with the aldehyde names, followed by another record with the alde-
hyde species carbon numbers). In the example of Table 3-3, these two records
are omitted, since aldehyde species are not explicitly identified as such.
48
-------
The next group of input records (numbers 6 through 87 in the example)
contains information on the individual reactions in the mechanism, with the
format of each record being identical. Each input record contains information
for a single reaction. For each reaction, up to three reactants are allowed,
each identified by an alphanumeric code no more than four characters in length.
The code for each reactant is contained in one of three fields, field one
corresponding to columns 1-4, field two to columns 7-10, and field three to
columns 13-16. If only two reactants are associated with the reaction, the
third field is left blank. Similarly, for a unimolecular reaction, fields 2
and 3 are left blank. The user supplied reaction identification number is
contained in columns 17-18. (Since these are integer numbers, they must be
right justified.) To allow for reaction numbers greater than 99, a modulus
factor may be entered in column 24. If a non-zero entry is found in this
column, the reaction number will be modified internally within the program
and displayed upon output as a three digit number:
NR = (MFxlOO) + NIN (3-9)
where
NR = user defined reaction number
MF = modulus factor (1 or 2), column 24
input reaction number supplied in columns 17-18
The number of products of each chemical reaction are limited to four, and the
product names are coded in four fields following the modulus number: columns
25-28, columns 33-36, columns 41-44, and columns 49-52. Again, the products
are entered starting with the left-most field, leaving all fields not used
blank. Columns 55-64 contain the rate constant for non-photolytic reactions,
or the multiplicative constant for photolytic reactions. If an exponential
49
-------
format is used, then the entry must be right justified. All rate constants
must be in ppmV-minute units (e.g., min"^- for unimolecular reactions, ppmV~
^min"! for bimolecular reactions, and ppmV~2mjin-l fOr trimolecular reactions).
Finally, the last field contains the activation energy, if available, in units
of °K in columns 66-72.
In the example shown in Table 3-3, the chemical reactions are
contained in input records 6 through 87 (i.e., a total number of 82 reactions).
To illustrate the format discussed above, consider input record number 18. The
user defined reaction number for this reaction is 13, and the reaction itself
is
H02' + NO > N02 + OH' (3-10)
where H02* and OH' have been represented by H02 and OH. The rate constant for
this reaction is 1.2x10^ ppm~^min~^-, and no activation energy is specified.
3.2.2 City-specific Inputs
Eight options are available to the user for supplying city-specific
input information to OZIPM-2. These data permit the user to set the light
intensity for photolytic reactions, and specify dilution, post-0800 emissions,
transported pollutant concentrations, reactivity of the organic mix, and the
initial N02/NOX ratio. Many of these options are identical to those used in
OZIPP, and these will only be briefly described here. The user may wish to
refer to Reference 6, the OZIPP User's Manual, for more information on any
specific option.
50
-------
3.2.2.1 Light Intensity (PLACE)
The rates of all photolytic reactions vary in accordance with
the diurnal change in sunlight intensity, and these are set by means of the
PLACE option. (The OZIPM-2 inputs for this option are identical to those used
in OZIPP). The first four characters of the code word PLACE must be located
in columns 1-4. Numeric fields 1 through 6 on the PLACE input record contain,
in this order, city latitude, city longitude, city time zone, year, month, and
day. Units for latitude and longitude are degrees north and degrees west,
respectively. The time zone is identified by one of the following numerical
codes:
OZIPM-2 Input Time Zone
5.0 Eastern Daylight Time
6.0 Central Daylight Time
7.0 Mountain Daylight Time
8.0 Pacific Daylight Time
(Conversion to standard time can be accomplished by adding 1 to the above
numbers.) Numerical equivalents of year, month, and day would be used for the
date. For example, the date June 21, 1984 would be represented as follows:
year = 1984, month = 6, and day = 21.
The preset default values for this option correspond to the 1975
summer solstice (June 21) in Los Angeles, California (i.e., latitude = 34.058°
north, and 118.250° west). Any one, or all, of these values may be overridden.
If any non-zero entry is made for latitude or longitude, then one additional
input record must be supplied. This second input record is of alphanumeric
format (columns 1 through 24), and permits the user to supply the name of the
city to the program for report generation.
51
-------
3.2.2.2 Dilution (DILUTION and MIXING)
Dilution in OZIPM-2 occurs as a result of the mixing height
rising from its early morning minimum to its afternoon maximum. Two separate
options are available for providing the dilution related model inputs - DILUTION
or MIXING. The DILUTION option is identical to that contained in OZIPP (Version
2), but the MIXING option is a new feature that permits the user to specify any
particular diurnal pattern. Note that defaults have been preset for the DILUTION
option, but use of the MIXING option requires that input be provided (i.e.,
there are no defaults for MIXING).
With the DILUTION option, the diurnal change in mixing height
follows the characteristic curve developed by Schere and DemerjianH (see Figure
2-1). The inputs associated with this option include the initial (morning) mix-
ing height, the final (maximum afternoon) mixing height, the time at which the
mixing height begins to rise, and the time at which the mixing height ceases
rising any further. These values are placed in the first four numeric fields on
the input record with the DILUTION code word. Units for the mixing heights are
unimportant, provided that the initial and final values are consistent and the
number of significant figures is sufficient for adequate resolution. Starting
and ending times should be in 24-hour format, Local Daylight Time for those
areas on Daylight Savings Time (e.g., 0800 and 1500).
The preset default values for the DILUTION option correspond to
Los Angeles-type conditions, with a very small growth in the mixing height over
the day. Specifically, the initial morning mixing height is set at 510 meters,
and the maximum afternoon mixing height at 630 meters. Under default operation,
the mixing height growth begins with the start of the simulation (0800 LOT),
and ends at the time corresponding to 70% of the daylight hours. The default
timing can be used with city-specific inputs on mixing heights by simply
52
-------
overriding the mixing height values, and leaving the time inputs blank. Alter-
natively, the user may provide inputs on the times of the start and stop of
mixing height rise. In the latter case, the timing will conform to the user
inputs, and the shape of the characteristic curve will be modified to fit these
specifications.
The MIXING option allows the user to specify any particular
diurnal mixing height profile when such data are available. The inputs include
the total number of hours of dilution, plus mixing heights at hourly intervals.
In general, if n hours of dilution are specified, then n+1 mixing heights must
be provided on input. Up to 15 hours of dilution may be specified, but the
starting mixing height must always correspond to the simulation starting time.
If a simulation calls for no dilution for several hours, then the same mixing
height should be given for those hours. (Note that the mixing height cannot be
zero, nor can it be lower than a value used for any previous hour.) As with
the DILUTION option, the mixing heights may be specified in any particular units,
but must be consistent for all hours.
The number of input records associated with the MIXING option
depends on the total number of hours of dilution that are specified. The first
input record contains the MIXING code word, followed by the total number of
hours of dilution in the first numeric field. The mixing heights themselves
are entered in the remaining fields in chronological order, i.e., the starting
mixing height is entered in field 3, the mixing height at the end of the first
hour in field 4, etc. If more than five hours of dilution are specified, then
the mixing heights are continued on a second input record which must immediately
follow the MIXING record.
53
-------
3.2.2.3 Post-0800 Emissions (EMISSIONS and MASSEMISS)
The OZIPM-2 model is a simplified photochemical trajectory model
built around a theoretical column of air that moves with the wind. During the
course of the trajectory, fresh emissions of VOC and NOX can be injected into
the column. In OZIPM-2, as in OZIPP, the emissions data are expressed as a set
of hourly emission fractions that are multiplied times the initial NMOC and NOX
concentrations, and adjusted for the changing height of the column. The result-
ant concentrations of these pollutants are added each hour to represent the
effects of the emissions that occur subsequent to the simulation starting time.
Unlike OZIPP, however, OZIPM-2 offers two options for specifying these data: the
EMISSIONS option which is identical to that contained in OZIPP, and the MASSEMIS
option which is a new feature.
EMISSIONS. With the emissions option, hourly emission fractions
for NMOC and NOX are supplied directly to the program. (Procedures for estimat-
ing these fractions have been discussed in References 3 and 8). A single set of
emission fractions may be entered for both NMOC and NOX, or a separate set may
be supplied for each pollutant. Consider first, a case in which only one set
of emission fractions is being used for both NMOC and NOX. The EMISSIONS option
is activated by placing the code word EMISSIONS in the first field (columns 1-
10). The first numeric field of this record (columns 11-20) contains the total
number of hours for which fractions are to be input, coded as a positive number.
Numeric fields 2 through 6 (i.e., columns 21-30, 31-40, 41-50, etc.) contain
the emission fractions for the first five hours. The first fraction is for the
first hour of the simulation, the second is for the second hour of the simula-
tion, and so forth. If more than five hours of emission fractions are being
entered, then the remaining fractions are coded on an input record immediately
following the EMISSIONS input record, with the sixth emission fraction placed
54
-------
in columns 1-10, the seventh in columns 11-20 and so on. The total number of
hours permissible is limited to 15.
The procedure for coding two sets of emission fractions is
analogous to the procedure just discussed. Instead of coding the total number
of hours as a positive number, however, it is coded as a negative number. The
NMOC fractions are then entered in exactly the same manner as described above.
The NOX emission fractions, however, are coded beginning with a new input record
that immediately follows the input record with the last NMOC fraction. The frac-
tion for the first hour is entered in columns 1-10, the second in columns 11-20
and so on. If more than seven hours of fractions are to be entered, the remain-
ing fractions are entered in the next input record. Note that the total number
of hours specified applies equally to both the NMOC and NOX fractions, and the
NMOC fractions must always precede the NOX fractions.
If emission fractions are to be specified for only one pollutant
(i.e., VOC or NOX), then the emission fractions for the other pollutant could
be entered as a set of zeros. OZIPM-2 has been set up, however, such that a
negative entry for the first emission fraction of any set indicates that all
fractions for that pollutant are zero, and no additional input records are
required. Consider, for example, a case in which ten hours of emission frac-
tions are desired, with all NMOC fractions assumed to be zero. The first input
record would contain the code word EMISSIONS in columns 1-10, and would have a
-10.0 coded in columns 11-20 (i.e., numeric field 1). Then, any negative
number could be coded in the second numeric field to indicate that all of the
NMOC emission fractions are to be zero. The next input record would contain
the first seven NOX emission fractions (not the VOC emission fractions for
hours 6 through 10).
55
-------
The last three NOX emission fractions (hours 8 through 10) would be coded on the
input record immediately following the one with the first seven. Alternatively,
if only VOC emission fractions are to specified, with all NOX fractions set to
zero, the VOC fractions would be coded normally, but the first NOX fraction would
be set to a negative number.
MASSEMISS. Reference 8, Guidance For The Use Of City-specific
EKMA In Preparing Ozone SIPs, contains one approach for computing post-0800
emission fractions. In this approach, an hourly emission fraction is computed as
the ratio of a mass emission density to the emission density required to generate
the concentration initially within the column (see equation 2-1). Since emis-
sion fractions are calculated routinely for several hours, a number of repetitive
calculations are often required. The MASSEMISS option is intended to facilitate
this process by performing the repetitive calculations internally. Inputs
required by the MASSEMISS option include the initial mixing height (in meters),
the initial NMOC concentration (ppmC) , initial NOX concentration (in ppin) , and
hourly emission densities for both VOC and_NOx. The first three inputs are used
to calculate the emission density required to generate the initial concentra-
tions that are specified (i.e., the denominator of equation 2-1). The hourly
emission densities are determined from emissions inventory data and the space-
time track of the trajectory (see for example Reference 8). Hourly emission
fractions for each pollutant are then computed according to equation 2-1.
The format of the MASSEMISS inputs is similar to that of the
EMISSIONS inputs. Again, the option is activated with the appropriate code word.
The first numeric field must then contain the total number of hours of emissions.
The second and third numeric fields must contain the initial NMOC and NO-,,
A.
56
-------
concentrations to be used in the emission fraction calculations. Finally, the
fourth field on this record contains the initial mixing height, in meters.
The hourly emission density inputs are coded on input records
immediately following the MASSEMISS input record. The first of these input
records contains the first seven VOC emission densities. If more than seven
are being used, the entries are continued on a subsequent input record. The
NOX emission density inputs always begin on a new input record, and immediately
follow the VOC inputs. Again, more than one record is required for more than
seven hours of emissions.
3.2.2.4 Reactivity Factors (REACTIVITY)
The REACTIVITY option is used to supply information on the
reactivity of NMOC and NOX. The NOX reactivity factor is simply the fraction of
initial NOX that is NC-2- It could be determined, for example, from 6-9 a.m.
Q
measurements of NO and N02 taken in the urban core. If such a city-specific
value is to be used, the appropriate entry should be placed in the second numeric
field of the REACTIVITY input record (i.e., columns 21-30). Or, alternately,
the default value of 0.25 may be selected instead.
NMOC reactivity data consist of a set of carbon fractions that
are used to apportion total NMOC into the individual organic classes contained
in the mechanism. The apportionment process is carried out for both the NMOC
concentration initially present in the theoretical column (i.e., the initial
NMOC concentration), and the NMOC concentrations that are added to reflect the
effect of emissions injected into the column along the trajectory. Note that
the same apportioning factors are used for both processes. The apportioning
factors themselves may be obtained in several ways. First, a particular mech-
anism may have a set of recommended default factors that have been determined
57
-------
experimentally. Such is the case with the DODGE mechanism. For other mech-
anisms, the apportioning factors can be derived from detailed emission inven-
tories in which VOC emissions have been tabulated by organic compound, or from
analyses of captured air samples in which individual organic species concentra-
tions are quantified. In some cases, recommended default values derived from
surveys of such data may be available (e.g., recommended default apportioning
factors are provided for the Carbon-Bond 3 mechanism in References 9 and 14).
Whichever approach is used to derive the apportioning factors,
the procedure and results will likely be mechanism dependent. Nevertheless,
some special considerations in deriving these inputs warrant further discussion.
The apportioning scheme used in OZIPM-2 is applied to total concentrations of
NMOC which are typically derived from ambient measurements of organic compounds.
Because oxygenated organic compounds are often poorly detected in these measure-
ments, the resultant ambient concentrations are considered to-be more represent-
ative of nonmethane hydrocarbons (i.e., NMOC less oxygenated species such as
aldehydes, ketones, etc.). As a consequence, many apportioning factors that
have been derived for use with OZIPP or OZIPM-2 sum to a number slightly greater
than 1.0 (e.g., 1.04 or 1.05) to account for the oxygenated compounds,2»9,14
Furthermore, in several of the OZIPM-2 output reports, the terms "TOTAL HC" and
"ALDEHYDE FRACTION" appear. In this context, "TOTAL HC" always refers to the
sum of all organic groups that have been identified as "hydrocarbons." The
"ALDEHYDE FRACTION" is determined by the total aldehyde concentration expressed
relative to "TOTAL HC."
In the DODGE mechanism, organic compounds are represented by four
separate species. "Hydrocabons" are represented by propylene and butane, and
the "aldehydes" by formaldehyde and acetaldehyde. As noted above, recommended
58
-------
apportioning factors have been developed, and are preset as default values in
OZIPM-2. Specifically, these values are: 25% of the OZIPM-2 hydrocarbon is
propylene, 75% is butane, and 5% of the OZIPM-2 hydrocarbon is added as total
aldehydes (OZIPM-2 splits the aldehydes into formaldehyde and acetaldehyde in
a 60%/40% basis).
The organic REACTIVITY inputs are activated with two fields on
the REACTIVITY input record. In the first numeric field (i.e., columns 11-20),
the number of OZIPM-2 "hydrocarbon" species is coded. (This would normally be
the same number as that used for the number of hydrocarbon species entered for
the MECHANISM option.) Similarly, the number OZIPM-2 "aldehyde" species is
coded in the third numeric field (columns 31-40). The apportioning factors for
the OZIPM-2 "hydrocarbon" species are placed in the first input record immedi-
ately following the REACTIVITY input record. These apportioning factors (or
carbon fractions) must be expressed on a carbon basis (not a molecular basis),
and must be entered in the same order as used in the MECHANISM option inputs.
The fractions themselves are coded in seven numeric fields, each ten columns
wide, beginning with column 1. If more than seven "hydrocarbon" species are
used in the mechanism, then the inputs are continued on the next input record.
The aldehyde carbon fractions are placed on a new input record immediately
following all input data for the "hydrocarbon" fraction. If aldehydes are not
included in the mechanism, then the "aldehyde" input record must be omitted.
3.2.2.5 Transported Pollutants (TRANSPORT)
In OZIPM-2, as in OZIPP, pollutant transport into a city from
upwind areas can be considered. Such transport can occur in two different ways.
First, pollutants may be transported in the surface layer, such that they are
present within the theoretical column at the beginning of the model simulation.
59
-------
Second, pollutants may be transported within air masses trapped above the mixed
layer at night, and later entrained into the mixed layer as the mixing height
begins to rise. In either case, the pollutants that can be considered include
organics, NOX and ozone. Information on methods for estimating the levels that
are transported is included in References such as 8 and 9.
Default assumptions in OZIPM-2 correspond to no transport of any
pollutant. The method for overriding the defaults depends to some extent on the
pollutants under consideration and the chemical mechanism that is being used.
When ozone transport is to be accounted for explicitly, the first and second
numeric fields of the TRANSPORT option input record are used to enter the con-
centrations of ozone (in ppm) transported in the surface layer and in the layer
aloft, respectively. Similarily, numeric fields five and six are used for sur-
face and aloft transport of NOX, respectively (also in ppm). (Note that all
transported NOX is assumed to be N02-) The remaining two fields (numeric fields
3 and 4) are used for information on the transport of organic compounds. With
the DODGE mechanism, the total concentrations (in ppmC) of NMOC transported in
the surface layer and aloft are entered in these two fields, with surface layer
transport in field 3 (columns 31-40) and aloft transport in field 4 (columns 41-
50). Any combination of pollutant transport (i.e., surface versus aloft) and
pollutant (i.e., 03, NMOC or NOX) is permissible.
When a mechanism other than DODGE is being used, the format for
the NMOC inputs is somewhat different. Instead of entering NMOC concentrations
in numeric fields 3 and 4, the number of "hydrocarbon" species, coded as negative
number, is used as a flag. A negative entry in numeric field 3 signifies surface
transport, and a negative entry in field 4 signifies transport aloft. In either
case, the required NMOC input data are provided on subsequent input records. For
surface layer transport, the total NMOC concentration aloft, in ppmC, is coded
60
-------
in the first numeric field of a new input record (i.e., columns 1-10). The
remaining six fields on this record are used to supply the "hydrocarbon" carbon
fractions that are needed to split transported NMOC into the individual organic
groups of the mechanism. Again, the carbon fractions must be entered in the
same order as in the MECHANISM option. Also, if more than six "hydrocarbon"
species are being used, then the remaining carbon fractions are continued on the
next input record. The carbon fractions for "aldehydes" are entered on a new
input record, beginning in its first numeric field. If "aldehydes" are not in
the mechanism, then this input record is omitted.
The input format for NMOC transported aloft is exactly the same
as that for surface level transport (i.e., total NMOC concentration, followed
by "hydrocarbon" carbon fractions, followed by "aldehyde" carbon fractions). If
NMOC transport aloft is to be included (i.e., a negative number coded in numeric
field 4 of the TRANSPORT input record), then the inputs for transport aloft must
immediately follow all of the records containing the NMOC inputs for surface
transport if they are present.. Otherwise, they come directly after the TRANSPORT
input record itself.
As indicated in the discussions above, the carbon fractions used
for surface transport and transport aloft need not be the same, nor do they need
need to be the same as the carbon fractions used with the REACTIVITY option.
Thus, the composition of aged air masses associated with transport from upwind
areas may be assumed to be different from the composition of the organics asso-
ciated with fresh emissions. Also, use of the TRANSPORT option differs slightly
from others with respect to its order in the input records. Since the number of
"aldehyde" species must be defined before the TRANSPORT option is encountered
when NMOC transport is being included and an alternate mechanism is being used,
61
-------
the MECHANISM option inputs must always precede the TRANSPORT option when both
options are used.
3.2.3 Options for Program Control
The two categories of OZIPM-2 options that have previously been
discussed allow the user to supply the program with information on the chemical
mechanism and with city-specific information for some of the physical processes
simulated by the model. Attention is now focused on those inputs associated
with the options that cause the program to perform one of three major functions:
(1) perform a single simulation, (2) generate an iso pieth diagram, or (3) perform
a VOC control calculation.
3.2.3.1 Single Simulation Option (CALCULATE)
The CALCULATE option directs the OZIPM-2 program to perform a
single simulation. This option might be used, for example, to predict a single
occurrence of peak ozone, or to gain more information about a simulation con-
ducted under one of the other two modes of operation. In the CALCULATE mode,
the user must supply the initial NMOC and NOX concentrations that are used in
the simulation. Under the default mode of operation, instantaneous pollutant
concentrations (i.e., the concentration of any pollutant at a specific point in
time) of major species are tabulated, and the maximum one-hour average ozone
concentration occurring during the simulation is reported. Conceptually, these
predicted concentrations represent the change in pollutant concentrations in the
air mass that moves according to the user defined trajectory.* The user also has
*The trajectory is ultimately determined by the starting location of simulation
(which is used to establish the initial pollutant concentrations) and the path
that the air parcel follows (which is determined by the user input post-0800
emissions).
62
-------
the option of displaying the instantaneous concentrations of all species in the
mechanism, and computing the maximum one-hour average concentration of any
pre-selected species.
The CALCULATE option is activated by means of an input record
containing the code word CALCULATE in the first field (i.e., columns 1-10).
The first numeric field (columns 11-20) contains the initial NMOC concentration,
in ppmC, and the second field contains the initial NOX concentration, in ppm.
Under default operation, simulation output consists of a report showing the
concentrations of hydrocarbons, aldehydes, NOX, and ozone. These concentrations
are reported at hourly intervals beginning with the simulation starting time.
The maximum one-hour average concentration of ozone is also reported unless
changed with the SPECIES option (discussed in Section 3.2.4.4). Finally, a
line-printer plot showing the time-concentration profile of ozone (or the
species selected with the SPECIES option) is produced.
Alternatively, the user has the option of requesting more
information on the simulation results. Any non-zero entry coded in the third
numeric field of the CALCULATE input record triggers the generation of a detailed
output report. Included are the following:
> the rate constants used in the kinetic mechanism
> the photolysis rates for all photolytic reactions
(as a function of time)
> concentrations of each species in the mechanism
(as a function of time)
> the net rate of change of each species
(as a function of time)
> the reaction rates of each reaction in the mechanism
(as a function of time)
63
-------
Unless changed by the user, the detailed information is reported for the time
at which the simulation begins, and for 60 minute intervals thereafter. The
user may control the report generation, however, by specifying the simulation
time at which the reports are to begin, and the time increments for subsequent
reports. (The information at the start of the simulation is always reported.)
The initial report is controlled by entering the number of minutes after the
simulation start at which the reports are to begin in the fourth numeric field
(i.e., columns 41-50) of the CALCULATE input record. The time interval, in
minutes, for subsequent reports is placed in numeric field (51-60) of the same
input record. Since default conditions cause reports to be generated at hourly
intervals, default values for both of these control variables are 60 minutes.
As with the default mode, a line-printer plot showing the time-concentration
profile of ozone, unless changed using the SPECIES option, is shown upon
completion of all tabular reports.
3.2.3.2 Isopleth Diagram Option (ISOPLETH)
The generation of an isopleth diagram (see Figure 2-2 for an
example) is activated by means of the ISOPLETH option. Under this mode, repeated
simulations are conducted with differing initial concentrations of NMOC and NOX,
and the maximum one-hour average concentrations of a specified pollutant
(default equals ozone) are determined. These discrete multiple simulations are
in turn used to interpolate and plot the maximum one-hour average level of the
species of interest as continuous functions of initial NMOC and NOX concentra-
tions. Since the post-0800 emissions are expressed relative to the initial
concentrations, the diagram depicts graphically how the pollutant changes
relative to changes in post-0800 emissions of NMOC and NOX, as well as initial
NMOC and NOX concentrations.
64
-------
In addition to the code word in the first field, the ISOPLETH
option contains four numeric fields. The first two fields are used to control
the scale of the abscissa (i.e., NMOC) and the scale of the ordinate (i.e.,
NOX). The maximum NMOC concentration (in ppmC) to be used in the diagram is
entered in the first field (i.e., columns 11-20), and the maximum NOX concen-
tration (in ppm) is entered in the second numeric field. (The origin of the
diagram always corresponds to the point 0,0.) While any number may be used for
the maximum NMOC or NOX concentration, some consideration should be given to the
scale divisions shown on the diagram. The scales of the abscissa and ordinate
are divided into ten and seven divisions, respectively. Thus, only particular
values of the maximum concentrations will produce divisions whose labels are even
numbers. For example, to produce an easy to read diagram, the maximum NOX con-
centration should be evenly divisible by seven (e.g., 0.07 ppm, 0.14 ppm, 0.21
ppm, etc.). Similar considerations should be taken into account when selecting
the NMOC maximum concentration, which will be divided by ten to produce the
diagram divisions.
In addition to fixing the 'scales of the diagram, the user may
also control the specific isopleths that are plotted. As noted above, an ozone
isopleth diagram is generated under default conditions. The program contains
a set of default ozone isopleth values corresponding to 0.08, 0.12, 0.16, 0.20,
0.24, 0.28, 0.30, 0.32, 0.34, 0.36, and 0.40 ppm. The user may override these
defaults by requesting up to 20 specific isopleths. First, the total number of
isopleths desired is entered in the third numeric field of the ISOPLETH input
record (i.e., columns 31-40). Second, the concentration levels of the desired
isopleths are entered in the input record(s) that immediately follow the ISOPLETH
option. Each record contains seven values corresponding to seven numeric fields
which are ten columns wide. Thus, a request for one to seven isopleths would
65
-------
require one additional input record, a request for 8 to 14 would require two
input records, and a request for 15 to 20 would require three additional input
records.
When generating an isopleth diagram, some consideration should
be given to insuring that the desired isopleths are evenly spaced on the diagram.
For example, the particular scales chosen for the diagram and the city-specific
inputs selected for the simulations may result in a situation in which a desired
isopleth cannot be plotted on the diagram. Although the problem could be over-
come by selecting different diagram scales in a trial and error mode, computer
time can be saved by performing several CALCULATE simulations with candidate
diagram NMOC and NOX maxima. The resultant one-hour average concentrations pro-
duced by the CALCULATE simulations provide the user with an upper limit of the
isopleths that can be plotted on the diagram. For example, suppose that it is
desired to generate an ozone isopleth diagram containing two isopleths corre-
sponding to 0.24 ppm and 0.12 ppm. Suppose a series of CALCULATE simulations
were performed with candidate maximum NMOC and NOX concentrations to be used
for the diagram, and the following results obtained:
Simulation Maximum one-hour
Number Initial NMOC, ppm Initial NO-g, ppm Average ozone, ppm
1
2
3
0.5 ppmC
1.0 ppmC
2.0 ppmC
0.07 ppmC
0.14 ppmC
0.28 ppmC
0.16
0.30
0.40
Since the maximum ozone concentration corresponding to simulation 2 is greater
than 0.24 ppm, these results suggest that the NMOC and NOX values used in simu-
lation 2 may be appropriate scaling parameters. Although the third simulation
indicates that the selection of 2.0 ppmC and 0.28 ppm would also provide the
desired isopleths, the higher predicted ozone concentration (0.40 ppm compared
66
-------
to the desired 0.24 ppm) suggests that the desired isopleths would be located
well to the left on the diagram, thereby producing uneven isopleth spacing.
Since a small number of CALCULATE simulations require less computer time than an
ISOPLETH run, a considerable amount of computer time could be saved following
this approach.
When selecting candidate scales for an ozone isopleth diagram,
the user may wish to keep in mind the ultimate use for that diagram. Typically,
it will be used in a VOC control calculation in which a design NMOC/NOX ratio
is plotted on the diagram, and its intersection with a design ozone isopleth is
located. The optimal diagram arrangement is one in which the design NMOC/NOX
ratio is near the diagonal of the diagram, and the isopleth corresponding to the
design ozone concentration is in the upper right quadrant of the diagram. Not
only does this arrangement facilitate the use of the diagram, it also provides
optimal utilization of the OZIPM-2 algorithm that is used in the diagram
construction.
One additional ISOPLETH option is available to the OZIPM-2 user.
As noted earlier, an isopleth diagram is produced by performing repeated simu-
lations that generate the maximum, one-hour average concentrations that are used
in the construction of the diagram. These simulation results are always sum-
marized in tabular form showing the initial NMOC and NOX concentrations used in
the simulations, the ratio of these concentrations (i.e., NMOC/NOX), and the
maximum one-hour average that results. Any non-zero entry in the fourth numeric
field of the ISOPLETH option causes the program to print the time of the center
of the resultant maximum one-hour average as well (in minutes after the simula-
tion start). In this mode, as well as in the default mode, the phrase "not max"
will be printed whenever a maximum concentration is not reached. In the event a
67
-------
user desires to examine in more detail the conditions leading to a "not max"
situation, a CALCULATE option may be run with the printed NMOC and NOX con-
centrations leading to that situation.
Activation of the ISOPLETH option automatically generates a
line-printer plot of the isopleth diagram. The user also has the option of
generating an off-line plot (e. g., by CALCOMP) by means of the PLOT option.
(The details of the PLOT option are discussed in Section 3.2.4.2.) When such a
plot is desired, the PLOT option must precede the ISOPLETH option, and only one
isopleth diagram can be generated per model run.
3.2.3.3 Control Calculation (EKMA)
A new feature of the OZIPM-2 program is its ability to perform a
VOC emission reduction calculation without generating an ozone isopelth diagram.
In this mode, the user must supply information on the base-case peak ozone level
to be reduced (referred to here as the base ozone value), the NMOC/NOX ratio to
be used in the calculation, and the percentage change in NOX emissions. The
calculations are performed in accordance with the procedures used to calculate
control estimates from an ozone isopleth diagram. (The reader is referred to
References 3, 8 and 9 for background.) Through an iterative search procedure,
a base-case point is first located by finding the initial NMOC and NOX concen-
trations (in the specified ratio) that produce the desired ozone concentration
(within 0.0005 ppm). A post-control point is then found by first adjusting the
base-case NOX point to reflect the change in NOX emissions input by the user,
and then finding the initial NMOC concentration that, along with the adjusted
NOX concentration, will produce an ozone value of 0.12 ppm (again, within 0.0005
ppm). The VOC reduction estimate is then calculated as the percent change in
NMOC concentration from the base-case point to the post-control point. (A more
detailed discussion is included in Section 2.2.3).
68
-------
The EKMA option is activated by an input record with the code
word EKMA located in columns 1-4. The base ozone value is then placed in the
first numeric field of the EKMA input record. The second numeric field of this
record contains the NMOC/NOX ratio. Note that defaults have not been included in
the program, so these values must be entered by the user. The percentage change
in NOX emissions that is expected between the base-case and the post-control time
periods is coded in the third numeric field. This value should be entered as the
percent change. Thus, a positive entry corresponds to an increase, and a nega-
tive entry to a decrease. (For example, a 5% increase would be coded as 5.0, and
a 5% decrease as -5.0.) The fourth numeric field is used to signify a change in
transport conditions. If the same transport conditions are assumed for the base-
case and post-control case, then this entry may be left blank. Otherwise, a
numeric entry (e.g., 1.0) denotes that different transport conditions are to be
used for the post-control case than for the base-case case, and these new values
are coded in the next input record. The first two fields of this input record
contain the surface and aloft ozone concentrations (in ppm), respectively.
Similarly, the next two contain the surface and aloft NMOC transport levels (in
ppraC), and the last two contain the NOX surface and aloft transport levels (in
ppm). The user should note that the structure of this input record is similar
to that of the TRANSPORT input record, but if any entry is left blank, then tha
base-case transport level will be used for the post-control case. Also, no
provisions are included for making any changes to the composition of NMOC used
in the simulations (i.e., the same NMOC transport composition will be used for
both base-case and post-control point).
As described above, the EKMA option causes the program to compute
the VOC reduction (in percent) needed to lower the base ozone to 0.12 ppm. One
additional option is available to the user to generate supplemental information.
69
-------
An entry of 1.0 in the fifth numeric field of the EKMA option record causes the
generation of a tabular report showing the change in ozone as a function of per-
centage change in VOC. Predicted ozone corresponding to VOC reductions of 10%,
20%, 30%, ..., and 100%, respectively, are printed. If a value of 2.0 is coded
instead, the predicted ozone concentrations will also be written to a user
defined file, which might be used for subsequent analysis or graphical display.
One output record is written to the file for each EKMA option that is activated.
The output format consists of 11 fields, each five columns wide. The first field
(columns 1-5) contains the base-case ozone value. The remaining ten fields con-
tain the ozone predictions corresponding to the VOC reductions of 10%, 20%, 30%,
...100%, in that order.
3.2.4 Miscellaneous Options
The major options governing OZIPM-2 operation have been discussed in
the previous sections. Additional options that are available to the user to
control the model simulations and program operation are described below.
3.2.4.1 Title (TITLE)
A default title, "Standard Ozone Isopleth Conditions," is printed
on all output reports unless overridden by the user with the TITLE option. To
activate this option, the code word TITLE is coded in the first field of this
option input record. The title to be used on all subsequent output reports is
coded on an input record immediately following the TITLE input record. Any entry
made in columns 1-72 of this record will be included as part of the title.
70
-------
3.2.4.2 Offline Plot (PLOT)
An offline plot of an isopleth diagram may be generated whenever
the ISOPLETH option is invoked. Any plotting package that uses the standard
CALCOMP software may be used, but file handling and subroutine linkage must be
carried out by the user. Additional information on the latter is contained in
Section 4.3.2.
When generating an offline plot, the user has a number of options
available. First, the physical size of the diagram may be controlled with the
third and fourth numeric fields of the PLOT option input record. Under default
operation, the diagram that is generated will be 8.5 inches wide by 5.95 inches
high. A different sized diagram may be generated by entering the length of the
abscissa (in inches) in the third numeric field, and the length of ordinate (in
inches) in the fourth numeric field. The size of the title characters, axes
labels, isopleth labels, and axes tickmarks are controlled by numeric fields
five and six. The default size for all title characters and axes labels is
0.10 inches, but can be overriden by an entry (in inches) in the fifth numeric
field. Similarly, the size of the ozone isopleth labels and tick marks (default
= 0.07 inches) is controlled by the sixth numeric field. The first numeric field
controls the location of the label for each isopleth that is plotted. Permis-
sible values range from 0.1 to 0.8, and refer to the relative arc length along
an isopleth at whch the isopleth label is positioned. The default for this
parameter is 0.6. Except for the positioning factor controlling the location
of isopleth labels, proportional changes to all parameters is recommended when
resetting any of the defaults.
The only other PLOT option available to the user is one that
activates a grid overlay on the diagram, but it is specific to the plotting
package being used. For CALCOMP plotters, any positive entry in the second
71
-------
numeric field generates a grid overlay. The grid overlay will be of a different
color if the user has access to this CALCOMP option. For users having access to
a matrix plotter (e.g., VERSATEC), the thickness and pattern (e.g., dot-dash)
of the grid is controlled by entering a negative number (non-zero) in the second
numeric field. The pattern and texture of the grid network is controlled by the
absolute value of the entry, which varies with different plotting systems.
3.2.4.3 Simulation Length (TIME)
The default simulation length for all simulations is ten hours,
starting at 0800 LOT and ending at 1800 LOT. The default simulation length can
be modified by invoking the TIME option. The first numeric field on this input
record is for the starting time, and the second numeric field is for the ending
time. In both cases, 24-hour clock time should be entered (e.g., 0700, 2000,
etc.). Note that when the starting time is changed, the city-specific inputs
for EMISSIONS and MIXING are expressed relative to the new starting time. For
example, if the starting time is changed to 0700 LDT, then the first hour of
emissions refer to the period 0700 to 0800 LDT. Also, the total length of the
simulation is limited to 15 hours.
3.2.4.4 Isopleth Diagrams For Alternate Species (SPECIES)
Under default operational mode, an ozone isopleth diagram will be
generated when the ISOPLETH option is invoked, and the maximum one-hour average
ozone concentration will be computed with the CALCULATE option. To generate an
isopleth diagram for another species, the user may activate the SPECIES option
by entering the code word in an input record, and positioning this input record
before the ISOPLETH option. The species that is desired is entered on an input
record that immediately follows the SPECIES input record. The species code
word that is used in the chemical mechanism must be entered in columns 1-4 of
72
-------
this input record, and must be left justified. Unless the concentration values
of the species correspond to typical ozone levels, the user may also wish to
modify the ISOPLETH option inputs in order to produce isopleths that correspond
to typical levels of the species of interest. Finally, inclusion of the SPECIES
inputs before a CALCULATE option causes OZIPM-2 to report the maximum, one-hour
average concentration of the species of interest instead of ozone, and to produce
a line-printer plot showing the corresponding time-concentration profile.
3.2.4.5 Setting Initial Concentrations (INITIAL)
Initial concentrations of all species other than NMOC, NOX and
ozone are assumed to be zero at the start of the simulation unless overridden by
the INITIAL option.* The INITIAL option is activated by coding INITIAL in the
first field of the INITIAL input record, and by entering in the first numeric
field the total number of species whose initial concentrations are to be reset.
Up to 80 species' concentrations can be specified at one time. The mechanism
code names of the species whose concentration are to be initialized are entered
on an input record immediately following the INITIAL input record. The first
species name is entered in the first four columns of the first numeric field
(columns 1-4), the second in the first four columns of the second numeric field
(i.e., columns 11-14), and so forth. Up to seven species names can be coded
on any one input record, and all species names must be left-justified in their
respective fields. The initial concentrations of the designated species are
entered in a set of input records that immediately follow the records containing
the species names. Entries must be in the units of molar concentration (i.e.,
ppmV), and must be in the same order as named in the first set of inputs. The
Initial concentrations of organic compounds, NO, NC^ and ozone cannot be
controlled by this option.
73
-------
concentration of the first species is coded in the first numeric field of a new
input record, the second in the second numeric field, etc. Again, seven concen-
trations can be coded on any one input record, with the remaining concentrations
coded on as many additional input records as needed.
3.2.4.6 Controlling Simulation Accuracy (ACCURACY)
A number of options are available to the user that affect the
accuracy used in single simulations and in the construction of isopleth diagrams.
These options are identical to those available in OZIPP, and will only be briefly
summarized here. The reader may wish to refer to the OZIPP User's Manual for
additional information. Although the default values preset in OZIPM-2 will be
adequate for most applications, the discussion below is included for
completeness.
The ACCURACY option permits the user to control the numerical
accuracy in generating isopleth diagrams by using more or fewer simulations,
more or less accuracy in interpolation, etc. As described in Section 2.2.2, a
series of simulations are performed at several points located along radials
emanating from the origin when an isopelth diagram is generated. The number of
radials, and the number of points along those radials, can be controlled by the
user. First, consider the radials. Under default operation, 11 radials are
used in diagram generation. The user may alter this value by entering any odd
number, from 1 to 19, in the first numeric field of the ACCURACY input record.
Similarly, the number of points selected along those radials is controlled with
the second numeric field. The default value of 5 points per radial can be over-
ridden by placing any number between 1 and 8 in this field. It should be added
that these parameters affect the computer time required to generate an isopleth
diagram, so some adjustments to that parameter may be required if the number of
points is increased significantly (see also Section 4.3.2).
Ik
-------
Numeric fields 3, 4 and 5 are used for parameters that affect
the accuracy of the numerical integration, and the interpolation and plotting
that is carried out in generating a diagram. The error tolerance for the
numerical integration is located in the third numeric field. The default value
is 0.01, with smaller values increasing accuracy and larger values reducing
accuracy. Permissible values range from 0.1 to 0.00001. Hyperbolic spline
tension factors are controlled in numeric fields 4 and 5, with the fourth field
used for interpolation tension, and the fifth field for plotting tension. The
default values for both are 1.0. Higher numbers lead to straight lines, and
lower numbers to cubic splines. Acceptable values range from 0.001 to 50.
The last numeric field in the ACCURACY input record can be used
to conserve computer time by halting all simulations when the one-hour average
concentration of ozone (or the species selected with the SPECIES option) reaches
its maximum value. It should be noted that the use of this option runs the risk
of missing "double ozone peaks" (i.e., conditions in which predicted ozone peaks,
falls off, and then peaks again in a single simulation), and is not generally
recommended. Nevertheless, it can be invoked by placing any non-zero entry in
the sixth numeric field of the ACCURACY input record.
3.2.4.7 Using Previous Simulation Results (ALREADY)
The ALREADY option is included to allow the user to make use of
previous simulation results, and thus potentially save computer time. This
option might be used, for example, to restart a run that terminated due to a
time restriction, to produce an off-line plot of an isopleth diagram generated
under a prior run, or to alter the tension factors used in a prior run. Whenever
this option is invoked, all other model inputs used in the previous run and the
desired run must be identical. The savings in computer time result from the
75
-------
program not having to duplicate single simulations performed in the prior run,
since these are provided as model inputs.
The first numeric field of the ALREADY input record contains the
total number of isopleth diagram simulations that were completed in the prior
run. The simulation results themselves are entered on a set of input records
that immediately follow the ALREADY option, and may be obtained from the tabular
report produced in the previous run. One simulation result is entered per record
in the order that they were performed in the first run. The required entries
include the initial NMOC concentration (numeric field 1), the initial NOX con-
centration (numeric field 2) and the resultant maximum, one-hour average ozone
concentration (or the concentration of the species of interest if the SPECIES
option is used) in numeric field 3. Note that the total number of such input
records must equal the number specified on the first numeric field of the ALREADY
input option.
3.3 MULTIPLE ISOPLETHS OR CALCULATES
As mentioned earlier, the order of the OZIPM-2 option input records is not
usually critical, so long as the appropriate inputs precede a functional option
such as ISOPLETH or CALCULATE. Nevertheless, errors will be kept to a minimum
if the ordering scheme shown in Figure 3-1 is used. Again, all input records
associated with any particular option must be grouped together, and options
that are not used may be omitted. A blank input record stops program operation.
The structure of OZIPM-2 also permits multiple operations to be performed
in a single model run. One isopleth diagram is produced for each ISOPLETH option
included with the inputs. Likewise, a single simulation is carried for each
occurrence of a CALCULATE option, and a single VOC control calculation is per-
formed for each EKMA option. Thus, for example, all three operations could be
76
-------
Mechanism Inputs
Simulation Options
City-specific Inputs
Program Operation
MECH FIRST
TITLE
PLOT
TIME
SPECIES
INITIAL
ACCURACY
ALREADY
PLACE
DILUTION OR MIXING
REACTIVITY
EMISSIONS OR MASSEMISS
TRANSPORT
CALCULATE
ISOPLETH
EKMA LAST
Program Halt
blank record
Figure 3-1. Example Order For OZIPM-2 Inputs.
77
-------
performed in one run by including CALCULATE, EKMA and ISOPLETH input records at
the end of the set of input record options. Further, the same operation can be
performed in a single model run, but using different city-specific (or other
inputs). The major consideration here is that an OZIPM-2 option, once activated,
remains in effect until respecified.* As an example, consider the recommenda-
tion contained in Reference 8 for computing VOC reductions for the five days
with the highest ozone levels at any particular site. Assume, further, that a
mechanism other than DODGE is to be used. All the required operations could be
performed in one model run using the input structure shown in Figure 3-2. Note
that the MECHANISM option is activated just once, and thus remains in effect for
all subsequent model simulations. The first EKMA option causes a VOC control
calculation to be performed using the city-specific inputs for Day 1, but these
values are then replaced with those for Day 2 when the second EKMA option is
encountered.
Setting up multiple operations in a single run, however, requires
consideration of some additional factors. First, the required computer time
will be roughly proportional to the time needed for one option. Thus, for
example, performing five EKMA calculations will take roughly five times as long
as performing one EKMA calculation. Second, the PLOT option, once activated,
cannot be turned off. In fact, if multiple off-line isopleth diagrams are
desired, then these runs should be made separately, although any number of EKMA
calculations and CALCULATE simulations may be included in the same run with the
ISOPLETH and PLOT options. Finally, if the ALREADY option has been used to
restart an ISOPLETH operation, it must be deactivated before starting the next
*Note that if the default value for a particular variable is desired in place
of a value specified earlier, then the default value must be respecified by
coding its value on the appropriate input record.
78
-------
MECH
city-specific inputs for Day 1
EKMA
city-specific inputs for Day 2
EKMA
city-specific inputs for Day 3
EKMA
city-specific inputs for Day 4
EKMA
city-specific inputs for Day 5
EKMA
blank record
Figure 3-2. Schematic Diagram Indicating Multiple Runs.
79
-------
ISOPLETH operation. This may be done by including another ALREADY input record,
after the first ISOPLETH option record, with a zero (or blanks) entered in its
first numeric field.
80
-------
4.0 USER'S GUIDE
This chapter describes the specific formats that are used for entering the
model inputs discussed in the previous chapter. Also included are explanations
of error messages and warnings that may be generated by the program, discussions
related to the computer requirements associated with running the model, and
example job control language.
4.1 FORMATS FOR INPUT DATA
Tables 4-1A through 4-1R contain the input formats for each of the 18
OZIPM-2 options. The order corresponds to that recommended in Section 3.3 (see
Figure 3-1). Each option is always activated by placing its four letter code
(e.g., MECH, FLAG, etc.) in columns 1-4 of the input record. Each input record
has up to six numeric fields that begin in column 11, and are 10 columns wide.
Unless otherwise noted, numerical entries made in these fields should always be
coded with a decimal point, even if they are integral values. They may, how-
ever, be placed anywhere in the field. In the event that a field is too small
to contain an entry, E-format (e.g., 1.0E02 for 100) may be used, but the entry
must be right-justified within the field.
Some options require additional input records that must immediately follow
the input record with the option code. With a few exceptions (e.g., the
MECHANISM option), these records contain seven, 10-column, numeric fields that
begin in column 1. The same coding convention is used for these fields, i.e.,
all entries should be coded with a decimal point, they may be located anywhere
within the field, and any entry made with E-format must be right-justified
within the field. In a few instances, integer values are required, and these
must also be right-justified. Alphanumeric data required by the MECHANISM,
SPECIES and INITIAL must be left-justified , however.
81
-------
TABLE 4-1A
INPUT FORMAT FOR MECHANISM OPTION
OPTION
RECORD NO.
DESCRIPTION
COLUMNS
CONTENTS
MECHANISM
Used to provide inputs for an alternate kinetic
mechanism. This option is not required when
the default DODGE mechanism is to be used.
1- 4
11-20
21-30
31-40
41-50
51-60
61-70
MECH
The identification number of
the last reaction (max=200.)
The number of photolytic
reactions in the mechanism
(max=8 . )
Number of "hydrocarbon" species
in the mechanism (max=10.)
Number of "aldehyde" species in
the mechanism
Temperature (in degrees k) at
which rate constants are
determined (DF=303.)
Number of photolytic reactions
whose rates are expressed
relative to N02 photolysis
(max=8 . )
2*
1-10
11-21
Identification number of first
photolytic reaction
Identification number of second
photolytic reaction
*If additional entries are required, they are continued on an input record
immediately following the one with the first set of entries, using the same
format.
82
-------
TABLE 4-1A (continued)
INPUT FORMAT FOR MECHANISM OPTION
OPTION
DESCRIPTION
RECORD NO. COLUMNS
CONTENTS
MECHANISM (cont'd)
71-80
Identification number of
seventh photolytic reaction
1-10
11-20
Identification number of first
photolytic reaction whose rate
is proportional to N0£
photolysis
Identification number of second
photolytic reaction whose rate
is proportional to
photolysis
61-70
Identification number of seventh
photolytic reaction whose rate
is proportional to N02
photolysis
4*
1-4
11-14
Alphanumeric code for first
"hydrocarbon" species,
left-justified
Alphanumeric code for second
"hydrocarbon" species,
left-justified
*If additional entries are required, they are continued on an input record
immediately following the one with the first set of entries, using the same
format.
83
-------
TABLE 4-1A (continued)
INPUT FORMAT FOR MECHANISM OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS
CONTENTS
MECHANISM (cont'd)
61-64
Alphanumeric code for seventh
"hydrocarbon" species, left-
justified
5*
1-10
11-20
The carbon number for the
first "hydrocarbon" species
The carbon number for the
second "hydrocarbon" species
61-70
The carbon number for the
seventh "hydrocarbon" species
6**
(optional)
1-4
11-14
Alphanumeric code for the
first "aldehyde" species
Alphanumeric code for the
second "aldehyde" species
31-34
Alphanumeric code for the
fourth "aldehyde" species
*If additional entries are required, they are continued on an input record
immediately following the one with the first set of entries, using the same
format.
**0ptional records 6 and 7 are included only if the mechanism contains
"aldehyde" species explicitly identified as such.
84
-------
TABLE 4-1A (continued)
INPUT FORMAT FOR MECHANISM OPTION
OPTION
DESCRIPTION
RECORD NO. COLUMNS CONTENTS
MECHANISM (Cont'd)
7*
(optional)
1-10
11-20
Carbon number for first
"aldehyde" species
Carbon number for second
"aldehyde" species
31-40
Carbon number for fourth
"aldehyde" species
8**
1-4 Alphanumeric code for first
reactant, left-justified
7-11 Alphanumeric code for second
reactant, left-justified
13-16 Alphanumeric code for third
reactant, left-justified
17-18 Identification number of
reaction, any number between
0 and 99 (but 0 allowed only
if next number is non-zero);
right-justified integer
**
Optional records 6 and 7 are included only if the mechanism contains
"aldehyde" species explicitly identified as such.
The kinetic mechanism inputs begin with this record. One record is included
for each reaction, with all records having the same format.
85
-------
TABLE 4-1A (continued)
INPUT FORMAT FOR MECHANISM OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
MECHANISM (Cont'd)
24* Modulus factor for reaction
identification number; permis-
sible values are 0 (or blank) 1
or 2 (2 is only allowed when the
reaction identification number
is zero)
55-64 The rate constant at 298°K, or
the multiplicative constant for
photolytic reactions; right-
justified if E-format is used
66-72 Activation energy, in °K, right-
justified if E-format is used
*The modulus factor is used to redefine the reaction identification number if
an entry is made that is greater than zero. For example, a reaction with
identification number 48 (columns 17-18) would be identified as reaction
number 148 if the modulus factor were 1.
86
-------
TABLE 4-1B
INPUT FORMAT FOR TITLE OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
TITLE Used to supply a new title. If
this option is not activated,
the default title is "Standard
Ozone Isopleth Conditions."
1 1-4 TITL
2 1-72 The title can be placed
anywhere in columns 1-72
87
-------
TABLE 4-1C
INPUT FORMAT FOR PLOT OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
PLOT Activates the drawing of the isopleth diagram
on an offline plotter
1 1-4 PLOT
11-20 Scaling factor for the location
of labels for each isopleth.
The value should be between 0.1
and 0.8; DF=0.6.
21-30 If non-zero, a grid is overlaid
on the diagram. If the value
is positive and non-zero, a
grid is overlaid on the
diagram using a different
color pen (if available).
If the value is negative, a
grid with lines of different
patterns (e.g., dot-dash) is
overlaid on the plot. The
absolute value of this number
corresponds to different
patterns and texture.
31-40 Length (in inches) of the
abscissa (NMOC scale) of the
isopleth diagram; DF=8.5
41-50 Length (in inches) of the
ordinate (NOX scale) of the
isopleth diagram; DF=5.95.
51-60 Sizes (in inches) of the
numbers to be printed on the
axes and of the characters in
the title; DF=0.10.
61-70 The sizes (in inches) of the
labels on isopleths and the
division marks on the axis;
DF=0.07.
88
-------
TABLE 4-1D
INPUT FORMAT FOR TIME OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
TIME Used to reset starting and ending times for
model simulations
1 1-4 TIME
11-20 Starting time for simulations,
2400 hour format (DF=800.)
21-30 Ending time for simulations,
2400 hour format (DF=1800.)
(Note: maximum difference
between start and end time is
15 hours).
89
-------
TABLE 4-1E
INPUT FORMAT FOR SPECIES OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
SPECIES Used to plot isopleths for any species in
the mechanism, or determine maximum one-hour
average concentration and plot time-concen-
tration profile of species with CALCULATE
option (DF=03)
1 1-4 SPEC
1- 4 Alphanumeric code of species
of interest, left-justified
90
-------
TABLE 4-lF
INPUT FORMAT FOR INITIAL OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
INITIAL Used to specify initial concentrations of
species other than organics, NO, N02, or ozone
1 1-4 INIT
11-20 Number of species whose
initial concentrations are to
be reset (max=80.)
2* 1-4 Alphanumeric code of first
species whose initial con-
centration is to be reset
(left-justified)
11-14 Alphanumeric code of second
species whose initial con-
centration is to be reset
(left-justified)
61-64 Alphanumeric code of seventh
species whose initial con-
centration is to be reset
(left-justified)
3* 1-10 Concentration for first species
(ppmV)
11-20 Concentration for second
species (ppmV)
61-70 Concentration for seventh
species (ppmV)
*If additional entries are required, they are continued on an input record
immediately following the one with the first set of entries, using the same
fo rma t.
91
-------
TABLE 4-1G
INPUT FORMAT FOR ACCURACY OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
ACCURACY Increase or reduce the mathematical accuracy
of an isopleth diagram by using more or fewer
simulations, more or less accurate interpolation,
etc.
1 1-4 ACCU
11-20 Number of constant initial
NMOC/NOX ratios (radial
lines emanating from the origin
of the isopleth diagram) on
which simulations are to be
pe rfo rmed, any odd numbe r
from 1. to 19.; DF=11.
21-30 Number of simulations per
radial line, from 1. to 8.;
DF=5.
31-40 Error tolerance in the
numerical integration routine.
from 0.1 to 0.00001; DF=0.01
41-50 Tension factor for hyperbolic
spline functions used in
first stage of interpolation
from .001 to 50.; DF=1.
51-60 Tension factor for hyperbolic
spline functions used in
plotting isopleth lines from
.001 to 50.; DF=1.
61-70 If any non-zero value is
entered in this field,
simulations will terminate
after any ozone maximum; no
entry produces full length
simulations
92
-------
TABLE 4-1H
INPUT FORMAT FOR ALREADY OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
ALREADY Include results from a previous run
1 1-4 ALRE
11-20 Number of previous simulations
to be input
2* 1-10 Initial NMOC concentration, ppmC
11-20 Initial NOX concentration, ppm
21-30 Maximum one-hour average
ozone concentration, ppm
*0ne record is included for each simulation result. Thus, the number of these
records must be equal to the value coded in columns 11-20 of Card 1. Also, the
records must be put in the same order in which the simulations were performed.
93
-------
TABLE 4-11
INPUT FORMAT FOR PLACE OPTION
OPTION
RECORD NO.
DESCRIPTION
COLUMNS
CONTENTS
PLACE
Input city-specific information on light
intensity. Default values correspond to
Los Angeles on June 21, 1975.
1-4 PLAC
11-20 Latitude, in decimal degrees
north of the equator; DF=34.058
21-30 Longitude, in decimal degrees
west of Greenwich meridian;
DF=118.250
31-40 The time zone, in hours from
Greenwich mean time; DF=8.0
41-50 The year; DF=1975.
51-60 The month of year; DF=6.
61-70 The numerical day of month;
DF=21.
(optional)
1-24
The name of the place can be
entered anywhere in columns 1-
24. Include this record only
if a new value is entered for
the latitude or longitude on
the previous record
94
-------
TABLE 4-1J
INPUT FORMAT FOR DILUTION OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
DILUTION Input city-specific information on mixing heights
1 1-4 DILU
11-20 Initial mixing height, in any
units; DF=510.
21-30 Final mixing height in same units
as initial mixing height; DF=630.
31-40 Starting time of rise in mixing
height (24 hour daylight time);
DF=800.
41-50 Ending time of rise in mixing
height (24 hour daylight time);
DF= time corresponding to 70% of
daylight hours
95
-------
TABLE 4-1K
INPUT FORMAT FOR MIXING OPTION
OPTION
RECORD NO.
DESCRIPTION
COLUMNS
CONTENTS
MIXING
Used to supply hourly mixing heights for dilution
1- 4 MIXI
11-20 Number of hours of dilution*
(max = 15.)
21-30 Mixing height at starting
time of simulation, in any
units
31-40 Mixing height at end of first
hour, in any units
2**
(optional)
61-70 Mixing height at end of fourth
hour, in any units
1-10 Mixing height at end of fifth
hour, in any uni ts
3***
(optional)
61-70 Mixing height at end of
eleventh hour, in any units
1-10 Mixing height at end of
twelfth hour, in any units
31-40
Mixing height at end of
fifteenth hour, in any units
**
***
*If n hours of dilution are specified, then n+1 non-zero mixing heights must be
input.
'included only if more than 4 hours of dilution are specified.
Included only if more than 11 hours of dilution are specifed.
96
-------
TABLE 4-lL
INPUT FORMAT FOR REACTIVITY OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
REACTIVITY Used to supply city-specific information on
N02/NOX ratio and organic reactivity
1 1-4 REAC
11-20 Number of "hydrocarbon"
species in the mechanism if
organic reactivity inputs
are to be supplied
21-30 N02/NOX ratio (DF=.25)
31-40 Number of "aldehyde" species
in the mechanism if organic
reactivity factor inputs are
to be supplied
2* 1-10 Carbon fraction for first
(optional) "hydrocarbon" species
11-20 Carbon fraction for second
"hydrocarbon" species
61-70 Carbon fraction for seventh
"hydrocarbon"
*Included only if a non-zero entry is made in columns 11-20 of input record 1.
If additional entries are required, they are continued on the next input
record using the same format as record number 2. (Note also that order of
hydrocarbon species must be the same as that used in "MECHANISM" inputs.)
97
-------
TABLE 4-1L (continued)
INPUT FORMAT FOR REACTIVITY OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
REACTIVITY (Cont'd)
3* 1-10 Carbon fraction for first
"aldehyde" species
11-20 Carbon fraction for second
"aldehyde" species
31-40 Carbon fraction for fourth
"aldehyde" species
Included only if non-zero entry is made in columns 31-40 of input
record 1. Order of "aldehyde" species must be the same as that used
in MECHANISM inputs
98
-------
TABLE 4-1M
INPUT FORMAT FOR EMISSIONS OPTION
OPTION
DESCRIPTION
RECORD NO. COLUMNS CONTENTS
EMISSIONS
Input city-specific information on post-0800
emissions
1- 4
11-20
21-30
31-40
EMIS
The number of hours for which
emission fractions are to be
input, from 1.0 to 15.0;
DF=0. This number should be
coded as positive if the same
fractions for NMOC and NOX
are to be used. It should be
coded as negative if different
fractions are to be used.
NMOC or NMOC and NOX emission
fraction for hour 1; DF=0.
If all NMOC fractions are to
be set to zero, enter ajiy
negative number and skip to
record 3.
NMOC or NMOC and NOX emission
fraction for hour 2; DF=0.
61-70 NMOC or NMOC and NOX emission
fraction for hour 5; DF=0.
2*
(optional)
1-10 NMOC or NMOC and NOX emission
fraction for hour 6
Input record 2 is included only if more than five hours of emissions are
specified in columns 11-20 of input record 1, and if the first emission frac-
tion entry on input record 1 is positive. If additional entries are required
to specify NMOC or NMOC and NOX fractions, they are continued on an input
record immediately following the one with the first set of entries, using the
same format.
99
-------
TABLE 4-1M (continued)
INPUT FORMAT FOR EMISSIONS OPTION
OPTION
DESCRIPTION
RECORD NO. COLUMNS CONTENTS
EMISSIONS (Cont'd)
11-20 NMOC or NMOC and NOX emission
fraction for hour 7
61-70 NMOC or NMOC and NOX emission
fraction for hour 12
3*
(optional)
1-10
11-20
NOX emission fraction for
hour 1. If all NOX fractions
are set to zero, then any
negative number should be
entered, and no further
entries are required
NOX emission fraction for hour 2
61-70
NOX emission fraction for hour 7
4*
(optional)
1-10
11-20
NOX emission fraction for hour 8
NOX emission fraction for hour 9
61-70
NOX emission fraction for hour 14
Records 3 and 4 are included whenever separate NMOC and NOX fractions are to be
specified (i.e., columns 11-20 of input record 1 contains a negative number).
Record 4 is included only when the number of hours of emissions is greater
than 7. If the number of hours is greater than 14, the additional entries are
made in an input record immediately following record number 4, using the same
fo rma t.
100
-------
TABLE 4-1N
INPUT FORMAT FOR MASSEMISS OPTION
OPTION
DESCRIPTION
RECORD NO. COLUMNS CONTENTS
MASSEMISS
Used to supply mass emission densities through
which post-0800 emission fractions are computed
1- 4
11-20
21-30
31-40
41-50
MASS
Number of hours of emissions
(max=15 .)
Initial NMOC concentration
used to compute NMOC emission
fractions, ppmC
Initial NOX concentration
used to compute
fractions, ppm
NO emission
X
Mixing height at start of
simulation, in meters
2*
1-10 VOC emission density for
hour 1, kg/km^
11-20 VOC emission density for
hour 2, kg/km^
61-70 VOC emission density for
hour 7, kg/km^
3*
1-10 NOX emission density for
hour 1, kg/km^
Number of entries must equal the number of hours of emissions specified in
column 11-20 of input record 1. If additional entries are required, they are
continued on an input record immediately following the one with the first set
of entries, using the same format.
101
-------
TABLE 4-IN (continued)
INPUT FORMAT FOR MASSEMISS OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
MASSEMISS (Cont'd)
11-20 NOX emission density for
hour 2, kg/km^
61-70 NOX emission density for
hour 7, kg/km^
102
-------
TABLE 4-10
INPUT FORMAT FOR TRANSPORT OPTION
OPTION
RECORD NO.
DESCRIPTION
COLUMNS
CONTENTS
TRANSPORT
Used to supply city-specific information on
pollutants transported into city from upwind
areas
1- 4
11-20
21-30
31-40
41-50
51-60
TRAN
Concentration of ozone
transported in surface layer,
in ppm; DF=0
Concentration of ozone
transported aloft, in ppm;
DF=0
If the DODGE mechanism is
being used, the total
concentration of NMOC
transported in surface layer,
in ppmC; DF=0. If another
mechanism is being used and
surface layer transport is to
be specified, the number of
"hydrocarbon" species is
coded as a negative number.
If the DODGE mechanism is
be ing used , the to tal
concentration of NMOC
transported aloft in ppmC;
DF=0. If another mechanism
is being used and transport
aloft is to be specified, the
number of "hydrocarbon" species
is coded as a negative number.
Concentration of NOX transported
in surface layer, in ppm;
DF=0.*
NO,
transport is assumed to be all NO,
103
-------
TABLE 4-10 (continued)
INPUT FORMAT FOR TRANSPORT OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
TRANSPORT (Cont'd)
61-70 Concentration of NOX transported
aloft, in ppm; DF=0.*
2** 1-10 The total NMOC concentration
(optional) transported in surface layer,
ppmC
11-20 Surface layer transport carbon
fraction for first "hydro-
carbon" species
21-30 Surface layer transport carbon
fraction for second "hydro-
carbon" species
61-70 Surface layer transport carbon
fraction for sixth "hydro-
carbon" species
3*** 1-10 Surface layer transport carbon
(optional) fraction for first "aldehyde"
species
NOX transport is assumed to be all N0£.
**Included only if a negative entry is made in columns 31-40 of input record 1.
One additional input record is required if the mechanism contains more than
six hydrocarbon species. Carbon fraction entries for "hydrocarbon" species
must be in the same order as specified in the MECHANISM and REACTIVITY
options.
***Included only if a negative entry is made in columns 31-40 of input record 1,
and the number of "aldehydes" in the mechanism is greater than zero.
104
-------
TABLE 4-10 (continued)
INPUT FORMAT FOR TRANSPORT OPTION
OPTION
DESCRIPTION
RECORD NO. COLUMNS CONTENTS
TRANSPORT (Cont'd)
11-20
Surface layer transport carbon
fraction for second "aldehyde"
species
4*
(optional)
31-40 Surface layer transport carbon
fraction for fourth "aldehyde"
species
1-10 The total NMOC concentration
transported aloft, ppmC
11-20 Aloft carbon fraction for
first "hydrocarbon" species
21-30 Aloft carbon fraction for
second "hydrocarbon" species
5**
(optional)
61-70
1-10
11-20
Aloft carbon fraction for
sixth "hydrocarbon" species
Aloft carbon fraction for
first "aldehyde" species
Aloft carbon fraction for
second "aldehyde" species
34-40
Aloft carbon fraction for
fourth "aldehyde" species
*Included only if a negative entry is made in columns 41-50 of input record 1.
One additional input record is required if the mechanism contains more than
six hydrocarbon species. Carbon fraction entries for "hydrocarbon" species
must be in the same order as specified in the MECHANISM and REACTIVITY options.
**
Included only if a negative entry is made in columns 41-50 of input record 1,
and the number of "aldehydes" in the mechanism is greater than zero.
105
-------
TABLE 4-1P
INPUT FORMAT FOR CALCULATE OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
CALCULATE Perform a single simulation with the initial
NMOC and NOX concentrations specified on this
record
1 1-4 CALC
11-20 Initial NMOC concentration,
in ppmC
21-30 Initial NOX concentration, in
ppm
31-40 Information option; entry of
any positive value will result
in printing of the computed
concentrations of all species,
the rates of change of all
species, reaction rates, and
photolysis rates.
41-50 Time (in minutes) from the
beginning of the simulation
at which computed concentra-
tions of all species in the
kinetic mechanism are to be
printed; DF=60.
51-60 Time step (in minutes) for
subsequent printing of
concentrations; DF=60.
106
-------
TABLE 4-1Q
INPUT FORMAT FOR ISOPLETH OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
ISOPLETH Construct an isopleth diagram according to the
input parameters. Default isopleths are 0.08,
0.12, 0.16, 0.20, 0.24, 0.28, 0.30, 0.32,
0.34, 0.36, and 0.40 ppm
1 1-4 ISOP
11-20 Maximum NMOC concentration (in
ppmC) on abscissa of isopleth
diagram; DF=2.0
21-30 Maximum NOX concentration (in
ppm) on ordinate of isopleth
diagram; DF=0.28
31-40 Number of isopleths to be
drawn, from 1. to 20.; DF=11.
41-50 Any non-zero value will activate
the printing of solar noon and
the time of the center of the
maximum one-hour average con-
centration for each simulation
2* 1-10 Concentration of 1st isopleth,
(optional) ppm
11-20 Concentration of 2nd isopleth,
ppm
61-70 Concentration of 7th isopleth,
ppm
*Record number 2 is required only if an entry is made in columns 31-40 of input
record 1 (i.e., isopleths to be specified). The number of entries in record 2
(and subsequent records) must equal the number of isopleths to be drawn, coded
on input record 1. Additional entries are made on input records immediately
following record number 2, using the same format.
107
-------
TABLE 4-1R
INPUT FORMAT FOR EKMA OPTION
OPTION DESCRIPTION
RECORD NO. COLUMNS CONTENTS
EKMA Used to perform a VOC emission reaction
calculation
1 1-4 EKMA
11-20 Base-case ozone concentration,
ppm
21-30 NMOC/NOX ratio
31-40 Percentage change in NOX
emissions; positive number
for increase, negative number
for decrease
41-50 Change in transport option
indicator; if non-zero, input
record 2 is required
51-60 Option to generate report of
change in ozone as a function
of change in VOC emissions;
If 0., no report generated;
If 1., generate tabular report;
If 2., generate tabular report
and write results to file.
2* 1-10 Concentration of ozone transported
(optional) in surface layer for post-
control conditions, ppm;
(DF = base-case level)
*Record number 2 is included only if non-zero entry is made in columns 41-50 of
input record 1
108
-------
TABLE 4-lR (continued)
INPUT FORMAT FOR EKMA OPTION
OPTION
RECORD NO.
DESCRIPTION
COLUMNS
CONTENTS
EKMA (Cont'd)
11-20
21-30
31-40
41-50
51-60
Concentration of ozone
transported aloft for post-
control conditions, ppm;
(DF = base case level)
Concentration of NMOC trans-
ported in surface layer for
post-control conditions, ppmC;
(DF = base case level)
Concentration of NMOC
transported aloft for post-
control conditions, ppmC;
(DF = base case level)
Concentration of NOX transported
in surface layer for post-
control conditions, ppm;
(DF = base case level)
Concentration of NOX
transported aloft for post-
control conditions, ppm;
(DF = base case level)
109
-------
Most options have specific, preset, default values associated with them,
and these are noted in the tables. Any option may be omitted from the inputs
whenever all of the defaults associated with that option are acceptable.
Similarly, entries only need to be made in a particular field when it is desired
to change a preset default (i.e., fields associated with a particular default-
value that is acceptable may be left blank). Examples illustrating these coding
conventions are contained in Chapter 5.
As noted earlier, the order that the option records are placed is not
usually critical, so long as input data options precede functional options (i.e.,
the CALCULATE, ISOPLETH and EKMA options). Nevertheless, the order described
in Section 3.3 is generally recommended. Any option included in an input data
set will override a similar option previously specified. Thus, for example, if
the DILUTION option is followed by the MIXING option, the MIXING option will be
invoked. The MECHANISM and PLOT options, however, cannot be de-activated once
invoked. Finally, the last input record of any set must be a blank record.
4.2 PROGRAM GENERATED MESSAGES
Two types of error messages can occur when executing OZIPM-2. First, fatal
error messages are caused by problems that immediately halt program execution.
Second, warnings may be produced by the program, although execution continues.
Each are discussed below.
4.2.1 Fatal Error Messages
Nine fatal error messages may occur during OZIPM-2 model runs. Two
are associated with the generation of ozone isopleth diagrams, five may result
from problems encountered in the numerical integration and two others may occur
with the SPECIES and MASSEMISS options. Each are described below, along with
suggestions for corrective action.
110
-------
ISOPLETH DIAGRAM MESSAGES:
THE LOWEST LINE CANNOT BE PLOTTED
INCREASE THE MAXIMUM HC AND NOX VALUES
This message occurs when the species concentration
predicted using the maximum initial NMOC and NOX values is
less than the lowest isopleth to be plotted. The problem
may be corrected by enlarging the diagram (i.e., increasing
the maximum initial NMOC and NOX), or by reducing the
concentrations of the isopleths that are requested.
0 NO LINES CAN BE PLOTTED
BACKGROUND ONLY PRODUCES TOO MUCH PPM
This message occurs when the concentration predicted
for the origin of the diagram (i.e., at NMOC and NOX con-
centrations of zero) is greater than the highest isopleth to
be plotted. If this message occurs, the NMOC, NOX and ozone
values entered with the TRANSPORT option should be checked
for reasonableness. If a diagram for a species other than
ozone is being produced, the concentrations of the isopleths
requested may be increased.
NUMERICAL INTEGRATION MESSAGES;
0 PROBLEM APPEARS UNSOLVABLE WITH GIVEN INPUT
0 INTEGRATION HALTED BY DRIVER AT T =
EPS TOO SMALL TO BE ATTAINED FOR THE MACHINE PRECISION
0 KFLAG = -2 FROM INTEGRATOR AT T = , H =
THE REQUESTED ERROR IS SMALLER THAN CAN BE HANDLED
KFLAG = -3 FROM INTEGRATOR AT T
CORRECTOR CONVERGENCE COULD NOT BE ACHIEVED
ILLEGAL INPUT..EPS.LE.O.
Ill
-------
Should any of these error messages occur, the following steps are suggested.
1. Check to be sure that all input data are correct (e.g., check
NMOC and NOX concentrations entered on the CALCULATE option input record , check
for inappropriate negative inputs, etc.).
2. If generating an isopleth diagram, redefine the density of
simulations (e.g., change the diagram scales, change the number of radials,
number of simulation points per line, etc.).
3. Increase the error tolerance.
4. As a last resort, alter the simulation conditions slightly
(i.e., change post-0800 emissions, dilution, etc.).
SPECIES AND MASSEMISS MESSAGES:
SPECIES IS NOT FOUND IN THE KINETIC MECHANISM
This message occurs when the SPECIES option is used,
but the entry for the species does not match any in the
mechanism. The SPECIES option inputs must be corrected
(e.g., correct the alpha numeric code of the species,
making sure it is left-justified).
ERROR IN INPUT DATA FOR OPTION MASSEMISS
This message occurs when the initial NMOC, initial NOX,
or initial mixing height input data on the MASSEMISS input
record are not permissible values. Positive, non-zero entries
are required for these variables.
4.2.2 Warning Messages
Warning messages may occur in the processing of the OZIPM-2
options and their associated inputs, or may occur when an isopleth diagram is
112
-------
being generated. Program execution is not halted by these types of messages,
but corrective action may be required in some cases.
0 THE OPTIONS INSTRUCTION CANNOT BE PROCESSED
This message occurs when an improper code is used for
an option. The options should be checked to insure that
the proper codes have been used, and that the numerical data
required by the options in subsequent input records are
present, and in the proper order.
0 DUE TO HIGH BACKGROUND CONDITIONS
THE LOWEST PLOTTED WILL BE PPM
This message indicates that one or more of the lower
isopleths lie too far to the left on the diagram to be
plotted. For example, if background conditions were such
that the predicted ozone concentration at the diagram origin
was greater than 0.08 ppm, then the 0.08 ppm ozone isopleth
could not be plotted, but isopleths corresponding to higher
concentrations could possibly be drawn. Although no cor-
rective action is required, the user may wish to check the
TRANSPORT option inputs to insure that they are reasonable.
4.3 COMPUTER CONSIDERATIONS
The OZIPM-2 program consists of one main program and 47 subroutines written
in FORTRAN. Every effort has been made to make the program as portable as
possible. Nevertheless, some system incompatibilities inevitably arise, and
some of the major ones are discussed below. Also included are discussions of
computer resource requirements, input/output operations and the use of the
CALCOMP subroutines. The final section contains example job control language.
A complete listing of the program is contained in the final appendix of this
document. For reference, each subroutine has been assigned a letter code (e.g.,
A for MAIN), and each line within a subroutine has been numbered sequentially.
Thus, reference to line A 5 refers to line number 5 of the MAIN program (i.e.,
A). These identifiers are located in columns 73 through 80 in the listing.
113
-------
4.3.1 Potential System Incompatibilities
Although OZIPM-2 has been written to conform to ANSI FORTRAN, some
language usage may not be compatible with all computer systems. Some of the
identified incompatibilities are discussed below.
In subroutine SOLAR, two calls are made to the standard FORTRAN
function for computing arcsin. As coded, the arcsin call is made using the
function ASIN. On some computer systems, this function is referenced by a call
to ARSIN. Lines D 61 and D 81 of subroutine SOLAR must be modified accordingly
should this be the case.
Three of the subroutines in OZIPM-2 have multiple entry points:
SUBROUTINE DIFFUN L 1
ENTRY DIFSET L 176
SUBROUTINE ISOPLT V 1
ENTRY SAVLIN V 87
ENTRY LINPRNT V 108
SUBROUTINE VVLBLF AS 1
•
ENTRY WLBLC AS 60
ENTRY WLBLL AS 165
Some reprogramming may be required if multiple entry points are not permitted.
As a natural occurrence of the numerical integration scheme used in
OZIPM-2, underflows may result. (The latter can result from dividing a very
small number by a large one or multiplying two very small numbers.) When this
occurs, the proper corrective action is to set the resultant value to zero and
114
-------
continue with the calculations. Most computer systems have standard procedures
for handling this situation. For example, with the UNIVAC-1100, this corrective
action is taken automatically and no error message is generated. On some com-
puter systems, however, it may be necessary to invoke special error handling
routines and/or suppress the printing of any error messages associated with the
occurrence of an underflow.
Two variables in OZIPM-2 must be set by the user to correspond to the
computational characteristics of the specific computer that is to be used. These
variables, UROUND and EXPMAX, are contained in the BLOCK DATA subroutine at lines
AV 437 and AV 438, respectively. The preset values of these variables were
selected for use with a UNIVAC 1100 computing system, but may require alteration
when using another system.
The value of UROUND should be chosen such that it is slightly larger
than the smallest number which gives a result different from one when it is
added to one (i.e., 1.0 + UROUND should give a result greater than one). For
the UNIVAC, an appropriate value is 7.5E-09, and for 32-bit machines such as
IBM, 0.5E-06 is appropriate. For other systems, the value of UROUND may be
calculated from the number of significant digits (N) used for the mantissa of a
floating point number:
UROUND = 2~N (4-1)
Alternatively, it can be determined by trial and error from the condition that:
1.0 + UROUND ?4 1
where UROUND is the smallest such positive number that satisfies the inequality.
In practice, the value of UROUND that is used in OZIPM-2 can be slightly larger
than the smallest value. If this number is set too small, the numerical
115
-------
integration routine will not find a solution, eventually aborting because of
time limitations.
EXPMAX is set to insure that the maximum permissible value for the
exponent of e is never exceeded, and is again machine dependent. The value of
EXPMAX preset in OZIPM-2 is 87.4, which is slightly lower than the maximum per-
missible on a UNIVAC 1100. For an IBM system, a value of 174.0 is appropriate.
The value of EXPMAX can be derived for other systems using the following
relationship:
e EXPMAX = 10N (4_2)
where 10N is the largest value permitted for a real constant. EXPMAX should be
set slightly lower than the number calculated, however. For example, EXPMAX
calculated from equation 4-2 for the UNIVAC 1100 is 87.498, but was set to 87.4
to insure that this value is never reached.
4.3.2 Computer Requirements
The OZIPM-2 program requires approximately 65k words of storage on the
UNIVAC 1100 computing system (i.e., 36-bit words). The only peripheral devices
that may be required are mass-storage (or tape) files for the CALCOMP plot option
and the EKMA generated file. These are discussed in subsequent sections of this
chapter. The time requirements associated with OZIPM-2 runs will vary with com-
puting system, and with the operations performed in the program. Nevertheless,
the following approximate run times required on the UNIVAC computer system may
prove useful:
Program Operation Time Required
one CALCULATE < 30 seconds
one EKMA 11/2 minutes
one ISOPLETH 5 minutes
116
-------
The time required for multiple program operations within the same run can be
approximated by adding the times for the individual runs.
4.3.3 Input/Output
The OZIPM-2 program is designed to read card-image input records (unit
number 5) and produce line-printer output (unit number 6). These default unit
assignments may be changed by modifying the variables IN and IOUT in the BLOCK
DATA subroutine (lines AV 435 and AV 411), respectively. If an off-line plot is
to be generated, OZIPM-2 produces CALCOMP compatible output on unit number 14.
This unit can be changed by modifying line T 37 of subroutine LINER. Routing
of the file to the off-line plotter is system dependent, and this must be
handled on a case-by-case basis.
One option of the OZIPM-2 program is the generation of a file
containing information produced by the EKMA routine (see Section 3.2.3.3).
Output generated by this routine is written to a file on unit number 11. (Note
that this file needs to be assigned only when this option is invoked, and the
unit number can be changed in line number AE 15 of subroutine RANGE.) The out-
put produced is card-image format (i.e., 80 columns), with one record generated
per call to the EKMA option. The output consists of the ozone concentrations
(F5.3 format) corresponding to base-conditions and to changes in VOC emissions.
Thus, the record format is as follows:
117
-------
Field
Number Columns Contents
1 1-5 Base-case ozone, ppm
2 6-10 Ozone predicted for a 10% VOC
emission reduction, ppm
3 11-15 Ozone predicted for a 20% VOC
emission reduction, ppm
11 51-55 Ozone predicted for a 100% VOC
emission reduction, ppm
4.3.4 CALCOMP Routines
The CALCOMP routines used in OZIPM-2 include the following
subroutines: PLOTS, PLOT, SYMBOL, NUMBER, and NEWPEN. Although these routines
are only called when the PLOT option is included, user's without access to these
systems subroutines may not be able to execute the program without explicitly
linking them with the OZIPM-2 subroutines. This problem may be circumvented by
creating a series of dummy subroutines with the aforementioned names as follows:
SUBROUTINE (argument list)
RETURN
END
For users with access to CALCOMP routines, the names of the subroutine calls
used in OZIPM should be checked for consistency with system defined names, and
the proper job control language should be used to link the system subroutines
to OZIPM when generating an executable module.
4.3.5 Job Control Language
The following runstream illustrates the executive control language
(ECL) necessary to execute the OZIPM-2 program on a UNIVAC 1100 computer
system:
118
-------
@RUN
@ASG,A prog-file.
@PLOT plotfile.
@XQT prog-file.abs
INPUT RECORDS
@FRES plotfile.
@SYM plotfile.,,PLOT
@FIN
Although the job control language will be different for most computer systems,
the fundamental requirements for executing OZIPM-2 on different systems are the
same. The @RUN statement initiates the program run. The @ASG statement assigns
the file containing the OZIPM-2 executable module (i.e., the absolute element
in UNIVAC notation, the load module in IBM notation). A file that is to contain
the data for CALCOMP plotting is assigned with the @PLOT statement. The @XQT
statement initiates program execution, with the input data contained on the
input records. The @FREE and @SYM statements route the CALCOMP produced file
to the CALCOMP plotter for generation of the off-line PLOT. Finally, the @FIN
signifies the end of the runstream. Note that if a CALCOMP plot is not desired,
then the @PLOT, @FREE, and @SYM statements are omitted.
119
-------
5.0 EXAMPLE OZIPM-2 RUNS
This chapter includes examples demonstrating some routine applications of
OZIPM-2. Most emphasis is placed on the new features, such as the EKMA routine
and the use of an alternate chemical mechanism. The user may also wish to review
the examples contained in the OZIPP User's Manual, since many are relevant to
the use of OZIPM-2 as well.
5.1 BENCHMARK EXAMPLE
When dealing with a program as complex as OZIPM-2, special care should be
taken to insure that it is operating properly. Although almost any example run
could serve as a benchmark, the approach taken here is to start with a simple
example requiring minimal input data and minimal computer time. Before pro-
ceeding to the more complex examples, replication of the example shown in this
section is recommended.
The input data set required for the first example is shown in Table 5-1.
Only two input records are needed, one activating the CALCULATE option and the
second (a blank record) indicating the end of the input data. The 1.0 and 0.10
on the CALCULATE option are the initial NMOC and NOX concentrations. Calling
the CALCULATE option in this manner causes the program to perform a single
simulation with these levels using default values for all other model input
variables.
The output for the example is shown in Figure 5-1, and can be broken down
into three major parts. The first is a report summarizing the values of the
city-specific model variables used in the simulation. The next portion consists
of a table showing instantaneous pollutant concentrations at hourly intervals,
120
-------
12345678
12345678901234567890123456789012345678901234567890123456789012345678901234567890
1 CALC 1.0 .10
2
12345678901234567890123456789012345678901234567890123456789012345678901234567890
12345678
TABLE 5-1. INPUT DATA FOR EXAMPLE 5-1
121
-------
STANDARD OZONE ISOPLETH CONDITIONS
PHOTOLYTIC RATE CONSTANTS CALCULATED FOR
LOS ANGELES, CALIF.
LATITUDE
LONGITUDE
TIME ZONE
DATE
TIME
34.058
118.350
8.0
6 21 1975
800 TO 1800
LOCAL DAYLIGHT TIME
DILUTION DETERMINED FROM THE FOLLOWING
INVERSION HEIGHTS INITIAL 510. FINAL 630.
TIMING START 800. STOP 1617.
MIXING HEIGHTS (AT THE BEGINNING OF EACH HOUR)
TIME 800 900 1000 1100 1200 1300 1400 1500 1600 1700
HEIGHT 510.0 529.6 554.3 577.5 594.6 606.7 615.6 622.6 628.4 630.0
INITIAL
INITIAL
N02/NOX
PROP FRACTION .250 BUT FRACTION .750
HCHO FRACTION .020 ALD2 FRACTION .030
.250
FIGURE 5-1. OUTPUT FOR EXAMPLE 5-1
122
-------
STANDARD OZONE ISOPLETH CONDITIONS
TIME
(LOT )
800.
900.
1000.
1100.
1200.
1300.
1400.
1500.
1600.
1700.
1800.
MAXIMUM
HC
TOTAL
1.00000
.85976
.68346
.59731
. .51651
.46529
.43387
.39903
.36650
. 35418
.34601
ONE HOUR
PROPYLENE
FRACTION
.25000
.19914
.12119
.07946
.04189
.02279
.01415
.00748
.00359
.00242
.00167
AVE 03 =
ALDEHYDE
FRACTION
.05000
.12125
.19282
.20577
.19310
.16907
.14895
.12368
.09873
.08724
.07864
.26245 CENTERED
NOX
TOTAL
.10000
.08918
.06472
.04828
.03040
.01869
.01207
.00588
.00168
.00044
.00001
AT 434.
N02
FRACTION
.25000
.74353
.89553
.91473
.92556
.93086
.93405
.93880
.94822
.95935
.97668
MINUTES.
03
(INSTANT)
.00000
.04122
.14549
.19441
.23425
.25259
.25950
.26256
.26097
.26039
.25945
FIGURE 5-1. OUTPUT FOR EXAMPLE 5-1 (continued)
123
-------
0
z
0
N
E
P
P
M
. J1S+ + » *
I
I
I
I
.270 +
I
I
+
I
I
.225+
I 0
I
+ ' 0
I 0
I 0
.180+ 0
I 0
I 0
+ 00
I
I 0
.135 +
I
I 00
+ 0
I
I 00
.090+ 0
I
I
+ 0
I 0
7 0
.045+
: o
T 00
000
10000
_onn+ + + +
I
I
I
I
+
00000 00 0 0 0 0000000 0 000000000000 I
00 I
0 +
0 I
0 I
0 +
I
I
+
I
I
+
I
I
+
I
I
+
I
I
+
I
I
+
I
I
+
I
I
+
I
I
I
I
.0 60.0 120.0 180.0 240.0 300.0 360.0 420.0 480.0 540.0 600.
TINE (MINUTES)
STANDARD OZONE ISOPLETH CONDITIONS
FIGURE 5-1. OUTPUT FOR EXAMPLE 5-1 (continued)
124
-------
with the maximum one hour average concentration shown at the bottom of the table.
The last page of output is a graph of instantaneous ozone concentration versus
time.
Because of the internal precision associated with various computing
systems, the outputs produced with two different systems may exhibit small
numerical differences. Since most applications of OZIPM-2 are usually ozone-
related, users may wish to focus on the ozone predictions. As a general rule,
the ozone predictions shown in the tabular output should agree to about the
third decimal place (i.e., 1 ppb). Substantial deviations (say, on the order
of 10 ppb or more) could indicate program installation problems.
5.2 EKMA EXAMPLE
The example problem discussed in this section illustrates the use of the
EKMA routine that is used to compute the VOC emission reduction needed to lower
the base-case peak ozone concentration to the level of the standard (i.e., 0.12
ppm). To illustrate this application, a hypothetical set of city-specific data
is used to establish the simulation conditions. A base-case ozone value of
0.22 ppm is assumed, and a base-case NMOC/NOX ratio of 8.0 will be used in the
calculations.
Table 5-2 shows the input data used in the example. The TITLE option is
used to provide a title, and the PLACE option is used to define simulation light
intensity through the specification of city-latitude (39°), city longitude
(77°), time zone (5=EDT), year (1981), month (8), and day (1). The city name
is located immediately following the PLAC option. The DILU, EMIS and TRAN
options supply information on mixing heights, post-0800 emissions, and pollutant
concentrations attributable to transport.
125
-------
12345678
12345678901234567890123456789012345678901234567890123456789012345678901234567890
1 TITL
2 EXAMPLE 5-2
3 PLAC 39. 77. 5. 1981. 8. 1.
4 CITY NAME
S DILU 250. 1500.
6 EMIS -8.0 .20 .20 .20 .10 .02
7 .02 .02 .02
8 .35 .35 .35 .20 .03 .03 .03
9 .03
10 IRAN .08
11 EKMA .22 8.0 -5.0 1.0 1.0
12 .06
13
12345678901234567890123456789012345678901234567890123456789012345678901234567890
12345678
TABLE 5-2. INPUT FOR EXAMPLE 5-2
126
-------
First, the DILU record indicates that the initial mixing height is to be 250
meters, and the maximum afternoon mixing height is to be 1500 meters. The post-
0800 emissions fractions are input with the EMIS option record, and the three
subsequent record. Note that there are 8 hours of emissions in all. Finally,
the IRAN record is used to set the level of ozone transported aloft to 0.08
ppm.
The EKMA input record contains information that is specifically required
to perform the VOC emission reduction calculation. The first numeric field
contains the base-case ozone concentration (0.22 ppm), and the second field
contains the NMOC/NOX ratio (8.0). The -5.0 in numeric field 3 indicates that
NOX emissions are expected to decrease by 5% between the base-case and the
post-control case. The final two fields contain flags to activate two options
within the EKMA routine. The 1.0 in the fourth numeric field indicates that a
change in transport between the base-case and the post-control case is to be
considered, and that an input record containing the post-control transport
levels follows (i.e., the ozone aloft changes from 0.08 ppm in the base-case to
0.06 ppm in the post-control case in this example). The entry of 1.0 in the
final field of the EKMA record causes the program to generate a tabular report
showing ozone predictions as a function of VOC emission reductions. Note that
since the MECHANISM option was not activated, the default DODGE mechanism is
used in all calculations.
The output for this example is shown in Figure 5-2. The first portion
simply summarizes the city-specific input information. The VOC emission reduc-
tion calculations are summarized in the table shown on page 129. Within this
table, the input information on pollutant transport and assumed change in NOX
is first summarized. Then, the simulations conducted to find the base-case
127
-------
EXAMPLE 5-2
PHOTOLYTIC RATE CONSTANTS CALCULATED FOR
CITY NAME
LATITUDE
LONGITUDE
TIME ZONE
DATE
TIME
39.000
77.000
5.0
8 1 1981
800 TO 1800
LOCAL DAYLIGHT TIME
DILUTION DETERMINED FROM THE FOLLOWING
INVERSION HEIGHTS INITIAL 250. FINAL 1500.
TIMING START 800. STOP 1608.
MIXING HEIGHTS (AT THE BEGINNING OF EACH HOUR)
TIME 800 900 1000 1100 1200 1300 1400 1500 1600 1700
HEIGHT 250.0 437.1 694.9 946.7 1134.1 1264.3 1358.4 1431.0 1492.2 1500.0
INITIAL
INITIAL
N02/NOX
PROP FRACTION .250 BUT FRACTION .750
HCHO FRACTION .020 ALD2 FRACTION .030
.250
TRANSPORTED CONCENTRATIONS
ALOFT OZONE
.080
HYDROCARBON .000
NOX
.000 PPM
CONTINUOUS EMISSIONS (EXPRESSED AS THE FRACTON OF INITIAL
NON-BACKGROUND HYDROCARBON CONCENTRATION EMITTED PER HOUR)
HOUR 12345678
FRACTION .200 .200 .200 .100 .020 .020 .020 .020
CONTINUOUS EMISSIONS (EXPRESSED AS THE FRACTION OF INITIAL
NON-BACKGROUND NOX CONCENTRATION EMITTED PER HOUR)
HOUR 12345678
FRACTION .350 .350 .350 .200 .030 .030 .030 .030
FIGURE 5-2. OUTPUT FOR EXAMPLE 5-2
128
-------
EKMA HC REDUCTION CALCULATION
TRANSPORTED CONCENTRATIONS
PRE-CONTROL
POST-CONTROL
SURFACE
OZONE
.000
.000
ALOFT
OZONE
.080
.060
SURFACE
HC
.000
.000
ALOFT
HC
.000
.000
SURFACE
NOX
.000
.000
ALOFT
NOX
.000
.000
PERCENT NOX CHANG3 BETWEEN PRE- AND POST-CONTROL: -5.0
ITERATIONS FOR PRE-CONTROL POINT:
INITIAL INITIAL HC/NOX PREDICTED PRE-CONTROL
NUM HC NOX RATIO OZONE OZONE
1
z
3
4
1.00 .125
1.27 .158
1.52 .190
1.54 .192
***PRE-CONTROL HC =
8.0
8.0
8.0
8.0
1.54
.1738
.1973
.2186
.2199
.2200
.2200
.2200
.2200
'ERATIONS FOR POST-CONTROL POINT:
!UM
1
2
3
4
INITIAL INITIAL
HC NOX
.64 .183
.66 .183
.74 .163
.73 .183
PREDICTED
OZONE
.1405
.1047
.1209
.1199
POST-CONTROL
OZONE
.1200
.1200
.1200
.1200
***POST-CONTROL HC =
.73
EKMA HC REDUCTION = 53X
FIGURE 5-2. OUTPUT FOR EXAMPLE 5-2 (continued)
129
-------
EKMA PREDICTED CHANGES IN OZONE
HC NOX 03 X-CHG HC X-CHG NOX X-CHG 03
1.540 .183 .3107 .0 -5.0 -4.2
1.386 .183 .2013 -10.0 -5.0 -8.5
1.232 .183 .1897 -20.0 -5.0 -13.8
1.078 .183 .1745 -30.0 -5.0 -20.7
.924 .183 .1544 -40.0 -5.0 -29.8
.770 .183 .1277 -50.0 -5.0 -42.0
.616 .183 .0953 -60.0 -5.0 -56.7
.462 .183 .0624 -70.0 -5.0 -71.7
.308 .183 .0369 -80.0 -5.0 -83.2
.154 .133 .0240 -90.0 -5.0 -89.1
.000 .183 .0196 -100.0 -5.0 -91.1
FIGURE 5-2. OUTPUT FOR EXAMPLE 5-2 (continued)
130
-------
point are summarized by showing the assumed initial NMOC and NOX concentrations
and the predicted ozone concentration associated with each. Note that the
simulations continue until predicted ozone level is within +0.0005 ppm of the
observed ozone. Similar information is shown for the iterations performed to
locate the post-control NMOC point. Note that the NOX concentration used in
these simulations was held constant for all iterations, and was calculated from
the base-case NOX concentration and the input percent change in NOX. The
simulations were continued until the predicted ozone level was within +0.0005
ppm of 0.12 ppm. Finally, the VOC reduction computation is summarized in the
last line of the report by showing the pre-control NMOC point, the post-control
NMOC point, and the resultant percent difference.
The final output table that is produced is the optional one showing
predicted ozone concentrations as a function of change in VOC emissions. The
table begins with the base case prediction, and then shows the predicted ozone
concentration for incremental 10% reductions in VOCs, ranging from 10% to 100%.
Note that the predicted ozone concentrations corresponding to each of the 11
cases (i.e.> base case, 10% reduction...100% reduction) could be written to an
output file if desired.
5.3 ALTERNATE MECHANISM EXAMPLE
The example in this section illustrates the use of a specific alternate
chemical mechanism, the Carbon Bond 3 (CB-3) mechanism. Guidelines for using
the CB-3 mechanism are contained in References 9 and 14, and the OZIPM-2 inputs
were illustrated in Section 3.2.1.2 of this manual. The example problem pre-
sented here will show how the CB-3 mechanism is used with OZIPM-2 to generate
an ozone isopleth diagram, following the recommended approach contained in
131
-------
Reference 9. The city-specific information used in the previous example will
also be used here.
The model inputs for the example problem are shown in Table 5-3. Record
numbers 1 through 87 contain the CB-3 mechanism inputs. Since they were
described in Section 3.2.1.2., the description will not be repeated here. Except
for the RE AC and TRAN options, the city-specific inputs are identical to those
described in the previous section. The RE AC option contains the input organic
reactivity apportionment factors (i.e., carbon fractions). In this example, the
default values recommended in Reference 9 have been used. Thus, 58% of NMOC is
assumed to be PAR, 4% ETH, 3% OLE, etc. The TRAN option is used to supply infor-
mation on pollutant concentrations transported in the surface layer and aloft.
In the example, the ozone surface layer and aloft transport concentrations are
0.01 ppm, and 0.08 ppm, respectively. The next two fields, contain entries of
"-7.0" that indicate that surface layer and aloft transport of NMOC are both to
be considered. (Note that the number 7 actually refers to the total number of
"hydrocarbon" species in the mechanism.) The input data associated with NMOC
transport are provided on the next 4 input records. The first two records con-
tain the surface layer transport information, and the next two contain the aloft
information. In the example problem, the total NMOC concentration transported
in the surface layer is assumed to be 0.038 ppmC, with 53% as PAR, 5% as ETH,
3% as OLE, etc. For transport aloft, the total NMOC concentration is 0.040
ppmC, with 61% as PAR, 6% as ETH, 3% as OLE, etc. The next to last input record,
ISOP, directs OZIPM-2 to generate an isopleth diagram, and the blank record at
the end signifies no further options are to be processed.
The output generated by the example problem is contained in Figure 5-3.
As always, the first portion summarizes the city-specific inputs. Note also,
132
-------
123*5678
1234567S9C12345673901234567S901234567S9012345673901234567S9C1234567S901234567S90
1
z
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
23
29
30
31
32
33
34
35
36
37
33
39
40
HECH
1.
67.
PAR
1.
NO Z
0
03
03
0
03
03
. NO Z
CO
NO
NO 3
NQ3
H02
HO?
PAR
P>'R
OLE
OLE
OLE
OLE
OLE
ETH
ETH
ETH
ETH
AC03
RE02
RA02
ME02
ME02
ME02
RS02
RA02
CM
HCHO
99.
71.
ETH
2.
NO
N02
N02
OH
H02
OH
OH
NO
NO
N02
NO
H02
X
OH
0
0
CH
03
03
0
0
OH
03
NO
NO
NO
NO
NO
NO
03
03
HCHO
OH
7.0 7.0
99. 73. 33. 37.
OLE AP.O HCHO ALD2
2. 6. 1. 3.
1 NO 0
Z 03
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
NO 2
N03
NO
H02
OH
H02
NO?
N02
N02
ME02
ME02
HCHO
RA02
HCHO
HCHO
ME02
HCHO
RE02
HCHO
NO 2
N02
N02
NO 2
NO 2
HCHO
HCHO
CR02
H02
1.0
67.
NH
1.
l.OOE+0
4.40E+6
2.66E+1
N02
N02
OH
AC03 X
PAR
CP.IG
KCRG X
H02 CO
PAR
CRIG
ME02
H02 HCHO HCHO
H02 HCHO HCHO
HE02 HCHO X
HCHO H02
HCHO H02
HCHO H02
X
CO
4
1.
1
2
1
4
1.
2
2
1
1
1
1
2
2
3
8
8
6
6
1
2
1.
1
1
3.
7.
9
5
2
1
.8E-2
30E+4
.OE + 2
.4E + 0
.6E + 4
.4E+2
50E-4
.8E+4
.6E + 1
.2E+4
.5E+4
.OE+5
.2E + 3
.7E + 3
.7E + 3
.7E+4
.OE-3
.OE-3
.OE + 2
.OE + 2
.2E+4
.4E-3
04E+4
.2E+4
.2E+4
7CE + 3
40E + 3
.OE + 2
.OE + 0
.OE + 1
.OE + 2
1450
2450
1000
1525
.0
.0
.0
-10600
560.
325.
325.
-540
1900
1900
300.
SCO.
-332
2560
0
0
0
.0
.0
.0
0
0
.0
.0
9.0E+3
12345678901234567390123456789012345678901234567890123456789012345678901234567890
12345678
TABLE 5-3. EJPUT FOR EXAMPLE 5-3
133
-------
123*5678
12345678901234567890123456789012345678901234567390133456789012345678901234567890
41
42
43
44
45
46
47
48
49
50
51
52
53
54 .
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
^0
HCHO
HCHO
HCHO
GQ
Q3
XCO
AC03
PAN
AC03
ME02
CRIG
CRIG
CRIG
KCRG
MCRG
MCRG
CRIG
CRIG
CRIG
MCRG
MCRG
MCRG
MCRG
ARO
APO
RARO
' OPEN
AFRC
AFRC
PHEN
PHO
FHO
OPEN
OH
ALD2
PHEN
CP02
ALD2
HON'Q
CH
OH
K02
H02
H02
HO
NO 2
HCHO
NO
N02
HCHO
OH
OH
HO
NO
NO 3
HO 2
H02
03
FHEN
OH
NO
OH
NO
36
37
33
81
82
83
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
X
CO
Q3
H02
ME02
X
PAN
AC03
NO 2
N03
NO 2
NO 3
CO
H02
ME02
ME02
HCHO
RARO
H02
HO 2
NO 2
ALD2
HCHO
FHO
PHEN
AL02
H02
H02
PHO
N02
AC03
CH
HCNO
AC03
H02
ME02
CO
N02
HCHO
HCHO
HCHO
HCHO
H02
OH
H02
H02
OPEN
PHEN
ALD2
HCHO
HCHO
HMO 3
X
APRC
AC03
HCHO
CO
NO
CO
X XCO
PAR
PAR
CO
CO
H02 CO
H02
X APRC
CO X
CO CO
AFRC
PAR HCHO
CO
AC03 X
8.2E+3
2.4E-1
5.64E-1
8.867E+3
1.133E+3
l.OE+4
7.0E+3
2.2E-2 13500.0
1.5E+4
9.0E+3
1.2E+4
8.CE+3
2.0E+3
1.2E+4
8.0E+3
2.0E+3
6.7E+2
2.4E+2
9.0E+1
1.5E+2
3.4E+2
4.25E+2
8.5E+1
6.0E+3 600.0
1.45E+4 400.0
4.0E+3
6.0E+3
1.CE+.4
l.OE+4
5.0E+3
4.0E+3
5.0E+4
4.0Etl
3.CE+4
2.0E-2
l.OE+4
1.2E+4
2.5E+4
3.1EO
9.77E+3
12345678901234567890123456789012345678901234567890123456789012345678901234567890
12345678
TABLE 5-3. INPUT FOR EXAMPLE 5-3 (continued -2)
134
-------
12345678
12345678901234567890123456789012345678901234567890123456789012345678901234567890
SI
32
83
34
85
66
87
S3
89
CQ
91
92
93
<=4
95
96
97
98
99
100
101
102
103
104
105
03
01D
010
CH
OH
MR
03
TITL
EXAMPLE
PLAC
5-3
39.
73 010
74 0
75 OH OH
"0 HC2
91 ME02
92 KS
99 0
77. 5.
5.4E-:
4.44E + 1I
6.SE+'
8.SE + :
2.SE + :
l.OE + i
l.OE-H
1931. 8. 1.
CITY NAME
DILU
EMIS
.02
.35
.03
REAC
.53
TRAM
.038
.00
.040
.00
ISOP
250.
-8.0
.02
.35
7.
.04
.01
.53
.61
1500.
.20 .20
.02
.35 .20
.03 .19
.03 -7.0
.05 .03
.06 .03
.20 .10 .02
.03 .03 .03
.05 .00 .15
-7.0
.13 .26 .00
.15 .15 .00
12345678901234567890123456789012345678901234567890123456789012345678901234567390
12345678
TABLE 5-3. INPUT FOR EXAMPLE 5-3 (continued -3)
135
-------
THE REACTIONS ARE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
13
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
N02
0
03
03
0
03
03
N02
CO
NO
N03
NO 3
H02
H02
PAR
PAR
OLE
OLE
OLE
OLE
OLE
ETH
ETH
ETH
ETH
AC03
KB02
P.A02
ME02
ME02
ME02
RB02
RA02
OH
HCHO
HCHO
HCHO
=
=
NO =
N02 =
N02 =
OH =
H02 =
OH =
OH =
NO =
NO =
N02 =
NO =
H02 =
X =
OH =
0 =
0 =
OH =
03 =
03 =
0 =
0 =
OH =
03 =
NO =
NO =
NO =
NO =
NO =
NO =
03 =
03 =
HCHO =
OH =
CH =
=
NO 0
03
N02
N03
NO
H02
OH
H02
N02 N02
N02 N02
N02 OH
ME02
ME02 AC03
HCHO PAR
RA02
HCHO CRIG
HCHO KCRG
ME02 H02
HCHO PAR
RB02
HCHO CRIG
N02 ME02
N02 H02
N02 H02
N02 ME02
N02 HCHO
HCHO HCHO
HCHO HCHO
CR02 X
H02 CO
X AC03
CO
1.000+000
4.400+006
2.660+001
4.800-002
1.300+004
1.000+002
2.400+000
1.600+004
4.400+002
1.500-004
2.800+004
2.600+001
1.200+004
1.500+004
1.000+005
1.200+003
X 2.700+003
2.700+003
3.700+004
8.000-003
X 8.000-003
CO 6.000+002
6.000+002
1.200+004
2.400-003
1.040+004
HCHO HCHO 1.200+004
HCHO HCHO 1.200+004
HCHO X 3.700+003
H02 7.400+003
9.000+002
H02 5.000+000
H02 2.000+001
1.000+002
9.000+003
8.200+003
2.400-001
.000
.000
1.450+0
2.450+0
.000
1.000+0
1.525+0
.000
.000
.000
.000
-1.060+0
.000
.000
.000
5.600+0
3.250+0
3.250*0
-5.400+0
1.9CC+P
1.900+0
8.000-«C
8.000+0
-3.820+0
2.560+0
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
FIGURE 5-3. OUTPUT FOR EXAMPLE 5-3
136
-------
38
81
aa
83
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
53
59
60
61
62
63
64
65
66
67
63
69
70
71
72
73
HCMO =
QO =
Qq =
xco =
AC03 N02 =
PAN =
AC03 H02 =
ME02 H02 =
CRIG NO =
CRIG N02 =
CRIG HCHO =
MCRG NO =
MCRG N02 =
MCRG HCHO =
CRIG =
CRIG =
CRIG =
MCRG =
MCRG =
MCRG =
MCRG =
ARO OH =
ARO OH =
RARO NO =
OPEN NO =
APRC =
APRC =
PHEN N03 =
PHO N02 =
PHO H02 =
OPEN 03 =
OH PHEN =
ALD2 =
PHEN OH =
CR02 NO =
ALD2 OH =
HONO =
OH NO =
03 =
Qq
H02
ME02
X
PAN
AC03
N02
N03
N02
NO 3
CO
H02
ME02
ME02
HCHO
RARO
H02
N02
N02
ALD2
HCHO
PHO
PHEN
ALD2
H02
H02
PHO
N02
AC03
OH
HONO
010
H02
ME02
CO
N02
HCHO
HCHO
HCHO
HCHO
H02
OH
H02
H02
OPEN
PHEN
AL02
HCHO
HCHO
HN03
X
APRC
AC03
HCHO
CO
NO
5.640-001
CO 8.867+003
X XCO 1.133+003
1.000+004
7.000+003
2.200-002
1.500+004
9.000+003
1.200+004
8.000+003
2.000+003
PAR 1.200+004
PAR 8.000+003
2.000+003
6.700+002
2.400+002
CO 9.000+001
1.500+002
CO 3.400+002
4.250+002
H02 CO 8.500+001
6.000+003
1.450+004
H02 4.000+003
X APRC 6.000+003
CO X 1.000+004
CO CO 1.000+004
5.000+003
4.000+003
5.000+004
APRC 4.000+001
PAR HCHO 3.000+004
CO 2.000-002
1.000+004
AC03 X 1.200+004
2.500+004
3.100+000
9.770+003
5.400-001
FIGURE 5-3. OUTPUT FOR EXAMPLE 5-3 (continued)
-------
74 010 = 0 4.440+010 .000
75 010 = OH OH 6.600*009 .000
90 OH = H02 8.800+001 .000
91 OH = ME02 2.800+001 .000
92 NR = NR 1.000+000 .000
99 03 =0 1.000+000 .000
FIGURE 5-3. OUTPUT FOR EXAMPLE 5-3 (continued)
138
-------
EXAMPLE 5-3
PHOTOLYTIC RATE CONSTANTS CALCULATED FOR
CITY NAME
LATITUDE 39.000
LONGITUDE 77.000
TIME ZONE 5.0
DATE 8 1 1981
TIME 800 TO 1800 LOCAL DAYLIGHT TIME
DILUTION DETERMINED FROM THE FOLLOWING
INVERSION HEIGHTS INITIAL 250. FINAL 1500.
TIMING START 600. STOP 1608.
MIXING HEIGHTS (AT THE BEGINNING OF EACH HOUR)
TIME 800 900 1000 1100 1200 1300 1*00 1500 1600 1700
HEIGHT 250.0 437.1 694.9 946.7 1134.1 1264.3 1358.4 1431.0 1492.2 1500.0
INITIAL PAR FRACTION .580 ETH FRACTION .040 OLE FRACTION .030
INITIAL ARO FRACTION .190' HCHO FRACTION .050 ALD2 FRACTION .000
INITIAL NR FRACTION .150
N02/NOX .250
THERE ARE NO ALDEHYDES IN THE MECHANISM
TRANSPORTED CONCENTRATIONS
SURFACE LAYER OZONE .010 HYDROCARBON .038 NOX .000 PPM
ALOFT OZONE .080 HYDROCARBON .040 NOX .000 PPM
CONTINUOUS EMISSIONS (EXPRESSED AS THE FRACTON OF INITIAL
NON-BACKGROUND HYDROCARBON CONCENTRATION EMITTED PER HOUR)
HOUR 12345678
FRACTION .200 .200 .200 .100 .020 .020 .020 .020
CONTINUOUS EMISSIONS (EXPRESSED AS THE FRACTION OF INITIAL
NON-BACKGROUND NOX CONCENTRATION EMITTED PER HOUR)
FIGURE 5-3. OUTPUT FOR EXAMPLE 5-3 (continued)
139
-------
HOUR 1 Z 3 4 5 6 7 _ 8
FRACTION .350 .350 .350 .200 .030 .030 .030 .030
FIGURE 5-3. OUTPUT FOR EXAMPLE 5-3 (continued)
140
-------
THE FOLLOWING SIMULATIONS WERE DONE.
HC
.00000
.00000
2.00000
2,00000
.85485
2.00000
1.30770
.65385
.32692
.05182
1.77685
1.20236
.72604
.36302
.05161
1.47932
1.07050
.69351
.35004
.02338
1.24988
.97440
.48720
.24:60
C2084
1.05919
.84735
.42368
.21184
.00726
. 77745
.38872
.33638
.31098
.15042
NOX
.00000
.28000
.28000
.00000
.28000
.02684
.18308
.09154
.04577
.00726
.28000
.18947
.11441
.05721
.00813
.28000
.20262
.13126
.06625
.00442
.28000
.21829
.1091.4
.05457
.00467
.28000
.22400
.11200
.05600
.00192
.28000
.14000
.13915
..-U200
.05418
RATIO
.00000
.00000
7.14286
.00000
3.05305
74.51248
7.14286
7.14286
7.14286
7.14286
6.34590
6.34590
6.34590
6.34590
6.34590
5.28330
5.28330
5.28330
5.28330
5.28330
4.46385
4.46385
4.46385
4.46385
4.46385
3.78281
3.78281
3.73231
3.78281
3.78281
2.77661
2.77661
2.77661
2. 77.6.6 i.
2.77661
03
.06276
.02147
.27912 NOT MAX
.05889
.06849 NOT MAX
.12933 NOT MAX
.23600 NOT MAX
.17886 NOT MAX
.13830 NOT MAX
.08370 NOT MAX
.23683 NOT MAX
.21459 NOT MAX
.18539 NOT MAX
.14610 NOT MAX
.08553 NOT MAX
.17419 NOT MAX
.16996 NOT MAX
.16831 NOT MAX
.14690 NOT MAX
.07638 NOT MAX
.12965 NOT MAX
.13188 NOT MAX
.14603 NOT MAX
.13458 NOT MAX
.07704 NOT MAX
.09757 NOT MAX
.10234 NOT MAX
.12604 HOT MAX
.13096 NOT MAX
.06921
.05955 NOT MAX
.03769 NOT MAX
.08813 NOT MAX
^.09840 NOT MAX
.12286 NOT MAX
FIGURE 5-3. OUTPUT FOR EXAMPLE 5-3 (continued)
141
-------
Z. 00000
1.29174
.64587
.32393
.05654
2.00000
1.30064
.65032
.32516
.06470
2.00000
1.32337
.66193
.33097
.07895
2.00000
1.36527
.72052
.36026
.10797
2.00000
1.44976
.85047
.43992
.19194
.73760
2.00000
.23467
.15157
.07578
.03789
.00663
.18935
.12314
.06157
.03078
.00613
.14402
.09533
.04767
.02383
.00569
.09870
.06737
.03556
.01778
.00533
.05337
.03869
.02269
.01174
.00512
.28000
.00638
8.52246
8.52246
8.52246
8.52246
8.52246
10.56256
10.56256
10.56256
10.56256
10.56256
13.88675
13.88675
13.88675
13.88675
13.88675
20.26420
20.26420
20.26420
20.26420
20.26420
37.47405
37.47405
37.47405
37.47405
37.47405
2.63429
313.44209
.29618 NOT MAX
.23777 NOT MAX
.17359 NOT MAX
.13283 NOT MAX
.08238 NOT MAX
.28650 NOT MAX
.22919 NOT MAX
.16604 NOT MAX
.12659 NOT MAX
.08129 NOT MAX
.26309 NOT MAX
.21335 NOT MAX
.15517 NOT MAX
.11848 NOT MAX
.08030 NOT MAX
.22723 NOT MAX
.18894 NOT MAX
.14238 NOT MAX
.10957 NOT MAX
.07947 NOT MAX
.17290 NOT MAX
.15103 NOT MAX
.12227 NOT MAX
.09761 NOT MAX
.07915 NOT MAX
.05512 NOT MAX
.08194
FIGURE 5-3. OUTPUT FOR EXAMPLE 5-3 (continued)
142
-------
I
I
.280 +
I
I
+
I
I
I
I
+
I
I
.200 +
I
I
8
+
++ ++
4+ ++
N
0
X
P
P
M
I
I
.160 +
I
I
+
I
I
.120 +
I
I
+
I
I
.080 +
I
I
+ + + +
I
I +
.040+ +
I +
I ++
I +
.000+—
.000
.20
.+—-
.40
-+
.60
_+ + + + + +
.80 1.00 1.20 1.40 1.60 1.80
NMHC (PPMC)
EXAMPLE 5-3
THE 03 LINES ARE .08000 .12000 .16000 .20000 .24000
FIGURE 5-3. OUTPUT FOR EXAMPLE 5-3 (continued)
143
-------
however, that the chemical mechanism is listed as well. The output generated
by the ISOPLETH option consists of two parts. The first is a tabular report
summarizing the simulations that were performed to generate the diagram. The
second part is the line printer plot of the isopleth diagram itself.
5.4 MISCELLANEOUS OPTION EXAMPLE
The final example discussed in this section is included to illustrate
several of the other new options in OZIPM-2 that were not used in the previous
examples, specifically MIXING, MASSEMISS, TIME, INITIAL, and SPECIES. The city-
specific data used in this example are structured around those used in the last
example, and the CB-3 mechanism is also used. In this case, however, the SPECIES
and ISQPLETH options will be used to generate an N0£ isopleth diagram instead of
an ozone isopleth diagram.
Table 5-4 contains the model inputs for the final example. In this example,
the MIXING option has replaced the DILU option, and the hourly mixing height
values used in the simulations are shown on the input records. Note that a total
of 8 hours of dilution was considered, requiring that 9, hourly, mixing heights
be specified. The MASSEMISS inputs include the information needed to compute the
post-0800 emission fractions: number of hours of emissions (8), initial NMOC
concentration (1.2 ppmC), initial NOX concentration (0.150 ppm), and initial
f\
mixing height (250 meters). The emission densities of VOC and NOX, in kg/km ,
are contained on the subsequent input records. The TIME option is used to
increase the length of the simulation in this example by changing the ending time
to 2000 hours LDT, instead of the default 1800. The INITIAL option can be used
to establish the initial concentration of any species, and in the example the
species selected is PAN (i.e., peroxyacetylnitrate), and its initial concen-
tration is set to 0.005 ppm. Finally, the SPECIES option, located anywhere
144
-------
before the ISOPLETH option, causes the OZIPM-2 program to generate an isopleth
diagram for the named species (N02), rather than for ozone.
Figure 5-4 includes the output obtained with the example input data. As
always, the first portion lists the chemical mechanism and gives a summary of
the city-specific model input data. As in the previous example, the next portion
of the output is a tabular summary of the simulations that were performed to
generate the isopleth diagram. In this example, maximum, 1 hour concentrations
of NC>2, rather than 63, are shown. Finally, the N0£ isopleth diagram is the last
of the ISOPLETH generated outputs.
145
-------
12345678
123456789012345673901234567890123456789012345673901234567890123456 78901234567390
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
23
29
30
31
32
33
34
35
36
37
•*3
39
40
MECH
1.
67.
FAR
1.
NQ2
0
03
03
0
03
03
NQ2
CO
NO
N03
K03
H02
HC2
PAR
PAS
OLE
OLE
OLE
OLE
OLE
ETH
ETH
ETH
ETH
AC03
RE02
RA02
ME02
ME02
ME02
R302
PA02
OH
HCHO
99.
71.
ETH
2.
NO
N02
N03
OH
H02
OH
OH
NO
NO
N02
NO
H02
X
OH
0
0
CH
03
03
0
0
CH
03
NO
NO
NO
NO
NO
NO
03
03
HCHO
CH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
13
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
7.0
99.
OLE
2.
NO
03
NO 2
NO 3
NO
H02
OH
H02
N02
NO 2
N02
ME02
ME02
HCHO
RA02
HCHO
HCHO
ME02
HCHO
RB02
HCHO
NO 2
NO 2
NO 2
NO 2
NO 2
HCHO
HCHO
CR02
H02
7.0
73. 33.
ARO HCHO
6. 1.
0
37.
ALD2
3.
1.
1.0
67.
NR
1.
OOE + 0
4.40E+6
N02
N02
OH
AC03 X
PAR
CP.IG
MCRG X
H02 CO
PAR
CRIG
ME02
H02 HCHO
H02 HCHO
KE02 HCHO
HCHO H02
HCHO H02
HCHO H02
X
CO
2.
4
1.
1
2
1
4
1.
2
2
1
1
1
1
2
2
3
8
8
6
6
1
2
1.
HCHO 1
HCHO 1
X 3.
7.
9
5
2
1
9
66E-H
.8E-2
3CE+4
.OE + 2
.4E + 0
.6E+4
.4E + 2
5CE-4
.8E+4
.6E + 1
.2E + 4
.5E+4
.OE+5
.2E + 3
-7E+3
.7E + 3
.7E + 4
.CE-3
.OE-3
.OE + 2
.OE + 2
.2E+4
.4E-3
04E+4
.2E+4
.2E + 4
70E + 3
4CE + 3
.CE + 2
.OE+0
.OE + 1
.OE + 2
.OE + 3
1450
2450
1000
1525
.0
.0
.
.0
-10600
560.
325.
325.
-540
1900
1900
800.
800.
-332
2560
0
0
0
.0
.0
.0
0
0
.0
.0
12345678901234567890123456739012345678901234567890123456789012345678901234567890
12345678
TABLE 5-4. INPUT FOR EXAMPLE 5-4
146
-------
123*5678
1234567890123456789012345678901234567890123456789012345676901234567S901234567890
41
42
43
44
45
46
47
43
49
50
51
52
53
54
55
55
57
53
59
60
61
62
63
64
65
66
67
63
69
70
71
72
73
74
75
76
77
73
79
80
HCHO
HCHO
HCHO
G3
Q3
XCO
AC03
PAH
AC03
ME02
CPIG
CRIG
CPIG
MCRG
KCRG
MC
-------
12345678
12345678901234567890123456789012345678901234567890123456789012345678901234567890
31
82
S3
o4
85
86
87
£3
89
90
91
92
93
94
95
Q6
97
93
99
100
101
102
103
104
105
106
107
103
109
110
111
112
113
03
010
010
CH
OH
MR
03
TITL
EXAMPLE
TIME
IN'IT
RAM
.005
SPEC
HO 2
PLAC
73
74
75
90
91
92
99
5-4
800.
1.0
39.
DID
0
OH
H02
ME02
MR
0
2000.
77.
CH
5. 1981.
5.4E-1
4.44E+10
6.6E+9
8.8E+1
2.8E+1
l.OE+0
l.OE+0
8. 1.
CITY NAME
MIXI
1050.
MASS
50.
5.
25.
3.
REAC
.53
TRAN
.033
.00
.040
.00
ISOP
.02
3.0
1120.
8.
50.
25.
7_
.04
.01
.53
.61
.04
250.
1180.
1.2
50.
25.
.03
.08
.05
.06
.06
410. 620.
1220.
.150 250.
25. 5.
15. 3.
.19 .05
-7.0 -7.0
.03 .13
.03 .15
7.0
.08 .10
810. 950.
5. 5.
3. 3.
.00 .15
.26 .00
.15 .00
.12 .14
123456 78901234567S901234567890123456789012345678901234567S9012345678'501234567890
12345678
TABLE 5-4. INPUT FOR EXAMPLE 5-4 (continued -3)
148
-------
THE REACTIONS ARE
1
2
3
4
5
6
7
8
9
10
11
12
13
1*
15
16
17
18
19
20
21
22
?"
24
25
26
27
23
29
30
31
32
33
34
35
36
37
NO 2
0
03
03
0
03
03
N02
CO
NO
N03
NO 3
H02
H02
PAR
PAR
OLE .
OLE
OLE
OLE
OLE
ETH
ETH
ETH
ETH
AC03
RB02
RA02
ME02
ME02
ME02
RB02
RA02
OH
HCHO
HCHO
HCHO
n
=
NO =
N02 =
N02 =
OH =
H02 =
OH =
OH =
NO =
NO =
N02 =
NO =
H02 =
X =
OH =
0 =
0 =
OH =
03 =
03 =
0 =
0 =
OH =
03 =
NO =
NO =
NO =
NO =
NO =
NO =
03 =
03 =
HCHO =
OH =
OH =
S;
NO 0
03
NO 2
NO 3
NO
H02
OH
H02
N02 N02
N02 N02
N02 OH
ME02
ME02 AC03 X
HCHO PAR
RA02
HCHO CRIG
HCHO MCRG X
ME02 H02 CO
HCHO PAR
RE02
HCHO CRIG
N02 ME02
N02 H02 HCHO
N02 H02 HCHO
N02 ME02 HCHO
N02 HCHO H02
HCHO HCHO H02
HCHO HCHO H02
CR02 X
H02 CO
X AGO 3
CO
1.000+000
4.400+006
2.660+001
4.800-002
1.300+004
1.000+002
2.400+000
1.600+004
4.400+002
1.500-004
2.SOO+004
2.600+001
1.200+004
1.500+004
1.000+005
1.200+003
2.700+003
2.700+003
3.700+004
S. 000-003
5.000-003
6.000+002
6.000+002
1.200+004
2.400-003
1.040+004
HCHO 1.200+004
HCHO 1.200+004
X 3.700+003
7.400+003
9.000+002
5.000+000
2.000+001
1.000+002
9.000+003
8.200+003
2.400-001
.000
.000
1.450+00
2.450+00
.000
i.ooo+oo:
1. 525+00:
.000
.000
.000
.000
-1.060+004
.000
.000
.000
5.600+002
3.250+002
3.250+002
-5. 400+002
1.900+003
1.900+003
8.000+002
8.000+002
-3.820+002
2.560+003
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
FIGURE 5-4. OUTPUT FOR EXAMPLE 5-4
1 AQ
-------
•38
81
82
83
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
6C
66
67
68
69
70
71
72
73
HCHO
cq
QQ
XCO
AC03
PAN
AC03
ME02
CRIG
CRIG
CRIG
MCRG
MCRG
MCRG
CRIG
CRIG
CRIG
MCRG
MCRG
MCRG
MCRG
ARO
ARO
RARO
OPEN
APRC
APRC
FHEN
PHO
PHO
OPEN
OH
ALD2
FHEN
CR02
ALD2
HCNO
OH
03
=
=
=
=
N02 =
=
H02 =
H02 =
NO =
N02 =
HCHO =
NO =
N02 =
HCHO =
r
=
=
=
=
=
=
OH =
OH =
NO =
NO =
=
=
N03 =
sroa =
H02 =
03 =
PHEH =
=
CH =
NO =
OH =
=
NO =
=
FIGURE 5-4.
QQ
H02
ME02
X
PAN
AC03
N02
N03
N02
N03
CO
H02
ME02
ME02
HCHO
RARO
H02
NO 2
N02
ALD2
HCHO
PHO
PHEN
ALD2
Hoe
H02
PHO
N02
AC03
CH
HCNO
010
OUTPUT
H02 CO
ME02 X
CO
N02
HCHO
HCHO
HCHO PAR
HCHO PAR
H02 CO
OH CO
H02
H02 H02
OPEN
PHEN H02
ALD2 X
HCHO CO
HCHO CO
HN03
X APRC
AFRC PAR
AC03 CO
HCHO AC03
CO
NO
FOR EXAMPLE 5-4
5.640-001
8.367+003
XCO 1.133+003
1.000+004
7.000+003
2.200-002
1.500+004
9.000+003
1.200+004
8.000+003
2.000+003
1.200+OC4
8.000+003
2.000+003
6.700+002
2. 400+002
9.000+001
1.500+002
3.400+002
4.250+002
CO 8.500+001
6.000+003
1.450+004
4.000+003
APRC 6.000+003
X 1.000+004
CO 1.000+004
5.000+003
4.000+003
5.000+004
4.000+001
HCHO 3.000+004
2.000-002
1.000+004
X 1.200+004
2.500+004
3.100+000
9.770+003
5.400-001
(continued)
.000
.000
.coo
.000
.000
1.350+004
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
6.CCO+OC2
4.000+002
.000
.000
.000
.000
.000
.000
.000
.000
.coo
.000
.000
.000
.000
.000
.000
A" O
150
-------
74 010 = 0 <+.440+010 .000
75 01D = OH OH 6.800+009 .000
90 OH = H02 8.800+001 .000
91 OH = MEOE 2.800+001 .000
92 NR = MR 1.000+000 .000
99 °3 =0 1.000+000 .000
FIGURE 5-4. OUTPUT FOR EXAMPLE 5-4 (continued -3)
151
-------
EXAMPLE 5-4
PHOTOLYTIC RATE CONSTANTS CALCULATED F03
CITY NAME
LATITUDE
LONGITUDE
TIME ZONE
DATE
TIME
39.000
77.000
5.0
8 1
800 TO
1981
2000
LOCAL DAYLIGHT TIME
DILUTION DETERMINED FROM THE FOLLOWING
MIXING HEIGHTS (AT THE BEGINNING OF EACH HOUR)
HOUR 013345678
HEIGHT 250.0 410.0 620.0 810.0 950.0 1050.0 112C.O 1180.0 1220.0
INITIAL PAR FRACTION .580 ETH FRACTION .040 OLE FRACTION .030
INITIAL ARO FRACTION .190 HCHO FRACTION .050 ALD2 FRACTION .000
INITIAL NR FRACTION .150
N02/NOX .250
THERE ARE NO ALDEHYDES IN THE MECHANISM
TRANSPORTED CONCENTRATIONS
SURFACE LAYER OZONE .010 HYDROCARBON .038 SOX .000 PPM
SURFACE LAYER PAN .005
ALOFT OZONE .080 HYDROCARBON .040 NOX .000 PPM
EMISSION FRACTIONS COMPUTED FROM THE FOLLOWING
INITIAL MIXING HEIGHT (METERS) : 250.0
INITIAL HC CONCENTRATION (PPMC) : 1.20
INITIAL NOX CONCENTRATION (PPM) : .150
HOURLY EMISSION DENSITIES (KG/KM2) :
HOUR 12345678
HC 50.0 50.0 50.0 25.0 5.0 5.0 5.0 5.0
HOUR 12345678
NOX 25.0 25.0 25.0 15.0 3.0 3.0 3.0 3.0
FIGURE 5-4. OUTPUT FOR EXAMPLE 5-4 (continued -4)
152
-------
CONTINUOUS EMISSIONS (EXPRESSED AS THE FRACTON OF INITIAL
NON-BACKGROUND HYDROCARBON CONCENTRATION EMITTED PER HOUR)
HOUR 13345678
FRACTION .380 .380 .380 .140 .038 .038 .038 .038
CONTINUOUS EMISSIONS (EXPRESSED AS THE FRACTION OF INITIAL
NON-BACKGROUND NOX CONCENTRATION EMITTED PER HOUR)
HOUR 12345678
FRACTION .353 .353 .353 .313 .043 .043 .043 .043
FIGURE 5-4. OUTPUT FOR EXAMPLE 5-4 (continued -5)
153
-------
THE FOLLOWING SIMULATIONS WERE DONE.
HC
.00000
.oocoo
?. ooooo
2.00000
.10000
2.00000
1.26300
.70592
.37883
.21516
1.62000
1.03847
.57320
.30210
.17630
1.20000
.78528
.41807
.21704
.13225
.80000
.53526
.26763
.13856
.08947
.75899
.50874
.25437
.13126
.08491
.00000
.00000
.00000
.00000
.00000
NOX
.00000
.28000
.28000
.00000
.28000
.04360
.17682
.09883
.05304
.03012
.28000
.17949
.09907
.05222
.03047
.28000
.18323
.09755
.05064
.03086
.28000
.18734
.09367
.04850
.03131
.28000
.18768
.09384
.04842
.03132
.28000
.19218
.09609
.04839
.03201
FIGURE 5-4. OUTPUT
RATIO
.00000
.00000
7.14286
.00000
.35714
45.87048
7.14286
7.14286
7.14286
7.14286
5.78571
5.78571
5.78571
5.78571
5.78571
4.28571
4.28571
4.28571
4.28571
4.28571
2.85714
2.85714
2.85714
2.85714
2.85714
2.71069
2.71069
2.71069
2.71069
2.71069
.00000
.00000
.00000
.00000
.00000
FOR EXAMPLE 5-4
N02
.00082
.08861
.12382
.00085
.08945
.02875
.08529
.05390
.03191
.01914
.11659
.08270
.05290
.03116
.01926
.10731
.07967
.05096
.03003
.01937
.09816
.07674
.04823
.02861
.01950
.09745
.07644
.04817
.02856
.01949
.08861
.07169 NOT MAX
.04662
.02788
.01961
(continued -6)
154
-------
2.00000
1.29210
.75177
.43133
.25292
2.00000
1.32858
.81974
.50193
.30631
2.00000
1.38:63
.°1308
.60t;60
.39106
2.00000.
1.46531
1.05250
.75452
.53709
2.00000
1.60000
1.20000
.80000
.72000
.37950
2.00000
.23832
.15397
.08958
.05140
.03014
.19664
.13063
.08060
.04935
.03012
.15496
.10705
.07075
.04654
.03030
.11329
.08300
.05962
.04274
.03042
.05771
.04617
.03463
.02309
.02078
.28000
.02922
8.39203
8.39202
8.39202
8.39202
8.39202
10.17072
10.17072
10.17072
10.17072
10.17072
12.90618
12.90618
12.90618
12.90618
12.90618
17.65443
17.65443
17.65443
17.65443
17.65443
34.65325
34.65324
34.65324
34.65324
34.65324
1.35535
68.44040
.11299
.07889
.05054
.03127
.01922
.10103
.07122
.04707
.03043
.01930
.08633
.06205
.04282
.02919
.01954
.06820
.05103
.03745
.02737
.01978
.03770
.03026
.02280
.01531
.01380
.09975 NOT MAX
.01922
FIGURE 5-4. OUTPUT FOR EXAMPLE 5-4 (continued -7)
155
-------
N
0
X
P
P
M
I 1
I 0
.280+ +
I + +
I + + +
I +++
I +++
.240+ ++++
1+ +
+ ++8+ +
I ++ + +++ + +
I ++ +++ ++
.200+ ++++
I ++ + +
I +++++
I +++++
I + +++++
.160+ ++ +++++
I + +
+
+ + + 6
I ++++ +++ ++ +++
I ++ +++++
.120+ + +++++++
I +++++1 +++++
"'. + +++ + + + ++++++ + +
+
1
.080^
++++4++ +++ ++++++ +++
I +++ +++++++ ++++++ ++++++ ++++++ ++++++ +++++
I
I
.040 +
++++2++++++ ++++++ ++++++ ++++++ ++++++ ++++++ +++++++ ++++++ ++++++
I
I
I
.000 .20 .40 .60 .80 1.00 1.20
HMHC (PFMC)
1 I
2 I
+ +
++++ ++ I
+ + + I
I
I
t
+ + + I
+++++ +
+ ++++ I
++++ ++ I
++++++ +
++ + I
I
I
I
+
++++++ + I
++++++ ++++++ I
++++++ +++
I
I
+
I
I
I
I
+
I
I
I
I
+
++++++ ++++++ ++++++ ++++++ +++I
I
I
I
1.40 1.60 1.80 2.0C
EXAMPLE 5-4
THE N02 LINES ARE
.02000 .04000 .06000 .08000 .10000 .12000
FIGURE 5-4. OUTPUT FOR EXAMPLE 5-4 (continued -8)
156
-------
6.0 REFERENCES
1. B. Dimitriades, "An Alternative to the Appendix J Method for Calculating
Oxidant-and N02~Related Control Requirements." International Conference on
Photochemical Oxidant Pollution and Its Control, Proceedings: Volume 11,
EPA-600/3-77-001b, U. S. Environmental Protection Agency, Research Triangle
Park, North Carolina, January 1977.
2. M. C. Dodge, "Combined Use of Modeling Techniques and Smog Chamber Data to
Derive Ozone-Precursor Relationships." EPA-600/3-77-001b, Ibid.
3. Uses, Limitations and Technical Basis of Procedures for Quantifying
Relationships Between Photochemical Oxidants and Precursors, EPA-450/2-77-
02la, U. S. Environmental Protection Agency, Research Triangle Park, North
Carolina, November 1977.
4. Procedures for Quantifying Relationships Between Photochemical Oxidants
and Precursors; Supporting Documentation, EPA-450/2-7-021b, U. S.
Environmental Protection Agency, Research Triangle Park, North Carolina,
November 1978.
5. Ozone Isopleth Plotting Package (OZIPP), EPA-600/8-78-014b, U. S.
Environmental Protection Agency, Research Triangle Park, North Carolina,
July 1978.
6. G. Z. Whitten and H. Hogo, User's Manual for Kinetics Model and Ozone
Isopleth Plotting Package, EPA-600/8-78-014a, U. S. Environmental
Protection Agency, Research Triangle Park, North Carolina, July 1978.
7. G. Z. Whitten and H. Hogo, User's Manual for Ozone Isopleth With Optional
Mechanisms (OZIPM), draft report for Contract 68-02-2428, Environmental
Sciences Research Laboratory, U. S. Environmental Protection Agency,
Research Triangle Park, North Carolina, March 1978.
8. Guideline for Use of City-specific EKMA in Preparing Ozone SIPs, EPA-450/4-
80-027, U. S. Environmental Protection Agency, Research Triangle Park,
North Carolina, March 1981.
9. Guideline for Using the Carbon Bond Mechanism in City-specific EKMA,
EPA-450/4-84-005, U. S. Environmental Protection Agency, Research Triangle
Park, North Carolina, February 1984.
10. H. E. Jeffries, K. G. Sexton and C. N. Salmi, Effects of Chemistry and
Meteorology on Ozone Control Calculations Using Simple Trajectory Models
and the EKMA, EPA-450/4-81-034, U. S. Environmental Protection Agency,
Research Triangle Park, North Carolina, November 1981.
11. K. L. Schere and K. L. Demerjian, "A Photochemical Box Model for Urban Air
Quality Simulation." Proceedings, 4th Joint Conference on Sensing of
Environmental Pollutants, American Chemical Society, November 1977.
157
-------
12. Letter from Mr. Jim Shissler, Missouri Department of Natural Resources, to
Mr. Wayne Leidwanger, U. S. Environmental Protection Agency, Region VII,
documenting automated control calculation procedure developed by Mr. Mike
Mueller of the Missouri Department of Natural Resources, April 1, 1982.
13. K. L. Schere and K. L. Demerjian, Calculation of Selected Photolytic Rate
Constants Over a Diurnal Range, EPA-600/4-77-015, U. S. Environmental
Protection Agency, Research Triangle Park, North Carolina, March 1977.
14. J. P. Killus and G. Z. Whitten, Technical Discussions Relating to the Use
of the Carbon-Bond Mechanism in OZIPM/EKMA, EPA-450/4-84-009, U. S.
Environmental Protection Agency, Research Triangle Park, North Carolina,
May 1984.
158
-------
APPENDIX A
DEFAULT KINETIC MECHANISM USED IN OZIPM-2
A-l
-------
APPENDIX A
DEFAULT KINETIC MECHANISM USED IN OZIPM-2
Number
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Reaction
N02 + hv > NO + 0(3P)
0(3P) + 02 + M > 03 + M
03 + NO > N02 + 02
N02 + 03 > N03 + 02
N02 + 0(3P) >NO + 02
N03 + NO > 2N02
N02 + N03 > N205
N205 > N02 + N03
N205 + H20 > 2HN03
NO + N02 + H20 > 2HONO
2HONO > NO + N02 + H20
HONO + hv > OH + NO
OH + N02 > HN03
OH + NO > HONO
H02 + NO > N02 + OH
H02 + H02 > HOOH + 02
HOOH + hv > 20H
03 + hv > 0(1D)
03 + hv > 0(3P)
0(1D) + M > 0(3P) + M
0(1D) + H20 > 20H
OH + 03 > H02 + 02
03 + H02 > OH + 202
PROP + OH > ADD
Rate Constant*
"Srary
2.0 x 10~5 ppm~2min~1
25.0
0.045
1.3 x 104
1.3 x 104
5.6 x 103
22.0 min"1
2.5 x 10~6
1.0 x 10~9 ppm~2min~1
1.0 x 10~3
kvary M
8.0 x 103 M
3.0 x 103
1.2 x 103
8.4 x 103
k-vary
vary
kvary
8.7 x 104
5.1 x 105
84.0
2.4
2.5 x 104
A-2
-------
APPENDIX A (continued)
DEFAULT KINETIC MECHANISM USED IN OZIPM-2
Number
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
Reaction
ADD +
ADD +
ADD +
ADD +
ADD +
X >
PROP 4
PROP +
BUT +
BUT +
NO + C
NO >
ADD >
X + N02
2X
Me02 > X + MeO
99 """""""
CqOo — —
HCHO +
• o3 — >
• o3 — >
OH >
OH >
4°2 — >
NO + Sc02 >
NO + C
NO + C
3°2 — >
22 ~~~'
NO + Me02 >
c4o —
ScO —
-> HCHO
•-> ALD2
C30 > HCHO
c2o —
C40 +
ScO +
030 +
CoO +
-> HCHO
©2 ~~~s
02 >
02 — >
0? >
> X + C20
> X + C30
ALD2 + H02
OH + H02 + ALD2
OH + C203 + HCHO
Sc02
C4°2
N02 + C40
N02 + ScO
N02 + C30
N02 + C20
N02 + MeO
+ c3o2
+ c2o2
+ c2o2
+ Me02
ALD4 + H02
MEK + H02
ALD3 + H02
ALD2 + H02
Rate Constant*
1
1
1
1
1
1
8
8
1
1
1
1
1
1
1
7
1
8
4
0
1
0
0
.0
.2
.0
.0
.0
.0
.0
.0
.8
.8
.8
.8
.8
.8
.8
.5
.0
.0
.0
.7
.4
.5
.4
x 10
x 10
x 10
x 10
x 10
x 10
x 10
x 10
x 10
x 10
x 10
x 10
x 10
x 10
3
4
3
3
3
5
-3
-3
3
3
3
3
3
3
min"1
x 103
x 10
A
x 105
x 103
x 103
min"1
min"1
min"1
min"1
A-3
-------
APPENDIX A (continued)
DEFAULT KINETIC MECHANISM USED IN OZIPM-2
Number Reaction
48. MeO + 02 > HCHO + H02
49. HCHO + hv > stable products
50. HCHO + hv > 2H02
51. HCHO + OH > H02
52. ALD2 + hv > stable products
53. ALD2 + hv > Me02 + H02
54. ALD2 + OH > C203
55. ALD3 + hv > stable proudcts
56. ALD3 + hv > C202 + H02
57. ALD3 + OH > C303
58. ALD4 + hv > stable products
59. ALD4 + hv > C-jO-, + H02
60. ALD4 + OH > C403
61. ADD + C402 > X + C40
62. ADD + Sc02 > X + ScO
63. C403 +NO — > C302 + N02
64. C303 + NO > C203 + N02
65. C203 + NO > Me02 + N02
66. C403 + N02 > PAN
67. C303 + N02 > PAN
68. C203 + N02 > PAN
69. C402 + H02 > stable products
70. C302 + H02 > stable products
71. Sc09 + H00 > stable products
Rate Constant*
0.4
kvary
1.5 x 104
4.2 x 10~6 min -1
kvary
1.5 x 104
6.0 x 10~5 min'1
2.5 x 10~3 min'1
4.5 x 104
6.0 x 10~5 min"1
1.9 x 10~3 rnin'1
4.5 x 104
1.0 x 103
1.0 x 103
8.0 x 102
8.0 x 102
8.0 x 102
1.0 x 102
1.0 x 102
1.0 x 102
4.0 x 103
4.0 x 103
4.0 x 103
A-4
-------
APPENDIX A (continued)
DEFAULT KINETIC MECHANISM USED IN OZIPM-2
Number
72.
73.
74.
75.
76.
Reaction
C
2°
MeO
C
C
C
4°
3°
2°
2
2 "
3 '
3 "
3 "
1- HO
h HO
1- HO
h HO
H HO
2
2
2
2
2
> stable
> stable
> stable
> stable
> stable
products
products
products
products
products
Rate Constant*
4
4
4
4
4
.0
.0
.0
.0
.0
x 10
x 10
x 10
x 10
x 10
3
3
3
3
3
* Units of ppm~^min~^- unless otherwise indicated
Source: Dodge (1977)
Symbol Definition
k-vary diurnal 1-hour average photolytic rate constant
PROP C3H6
BUT n-C4H10
A-5
-------
APPENDIX A (continued)
DEFAULT KINETIC MECHANISM USED IN OZIPM-2
Symbol Definition
ADD CH3CH(OH)CH200
X CH3CH(OH)CH20
Sc02
ALD2 CH3CHO
ALD3 CH3CH2CHO
ALD4 CH3CH2CH2CHO
0303 CH3CH2C03
A-6
-------
APPENDIX B
RESTRUCTURING REACTIONS FOR OZIPM-2 FORMAT
B-l
-------
APPENDIX B
As noted in the text of Section 3.2.1, the OZIPM-2 program requires that
the mechanism conform to some rules. Specifically, no more than three reactants
and four products are allowed per reaction, and stoichiometric coefficients of
each product and reactant must be one. In many cases, reactions that do not
conform to these restrictions can be restructured to meet the input criteria.
The purpose of this appendix is to provide some suggestions on restructuring
individual reactions for input to OZIPM-2.
B.I REACTIONS WITH REACTANTS OF CONSTANT CONCENTRATION
Whenever a reaction contains a reactant whose concentration is relatively
invariant with time (e.g., 02), it can be rewritten as psuedo-lower order
reaction. With this approach, the reactant with relatively constant concen-
tration is eliminated from the reaction, but the reaction rate constant is
adjusted to reflect the constant concentration. For example, consider the
following reaction in which species B is assumed to be relatively constant in
concentration:
A + B > C ki B-l
where k-^ is the rate constant in ppm rain . Reaction B-l can be rewritten as
follows, using the assumed constant concentration of species B (Cjj)
A > C k1A B-1A
where
K1A = KjCjj [ = ] min'1
Note that the above formulation makes the mechanism more compact (requiring less
computer time), and saves the user from having to introduce some way of keeping
the concentration of the invariant species nearly constant throughout the
simulation.
B-2
-------
B.2 INTEGER STOICHIOMETRIC COEFFICIENTS NOT EQUAL TO ONE
Since all stoichiometric coefficients must be one in any individual
reaction, some reactions may require some small adjustments. As an example,
consider reaction of the form:
A + B > 2C k2 (B-2)
This reaction can be easily rewritten to make it compatible with OZIPM-2
requirements:
A + B > C + C k2A=k2 (B-2A)
B.3 REACTIONS WITH MORE THAN FOUR PRODUCTS
A reaction that contains more than four products can be broken down into one
or more reactions, each with four products or less. This is done by introducing
a psuedo-species to represent a group of products in the initial reaction. The
psuedo-species is then assumed to dissociate rapidly into the entities it was
originally chosen to represent. To illustrate, consider the following reaction:
A + B > 2C + 2D + E k3 (B-3)
First, this reaction can be rewritten as following using the approach described
above:
A + B > C + C + D + D + E k3 (B-3A)
Now, introducing the psuedo-species QQ to represent D + E, equation A-3A can be
rewritten as follows:
A + B > C + C + D + QQ ka (B-3B)
QQ > D + E kfagt (B-3C)
B-3
-------
To insure that no appreciable buildup occurs in the concentration of QQ, the
value of kfast in equation B-3C should be relatively fast compared to k3 (say
on the order of 1 x 10^-0 min~l).
B.4 REACTIONS WITH NON-INTEGER STOICHIOMETRIC COEFFICIENTS
In some chemical mechanisms, one or more reactions may have stoichiometric
coefficients that are not only different from one, but also non-integer as well.
In such cases, the single reaction must be broken down into two or more reactions
that are equivalent in a kinetic sense. Although such situations could be
treated on a case-by-case basis, some generalizations can be made. Consider, for
example, the general reaction shown below:
A + B —> cC + dD + eE + fF k4 (B-4)
In this equation, the upper case letters refer to the species names, the lower
case letters represent the stoichiometric coefficients, and the products are
ordered such that 0<^c_ C + D + E + F k4A (B-4A)
A + B > D + E + F k4B (B-4B)
A + B > E + F k4C (B-4C)
A + B > F k4D (B-4D)
A + B > k4E (B-4E)
where
k4A = ck4 (B-4F)
k4B = (d-c) k4 (B-4G)
k4c - (e-d) k4 (B-4H)
k4D - (f-d) k4 (B-4I)
k4E = (1.0-f)k4 (B-4J)
B-4
-------
Thus, in general, the equation B-4 would be replaced in the mechanism by the
set of reactions (B-4A) through (B-4E). Of course, should any of the rate
constants turnout to be zero, according to the equations (B-4F) through (B-4J),
then that particular reaction could be eliminated from the mechanism.
To illustrate the generalized procedure just discussed, consider the
following reaction:
OLE + 03 --- > 0.07 RO + 0.61 R02 + HCHO k5 = 0.00513 ppm^min"1 (B-5)
Using the procedure discussed above, let c=0.0, d=0.07, e=0.61, and f=1.0. Then,
using the generalized expressions in equations B-4A through B-4J , reaction B-5
above can be rewritten as follows
OLE + 03 = RO + R02 + HCHO k5A = 0.000359 ppmmin" (B-5A)
OLE + 03 = R02 + HCHO k5B = 0.00277 ppm~1min~1 (B-5B)
OLE + 03 = HCHO k5c = 0.00200 ppm~1min~1 (B-5C)
These three equations would then be used in the OZIPM-2 inputs to represent
the single reaction B-5.
B-5
-------
APPENDIX C
PROGRAM SOURCE LISTING
C-l
-------
MAIN
COMMON /CALC/ NR.KRt200,7),A(300),S(200),R(200),ITYPE(200),IA(80), A 1
1JA(2500),DILUT,TEMP,ERR,START,STOPP,SPECIS(81),TPRNT,TSTEP A Z
COMMON /CNTRL/ SIG,SIGMA,INFO,NPTO,TSRT,DTIM,Z1,Z2,DCON,EHC,EXN,FL A 3
1ST,TLST,NSPARS A 4
COMMON /SPEC/ NS,HCSPEC(10),CARB(10),RCTY(10),ALDSPC(4),ALDX(4),XN A 5
1F(2),IH(10),INOX(2),IALD(4),FINHC(10),FALHC(10),NHC,NALD,OZIN,OZAL A 6
2,HCIN,HCAL,XNIN,XNAL,KOZ,ALDCRB(4),FENX(2),C(81),REACT{81),NI,PLSP A 7
COMMON /PHOTON/ CF(45,8),P( 16,9),IPHC9),IP,RFCT(9),KFACT,KPH( 9) A 8
COMMON /EMIS/ NEM,EM<16),EMHC(16),EMNOX(16),ESRT(2),ESTOP,ESLP.EHS A 9
1LP,ENSLP,ECC80),ECHC(80),ECXN(80) A 10
COMMON /MIX/ MMIX,BMIX(16),STRM,STOPM,DC(45),TSTART A 11
COMMON /INOUT/ IN.IOUT.ITAPE A 12
COMMON /TITL/ ITTL(18) A 13
COMMON /MEED/ HC,XN,NL,NRTO,PTC(20),OZP{20),OZN(8,20),RHO(8,20),MR A 14
1,PC
-------
MAIN
IF (TM.LE.O.) WRITE (IOUT,335) PLSP.ZN A 71
CALL LINPRT (X(1),X(2)) A 72
NPTO=0 A 73
INFO=0 A 74
GO TO 5 A 75
35 IF (IOPT.NE.IACR) 60 TO 40 A 76
IF (ABS(X(1)).NE.O. ) NC=IFIX(X<1)+0.1) A 77
IF <(NC/2).EQ.((HC+l)/2)) NC=NC+1 A 78
IF (ABS(X(2)).NE.O.) MR=IFIX(X(2J+0.1) A 79
IF (ABS(XC3)).HE.O.) EER=X(3) A 80
IF (ABS(X(4)).NE.O.) SIG=X(4) A 81
IF (ABS(X15)).NE.O.) SIGMA=X(5) A 82
IF (ABS(X(6)).NE.O.) HGO=0 A 83
GO TO 5 A 84
40 IF (IOPT.NE.IPLC) GO TO 45 A 85
IF (ABS(X(D).NE.O. ) SLA=X(1) A 86
IF (X(l)).NE.O. ) Zl=Xfli A 98
If (ABS(X(2)).ME.O.) Z2=X(2) A 99
IF (ABS(X(3)).NE.O.) DSTRT=X(3) A 100
IF (ABS(X(4)).NE.O.) DEND=X(4) A 101
CALL CCMIX A 102
BMIX(l)=-3. A 103
GO TO 5 A 304
50 IF (IOPT.NE.IMIX) GO TO 60 A 105
m:x=iFix(X(i)+o.i)+i - A io&
DO 55 1=1,5 A 107
55 BMIX(I)=X(I+1) A 108
IF (MMIX-5.GT.O) READ(IN,300) (BMIX(I),I=6,MMIX) A 109
CALL HIXSET A 110
Z1=BMIX(1) A 111
Z2=BMIX(MMIX) A 112
TSRT=0. A 113
DTIM=STOPM A 114
GO TO 5 A 115
60 IF (IOPT.NE.IEMS) GO TO 85 A 116
MEMFLG=0 A 117
IFtXm.LT.O.) NEM=IFIX(X(1)-0.1) A 118
IF(X(1).GT.O.) NEM=IFIX(X(1)+0.1) A 119
IEf1=IFIX(ABS(X(l)) + 0.1) A 120
ESTOP=IEM*60. A 121
IF (X(l).LT.-0.99999999) GO TO 70 A 122
DO 65 1=1,5 A 123
65 EM(I)=ABS(X(I+D) A 124
IF (NEM-5.GT.O) READ(IN,300) (EM(I),I=6,NEM) A 125
CALL EMISStNEM.EM.EC) A 126
EMHC(l)=-3. A 127
EMNOX(l)=-3. A 128
GO TO 5 A 129
70 DO 75 1=1,5 A 130
75 EMHC(I)=X(I+1) A 131
IF (EMHC(l).LT.-0.0001) GO TO 80 A 132
IF (IEM-5.GT.O) READ(IN,300) (EMHC(I),I=6,IEM) A 133
CALL EMISS (IEM,EMHC,ECHC) A 134
80 READ(IN,300) (EMNOX(I),1=1,7) A 135
IF (EMNOX(l).LT.-0.0001) GO TO 5 A 136
IF (IEH-7.GT.O) READ(IN,300) (EMNOX(I),I=8,IE«) A 137
CALL EMISS (IEM,EMHOX,ECXN) A 138
GO TO 5 A 139
85 IF (IOPT.NE.IPLT) GO TO 135 A 140
C-3
-------
MAIN
KALCMP=1 A 141
FCTR=0.6 A 142
HC1=8.5 A 143
XH1=5.95 A 144
CHRZ=0.10 A 145
IF (ABS(X(D).NE.O. ) FCTR=X(1) A 146
PLTGRD=X(2) A 147
IF (ABS(X(3)).NE.O.) HC1=X<3) A 148
IF- (ABS(X(4)).NE.O.) XH1=X(4) A 149
IF (ABS(X(5)).NE.O.) CHRZ=X<5) A 150
IF (ABS(X(6)).NE.O.) CHRSIZ=X(6) A 151
DIGZ=CHRZ A 152
TICZ=CHRSIZ A 153
GO TO 5 A 154
135 IF (IOPT.NE.IRCT) GO TO 140 A 155
KHC=IFIX(X(1)+0.1) A 156
IF (ABS(X(2)).NE.O. ) XNF(1)=X(2) A 157
IF =CHRD(5) A 178
ITTL(3)=CHRD(6) A 179
GO TO 5 A 180
160 IF (T?rT.NE.ITIT) GO TO 165 A 181
PL.AD(IN,295) (ITTL(I),I-j.,18) A 182
GO TO 5 A 183
165 IF (IOPT.NE.ITRN) GO TO 175 A 184
OZIN=Xtl) A 185
OZAL=X(2) A 186
HCIN=X<3) A 187
HCAL=X(4) A io3
XNJN=X(5) A 189
XHAL=X(6) A 190
IF (HCIN.GT.-0.0000001) GO TO 170 A 191
JIN=IFIX(ABS(HCIN)+0.1) A 192
READ(IN,300) HCIN,(FINHCtI),1=1,JIN) A 193
IF (NALD.GT.O) REAO(IN,300) (FINALD(I),1=1,4) A 194
170 IF (HCAL.GT.-0.0000001) GO TO 5 A 195
JAL=IFIX(ABS(HCAU + 0.1) A 196
READ(IN,300) HCAL,(FALHCtI),1=1,JAL) A 197
IF (NALD.GT.O) READ(IN,300) (FALALD(I),!=!,4) A 198
GO TO 5 A 199
175 IF UOPT.NE.INIT) GO TO 180 A 200
NI=IFIX(ABS(X(1))+0.1) A 201
READ(IN,385) (REACTtI) ,I=1,NI) A 202
READ(IN,300) (C(I),I=1,NI) A 203
GO TO 5 A 204
180 IF (IOPT.NE.IRDY) GO TO 220 A 205
KS1=IFIX(X(1)+0.1) A 206
KK=0 A 207
JS=1 A 203
IF (KK.EQ.KS1) GO TO 5 A 209
WRITE (IOUT.320) PLSP A 210
C-4
-------
MAIN
DO 185 1=1,4 A ail
REAO(IN,300) HCC.XNN.OCd) A 212
IF (XNN.NE.0.0) RT01=HCC/XHN A 213
IF (XNN.EQ.0.0) RT01=0.00000 A 214
WRITE (IOUT.325) HCC,XNN,RT01,OC(I) A 215
KK=KK+1 A 216
IF (I.EQ.2) HCLL(MR)=XNN A 217
IF (I.NE.3) GO TO 185 A 218
RTO(1)=RT01 A 219
F(1)=SQRT(RT01*RT01+1.) A 220
RHO(MR,1)=F(1)*XNN A 221
OZN(MR,1)=OC(3) A 222
HCE=0.98*HCC A 223
NCE=1 A 224
IF (KK.EQ.KS1) GO TO 5 A 225
185 CONTINUE A 226
IF (NC.EQ.l) GO TO 200 A 227
190 DO 195 1=1,2 A 228
HCS=HCC A 229
READ(IK,300) HCC,XNS,OS(I) A 230
RT02=HCC/XNS A 231
WRITE (IOUT,325) HCC,XNS,RT02,OS(I) A 232
KK=KK+1 A 233
IF (KK.EQ.5) HCG=HCC A 234
IF (KK.EQ.5) OHC=OS(I) A 235
IF fKK.EQ.6) XNG=XNS A 236
IF (KK.EQ.6) OXN=OS(I) A 237
IF (KK.EQ.KSl) GO TO 5 A 238
195 CONTINUE A 239
200 JK=KR-1 A 240
NCR=(NC+l)/2 A 241
DO 215 1=1,NC A 242
IF (JK+I.EQ.l) GO TO 215 A 243
205 READ(IN,300) HCC.XNN.ZN A 244
IF (HCC.GT.HCE) NCE=NCE+1 A 245
IF (JK.EQ.MR.AND.XNN.GT.O.) RTO(I)=HCC/XNN A 246
IF (JK.EQ.MR.AND.XNN.LE.O.) RTO(I )=HCC*1.0E7 A 247
IF UK.EQ.MR) F
-------
MAIN
DO 231 I=1,KFACT
231 KPH(I)=IFIX(XRTC(I)+0.1)
232 CONTINUE
IF (NHC.NE.O) READ(IN,385) (HCSPEC(I),1=1,NHC)
IF (NHC.NE.O) READ(IN,300) (CARBtI) ,1=1,NHC)
IF (NALD.NE.O) READ(IN,385) (ALDSPC(I),1=1,NALD)
IF (NALD.NE.O) READ(IN,300) (ALDCRBtI),I=1,NALO)
CALL MCHSET (NX.l)
DO 250 J=1,NS
DO 235 1=1,NHC
IF (SPECISU).NE.HCSPEC(I)) GO TO 235
IH(I)=J
GO TO 250
235 CONTINUE
IF (NALD.EO.O) GO TO 245
DO 240 I=1,NALD
IF (SPECISU).NE.ALDSPC(I)) GO TO 240
IALD(I)=J
GO TO 250
240 CONTINUE
245 IF (SPECISU).EQ.CHRD(7) ) INOX(1)=J
IF (SPECIS(J).Eq.CHRD(8M INOX(2)=J
IF (SPECIS(J).EQ.PLSP) KOZ=J
250 CONTINUE
NSPARS=1
GO TO 5
280 IF (IOPT.NE.ITIM) 60 TO 285
START=0.
STOPP=600.
JSTRT=800
JSTOP=1900
IF (ABS(X(2)).EQ.O.) GO TO 5
JSTRT=IFIX(X(1)+0.1)
JSTOP=IFIX(XC2) + 0.1)-HOO
JMIN=JSTRT-((JSTRT/100)*100)
TMIN1=FLOAT((JSTRT/100)*60+JMIN)
JMIN=JSTOP-((JSTOP/100)*100)
TMIN?-rLOAT(CJSTOP/100)*60+j:iIN)
S-|OPP=TMIN2-TMIN1
STOPP=STOPP-60.
TSTART=TMIN1
CALL PHOT
GO TO 5
285 IF (IOPT.NE.IEKMA) GO TO 500
BC03=X(1)
BCPAT=X(2)
DELNOX=X(3)
ICHTRN=IFIX(X(4)+0.1)
IRANGE=IFIX(X(5H0.1)
FOZIN=OZIN
FOZAL=OZAL
FHCIH=HCIN
FHCAL=HCAL
FXNIN=XNIN
FXNAL=XNAL
IF(ICHTRN.EQ.O) GO TO 286
READ(IN,300) (XRTC(J ),J=l,6)
IF(XRTC(1).GT.O.) FOZIN=XRTC(1)
IF(XRTC(2).GT.O.) FOZAL=XRTC(2)
IF(XRTC(3).GT.O.) FHCIN=XRTC(3)
IF(XRTC(4).GT.O. ) FHCAL=XRTC(4)
IF(XRTC(5).GT.O.) FXNIN=XRTC(5)
IF(XRTC(6).GT.O. ) FXNAL=XRTC(6)
286 CONTINUE
CALL REPRT
CALL EKMA
GO TO 5
500 IF(IOPT.NE.IMASS) GO TO 700
IEM=IFIX(ABS(X(1))+0.1)
NEM=-IEM
A 281
A 282
A 283
A 284
A 285
A 286
A 287
A 288
A 289
A 290
A 291
A 292
A 293
A 294
A 295
A 296
A 297
A 298
A 299
A 300
A 301
A 302
A 303
A 304
A 305
A 306
A 307
A 308
A 309
A 310
A 311
A 312
A 313
A 314
A 315
A 316
A 317
A 318
A 319
A 320
A 321
A 322
A 323
A 324
A ><:5
A 326
A 327
A 328
A 329
A 330
A 331
A 332
A 333
A 334
A 335
A 336
A 337
A 338
A 339
A 34C
A 341
A 342
A 343
A 344
A 345
A 346
A 347
A 348
A 349
A 350
C-6
-------
MAIN
HCB=X(2) A 351
XNXB=X(3) A 352
HINIT=X(4> A 353
ESTOP=IEM*60. A 354
READ(IN,300) (EMMHCCI),!=!,7) A 355
IFCIEM.GT.7) READ(IN,300) (EMMHCm,I=8,IEM) A 356
READ(IN,300) A 393
330 FORMAT (6A4.6X.2A1) A 394
335 FORMAT (1HO,30X,8HMAXIMUM ,A4,1X,43H NOT REACHED, THE LAST ONE HOU A 395
1R AVERAGE WAS.F7.5.5H PPM.) A 396
385 FORMAT (7(A4,6X)) A 397
440 FORMAT (1H1,39X,8HSPECIES ,A4,38H IS NOT FOUND IN THE KINETIC MECH A 398
1ANISM) A 399
450 FORMATdHl,'ERROR IN INPUT DATA FOR OPTION MASSEMIS1 ) A 400
720 FORMAT! I'dl) A 401
EKS A 402-
C-7
-------
SUBROUTINE PHOT
SUBROUTINE PHOT B 1
C B 2
C **** RATE CONSTANT CALCULATIONS FOR FIRST ORDER PHOTOCHEMICAL RE B 3
C B 4
REAL K B 5
COMMON /SUNLIT/ XJ(47,10),SIGMA(31,10),PHI(31,10),Z(10),RTCON(10), B 6
1LAM1,INC,SLA,SLO.TZ,IY.IM,ID,ISTRT,ISTOP,IINC,IEND,SPECIE,MAXZ,ITI B 7
2ME(016),XZ(016 ) ,K(016),JSTRT,JSTOP,SPEC(11),MNLM(11),MXLM(11),MAXL B 8
3.MAXJ B 9
COMMON /PHOTON/ CF(45,8),P<16,9),IPH(9),IP,RFCT(9) ,KFACT,KPH(9) B 10
DIMENSION D(2), C(27), W(45), V(5), TMSC16), CC(45) B 11
DATA D/0.0,0.0/ B 12
C B 13
IEND=16 B 14
NTM=IEND B 15
TIME=JSTRT B 16
DO 5 11=1,IEND B 17
C B 18
C **** CALL SUBROUTINE TO COMPUTE ZENITH ANGLES FROM TIME OF DAY B 19
C B 20
XC=0.0 B 21
TSTD=TIME-100. B 22
IF (TSTD.LT.O.) TSTD=TSTD+2400. B 23
CALL SOLAR
-------
SUBROUTINE PHOT
CALL SOLAR (SLA,SLO,TZ,IY,IM,ID,TSTDiXC,5) B 71
XA=90.-XC B 72
IF (XA.6T.XB) GO TO 40 B 73
35 CONTINUE B 74
40 DO 45 I=1,IEND B 75
TttS(I)=60.*FLOAT(I-l) B 76
45 P(I,3)=P(I,3)+P(I,MAXL) B 77
DO 200 L=l,8 B 78
KST=0 B 79
KEND=0 B 80
DO 50 J=1,IEND B 81
IF(PU,D.LE.O. ) GO TO 50 B 82
KST=J B 83
GO TO 51 B 84
50 CONTINUE B 85
51 DO 60 J=1,IEND B 86
NKM=IEND+1-J B 87
IF(P(Nm,L).LE.O.O) GO TO 60 B 88
KENO=NMM B 89
GO TO 61 B 90
60 CONTINUE B 91
61 CONTINUE B 92
IF(KST.GT.l) KST=KST-1 B 93
IF(KENO.LT.IENO) KEND=KEND+1 B 94
NMM=KEND-KST+1 B 95
CALL SPLNA (NMM.TMS(KST),PIKST,L),2,D,CC,W) B 96
KENO=KEND-1 B 97
JJ=0 B 93
JEND=IEND-1 B 99
DO 100 J=1,JEND B 100
IFU.LT.KST) GO TO 80 B 101
IFU.GT.KEND) GO TO 80 B 102
JJ=JJ+1 B 103
CF(3*J-2,L)=CC(3*JJ-2) B 104
CF(3*J-1,L)=CC(3*JJ-1) B 105
CF(3*J,L)=CC(3*JJ) B 106
GO TO 100 B 107
80 CF(3*J-2,L)=0.0 B 108
CF(3*J-1,L)=0.0 B 109
CF(3*J,L)=0.0 B 110
100 CONTINUE B 111
200 CONTINUE B 112
RETURN B 113
END B 114-
C-9
-------
SUBROUTINE RATE
SUBROUTINE RATE (L,NZ,MINLAM,MAXLAM,SUM) C 1
REAL K C 2
COMMON /SUNLIT/ XJ(47,10),SIGMA(31,10),PHI(31,10),Z<10),RTCOH(10 ), C 3
1LAM1,INC,SLA,SLO,TZ,IY,Itt,ID,ISTRT,ISTOP,IINC,IEND,SPECIE,MAXZ.ITI C 4
2ME(016),XZ(016),K(016),JSTRT,JSTOP,SPEC(11),MNLM(11),MXLM(11),MAXL C 5
3.MAXJ C 6
C C 7
C **** THIS SUBROUTINE CALCULATES A SINGLE RATE CONSTANT ACCORDING C 8
C **** THE GIVEN INPUTS C 9
C C 10
SUM=0.0 C 11
DO 5 I=MINLAM,MAXLAM,INC C !<:
II=(I-LAM1)/INC+1 C 13
IJ=II C 14
IF (L.EQ.MAXL) IJ=II-16 C 15
SUM=SUM+XJ(II,NZ)*1.0E+15*SIGMA(IJ,L)*PHI(IJ,L) C 16
5 CONTINUE C 17
SUM=SUM*60. C 18
RETURN C 19
END C 20-
C-10
-------
SUBROUTINE SOLAR
SUBROUTINE SOLAR (SLA,SLO,TZ,IY,IM,ID,TIME,D,NV) D 1
C*** D 2
C*** SI*.... LATITUDE (DEC) SCUCH = MINUS D 3
C*** SLO... LONGITUDE (DEt.) EAST = MINUS D 4
C*** TZ... TIME ZONE 0 5
C*** ALSO INCLUDES FRACTION IF LOCAL TIME IS NOT D 6
C*** STANDARD MERIDIAN TIME. E.G. POOHA, INDIA 5.5 D 7
IY.. YEAR D 8
IM.. MONTH D 9
C*** ID.. DAY D j.0
C*** TIME.. LOCAL STANDARD TIME IN HOURS AND MINUTES. D 11
1 30 PM = 1330 ** STANDARD TIME ** D 12
D.. RETURNED VALUE D 13
NV.. VALUE TO BE RETURNED, SELECTED AS FOLLOWS D 14
1... DECLINATION (DEC.) D 15
2... EQUATION OF TIME ADJUSTMENT (HRS.) D 16
3... TRUE SOLAR TIME (HRS. ) D 17
4... HOUR ANGLE (DEG.) D 18
5... SOLAR ELEVATION (DEG.) D 19
C**» 6... OPTICAL AIRMASS D 20
C*** 0 ( NV ( 7. OTHERWISE, D = 9999. D 21
C*** D 22
DIMENSION MD(ll) D 23
DATA MD/31,29,31,30,31,30,2*31,30,31,307 D 24
DATA A,B,C,SIGA/0.15,3.8S5,1.253,279.9348/ 0 23
RAD=572957.75913E-4 D 26
SDEC=39784.988432E-5 D 27
RE=1. D 28
IF (SLO.IT.0.) RE=-1. D 29
KZ=TZ D 30
TC=(TZ-KZ)*RE D 31
TZZ=KZ*RE D 32
SLB=SLA/RAD D 33
K=ID D 34
TIMH=TIME/100. D 35
I=TIMH D 36
TIMLOC=(TIMH-I)/0.6+I+TC D 37
IMC=IM-1 D 38
IF (IMC.LT.l) GO TO 10 D 39
DO 5 1=1,IMC 0 40
5 K=K+MO(I) D 41
10 LEAP=1 D 42
NL=MCD(IY,4) D 43
IF (NL.LT.l) LEAP=2 D 44
SMER=TZZ*15. D 45
TK=((SMER-SLO)*4.)/60. D 46
KR=1 D 47
IF (K.GE.61.AND.LEAP.LT.2) KR=2 D 48
DAD=(TIMLCC+TZZ)/24. D 49
DAD=DAD+K-KR D 50
OF=DAO*360./365.242 D 51
DE=DF/RAD D 52
DESIN=SIN(DE) D 53
DECOS=COS(DE) 0 54
DESIN2=SIN(DE#2. ) D 55
DECOS2=COS(DE*2.) D 56
SIG=SIGA+DF+1.914827*DESIN-0.079525*DECOS+0.019938*OESIN2-0.00162* D 57
1DECOS2 D 53
SIG=SIG/RAD 0 59
DECSIN=SDEC*SIN(SIG) D 60
EFFDEC=ASIN(DECSIN) D 61
IF (NV.NE.l) GO TO 15 D 62
D=EFFDEC*RAD - D 63
RETURN D 64
15 EQT=0.12357*DESlN-0.004289*DECOS+0.153809*OESIN2-i-0.060733*DECOS2 D 65
IF (NV.NE.2) GO TO 20 D 66
D=EQT D 67
RETURN D 68
20 TST=TK+TIMLOC-EQT D 69
IF (NV.NE.3) GO TO 25 D 70
C-ll
-------
SUBROUTINE SOLAR
D=TST D 71
IF (D.LT.O.) D=D+24. D 72
IF (D.GE.24.) D=D-24. D 73
RETURN D 74
25 HRANGL=ABS(TST-12.)*15. D 75
IF (NV.NE.4) GO TO 30 D 76
D=HRAN3L D 77
RETURN D 78
30 HRANGL=HRANGL/RAD D 79
SOLSIN=DECSIN*SIN(SLB)+COS(EFFDEC)*COS(SLB)*COS(HRANGL) D 80
SOLEL=ASIN(SOLSIN)*RAD D 81
IF (NV.NE.5) GO TO 35 D 82
D=SOLEL D 83
RETURN D 84
35 IF (NV.NE.6) GO TO 40 D 85
IF (SOI.EL.LE.O. ) GO TO 40 D 86
TK-SOLEL+B D 87
E=1./TK**C D 88
D=1./(A*E+SOLSIN) D 89
RETURN D 90
40 D=9999. D 91
RETURN D 92
END 0 73-
C-12
-------
SUBROUTINE SPLNA
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
SUBROUTINE SPLNA (N,X,Y,J,D ,C,W)
DIMENSION XtlO), Y(10), 0(2), COO), W(30)
OVER THE INTERVAL X(I) TO Xd+1), THE INTERPOLATING
POLYNOMIAL
Y=Y( I )+A< I )*Z+B( I )*Z**2+E( I )*Z**3
WHERE Z=(X-X(I))/(X(I + 1)-X(D)
IS USED. THE COEFFICIENTS A(I),B(I) AND E(I) ARE COMPUTED
BY SPLNA AND STORED IN LOCATIONS C( 3*1-2) ,C( 3*1-1 ) AND
C(3*I) RESPECTIVELY.
WHILE WORKING IN THE ITH INTERVAL, THE VARIABLE Q WILL
REPRESENT Q=Xd + l) - X( I ) , AND Yd) WILL REPRESENT
Y(Itl)-Yd)
Q=X(2)-Xd)
YI=Y(2)-Yd)
IF (J.EQ.2) GO TO 5
IF THE FIRST DERIVATIVE AT THE END POINTS IS GIVEN,
Atl) IS KNOWN, AND THE SECOND EQUATION BECOMES
MERELY Bd) + EU)=YI - Q*D(1).
cm=q*D
24
25
26
27
o o
£O
29
30
31
32
33
34
•1C
J5
•<6
37
38
39
A ft
H U
41
42
AT
*T J
44
45
46
47
48
49
50
5\
52
53
54
C C
D3
56
57
58
CO
3 r
60
61
62
63
64
65
f.£.
OD
67
63
i,Q
O 7
70
C-13
-------
SUBROUTINE SPLNA
c
c
c
c
I=M-II+3
35 Cd)=Hd)-C(I)*Cd+l)
40 IF (J.EQ.l) GO TO 45
IF THE SECOND DERIVATIVE IS GIVEN AT THE END POINTS,
A(l) CAN NOW BE COMPUTED FROM THE KNOWN VALUES OF
B(l) AND Ed). THEN Ad) AND Bd) ARE PUT INTO THEIR
PROPER PLACES IN THE C ARRAY.
Cd)=Y(2)-Yd)-W(e)-C<3)
C(2)=W(2)
RETURN
45 C(2)=W(2)-C(3)
RETURN
END
E
E
E
E
E
E
E
E
E
E
E
E
E
71
72
73
74
/ ^
75
76
77
78
7O
/ 7
80
81
82
83
8
-------
SUBROUTINE SPLNB
SUBROUTINE SPLNB (N,X,Y,C,V)
DIMENSION X(IO), Y(IO), COO), V(5)
V(5)=2.0
LIM=N-1
C
C
C
C
C
C
C
C
C
C
C
DETERMINE IN WHICH INTERVAL THE INDEPENDENT
VARIABLE,V(l),LIES.
DO 5 1=2,LIM
IF (V(l).LT.X(I)) 60 TO 10
5 CONTINUE
I=N
IF (V(l).GT.X(N)) V(5)=3.0
GO TO 15
10 IF (V(l).LT.X(D) V(5)=1.0
Q IS THE SIZE OF THE INTERVAL CONTAINING V(l).
Z IS A LINEAR TRANSFORMATION OF THE INTERVAL
ONTO (0,1) AND IS THE VARIABLE FOR WHICH
THE COEFFICIENTS WERE COMPUTED BY SPLNA.
15 Q=X(I)-X(I-1)
Vt 2 ) = ( t Z*Cl 3*1-3 HC( 3*1-4) )*Z+C( 3*1-5 ) )*Z+Y( 1-1 )
V( 3 ) = ( ( 3.*Z*C( 3»I-3 )+2. 0*C( 3*I-^f ) )*Z+C( 3*1-5) )/Q
RETURN
END
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29-
C-15
-------
FUNCTION CLOCK
FUNCTION CLOCK (Tl.IINC) G 1
C G 2
C **** ADD A TIME IN MINUTES TO A 2400 HOUR TIME AND RETURN A 2400 G 3
C **** HOUR TIME G 4
C G 5
T2=IINC G 6
I100=T1/100 G 7
T3=T1-100.0*I100+T2 G 8
I100=I100+INT(T3/60) G 9
CLOCK=I100*100.0+T3-60.0*INT(T3/60) G 10
RETURN G 11
END G 12-
C-16
-------
SUBROUTINE RLINE
SUBROUTINE RLINE (NC,F,KS1,JS) H 1
COMMON /NEED/ HC,XN,NL,NRTO,RTO(20),OZP(20),OZN<8,20),RHO(8,20),MR H 2
1,OC(4),OS(2),HCS,XNS,LS,HCLL(8),XNLL(8) H 3
COMMON /CNTRL/ SIG,SIGMA,INFO,NPTO,TSTRT,DTIM,Z1,Z2,DCON,EHC,EXN,F H 4
1LST,TLST,NSPAR H 5
COMMON /SPEC/ NS,HCSPEC(10),CARB(10),RCTY(10),ALDSPC(4),ALDX(4),XN H 6
1F(2),IH(10),INOX(2),IALD(4),FINHC(10),FALHC(10),NHC,NALD,OZIN,OZAL H 7
2,HCIN,HCAL,XNIN,XNAL,KOZ,ALDCRB(4),FENX(2),C(81),REACT<81),NI,PLSP H 8
COMMON /INOUT/ IN.IOUT.ITAPE H 9
COMMON /PLTVEC/ HCT(20),OT(20),NT,OHC,HCG,PLTGRD,OXN,XNG,HC1,XN1,T H 10
1ICZ,DIGZ,CHRZ H 11
DIMENSION R(20), F(21), YP(12), TMP(12), OE(20), XNE(20) H 12
EQUIVALENCE (NR.NRTO), (RTO.R) H 13
INTEGER PLSP H 14
RLBK(A,B1,B2,B3)=A*(B1-B2)/(B3-B2) H 15
IFG=0 H 16
KFACT=KSl-6+JS H 17
IF (NC.EQ.l) KFACT=KFACT+2 H 18
KS=MAXO(KFACT/MR,0) H 19
KS=MINO(KS,NC) H 20
KSS=MAXO(KFACT-KS*MR,0) H 21
KS=KS+1 H 22
IF (KS.GT.NC.AND.KSS.EQ.2) GO TO 5 H 23
IF (INFO.EQ.O) WRITE fIOUT,365) PLSP H 24
IF (INFO.LT.O) WRITE (IOUT.370) PLSP H 25
5 DO 15 J=1,NL H 26
M=J H 27
DO 10 L=J,NL H 28
10 IF (OZP(L).LT.OZP(M)) M=L H 29
IF (M.EQ.J) GO TO 15 H 30
SV=OZPU) H 31
OZPU)=OZP(M) H 32
OZP(M)=SV H 33
15 CONTINUE H 34
NR=NC H 35
NSHC=0 H 36
NSXN=0 H 37
KK=0 H 38
MR1=MR-1 H 39
INX=1 H 40
NCR=(NR+l)/2 H 41
TOL=1.0-(0.17/(SQRT(FLOAT(NR)))) H 42
KSN=KS1+1 H 43
IF (KSN.GT.7) GO TO 40 H 44
GO TO (20,25,30,35,40,40,40),KSN H 45
DO CORNERS. H 46
20 CALL SIM (0.,0.,OC(1),INX) H 47
25 CALL SIM (0.,XN,OC(2),INX) H 43
30 IF (KS.EQ.l) CALL SIM (HC,XN,OZN(MR,1),INX) H 4?
OC(3)=OZK(MR,1) H 50
35 CALL SIM (HC,0.,OC(4),INX) H 51
40 DO 45 LS=1,NL H 52
IF (OC(l).LT.OZP(LS)) GO TO 50 H 53
45 CONTINUE H 54
WRITE (ICUT.355) PLSP.OC(l) H 55
STOP H 56
50 IF (LS.GT.l) WRITE (IOUT.360) PLSP.OZP(LS) H 57
IF (OZP(LS).GT.OC(3)) GO TO 345 H 58
NCYC=0 H 59
DO DOUBLE ROLLBACK ON EDGES H 60
OZS=OZP(LS)*0.9 H 61
IF (KSN.GE.7) GO TO 75 H 62
HCG=RLBK (HC,OZS,OC(2),OC(3)) H 63
XNG=RLBK(XN,OZP(LS),OC(4),OC(3)) H 64
IF (HCG.LE.O.) HCG=HC/20. H 65
IF (XNG.LE.O.) XNG=XN/10. H 66
IF (XNG.GT.XN) XNG=XN/20. H 67
IF (NCR.EQ.l) GO TO 90 H 68
GO TO (55,55,55,55,55,65,75),KSN H 69
55 OS(1)=OZS H 70
C-17
-------
SUBROUTINE RLINE
INX=-1 H 71
60 CALL SIM (HCG,XN,OS(1),INX> H 72
OHC=OS(1) H 73
IF (INX.NE.-l) GO TO 65 H 7*
HCG1=RLBK (HCG,OZS,OCm,OS(l)) H 75
AH=HCG1-HCG H 76
BH=RLBK(HC-HCG,OZS,OS(1),OC(3)) H 77
HCG=HCG+(ABS(AH)*BH+ABS(BH)*AH)/(ABS(AH)+ABS(BH)) H 78
IF (OS(1).GE.OC(3)) HCG=RLBK(HCG,OZS,OC(2),OC(3)) H 79
HCG=AMIN1(HCG,0.5*HC> H 60
OS(1)=OZS H 81
IFG=IFG+1 H 82
IF (IFG.EQ.4) INX=1 H 83
GO TO 60 H 84
65 OS(2)=OZP(LS) H 85
INX=-1 H 8*.
70 CALL SIM (HC,XNG,OS(2),INX) H 87
OXN=OS(2) H 8b
IF (INX.NE.-l) GO TO 75 H 89
XNG1=RLBK(XHG,OZP/F
-------
SUBROUTINE RLINE
110 HCC=HTTl-RLBK(Hm-HTT,OZC,OZN(MR,I-2),OZN(MR,I-l)) H 141
A=RLBK(HTT-HSS,OZC,OSS,OZN(MR,I-imHSS H 143
BX=HTT-HCC H 143
AX=A-HCS H 144
IF (OC(3)-OZN(KR,2).GT.O) GO TO 115 H 145
AX=0. H 146
BX=1. H 147
115 HCr-,riCC*AX+A*BX)/(AX+BXl H 143
HCC1=HTT-(HTT-HCS)/AMAXO(NCR-I,1) H 149
HCC=AMAX1(HCC,HCC1) H 150
120 IF (HCC.GT.TOL*HTT) HCC=TOL*HTT H 151
HMR4=HC-(FLOAT(I-1)*HC/FLOAT(NCR-1)) H 152
IF (HCC.LT.HMR4) HCC=HHR4 H 153
HTT1=HTT H T54
HTT=HCC H 155
XNN=XH H 156
IF (KSS) 175,155,175 H 157
125 OZC=OC(3)*(OZP)**(1./FLOAT(NCR)) H 158
XHN=XN H 159
OZL=OC(3) H 160
OSS=OZP(LS) H 161
XSS=XNS H 162
ICNT=0 H 163
IF (KSS) 150,140,150 H 164
130 OZC=OZN(MR,I-l)*(OZP(LS)/OZN(KR,I-in**(l./FLOAT(NR+2-I)) H 165
OZL=OZH(MF?,I-1) H 166
IF (KS.CE.NCR) GO TO 135 H 167
ICNT=KS-NCR-1 H 168
135 ICNT=ICNT+1 • H 169
IF (KSS.HE.0) GO TO 150 H 170
IF (ICHT.LE.2) GO TO 140 H 171
XNX1=XNN1-RLBK(XNN1-XNN,OZC,OZN(MR,I-2),OZN(MR,I-1)) H 172
140 IF (XNN.GT.XSS) GO TO 145 H 173
XSS=0. H 174
OSS=OC(4) H 175
XHS=XNS*0.5 H 176
145 XNX=RLEK(XNN-XSS,OZC,OSS,OZL)+XSS H 177
IF (XNX1.GT.O.O.AND.XHX1.LT.XN) XNX=(XNX+XNX1 )/2.0 H 178
IF (OC(3).GT.OZP(ND) L=l H 179
IF (OC(3).LE.OZP(ND) L=2 H 180
IF (NCR.ST.2) XNX=AMAX1(XNX,XNN-(XNN-XNS)/FLOAT(NR+L-I)) H 181
IF (I.LE.NCR+1) GO TO 146 H 182
IF (OC(3).LT.OZN(MR,NCR+1)> XNX=XNN-(XNN-XNS)/FLOAT(NR-I+2) H 183
IF (OC(3).6T.OZN(MR,NCR + l).AN'a.I.EQ.NR) XNX=( XNNtZ. 0*XNS )/3.0 H 184
146 CONTINUE H 185
IF (I.EQ.NR.AND.XNX.LE.O.) XNX=XNN/2. H 186
IF (NCR.LE.2) XNX=XN/3.0 H 187
IF (XNX.LT.1.1*XNG.AND.XNX.GT.0.9*XNG) XNX=XHG H 183
150 IF (XNX.GT.TOL*XNN) XNX=TOL*XNN H 189
IF (XNX.GT.XN.OR.OZP(LS).LT.OC(4)) XNX=(XN*FLOAT(NR-I)/FLOAT(HCR-l H 190
1)) H 191
IF (XNX.LE.O.) XNX=1.0E-7 H 192
XNN1=XNN H 193
XNN=XNX H 194
HTT=HC H 195
IF (KSS.NE.O) GO TO 175 H 196
155 IF (OZN(KR,I-l).GT.l.l*OZP(l_S)) GO TO 165 H 197
IF (IABS(NCR-I).LE.2) GO TO 165 H 193
GAP=0. H 199
NCOUNT=I-2 H 200
IF (I.LE.(NR/2 + D) NSTART=1 H 201
IF (I.GT.(NR/2+l)) NSTART=NR/2+l H 202
DO 160 JJ=NSTART,NCOUNT H 203
GAP1=OZN(MR,JJ)-OZN(MR,JJ+1) H 204
IF (GAP1.LT.GAP) GO TO 160 H 205
GAP=GAP1 H 206
HTT=((R(JJ)*RHO(MR,JJ))/FUJ)-f
-------
SUBROUTINE RUNE
F(I)=SQRT(Rm*R(I) + l. )
RHO(MR,I)=XNN*F(I)
IF (XNX.EQ.XNG) OZN(MR,1)=OS(2)
IF (OZP(LS).GE.OC(4)) GO TO 169
IF (I.NE.NR) GO TO 169
XMLL(MR)=HC
GO TO 170
169 CONTINUE
IF (I.EQ.l.OR.XNX.EQ.XNG) GO TO 175
IF (I.EQ.NCR.AND.OZP(LS).GE.OC(2)) INX=-3
IF (INX.NE.-3) GO TO 171
ITAPE=NR
CALL EDGMX(RKO(1,I-1),OZN(1,1-1),MR,HMX.OZHX.LX)
OZN(MR,I)=OZP(LS)*OZH(MR,1-1i/OZHX
IF (MR.EQ.LX+1) OZN(MR,I)=OZP(LS)/TOL
OZR=OZN(MR,I)
171 CONTINUE
IF (OZP(LS).GE.OC(2)) GO TO 170
IF (I.NE.NCR) GO TO 170
R(I)=0.
KriO(MR,I)=XN
HTT=0.
HCLL(MR)=XN
XNN=XN
170 CALL SIM
-------
SUBROUTINE RLINE
. ,SX)
210
215
IF
IF
IF
IF
.GT
.LE
.GE
0.9*RHO(2,I» RHOtl,I)=0.9*RHOt2,I)
,0. ) RHO(1,I) = .5*RHO(2,I)
.RHO(2,I)) RHOfl,I)=0.5*RHOl2,I)
0.) RHOU,I)=RHO(2,I)*0.5
230
INX=-2
IF (IT.GT.O) GO TO 210
SX=SX*10.
SX=AMAX1(-50.
GO TO 205
(RHO(l.I).
(RHOtl.I).
(RHOtl.I).
(RHOtl.D.LE.
XHX=RHO(1,I)/FU)
HCC=XNX*RCI)
OZN(1,I)=OZP(LS)
IF (OZP(LS).LT.OCm.AND.I.Eq.NCR) HCLL(1)=XNX
IF (I.EQ.N'R.AHD.OZP(LS).LT.CC(4)) XNLLtl)=HCC
CALL SIM (HCC,XNX,OZN(1,I),INX)
IF fINX.NE.-2) GO TO 235
AH=RLBK(RHOt1,I),OZP(LS),OC(1),OZN(1,1))-RHO(1,1)
BH=R LCXt(RHOt 2,1)-RHO(1,1)),OZFlLS),OZN(1,1),OZNt 2,1))
RHO(1,I)=RHO(1,I)+(ABS(AH)*EH+ABSIBH)*AH)/(ABS(AH)+ABS(BH))
RHOl 1,1 )=AHIH1( RHOt 1,1), 0 . 9*RHOf 2,1))
IF(RHO(1,I).LE.O.) RHO(1,I)=0.5*RHO(2,I)
IF (I.EQ.NCR) IFG=IFG+1
IF fIFG.LT.3.AND.I.EQ.NCR) GO TO 215
INX=1
215
GO TO
235 KSS-0
240 CONTINUE
C CHECK FOR INCREASING RATIOS
245 DO 260 1=1, N3
K=I
DO 250 J=I,NR
IF (RU).LT.R(K))
250
K=J
IF (K.EQ.I) GO TO 260
R:i)=R(K)
R(K)=SV
SV=FfI)
F(I)=F(K)
FtK)=SV
DO 255 J=1,MR
SV=OZN( J,I)
OZN( J,I)=OZN( J,K)
OZN(J,K)=SV
SV=RHO( J,I)
RHOf J,I)=RHOtJ,K)
255 RHOtJ,K)=SV
260 CONTINUE
C DO SPECIAL CALCULATIONS
KSS1=KSS+1
IF (OZP(LS).LT.OCt2)) NCR1=NCR-1
IF (OZPtLS).GE.CC(2)) NCR1=NCR
NN=NCR1+1
SX=-20.*SIG/FLOATtNH)
IF (NCR.NE.l) GO TO 265
OT(1)=OC(2)
HCT(1)=0.
OT(2)=CHC
HCT(2)=HCG
OT(3)=OC(3)
HCTt3)=HC
111=0
NN=3
GO TO 295
265 DO 270 I=1,NCR1
IF (OZP(LS).LT.OC(2)) L=I+1
IF (OZP(LS).GE.OC(2)) L=I
OT(I+2)=OZNtnR,L)
270 HCT(I+2)=RHOtMR,L)^R(L)/F(L)
OT(1)=OC(2)
HCT(1)=0.
H 281
H 282
H 283
H 284
H 285
H 286
H 287
H 288
H 289
H 290
H 291
H 292
H 293
H 294
H 295
H 296
H 297
H 293
H 299
H 300
H 301
H 302
H 303
H 304
H 305
H 306
H 307
H 308
H 309
H 310
311
312
H
H
H 313
H 314
H 315
H 316
H 317
H 318
H 319
H 320
H ^l
H 322
H 323
H 324
H 325
H 326
H
H
H
H
H
H
H
H
H
H
H
H
H
327
328
329
330
331
332
333
334
335
33C
337
338
339
H 340
H 341
H 342
H 343
H 344
H 345
H 346
H 347
H 348
H 349
H 350
C-21
-------
SUBROUTINE RLINE
OT(2)=OHC H 351
HCT(2)=HCG . H 352
NN=NN+1 H 353
IF (KSS1.GT.1) GO TO 300 H 354
IF (HCG.GT.TOL*HCT(3)) HCS=TOL*HCT(3) H 355
IF (HCS.Eq.TOL*HCT(3)) GO TO 295 H 356
IT=1 H 357
275 CALL CURV1 (NN,OT,HCT,SP1,SF2,YP,TMP,SX) H 358
DO 280 LK=1,NL H 359
IF (OZP(LK).GE.OC(2)) GO TO 285 H 360
280 CONTINUE H 361
LK=NL H 362
285 OZS=OZP(LK)*0.7 H 363
HCS=CU3V2(OZS,NN,OT,HCT,YP,SX,IT) H 364
IF (IT.GT.O) GO TO 290 H 365
SX=SX*10. H 366
SX=AMAX1(-50.,SX) H 367
GO TO 275 H 368
290 IF (HCS.GT.TOL*hCT(3)) HCS=TOL*HCT(3) H 369
295 IF (NCR.EQ.l) HCS=HC/3. H 370
IF ) XNS=XNN*0.5 H 381
IF (XNS.EQ.XNN*0.5) GO TO 335 H 382
NCR1=NCR H 383
IF (OZP(LS).LT.OC(4M NCR1=NCR-1 H 384
DO 305 I=1,NCR1 H 385
J=NR+1-I H 386
IF COZP(LS).LT.OC(4)) J=J + 1 H 387
OE(I+1)=OZN(KR,J) H 383
305 XNE(I+1)=RHO(MR,JJ/F(J) H 389
OE(1)=OC(4) H 390
XNE(1)=0. H 391
NN=NCR1+1 H 392
310 IF (OE(NN).LT.OE(NN-l)) NN=NN-1 H 393
IF (NN.EQ.l) XNS=XNN*0.5 H 394
IF (NN.EQ.l) GO TO 335 H 395
IF (OE(NN).LT.CE(NN-D) GO TO 310 H 396
IF ) GO TO 320 H 397
IF (ABS(XNE(2)-XNG).LT- COU1) GO TO 325 H 398
NN=NN+1 H 399
WJR = NN-2 H 400
DO 315 1=1,NNR H 401
II=KH-I+1 H 402
XNE(II)=XNE(II-1) H 403
315 OE(II)=OE(II-1) H '?4
XNE(2)=XKG H 405
OE(2)=OXN H 406
SX=-SIG*20./FLOAT(NN) H 407
320 IT=1 H 408
325 CALL CURV1 (NN,OE,XNE,SP1,SP2,YP,TMP,SX) H 409
DO 326 LK=LS,NL H 410
IF (OZP(LK).GE.OC(4)> GO TO 327 H 411
326 CONTINUE H 412
LK=NL H 413
327 XNS=CURV2(OZP(LK),NN,OE,XNE,YP,SX,IT) H 414
IF (IT.GT.O) GO TO 330 H 415
SX=SX*10. H 416
SX=AMAX1(-50.,SX) H 417
GO TO 325 H 418
330 IF
-------
SUBROUTINE RLINE
335 IF (NCR.EQ.l) XNS=XH/3. H 421
CALL SIM (HC,XNS,OS(2),INX) H 422
340 RETURN H 423
345 WRITE (IOUT.350) PLSP H 424
STOP H 425
C H 426
C H 427
C H 428
350 FORMAT UHl.llHTHE LOWEST ,A4,24H LINE CANNOT BE PLOTTED./1HO,39HI H 429
INCREASE THE MAXIMUM HC AND NOX VALUES.) H 430
355 FORMAT UH1.24HNO LINES CAN BE PLOTTED./1H0.35HBACKGROUND ONLY PRO H 431
1DUCES TOO MUCH ,A4,1H,,F5.2,5H PPM.) H 432
360 FORMAT tlHO,45HDUE TO HIGH BACKGROUND CONDITIONS THE LOWEST ,A4,17 H 433
IH PLOTTED WILL BE .F5.2.5H PPM.) H 434
365 FORMAT (1H1,//,14X,36HTHE FOLLOWING SIMULATIONS WERE DONE./1HO/1H H 435
1,16X,2HHC,18X,3HNOX,15X,5HPATIO,17X,A4) H 436
370 FORMAT (1H1,//,14X,36HTHE FOLLOWING SIMULATIONS WERE DONE./1HO/1H H 437
1,16X,2HHC,18X,3HHOX,15X,5HRATIO,17X,A4,16X,4HTIME) H 433
END H 439-
C-23
-------
SUBROUTINE SIM
SUBROUTINE SIM (HC,XN,ZN,INX) I 1
COMMON /CMC/ NR,KR(200,7),A(200),S(200),R(200),ITYPE(200),IA(80), I 2
1JA(2500),DILUT,TEMP,ERR,START,STOPP,SPECIS(81),TPRNT,TSTEP I 3
COMMON /TITL/ ITTL(IS) I 4
COMMON /HOUR/ OZM,NGO,TM I 5
COMMON /CNTRL/ SIG,SIGMA,INFO,NPTO,TSRT,DTIM,Z1,Z2,DCON,EHC,EXN,FL I 6
1ST,TLST,NSPARS I 7
COMMON /SPEC/ NS,HCSPECUO),CARB(10),RCTY(10),ALDSPC(4),ALDX(4),XN I 8
1F(2),IH(10),INOX(2),IALD(4),FIHHC(10),FALHC(10),NHC,NALD,OZIN,OZAL I 9
2,HCIN,HCAL,XNIN,XNAL,KOZ,ALDCRB(4),FEX(2),CI(81),REACT(81),NI,PLSP I 10
COMMON /INOUT/ INP.IOUT.ITAPE I 11
COMMON /PHOTON/ CF(45,8) ,P(16,9) ,IPH(9),IP,RFCT(9) ,KFACT,KPH(9) I 12
COMMON /SUNLIT/ XJ(47,10).SIGGAt31,10 ) ,PHI(31,10 ) ,Zt10 ),RTCON(10 ), I 13
1LAM1, INC, SLA, SLO.TZ.IY,IM, ID, ISTRT,ISTOP,IINC,IEN'D , SPECIE, MAXZ.ITI I 14
2ME(016),XZ(016),KJ(16),JSTRT,JSTOP,SPEEtll),MNLM(ll),MXLMtll),MAXL I 15
3,MAXJ I 16
COMMON /MIX/ NMIX,AMIX(16),STRM,STOPM,DC(45),TSTART I 17
COMMON /SUFFR/N3FR I 18
COMMON /SURFAC/FINALD(4) I 19
DIMENSION RTC200), RX(9), C(81) I 20
DIMENSION ISFN(2) I 21
INTEGER REACT,SPECIS.PLSP I 22
DATA ISPN/-N02 ','03 '/ I 23
TCI=FLOAT(JSTRT) I 24
START=0. I 25
T=START I 26
TDIL=0. I 27
IF (NSPARS.EQ.l) SAV=STOPP I 28
STOPP=SAV I 29
FLST=1.0 I 30
TLST=START I 31
EHC=HC I 32
EXN=XN I 33
IF (NPTO.EQ.O) TPRNT=STOPP I 34
IF (NPTO.NE.O) TM=5.0 I 35
IF (NPTO.NE.O) CALL ISOPLT (HC.XN) I 36
H=1.E-10 I 37
N=MI I 38
M=NS-1 I 39
DO 5 1=1,N I 40
5 C(I)=CI(I) I 41
CALL RATES (C,N) I 42
IF (NSPARS.NE.O) CALL SPARS (IA,JA,M) I 43
DO 10 J=1,NHC I 44
K=IHU) I 45
C(K)=(HC»RCTY
-------
SUBROUTINE SIM
IF (INFO.LT.l) WRITE (IOUT.235) PLSP I 71
IF (INFO.LT.l) GO TO 50 I 72
IF (NI.NE.O) WRITE (IOUT,245) (REACT(I),1=1,NI) I 73
IF (NI.NE.O) WRITE (ICUT,250) (CI( I ),!=!,HI) I 74
WRITE (IOUT.215) ERR I 75
WRITE (IOUT.220) (R(IR),IR=1,NR) I 76
IF (IP.EQ.O) GO TO 50 I 77
DO 45 1=1,IP I 76
K=IFH(I) I 79
45 RX(I)=R(K) I 80
WRITE (IOUT.225) (IPH(IR),IR=1,IP) I 81
WRITE (IOUT.230) (RX(IR),IR=1,IP) I 82
50 IN=1 I 83
IF (NSPARS.EQ.O) IN=4 I 84
NSPARS=0 I 85
TNEXT=1. I 86
IF (NPTO.EQ.O) GO TO 90 I 87
IF (T-START) 115,115,90 I 88
55 IF (AMIX(l).GT.-l..AND.T.GE.TOIL) TDIL=TDIL+60. I 89
IF (DTIM.EQ.O.) GO TO 85 I 90
IF (T.GE.TSRT) GO TO 70 I 91
IF (TSRT-TFRNT-20.) 60,60,65 I 92
60 TNEXT=TSRT I 93
IN=2 I 94
GO TO 90 I 95
65 TNEXT=TPRNT I 96
IN=0 I 97
GO TO 90 I 98
70 IF (AHIX(l).LT.-l. ) GO TO 71 I 99
TNEXT=AMIN1(TDIL,TPRNT) I 100
IF (T.GE.TSRT+DTIH) GO TO 85 I 101
GO TO 74 I 102
71 IF (T.GE.TSRT+DTIM) GO TO 85 I 103
TLST=TSRT I 104
TNEXT=TSRT+DTIM . I 105
74 IF (TNEXT-TPRNT-20.) 75,75,80 I 106
75 IN=2 I 107
GO TO 90 I 103
80 TMEXT=TPRNT I 109
IN=0 I 110
GO TO 90 I 111
85 TNEXT=AMIN1(TPRNT,STOPP) I 112
TLST=TSRT+DTIM I 113
90 CALL DRIVES (M,T,H,C,TNEXT,ERR,21,IN,IA,JA) I 114
T=TNEXT I 115
IF (NPTO.NE.O) GO TO 100 I 116
IF (T.LT.STOPP) GO TO 55 I 117
IF (INX.GT.-l) GO TO 100 I 113
IF (INX.EQ.-1.AND.OZM.GT.0.75*ZN) GO TO 100 I 119
IF (INX.HE.-3) GO TO 91 I 120
TOL=1.0-(0.17/(SQRT(FLOAT(ITAPE>))) I 121
IF (OZM.GE.TOL*ZN.ANO.OZM.LE.ZN/TOL) GO TO 100 I 122
91 CONTINUE I 123
IF (INX.NE.-2) GO TO 95 I 124
IF (OZM.LT.1.1*ZN.AND.OZM.GT.0.9*ZN) GO TO 100 • I 125
95 ZN=OZM I 126
RETURN I 127
100 ZN=OZM I 128
IF (NPTO.NE.O) GO TO 110 I 129
INX=1 I 130
IF (T.LT.STOPP) GO TO 55 I 131
IF (XN.Eq.O. ) RR=0. I 132
IF (XN.NE.O.) RR=HC/XN I 133
IF (INFO.LT.O) GO TO 105 I 134
IF(NOPR.EQ.l) RETURN I 135
IF (TM.GT.O.) WRITE (IOUT.165) HC,XN,RR,ZN I 136
IF (TM.LE.O.) WRITE (IOUT,185) HC,XN,RR,ZN I 137
RETURN I 133
105 IF (TM.GT.O.) WRITE (IOUT,205) HC,XN,RR,ZN,TM I 139
IF (TM.LT.O.) WRITE (IOUT.210) HC,XN,RR,ZN I 140
C-25
-------
SUBROUTINE SIM
RETURN I
110 IF (IN.NE.O) RETURN I 142
IF (T.GE.STOPP) TPRNT=STOPP I 143
IF (T.LT.TPRNT) GO TO 55 I 144
115 HCC=0. I 145
DO 120 1=1,WC I 146
K=IH(I) I 147
120 HCC=HCC+CARB(I)*C(K) I 148
FFROP=0. I 149
ALDC=0. I 150
IF (HCC.LT.0.0000001) GO TO 140 I 151
IF (NHC.EQ.O) GO TO 130 I 152
DO 125 1=1,NHC I 153
K=IH(I) I 154
125 IF (CARB(I).EQ.3.0) FPROP=3.0*C(K)/HCC I 155
130 IF (NALD.EQ.O) GO TO 140 I 156
DO 135 I=1,NALD I 157
K=IALD(I) I 158
135 ALDC=ALDC+ALDCRB(I)*C I 168
IF (INFO.GT.O) WRITE (IOUT,190) I 169
IF (INFO.GT.O) WRITE (IOUT.235) PLSP I 170
IF (T.EQ.START) TIHNM=START I 171
IF (T.NE.START) TIMNW=TPRNT I 172
CTIME=CLOCK(TCI,IFIX(TIHN'W)) I 173
WRITE (IOUT.240) CTIME,HCC,FFROP,ALDC,CNOX,FN02,C03 I 174
IF (INFO.LE.O) GO TO 160 I 175
WRITE (IOUT,180) (SPECIS(I),I=1,M) I 176
WRITE (IOUT.195) CTIME,(C(I),1=1,10),H,
-------
SUBROUTINE SIM
175 FORMAT (//,1X,22HTHE REACTION RATES ARE,/,UH .1P10E13.5)) I 211
180 FORMAT
-------
SUBROUTINE DRIVES
SUBROUTINE DRIVES (N,TO,HO,YO,TOUT,EPS,MF,INDEX,IA.JA) J 1
COMMON /CNTRL/ SIG,SIGMA,INFO,NPTO,TSRT,DTIM,Zl,Z2,DCON,EHC,EXN,FL J 2
1ST,TLST,NSPARS J 3
COMMON /SPEC/ NS,HCSPEC(10),CARB(10),RCTY(10),ALDSPC(4),ALDX(4),XN J 4
1F(2),IH(10),INOX(2),IALD(4),FINHC(10),FALHC(10),NHC,NALD,OZIN,OZAL J 5
2,HCIN,HCAL>XNIH,XNAL,KCZ,ALDCRB(4)>FENXm,C<81),REACT(81),NI,PLSP J 6
DIMENSION IA<1), JA(1), YO(N) J 7
DIMENSION Y(80,6) J 8
COMMON /GEAR1/ T,H,HMIN,HMAX,EPSC,UROUND,NC,MFC,KFLAG,JSTART J 9
COMMON /GEAR2/ YMAX(100)/GEAR3/ERRCR(100) J 10
COMMON /GEARS/ IWK81,9)/GEAR6/W2(1500 )/GEAR7/IW2(1500 ) J 11
COMMON /GEARS/ EPSJ.IPTI2,IPTI3,IPTI4,IPTR2,IPTR3,NGRP J 12
COMMON /GEAR9/ HUSED.NQUSED,NSTEP,NFE,NJE,NZA,NPL,NPU,NZL,NZU,NZRO J 13
COMMON /INOUT/ INP,LOUT.ITAPE J 14
DIMENSION Wl(80,3) J 15
DATA NMX/80/,LENW2/1500/,LENIW2/1500/ J 16
NGP=0 J 17
IF (INDEX.EQ.4) GO TO 15 J 18
IF (INDEX.EQ.O) GO TO 30 J 19
IF (INDEX.EQ.2) GO TO 35 J 20
IF (INDEX.EQ.-l) GO TO 40 J 21
IF (INDEX.EP.3) GO TO 45 J 22
IF (INDEX.NE.l) GO TO 125 J 23
IF (EPS.LE.O.) GO TO 110 J 24
IF (N.IE.O) GO TO 115 J 25
IF KTO-TOUT)*HO.GE.O.) GO TO 120 J 26
MITER=MF-10*(MF/10) J 27
IF ((MITER.NE.l).AND.(MITER.NE.2)) GO TO 15 J 28
NP1=N+1 J 29
NZA=IA(NP1)-1 J 30
MAX=LENIW2/2 J 31
IPTI2=MAX*1 . J 32
CALL SORDER (N,IA,JA,IW1,IW1(1,5),MAX,IW2,IW2(IPTI2 ) ,IER ) J 33
IPTI2=NZA+1 J 34
IF (IPTI2+NZA-1.GT.LENIW2) GO TO 135 J 35
DO 5 1=1,NP1 J 36
5 IW1(I,2)=IA(I) J 37
DO 10 1=1,NZA J 38
10 IW2(I)=JA(I) J 39
CALL NSCORD (N,IW1(1,2),IW2,IW1(1,3),IW2(IPTI2),IW1,IW1(1,5),IW1(1 J 40
1,8)) J 41
MAXPL=(LENIW2-NZA)/2 J 42
IPTI3=IPTI2+MAXPL J 43
MAXPU=LENIW2-IPTI3+1 J 44
CALL NSSFAC (N.IWK1,2),IW2,MAXPL,IW1(1,3),IW2(IPTI2),IW1(1,4),MAX J 45
1PU,IW1(1,5),IW2(IPTI3),IW1(1,6),IW1(1,7),IW1(1,8),IER) J 46
NPL=IW1(N,4) J 47
NPU=IW1(N,6) J 48
NZL=IWl(Ntl,3) J 49
NZU=IW1(N-H,5) J 50
IPTR2=NZA+1 J 51
IPTR3=IPTR2+MAXO(NZA,NZL) J 52
IF (IPTR3+MAXO(NZA,NZU)-1.GT.LENW2) GO TO 135 J 53
15 DO 20 1=1,N J 54
YMAX(I)=ABS(YO(D) J 55
IF (YMAX(I).EQ.O. ) YMAX(I) = 1.E-10 J 56
20 Y(I,1)=YO(I) J 57
NC=N J 58
T=TO J 59
K=HO J 60
NZRO=0 J 61
TST=EPS*1.E-10 J 62
DO 25 1=1,N J 63
25 IF (Y(I.l).GT.TST) NZRO=NZRO+1 J 64
NZRO=MAXO(NZRO,1) J 65
NOLD=NZRO J 66
HMIN=ABS(HO) J 67
HMAX=ABS(TO-TOUT)*10. J 68
HMAX=AMIN1(HMAX,20. ) J 69
EPSC=EPS J 70
C-28
-------
SUBROUTINE DRIVES
MFC=MF
JSTART=0
NO=N
CALL OZMX (Y.TL.TOUT.HO)
NMX1=NMX+1
EPSJ=SQRT(UROUND)
NHCUT=0
GO TO 50
30 HHAX=ABS(TOUT-TOUTP)*10.
HMAX=AMIN1(HMAX,20.)
GO TO 70
35 HMAX=ABS(TCUT-TOUTP)*10.
HMAX=AMINi(HMAX,20.)
IF ((T-TOUT)*H.GE.O.) GO TO 140
GO TO 75
40 IF «T-TOUT)*H.GE.O.) GO TO 130
JSTART=-1
NC=N
EPSC=EPS
MFC=MF
45 CONTINUE
50 CALL STIFFS (Y,NO,IA,JA,W1,NMX,IW1,NMX1)
IF (NPTO.NE.O) CALL SAVLIN (T,Y(KOZ,1))
KGO=1-KFLAG
GO TO (55,85,100,90),KGO
55 CONTINUE
IF (T.GE.TL) CALL OZMX (Y,TL,TOUT,NO)
D = 0.
NZRO=0
DO 65 1=1,NC
IF (Yd.D.GE.O. ) GO TO 60
NGP=NGP+1
DO 56 J=l,6
56 Y(I,J)=0.
60 CONTINUE
IF (Y(I,1).GT.TST) NZRO=NZRO+1
AYI=ABS(Y(I,D)
YMAX( I ) = «1AX1( 1.E-10.AYI)
65 D=P-:;AYI/YMAX(I))**2
NZRO=MAXO(NZRO,1)
IF (NZRO.NE.NOLD) JSTART=-1 -
D=D*(URQUND/EPS)**2
IF (D.GT.FLOAT(N)) GO TO 105
IF (INDEX.EQ.3) GO TO 140
IF (INDEX.EQ.2) GO TO 75
70 IF ((T-TQUT)*H.LT.O.) GO TO 45
CALL INTERP (TOUT,Y,NO,YO)
GO TO 150
75 IF (T.GE.TOUT) GO TO 80
IF (((T+H)-TCUT).LE.O. ) GO TO 45
H=(TOUT-T)*<1.+4.*UROUND)
JSTART=-1
GO TO 45
80 JSTART=-1
H=AMIN1(H,1.)
GO TO 140
85 CONTINUE
90 IF (NHCUT.EQ.10) GO TO 95
NHCUT=NHCUT+1
HMIN=.1*HMIN
H=.1*H
JSTART=-1
GO TO 45
95 WRITE (LOUT,155)
IF (KGO.EQ.4) KRITE (LOUT,170) T
STOP
100 WRITE (LOUT,160) T,H
STOP
105 WRITE (LOUT,165) T
KFLAG=-2
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
103
109
110
111
112
113
114
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J n.5
J i!6
J 117
J 118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J 137
J
J
J
138
139
140
C-29
-------
SUBROUTINE DRIVES
J 141
J 142
J 143
J 144
J 145
J 146
J 147
J 148
J 149
J 150
J 151
J 152
J 153
J 154
J 155
J 156
J 157
J 158
J 159
J 160
J 161
C J 162
C J 163
155 FORMAT (//44H PROBLEM APPEARS UNSOLVABLE WITH GIVEN INPUT//) J 164
160 FORMAT (//35H KFLAG = -2 FROM INTEGRATOR AT T = ,E16.8,5H H =,E16 J 165
1.8/52H THE REQUESTED ERROR IS SMALLER THAN CAN BE HANDLED//) J 166
165 FORMAT (//37H INTEGRATION HALTED BY DRIVER AT T = .E16.8/56H EPS J 167
1TOO SMALL TO BE ATTAINED FOR THE MACHINE PRECISION/) J 168
170 FORMAT (//35H KFLAG = -3 FROM INTEGRATOR AT T = .E16.6/45H CORREC J 169
1TOR CONVERGENCE COULD NOT BE ACHIEVED/) J 170
175 FORMAT
-------
SUBROUTINE STIFFS
SUBROUTINE STIFFS (Y,NO,IA,JA,H1,NMX,IW1,NMX1) K 1
COMMON /GEAR1/ T,H,HMIN,HMAX,EPS,UROUHD,N,MF,KFLAG,JSTART K 2
COMMON /GEAR2/ YMAX(100)/GEAR3/ERRORC100) K 3
COMMON /GEAR6/ W2(1500)/GEAR7/IH2(1500) K 4
COMMON /GEARS/ EPSJ,IPTI2,IPTI3,IPTI4,IPTR2,IPTR3,NGRP X 5
COMMON /GEAR9/ HUSEO,NQUSED,NSTEP,NFE,NJE,IDUMMY(5),NZRO K 6
COMMON /CMC/ Nf?,KR(200,7),A(200),S(200),R(200),ITYPE(200),IB(80), K 7
1JB(2500),DILUT,TEMP,ERR,START,STOPP,SPECIS(81),TPRNT,TSTEP K 8
DIMENSION Y(NO,1), IA(1), JA(1), W1(NMX,1), IWKNMX1,!) K 9
DIMENSION EU13), TQ(4), RT(3) K 10
DATA EL(2)/1./,OLDLO/1./ K 11
KFLAG=0 K 12
TOLD=T K 13
IF (JSTART.GT.O) GO TO 50 K 14
IF (JSTART.NE.O) GO TO 10 K 15
CALL DIFFUN (N,T,Y,W1) K 16
DO 5 1=1,N K 17
5 Y(I,2)=H*W1(I,1) K 18
KETH=MF/10 K 19
MITER=MF-10*KETH K 20
Nq=l K 21
L=2 K 22
IDOUB=3 K 23
RMAX=1.E4 K 24
RC=0. K 25
CRATE=1. K 26
HOLD=H K 27
MFOLD=MF K 28
NSTEP=0 K 29
NSTEPJ=0 K 30
NFE=1 K 31
NJE=0 K 32
IRET=3 K 33
GO TO 15 K 34
10 IF (MF.E9.MFOLD) GO TO 25 K 35
MEO=METH K 36
MIO=MITER K 37
METH=MF/10 K 38
MITER=MF-10*METH K 39
MFOLD=MF K 40
IF (MITER.NE.MIO) IWEVAL=MITER K 41
IF (HETH.EQ.MEO) GO TO 25 K 42
IDOUB=L+1 K 43
IRET=1 K 44
15 CALL COSET (METH,Nq,EL,TQ,MAXDER) K 45
LMAX=MAXDER+1 K 46
RC=RC*ELU)/OLDLO K 47
OLDLO=EL(1) K 48
20 FN=FLOAT(NZRO) K 49
EDN=FN*(TQ(1)*EPS)**2 K 50
E=FN*(TQ(2)*EPS)**2 K 51
EUP=FN*(TQ(3)*EPS)*#2 K 52
BNO=FN*(TQ(4)*EPS)**2 K 53
EPSOLD=EPS K 54
NOLD=NZRO K 55
GO TO (30,35,50),IRET K 56
25 IF (EPS.EQ.EPSOLD.AND.NZRO.EQ.MOLD) GO TO 30 K 57
IRET=1 K 58
GO TO 20 K 59
30 IF (H.EQ.HOLD) GO TO 50 K 60
RH=H/HOLD K 61
H=HOLD K 62
IREDO=3 K 63
GO TO 40 K 64
35 RH=AM'X1(RH,HMIN/ABS(H)) K 65
40 R!i=AMINl(RH,HMAX/ABS(H),KMAX) K 66
Rl=l. K 67
DO 45 J=2,L K 63
R1=R1*RH K 69
DO 45 1=1,N K 70
C-31
-------
SUBROUTINE STIFFS
45 Y(I,J)=Y(I,J)*R1 K 71
H=H*RH K 72
RC=RC*RH K 73
IDOUB=L+1 K 74
IF (IREDO.EQ.O) GO TO 275 K 75
50 IF (ABS(RC-1.KGT.0.3) IWEVAL=MITER K 76
IF (NSTEP.GE.NSTEPJ+20) IHEVAL=MITER K 77
T=T+H K 78
DO 55 J1=1,N<3 K 79
DO 55 J2=J1,NQ K 80
J=(NQ+J1)-J2 K 81
DO 55 1=1,N K 82
55 Y(I,J)=Y(I,J)+Y(I,J+1) K 83
60 DO 65 1=1,N K 84
65 ERROR(I)=0. K 65
M=0 K 86
CALL DIFFUN (N,T,Y,W1(1,2)) K 87
NFE=NFE+1 K 88
IF (IWEVAL.LE.O) GO TO 125 K 89
IWEVAL=0 K 90
RC=1. K 91
NJE=NJE+1 K 92
NSTEPJ=NSTEP K 93
CON=-H*EL(1) K 94
ISV=M K 95
LSV=L K 96
NZ=IA(N+1)-1 K 97
DO 70 1=1,NZ K 98
70 W2(I)=0. K 99
DO 110 IR=1,NR K 100
IF
-------
SUBROUTINE STIFFS
lR2),Wl(l,3),IWld,5),IW2dPTl3),IWl(l,6),W2(IPTR3),Wl,IWlU,7),IWl K 141
2U,8),IER) K 142
M=ISV K 143
L=LSV K 144
IF (IER.NE.O) GO TO 145 K 145
125 DO 130 1=1,N K 146
IF (M.LE.O) GO TO 130 K 147
IF (-H*Wld,2)*10..GT.Yd,l)) GO TO 140 K 148
130 Wld,l)=H*Wld,2)-(Yd,2) + ERRORd)) K 149
CALL NSBSLV (N,IW1,IW1,IW1(1,3),IW2(IPTI2),IW1(1,4),W2(IPTR2),W1(1 K 150
l,3),IWlN K 197
175 Yd,LMAX) = ERRORd) K 19£
GO TO 280 K 199
180 KFLAG=KFLAG-1 K 200
T=TOLD K 201
DO 185 J1=1,MQ K 202
DO 185 J2=J1,NQ K 203
J=(Nq+Jl)-J2 K 204
DO 185 1=1,N K 205
185 Y(I,J)=Yd,J)-Y(I,J + l) K 206
RMAX=2. K 207
IF (ABS
-------
SUBROUTINE STIFFS
PR3=1.E+20 K 211
GO TO 200 K 212
190 PR3=1.F*20 K 213
IF (L.EQ.LMAX) GO TO 200 K 214
Dl=0. K 215
DO 195 1=1,N K 216
195 Dl=Dl + ((ERROR(I)-Y(I,LMAX))/Yf1AXm)**2 K 217
ENQ3=.5/FLOAT(L+1) K 218
PR3=((Dl/EUP)**ENQ3)*1.4+1.4E-6 K 219
200 ENQ2=.5/FLOAT(L) K ::0
PR2=((D/E)**ENq2)*1.2+1.2E-6 K 221
PR1=1.E+20 K 222
IF (NQ.EQ.l) GO TO 210 K 223
0=0. K 224
DO 205 1=1,N K 225
205 D=D + (Y(I,L)/Yt1AX
-------
SUBROUTINE DIFFUN
SUBROUTINE DIFFUN (L,T,X,XT) L 1
COMMON /CALC/ NR,KR(200,7),A(200),S(200),R<200),ITYPE( 200),IA(80), L 2
1JA(2500),DILUT,TEMP,ERR,START,STOPP,SPECIS(81),TPRNT,TSTEP L 3
COMMON /CNTRL/ SI6,SIGMA,INFO,HPTO,TSRT,DTIM,Z1,Z2,DCCN,EHC,EXN,FL L 4
IST.TLST.NSPARS L 5
COMMON /SPEC/ NS,HCSPEC(10),CARBUO),RCTY(10),ALDSPC(4),ALDX(4),XN L 6
1F(2),IH(10),INOX<2),IALD(4),FINHCUO),FALHC(10),NHC,NALD,OZIN,OZAL L 7
2,HCIN,HCAL,XNIN,XNAL,KOZ,ALDCRB(4),FENX(2),C(81),REACT(81),NI,PLSP L 8
COMMON /SUNLIT/ XJ<47,10),SGGMA(31,10),PHI(31,10),U(10 ) ,RTCON(10 ), L 9
1LAM1,INC,SLA,SLO,TZ,IY,IM,ID,ISTRT,ISTOP,IINC,IEND,SPECIE,MAXZ,ITI L 10
2ME(16),XZ(16),KK(16),JSRT,JSTOP,PSPEC(11),MNLM(11),MXLM(11),MAXL,M L 11
3AXJ L 12
COMMON /EMIS/ NEM,EM(16),EMHC(16),EMNOX(16),ESRT(2).ESTOP,ESLP.EHS L 13
1LP,ENSLP,EC(80),EH(SO),EX(SO) L 14
COMMON /MIX/ MMIX,BMIX(16),STRM,STOPM,DC(45),TSTART L 15
COMMON /PHOTON/ CF(45,8),PC16,"),IPH(9),IP,RFCT(9),KFACT,KPH<9) L 16
COMMON /ALOFT/FALALDI4) L 17
COMMON /MIXING/ DSTRT,DEND,AMC(5),BMC(5),CMC(5),FD(6),FG(6), L 18
lAMIXtl6),DL,TTMAX,SRISE,SRMIN,DELH,TDIL,NMIX L 19
DIMENSION XT(L), X(L) L 20
INTEGER SPECIS.PSPEC L 21
DIMENSION ISPN(2) L 22
DATA ISPN/'N02 ','03 V L ?3
N=L L 24
DILU=0.0 L 25
IF(BMIX(1).GT.O.) GO TO 7 L 26
IF(T.LT.TSRT.OR.T.GT.TSRT+DTIM) GO TO 4 L 27
TT=T+TSTART L 28
TT=TT-SRISE L 29
FDT=TT/DL L 30
IF(FDT.LT.O.O) FDT=0.0 L 31
K=0 L 32
1 K=K+1 L 33
IF(FDT.GE.FD(K).AND.FDT.LT.FD(K-H)) GO TO 2 L 34
IF(K.LT.5) GO TO 1 L 35
IF(FDT.LT.FD(2)) GO TO 6 L 36
FGG=1.0 L 37
FGSLP=0.0 L 38
GO TO 6 L 39
2 CONTINUE L 4C
XFD=FDT-FD(K) L 41
FGG=((AMC(K)*XFD+BMC(K))*XFD+CMC(K))*XFD+FG(K) L 42
FGSLP=(3.*AMC(K)*XFD.+2.*BMC(K))*XFD+CMC(K) L 43
6 HT=SRMIN+FGG*DELH L 44
DILU=(FGSLP*OELH)/(HT*DL) L 45
4 DILU=AMAX1(DILU,0.) L 46
IF(T.LT.TSRT) HT=Z1 L 47
IFtT.GT.TSRT+DTIM) HT=Z2 L 48
GO TO 8 L 49
7 IF (BMIX(l).LT.O.) GO TO 5 L 50
IF (T.GE.STOPM) DILU=0. L 51
IF(T.GE.STOPM) HT=BMIX(MMIX) L 52
IF (T.GE.STOPM) GO TO 5 L 53
I=IFIX(T/60.+1.99999) L 54
IF (I.LE.l) 1=2 L 55
Z=T-FLOAT(1-21*60. L 56
HT=UZ*DC(3*I-3)+DC(3*I-4))*Z+DC(3*I-5))*Z+BMIX(I-l) L 57
DILU=((Z*3.*DC(3*I-3)+2.*OC(3*I-4n*Z+DC(3*I-5))/HT L 58
8 CONTINUE L 59
5 DILUT=AMAX1(DILU,0.) L 60
DO 10 1=1,N L 61
XT(I)=-DILUT*X(I) L 62
IF (SPECIS(I).EQ.ISPN(2)) XT(I)=DILUT*(OZAL-X(I)) L 63
10 CONTINUE L 64
IF (T.LT.TSRT.OR.T.GT.TSRT+DTIM) GO TO 30 L 65
DO 15 K=l,2 L 66
J=INOX(K) L 67
IF (SPECIS(J).NE.ISPN(D) GO TO 15 L 68
XT(J)=DILUT*(XNAL-X(J)) L 69
GO TO 20 L 70
C-35
-------
SUBROUTINE DIFFUN
15 CONTINUE L 71
IF(NHC.EQ.O) 60 TO 26 L 72
20 DO 25 K=1,NHC L 73
J=IH(K) L 74
XTU)=DILUT*CFALHC(K)*HCAL/CARB(K)-X(J)) L 75
25 CONTINUE L 76
26 CONTINUE L 77
IF(NALD.EQ.O) GO TO 33 L 78
DO 32 K=1,NALD L 79
J=IALD(K) L 80
XT(J)=DILUT*(FALALD(K)*HCAL/ALDCRB(K)-X(J)) L 81
32 CONTINUE L 82
33 CONTINUE L 83
30 IF (T.GE.ESTOP) GO TO 65 L 84
FNOW=Z1/HT L 85
I=IFIX(T/60.) L 86
ENOW=0. L 87
TT=(T-(I*60. ))/60. L 88
I=(I+1)*5 L 89
IF (NEM.GT.O) ENOW=C(«TT*EC(I) + EC(I-1))*TT+EC(I-2))*TT+ L 90
lEC(I-3))*TT+EC(I-4))/60. U 91
ENOW1=ENOW L 92
ENOW2=ENOW L 93
IF (NEM.LE.-l.AND.EMHC(l).GE.-O.) ENOW1=( (((TT*EH(I) + EH(1-1))* L 94
lTT+EH(I-2))*TT+EH(I-3))*TT+EH(I-4))/60. L 95
IF (NEM.LE.-l.AND.EMNOX(l).GE.-O. ) ENOW2 = ((((TT*EX(I) + EX(1-1)) L 96
l*TT+EX(I-2))*TT+EX(I-3))*TT+EX(I-4))/60. L 97
IF(ENOUl.LT.O.O) ENOW1=0.0 L 98
IF(ENOW2.LT.O.O) ENOW2=0.0 L 99
DO 4= X = l,2 L 100
J-INOX(K) L 101
XTU)=XT(J)4-ENOW2*FNOW*EXN*FENX(K) L 102
45 CONTINUE L 103
IF (NALD.EQ.O) GO TO 55 L 104
DO 50 K=1,NALD - L 105
J=IALD(K) L 106
XT(J)=XT(J)+ENOH1*FNOW*EHC*AIDX(K)/ALDCR8(K) L. 107
50 COHTINUE L 108
55 CONTINUE L 109
IF(NHC.EQ.O) GO TO 62 L 110
DO 60 K=1,NHC L 111
J=IH(K) L 112
XT(J)=XT(J)+ENOW1*FNOW*EHC»RCTY(K)/CARB(K) L 113
60 CONTINUE L 114
62 CONTINUE L 115
65 IF (T.EQ.TOLD) GO TO 85 L 116
IF (IP.EQ.O) GO TO 85 L 117
I=IFIX(T/60.) L 118
1=1+2 L 119
IF (I.GT.16) 1=16 L 120
Z=T/60.-FLOAT(I-2) L 121
11=0 L \Z-<.
DO 80 JK=1,IP L 123
IR=IFH(JK) L 124
IK=KR(IR,1) L 125
DO 75 LK=1,8 L 126
IF (SPECIS(IK).NE.PSPEC(IK)) GO TO 75 L 127
J=II+LK L 128
C IF (P(I-1,J).EQ.O. > RUR)=0. L 129
C IF (P(I-1,J).EQ.O.) GO TO 70 L 130
R(IR ) = <(Z*CF(3*1-3,J)+CF(3*1-4,J))*Z+CF(3*1-5,J))*Z+P( 1-1,J) L 131
R(IR)=R(IR)*RFCTUK) L 132
70 11=0 L 133
IF(LK.EQ.l) RK1=R(IR) L 134
IF U.EQ.3.0R.J.EQ.5) 11=1 L 135
GO TO 80 L 136
75 CONTINUE L 137
80 IF (R(IR).LT.O.) R(IR)=0, L 138
IF(KFACT.LE.O) GO TO 84 L 139
DO 83 KP=1,KFACT L 140
C-36
-------
SUBROUTINE DIFFUN
DO 82 JK=1,IP L 141
IF(KPH(KP).NE.IPHUK)) GO TO 82 L 142
KNM=KPH(KP) L 143
R(KNM)=RFCT(JK)*RK1 L 144
GO TO 83 L 145
82 CONTINUE L 146
83 CONTINUE L 147
84 CONTINUE L 148
85 DO 110 IR=1,NR L 149
I=KR(IR,1) L 150
IF (I.EQ.O) GO TO 110 L 151
IF (ITYPE(IR).EQ.2) GO TO 90 L 152
IF (ITYPE(IR).EQ.3) GO TO 95 L 153
IF (I.EQ.99) GO TO 101 L 154
RT=R(IR)*X(I) L 155
GO TO 100 L 156
90 J=KR(IR,2) L 157
RT=R(IR)*X(I)*X(J) L 158
XT(J)=XT(J)-RT L 159
GO TO 100 L 160
95 J=KR(IR,2) L 161
K=KR(IR,3) L 162
RT=R(IR)*X(I)*X(J)*X(K) L 163
XT(J)=XT(J)-RT L 164
XT(K)=XT(K)-RT L 165
100 XT(I)=XT(I)-RT L 166
101 IF (I.EQ.99) RT=R(IR) L 167
DO 105 K=4,7 L 163
I=KR(IR,K) L 169
IF (I.EQ.O) GO TO 110 L 170
105 XT(I)=XT(I)+RT L 171
110 CONTINUE L 172
TOLD=T L 173
RETURN L 174
ENTRY DIFSET L 175
ENTRY DIFSET (L,T,X,XT) L 176
TOLD=T L 177
IF (IP.EQ.O) RETURN L 178
11=0 L 179
DO 125 J=1,IP L 180
IR=IPH(J) L 181
I=KR(IR,D L 182
DO 12n !C=1,8 L 183
IF (SPECIS(I).NE.PSPEC(Ki) GO TO 120 L 184
R(IR)=P(1,K)*RFCT(J) L 185
IF(K.EQ.l) RK1=R(IR) L 186
IF (II.NE.l) GO TO 115 L 187
R(IR)=P(1,K+1)*RFCT(J) L 188
11=0 L 189
GO TO 125 L 17-0
115 IF (K.EQ.3.0R.K.EQ.5) 11=1 L 191
GO TO 125 L 192
120 CONTINUE L 193
125 CONTINUE L 194
IF(KFACT.LE.O) GO TO 384 L 195
DO 383 KP=1,KFACT L 196
DO 382 JK=1,IP L 197
IF(KPH(KP).NE.IPH(JK)) GO TO 382 L 198
KNM=KPH(KP) L 199
R(KNM)=RFCTUK)*RK1 L 200
GO TO 383 L 201
382 CONTINUE L 202
383 CONTINUE L 203
384 CONTINUE L 204
RETURN L 20S
END L 206-
C-37
-------
SUBROUTINE OZMX
SUBROUTINE OZMX IALD(4),FINHC(10)>FALHC(10),NHC>NALD,OZIN,OZAL M 8
2,HCIN,HCAU,XNIN,XNAL,KOZ,ALDCRBt4),FEX(2),CR(81),REACT(81),NI,PLSP M 9
NQ=JSTART M 10
IF (T.NE.START) GO TO 5 M 11
RUN(1)=C(KOZ,1) M 12
NT=1 M 13
TL=START+1. M 14
OZM=0. M 15
OZA=0. M 16
RETURN M 17
5 DO 10 1=1,61 M 18
RR=(TL+FLOAT(I-1)-T)/H M 19
IF (RR.GT.O.) GO TO 15 M 20
IF (TL+FLOAT(I-1).GT.STOPP) GO TO 15 M 21
OZ(I)=C(KOZ,1) M 22
RH=1. M 23
DO 10 J=1,NQ M 24
RH=RH*RR M 25
10 OZ
-------
SUBROUTINE COSET
SUBROUTINE COSET (METH,Nq,EL,Tq,MAXDER) N 1
DIMENSION PERTST(12,2,3), EU13), TQ(4) N 2
DATA PERTST/1.,1.,2.,!.,.3158,.07407,.01391,.002182,.0002945,.0000 N 3
13492,.000003692,.0000003524,1.,1.,.5,.1667,.04167,1.,1.,1.,1.,1.,1 N 4
2.,!.,2.,12.,24.,37.89,53.33,70.08,87.97,106.9,126.7,147.4,168.8,19 N 5
31.0,2.0,4.5,7.333,10.42,13.7,1.,1.,1.,1.,1.,1.,1.,12.0,24.0,37.89, N 6
453.33,70.08,87.97,106.9,126.7,147.4,168.8,191.0,1.,3.0,6.0,9.167,1 N 7
52.5,1.,!.,!.,!.,!.,!.,!.,I./ N 8
5 MAXDER=5 N 9
GO TO (10,15,20,25,30),NQ N 10
10 EUim.O N 11
GO TO 35 N 12
15 EL(1)=6.6666666666667E-01 N 13
EL(3)=3.3333333333333E-01 N 14
GO TO 35 N 15
20 EU1)=5.4545454545455E-01 N 16
EL(3)=EL(1) N 17
EL(4)=9.0909090909091E-02 N 18
GO TO 35 N 19
25 EL(1)=0.48 N 20
EL(3)=0.7 N 21
EU4)=0.2 N 22
EL(5)=0.02 N 23
GO TO 35 N 24
30 EL(1)=4.3795620437956E-01 N 25
EL(3)=S.211678S321168E-01 N 26
EL(4)=3.1021897810219E-01 N 27
EL(5)=5.4744525547445E-02 N 28
EU6) = 3.6496350364964E-03 N 29
35 DO 40 K=l,3 N 30
40 TQ(K)=PERTST(NQ,METH,K) N 31
TQ(4)=.5*Tq<2)/FLOAT(NQ+2) N 32
RETURN N 33
END N 34-
C-39
-------
SUBROUTINE NSCORA
SUBROUTINE NSCORA
-------
SUBROUTINE NSNFAC
SUBROUTINE NSNFAC (N,IA,JA,A,IL,JL,ISL,L,D,IU,JU,ISU,U,X,IRL,JRL,I P 1
1ER) P 2
INiEGER IA(l),JA(l),ILm,JL(l),ISLU) P 3
INTEGER IU(1),JU(1),ISU(1),IRLC1),JRL(1) p 4
REAL A(l),L(l),Dtl),Utl),Xtl) P 5
REAL LKI P 6
IER=0 P 7
DO 5 K=1,N P 8
IRL(K)=IL(K) p 9
5 JRL(K)=0 P 10
DO 90 K=1,N p 11
X(K)=0. P 12
11=0 P 13
IF (JRL(K).EQ.O) GO TO 15 P 14
I=JRL(K) P 15
10 I2=JRL(I) P 16
JRL(I)=I1 P 17
11=1 P 1C
X(I)=0. P 19
1=12 P 20
IF (I.NE.O) GO TO 10 P 21
15 JMIN=ISU(K) P 22
JMAX=JMIN+IU(K+1)-IU(K)-1 P 23
IF UMIN.GT.JMAX) GO TO 25 P 24
DO 20 J=JMIN,JMAX P 25
JUJ=JU(J) P 26
20 X(JUJ)=0. P 27
25 JMIN=IA(K) P 28
JMAX=IA(K+1)-1 P 29
DO 30 J=JMIN,JMAX P 30
JAJ=JA(J) P 31
30 X(JAJ)=A(J) P 32
1=11 P 33
IF (I.EQ.O) GO TO 50 P 34
35 IRLI=IRL(I) P 35
LKI=-X(I) P 36
L(IRLI)=-LKI P 37
JMIN=IU(I) P 38
JMAX=IU(I+1)-1 . P 39
IF (JMIN.GT.JMAX) GO TO 45 P 40
ISUB=ISU(I)-1 P 41
DO 40 J=JMIN,JMAX P 42
ISU5=ISU8+1 P 43
JUJ=JU(ISUB) P 44
40 X(JUJ)=X(JUJ)+LKI*U(J) P 45
45 I=JRL(I) P 46
IF (I.NE.O) GO TO 35 P 47
50 IF (X(K).EQ.O.) GO TO 95 P 48
DK=1./X(K) P 49
0(K)=DK P 50
IF (K.EQ.N) GO TO 90 P 51
JMIN=IU(K) P 52
JMAX=IU(K+1)-1 P 53
IF (JMIN.GT.JMAX) GO TO 60 P 54
ISUB=ISU(K)-1 P 55
DO 55 J=JMIN,JMAX P 56
ISUB=ISUB+1 P 57
JUJ=JU(ISUB) P 58
55 U(J)=X(JUJ)*DK P 59
60 CONTINUE P 60
1=11 P 61
IF (I.EQ.O) GO TO 85 P 62
65 IRL(I)=IRL(I)+1 P 63
I1=JRL(I) P 64
IF (IRL(I).GE.ILU+1)) GO TO 80 P 65
ISLB=IRL(I)-IL(I)+ISL(I) P 66
J=JL(ISLB) P 67
70 IF (I.GT.JRL(J)) GO TO 75 P 68
J=JRL(J) P 69
GO TO 70 P 70
C-41
-------
SUBROUTINE NSNFAC
75 JRL(I)=JRUJ) P 71
JRUJ) = I P 72
80 1=11 P 73
IF (I.NE.O) GO TO 65 P 74
85 ISLK=ISL(K) P 75
IF (IRL(K).GE.IL(Ktl)) GO TO 90 P 76
J=JL(ISLK) P 77
JRK!o=JRL(J) P 78
JRLU)=K P 79
90 CONTINUE P 80
RETURN P 81
95 IER=K P 82
RETURN P 83
END P 84-
C-42
-------
SUBROUTINE NSBSLV
SUBROUTINE NSBSLV (N,R,C,IL,JL,ISL,L,D,IU,JU,ISU,U,X,B,Y) Q 1
DIMENSION R(l), ILU), JL(1), IU(1), JU(l), C(l), ISU1), ISU(l) Q 2
DIMENSION L(l), X(l), BU), U(l), Yd), D(l) q 3
INTEGER R,RK,C,CK q 4
REAL L Q 5
DO 5 K=1,N q 6
RK=RIK) q 7
5 Y(K)=B(RK) Q 8
DO 15 K=1,N Q 9
JMIN=IL(K) Q 10
JMAX=IL(K+1)-1 Q 11
YK=-D(K)*Y(K) q 12
Y(K)=-YK Q 13
IF (JMIN.GT.JMAX) GO TO 15 Q 14
ISLB=ISL(K)-1 q 15
DO 10 J=JMIN,JMAX Q 16
ISLB=ISLB+1 Q 17
JLJ=JL(ISLB) Q is
10 Y(JLJ)=Y(JLJ)+YK*L(J) Q 19
15 CONTINUE Q 30
K=N q 21
OC 30 1=1,N Q 22
SUM=-Y(K) Q 23
JMIM=IU(K) q 24
JMAX=IU(K+1)-1 Q 25
IF (JMIN.GT.JMAX) GO TO 25 Q 26
ISUB=ISU(K)-1 q 27
DO 20 J=JMIN,JMAX q tfl
ISUB=ISU3+1 q 29
JUJ=JU(ISUB) q 30
20 SUM=SUM+U(J)*Y(JUJ) q 31
25 Y(K)=-SUM q 32
CK=C(K) q 33
X(CK)=-SUM q 34
30 K=K-1 q 35
RETURN q 36
END q 37-
C-43
-------
SUBROUTINE YSMER
SUBROUTINE YSMER (A,K,A1) R 1
INTEGER A,Alt 2) R 2
COMMON /INOUT/ INP,LOUT.ITAPE R 3
WRITE (LOUT,5) A,K,AH 1),A1(2) R 4
FORMAT (1X,A10,I6,2A10) R S
RETURN R 6
END R 7-
-------
SUBROUTINE INTERP
SUBROUTINE INTERP (TOUT,Y,NO,YO) S 1
COMMON /GEAR1/ T,H,DUMMY(4),N,IDUMMY(2),JSTART S 2
DIMENSION YO(NO), Y(NO,1) ' S3
DO 5 1=1,N S 4
5 YO(I)=Y(I,1) S 5
l=JSTART+l S 6
S=(TOUT-T)/H S 7
Sl=l. S 8
DO 15 J=2,L S 9
S1=S1*S S 10
DO 10 1=1,N S 11
10 YO(I)=YO(I)+S1*Y(I,J) S 12
15 CONTINUE S 13
RETURN S 14
END S 15-
-------
SUBROUTINE LINER
SUBROUTINE LINER (SIG.KALCMP.F) T 1
COMMON /NEED/ HC,XN,NL,NR,R(20),OZP(20),OZN(8,20 ),RHO(8,20),MR,OC( T 2
14),OS(2),HCS,XNS,LS,HCLL(8),XNLL(8) T 3
COMMON /VVLBL/ FACTR,DISTNC,CHRSZ,NCHR,OZLBL T 4
COMMON /PLTVEC/ HCT(20),OT(20),NT,OHC,HCG,PLT6RD,OXN,XHG,HCC,XNC,T T 5
1ICZ,DIGZ,CHRZ T 6
COMMON /CNTRL/ SGG,SIGMA,INFO,NPTO,TSTRT,DTIM,Zl,Z2,DCON,EHC,EXN,F T 7
1LST.TLST.NSPARS T 8
COMMON /INOUT/ IN.IOUT.ITAPE T 9
COMMON /TITL/ ITTLtlS) T 10
COMMON /GEAR6/ RPL(20,20 ) ,RTL(20,20),NRL(20),NSL(20),NTL(20),NUL( 2 T 11
10),W(20),WW(20),OE(20),HCTP(20),XNE(20),XNEP(20>, YP(20),TM(20),XNA T 12
2P(20),HCAP(20),HCLP(20),ITTL1(18),U(44),V(44),HCBP(20),DUM1(274) T 13
COMMON /MULPLT/HCS5,XNSS T 14
DIMENSION F(20), RBL(20,20), NBL(20), NTOU20) T 15
DATA IBLANK/1 '/ T 16
C T 17
C FIRST SET CALCOMP OPTION T 18
C T 19
CHRSZ=TICZ T 20
IDIG1=1 T 21
IDIG2=2 T 22
IHY=IFIX(HC*10.+0.5) T 23
IHZ=IFIX(XN*1000.+0.5) T 24
IF (MOD(IHYilO).NE.O) IDIG1=2 T 25
IF (MCD(IHZ,7).NE.O.OR.IHZ.LT.10) IDIG2=3 T 26
HCD=HCC/HC T 27
HCX=0. T 28
HCM=HC/10. T 29
XHD=XNC/XN T 30
XNX=0. T 31
XNM=XN/7. T 32
XX=«10.0-(HCD*HC))/2.0) + 0.3 T 33
YY=((8.0-(XND*XN))/2.0)+0.3 T 34
ORGY=-.75 T 35
IF (KALCMP.LE.O) GO TO 5 T 36
CALL PLOTS (11,12,14) T 37
CALL PLOT (XX,YY,-3) T 38
5 M=MR+1 T 39
NLL=0 T 40
NBLP=0 T 41
DO 10 1=1,NL T 42
NUL(I)=0 T 43
NTL(I)=0 T 44
NTOL(I)=0 T 45
NBL(I>=0 T 46
NSL(I)=0 T 47
10 NRL(I)=0 T 48
DO 11 1=1,20 T 49
DO 11 J=l,20 T 50
11 RPL(I,J)=-9. T 51
OE(1)=OC(4) T 52
OE(2)=OS(2) T 53
XNE(1)=0. T 54
XNE(2)=XNS • T 55
DO 15 1=1,NR T 56
K=NR+1-I T 57
OE(I+2)=OZN(MR,K) T 58
XNE(I+2)=HC/R(K) T 59
IF (XNE(Ir2).GT.XN) GO TO 20 T 60
15 CONTINUE T 61
I=NR+1 T 62
20 1=1-1 T 63
NE=I+2 T 64
TOL=1.0-(0.17/(SQRT(FLOAT!NR)))) T 65
NCR=(NR+l)/2 T 66
CALL EDGMX (XNE,OE,NE,XMX,OZX,LX) T ^7
NDIF=NE-LX+1 T 68
NEk=NE T 69
NE=LX+1 T 70
-------
SUBROUTINE LINER
OE(NE)=OZX T 71
XNE(NE)=XMX T 7Z
CALL EDGMX (HCT,OT,NT,HMX,OZHX,LHX) T 73
NDIF1=NT-LHX+1 • T 74
NDIF2=NT-LHX-1 T 75
NEW1=NT T 76
NT=LHX+1 T 77
OT(NT)=OZHX T 78
HCT(NT)=HMX T 79
SX=-SIG*0.25 T 80
IF (OZP(NL).LT.OCC2)) GO TO 25 T 81
CALL NEWLIN (NT,OT,HCT,SX,LS,NL,1,0,HCTP,NPL,TOL,0,0,0) T 82
NTT=NPL T 83
IF (OZPCLS).GE.OC(2)) NLL=0 T 84
IF .GE.OC<2)) GO TO 45 T 85
25 SX=-SIG*10. T 86
IF (NR.GT.l) GO TO 30 T 87
OT(l)=OCtl) T 88
HCT(1)=0. T 89
OT(2)=CC(2) T 90
HCT(2)=XN T 91
MR2=2 T 92
GO TO 40 T 93
30 DO 35 11=1,MR T 94
OT(II+1)=OZN(II,1) T 95
35 HCT(II+1)=HCLL(II) T 96
OT(1)=OC(1) T 97
HCT(1)=0. T 98
MR2=MR+1 T 99
40 'CALL NEWLIN
-------
SUBROUTINE LINER
75 XNE(JJ)=HC/R(NCR+JJ-1) T 141
80 OE(NDIF)=OZX T 142
XNE(NDIF)=XMX T
SX=-SIG*10. T
CALL NEWLIN (NDIF,OE,XNE,SX,NTT+1,NPL,5,NTT,XNAP,II,TOL,0,0,0) T 145
85 NR1=NR T 146
IF (OZP(LS).LT.OC(2).OR.OZP(LS).LT.OC(4)) NR1=NR-1 T 147
NOZLST=0 T 148
IF (OZP(LS).LT.OC(2)) IK=1 T 149
IF (OZP(LS).GE.OC(2)) !K=0 T 150
XOZ=AMAX1(OZHX,OZX,OC(3)) T 151
IF (XOZ.EQ.OZHX) NOZLST=NT-2 T 152
IF (XOZ.EQ.OCC3)) NOZLST=NCR T 153
IF (XOZ.EQ.OZX) NOZLST=NCR+UDIF-2 T 154
DO 105 LL=1,NR1 T 155
IF 0,RTL(1,I T 173
1),IJ,TOL,NUL,NTL,I) T 179
IF t(LL-IK).GT.NOZLST) CALL NEWLIN (MDIF,W,WW,SX,LS,NL,6,0,RBL(1,I T 180
D.IJ.TOL.NTOL.NBL!!) T 181
SX=-SIG*3.0 T 182
IF (m.GT.2) SX=-SIGK60./(FLOAT(MM-2)**2) T 183
100 CALL NEWLIN (MM,U,V,SX,LS,NL,7,0,RPL(1,I),II,TOL,NRL,NSL,I) T 184
105 CONTINUE T 185
CALL ISOPLT (HCTP.XN) T 186
SX=SIGMA*30./FLOAT(NR) T 187
NTT2=NTT+NLL T 188
IF (NTT.NE.O.AND.NLL.NE.O) NTT2=NTT T 189
NW=0 T 190
DO 175 I=LS,NPL T 191
K=l T 192
IF (I.LE.NTT2) GO TO 110 T 193
U(1)=HC T 194
V(1)=XNAPU-NTT) T 195
GO TO 120 T 196
110 IF (OZP(LS).GT.OC(2)) GO TO 115 T 197
IF (I.GT.NLL) GO TO 115 T 198
U(l)=0. T 199
V(1)=HCLP(I) T 200
GO TO 120 T 201
115 U(1)=HCTP(I) T 202
V(1)=XN T 203
120 NT=HUL(I) T 204
NE=NTL(I) T 205
IF (NE.EQ.O) GO TO 130 T 206
DO 125 JI=NE,NT T 207
J=NT-JI+1 T 208
K=K+1 T 209
V(K)=RTL(I,J)/FU) T 210
C-48
-------
SUBROUTINE LINER
125 U(K)=V(K)*RU)
130 NT=NRL(I)
NE=NSL(I)
IF (NE.E'Q.O) GO TO 140
DO 135 J=NE,NT
K=K+1
V(K)=RPL(I>J)/F(J)
135 U(K)=V(K)*R(J)
140 NT=NTOLU>
NE=N'BL(I)
IF (NE.EQ.O) GO TO 150
DO 145 JI=NE,NT
J=NT-JI+1
K=K + 1
V(K)=RBL(I,J)/F(J)
145 U(K)=V(K)*R(J)
150 IF (OZP(LS).GT.OC(4M GO TO 151
IF (I.GT.N3LP) GO TO 151
K=K + 1
U(K}=HCBP(I)
VtK)=0.
GO TO 160
151 IF (I.GT.NEL) GO TO 155
K=K + 1
U(K)=HC
V(K)=XNEP(I)
GO TO 160
155 IF (NDIF2.EQ.O) GO TO 160
K=K+1
U(K)=HCAP(I-NEL)
V(K)=XN
160 U(K+1)=0.
U(K+2)=1./HCO
V(K+1)=0.
VIK+2)=1./XND
IF (K.LE.2) GO TO 175
OZLBL=OZP(I)
NW=NVI»1
W(NW)=OZP(I)
NCHR=4
NCNT=0
165 VAL=OZLBL*(10.**HCNT)
IF (VAL.GT.0.01) GO TO 170
NCNT=NCNT-H
GO TO 165
170 NCHR=K'CHR+NCNT
REMB=OZLBL-FLOAT(IFIX(OZLBL*(10.**(NCNT+2))+0.1))/(10.**(NCNT+2))
IF (REM3.GE.(0.001/(10.**NCNT))) NCHR=NCHR+1
DO 171 IJ=1,K
IF (U(IJ).GE.O..AND.V(IJ).GE.O.) GO TO 171
NE=NSL(I)
KN=NE+IJ-2
XNE(1)=OC(1)
WW(1) = 0.
DO 172 JJ=2,M
XNE(JJ)=OZN(JJ-1,KN)
172 WW(JJ)=RHOUJ-1,KN)
SSX=-50.
IT=1
CALL CURV1 (M,XNE,WW,SP1,SP2,YP,TM,SSX)
U(IJ)=CURV2 (OZP(I),tt,XNE,WW,YP,SSX,IT)
V(IJ)=U(IJ)/F(KN)
U(IJ)=V(IJ)*R(KN)
171 CONTINUE
CALL CURVE (U,V,K,1,KALCMP,0,0,SX)
175 CONTINUE
IF (KALCMP.LE.O) GO TO 210
CALL FRAME (0.,0.,0.,HCiHCD,HCX,HCM,IDIGl,0.,XN,XND,XNX,XNM,IDIG2,
19HNMHC,PPHC,9,7HNOX,PPM,7,1H ,1,1H ,1)
NCNT=0
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
211
212
213
214
215
i!6
217
218
219
220
221
222
223
224
225
226
227
228
229
230
23i
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
C-49
-------
SUBROUTINE LINER
DO 180 1=1,18 T 281
IF (ITTL(I).NE.IBLANK) GO TO 185 T 282
NCNT=NCNT+1 T 283
180 CONTINUE T 284
185 NLST=18-NCNT T 285
DO 190 I=1,NLST T 286
190 ITTL1(I)=ITTL(I+NCNT> T 287
NCNT1=18 T 288
DO 195 1=1,18 T 289
11=19-1 T 290
IF (ITTLl(II).NE.IBLANK) GO TO 200 T 291
NCNTl=f'CNTl-l T 292
195 CCl,riNUE T 293
200 NCNT1=NCNT1-NCNT T 29*
ORGX=UHCD*HC)-(FLOAT(NCNT1)*4.*CHRZ))/2.0 T 295
DO 205 I=1,NCNT1 T 296
CALL SYMBOL (ORGX,ORGY,CHRZ.ITTLKI) ,0.,4) T 297
ORGX=ORGX+4.0*CHRZ T 298
205 CONTINUE T . >"9
CALL PLOT (10.,2.,999) T 300
210 HCSS=FLOAT(NH) T 301
XNSS=FLOAT(NLL) T 302
CALL LINFRT (HC.XN) T 303
RETURN T 304
END T 305-
C-50
-------
SUBROUTINE CURVE
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
SUBROUTINE CURVE ( XARRAY , YARRAY , NPTS , INC , KALCMP , LINTYP , INTEQ , SIGMA
1)
*** PURPOSE ~ PLOTS A SMOOTH CURVE THROUGH THE DATA VALUES FROM T
GW LUNDBERG.SAI JULY 77
MODIFIED BY H HOGO AUG 1977
XARRAY ARRAY CONTAINING X VALUES
YARRAY ARRAY CONTIANING Y VALUES
NPTS NUMBER OF DATA POINTS IN THE ARRAYS ACTUALLY USED
) 0 SCALING AT TOP OF ARRAYS
INC EVERY INC POINT HILL BE USED
LINTYP PLOT SPECIAL SYMBOL EVERY LINTYP POINT
) 0 CONNECTED SYMBOL PLOT
= 0 LINE PLOT
( 0 UNCONNECTED SYMBOL PLOT
INTEQ INTEGER EQUIVALENT OF SPECIAL SYMBOL
THIS ROUTINE CALLS SYMBOL, PLOT, KURV1 AND KURV2
COMMON /VVLBL/ FCTR,DIST,CHRSZ,NCHR,OZLBL
COMMON /HOUR/ OZR.NGG.TM
COMMON /NEED/ HC,XN,NL,NR,R( 20 ) ,OZP( 20 ) ,OZN(3,ZO ),RHO(8,20 ),MR,OC(
14),OS(2),HCS,XNS,LS,HCLL<8),XNLL(8)
DIMENSION XARRAY(l), YARRAYU), XK50), YK50), XPC50), YP<50), TE
IMP' 30)
DATA NSLOPE/0/,SLOPE1,SLOPEN/0.,0./
*** LOCATE SCALING (FIRSTV AND DELTAV) FOR EACH ARRAY
*** SCALING IN TOP OF ARRAYS — CALCOMP STANDARD
N=NPTS*INC+1
FIRSTX=XARRAY(N)
FIRSTY=YARRAY(N)
N=N+INC
DELTAX=XARRAY(N)
DELTAY=YARRAY(N)
NUM=IABS(NPTS)
IF ( KALCMP. LE.O) GO TO 10
*** CHECK IF SYMBOL PLOT WANTED — LINTYP ( ) 0
IF ( LINTYP. EQ.O) 60 TO 10
*** CENTERED SYMBOL PLOT
*** SCALE FIRST DATA POINT AW PLOT CENTERED SYMBOL
X=(XARRAY(1)-FIRSTX)/DELTAX
Y=( YARRAYt 1 1-FIRSTY ) /DELTA Y
CALL SYMBOL < X, Y,0.1,INTEQ,0 . ,-1 )
*** PLOT REMAINING SYMBOLS AT INCREMENTS OF MARK
MARK=IABS( LINTYP)
N=l
DO 5 J=2,NUM
N=N+INC
IF (MOD(N.MARK).NE.O) GO TO 5
X=(XARRAY(N)-FIRSTX)/OELTAX
Y=( YARRAYl N )-FIRSTY ) /DELTA Y
CALL SYMBOL (X,Y,0.1,INTEq, 0. ,-1 )
5 CONTINUE
*** IF THE SYMBOLS ARE NOT TO BE CONNECTED, RETURN
IF ( LINTYP. LT.O) GO TO 30
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
•TO
'C
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
en
.7U
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
63
69
70
C-51
-------
SUBROUTINE CURVE
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
*** LINE PLOT (OR CONNECT SYMBOLS)
*** SCALE FIRST DATA POINT AND MOVE PEN THERE
10 XI( 1 ) = < XARRAYt 1 )-FIRSTX )/DELTAX
YI( 1 ) = ( YARRAYC 1 )-FIRSTY)/DELTAY
*** SCALE THE REMAINING POINTS
N=l
DO 15 J=2,NUM
N=N+INC
XI(J)=(XARRAY(N)-FIRSTX)/DELTAX
YI(J)=(YARRAY(N)-FIRSTY)/DELTAY
15 CONTINUE
NSLP=NSLOPE
**» CHECK IF PERIODIC
IF (ABS(XI(NUM)-XI(1)).LT. 0.01. AND. ABS(YI(NUM)-YI(1)).LT. 0.01) NSL
1P=-1
*** SET UP SPLINE INTERPOLATION
NSLP=1
SLOPE1=57.2957S*ATAN( ( YI( 1 )-YI( 2 ) )/(XI( 1 )-XI( 2 )) )
IF (SLOPE1.GT.O. ) SLOPE1=SLOPE1-180.
SLOPE1=AMINKSLOPE1,-90. >
SLOPEN=28 . 647S9*ATAN( ( YI ( N )-YI ( N-l ) )/( XI( N )-XI( N-l ) ) )
CALL KURV1 (NUM, XI, YI,NSLP,SLOPE1,SLOPEN,XP, YP, TEMP, S, SIGMA)
CALL KURV2 ( 0. ,X,Y, NUM, XI, YI,XP,YP,S, SIGMA)
X=AMAX1(0. ,X)
Y=AMAX1(0.,Y)
USX=X*DELTAX+FIRSTX
USY=Y*DELTAY+FIRSTY
TM=1.
CALL SAVLIN (USX.USY)
TM=2.
*** LINE SEGMENTS WILL BE A TENTH INCH LONG — S IS THE ARCLENGTH
NP=10.*S+1
CONST=1./NP
DIST=S
IF (KALCMP.LE.O) GO TO 20
IF (USX.GT.HC.OR.USY.GT.XN) GO TO 20
CALL VVLBLF (XI( 1 ) , YI( 1) )
*** MAP AND PLOT SEGMENTS
20 DO 25 J=1,NP
T=-J*CONST
CALL KURV2 (T, X,Y, NUM, XI ,YI,XP,YP,S, SIGMA)
X=AMAX1(0. ,X)
Y=AMAXKO.,Y)
USX=X*DELTAX+FIRSTX
USY=Y*DELTAY+FIRSTY
CALL SAVLIN (USX.USY)
IF (KALCMP.LE.O) GO TO 25
IF (USX.GT.HC.OR.USY.GT.XN) GO TO 25
CALL VVLBLC (X,Y)
25 CONTINUE
IF (KALCMP.LE.O) GO TO 30
IF (USX.GT.HC.OR.USY.GT.XN) GO TO 30
CALL VVLBLL (0..0. )
30 RETURN
END
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
71
72
•7-1
1 J
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
M5
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137-
C-52
-------
SUBROUTINE ISOPLT
SUBROUTINE ISOPLT (SAVHC.SAVNOX) V
COMMON /NEED/ HC,XN,NL,NRTO,RTO(20),OZZ(20),OZN(8,20),RHO(8,20),KR V
1,OC(4),OS(2),HCS,XNS,L5,HCLL(8),XNLL(8) V
COMMON /TITL/ ITTL(IS) V
COMMON /INOUT/ IN,IOUT,ITAPE V
COMMON /CALC/ NR,KR(200,7),A(200),S(200),R(200),ITYPE(200),IA(80 ), V
1JA(2500J.DILUT,TEMP,ERR,START,STOPP,SPECIS(81),TPRNT,TSTEP V
COMMON /CNTRL/ SIG,SIGMA,INFO,NPTO,TSRT,DTIM,Zl,Z2,DCON,EHC,EXN,FL V
1ST,TLST,NSPARS V
COMMON /SPEC/ NS,HCSPEC(10),CARB(10),RCTY(10),ALDSPC(4),ALDX(4),XN V
1F(2),IH(10),INOX(2),IALD(4),FINHCUO),FALHC(10),NHC,NALD,OZIN,OZAL V
2,HCIN,HCAL,XMIN,XNAL,KOZ,ALDCRBt4),FENX( 2),C(81),REACT( 81),ND,PLSP V
COMMON /GEAR6/ OUMK830),OZP(20),DUM2(326),MGRIO(101,2),DUM3(72)
COMMON /HOUR/ OZM,MSO,TM
COMMON /MULPLT/HCSS.XNSS
DIMENSION TVERT(52,2), TPRINT(ll), NLINE(3)
DIMENSION CVERT(9), TV(7), SAVDAT(lOl), TVK7)
DIMENSION JGRID(101,42)
INTEGER PLSP
DATA JBLANK/4H /,MAXHC/101/,MAXNOX/42/,TGRID/100./,
lCGRID/42./,JPLUS/lH+/,JBAR/lHI/,JSYMB/lH+/
DATA CVERT/4H 0 ,4H Z ,4H 0 ,4H N ,4H E ,4H ,4H P ,4H P
1,4H M /
DATA TV/4H N ,4H 0 ,4H X ,4H ,4H P ,4H P ,4H M /
DATA TVERT/104*4H /
DATA IBUNK/4H /.BLANK/4H
NR1=1
DO 5 J=l,42
IF (J.LE.2) NGRID(1,J)=JBAR
IF (J.LE.2) NGRID(101,J)=JBAR
JGRID(1,J)=JBAR
JGRID(101,J)=JBAR
5 CONTINUE
DO 15 1=1,52
TVERT(I,1)=BLANK
IF (NPTO.EQ.O) GO TO 10
IF (I.LT.18.0R.I.GT.26) GO TO 15
K=I-17
TVERT(I,1)=CVERT(K)
GO TO 15
10 IF (I.LT.17.0R.I.GT.23) GO TO 15
/,IOCHAR/1HO/,IBLK/1H
K=I-16
TVERT(I,1)=TV(K)
15 CONTINUE
DO 20 1=1,101
20 SAVDAT(I)=0.
DO 25 J=l,42,3
JGRID(1,J)=JPLUS
JGRID(101,J)=JPLUS
25 CONTINUE
C
C SET NORMALIZATION FACTORS AND VERTICAL LABELS
C
CLOW=0.
TLOM=0.
IF (NPTO.NE.O) GO TO 35
CHIGH=XN
CSPAN=CGRID/CHIGH
THIGH=HC
DO 30 1=1,7
M=8-I
TV1(I) = (FI.OAT(M)/7.)*CHIGH
30 CONTINUE
GO TO 40
C
C SET HORIZONTAL LABELS
C
35 THIGH=STOPP
40 TSPAN=TGRID/THIGH
DO 45 J=l,ll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
C-53
-------
SUBROUTINE ISOPLT
TPRINT(J) = (FLOATU-1)/10.)*THIGH V 71
45 CONTINUE V 72
C V 73
C CLEAR GRID V 74
C V 75
MAXHC1=MAXHC-1 V 76
00 50 K=1,MAXNOX V 77
DO 50 J=2,MAXHC1 V 78
JGRIDU,K)=JBLANK V 79
IF (K.LE.2) NGRID(J,K)=JBLANK V 80
50 CONTINUE V 81
RETURN V 82
C V 83
C ENTRY FOR SAVINS INTERPOLATED POINTS V 84
C V 85
C ENTRY SAVLIN V 86
ENTRY SAVLIN (SAVHC,SAVNOX) V 87
KHC=IFIX((SAVHC-TLOW)*TSPAN+1.5) V 88
IF (NPTO.NE.O) GO TO 55 V 89
KNOX=IFIX((SAVNOX-CLOW)*CSPAN-0.5) V 90
KUOX=MAXNOX-KNOX V 91
IF (KNOX.LT.l) GO TO 60 V 92
IF (KNOX.GT.MAXNOX) GO TO 60 V 93
55 IF (KHC.LT.l) GO TO 60 V 94
IF (KHC.GT.MAXHC1) GO TO 60 V 95
IF (NPTO.EQ.O) JGRID(KHC,KNOX)=JSYMB V 96
IF (NPTO.NE.O) GO TO 56 V 97
IF (TM.EQ.l..AND.NPTO.EQ.O) DUM3(NR1)=FLOAT(KHC) V 98
IF (TM.EQ.l.) NR1=NR1+1 V 99
IF (KHC.LT.2) GO TO 60 V 100
56 CONTINUE V 101
IF (NPTO.NE.O) SAVDAT(KHC)=SAVNOX V 102
60 RETURN V 103
C V 104
C ENTRY FOR PLOTTING GRID V 105
C V 106
C ENTRY LINPRT V 107
ENTRY LINPRT (SAVHC,SAVNOX) V 108
IF (NPTO.NE.O) GO TO 95 V 109
NPL=IFIX(HCSS+0.1) V 110
NLL=IFIX(XNSS+0.5) V 111
KOUNT=0 V 112
IF (NLL.EQ.O) GO TO 80 V 113
NJ=1 V 114
65 NJ=NJ+1 V 115
J=MAXNOX-NJ V 116
IF UGRID(3,J).Eq.JBLANK) GO TO 65 V 117
KOUNT=KOUNT+1 V 118
IF (KOUNT.GT.NLL) GO TO 75 V 119
IF (NJ.GT.MAXNOX-1) GO TO 75 V 120
NVAR=IFIX(OZP(KOUNT)*100.+0.5) V 121
CALL CONVT (NVAR.NLINE) V 122
DO 70 11=1,3 V 123
IF (NLINE(II).NE.IBLANK) JGRID(2+II,J)=NLINE(II) V 124
70 CONTINUE V 125
NJ=NJ+1 V 126
GO TO 65 V 127
75 KOUNT=KOUNT-1 V 128
80 KOUNT=KCUNT+1 V 129
NR1=NR1-1 V 130
DO 90 I=KOUNT,NR1 V 131
NVAR=IFIX(OZP(I)*100.+0.5) V 132
CALL CONVT (NVAR.NLINE) V 133
KHC=IFIX(nUM3(I)+0.1) V 134
DO 8* 11=2,3 V 135
IP (NLINE(II).NE.IBLK) NGRID(KHC,II-1)=NLINE(II) V 136
85 CONTINUE V 137
90 CONTINUE V 138
GO TO 110 V 139
95 CHIGH=OZM+(0.2*OZM) V 140
C-54
-------
SUBROUTINE ISOPLT
IF (OZM.EQ.0.0) RETURN V 1*1
CSPAN=CGRID/CHIGH ' V 143
DO 100 1=1,7 V 143
M=8-I V 1**
TV1(I)=(FLOAT(M)/7.)*CHIGH V 145
100 CONTINUE V 146
DO 105 1=2,100 V 147
IF (SAVOAT(I).EQ.O. ) GO TO 105 V 148
KNOX=IFIX(SAVDAT(I)*CSPAN-0.5) V 149
KNOX=MAXNOX-KNOX V 150
IF (KNOX.LT.l) GO TO 105 V 151
IF (KNOX.GT.MAXNOX) GO TO 105 V 152
JGRID(I,KNOX)=IOCHAR V 153
105 CONTINUE V 154
110 IF (NPTO.EQ.O) WRITE (IOUT.125) ((NGRIDd.J ),!=!, 101 ),J=1,2) V 155
IF (NPTO.NE.O) WRITE (IOUT.120) TVERTd.l),TV1(1) V 156
IF (NPTO.EQ.O) KFRST=1 V 157
IF (NPTO.NE.O) KFRST=2 V 158
DO 115 K=KFRST,MAXNOX V 159
L=MOO((K-1),6) V 160
I=(K-l)/6+l V 161
IF (L.EQ.O) WRITE (IOUT.130) TVERTtK,!),TV1(I),(JGRID(J,K),J=1,MAX V 162
1HC) V 163
IF (L.NE.O) WRITE (IOUT.135) TVERT(K.l),(JGRID(J,K),J=1,MAXHC) V 164
115 CONTINUE V 165
WRITE (IOUT.140) CLOW V 166
IF (NPTO.EQ.O) WRITE (IOUT,145) TPRINT V 167
IF (NPTO.NE.O) WRITE (IOUT.155) TPRINT V 168
WRITE (IOUT.150) (ITTUI) ,1 = 1,18) V 169
IF (NPTO.EQ.O) WRITE (IOUT,160) PLSP,(OZP(I),I=1,NPL) V 170
RETURN V 171
C V 172
C V 173
120 FORMAT C1H1,/////////,9X.A4.F5.3,1H+.10UOH +)) V 174
125 FORMAT 11H1,//////,18X,1H+,10(10H +),/,18X,101Al,/,18X,101 V 175
IAD V 176
130 FORMAT (9X,A4,F5.3,101A1) V 177
135 FORMAT (9X,A4,5X,101A1) V 178
140 FORMAT (13X,F5.3,1H+,10UOH +)) V 179
145 FORMAT (F21.3.10F10.2,/,64X,llHNMHC (PPMC),//) V 180
150 FORMAT (46X.18A4) V 181
155 FORMAT (F21.1,10F10.1,/,63X,14HTIME (MINUTES),//) V 182
160 FORMAT (1HO,/,20X,4HTHE ,A4,12H LINES ARE ,10F8.5,/,40X,10F8.5) V 183
END V 184-
C-55
-------
SUBROUTINE CURV1
SUBROUTINE CURV1
-------
SUBROUTINE CURV1
DIAGIN=1./DIAG1 H 71
YPU)=DIAGIN*(DX1-SLPP1) M 7Z
SPDIAG=SIMHIN*(SINHS-DELS) M 73
TF*PU)=DIAGIN*SPDIAG M 7*
IF (N.EQ.2) GO TO 15 W 75
DO 10 1=2,NM1 14 76
DELX2=X(I+1)-X(I) M 77
IF (ABS(DELX2)/X(I+1).LT.0.02) GO TO 55 W 78
DX2=(Y(I+1)-Y(I))/DELX2 14 79
DELS=SIGMAP*DELX2 14 SO
IF (DELS.GE.EXPMAX) GO TO 55 M 81
EXPS=EXP(OELS) 14 82
SINHS=.5*(EXPS-1./EXPS) 14 83
SINHIN=1./(DELX2*SIHHS) U 8*
DIAG2=SIS1HIN*(OELS*( .5*(EXPS+l./EXPS) J-SINHS) 14 85
DIAGIN=1./(DIAG1+DIAG2-SPDIAG*TEMP(I-1)) M 86
YP) » 94
C U 95
C *** PERFORM BACK SUBSTITUTION W 96
00 20 1=2,N M 97
IBAK=NP1-I M 98
YP(IBAK)=YP(IBAK)-TEMP(IBAKWP(IBAK+1> W 99
20 CONTINUE M 100
IF (SIGMA.6T.0. ) RETURN 14 101
IF (N.EQ.3) RETURN 14 102
IF (NCYC.GT.15) RETURN 14 103
IF (NCYC.GT.O) GO TO 25 14 104
XTEST=(X(3)+X(2M/2. M 105
YCORD=(Y(3)+Y(2M/2. M 106
FACT=SQRT(ABS
-------
SUBROUTINE CURV1
DELNN=X(N)-X(N-2) W 141
IF (ABS(DELN)/X(N).LT.0.02) GO TO 55 H 142
IF 3
SLPPN=(SLPPN+SLPNL*FACT2)/(1.+FACT2) M 164
SLFPN=(SLPPN-SLPNL*SIGMA)/(1.-SIGMA) W 165
GO TO 5 W 166
C M 167
C *** IF ONLY TKO POINTS AND NO DERIVATIVES ARE GIVEN, USE M 168
C STRAIGHT LINE FOR CURVE M 169
C M 170
50 YP(1)=0. » 171
YP(2)=0. M 172
RETURN M 173
55 SIGMA=-50. M 174
RETURN M 175
END M 176-
C-58
-------
FUNCTION CURV2
FUNCTION CURV2 (T,N,X,Y,YP,SIG,1A,IT) X 1
C X Z
C THIS FUNCTION INTERPOLATES A CURVE AT A GIVEN POINT X 3
C USING A SPLINE UNDER TENSION. THE SUBROUTINE CURV1 SHOULD X 4
C BE CALLED EARLIER TO DETERMINE CERTAIN NECESSARY X 5
C PARAMETERS. X 6
C X 7
C ON INPUT— X 8
C T = A REAL VALUE TO BE MAPPED ONTO THE X 9
C INTERPOLATING CURVE. X 10
C N = THE NUMBER OF POINTS WHICH WERE INTERPOLATED X II
C TO DETERMINE THE CURVE, X 12
C X,Y = ARRAYS CONTAINING THE ORDINATES AND ABCISSAS X 13
C OF THE INTERPOLATED POINTS, X 14
C YP s AN ARRAY WITH VALUES PROPORTIONAL TO THE SECOND X 15
C DERIVATIVE OF THE CURVE AT THE NODES X 16
C SIGMA = THE TENSION FACTOR (ITS SIGN IS IGNORED) X 17
C IT IS AN INTEGER SWITCH. IF IT IS NOT 1 THIS INDICATES X 18
C THAT THE FUNCTION HAS BEEN CALLED PREVIOUSLY (WITH N,X, X 19
C Y,YP, AND SIGMA UNALTERED) AND THAT THIS VALUE OF T X 20
C EXCEEDS THE PREVIOUS VALUE. WITH SUCH INFORMATION THE X 21
C FUNCTION IS ABLE TO PERFORM THE INTERPOLATION MUCH MORE X 22
C RAPIDLY. IF A USER SEEKS TO INTERPOLATE AT A SEQUENCE X 23
C OF POINTS, EFFICIENCY IS GAINED BY ORDERING THE VALUES X 24
C INCREASING AND SETTING IT TO THE INDEX OF THE CALL. X 25
C IF IT IS 1 THE SEARCH FOR THE INTERVAL (X(K),X(K+1)) X 26
C CONTAINING T STARTS WITH K=l. X 27
C THE PARAMETERS N.X.Y.YP AND SIGMA SHOULD BE INPUT X 28
C UNALTERED FROM THE OUTPUT OF CURV1. X 29
C X 30
C ON OUTPUT— X 31
C CURV2 = THE INTERPOLATED VALUE. FOR T LESS THAN X 32
C X(l) CURV2 = Yd). FOR T GREATER THAN X(N) CURV2 = Y(N). X 33
C X 34
C NONE OF THE INPUT PARAMETERS ARE ALTERED. X 35
C X 36
C *** AK CLINE/NCAR, COMM. ACM 17,4(APR. 1974), 221 X 37
C X 38
DIMENSION X(N), Y(N), YP(N) X 39
C X 40
S=X(N)-X(1) X 41
IT=IABS(IT) X 42
C X 43
C *** DENORMALIZE SIGMA X 44
SIGMAP=ABS(SIGMA)*FLOAT(N-1)/S X 45
C X 46
C *»* IF IT.NE. 1 START SEARCH WHERE PREVIOUSLY TERMINATED, X 47
C OTHERWISE START SEARCH FROM BEGINNING X 48
IF (IT.EQ.l) 11=2 X 49
C X 50
C *** SEARCH FOR INTERVAL X 51
5 DO 10 1=11,N X S'<.
IF (X(I)-T) 10,10,15 X 53
10 CONTINUE X 54
I=N X 55
C X 56
C *** CHECK TO INSURE CORRECT INTERVAL X 57
15 IF (X(I-l).LE.T.OR.T.LE.X(D) GO TO 20 X 58
C X 59
C *** RESTART SEARCH AND RESET II X 60
C (INPUT (IT( WAS INCORRECT) X 61
11=2 X 62
GO TO 5 X 63
C X 64
C *** SET UP AND PERFORM INTERPOLATION X 65
20 IF (SIGMA.EQ.-50. ) GO TO 25 X 66
OEL1=T-XU-1) X 67
DEL2=X(I)-T X 68
DELS=X(I)-X(I-1) X 69
EXPS1=EXP(SIGMAP*DEL1) X 70
C-59
-------
FUNCTION CURV2
SINHD1=.5*(EXPS1-1./EXPS1) X 71
EXPS=EXP(SIGMAP*DEL2) - X 72
SINHD2=.5*(EXPS-1./EXPS) X 73
EXPS=EXPS1*EXPS X 74
SINHS=.5*(EXPS-1./EXPS) X 75
CURV2=(YP(I)*SINHD1+YP(1-1)*SINHD2)/SIHHS+((Y(I)-YP(I))*DELl+(Y(I- X 76
11)-YP(I-1))*OEL2)/DELS X 77
IF ((ABS(Y(I)-CURV2)+ABS(Y(I-l)-CURV2)).GT.1.001*(ABS(Ym-Y(I-l)) X 78
D) IT=-IT X 79
11=1 X 80
RETURN X 81
25 IF (ABS(X(I)-X(I-1))/X(I).LT.0.02) 1=1+1 X 82
IF (I.6T.N) 1=1-2 X 83
CURV2=UT-X
-------
SUBROUTINE KURVI
SUBROUTINE KURVI (NPTS,X,Y,NSLOPE,SLOPE1,SLOPEN,XP,YP,TEMP,S,SIGMA Y 1
1) Y 2
C Y 3
C THIS SUBROUTINE DETERMINES THE PARAMETERS NECESSARY TO Y 4
C COMPUTE AN SPLINE UNDER TENSION PASSING THROUGH A SEQUENCE Y 5
C OF PAIRS (X(l),Ym,....,X(N),Y(N>) IN THE PLANE, THE Y 6
C SLOPES AT THE TWO ENDS OF THE CURVE MAY BE SPECIFIED OR Y 7
C OMITTED, FOR ACTUAL COMPUTATION OF POINTS ON THE CURVE IT Y 8
C IS NECESSARY TO CALL THE SUBROUTINE KURV2. Y 9
C Y 10
C ON INPUT — Y 11
C NPTS = THE NUMBER OF POINTS TO BE INTERPOLATED (N.GE.2), Y 12
C X = AN ARRAY CONTAINING THE N X-COORDINATES OF THE Y 13
C POINTS, Y 14
C Y = AN ARRAY CONTAIING THE N Y-COODINATES OF THE Y 15
C POINTS, Y 16
C NSLOPE = A FLAG FOR ENDPOINT SLOPES. IF \ 0, THIS IS A CLOSED Y 17
C LOOP AND NO SLOPES ARE GIVEN. IF = 0, THIS IS AN OPEN CURVE Y 18
C AND NO SLOPES ARE GIVEN. IF ) 0, BOTH ENDPOINT SLOPES ARE Y 19
C GIVEN Y 20
C SLOPE1,SLOPEN = THE DESIRED VALUES FOR THE SLOPE Y 21
C OF THE CURVE AT (X(1),Y(D) AND (X(N),Y(NM, RESPEC- Y 22
C TIVELY. THESE QUANTITIES ARE IN DEGREES AND MEASURED Y 23
C COUNTER CLOCKWISE FROM THE POSITIVE X-AXIS. THE POSITIVE Y 24
C SENSE OF THE CURVE IS ASSUMED TO BE THAT MOVING FROM THE Y 25
C POINT 1 TO POINT N. Y 26
C XP.YP = ARRAYS OF LENGTH AT LEAST N, Y 27
C TEMP = AN ARRAY OF LENGTH AT LEAST N WHICH IS USED FOR Y 28
C SCRATCH STORAGE, Y 29
C SIGMA = THE TENSION FACTOR. THIS IS NON-ZERO AND Y 30
C INDICATES THE CURVINESS DESIRED. IF SIGMA IS VERY Y 31
C LARGE (E.G. 50.) THE RESULTING CURVE IS VERY NEARLY A Y 32
C POLYGONAL LINE. A STANDARD VALUE FOR SIGMA IS 1. Y 33
C Y 34
C ON OUTPUT - Y 35
C N,X,Y,SLOPE1,SLOPEN, AND SIGMA ARE UNALTERED, Y 36
C XP.YP CONTAIN INFORMATION ABOUT THE CURVATURE OF THE Y 37
C CURVE AT THE GIVEN NODE, Y 38
C S = THE POLYGONAL ARCLENGTH OF THE CURVE. Y 39
C Y 40
C *** AK CLINE, COMM. ACM 17,4(APR.1974), 221 Y 41
C MODIFIED BY GW LUNDBERG/SAI MAY !77 Y 42
C Y 43
DIMENSION X(NPTS), Y(NPTS), XP(NPTS), YP(NPTS), TEMP(NPTS) Y 44
C Y 45
COMMON /MEXP/EXPMAX Y 46
TEMAX=-9999. Y 47
DEGRAD=3.1415926/180. Y 48
N=NPTS Y 49
SLP1=SLOPE1 Y 50
SLPN=SLOPEN Y 51
NM1=N-1 Y 52
NP1=N+1 Y 53
DELX1=X(2)-X(1) Y 54
DELY1=Y(2)-Y(1) Y 55
DELSl=eqrtT(DELXl*DELXl+DELYJ«DtLYl) Y 56
DXi=DELXl/DELSl Y 57
DY1=DELY1/DELS1 Y 58
C Y 59
C *** DETERMINE SLOPES IF NECESSARY Y 60
IF (NSLOPE) 55,45,5 Y 61
5 SLPP1=SLP1*DEGRAD Y 62
SLPPN=SLPN*DEGRAD Y o3
C Y 64
C *** SET UP RIGHT HAND SIDES OF TRIDIAGONAL LINEAR SYSTEM FOR Y 65
C XP AND YP Y 66
10 XP(1)=OX1-COS(SLPP1) Y 67
YP(1)=DY1-SIN(SLPP1) Y 68
TEMP(1)=OELS1 Y 69
S=DELS1 Y 70
C-61
-------
SUBROUTINE KURV1
IF (N.EQ.2) GO TO 20 Y 71
DO 15 1=2,NHl . Y 72
DELX2=X(I+1)-X(I) Y 73
DELY2=Y(I+1)-Y(I) Y 74
DELS2=SQRT(DELX2*DELX2+DELY2*OELY2) Y 75
DX2=DELX2/DELS2 Y 76
DY2=DELY2/DELS2 Y 77
XP(I)=DX2-DX1 Y 73
YP(I)=DY2-DY1 Y 79
TEMP(I)=DELS2 Y 80
TEMAX=AMAX1(TEMAX,TEMPCD) Y 81
DELX1=DELX2 Y 82
DELY1=DELY2 Y 83
OELS1=DELS2 Y 84
0X1=0X2 Y 85
DY1=DY2 Y 86
C Y 37
C *** ACCUMULATE POLYGONAL ARCLENGTH Y 88
S=S+DELS1 Y 89
15 CONTINUE Y 90
20 XP(N)=COS(SLPPN)-DX1 Y 91
YP(N)=SIN(SLPPN)-DY1 Y 92
C Y 93
C *** DENORMALIZE TENSION FACTOR Y 94
SIGMAP=ABS(SIGMA)*FLOAT(N-1)/S Y 95
DELT1=SIGMAP*TEMAX Y 96
IF (DELT1.LT.EXPMAX) GO TO 25 Y 97
SIGMAF=0.9*EXPMAX/TEMAX Y 98
SGN=1.0 Y 99
IF (SIGMA.LT.O.) SGN=-1.0 Y 100
SIGMA=SIGMAP*SGN*S/FLOAT(N-1) Y 101
25 CONTINUE Y 102
C Y 103
C *** PERFORM FORWARD ELIMINATION ON TRIDIAGONAL SYSTEM Y 104
DELS=SIGMAP*TEMP(1) Y 105
EXPS=EXP(DELS) Y 106
SINHS=.5*(EXPS-1./EXPS) Y 107
SINHIN=1./(TEMP(1)*SINHS) Y 108
DIAG1=SINHIN*(DELS*.5*(EXPS+1./EXPS)-SINHS) Y 109
DIAGIN=1./DIAG1 Y 110
XP(1)=DIAGIN*XPU) Y 111
YP(1)=DIAGIN*YP(1) Y 112
SPDIAG=SINHIN*(SINHS-DELS) Y 113
TE«P(1)=DIAGIN*SPDIAG Y 114
IF (N.EQ.2) GO TO 35 Y 115
DO 30 1=2,NM1 Y 116
DELS=SIGMAP*TEMP(I) Y 117
EXPS=EXP(DELS) Y 118
SINHS=.5*(EXPS-1./EXPS) Y 119
SINHIN=1./(TEMP(I)*SINHS) Y 120
DIAG2=SINHIN*(DELS*<.5*(EXPS+l./EXPS) )-SINHS) Y 121
DIAGIN=l./(DIAGl+DIAG2-SPOIAG*TEMP(I-in Y 122
XP(I)=DIAGIN*(XP(I)-SPDIAG*XP(I-1)) Y 123
YP(I)=OIAGIN*(YP(I)-SPDIAG*YP(I-1)) Y 124
SFDIAG=SINHIN*(SINHS-DELS) Y 125
TEMP(I)=DIAGIN*SPDIAG Y 126
DIAG1=DIAG2 Y 127
30 CONTINUE Y 128
35 DIAGIN=1./(DIAG1-SPDIAG*TEMP(NM1)) Y 129
XP(N)=DIAGIN*(XPIN)-SPDIAG*XP(HM1» Y 130
YP(N)=DIAGIN*(YP(N)-SPDIAG*YP(NMD) Y 131
C Y 132
C *** PERFORM BACK SUBSTITUTION Y 133
DO 40 1=2,N Y 134
IBAK=NP1-I Y 135
XP(IBAK)=XP(IBAK)-TEMPUBAK)*XP(IBAK+1) Y 136
YP(IBAK)=YP(IBAK)-TEMP(IBAK)*XP(IBAK+1) Y 137
40 CONTINUE Y 138
RETURN Y 139
45 IF (N.EQ.2) GO TO 50 Y 140
C-62
-------
SUBROUTINE KURV1
C Y 141
C *** IF NO SLOPES ARE GIVEN, USE SECOND ORDER INTERPOLATION ON Y 142
C INPUT DATA FOR SLOPES AT ENDPOINTS Y 143
DELS2=SQRT((X(3)-X(2))**2+
-------
SUBROUTINE KURV2
SUBROUTINE KURV2 (T,XS,YS,N,X,Y,XP,YP,S,SIGMA) Z 1
C. Z 2
C THIS SUBROUTINE PERFORMS THE MAPPING OF POINTS IN THE Z 3
C INTERVAL (O.,l.) ONTO A CURVE IN THE PLANE. THE SUBROUTINE Z 4
C KURV1 SHOULD BE CALLED EARLIER TO DETERMINE CERTAIN Z 5
C NECESSARY PARAMETERS. THE RESULTING CURVE HAS A PARAMETRIC Z 6
C REPRESENTATION BOTH OF WHOSE COMPONENTS ARE SPLINES UNDER Z 7
C TENSION AND FUNCTIONS OF THE POLYGONAL ARCLENGTH PARAMETER. Z 8
C Z 9
C ON INPUT— Z 10
C T = A REAL VALUE OF ABSOLUTE VALUE LESS THAN OR Z 11
C EQUAL TO 1. TO BE MAPPED TO A POINT ON THE CURVE. THE Z 12
C SIGN OF T IS IGNORED AND THE INTERVAL fO.,1.) IS MAPPED Z 13
C ONTO THE ENTIRE CURVE. IF T IS NEGATIVE THIS INDICATES Z 1*
C THAT THE SUBROUTINE HAS BEEN CALLED PREVIOUSLY (WITH ALL Z 15
C OTHER INPUT VARIABLES UNALTERED) AND THAT THIS VALUE OF Z 16
C T EXCEEDS THE PREVIOUS VALUE IN ABSOLUTE VALUE. WITH Z 17
C SUCH INFORMATION THE SUBROUTINE IS ABLE TO MAP THE POINT Z IS
C MUCH MORE RAPIDLY. THUS IF THE USER SEEKS TO MAP A Z 19
C SEQUENCE OF POINTS ONTO THE SAME CURVE, EFFICIENCY IS Z 20
C GAINED BY ORDERING THE VALUES INCREASING IN MAGNITUDE Z 21
C AND SETTIN3 THE SIGNS OF ALL BUT THE FIRST, NEGATIVE, Z 22
C N = THE NUMBER OF POINTS WHICH WERE INTERPOLATED Z 23
C TO DETERMINE THE CURVE, Z 24
C X,Y = ARRAYS CONTAINING THE X- AND Y-COORDINATES Z 25
C OF THE INTERPOLATED POINTS, Z 26
C XP,YP = THE ARRAYS OUTPUT FROM KURV2 CONTAINING Z 27
C CURVATURE INFORMATION, Z 28
C S = THE POLYGONAL ARCLENGTH OF THE CURVE, Z 29
C SIGMA = THE TENSION FACTOR (ITS SIGN IS IGNORED). Z 30
C Z 31
C THE PARAMETERS N,X,Y,XP,UP,S, AND SIGMA SHOULD BE INPUT Z 32
C UNALTERED FROM THE OUTPUT OF KURV1. Z 33
C Z 34
C ON OUTPUT— Z 35
C XS.YS = THE X- AND Y-COORDINATES OF THE IMAGE Z 36
C POINT ON THE CURVE. Z 37
C T,N,X,Y,XP,YP,S, AND SIGMA ARE UNALTERED. Z 38
C Z 39
DIMENSION X(N), Y(N), XP(N), YP(N) Z 40
C Z 41
C *** DENORMALIZE SIGMA Z 42
SIGMAP=ABS(SIGMA)*FLOAT(N-1)/S Z 43
C Z 44
C *** STRETCH UNIT INTERVAL INTO ARCLENGTH DISTANCE Z 45
TN=ABS(T*S> Z 46
C Z 47
C *** FOR NEGATIVE T START SEARCH WHERE PREVIOUSLY TERMINATED. Z 48
C OTHERWISE START FROM BEGINNING Z 49
IF (T.LT.O.) GO TO 5 Z 50
11=2 Z 51
XS=X(1) Z 52
YS=Y(1) Z 53
SUM=0. Z 54
IF (T.LE.O.) RETURN Z 55
5 CONTINUE Z 56
C Z 57
C *** DETERMINE INTO WHICH SEGMENT TN IS MAPPED Z 58
DO 15 1=11,N Z 59
DELX=X(I)-X(I-1) Z 60
DELY=Y(I)-Y(I-1) Z 61
DELS=SQRT(DELX*DELX+DELY*OELY) Z 62
IF (SUM+DELS-TN) 10,20,20 Z 63
10 SUM=SUM+DELS Z 64
15 CONTINUE Z 65
C Z 66
C *** IF ABS(T) IS GREATER THAN 1., RETtttN TERMINAL POINT ON Z 67
C CURVE Z 68
C Z 69
XS=X(N) Z 70
-------
SUBROUTINE KURV2
YS=Y(N) Z 71
RETURN Z 72
C Z 73
C *** SET UP AND PERFORM INTERPOLATION Z 74
ZQ OEL1=TN-SUM Z 75
DEL2=OELS-DEL1 Z 76
EXPS1=EXPCSIGMAP*DEL1) Z 77
SIKHS!-.5*(EXPS1-1./EXPS1) Z 78
EXPS=EXP(SIGMAP*DEL2) Z 79
SINHD2=.5*(EXPS-1./EXPS) Z 80
EXPS=EXPS1*EXPS Z 81
SINHS=.5*(EXPS-1./EXPS) Z 82
XS=(XP( I )*SINHD1+XP( 1-1 )*SIfmD2 )/SINHS+( (X( I )-XP( I) )*OEU+(X( 1-1)- Z 83
1XP(I-1))*DEL2)/DELS Z 84
YS=(YP(I)*SINHD1+YP(1-1)*SINHD2)/SINHS+((Y(I)-YP(I))*DELl+(Y(1-1)- Z 85
1YP(I-1))*DEL2)/DELS Z 66
11=1 Z 87
RETURN Z 88
END Z 89-
C-65
-------
SUBROUTINE FRAME
C
c
C
c
c
c
c
c
c
c
c
c
c
c
c
SUBROUTINE FRAME (X.Y.FRSTX.FINX.SIZX.TICX.STEPX.NDECX.FRSTY.FINY,
1SIZY,TICY,STEPY,NDECY,LBLBOT,NB,LBLLFT,NL,LBLTOP,NT,LBLRGT,NR)
*** PURPOSE -- PREPARES AN ANNOTATED FOUR SIDED FRAME
WITH LOWER LEFT CORNER AT (X,Y)
GWL/SAI MARCH 77
SEE SUBROUTINE AXES FOR DESCRIPTION OF ARGUMENTS
COMMON /PLTVEC/ HCT(20),OT(20 ) ,NH,OHC,HCG,PLTGRD,OXN,XNG,HCC,XNC,T
IICZ.DIGZ.CHRZ
*#* CALCULATE THE AXES LENGTHS
XLEN=(FINX-FRSTX)*SIZX
YLEN=(FINY-FRSTY)*SIZY
*** PLACE GRIDDED LINES ON PLOT
IF (ABS(PLTGRD).EQ.O.) GO TO 40
IF (PLTGRn.Lr.O.) GO TO 25
CALL VCHPEN (2)
S!INC=(STEPY/10.)*SIZY
ILP=FINY/STEPY+.005
ILP=ILP*10-1
STVAL=STINC
J=l
DO 10 1=1,ILP
IF (J.Eq.2) GO TO 5
CA1L PLOT (X,STVAL,3)
CALL PLOT (XLEN,STVAL,2)
STVAL=STVAL+STINC
J=2
GO TO 10
5 CALL PLOT (XLEN,STVAL,3)
CALL PLOT (X.STVAL.2)
STVAL=STVAL+STINC
J=l
10 CONTINUE
STINC=(STEPX/10.)*SIZX
ILP=FINX/STEPX+.005
ILP=ILP*10-1
STVAL=STINC
J=l
DO 20 1=1,ILP
IF (J.EQ.2) GO TO 15
CALL PLOT (STVAL,Y,3)
CALL PLOT (STVAL,YLEN,2)
STVAL=STVAL+STINC
J=2
GO TO 20
15 CALL PLOT (STVAL,YLEN.3)
CALL PLOT (STVAL.Y.2)
STVAL=STVAL+STINC
J=l
20 CONTINUE
CALL NEWPEN (1)
GO TO 40
PLOT GRIDDED LINES WITH MATRIX PLOTTER
25 IPLT=IFIX(PLTGRD)
CALL NEWPEN (IPLT)
STINC=(STEPY/10.)*SIZY
ILP=IFIX(FINY/STEPY+0.005)*10-1
STVAL=STINC
DO 30 1=1,ILP
IF (MOD(I,10).EQ.O) CALL NEWPEN (IPLT+1)
CALL PLOT (X+0.01.STVAL.3)
CALL PLOT (XLEN.STVAL.2)
IF (MOD(I,10).EQ.O) CALL NEWPEN (IPLT)
1
Z
3
4
5
6
7
8
9
AA
AA
AA
AA
AA
AA
AA
AA
AA
AA 10
AA 11
AA 12
AA 13
AA 14
AA 15
AA 16
AA 17
AA 18
AA 19
AA 20
AA 21
AA 22
AA 23
AA 24
AA 25
AA 26
AA 27
AA <.&
AA 29
AA 30
AA 31
AA 32
AA 33
AA 34
AA 35
AA 36
AA 37
AA 38
AA 39
AA 40
AA 41
AA 42
AA 4i
AA 44
AA 45
AA 46
AA 47
AA 48
AA 49
AA 50
AA 51
AA 52
AA 53
AA 54
AA 55
AA 56
AA 57
AA 58
AA 59
AA 60
AA 61
AA 62
AA 63
AA 64
AA 65
AA 66
AA 67
AA 68
AA 69
AA 70
C-66
-------
SUBROUTINE FRAME
STVAL=STVAL+STINC AA 71
30 CONTINUE AA 72
STINC=(STEPX/10.)*SIZX AA 73
ILP=IFIX(FINX/STEPX+0.005)*10-1 AA 74
STVAL=STINC AA 75
DO 35 1=1,ILP AA 76
IF (MODtl.lOKEQ.O) CALL NEWPEH (IPLT+1) AA 77
CALL PLOT (STVAL.Y-0.02,3) AA 78
CALL PLOT (STVAL,Y,3) AA 79
CALL PLOT (STVAL,YLEN,2) AA 80
IF (MOD(I,10).EQ.O) CALL HEMPEN (IPLT) AA 81
STVAL=STVAL+STINC AA 82
35 CONTINUE AA 83
CALL NEWPEN (0) AA 84
40 CONTINUE AA 85
C AA 86
C *** PLOT THE FOUR SIDES WITH ANNOTATIONS AA 87
CALL AXES
-------
SUBROUTINE AXES
SUBROUTINE AXES (X,Y,FIRSTV,FINALV,SCALE,TSTEP.ASTEP.NDEC,ANGLE,IB AB 1
1CD,NCHAR,LABEL) AB Z
C AB 3
C *** SAI SUBROUTINE AXES AB 4
C GW LUNDBERG/SAI DEC 76 AB 5
C AB 6
C X,Y = COORDINATES IN INCHES OF AXIS LINE STARTING AB 7
C POINT AB 8
C FIRSTV = STARTING VALUE FOR THE AXIS AB 9
C FINALV = ENDING VALUE FOR THE AXIS AB 10
C SCALE = INCHES/UNIT FOR FIRSTV,FINALV,TSTEP.ASTEP AB 11
C TSTEP = STEP SIZE FOR TICS AB 12
C ASTEP = STEP SIZE FOR LABELED TICS AB 13
C NDEC = FORMAT FOR LABELS — SEE SUBROUTINE NUMBER AB 14
C ANGLE = ANGLE OF AXIS IN DEGRES FROM HORIZONTAL AB 15
C IBCD = THE AXIS TITLE AS ARRAY OR HOLLERITH STRING AB 16
C NCHAR = NUMBER OF CHARACTERS IN TITLE AB 17
C ) 0, TIC MARKS, ANNOTATION AND TITLE PLOTTED ON AB 18
C CLOCKWISE SIDE OF AXIS LINE AB 19
C ( 0, ON COUNTER CLOCKWISE SIDE AB 20
C AB 21
C THIS ROUTINE WAS WRITTEN FOR A MATRIX PLOTTER — IT DOES AB 22
C NOT OPTIMIZE PEN MOVEMENTS. THE ROUTINE SHOULD BE MACHINE AB 23
C INDEPENDENT AB 24
C AB 25
C AB 26
C **# FOLLOWING ARE ADJUSTABLE ~ IF LABEL ) 0, ALL TICS ARE AB 27
C LABELED, IF LABEL = 0, THE LAST TIC IS NOT LABELED, AB 28
C IF LABEL ( 0, THE FIRST AND LAST ARE NOT LABELED AB 29
C AB 30
C *** DEFINE VARIOUS CHARACTER SIZES AB 31
COMMON /PLTVEC/ HCT(20),OT(20),NH,OHC,HCG,PLTGRD,OXN,XNG,HC1,XN1,T AB 32
1ICSIZ,DIGSIZ,CHRSIZ AB 33
C AB 34
C *** STEP 1 — DRAW AXIS AND TIC MARKS AB 35
C AB 36
C AB 37
C *** MOVE PEN TO START OF AXIS AB 33
XO=X AB 39
YO=Y AB 40
CALL PLOT fXO,YO,3) AB 41
C AB 42
C *** LOCATE THE OTHER END AND DRAW AXIS AB 43
COSA=COS(ANGLE*0.017453294) AB 44
SINA=SIN(ANSLE*0.017453294) AB 45
AXLEN=(FINALV-FIRSTV)*SCALE AB 46
Xl=XO+AXi.EN*COSA AB 47
YV-fO+AXLEN*SINA AB 48
CALL PLOT (X1.Y1.2) AB 49
C AB 50
C *** ADD THE TIC MARKS ON WRONG SIDE OF AXIS AB 51
POS=FLOAT(ISIGN(1,NCHAR)) AB 52
IF (TSTEP.EQ.O. ) GO TO 10 AB 53
NTIC=(FINALV-FIRSTV)/TSTEP+1.5 AB 74
DO 5 J=1,NTIC AB 55
C AB 56
C *** MOVE PEN TO START OF TIC AB 57
X1=XO+FLOATU-1)*TSTEP*SCALE*COSA AB 58
Y1=YO+FLOAT(J-1)*TSTEP*SCALE*SINA AB 59
CALL PLOT (X1,Y1,3) AB 60
C AB 61
C *** DRAW A TIC NORMAL TO AXIS AB 62
X1=X1+TICSIZ*POS*SINA AB 63
Y1=Y1-TICSIZ*POS*COSA AB 64
CALL PLOT (X1.Y1.2) AB 65
5 CONTINUE AB 66
C AB 67
C *** STEP 2 -- SET IN LABELED TICS ON CORRECT SIDE OF AXIS AB 68
C AB 6?
C AB 70
C-68
-------
SUBROUTINE AXES
10 IF (ASTEP.EQ.O.) GO TO 25 AB 71
NTIC=(FINALV-FIRSTV)/ASTEP+1.5 AB 72
NFRST=1 AB 73
NLST=NTIC AB 74
IF (LABEL.LE.O) NLST=NLST-1 AB 75
IF (LABEL.LT.O) NFRST=NFRST+1 AB 76
DO 15 J=NFRST,NLST AB 77
X1=XO+FLOAT(J-1)*ASTEP*SCALE*COSA AB 78
Y1=YO+FLOAT(J-1)*ASTEP*SCALE*SINA AB 79
CALL PLOT (X1.Y1.3) AB 80
C AB 81
X1=X1-TICSIZ*POS*SINA AB 82
Y1=Y1+TICSIZ*POS«COSA AB 83
CALL PLOT (X1.Y1.2) AB 84
15 CONTINUE AB 85
C AB 86
C *** STEP 3 -- ANNOTATE THE TIC MARKS AB 87
C AB 88
C AB 89
C *** DETERMINE PERPENDICULAR OFFSET TO BOTTOM OF CHARACTER AB 90
OFFSET=TICSIZ+0.03 AB 91
IF (POS.NE.l) OFFSET=OFFSET+DIGSIZ AB 92
C AB 93
C *** CALCULATE LOCATION OF FIRST CHARACTER AB 94
XO=XO-DIGSIZ*COSA AB 95
YO=YO-DIGSIZ*SINA AB 96
XO=XO-OFFSET*POS*SINA AB 97
YO=YO+OFFSET*POS*COSA AB 98
C AB 99
C *** ANNOTATE THE TIC MARKS AB 100
NFRST=1 AB 101
NLAST=NTIC AB 102
IF (LABEL.LE.O) NLAST=NLAST-1 AB 103
IF (LABEL.LT.O) NFRST=NFRST+1 • AB 104
DO 20 J=NFRST,NUST AB 105
C AB 106
C *** GET FLOATING POINT VALUE OF ANNOTATION AB 107
FPN=FIRSTV+FLOATU-1)*ASTEP AB 108
C AB 109
C *** GET LOCATION AND PLOT FPN AB 110
Xl=XO-fFLOAT(J-l)*ASTEP*SCALE*COSA AB 111
Y1=YO+FLOAT(J-1)*ASTEP*SCALE*SINA AB 112
CALL NUMBER (XI,Yl.DIGSIZ,FPN,ANGLE,NDEC) AB 113
20 CONTINUE AB 114
C AB 115
C *#* STEP 4 ~ ADD AXIS TITLE AB 116
C AB 117
C AB 118
25 IF (NCHAR.EQ.O) GO TO 30 AB 119
C *** SET TITLE OFFSET — DISTANCE FROM AXIS TO CHARACTERS AB 120
OFFSET=TICSIZ+DIGSIZ+0.10 AB 121
IF (NCHAR.LT.O) OFFSET=OFFSET+CHRSIZ AB 122
C AB 123
C *** CALCULATE TITLE SIZE AB 124
TSIZ=CHRSIZ*IABS(NCHAR) AB 125
C AB 126
C **# CALCULATE OFFSET FROM BEGINNING OF AXIS TO FIRST CHARACTER AB 127
OFF=0.5*tAXLEN-TSIZ) AB 128
C AB 129
C *** CALCULATE LOCATION OF FIRST CHARACTER AND PLOT TITLE AB 130
XO-XTOFF*COSA AB 131
YO=Y+OFF*SINA AB 132
XO=XO-OFFSET*POS*SINA AB 133
YO=YO+OFFSET*POS*COSA AB 134
CALL SYMBOL (XO,YO,CHRSIZ,IBCD,ANGLE,lABS(NCHAR)) AB 135
C AB 136
C FINISHED AB "-7
30 RETURN AB 138
END AB 139-
C-69
-------
SUBROUTINE CCMIX
SUBROUTINE CCMIX AC 1
COMMON /SUNLIT/ XJ(47,10),SIGMO(31,10),PHI(31,10),Z(10).RTCONUO), AC 2
1LAM1,INC,SLA,SLO,TZ,IY,IM,ID,ISTRT,ISTOP,IINC,IEND,SPECIE,MAXZ.ITI AC 3
2ME(16 ) ,XZ(16 ) ,K(16),JSTRT,JSTOP,SPEC<11),MNLM(11),MXLM(11),MAXL,MA AC 4
3XJ AC 5
COMMON /CNTRL/ SIG,SIGMA,INFO,NPTO,TSRT,DTIM,Z1,Z2,DCON,EHC,EXN,FL AC 6
1ST,TLST,HSPARS AC 7
COMMON /MIXING/ DSTRT,OEfro,A(5),B(5),C(5),FD(6 ), AC 8
1Y(6),AMIX(16),DL,TTMAX,SRISE,HMIN,DELH,TDIL,NMIX AC 9
C AC 10
C DETERMINE TIME OF SUNRISE (STANDARD TIME) AC 11
C AC 12
T=400. AC 13
10 CALL SOLAR(SLA,SLO,TZ,IY,IM,ID,T,D,5) AC 1*
IFtD.GE.l.) GO TO 15 AC 15
T=CLOCK(T,5) AC 16
GO TO 10 AC 17
C AC 18
C CONVERT SUNRISE TO LOACL DAYLIGHT TIME AC 19
C AC 20
15 TSR=CLOCK(T,60) AC 21
IF(TSR.LT.0600.) TSR=0600. AC 22
C AC 23
C — DETERMINE SOLAR DECLINATION AND DAY LENGTH AC 24
C AC 25
CALL SOLAR(SLA,SLO,TZ,IY,IM,ID,1200.,D,1) AC 26
0=0*3.14159/180. AC 27
ARG1=-TAN(0.67399)*TAN(D) AC 28
DL=ACOS(ARGl)/3.14159*1440. AC 29
IDL=DL AC 30
TSS=CLOCK(TSR,IDL) AC 31
C AC 32
C COMPUTE TIME MAXIMUM HEIGHT IS REACHED AC 33
C AC 34
TMAX=.70*DL AC 35
ITMAX=TMAX • AC 36
TTMAX=CLOCK(TSR,ITMAX) AC 37
C AC 38
C CONVERT ALL 2400 HOUR TIMES TO MINUTES AFTER SUNRISE AC 39
C AC 40
SRISE=(IFIX(TSR/100.)*60.)+(TSR-(IFIXCTSR/100.)#100.)) AC 41
DDSTRT=(IFIX(DSTRT/100.)*60.)+(DSTRT-(IFIX(DSTRT/100.)*100.)) AC 42
DDEND=(IFIX(DEND/100.)*60.)+(DEND-(IFIXCDEND/100.)*100.)) AC 43
DDSTRT=DDSTRT-SRISE AC 44
DDEND=DDEND-SRISE AC 45
C AC 46
C — COMPUTE HMIN AND DELTA HEIGHT AC 47
C AC 48
FD1=DDSTRT/DL AC 49
F02=DDENO/DL AC 50
DO 40 J=l,5 AC 51
IF(FDl.GE.FDtJ).AHD.FDl.LT.FDU-H)) II=J AC 52
IF(FD2.GE.FD(J).AND.FD2.LT.FD(J+D) JJ=J AC 53
40 CONTINUE AC 54
IF(FDl.GE.O.O) GO TO 25 AC 55
FD1=0.0 AC 56
11=1 AC 57
25 IFCFD2.LT.0.70) GO TO 20 AC 58
FD2=.7 AC 59
JJ=6 AC 60
20 CONTINUE AC 61
X=FD1-FDUI) AC 62
XX=FD2-FDUJ) AC 63
FG1=((A(II)*X+B(II))*X+C(II))*X+Y(II) AC 64
FG2=UAUJ)*XX+BUJ))*XX+CUJ))*XX+YUJ) AC 65
DELH=(Z2-Z1)/(FG2-FG1) AC 66
HMIN=Z1-FG1*DELH AC 67
HMAX=HMIN+DELH AC 68
C AC 69
C — COMPUTE MIXING HEIGHTS AT HOURLY INTERVALS AC 70
C-70
-------
SUBROUTINE CCMIX
C AC 71
NMIX=0 AC 72
JJSTP=JSTOP-100 AC 73
IT=JSTRT/100 AC 74
T=IT*100 AC 75
IF(OEHD.GT.TTMAX) DEND=TTMAX AC 76
DO 70 J=l,16 AC 77
IF(T.LT.DSTRT) GO TO 55 AC 7S
IF(T.GE.DEND) GO TO 60 AC 79
TT=(IFIX(T/100.)*60.) + (T-(IFIX(T)/100.)*100. ) AC 80
TT=TT-SRISE AC 81
FDT=TT/DL AC 82
IF(FDT.LT.O.O) FDT=0.0 AC 83
KK=0 AC 84
45 KK=KK+1 AC 85
IF(FOT.GE.FD(KK).AND.FDT.LT.FD(KK+1)) GO TO 50 AC 86
IF(KK.UT.S) GO TO 45 AC 87
IF(FDT.GE.FD(6H GO TO 60 AC 88
50 CONTINUE AC 89
X=FDT-FD(KK) AC 90
FG=((A(KK)*X+B(KK))*X +C(KK))*X+Y(KK) AC 91
AMIX(J)=HMIN+FG*DELH AC 92
NMIX=NMIX+1 AC 93
IF(T.GE.JJSTP) GO TO 60 AC 94
GO TO 65 AC 95
55 AMIX(J)=Z1 AC 96
NMIX=NMIX+1 AC 97
GO TO 65 AC 98
60 AMIXfJ)=Z2 AC 99
NMIX=NMIX+1 AC 100
GO TO 80 AC 101
65 CONTINUE AC 102
T=T+100. AC 103
70 CONTINUE AC 104
80 CONTINUE AC 105
C AC 106
C — SETUP DILUTION TIMES FOR SIMULATION CONTROL AC 107
C AC 103
JMIN=IFIX(DSTRT)-«IFIX(DSTRT)/100)*100) AC 109
TMIN1=FLOAT((IFIX(DSTRT)/100)*60+JMIN) AC 110
JMIN=IFIX(DEND)-«IFIX(OEND)/100)*100) AC 111
TMIN2=FLOAT((IFIX(DENO)/100)*60+JMIN) AC 112
JMIN=JSTRT-((JSTRT/100)*100) AC 113
TMIN3=FLOAT((JSTRT/100)*60+JMIN) AC 114
TMIN4=AMAX1(TMIN1,TMIN3,SRISE) AC 115
TSF?T=TMIH4-TMIN3 AC 116
IF (TSRT.GT.O.) DTIM=TMIN2-TMIN4 AC 117
IF (TSRT.LE.O.) DTIM=TMIN2-TMIN3 AC 118
IF (DTIM.LT.O.) DTIM=0. AC 119
RETURN AC 120
END AC 121-
C-71
-------
SUBROUTINE EKMA
SUBROUTINE EKMA AD 1
COMMON /INOUT/ IN.ICUT.ITAPE AD 2
COMMON /SPEC/ NS,HCSFECUO),CARB(10),RCTY{10),ALDSPC{4),ALDX(4),XN AD 3
1F(2),IH(10),INOX(2),IALD<4),FINHC(10),FALHC(10),NHC,NALD,OZIN,OZAL AD 4
2,HCIN,HCAL,XNIN,XNAL,KOZ,ALDCRB(4),FENX(2),C(81)>REACT(81),NI,PLSP AD 5
COMMON /S'JPPR/NOFR AD 6
COMMCN/EKMART/BC03,BCRAT,OELNOX,ICHTRN,IRANGE,FOZIN,FOZAL,FHCIN, AD 7
IFHCAL.FXNIN.FXNAL AD S
HOPR=1 AD 9
ERRTOL=.0005 AD 10
WRITE(IOUT,200) AD 11
KRITE(IOUT,210) OZIN,OZAL,HCIN,HCAL,XNIN,XHAL AD 12
WRITE(IOUT,220) FOZIN,FOZAL,FHCIN,FHCAL,FXNIN,FXNAL AD 13
KRITE(IGUT,230) DELNOX AD 14
WRITE(IOUT,240) AD 15
XHC=1.0 AD 16
XNOX=1.0/BCRAT AD 17
CALL SimXHC,XNOX,PRED03,l) AD 13
INUM=1 AD 19
WRITE(ICUT,250) INUM,XHC,XNOX,BCRAT,PRED03,BC03 AD 20
POIHT2=XHC AD 21
SIMKCX=XNOX AD 22
ZN2=PRED03 AD 23
IF(ABS(EC03-PRED03).LT.ERRTOL) GO TO 30 AD 24
C AD 25
C*** CALCULATE SECOND GUESS FOR MAX OZONE AD 26
C AD 27
A=(PRED03-BC03)/BC03+1 AD 23
POINT2=XHC/A AD 29
FOINT1=XHC AD 30
ZM1=PRED03 AD 31
C AD 32
C*** SUCCESSIVE APPROXIMATION OF MAX OZONE CN XHC/XNOX LINE AD 33
C AD 34
5 DO 20 1=1,9 AD 35
SIMNOX=POINT2/8CRAT * AD 36
INUM=INUM+1 AD 37
CALL SIM
-------
SUBROUTINE EKMA
XNAL=FXNAL AD 71
35 CONTINUE AD 72
C AD 73
C*** CALCULATE FIRST GUESS FOR .12 OZONE AD 74
C AD 75
GOAL=0.12 AD 76
POINT1=FOINT2 AD 77
ZN1=ZM2 AD 78
CTLNOX=SIMNOX*(1.+DELNOX/100.) AD 79
POINT2=GOAL*HC1/ZN1 AD 80
WRITE(IO'JT,270) AD SI
C AD 82
SUCCESSIVE APPROXIMATION OF .12 OZONE FCR CONSTANT NOX AD 83
AD 84
INUM=0 AD 85
DO 40 1=1,10 AD £S
Il,'L'M=IN%JM+l AD 87
CALL SIM (POINTS,CTLNOX.ZN2,1) AD 83
KRITE(ICUT,280) IN'JM,POINTS,CTLNOX.ZN2,GOAL AD 89
IF (AES(GOAL-ZN2).LT.ERRTQL) GO TO 50 AD 90
FNTNE!,'=POINTl + ( GOAL-ZN1 )*( POINT2-POINT1)/(ZN2-ZN1) AD 91
IHFNTNEW.LT.0.0) FMTHEW=0.10 AD 92
FOINT1=FOINT2 AD 93
ZN1=ZN2 . AD 94
POINT2=PNTNE!-I AD 95
40 CONTINUE AD 96
AD 97
UNSUCCESSFUL APPROXIMATION OF .12 OZONE, EXIT AD 98
C AD 99
WRITE (IOUT.13) AD 100
RETURN AD 101
50 CONTINUE AD 102
WRITE(IOUT,290) POINT2 AD 103
C AD 104
C*>* CALCULATE, PRINT 7. REDUCTION ' AD 105
C AD 106
IBASE=IFIX((HC1*100.J+0.5) AD 107
HC1=FLOAT(XBASE )/100. AD 103
IBASE=IFIX((FOINT2*100.)+0.5) AD 109
POINT2=FLOAT(IEASE)/100. AD 110
RED'JC=(1.-FOINT2/HC1)*100. AD 111
IRED=IFIX(REDUC+0.5) AD 112
WRITE (ICUT.300) IRED AD 113
IFdRANGE.GT.O. ) CALL RANGE(HC1,CTLNOX,DELNOX,BC03,IRANGE ) AD 114
C AD 115
C*** RETURN TRANSPORTED OZONE COHCENTBCRATNS TO ORIGINAL VALUES AD 116
C AD 117
IFUCHTRN.EQ.O) GO TO 60 AD 118
OZIN=OZSFC AD 119
OZAL=OZUFP AD 120
HCIH=HCSFC AD 121
HCAL=HCUPP AD 122
XNIN=XNSFC AD 123
XNAL=XNUP? AD 124
60 CONTINUE AD 125
NCFR=0 AD 126
RETURN AD 127
C AD 128
FORMATS AD 129
AD 130
11 FORMAT (IX,'UNABLE TO FIND MAX OZONE IN 10 TRIES, EXITING.') AD 131
13 FORMAT (IX,'UNABLE TO FIND OZONE GOAL IN 10 TRIES, EXITING.') AD 132
200 FCRMATdHl.'EKMA HC REDUCTION CALCULATION'///) AD 133
210 FORMAT!IX,'TRANSPORTED CONCENTRATIONS'//, AD 134
11X,24X,3C'SURFACE',2X,'ALOFT1,3X)/ AD 135
21X.25X,'OZONE1,3X,'OZONE',6X,'HC',6X,'HC1,6X,'NOX',5X,'NOX'// AD 136
36X,'FRE-CCNTROL',9X,F5.3,3X,F5.3,4X,F5.3,3X,F5.3,4X,F5.3,3X,F5.3/) AD 137
220 FCSMAT(6X,'FOST-CCNTROL',aX,F5.3,3X,F5.3,4X,F5.3,3X,F5.3,4X,F5.3, AD 138
13X.F5.3) AD 139
230 FORMAT!//1X,1PERCENT NOX CHANGE BETWEEN PRE- AND POST-1 AD 140
C-73
-------
SUBROUTINE EKMA
i,-CONTROL:',F5.D AD 141
240 FORMAT(//1X,'ITERATIONS FOR PRE-CONTROL POINT:1// AD 142
18X,'INITIAL',2X,'INITIAL',2X,'HC/NOX1,2X,'PREDICTED',2X AD 143
2,'FRE-CONTROL'/,2X,'NUM1,5X,'HC1,7X,'NOX',5X,'RATIO',4X AD 144
3,'OZONE',7X,'OZCNE'/) AD 145
250 FORMAT(2X,I2,4X,F5.2,4X,F5.3,4X,F5.1,4X,F6.4,6X,F6.4) AD 146
260 FORMAT(/&X,'***PRE-COHTROL HC =',1X,F5.2) AD 147
270 FORMATC//1X,'ITERATIONS FOR POST-CONTROL POINT:'// AD 148
18X,'INITIAL',2X,'INITIAL',3X,'PREDICTED1,3X,'POST-CONTROL1/ AD 149
22X,'N'JMI ,5X,'HC1 ,7X,'NOX1 ,7X,'OZONE1 ,SX,'OZONE'/) AO 150
280 FCRMATC2X,I2,4X,F5.2,4X,F5.3,6X,F6.4,7X,F6.4) AD 151
290 FCRMATC/6X,'***POST-CCNTROL HC =',1X,F5.2) AD 152
300 FCRMAT(///10X,1EKMA HC REDUCTION =' ,1X,I4, "/.' ) AD 153
EKD AD 154-
C-74
-------
SUBROUTINE RANGE
SUBROUTINE RANGE(HC1,CTLNOX,DELNOX,OZ1,IRANGE) AE 1
COMMON /INOUT/ IN,IOUT,ITAPE AE 2
DIMENSION OZOUT(ll) AE 3
WRITE(IOUT,5) AE 4
KRITEUOUT.IO) AE 5
DELHC=10.0 AE 6
DO 100 K=l,ll AE 7
DELHC=DELHC-10. AE 8
HC2=HC1*(1.0+OELHC/100.) AE 9
CALL SIM(HC2,CTLNOX,ZN,1) AE 10
DEL03=UZN-OZ1)/OZ1>*100. AE 11
WRITE(IOUT,20) HC2,CTLNOX,ZN,DELHC,DELNOX,DEL03 AE 12
OZOUT(K)=ZN AE 13
100 CONtlNUE AE 14
IF (IRANGE.EQ.2) WRITE(11,30) OZOUT AE 15
RETURN AE 16
5 FORMATUHl.'EKMA PREDICTED CHANGES IN OZONE1) AE 17
10 FORMAT(///12X,'HC',6X,'NOX1,6X,1031,4X,1X-CHG HC',3X, AE 18
»'X-CHG NOX1 ,3X,'X-CHG 03V) AE 19
20 FORMATUOX,F6.3,3X,F5.3,3X,F5.4,4X,F6.1,5X,F6.1, AE 20
*6X,F6.1) AE 21
30 FORMAT(11F5.3) AE 22
END AE 23-
C-75
-------
FUNCTION CIRC
FUNCTION CIRC (TI.XI.YI) AF 1
DIMENSION XK3), YK3) AF 2
DX=XI(3)-XI(1) AF 3
DY=YI(3)-YIU) AF 4
X=(XI(2)-XI(1))/DX AF 5
Y=(YI(2)-YI(I))/DY AF 6
T=(TI-XI(1))/DX AF 7
IF (X.EQ.Y) GO TO 10 AF 8
B=((X*X+Y*Y)*0.5-X)/(Y-X) AF 9
TT=SQRT{B*B+2.*T*(1.-B)-T*T) AF 10
CX=B*TT AF 11
IF (X.GT.Y) CX=B-TT AF 12
IF (CX.LT.O..CR.CX.GT.l. ) GO TO 10 AF 13
5 CIRC=CX*DY+YI<1) AF 14
RETURN AF 15
10 CX=T*Y/X AF 16
IF (T.GT.X) CX=(T-X)*(1.-Y)/(1.-X)+Y AF 17
GO TO 5 • AF 18
END AF 19-
C-76
-------
SUBROUTINE EMISS
c
c
c
c
c
c
c
r
\f
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
SUBROUTINE EMISS
1 7
1 /
13
19
O rt
cU
21
22
23
24
25
26
27
28
29
30
31
T *9
oZ
33
T/.
JCt
35
36
37
38
39
40
41
A 0
*+ci
43
44
AC
H^
46
47
48
49
Eft
7U
51
CO
3 C.
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
C-77
-------
SUBROUTINE EMISS
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
r
70 CONTINUE
STAIR DETERMINES THE COEFFICIENTS OF THE FOURTH DEGREE
POLYNOMIAL F(X)= ( ( ( AX+B 1X+OX+D )X+E SUCH THAT F(X) IS
TWICE DIFFERENTIABLE ACROSS HISTOGRAM INTERVAL EDGES,
MATCHES IN VALUE AT THE INTERVAL EDGES, AND SUCH THAT
THE INTEGRAL OF F(X)DX = THE HISTOGRAM INTERVAL HEIGHT
TIMES THE INTERVAL WIDTH (DELX). THE CROSSOVER POINTS
(THE VALUES OF F(X) AT THE EDGES BETWEEN TWO HISTOGRAM
INTERVALS) ARE THE KNOWNS. STAIR SOLVES FOR THE VALUES
OF F'(X) AT THE EDGES GIVEN THE BOUNDARY CONDITIONS OF
F'(X) AT THE TWO ENDS OF EACH STAIR EVALUATION. HISFIT
STEPS THROUGH THE HISTOGRAM IN ONE PASS, BREAKING THE
HISTOGRAM INTO STAIR EVALUATIONS OF 1 OR MORE INTERVALS.
NOTE THAT THE CURVE DEFINED BY THE COEFFICIENTS IS ONLY
ONCE DIFFERENTIABLE AT EDGES BETWEEN STAIR EVALUATIONS.
STAIR EVALUATIONS MAY NOT CROSS POINTS WHERE F'(X) IS
KNOWN OR FIXED E.G. ZERO POINTS ( DY/DX = 0), OR FORCE
FITS (WHERE UNRESTRAINED STAIR FITS RESULT IN FUNCTIONS
WITH NEGATIVE VALUES WHICH CORRESPONDS TO NO PHYSICAL
REALITY). AT THESE EDGES, THE CURRENT STAIR EVALUATION
IS TERMINATED AND A NEW STAIR EVALUATION STARTED. IF
THE RATIO OF ADJACENT HISTOGRAM VALUES IS LESS THAN 5/1
A CROSSOVER POINT IS PICKED ACCORDING TO THE HEURISTIC:
Y = (RATIO ** 0.50)*(SMALLER VALUE)
WHERE 5.001 .GT. RATIO .GT. 1. FOR THE SPECIAL CASE OF A VALUE
WHICH HAS A ZERO VALUE TO ONE SIDE, THE OTHER EDGE
CROSSOVER IS: Y = (RATIO ** 0.57)*(SMALLER VALUE)
WHERE 5.001 .GT. RATIO .GT. 1. IF THE RATIO OF ADJACENT
HISTOGRAM VALUES EXCEEDS 5 A FIT IS FORCED BY APPROX-
IMATING A RATIO-OF-5 FIT THROUGH THE SMALLER VALUE.
WHILE (INDEX .LE. N)
90 IF (INDEX .GT. N) GO TO 95
STEP THROUGH HISTOGRAM, BREAK INTO STAIR EVALUATIONS
IF (H(INDEX) .LE. 0.0)
IF (H( INDEX) .GT. 0.0) GO TO 100
THEN
CASE OF NEGATIVE OR ZERO HEIGHT
STOPY = INDEX
FIT A SPLINE TO THIS POINT
CALL STAIR(ST ARTY, STOPY, DELX, H.Y.DYDX.CF)
LOOK FOR NEXT NON ZERO H
WHILE ((H(INDEX) .LE. 0.0) .AND. (INDEX .LT. N))
120 IF ((H(INDEX) .GT. 0.0) .OR. (INDEX .GE. N))
1 GO TO 125
INDEX = INDEX + 1
GO TO 120
125 CONTINUE
AG 71
AG 72
AG 74
AG 75
AG 76
AG 77
AG 78
AG 79
AG 80
AG 81
AG 82
AG 83
AG 84
AG 85
AG 66
AG 87
AG 88
AG 89
AG 90
AG 91
AG 92
AG 93
AG 94
AG 95
AG 96
AG 97
AG 98
AG 99
AG 100
AG 101
AG 102
AG 104
AG 105
AG 106
AG 107
AG 109
AG 111
AG 112
AG 113
AG 114
AG 115
AG 117
AG 119
AG 120
AG 121
AG 123
AG 125
AG 126
AG 127
AG 129
AG 131
AG 132
AG 133
AG 134
AG 135
AG 136
AG 137
AG 138
C START NEW STAIR EVALUATION AG 140
C-78
-------
SUBROUTINE EMISS
<_
c
c
r
w
c
c
c
c
c
r
i»
C
C
c
c
c
c
c
r
\f
C
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
STARTY = INDEX
GOTO BOTTOM OF LOOP
60 TO 105
IT IS GUARANTEED THAT H(INDEX-l) AND H(INDEX) ARE .GT. 0.0
100 CONTINUE
ELSE
HRATIO = H( INDEX) / H(INOEX-l)
EXFONE= 0.50
IF (HRATIO .GE. 1.0)
IF (HRATIO .LT. 1.0) GO TO 140
THEN
BEGIN UP STEP
SIGNDY =1.0
S«ALLV= H(INDEX-l)
IF ((INDEX .EQ. (MODE1I + 1M .AND. (MODE .EQ. 0))
IF ((INDEX .NE. (MODE1I + D) .OR. (MODE .NE. 0))
1 GO TO 160
THEN
EXPONE =0.57
GO TO 165
160 CONTINUE
ELSE
IF .NOT. ((INDEX .EQ. 2) .AND. (MODE .NE. 0))
IF ((INDEX .EQ. 2) .OR. (MODE .NE. 0)) GO TO 170
THEN
IF (H(INDEX-2) .EQ. 0.0)
IF
-------
SUBROUTINE EMISS
IF (HUNDEX+1) .NE. 0.0) GO TO 200 AG 211
C THEN AG 212
EXPONE = 0.57 AG 213
200 CONTINUE AG 214
195 CONTINUE AG 215
C AG 216
C AG 217
C END DOWN STEP AG 218
C AG 219
c AG ::o
185 CONTINUE AG 221
C IF (HRATIO .LT. RATLIM) AG 222
IF (HRATIO .GE. RATLIM) GO TO 205 AG 223
C THEN AG 224
Y(INDEX) = (HRATIO ** EXPONE) * SMALLV AG 225
GO TO 210 AG 226
C ELSE AG 227
205 CONTINUE AG 228
Y(INDEX) = FORRAT * SMALLV AG 229
DYDX(INDEX) = SIGNDY * FORCDY * (Y(INDEX) / DELX) AG 230
STOPY = INDEX AG 231
CALL STAIRtSTARTY,STOPY,DELX,H,Y,DYDX,CF) AG 232
STARTY = INDEX AG 233
210 CONTINUE AG 234
C AG 235
C- AG236
C BOTTOM OF LOOP, EXAMINE NEXT INTERVAL AG 237
C AG238
C AG 239
105 CONTINUE AG 240
INDEX = INDEX +1 AG 241
GO TO 90 AG 242
95 CONTINUE AG 243
C ENDWHILE (INDEX .LE. N) LOOP AG 244
C AG 245
C . AG246
C FOR THE FINAL SPLINE PORTION, CALL STAIR. AG 247
C AG248
C AG 249
C IF (STARTY .NE. (N+D) .AND. (H(N) .NE. 0.0) AG 250
IF ((STARTY .EQ. (N+D) .OR. (H(N) .EQ. 0.0)) AG 251
1 GO TO 220 AG 252
C THEN AG 253
STOPY = N + 1 AG 254
CALL STAIR(STARTY,STOPY,DELX,H,Y,DYDX,CF) AG 255
220 CONTINUE AG 256
IF (1 .GT. FIVEN) GO TO 255 AG 257
DO 260 K = 1 , FIVEN AG 258
COEFF(K) = CF(K) AG 259
260 CONTINUE AG 260
255 CONTINUE AG 261
RETURN AG 262
END AG 263-
C-80
-------
SUBROUTINE CONVT
C
C
C
C
C
C
C
C
SUBROUTINE CONVT (NUM.L)
SUBROUTINE CONVT CONVERTS INTEGERS TO ALPHANUMERIC FOR
PRINTING
ASSUMES VALUE OF INTEGER IS POSITIVE
DIMENSION L(3), JOIGIT(IO)
DATA JDIGnYlHO,lHl,lH2,lH3,lH4,lH5,lH6,lH7,lH8,lH9/
DATA JBLANK/1H /
N=HUM
DO 5 1=1,3
L(I)=JBLANK
5 CONTINUE
DO 10 K=l,3
I=4-K
NEXT=N/10
NDX=(N-NEXT*10)+1
L(I)=JDIGIT(NDX)
NK=K
IF (NEXT.LE.O) GO TO 15
N=NEXT
10 CONTINUE
15 RETURN
END
12
13
AH
AH
AH
AH
AH
AH
AH
AH
AH
AH 10
AH 11
AH
AH
AH 14
AH 15
AH 16
AH 17
AH 18
AH 19
AH 20
AH 21
AH 22
AH ?3
AH 24
AH
AH
25
26
AH 27
AH 28
AH 29
AH 30-
C-81
-------
SUBROUTINE EDGMX
SUBROUTINE EDGMX (X,Y,N,X«X,WX,L) AI 1
DIMENSION X(N), Y(N) AI 2
LL=N-1 AI 3
IF (N.LE.2) GO TO 10 AI 4
NGO=0 AI 5
DO 5 1=2,LL AI 6
IF (Y(I).GT.Y(I-l)) GO TO 5 AI 7
IF (Y(I).GT.Y(I+D) L=I+1 AI 8
IF CYU).GT.Y(I+in NGO=1 AI 9
GO TO 6 AI 10
5 CONTINUE AI 11
6 CONTINUE AI 12
IF (KGO.EQ.l) GO TO 15 AI 13
10 XMX=X(H) AI 14
YMX=Y(N) AI 15
L=N-1 AI 16
RETURN AI 17
15 L=MAXO(L-1,3) AI 13
X21=X(L-l)-X(L-2> AI 19
X221=X(L-l)*X(L-l)-X(L-2)*X(L-2) AI 20
X32=XCL)-X(L-1) AI 21
XL2=X(L)*X(L) AI 22
Y21=Y(L-l)-Y(L-2) AI 23
C=(Y21/X21-C Y(L)-Y(L-l)J/X32)/(X221/X21-(XL2-X(L-l )*X(L-l)J/X32) AI 24
B=(Y21-C*X221)/X21 AI 25
A=Y(L)-B*X(L)-C*XL2 AI 26
XMX=-B*0.5/C AI 27
YMX=A+B*XMX+C*XMX*XMX AI 28
IF (XMX.Cc.0.999*X(U) YMX=Y(L> AI 29
IF r.rtX.EQ.Yd.)) XMX=XU1 AI 30
IF (XMX.LT.1.001*X(L-2).AND.L.GT.3) GO TO 15 AI 31
L=L-1 AI 32
IF (XMX.LE.X(U) L=L-1 AI 33
RETURN AI 34
END AI 35-
C-82
-------
SUBROUTINE STAIR
SUBROUTINE STAIR(KSTRT,KSTOP,DELX,H,Y,DYDX,CF)
TO HANDLE MORE THAN 16 HISTOGRAM INTERVALS (ASSUMING N IS 8INTERVALS)
THE DIMENSIONED VARIABLES BELOW MUST HAVE THE FOLLOWING DIMENSIONS
H = N; Y,DYDX,A,B,C = N+15 CF = 5*H
SEE ALSO DIMENSION STATEMENT IN HISFIT
DIMENSION A(17), 8(17), C(17), CF(80), Y(17), DYDXU7), H(16)
REALMS A, B, C, R, SI, 32, Tl, T2, Ul, U2, VI, V2, Z
REAL*8 Y, DYDX, CF
REAL DELX, H
INTEGER K,KSTRT,KSTOP,KSTOP1, Jl, J2
INTEGER KSTOP2, KDOWN, KSTRT1
KSTOP1 = KSTOP - 1
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
COMPUTE COEFFICIENTS FOR
FK(X)=AK(X-XK)4 + BK(X-XK)3 + CK(X-XK)2 + DK(X-XK) +EK
STORE IN ARRAY CF AS:
CF 5*K =A; CF 5*K-1 =B5 CF 5*K-2 =CJ
CF 5*K-3 =D=YKP CF 5*K-4 =E=YK
CF 5*K-3 =D=YKP CF 5*K-4 =E=YK
FOR K=KSTRT TO KSTOP (WHERE KSTOP-KSTRT IS THE NUMBER
OF INTERVALS. )
KSTRT IS THE LEFT EDGE OF THE STARTING HISTOGRAM BAR
KSTOP IS THE RIGHT EDGE OF THE STOPPING HISTOGRAM BAR
IF (KSTRT .GT. KSTOP1) GO TO 300
DO 295 K = KSTRT , KSTOP1
CF(5*K-4)=Y(K)
295 CONTINUE
300 CONTINUE
SET UP AND SOLVE MATRIX
C
C
C
C
C
C
335
345
315
B(KSTRT)=0.0
C(!'J|RT)=0.0
IF ( KSTRT .GT. KSTOP1) GO TO 310
DO 305 K = KSTRT , KSTOP1
J2=K+1
U2=1.0/(DELX)
A(K)=U2
V2=U2*U2
S2=20.0*V2*H(K)
T2=8.0*V2*(Y(K)+Y(J2))
IF (K.GT.KSTRT)
IF (K.LE.KSTRT) GO TO 315
THEN
Z=1.0/(3.0*(U1+U2)+U1*B(J1))
B(K)= -U2*Z
R=S2-S1-T2+T1+4.0*(V1-V2)*Y(K)
IF (K.EQ.KSTRT+1)
IF (K.NE.KSTRT+1) GO TO 335
THEN
R=R+U1*DYDX(KSTRT)
CONTINUE
IF (K.EQ.KSTOP1)
IF (K.NE.KSTOP1) GO TO 345
THEN
R=R+U1*DYDX(KSTOP)
CONTINUE
C(K)=Z*(R+U1*C(J1))
CONTINUE
J1=K
1
Z
3
4
5
6
7
8
9
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ 10
AJ 11
AJ 12
AJ 13
AJ 14
AJ 15
AJ 16
AJ 17
AJ 18
AJ 19
AJ 20
AJ 21
AJ 22
AJ 23
AJ 24
AJ 25
AJ 26
AJ 27
AJ 28
AJ 29
AJ 30
AJ 31
AJ 32
AJ 33
AJ 34
AJ 35
AJ 36
AJ 37
AJ 38
AJ 39
AJ 40
AJ 41
AJ 42
AJ 43
AJ 44
AJ 45
AJ 46
AJ 47
AJ 48
AJ 49
AJ 50
AJ 51
AJ 52
AJ 53
AJ 54
AJ 55
AJ 56
AJ 57
AJ 58
AJ 59
AJ 60
AJ 61
AJ 62
AJ 63
AJ 64
AJ 65
AJ 66
AJ 67
AJ 68
AJ 69
AJ 70
C-83
-------
SUBROUTINE STAIR
c
c
c
c
c
c
c
c
c
c
c
U1=U2
V1=V2
S1=S2
T1=T2
305 CONTINUE
310 CONTINUE
BACK SUBSTITUTION
IF (KSTOP-KSTRT.GT.l)
IF (KSTOP-KSTRT.LE.l) GO TO 355
THEN
DYDX( KSTOP-1 )=C( KSTOP-1 )
KSTOPP=KSTOP-1
CF ( 5*KSTOPP-3 >=DYDX( KSTOPP )
IF (KSTOP-KSTRT.GT.2)
IF (KSTOP-KSTRT.IE.2) GO TO 375
THEN
KSTOP2 = KSTOP - 2
KSTRT1 = KSTRT + 1
DO 330 K = KSTRT1 , KSTOP2
KDOWN = KSTRT1 + KSTOP2 - K
DYDXf KDOWN) = C(KDOHN) - B( KDOWN) * DYDX(KDOWN+1 )
CF(5*KDOWN-3) = DYDX(KDOWN)
380 CONTINUE
375 CONTINUE
355 CONTINUE
CF( 5*KSTRT-3 )=DYDX( KSTRT )
COMPUTE 2ND, 3RD, 4TH ORDER COEFFICIENTS
IF ( KSTRT .GT. KSTOP1 ) GO TO 400
DO 395 K = KSTRT , KSTOP1
J2=K+1
Z=A(K)
CF(5*K-2)= 1.5*Z*(-3.0*DYDX(K) + DYDXU2) + Z*(-8.0*
1 Y(J2) - 12.0*Y(K) + 20.0*H(K)))
CF(5*K-1)= -4.0*Z*Z*(-1.5*DYOX(K) + DYDXU2) + Z*(-7.0*
1 YU2) - 8.0*Y(K) +15.0*H(K)))
CF(5*K) = 5.0*Z*Z*Z*(0.5*(DYDX(J2)-DYDX(K)) - 3.0»Z*
I (YU2) + Y(K) - 2.0*H(K)))
395 CONTINUE
<>00 CONTINUE
RETURN
END
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
AJ
71
72
73
74
75
76
77
73
7Q
/ 7
An
ou
81
OO
OC
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
105
T nA.
1UO
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121-
C-84
-------
SUBROUTINE REPRT
SUBROUTINE REPRT AK 1
COMMON /CALC/ NR,KR(200,7),A(200),S(200),R(200),ITYPE(200),IA(80 ), AK Z
1JA(2500).DILUT,TEMP,ERR,START,STOPP,SPECIS(81),TPRNT,TSTEP AK 3
COMMON /CNTRL/ SIG,SIGMA,INFO,NPTO,TSRT,DTIM,Z1,Z2,DCON,EHC,EXN,FL AK 4
1ST,TLST,NSPARS AK 5
COMMON /SPEC/ NS,HCSPEC(10),CARB(10),RCTY(10),ALDSPC(4),ALDX(4),XN AK 6
1F(Z ) ,IH(10 ) ,INOX(2),IALD(4),FINHC(10),FALHCf10).NHC.NALD,OZIN,OZAL AK 7
2,HCIN,HCAL,XNIN,XNAL,KOZ,ALDCRB(4),FENX(2),C(81),REACT<81),NI,PLSP AK 8
COMMON /PHOTON/ CF(45,3) ,P(16,9),IPH(9),IP,RFCT(9),KFACT,KPH(9) AK 9
COMMON /EMIS/ NEM,EMU6 ),EttHC< 16 ) ,EMNOX( 16 ) ,ESRTU), ESTOP, ESLP.EHS AK 10
1LP,ENSLP,EC(80),ECHC(80),ECXN(80) AK 11
COMMON /MIX/ MMIX,BMIX(16),STRM,STOPM,OC(45),TSTART AK 12
COMMON /INOUT/ IN.IOUT.ITAPE AK 13
COMMON /TITL/ ITTL(IS) AK 14
COMMON /NEED/ HC,XN,NL,NRTO,RTO(20),OZP(20),OZN(8,20),RHO(8,20),MR AK 15
1,OC(4),OS(2),HCS,XHS,LS,HCLL(8),XNLL<8) AK 16
COMMON /HOUR/ OZM,NGO,TM AK 17
COMMON /PUTVEC/ HCT(20),OT( 20),NT,OHC,HCG,PLTGRD,OXN,XNG,HC1,XN1,T AK 18
IICZ.DIGZ.CHRZ AK 19
COMMON /VVLBL/ FCTR,DIST,CHRSIZ,NNCHR,OZBL AK 20
COMMON /ALOFT/FALALD(4) AK 21
COMMON /SURFAC/FINALD14) AK 22
COMMON /SUNLIT/ XJ147.10),SIGMO(31,10),PHI(31,10),Z(10),RTCON(10 ), AK 23
1LAM1,INC,SLA,SLO,TZ,IY,IM,ID,ISTRT,ISTOP,IINC,IENO,SPECIE,MAXZ.ITI AK 24
2ME(16),XZ(16),K(16),JSTRT,JSTOP.SPECC11),MNLM(11),MXLM(11),MAXL,MA AK 25
3XJ AK 26
COMMON /MIXING/ DSTRT.DEND,AHC(5),BMC(5),CMC(5),FO(6>,FG(6), AK 27
1AMIX(16),DL,TTMAX,SRISE,SRMIN,DELH,TDIL,NMIX AK 28
COMMON /WRTREP/PLACE(6),EMMHC(16),EMMNX(16),MEMFLG,HCB,XNXB,HINIT AK 29
DIMENSION ITMIXU6) AK 30
INTEGER HCSPEC.ALDSPC,PLACE AK 31
WRITE (ICUT.315) (ITTL(I),1=1,18) AK 32
KSTOP=JSTOP-100 AK 33
WRITE (IOUT.340) PLACE,SLA,SLO,TZ,IM,ID,IY,JSTRT,KSTOP AK 34
NOON=SPECIE AK 35
IF (INFO.EQ.-l) WRITE UOUT.345) NOON AK 36
IF(BMIX(1).GT.O.) GO TO 10 AK 37
WRITE (IOUT.350) Z1,Z2,DSTRT,DEND AK 38
ITMIX(1)=JSTRT AK 39
DO 6 J=2,NMIX AK 40
6 ITMIX(J) = ITMIXU-1) + 100. AK 41
WRITE(IOUT,530) (ITMIX(J),J=1,NMIX) AK 42
WRITE(IOUT,535) (AMIXCJ),J=1,NMIX) AK 43
GO TO 15 AK 44
10 MMIX1=MMIX-1 AK 45
WRITE (IOUT.430) (1,1=1,MMIX1) AK 46
WRITE (IOUT.435) (BMIX(I),I=1,MMIX) AK 47
15 WRITE (IOUT.400) AK 48
IF (NHC.NE.O) WRITE (IOUT.360) (HCSPECtI).RCTYtI),I=1,NHC) AK 49
IF (NALD.NE.O) WRITE (IOUT.360) (ALDSPC(I),ALDX(I) ,I=1,NALD ) AK 50
WRITE (IOUT.405) XNF(l) AK 51
IF (NHC.EQ.O) WRITE (IOUT.390) AK 52
IF (NALD.EQ.O) WRITE (IOUT,395) AK 53
IF(OZIN+HCIN+XNIN.GT.O..OR.OZAL+HCAL+XNAL.GT.O.) WRITE CIOUT,445) AK 54
IF (OZIN+HCIN+XNIN.GT.O.) WRITE (IOUT.365) OZIN,HCIN,XNIN AK 55
IF (NI.NE.O.ANO.(OZIN+HCIN+XNIN.LE.O..OR.OZAL+HCAL+XNAL.LE.O. )) AK 56
1WRITE (IOUT.445) AK 57
IF (NI.NE.O) WRITE (IOUT.410) (REACTCI),ClI),I=1,NI) AK 58
IF (OZAL+HCAL+XNAL.GT.O.) WRITE (IOUT.370) OZAL,HCAL,XNAL AK 59
IEM=IABS(NEM) AK 60
IF(MEMFLG.NE.l) GO TO 40 AK 61
WRITE(IOUT,610) HINIT,HCB,XNXB,(I,I=1,IEM) AK 62
WRITE(IOUT,611) (EMMHC(I),I=1,IEM) AK 63
WRITE(IOUT,612) (I,I=1,IEM) AK 64
WRITE(IOUT,613) (EMMNX(I),I=1,IEM) AK 65
40 CONTINUE AK 66
IF (NEM.GT.O) WRITE (IOUT.375) (I,I=1,NEM) AK 67
IF (NEM.GT.O) WRITE (IOUT,380) (EM(I),I=1,NEM) AK 68
IF (NFH.lE.-l.AND.EMHC(l).GE.-O.) WRITE (IOUT.415) (I,I=1,IEM) AK 69
IF (NEM.LE.-l.AND.EMHC(i;.GE.-0.0) WRITE (IOUT.420) (EMHCtI),1=1,1 AK 70
C-85
-------
SUBROUTINE REPRT
1EM) AK 71
IF (NEM.LE.-l.AND.EMNOX(l).GE.-O.) WRITE (IOUT.425) (I,I=1,IEM) AK 72
IF (NEM.LE.-l.AND.EMNOX(l).GE.-O.) WRITE (IOUT.420) (EMNOX(I),1=1, AK 73
HEM) AK 74
315 FORMAT (1H1,//,40X,18A4) AK 75
340 FORMAT (1HO,//,40X,40HPHOTOLYTIC RATE CONSTANTS CALCULATED FOR,/// AK 76
1,49X,6A4,///,40X,9HLATITUDE ,F10.3,//,40X,10HLONGITUOE ,F10.3,//,4 AK 77
20X.9HTIME ZONE,F7.1,//,40X,5HDATE ,5X,3(I4.3X),//,40X,5HTIME ,7X,I AK 78
34,3X,2HTO,3X,I4,5X,19HLOCAL DAYLIGHT TIME) AK 79
345 FORMAT (1HO,39X,10HSOLAR NOON,17) AK 80
350 FORMAT (1HO,//,40X,39HDILUTION DETERMINED FROM THE FOLLOWING ,//,4 AK 81
10X.17HINVERSION HEIGHTS,5X,7HINITIAL,F7.0,5X,5HFINAL,4X,F7.0,/Y,40 AK 82
2X.7HTIMING ,15X,5HSTART,F9.0,5X,4HSTOP,4X,F8.0) AK 83
360 FORMAT ((1HO,39X,8HINITIAL ,8X,3(A4,9H FRACTION,F6.3,3X))) AK 84
365 FORMAT (/.40X.13HSURFACE LAYER,9X,5HOZONE,F8.3,6X,11HHYDROCARBON,F AK 85
17.3,4X,3HNOX,F10.3,4H PPM) AK 86
370 FORMAT (/,40X,5HALOFT,17X,5HOZONE,F8.3,6X,11HHYDROCARBON,F7.3,4X,3 AK 87
1HUOX.F10.3.4H PPM) AK 88
375 FORMAT (1HO,//,40X,50HCONTINUOUS EMISSIONS (EXPRESSED AS THE FRACT AK 89
1ION OF,//,40X,54HINITIAL NON-BACKGROUND CONCENTRATION EMITTED PER AK 90
2HOUR),//,40X,4HHOUR,3X,1016,/,47X,716) AK 91
380 FORMAT (1HO,39X,8HFRACTICN,10F6.3,/,48X,7F6.3) AK 92
390 FORMAT (1HO,39X,42HTHERE ARE NO HYDROCARBONS IN THE MECHANISM) AK 93
395 FORMAT (1H0.39X.39HTHERE ARE NO ALDEHYDES IN THE MECHANISM) AK 94
400 FORMAT (//) AK 95
405 FORMAT (1HO,39X,7HN02/NOX,6X,F6.3) AK 96
410 FORMAT ((1H0.39X.13HSURFACE LAYER,9X,A4,1X,F8.3,6X,A4,SX,F9.3 AK 97
1,4X,A4,F9.3,4H PPM)) AK 98
415 FORMAT (1HO,//,40X,57HCONTINUOUS EMISSIONS (EXPRESSED AS THE FRACT AK 99
ION OF INITIAL,//,40X,58HNON-BACKGROUND HYDROCARBON CONCENTRATION E AK 100
2MITTED PER HOUR),//,45X,4HHOUR,3X,1116,/,52X,416) AK 101
420 FORMAT (1HO,44X,8HFRACTICH,11F6.3,/,53X,4F6.3,/,53X,F6.3) AK 102
425 FORMAT (1HO,//,40X,58HCONTINUCUS EMISSIONS (EXPRESSED AS THE FRACT AK 103
1ION OF INITIAL,//.40X.50HNON-BACKGROUND NOX CONCENTRATION EMITTED AK 1C4
2PER HOUR),//,45X,4KHOUR,3X,1116,/,52X,416) AK 105
430 FORMAT (1HO,//,40X,39HDILUTION DETERMINED FROM THE FOLLOWING ,//,4 AK 106
10X,46HMIXING HEIGHTS (AT THE BEGINNING OF EACH HOUR),//,40X,4HHOUR AK 107
2,9X,1HO,9I8,/,46X,6I8) AK 108
435 FORMAT (1HO,39X,8HHEIGHT ,10F8.1,/,48X,6F8.1) AK 109
445 FORMAT (1HO,//,40X,26HTRANSPORTED CONCENTRATIONS ) AK 110
530 FORMAT(1HO,//40X,46HMIXING HEIGHTS (AT THE BEGINNING OF EACH HOUR) AK 111
1,//,40X,4HTIME,3X,10I7/47X,6I7) AK 112
535 FORMAT(1HO,39X,6HHEIGHT,2X,10F7.1/48X,6F7.1) AK 113
610 FORMAT(1HO,//,40X,46HEMISSION FRACTIONS COMPUTED FROM THE FOLLOWIN AK 114
1G//42X.32HINITIAL MIXING HEIGHT (METERS) :,2X,F6.1//42X, AK 115
233HINITIAL HC CONCENTRATION (PPMC) :,2X,F5.2//42X, AK 116
333HINITIAL NOX CONCENTRATION (PPM) :,2X,F5.3//42X, AK 117
436HHOURLY EMISSION DENSITIES (KG/KM2) :,//45X, AK 118
54HHOUR.2X,10(15,3X)/51X,5(15,3X)) AK 119
611 FORMAT(1HO,44X,4HHC ,10F8.1/49X.SF8.1) AK 120
612 FORMATdHO,44X.4HHOUR.2X,10(15,3XJ/51X,5(15,3X)) AK 121
613 FORMATUHO,44X,4HNOX ,10F8.1/49X,5F8.1) AK 122
END AK 123-
C-86
-------
SUBROUTINE MCHSET
SUBROUTINE MCHSET (NX,NY) AL 1
COMMON /CALC/ NR,KR(200,7),A(200),S(200),R( 200),ITYPE(200),IAC80), AL Z
1JA(2500 ),DILUT,TEMP,ERR,START,STOPP,SPECIS(81>,TFRNT,TSTEP AL 3
COMMON /SPEC/ NS,HCSPECUO),CARBUO),RCTY(10),ALDSPC(4),ALDX<4),XN AL 4
1F(2),IH(10),INOXf 2 ).IALD(4),FINHCUO),FALHCdO ),NHC,NALD,OZIN,OZAL AL 5
2,HCIN,HCAL,XNIN,XNAL,KOZ,ALDCRB(4),FENX(2),C(81),REACT(81),NI,PLSP AL 6
COMMON /IHOUT/ IN.IOUT.ITAPE AL 7
COMMON /MCH1/ IRS(200,7) AL 8
COMMON /PHOTON/ CF(45,8),P( 16,9),IPH(9),IP,RFCT(9),KFACT,KPH(9) AL 9
DIMENSION KRS(7) AL 10
DATA IBLANK/' '/ AL 11
IF (NY.NE.l) GO TO 10 AL 12
NS=1 AL 13
NR = 0 AL 14
DO 5 1=1,200 AL 15
A(I)=0. AL 1ft
SU) = 0. AL 17
R(I)=0. AL 16
DO 5 J=l,7 AL 19
IRS(I,J)=IBLANK AL 20
5 KR(I,J>=0 AL 21
10 NS=NS-1 AL 22
WRITE (IOUT.40) AL 23
15 READUN.30) (KRS(I),1=1,3),J,JJ,(KRS(LL),LL=4,7),RTE,ENERGY AL 24
IF UJ.GT.O) J=JJ*100+J AL 25
DO 16 11=1,7 AL 26
16 IRSU,II)=KRS(II) AL 27
A(J)=RTE AL 28
S(J)=ENERGY AL 29
WRITE (IOUT.35) J,(IRS(J,K),K=1,7),A(J),S(J) AL 30
KR(J,1)=100 AL 31
IF (IP.EQ.O) GO TO 25 AL 32
DO 20 1=1,IP AL 33
IF (J.NE'.IFH(D) GO TO 20 AL 3
-------
SUBROUTINE MATRX
SUBROUTINE MATRX AM 1
COMMON /CALC/ NR,IR(200,7),A(200),S(200),R(300),ITYPE(200),IA(80), AM Z
1JA(2500),DILUT,TEMP,ERR,START,STOPP,SPECIS(81),TPRNT,TSTEP AM 3
COMMON /SPEC/ NS,HCSPEC(10),CARB(10),RCTY(10),ALOSPC(4),ALDX(4),XN AM 4
1F<2),IH(10),INOX(2),IALD(4),FINHC(10),FALHCUO),NHC,NALD,OZIN,OZAL AM 5
2,HCIN,HCAL,XNIN,XNAL,KOZ,ALDCRB(4),FENX(2),C(81),REACT(81),NI,PLSP AM 6
COMMON /MCH1/ KR(200,7) AM 7
INToER SPECIS AM 8
DATA IBLANK/4H /.MBLANK/4HM / AM 9
NOLD=NS+1 AM 10
DO 90 1=1,NR AM 11
IF dR(I,2).EQ.NOLD.OR.IRd,3).Eq.NOLD) IR(I,3)=99 AM 12
IF dRd,2).EQ.NOLD) IRd,2) = 0 AM 13
IF (IRd.D.EQ.NOLD) IR(I,1) = 99 AM ^
IF (IRd.D.EQ.NOLD) IR(I,3) = 99 AM 15
IF dABSdRd.in.NE.lOO) 60 TO 90 AM 16
IF
-------
SUBROUTINE MATRX
IR(I,J)=L AM 71
GO TO 85 AM ^^
75 CONTINUE AM 73
IF (SPECIS(NS).NE.MBLANK) NS=NS+1 AM 74
80 SPECIS(NS)=K AM 75
C(NS+1)=C(NS) AM 76
C(NS)=0. AM 77
IR(I,J)=NS AM 73
85 CONTINUE AM 79
90 CONTINUE AM 80
IF (SPECIS(NS).NE.MBLANK) NS=NS+1 AM 81
SPECIS(NS)=MSLAN'K AM 8Z
RETURN AM 83
END AM 84-
C-89
-------
SUBROUTINE RATES
SUBROUTINE RATES CC,N) AN 1
COMMON /CALC/ NR,KR(200,7),At 200),S(200),R(200),ITYPE(200),IA<80), AN 2
1JA(2500),DILUT,TEMP,ERR,START,STOPP,SPECIS(81),TPRNT,TSTEP AN 3
COMMON /SPEC/ NS,HCSPEC(10),CARB(10),RCTY(10),AI_DSFC(4),ALDX(4),XN AN 4
1F(2),IH(10),INOXt2),IALD<4),FINHC(10) ,FALHC(10),NHC,NALD,OZIN,OZAL AN 5
2,HCIN,HCAl,XNIN,XNAL,KOZ,ALDCRB(4),FEX(2),CR(81),REACT(81),NI,PLSP AN 6
DIMENSION CCN) AN 7
DIMENSION SIGC81) AN 8
INTEGER SPECIS,REACT AN 9
FCT=(l./298. )-(l./TEMP) AN 10
DO 5 1=1,81 AN 11
5 SIG(I)=0. AN 12
IF (N.LE.O) GO TO 20 AN 13
DO 15 1=1,N AN 14
DO 10 J=1,NS AN 15
IF (SPECIS(J).EQ.REACT(I)) SIG(J)=C(I) AN 16
IF (SPECIS(J).EQ.REACT(D) GO TO 15 AN 17
10 CONTINUE AN 18
SIG(NS+1)=SIG(NS+1)+C(I) AN 19
15 CONTINUE AN 20
20 N=NS AN 21
M=N-1 AN 22
C(N)=0. AN 23
DO 25 1=1,M AN 24
C(N)=C(N)+SIG(I) AN 25
25 C(I)=SIG(I) AN 26
BK=0. AN 27
C(N)=C(N)+SIG(NS+1) AN 28
IF (SIG(N).NE.O.) BK=SIG(N)-C(N) AN 29
IF (SIG(N).NE.O. ) C(N)=SIG(N) AN 30
NP=0 AN 31
00 35 1=1,NR AN 32
IF (KR(I.U.EQ.O) GO TO 35 AN 33
ITYP>::l)=2 AN 34
Ir (KR(I,l).Eq.99.AND.KRCI,3).EQ.99) KRCI,1)=N AN 35
IF
-------
SUBROUTINE SPARS
SUBROUTINE SPARS (IA.JA.N) AO 1
COMMON /CALC/ N3,KR(200,7),A(200),51 ZOO),R(200),ITYPE(200),IB(80), AO 2
1JBC2500),DILUT,TEMP,ERR,START,STOPP.SPECISt81) .TPRNT.TSTEP AO 3
COMMON /SPEC/ NS,HC5PEC(10),CARB(10),RCTY(10),AtOSFC(4),ALDX(4),XN AO 4
1F(2 ),IH(10),INOX(2 ),IALD(4),FINHC(10),FALHC(10),NHC,NALD,OZIN,OZAL AO 5
2,HCIN,HCAL,XNIN,XNAL,KOZ,ALDCRB(4),FENX(2),C(81),REACT(81),NI,PISP AO 6
DIMENSION IA(N), JA(N) AO 7
DO 5 1=1,N AO 8
5 IA(I)=1 AO 9
KT=0 AO 10
IA(N+1)=1 AO 11
JA(1)=0 AO 12
DO 70 IR=1,NR AO 13
IF (KR(IR,1).EQ.O.OR.KR(IR,1).EQ.99) 60 TO 70 AO 1*
MT=ITYPE(IR) AO 15
DO 65 K=1,MT AO 16
I=KR(IR,K) AO 17
DO 30 L=1,MT AO 18
J=KR(IR,L) AO 19
K1=IA(J) AO 20
K2=IA(J+1)-1 AO 21
IF (K1.GT.K2) GO TO 15 AO 22
DO 10 M=K1,K2 AO 23
IF (I.EQ.JA(M)) GO TO 30 AO 24
10 CONTINUE AO 25
15 DO 20 M=J,N AO 26
20 IA(M+1)=IA(M+1)+1 AO 27
KT=KT+1 AO 28
KD=KT-K2 AO 29
K2=K2+1 AO 30
DO 25 M=1,KD AO 31
25 JA(KT+2-M)=JA(KT+l-M) AO 32
JA(K2)=I AO 33
30 CONTINUE AO 34
K1=IA(I) AO 35
DO 60 1=4,7 AO 36
K2=IA(I+1)-1 AO 37
J=KR(IR,U AO 38
IF (J) 60,65,35 AO 39
35 IF (K1.GT.K2) GO TO 45 AO 40
DO 40 M=K1,K2 . AO 41
IF U.EQ.JA(tt)) GO TO 60 AO 42
40 CONTINUE AO 43
45 DO 50 M=I,N AO 44
50 IA(M+1)=IA(M+1)+1 AO 45
KT=KT+1 AO 46
KD=KT-K2 AO 47
KC-K2+1 AO 48
DO 55 M=1,KD AO 49
55 JA(KT+2-M)=JA(KT+l-M) AO 50
JA(K2)=J AO 51
60 CONTINUE AO 52
65 CONTINUE AO 53
70 CONTINUE AO J4
DO 80 1=1,N AO 55
K1=IA(I)+1 AO 56
K2=IA(I+1)-1 AO 57
IF (K1.GT.K2) GO TO 80 AO 58
MT=K2-K1+1 AO 59
DO 75 K=1,MT AO 60
DO 75 M=K1,K2 AO 61
IF (JA(M).GT.JA(M-D) GO TO 75 AO 62
J=JA(M-1) AO 63
JA(M-1)=JA(M) AO 64
JA(M)=J AO 65
75 CONTINUE AO 66
80 CONTINUE AO 67
M=N AO 68
DO 200 1=1,M AO 6?
IF(IA(I+1).GT.IA(D) GO TO 200 AO 70
C-91
-------
SUBROUTINE SPARS
NM=I+1 AO 71
NN=N+1 AO 72
KMIN=IA(NM) AO 73
KMAX=IA(NN) AO 74
DO 210 J=KMIN,KMAX AO 75
KM=KMAX+KMIN-J AO 76
210 JA(KM)=JA(KM-1) AO 77
KNOW=IA(I) AO 78
JA(KNOW)=I AO 79
DO 220 LL=Ntt,NN AO 80
220 IA(LU=IA(LL)+1 AO 81
200 CONTINUE AO S2
RETURN AO 83
END AO 84-
C-92
-------
SUBROUTINE SORDER
SUBROUTINE SORDER (N,IA,JA,P,Q,f1AX,V,L,IER)
INTEGER IA( 1),JA(1),P(1),Q(1) ,V<1), L( 1)
INTEGER S,SFS,PI,PJ,VI,VJ,VK,QVK,DTHR,DMIN
IER=0
DO 5 S=1,MAX
5 L(S)=S+1
SFS=1
UMAX)=0
DO 10 K=1,N
P(K)=K
<3(K)=K
V(K)=1
10 L(K) = 0
SFS=SFStN
DO 50 K=1,N
JMIN=IA(K)
JMAX=IA(K+1)-1
IFUMIN.GT.JMAX+1) GO TO 145
KDIAG=0
DO 45 J=JMIN,JMAX
VJ=JA(J)
IF (VJ.NE.K) GO TO 15
KDIAG=1
GO TO 45
15 UK=K
20 LK=UK
LLK = L(LK)
IF (LLK.EQ.O) GO TO 25
IF (V(LLK)-VJ) 20,30,25
25 LLK=SFS
IF (UK.EQ.O) GO TO 150
SFS=L(SFS)
V(K)=V(K)+1
V(LLK)=VJ
L(LLK) = L(LK)
L{U) = LLK
30 LLK=VJ
35 LK=LLK
LLK=L(LK)
IF (LLK.EQ.O) GO TO 40
IF (V(LLK)-K) 35,45,40
40 LLK=SFS
IF (LLK.EQ.O) GO TO 150
SFS=L(SFS)
V(VJ)=V(VJ)+1
V(LLK)=K
L(LLK) = L(LK)
L(LK) = LLK
45 CONTINUE
IF (KDIAG.EQ.O) GO TO 160
50 CONTINUE
J=0
DTHR=0
DMIN=N
1=0
55 1=1+1
IF (I.GT.N) GO TO 140
JMIN=MAXO(J+1,I)
IF (JMIN.GT.N) GO TO 70
60 DO 65 J=JMIN,N
VI=P(J)
IF (V(VI).LE.DTHR) GO TO 75
IF (V(VI).LT.DMIN) DMIN=V(VI)
65 COhH-INUE
70 DTHR=DMIN
DMIN=N
JMIN=I
GO TO 60
75 PJ=P(I)
P(J)=PJ
1
2
3
4
5
6
7
8
9
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP 10
AP 11
AP 12
AP 13
AP 14
AP 15
AP 16
AP 17
AP 18
AP 19
AP 20
AP 21
AP 22
AP 23
AP 24
AP 25
AP 26
AP 27
AP 28
AP 29
AP 30
AP 31
AP 32
AP 33
AP 34
AP 35
AP 36
AP 37
AP 38
AP 39
AP 40
AP 41
AP 42
AP 43
AP 44
AP 45
AP 46
AP 47
AP 48
AP 49
AP 50
AP 51
AP 52
AP 53
AP 54
AP 55
AP 56
AP 57
AP 58
AP 59
AP 60
AP 61
AP 62
AP 63
AP 64
AP 65
AP 66
AP 67
AP 68
AP 69
AP 70
C-93
-------
SUBROLTTINE SORDER
qtpj)=j
PI=VI
P(I)=PI
Q(PI)=I
LI=VI
80 LI=L(LI)
IF (LI.EQ.O) 60 TO 105
VK=V(LI)
LLK=VK
LJ=VI
85 LJ=L(LJ)
IF (LJ.EQ.O) 60 TO 100
VJ=V(U)
IF (VJ.EQ.VK) GO TO 85
90 LK=LLK
LLK=L(LK)
IF (LLK.EQ.O) GO TO 95
IF (V(LLK)-VJ) 90,85,95
95 LLK=SFS
IF (LLK.EQ.O) 60 TO 155
SFS=L(SFS)
V(VK)=V(VK)+1
V(LLK)=VJ
L(LLK)=L(LK)
L(LK) = LLK
GO TO 85
100 IF (V(VK).GT.V(VI)) GO TO 80
1=1+1
QVK=Q(VK)
PI=P(I)
P«3VK) = PI
Q(PI)=QVK
P(I)=VK
Q(VK)=I
GO TO 80
105 LI=VI
110 IF (L(LI).EQ.O) GO TO 135
LI=L(LI)
VK=V(LI)
LLK=VK
<3VK=MINO(Q(VK),I)
115 LK=LLK
LLK=L(LK)
IF (LLK.EQ.O) GO TO 120
VJ=V(LLK)
IF (Q(VJ).GT.QVK) GO TO 115
V(VK)=V(VK)-1
L(LK) = L(LLK)
L(LLK)=SFS
SFS=LLK
LLK=LK
GO TO 115
120 IF (Q(VK).LE.I) GO TO 130
IF (V(VK).LE.DTHR) GO TO 125
IF UDTHR.LT.V(VK)).AND.(V(VK).LT.DMIN)) DMIN=V(VK>
GO TO 110
125 J=MINO(Q(VK)-1,J)
DTHR=V(VK)
GO TO 110
130 L(LK)=SFS
SFS=L(VK)
GO TO 110
135 L(LI)=SFS
SFS=LfVI)
GO TO 55
140 RETURN
145 CALL YSMER (3HROW,K,13H OF A IS NULL)
GO TO 165
150 CALL YSMER (3HROM,K,16H EXCEEDS STORAGE)
GO TO 165
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
AP 100
AP 101
AP 102
AP 103
AP 104
AP 105
AP 106
AP 107
AP 108
AP 109
AP 110
AP 111
AP 112
AP 113
AP 114
AP 115
AP 116
AP 117
AP 118
AP 119
AP 120
AP 121
AP 122
AP 123
AP 124
AP 125
AP 126
AP 127
AP 128
AP 129
AP 130
AP 131
AP 132
AP 133
AP 134
AP 135
AP 136
AP 137
AP 138
AP 139
AP 140
C-94
-------
S08ROUTINE SORDER
155 CALL YSMER (6HVERTEX,VI,16H EXCEEDS STORAGE) AP 141
GO TO 165 AP 142
160 CALL YSMER (6HCOLUMN,K,19H.. DIAGONAL MISSING) AP 143
165 IER=1 AP 144
RETURN AP 145
END AP 146-
C-95
-------
SUBROUTINE NSCORD
SUBROUTINE NSCORD
-------
SUBROUTINE NSSFAC
SUBROUTINE NSSFAC
-------
SUBROUTINE NSSFAC
IF (JL(IRLL).NE.K) ISL(K)=ISL(K)-1 AR 71
IL(K+1) = IUK) + LASTID AR 72
IRL(K)=ISL(K) AR 73
GO TO 85 AR 74
65 ISL(K)=JLPTR+1 AR 75
PI=P(1) AR 76
PI=P(PI) AR 77
VI=V(PI) AR 78
70 IF (VI.GT.N) GO TO 80 AR 79
JUPTR=JLPTR+1 AR 80
IF (JLPTR.GT.MAXPL) GO TO 240 AR 81
JL(JLPTR)=VI AR 82
PI=P(PI) AR 83
VI=V(PI) AR 84
GO TO 70 AR 85
80 IRL(K)=ISL(K) AR 66
IL(K+1)=IL(K)+JLPTR-ISL(K)+1 AR 87
85 P(l)=l AR 68
V(1)=N+1 AR 89
LSFS=2 AR 90
JMIN=IRACK) AR 91
JMAX=IA(K+1)-1 AR 92
IF (JMIN.GT.JMAX) GO TO 105 AR 93
DO 100 J=JMIN,JMAX AR 94
VJ=JA(J) AR 95
PPK=1 AR 96
90 PK=PPK AR 97
PPK=P(PK) AR 98
If (V(PPK)-VJ) 90,215,95 AR 99
95 P(PK)=LSFS AR 100
V(LSFS)=VJ AR 101
P(LSFS)=PPK AR 102
100 LSFS=LSFS+1 . AR 103
105 LASTI=0 AR 104
I=K AR 105
110 I=JRL(I) AR 106
IF (I.EQ.O) GO TO 135 AR 107
PPK=1 AR 108
J^1N=IRU(I) AR 109
JMAX=ISU(I)+IU(I+1)-IU(I)-1 AR 110
IF (LASTI.GT.I) GO TO 115 AR 111
LASTI=I AR 112
LASTID=JMAX-JMIN AR 113
IF (JU(JMIN).NE.K) LASTID=LASTID+1 AR 114
115 IF (JMIN.GT.JMAX) GO TO 110 AR ,15
DO 130 J=JMIN,JMAX AR 116
VJ=JU(J) AR 117
120 PK=PPK AR 118
PPK=P(PK) AR 119
IF (V(PPK)-VJ) 120,130,125 AR 120
125 P(PK)=LSFS AR 121
V(LSFS)=VJ AR 122
P(LSFS)=PPK AR 123
PPK=LSFS AR 124
130 LSFS=LSFS+1 AR 125
GO TO 110 AR 126
135 PI=P(1) AR 127
IF (V(PI).NE.K) GO TO 220 AR 128
IF (LASTI.EP.O) GO TO 140 AR 129
IF (LASTID.NE.LSFS-3) GO TO 140 AR 13P
IRUL=IRU(LASTI) AR 131
ISU(K)=IRUL+1 AR 132
IF (JU(IRUL).NE.K) ISU(K)=ISU(K)-1 AR 133
IU(K+1)=IU(K)+LASTID AR 134
IRU(K)=ISU(K) AR 135
GO TO 160 AR 136
140 ISU(K)=JUPTR+1 AR 137
PI=P(1) AR 138
PI=P(PI) AR 139
VI=V(PI) AR 140
C-98
-------
SUBROUTINE NSSFAC
145 IF (VI.GT.N) GO TO 155
JUPTR=JUPTR+1
IF (JUPTR.GT.MAXPU) 60 TO 225
JU(JUPTR)=VI
PI=P(PI)
VI=V(PI)
GO TO 145
155 IRU(K)=ISU(K)
IU(K+1)=IU(K)+JUPTR-ISU(K)+1
160 I=K
165 I1=JRL(I)
CEND=ISL(I)+IL(I+1)-IL(I)
IF (IRLUKGE.CEND) GO TO 170
IRLI=IRL(I)
J=JL(IRLI)
JRL(I)=JRLU)
JRL(J)=I
170 1=11
IF (I.EQ.O) GO TO 175
GO TO 165
175 I=K
180 I1=JRU(I)
REND=ISU( I ) + IU( 1+1 )-IU( I )
IF (IRU(i).GE.REND) GO TO 185
IRUI=IRU(I)
J=JU(IRUI)
JRU(I) = JRUU)
JRU(J)=I
185 1=11
IF (I.EQ.O) GO TO 190
GO TO 180
1
-------
SUBROUTINE VVLBLF
SUBROUTINE WLBLF
-------
SUBROUTINE WLBLF
C LENGTH. IF A LABEL IS TO START IN THIS VECTOR, SKIP TO AS 71
C 120, ELSE PLOT THE VECTOR AND RETURN AS 72
VECSZ=SQRT((X2-X1)**2+(Y2-Y1)**2) AS 73
TOTSZ=TOTSZ+VECSZ AS 74
IF (TOTSZ.GT.SKPSZ) GO TO 10 AS 75
CALL PLOT (X2.Y2.2) AS 76
X1=X2 AS 77
Y1=Y2 AS 78
RETURN AS 79
C AS 80
C *** ITS TIME FOR A LABEL ~ LOCATE START AS 81
10 RATIO=(VECSZ-TOTSZ+SKPSZ)/VECSZ AS 82
X1L=X1+RATIO*(X2-X1) AS 83
Y1L=Y1+RATIO*(Y2-Y1) AS 84
C AS 85
C *** PLOT SUBVECTOR AND REMEMBER THE END POINT AS 86
CALL PLOT (X1L,Y1L,2) AS 87
X1=X1L AS 88
Y1=Y1L AS 89
C AS 90
C *** FIND OUT IF THERE IS ENOUGH ROOM LEFT IN THIS VECTOR AS 91
C FOR THE LABEL — IF THERE ISNT, SAVE (X2.Y2) AND RETURN AS 92
15 HAVSZ=SQRT((X2-X1L)**2+(Y2-Y1L)**2) AS 93
IF (HAVSZ.GE.SZLBL) GO TO 20 AS 94
NSV=NSV*1 AS 95
C AS 96
C *** CHECK FOR OVERFLOW AS 97
IF (NSV.GT.MXSV) STOP AS 98
XSV(NSV)=X2 AS 99
YSV(NSV)=Y2 AS 100
X1=X2 AS 101
Y1=Y2 AS 102
RETURN AS 103
C AS 104
C *** CALCULATE THE END OF THE LABEL AS 105
C IM SURE THERE IS AN EASIER WAY TO DO THIS, BUT IT AS 106
C ESCAPES ME AS 107
20 A=(X2-X1)**2+(Y2-Y1)**2 AS 10S
B=-2*((X1L-X1)*(X2-X1)+(Y1L-Y1)*(Y2-Y1)) AS 109
C=(X1L-X1)**2+(Y1L-Y1)**2-SZLBL*SZLBL AS 110
C AS 111
SQRTD=SQRT(B*B-4*A*C) AS 112
T1=(-B+SQRTD)/C2*A> AS 113
T2=(-B-SQRTD)/(2*A) AS 114
C AS 115
C *** PICK THE MINIMUM T BETWEEN 0-1 (MUST BE ONE) AS 116
IF (Tl.LT.O.) Tl=l. AS 117
IF (T2.LT.O.) T2=l. AS 118
RATIO=AMIN1(T1,T2) AS 119
C AS 120
C *** SET LABEL END POINT AS 121
X2L=X1+RATIO*(X2-X1) AS 122
Y2L=Y1+RATIO*(Y2-Y1) AS 123
C AS 124
C *** CALCULATE LABEL ANGLE AS 125
DX=X2L-X1L AS 126
DY=Y2L-Y1L AS 127
ANG=0. AS 128
IF (DY.NE.O.) ANG=ATAN2(DY,DX) AS 129
C AS 130
XL=X1L AS 131
YL=Y1L AS 132
COSA=COS(ANG) AS 133
SINA=SIN(ANG) AS 134
C AS 135
C *** REVERSE EVERYTHING IF ANGLE IN QUADRANTS 2 OR 3 AS 136
IF (DX.GE.O.) GO TO 25 AS 137
XL=X2L AS 138
YL=Y2L AS 139
COSA=-COSA AS 140
C-101
-------
SUBROUTINE WLBLF
SINA=-SINA AS 1*1
IF (DY.GE.O.) ANG=ANG-3.1*15926536 AS 142
IF (DY.LT.O.) ANG=ANG+3.1*15926536 AS 1*3
25 ANGD=ANG*180./3.1*15926536 AS 1**
C AS 1*5
C *** LOCATE AND PLOT LABEL AS 1*6
XL=XL+OFF*COSA+OFF*SINA AS 1*7
YL=YL+OFF*SINA-OFF*COSA AS 1*8
IDG=NCHR-2 AS 1*9
CALL NUMBER (XL,YL,CHRSZ,OZL,ANGD,IDG) AS 150
C AS 151
C *** FINISH OFF THIS SEQUENT BY MEANS OF A PSUEDO REENTRY AS 152
TOTSZ=0. AS 153
SKPSZ=DIST AS 15*
NSV=0 AS 155
X1=X2L AS 156
Y1=Y2L AS 157
CALL PLOT (X1,Y1,3) AS 158
GO TO 5 AS 159
C AS 160
C a************************************************************** AS 161
C ENTRY WLBLL AS 162
C*******^*********#*************************#****************** AS 163
C AS 16*
ENTRY WLBLL (X2.Y2) AS 165
C AS 166
C *** PLOT THE SAVED VECTORS IF ANY AS 167
IF (NSV.EQ.O) RETURN AS 168
DO 30 1=1,NSV AS 169
CALL PLOT (XSV(I),YSV(I),2) AS 170
30 CONTINUE AS 171
NSV=0 AS 172
RETURN AS 173
C AS 17*
END . AS 175-
C-102
-------
SUBROUTINE MIXSET
SUBROUTINE MIXSET AT 1
COMMON /MIX/ NMIX,AMIXU6),STRM,STOPM,DC<45),TSTART AT 2
STRM-C. AT 3
S'iOPM=FLOAT(NMIX-l)*60. AT 4
NMX4=(NMIX-1)*3 AT 5
DO 5 I=1,NMX4 AT 6
5 DC(I)=0. AT 7
NMIX1=NMIX-1 AT 8
DO 10 I=1,NMIX1 AT 9
K=3*I-2 AT 10
DC(K)=(AMIX(I+1)-AMIX(I))/60. AT 11
10 CONTINUE AT 12
RETURN AT 13
END AT 14-
C-103
-------
SUBROUTINE NEWLIN
SUBROUTINE NEWLIN (N,OT,HCT,SX,NS,NE,NL,NR,XNL,NPL,TOL,NUL,NTL,II) AU 1
COMMON /NEED/ HC,XN,NN,NB,R( 20),OZP(20 ) ,OZN(8,20),RHO(8,20 ),M,OC(4 AU 2
1 ),OS(2),HCS,XNS,LS,HCLL(8),XNLL(S) AU 3
DIMENSION XNLC20), OT(20), HCT(20), YP(20), TM(20), NUL(20), NTL(2 AU 4
10) AU 5
IT=1 AU 6
ISAV=0 AU 7
IF
-------
BLOCK DATA
BLOCK DATA AV 1
COMMON /CALC/ NR,KR(200,7),A(200),S(200),R(200),ITYPE(200),IA(80), AV 2
1JA(2500),DILUT,TEMP,ERR,START,STOPP,SPECIS(81>,TPRNT,TSTEP AV 3
COMMON /CNTRL/ SIG,SIGMA,INFO,NPTO,TSRT,DTIM,Z1,Z2,DCON,EHC,EXN,FL AV 4
IST.TLST.NSPARS AV 5
COMMON /SPEC/ NS,HCSPECC10),CARB(10),RCTY(10),ALOSPC(4),ALDX(4),XN AV 6
1F(2),IH(10),INOX(2),IALD(4),FINHC(10),FALHC(10),NHC,NALD,OZIN,OZAL AV 7
2,HCIN,HCAL,XNIN,XNAL,KOZ,ALDCRB(4),FENX(2),C(81),REACT(81),NI,PLSP AV 8
COMMON /PHOTON/ CF(45,8),P(16,9),IPH(9),IP,RFCT(9),KFACT,KPH(9) AV 9
COMMON /EMIS/ NEM,EM(16),EMHC(16),EMNOX(16),ESRT(2),ESTOP,ESLP,EHS AV 10
1LP,ENSLP,EC(80),ECHC(80),ECXN(80) AV 11
COMMON /MIX/ MMIX,BMIX(16),STRM,STOPM,DC(45),TSTART AV 12
COMMON /INOUT/ IN,IOUT,ITAPE AV 13
COMMON /TITL/ ITTL(IS) AV 14
COMMON /NEED/ HC,XN,HL,NRTO,RTO(20),OZP(20),OZN(8,20),RHO(8,20 ),MR AV 15
1,OC(4),OS(2),HCS,XNS,LS,HCLL(8),XNLL(8) AV 16
COMMON /HOUR/ OZM,NGO,TM AV 17
COMMON /PLTVEC/ HCT(20),OT(20),NT,OHC,HCG,PLTGRD,OXN,XNG,HC1,XN1,T AV 13
IICZ.DIGZ.CHRZ • AV 19
COMMON /VVLBL/ FCTR,DIST,CHRSIZ,NNCHR,OZBL AV 20
COMMON /ALOFT/FALALD<4) AV 21
COMMON /SURFAC/FINALOC4) AV 22
COMMON /SUNLIT/ XJ(47,10),SIGMO(31,10),PHI(31,10),Z(10),RTCON(10), AV 23
1LAM1,INC,SLA,SLO,TZ,IY,IM,ID,ISTRT.ISTOP.IINC.IENO,SPECIE,MAXZ.ITI AV 24
2ME(16),XZ(16),K(16),JSTRT,JSTOP.PSPECt11),MNLM( 11),MXLM( 11),MAXL, AV 25
3MAXJ AV 26
COMMON /WK>TREP/PLACE(6),EMMHC(16),EMMNX(16),MEMFLG,HCB,XNXB,HINIT AV 27
COMMON /MIXING/ DSTRT.DEND,AMCC5),BMC(5),CMC(5),FD(6),FG(6), AV 28
lAMIXdM.OL.TTMAX.SRISE.SRMIN.D&LH.TDIL.NMIX AV 29
CrNilON /GEARS/ IWl(81,9!/Si£AR7/IW2( 1500) AV 30
COMMON /GEAR1/ T,H,HMIN,HMAX,EPSC,UROUNO,NC,MFC,KFLAG,JSTART AV 31
COMMON /MEXP/EXPMAX AV 32
INTEGER SPECIS,HCSPEC,ALDSPC,PLSP,PSPEC,PLACE AV 33
C AV 34
C SUN DATA AV 35
C AV 76
DIMENSION X1(47),X2(47),X3(47),X4(47),X5(47),X6(47), AV 37
4X7(47),X8(47),X9(47),X10(47),P1(31),P2(31),P3(31),P4(31) AV 38
S,P5(31),P6(31),P7(31),P8(31.),P9(31),P10(31), AV 39
4S1(31),S2(31),S3(31),S4(31),S5(31),S6(31),S7C31),S8(31) AV 40
S,S9(31),510(31) AV 41
EQUIVALENCE (XJ(1,1),X1(1)),(XJ(1,2),X2(1)),(XJ(1,3),X3(1)), AV 42
& (XJ(1,4),X4(1)),(XJ(1,5),X5(1)),(XJ(1,6),X6(1)), AV 43
& (XJ(l,7),X7(l)),,X8(in,(XJ(l,9),X9(l)), AV 44
& (XJ(1,10),X10(D) AV 45
EQUIVALENCE (SIGMO(1,1),S1(1)),(SIGMO(1,2),S2(1)), AV 46
& (SIGMO(1,3),S3(1)),(SIGMO(1,4),S4(D), AV 47
& (SIGMO(1,5),S5(1)),(SIGMO(1,6),S6(D), AV 48
& (SIGMO(1,7),S7(1)),(SIGMO(1,8),S8(1)), AV 49
& (SIGMO(1,9),S9(1)),(SIGMO(1,10),S10(D) AV 50
EQUIVALENCE ( PHH 1,1) ,P1( 1) ),( PHK 1,2) ,P2( 1) ),( PHK 1,3) ,P3( 1) >, AV 5?
& (PHI(1,4),P4(1)),(PHI(1,5),P5(1)),(PHI(1,6),P6(1)), AV 52
& (PHI(1,7),P7(1)),(PHIU,8),P8(1)),(PHI(1,9),P9(1)>, AV 53
& (PHI(1,10),P10(D) AV 54
DIMENSION KR1(200),KR2(200),KR3(200),KR4(200),KR5(200), AV 55
*KR6(200),KR7(200) AV 56
EQUIVALENCE (KR(1,1) ,KR1),(KR(1,2),KR2),(KR(1,3),KR3), AV 57
& (KR(1,4),KR4),(KR(1,5),K(?5),
-------
BLOCK DATA
DATA IPH/1,13,19,18,50,49,17,53,
DATA KPH/9*0/
DATA MAXL,MAXZ,MAXJ,LAM1,INC/09,
DATA Z/0.,10.,20.,30.,40.,50.,60
DATA Xl/
4 .0001500, .0393350, .4394000, .
41.8924000,1.9508000,2.3974000,Z.
43.9935000,4.1188000,4.2234500,4.
85.7505000,5.7988000,5.7835500,5.
45.9797000,5.9371500,5.9095500,5.
46.£265000,6.2693500,6.3120000,6.
46.5130000,6.5937500,6.6745000,6.
S6.4000000,6.3400000,6.2700000,6.
DATA X2/
& .0001500, .0380150, .4313000, .
41.8748000,1.9335000,2.3782000,2.
43.9685000,4.0949000,4.1180000,4.
45.7211000,5.7708000,5.7564500,5.
45.9503500,5.8983000,5.8814500,5.
46.1975000,6.2397500,6.2820000,6.
46.4830000,6.5630000,6.6430000,6.
46.3800000,6.3200000,6.2500000,6.
DATA X3/
& .0000000,
O/
10,47,2900,100/
.,70.,78.,86./
.4012000,
.0325460,
41.8237000,1.8849000,2.3233000,2.
43.8957000,4.0250000,4.0509500,4.
45.6363000,5.6876500,5.6759000,5.
45.8656000,5.8161500,5.7972500,5.
46.1110000,6.1517500,6.1925000,6.
46.3950000,6.4720000,6.5490000,6.
46.2900000,6.2200000,6.1600000,6.
DATA X4/
4 .0000000,
.3505500,
.0246470,
41.7327000,1.7932000,2.2238000,2.
43.7652000,3.8985000,3.9301500,4.
45.4851000,5.5407500,5.5333000,5.
45.7171000,5.6701500,5.6504500,5.
45.9535000,5.9972500,6.0360000,5.
46.2405000,6.3142500,6.3880000,6.
46.1400000,6.0300000,6.0200000,5.
DATA X5/
4 .0000000,
.2814000,
.0155188,
41.591.aOOO.l.6621000,2.066*000, 2.
43.5559000,3.6956000,3.7348000,4.
45.2420000,5.3036000,5.3046500,5.
45.4816500,5.4392500,5.4197000,5.
45.7225000,5.7577500,5.7930000,5.
46.0040000,6.0740000,6.1440000,6.
45.9100000,5.8700000,5.8000000,5.
DATA X6/
4 .0000000,
.1978000,
.0074586,
41.3834000,1.4590000,1.8310000,1.
43.2319000,3.3780000,3.4279500,3.
44.8484500,4.9180000,4.9435500,5.
45.1156000,5.0801500,5.0612000,5.
45.3540000,5.3375000,5.4210000,5.
45.6415000,5.7082500,5.7750000,5.
45.6500000,5.6000000,5.5500000,5.
DATA X7/
4 .0000000
.1104300,
0022850,
41.2429000,1.1638000,1.4799000,1.
42.7246000,2.8754000,2.9379000,3.
44.2483000,4.3271000,4.3521500,4.
44.5209500,4.4947500,4.4787000,4.
44.7538500,4.7846750,4.8155000,4.
45.0580000,5.1225000,5.1870000,5.
45.1100000,5.0500000,5.0200000,4.
DATA X8/
4 .0000000, .0003046, .0392490,
4 .6841000, .7493000, .9722000,
9551000,1.
3177000,2.
6172000,5.
8866000,5,
9687500,6.
3210000,6.
6590000,6.
2100000,6.
9438000,1.
3003000,2.
5120000,5.
8571500,5.
9396500,6.
2917500,6.
6265000,6.
1900000,6.
9006000,1.
2503000,2,
4421000,5.
7735000,5.
8523500,5.
2047500,6.
5367500,6.
1000000,6.
8261000,1.
1609000,2.
3168499,4.
6254000,5.
7025500,5.
9370000,5.
3787500,6.
9600000,5.
7174000,1.
0189000,2.
1135000,4.
3897000,5.
4671000,5.
6377500,5,
1392500,6.
7500000,5.
5706000,1.
8026000,1.
7932000,4.
0215500,5.
1035000,5,
4517500,5.
7772500,5.
4900000,5.
3890000, ,
4751000,1,
2742000,3,
4222500,4.
5142000,4.
8578000,4,
1992500,5.
9700000,4.
.6132000,1.
.3415000,3.
,2089000,5.
.9349500,5.
.0576000,6.
.3300000,6.
.6435000,6.
.1400000/
.5944000,1,
.3254000,3.
.1817000,5.
.9050500,5.
.0280000,6.
.3015000,6.
.6100000,6.
.1200000/
.5384000,1.
.2789000,3.
.1007500,5.
.8182500,5.
.9412000,6.
.2170000,6.
.5245000,6.
.0300000/
.4402000,1.
.1947000,2.
.9576500,5,
.6660000,5.
.7889500,5,
.8380000,6.
.3695000,6,
.9CGOOOO/
.2922000,1.
.0594000,2.
.7279500,5.
.4247000,5,
5507000,5,
4825000,5.
1345000,5.
6800000/
0832000,1.
8520000,2.
3661000,4.
0527000,5,
1827500,5.
4825000,5.
7795000,5.
4300000/
8031000, .
5336000,2
7832500,4,
4501500,4.
5850500,4,
9001000,4
2115000,5,
9200000/
.1937200, .4628000, .
.9879000,1.0468000,1.
7134000,
1737000,
6146000,
9353000,
1739000,
4215000,
4600000,
6964000,
1530000,
5851500,
9032000,
1445000,
3922500,
4500000,
6450000,
0929000,
4933500,
8178500,
0576000,
3060000,
3500000,
5547000,
9841000,
3444500,
6686000,
9047000,
0392500,
2000000,
4160000,
8100000,
0991000,
4327000,
6665000,
7432500,
9300000,
2153000,
5412000,
7150000,
0667000,
2964000,
5620000,
7100000,
9357000,
1246000,
0991000,
4724000,
7142000,
9790500,
1500000,
5726000,
4744000,
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV
AV 100
AV 101
AV 102
AV 103
AV 104
AV 105
AV 106
AV 107
AV 108
AV 109
AV 110
AV 111
AV 112
AV 113
AV 114
AV 115
AV 116
AV 117
AV 118
AV 11.9
AV 120
AV 121
AV 122
AV 123
AV 124
AV 125
AV 126
AV 127
AV 128
AV 129
AV 130
AV 131
AV 132
AV 133
AV 134
AV 135
AV 13t
AV 137
AV 138
AV 139
AV 140
C-106
-------
BLOCK DATA
41.9188000,2.0589000,2.1285500,2.4022500,2.7996500,3.0552500,
43.1934500,3.2775000,3.3168000,3.3773000,3.4050000,3.4337500,
43.4756000,3.4615500,3.4521000,3.4785500,3.5335500,3.6287000,
43.6857000,3.7140000,3.7423000,3.7983500,3.8544000,3.9345500,
44.0147000,4.0785750,4.1424500,4.1676250,4.1928000,4.0900000,
44. 0700000, 4. 0500000, 4. 0400000, 4. 0200000,4.00000007
DATA X9/
4 .0000000, .0000000, .0092690, .0637200, .2029100, .2689000,
4 .3276000, .3626000, .4767000, .4913000, .5291000, .7580000,
41.0035000,1.0973000,1.1513500,1.3207000,1.5589500,1.7205500,
41.8205500,1.8374500,1.9265000,1.9704500,1.9941500,2.0198000,
42.0455000,2.0399500,2.0371500,2.0515500,2.0813000,2.1482000,
42.1941000,2.2183000,2.2425000,2.3026500,2.3628000,2.4376250,
42.5124500,2.5737000,2.6349500,2.6706250,2.7063000,2.7400000,
42. 7500000, 2. 7600000, 2. 7700000, 2. 7800000, 2. 7900000/
DATA X10/
4 .0000000, .0000000, .0009416, .0088930, .0389400, .0614900,
4 .0765300, .0834100, .1065300, .1065000, .1113600, .1555700,
4 .2017300, .2153800, .2226250, .2506650, .2921350, .3188350,
4 .3330000, .3393000, .3416000, .3420500, .3394000, .3376000,
4 .3312500, .3217000, .3147000, .3083500, .3034500, .3106000,
4 .3201000, .3236750, .3272500, .3494500, .3716500, .4003750,
4 .4291000, .4548250, .4805500, .4994500, .5184000, .5300000,
4 .5400000, .5600000, .5600000, .5800000, .5900000/
DATA SI/
4 .852E-19, .128E-18, .183E-18, .247E-18, .310E-18, .374E-18,
4 .449E-18, .501C-18, .541E-18, .570E-18, .582E-18, .595E-18,
4 .580E-18,
4 .00 ,
4 .00 ,
4 .00 /
DATA S2/
4 .790E-20,
4 .529E-19,
4 .00 ,
4 .00 ,
4 .00 ,
4 .00 /
DATA S3/
4M62E-17,
4 .386E-21,
4 .00 ,
4 .00 ,
& .00 ,
4 .00 /
DATA S4/
4 .162E-17,
4 .386E-21,
4 .00 ,
4 .00 ,
4 .00 ,
4 .00 /
DATA S5/
4 .318E-19,
4 .837E-20,
4 .00 ,
4 .00 ,
4 .00 ,
4 .00 /
DATA S6/
4 .318E-19,
4 .837E-20,
4 .00 ,
4 .00 ,
4 .00 ,
4 .00 /
DATA S7/
4 .149E-19,
4 .191E-20,
4 .00 ,
.545E-18,
.00 ,
.00 ,
.790E-20,
.398E-19,
.00 ,
.00 ,
.00 ,
.444E-18,
.00 ,
.00 ,
.00 ,
.00 ,
.444E-18,
.00 ,
.00 ,
.00 ,
.00 ,
.325E-19,
.176E-20,
.00 ,
.00 ,
.00 ,
.325E-19,
.176E-20,
.00 ,
.00 ,
.00 ,
.994E-20,
.115E-20,
.00 ,
.515E-18
.00 ,
.00 ,
.114E-19
.608E-19
.00 ,
.00 ,
.00 ,
.119E-18
.00 ,
.00 ,
.00 ,
.00 ,
.119E-18
.00 ,
.00 ,
.00 ,
.00 ,
.315E-19
.00 ,
.00
.00 ,
.00 ,
.315E-19
.00 ,
.00 ,
.00 ,
.00 ,
.688E-20
.760E-21
.00 ,
, .485E-18, .455E-18, .00 ,
.00 , .00
.00 , .00
, .175E-19, .
, .333E-19, .
.00 , .00
.00 , .00
.00 , .00
, .336E-19, .
.00 , .00
.00 , .00
.00 , .00
.00 , .00
, .336E-19, .
.00 , .00
.00 , .00
.00 , .00
.00 , .00
, .234E-19, .
, .00 ,
, .00 ,
286E-19, .423E-19,
178E-19, .00 ,
, .00 ,
, .00 ,
, .00 ,
879E-20, .194E-20
, .00 ,
, .00 ,
, .00 ,
, .00 ,
879E-20, .194E-20
, .00 ,
, .00 ,
, .00 ,
, .00 ,
237E-19, .198E-19
,
,
,
.00 , .00 , .00 ,
.00 , .00
.00 , .00
.00 , .00
, .234E-19, .
, .00 ,
, .00 ,
, .00 ,
237E-19, .198E-19
,
.00 , .00 , .00 ,
.00 , .00
.00 , .00
.00 , .00
, .497E-20, .
, .00 , .
.00 , .00
, .00 ,
, .00 ,
, .00 ,
382E-20, .301E-20
.00 , .00 ,
, .00 ,
,
AV 141
AV 142
AV 143
AV 144
AV 145
AV 146
AV 147
AV 148
AV 149
AV 150
AV 151
AV 152
AV 153
AV 154
AV 155
AV 156
AV 157
AV 158
AV 159
AV 160
AV 161
AV 162
AV 163
AV 164
AV 165
AV 166
AV 167
AV 168
AV 169
AV 170
AV 171
AV 172
AV 173
AV 174
AV 175
AV 176
AV 177
AV 178
AV 179
AV 180
AV 181
AV 182
AV 183
AV 184
AV 185
AV 186
AV 187
AV 188
AV 189
AV 190
AV 191
AV 192
AV 193
AV 194
AV 195
AV 196
AV 197
AV 198
AV 199
AV 200
AV 201
AV 202
AV ^03
AV 204
AV 205
AV 206
AV 207
AV 208
AV 209
AV 210
C-107
-------
BLOCK DATA
& .00 ,
& .00 ,
& .00 /
DATA S8/
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
.466E-19,
.00 ,
.00 ,
.00 ,
.00 ,
.00 /
DATA S9/
.199E-21,
-174E-20,
.509E-20,
.361E-20,
.126E-20,
.407E-21/
DATA S10/
.00 ,
.00 ,
.00 ,
.00 ,
.00 ,
.00 /
DATA PI/
.988, .980
.940, .932
.175, .025
.000, .000
.000, .000
.409E-19
.00 ,
.00 ,
.00 ,
.00 ,
.360E-21
.220E-20
.493E-20
.318E-20
.977E-21
.00 ,
.00 ,
.00 ,
.00 ,
.00 ,
, .972,
, .924,
, .006,
, .000,
, .000,
,
.
.
.
.
,
,
,
,
,
.
.
.
.
.
.296E-19, .
00
00
00
00
, .
, •
,
,
00
00
00
00
.538E-21, .
.276E-20, .
.515E-20, .
.269E-20, .
.806E-21, .
00
00
00
00
00
.964,
.916,
.001,
.000,
.000,
,
,
,
,
,
.956,
.908,
.000,
.000,
.000,
00
00
00
00
00
.
.
.
.
.
169E-19
,
,
,
,
748E-21
331E-20
552E-20
217E-20
676E-21
,
,
,
,
,
948,
699,
000,
000,
000,
,
00
00
00
00
,
,
,
,
,
00
00
00
00
00
.692E-20,
, .00
, .00
, .00
, .00
.958E-21,
.378E-20,
.493E-20,
.179E-20,
.556E-21,
, .00
, .00
, .00
, .00
, .00
.134E-20
,
,
,
,
.131E-20
.4S4E-20
.417E-20
.152E-20
.484E-21
9
9
9
9
9
9
9
9
9
9
9
& .ooo/
DATA P2/
& .000,1.000,1.000,1.
41.000,1.000,1.000,1.
& .000, .000, .000, .
& .000, .000, .000, .
& .000, .000, .000, ,
& .ooo/
DATA P3/
& .000, .000,1.000,1.
&1.000, .000, .000, .
& .000, .000, .000, .
S .000, .000, .000, .
4 .000, .000, .000, .
t .ooo/
DATA P4/
«1.000,1.000,1.000, .
& .000, .000, .000, .
& .000, .000, .000, .
i .000, .000, .000, .
& .000, .000, .000, .
& .ooo/
DATA P5/
& .810, .660, .520, .
& .090, .010, .000, .
& .OO'O, .000, .000, ,
4 .000, .000, .000, .
& .000, .000, .000, .
4 .ooo/
DATA P6/
4 .190, .340, .480, .
& .910, .990, .000, .
4 .000, .000, .000, .
& .000, .000, .000, .
& .000, .000, .000, .
4 .ooo/
DATA P7/
41.000,1.000,1.000,1.
U.OOn,1.000,1.000, .
& .000, .000, .000, .
000,1.000,1.000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000,1.000,1.000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
400, .290, .180,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
600, .710, .820,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000, .000, .000,
000,1.000,1.000,
000, .000, .000,
OOG, .000, .000,
AV 211
AV 212
AV 213
AV 214
AV 215
AV 216
AV 217
AV 218
AV 219
AV 220
AV 221
AV 222
AV 223
AV 224
AV 225
AV 226
AV 227
AV 228
AV 229
AV 230
AV 231
AV 232
AV 233
AV 234
AV 235
AV 236
AV 237
AV 238
AV 239
AV 240
AV 241
AV 242
AV 243
AV 244
AV 245
AV 246
AV 247
AV 248
AV 249
AV 250
AV 251
AV 252
AV 253
AV 254
AV 255
AV 256
AV 257
AV 258
AV 259
AV 260
AV 261
AV 262
AV 263
AV 264
AV 265
AV 266
AV 267
AV 268
AV 269
AV 270
AV 271
AV 272
AV 273
AV 274
AV 275
AV 276
AV 277
AV 278
AV 279
AV 280
C-108
-------
BLOCK DATA
4 .000, .000, .000, .000, .000, .000, AV 281
& .000, .000, .000, .000, .000, .000, AV 282
& .OOO/ " AV 28i
DATA P8/ AV 284
* .987, .722, .663, .47*, .300, .123, AV 285
t .000, .000, .000, .000, .000, .000, AV 286
& .000, .000, .000, .000, .000, .000, AV 237
& .000, .000, .000, .000, .000, .000, AV 288
& .000, .000, .000, .000, .000, .000, AV 289
& .OOO/ AV 290
DATA P9/ AV 291
41.000,1.000,1.000,1.000,1.000,1.000, AV 292
SI.000,1.000,1.000,1.000,1.000,1.000, AV 293
SI.000,1.000,1.000,1.000,1.000,1.000, AV 29*
SI.000,1.000,1.000,1.000,1.000,1.000, AV 295
SI.000,1.000,1.000,1.000,1.000,1.000, AV 296
SI.OOO/ AV 297
DATA P10/ AV 298
& .000, .000, .000, .000, .000) .000, AV 299
S .000, .000, .000, .000, .000, .000, AV 300
& .000, .000, .000, .000, .000, .000, AV 301
& .000, .000, .000, .000, .000, .000, AV 302
& .000, .000, .000, .000, .000, .000, AV 303
& .OOO/ AV 30*
DATA PSPEC/*HN02 ,*HHONO,*H03 ,*H03 ,*HHCHO,*HHCHO,*HH202,*HALD2 AV 305
1,*H03CH,*H ,*H / AV 306
DATA MNLM/8*2900,*500,0,0/ AV 307
DATA MXLM/*500,3900,3500,3100,3600,3600,3700,3*00,7500,0,0/ AV 303
C AV 309
C MECH DATA AV 310
C AV 311
DATA NR/76/ AV 312
DATA KR1 /1,3,*,!,!,5,1,6,6,2,7,7,8,8,9,9,10,*,*,11,1 AV 313
11,8,*,12,13,13,13,13,13,1*,12,12,2*.2*,2,2,2,2,2,27,28,20,18,27,23 AV 31*
2,20,18,16,21,21,21,22,22,22,30,30,30,29,29,29,13,13,32,31,23,32,31 AV 315
3,23,26,19,25,17,15,32,31,23,12**0/ AV 316
DATA KR2 /O,0,2,*,3,2,5,0,0,1,7,0,1,2,2,9,0,0,0,0,0,* AV 317
1,9,8,2,13,15,17,19,0,*,*,8,8,26,25,19,17,15,0,0,0,0,0,0,0,0,0,0,0, AV 318
28,0,0,8,0,0,8,0,0,8,26,25,2,2,2,1,1,1,9,9,9,9,9,9,9,9,12**0/ AV 319
DATA KR3 /200*0/ AV 320
DATA KR* /2,*,1,5,2,1,6,1,0,7,2,8,0,7,1,10,8,11,3,3,8 AV 321
1,9,8,13,1*,!*,!*,!*,!*,21,8,8,25,26,1,1,1,1,1,21,22,21,21,29,9,30, AV 322
222,21,0,9,9,0,15,23,0,17,31,0,19,32,!*,!*,19,17,15,135*0/ AV 323
DATA KR5 /3>**0,I,0,5,0,7,1,2,0,0,8,0,8,0,0,0,8,0,0,0 AV 32*
1,1,1*,16,18,20,9,9,23,0,0,27,23,20,18,16,19,17,17,15,9,0,9,9,9,0,9 AV 325
2,0,0,9,0,0,9,0,0,9,0,27,23,1,1,1,135*0/ AV 326
DATA KR6 /29*0,22,22,21,168*0/ AV 327
DATA KR7 /200*0/ AV 323
DATA A/.35,*.*E+6,25.,.0*5,1.3E+*,1.3E+*,5600.,22.,.05,2.E-5,.001, AV 329
1.018,8000.,3000.,1200.,8*00.,8.*£-*,9.5E-4,.019,8.7E-HO,1.E+10,8*. AV 330
2,2.*,2.5E+*,1000.,1.2E+*,1000.,1000.,1000.,1.E+5,.008,.008,1800.,1 AV 331
3800.,1800.,1800.,1800.,1800.,1800.,7.5E+*,1.E+5,8000.,*000.,1.5E+5 AV 332
*,3.E+5,1.E+5,8.E+*,8.E+*,.003,.001,1.5E+*,*.2E-6,9.8E-*,1.5E+*,6.E AV 333
5-5,.0025,*.5E+*,6.E-5,.0019,*.5E+*,1000.,1000.,800.,800.,800.,100. AV 33*
6,100.,100.,8**000.,12**0.0/ AV 335
DATA 5/200*0./ AV 336
DATA ITYPE/1,1,2,2,2,2,2,1,1,2,2,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2 AV 337
1,2,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,1,1,2,2 AV 333
2,15*2,12**0/ AV 339
DATA IA/1,12,3*,38,50,5*,57,61,79,93,95,98,106,120,12*.131,13*,1*1 AV 3*0
1,1*6,153,158,161,166,171,175,182,189,19*,198,203,208,213,218,*7*0/ AV 3*1
DATA JA/1,2,3,*,5,6,7,8,23,31,32,1,2,*,5,7,8,9,13,1*,15,16,17,18,1 AV 3*2
19,20,23,25,26,27,28,31,32,1,2,3,*,1,2,3,*,5,8,9,11,12,21,22,23,1,2 AV 3*3
2,5,6,1,5,6,1,2,7,8,1,2.*,7,8,9,12,13,21,22,23,2*,25,26,29,30,31,32 AV 3**
3,1,2,*,8,9,10,15,17,19,23,25,26,31,32,8,10,3,8,11,*,8,9,12,13,21,2 AV 3*5
*2,23,1,2,13,1*,15,16,17,18,19,20,25,26,27,28,9,1*,21,22,1,2,9,13,1 AV 3*6
5*,15,16,9,16,21,1,2,9,13,1*,17,18,9,15,18,21,22,1,2,9,13,1*,19,20, AV 3*7
69,17,20,21,30,8,9,21,8,9,15,22,23,1,2,9,15,23,8,2*,25,26,1,2,9,13, AV 3*8
71*,25,28,1,2,9,13,1*,26,27,9,19,21,27,29,9,17,22,28,8,9,19,29,32,8 AV 3*9
8,9,17,30,31,1,2,9,17,31,1,2,9,19,32,2283*0/ AV 350
C-109
-------
BLOCK DATA.
DATA SPECIS/4HN02 ,4HNO ,4HO ,4H03 ,4HN03 ,4HN205,4HHONO,4HOH AV >yl
1 ,6HH02 ,4HH202,4H01D ,4HFROP,4HADD ,4HX ,4H»E02,4HMEO ,4HC202,4 AV 352
2HC20 ,4HC302,4HC30 ,4HHCHO,4HALD2,4HC203,4HBUT ,4HSC02,4HC402,4HC4 AV 353
30 ,4HSCO ,4HALD4,4HALD3,4HC303,4HC403,4HM ,48*4H / AV 354
C AV 355
C GEAR DATA AV 356
C AV 357
DATA IW11 /6,10,5,7,11,24,3,16,29,30,28,31,32,18,12,19 AV 358
1,26,4,23,20,25,27,8,1,2,9,13,14,15,17,21,22,O/ AV 359
DATA IW12 /I,4,6,11,15,17,19,23,27,30,33,37,43,49,53,5 AV 360
16,63,69,76,84,88,94,98,112,130,147,170,179,187,194,202,211,218/ AV 361
DATA IW13 /I,3,4,6,9,11,14,17,19,23,27,30,34,38,42,49, AV 362
155,61,69,73,79,86,94,103,111,118,124,129,133,136,133,139,139/ AV 363
DATA IW14 /I,3,4,6,9,11,14,17,19,23,27,30,34,38,42,49, AV 364
155,61,69,73,79,86,94,95,96,97,98,99,100,101,102,102,O/ AV 365
DATA IW15 /I,3,4,7,10,11,12,14,17,19,21,24,29,34,37,39 AV 36C
1,45,49,53,58,64,68,72,78,85,91,97,102,106,109,111,112,112/ AV 367
DATA IU16 /I,3,4,7,10,11,12,14,17,19,21,24,29,34,37,39 AV 368
1,45,49,53,58,64,68,72,78,85,91,97,102,106,109,111,111,O/ AV 369
DATA IW17 /3,4,6,9,11,14,17,19,23,27,29,34,38,41,48,55 AV 370
1,61,68,73,79,85,94,102,110,117,123,128,132,135,137,138,139,07 AV 371
DATA IW19 /33,4*32,31,32,31,32,28,27,0,0,32,8*0,28,31, AV 372
132,0,31,6*0/ AV 373
DATA 1X1/1,3,24,2,26,1,3,18,24,25,4,23,24,25,5,18,6,23,5,7,18,24,8 AV 374
1,25,27,29,09,22,23,10,20,23,11,21,25,27,10,12,23,24,25,26,9,13,23, AV 375
224,25,26,14,25,27,30,15,18,23,9,13,16,22,25,26,27,6,17,23,25,26,27 AV 376
3,7,15,13,23,24,25,26,15,18,19,23,24,25,26,32,16,20,25,27,6,21,23,2 AV 377
45,26,27,17,22,25,27,2,4,5,6,9,10,15,18,23,24,25,26,31,32,1,3,4,7,1 AV 373
52,13,16,17,18,19,21,23,24,25,26,27,29,30,3,4,7,12,13,16,17,18,19,2 AV 379
61,23,24,25,26,27,29,30,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22, AV 380
723,25,26,28,29,30,31,32,15,16,17,21,23,25,27,29,30,16,17,21,25,27, AV 381
828,29,30,14,19,25,26,27,29,32,10,11,12,20,25,26,27/ AV 382
DATA 1X2/30,8,14,15,18,20,22,23,28,31,11,14,15,18,23,28,32,3,24,23 AV 383
1,24,25,23,24,25,7,23,17,21,23,18,24,25,26,31,13,16,23,26,12,23,26, .AV 384
230,26,30,32,24,25,26,30,16,24,25,26,26,29,31,32,18,19,23,26,27,31, AV 385
332,20,24,25,26,27,28,22,24,25,26,27,28,19,23,24,25,26,27,31,32,24, AV 386
425,26,29,23,24,25,26,30,31,24,25,26,27,28,30,32,23,24,25,26,27,28, AV 387
530,31,24,25,26,27,28,29,30,31,32,26,27,28,21,11,26,16,31,22,9,24,2 AV 388
65,18,4,23,26,15,27,31,32,19,6,21,17,9,10,12,13,24,25,7,18,3,1,4,23 AV 389
7,19,12,13,24,25,18,3,4,23,26,27,23,29,8,30,14,16,20,19,21,17,22,11 AV 390
8,12,13,24,25,18,23,26,2,29,30,16,19,21,17,12,13,24,25,27,28,29,8/ AV 391
DATA 1X3/30,14,16,20,21,17,22,11,26,28,31,32,24,25,26,27,28,29,8,2 AV 392
14,25,26,27,28,30,14,23,26,31,23,26,29,32,19,231,210,109,225,3,24,2 AV 393
26,18,24,25,23,24,25,18,23,18,24,25,27,29,22,23,20,23,21,25,27,20,2 AV 394
33,24,25,26,22,23,24,25,26,25,27,30,18,23,22,23,24,25,26,27,23,25,2 AV 395
46,27,23,24,25,26,23,24,25,26,32,22,23,24,25,26,27,23,25,26,27,23,2 AV 396
55,26,27,24,25,26,27,31,32,25,26,27,29,30,31,32,26,27,29,30,31,32,2 AV 397
67,23,29,30,31,32,28,29,30,31,32,29,30,31,32,30,31,32,31,32,32,267, AV 393
7188,205,228,255,102,73,256,189,254,223,232,230,76,172,237,191,276, AV 399
8236,194,287,243,173,178,242,251,264,124,250,126,113,208,211,227,25 AV 400
93,229,190,259,129,260,258,82,280,294,195,286,265,84,186,104,197/ AV 401
DATA 1X4/272,165,200,215,238,275,78,43,290,239,278,87,285,201,266, AV 402
1284,77,135,72,288,300,291,95,137,92,246,158,249,292,159,162,161,30 AV 403
24,305,26*0/ AV 404
C AV 405
C SET DEFAULTS AV 406
C AV 407
DATA HC/2.0/,XN/0.28/,NL/ll/,MJ3/5/ AV 408
DATA ITTL/4HSTAN,4HDARD,4H OZO,4HHE I.4HSOPL.4HETH ,4HCOND,4HITIO, AV 409
14HNS ,9*4H / AV 410
DATA IOUT/6/,INFO/0/,NPTO/0/.NGO/l/ AV 411
DATA OZP/.08,.12,.16,.20,.24,.28,.30,.32,.34,.36,.40,9*0./ AV 412
DATA TSRT/0.0/,DTIM/420./,Z1/510./,Z2/630./,DCON/0.0/ AV 413
DATA SIG/l./,SIGMA/l./,RCTY/.25,.75,8*0./,FINHC/.l,.9,8*0./,XNF/.2 AV 414
15,.75/,ALDX/.02,.03,2*0./,ALDCRB/1.,2.,2* AV 415
20./,FENX/.l,.9/,NI/0/,CARB/3.,'».,8*0./.FALHC/. 10000000,.900,8*0./ AV 416
DATA NEM/0/,BMIX(l)/-3./,MMIX/0/,EMHC(l)/-3./,EMNOX(l)/-3./ AV 417
DATA DSTRT/800./,DEND/1800./,PLTGRD/0./,OHC/0./,FCTR/0.6/ AV 418
DATA TICZ/0.07/,DIGZ/0.10/,CHRZ/0.10/,HCl/8.5/,XNl/5.95/ AV 419
DATA CHRS1Z/0.07/ AV 420
C-110
-------
BLOCK DATA
DATA FD/0.,.07,.14,.33,.50,.70/ . AV 421
DATA AMC/32.7892,10.9811,-26.3876,7.4405,3.4242/ AV 422
DATA BMC/0.0,6.8857,9.1918,-5.8492,-2.0545/ AV 423
DATA CMC/.1251,.6071,1.7325,2.3676,1.0239/ AV 424
DATA FG/0.,.02,.10,.58,.85,1.0/ AV 425
DATA IP/8/,RfCT/9*l./,NS/33/,KOZ/4/,PLSP/4H03 / AV 426
DATA KFACT/0/ AV 427
D'.TA HCSPEC/4HPROP.4HBUT ,8*4H /,ALDSPC/4HHCHO,4HALD2,2*4H / AV 428
DATA IH/12,24,8*0/,IALD/21,22,2*0/,INOX/l,2/,NHC/2/,NALD/2/ AV 429
DATA OZIN/0./,OZAL/0./,HCIN/0./,HCAL/0./,XNIN/0./,XNAL/0./ AV 430
DATA ERR/0.01/,TEMP/303.0/ AV 431
DATA ESTOP/0.0/,STOPP/600./,TPRNT/60./,TSTEP/60./ AV 432
DATA PLACE/4H LOS,4H AHG,4HELES,4H, CA,4HLIF.,4H / AV 433
DATA SLA/34.053/,SLO/llS.250/,TZ/8.0/,IY/1975/,IM/6/,ID/21/ AV .:4
DATA IN/5/ AV 435
DATA JSTRT/0800/,JSTOP/1900/,IINC/60/,TSTART/480./ AV 436
DATA UROUND/7.5E-9/ AV 437
DATA EXPMAX/87.4/ AV 438
DATA NSPARS/1/ AV 439
END AV 440-
C-lll
-------
TECHNICAL REPORT DATA
(Please read Instructions on the reverse before completing)
REPORT NO.
EPA-450/4-84-024
2.
3. RECIPIENT'S ACCESSION NO.
, TITLE ANDSUSTITLE
5. REPORT DATE
USER'S MANUAL FOR OZIPM-2: OZONE ISOPLETH PLOTTING
WITH OPTIONAL MECHANISMS/VERSION 2
August 1984
6. PERFORMING ORGANIZATION CODE
AUTHOR(S)
8. PERFORMING ORGANIZATION REPORT NO.
Gerald L. Gipson
. PERFORMING ORGANIZATION NAME AND ADDRESS
U.S. Environmental Protection Agency
Office of Air Quality Planning and Standards
MDAD, AMTB, Mail Drop 14
Research Triangle Park, North Carolina 2771
10. PROGRAM ELEMENT NO.
11. CONTRACT/GRANT NO.
12. SPONSORING AGENCY NAME AND ADDRESS
Same
13. TYPE OF REPORT AND PERIOD COVERED
14. SPONSORING AGENCY CODE
15. SUPPLEMENTARY NOTES
Ozone Isopleth Plotting with Optional Mechanisms/Version 2 (OZIPM-2) is a
computerized model that simulates ozone formation in urban atmospheres. OZIPM-2
calculates maximum one-hour average ozone concentrations given a set of input
assumptions about initial precursor concentrations, light intensity, dilution,
diurnal and spatial emission patterns, transported pollutant concentrations,
and reactivity of the precursor mix. OZIPM-2 also accepts as input any user
supplied chemical mechanism. The results of multiple simulations are used to
produce an ozone isopleth diagram tailored to particular cities. Such a diagram
relates maximum ozone concentrations to concentrations of non-methane organic
compounds and oxides of nitrogen, and can be used in the Empirical Kinetic
Modeling Approach (EKMA) to calculate the emission reductions necessary to
achieve air quality standards for photochemical oxidants. This user's manual
describes the technical basis, necessary and optional input data, computer code
and the use of OZIPM-2.
17.
KEY WORDS AND DOCUMENT ANALYSIS
DESCRIPTORS
b.lOENTlF!6RS/OPEN ENDED TERMS
c. COSATI Field/Group
Air pollution
Ozone
Hydrocarbons
Nitrogen Oxides
Meteorology
Atmospheric circulation
Mathematical models
Chemical kinetics
Nomographs
Programming Manuals
is. DISTRIBUTION STATEMENT
19. SECURITY CLASS (This Report)
Unlimited
21. NO. OF PAGES
289
20. SECURITY CLASS (Thispage)
22. PRICE
EPA Form 2220-1 (R«v. 4-77) PREVIOUS EDITION is OBSOLETE
------- |