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

-------