vvEPA
             United States
             Environmental Protection
             Agency
             Office of Monitoring
             and Technical Support
             Washington DC 20460
EPA-600/4-78-001
May 1978

    ENVIRONMENTAL
	PROTECTION
             Research and Development
                                AGENCY
                                           DALLAS, TEXAS
A  FORTRAN  Program
For Computing the
Pollutant Standards Index (PSI)

Environmental Monitoring Series

-------
                                           EPA-600/4-78-001
                                           May 1978
    A FORTRAN PROGRAM FOR COMPUTING THE
      POLLUTANT STANDARDS INDEX (PSI)

                    by

               Wayne R.  Ott

      Monitoring Technology Division
OFFICE OF MONITORING AND TECHNICAL SUPPORT
    OFFICE OF RESEARCH AND DEVELOPMENT
   U.S. ENVIRONMENTAL PROTECTION AGENCY
          WASHINGTON, D.C.  20460

-------
                                 DISCLAIMER

     This report has been reviewed by the Office of Research and Development,
U.S. Environmental Protection Agency, and approved for publication.   Mention
of trade names or commercial products does not constitute endorsement or
recommendation for use.
                                    11

-------
                                  FOREWORD

     Monitoring activities provide the most important quantitative informa-
tion available on the state-of-the-environment, thereby yielding a
scientific measure of the impact of environmental regulatory actions.  To
generate valid monitoring data, research is necessary to evaluate and improve
measuring instruments and techniques, develop criteria for designing
monitoring networks, carry out effective statistical analyses of monitoring
data, and give technical support to field monitoring activities.  The
Environmental Protection Agency's (EPA's) Office of Research and Development
(ORD) carries forward a broadly based national research program in air
pollution, water pollution, and other environmental topic areas.  Within the
ORD, the Office of Monitoring and Technical Support oversees research and
policies concerned with monitoring quality assurance, evaluation of
measurement methods, application of advanced monitoring techniques, and
development of improved methods for analyzing and handling environmental data.

     This report is intended to provide technical aids that will assist
State and local agencies in computing a nationally uniform air pollution
index, the Pollutant Standards Index.  Use of this index by air pollution
control agencies is covered under regulations that will be promulgated by
EPA in August 1978, as required by the Clean Air Act Amendments of 1977
(P.L. 95-95).
                                     iii

-------
                                 ABSTRACT

     This report gives full documentation and serves as a user's manual
for INDEX.PLOT, a FORTRAN computer program designed to calculate the
Pollutant Standards Index (PSI).   The PSI was proposed in the
Federal Register in September 1976 by the Environmental Protection Agency
as a nationally uniform air pollution index and is intended for use by
State and local air pollution control agencies under Section 319 of the
Clean Air Act.  This computer program, which was originally developed to
test the structure of PSI, has now been expanded as a general purpose
program which can compute daily index values for a month, a season, a year,
or longer.  The program consists of 563 FORTRAN statements and contains
seven specialized subroutines.  By use of the subroutines, the main
program:  lists the raw data, along with any data set labels; inventories
missing values in the data set; plots a time series graph of PSI values on
the line printer; calculates statistics for PSI (mean, standard deviation,
range, coefficients of skewness and kurtosis); and generates and plots a
frequency distribution of PSI values, along with cumulative frequencies,
on the line printer.  A complete listing of the program is given, along
with sample outputs and descriptions of each subroutine.  This program can
be used for describing air quality trends, comparing data from different
monitoring stations, and developing environmental quality profiles.
                                     iv

-------
                                   CONTENTS
Foreword	-	
Abstract	   iv
Acknowledgment	   vi

    I.  Introduction .  .  -  ,	    1
   II.  Structure of the Program	    2
             MAIN Program	    3
             Arrays  	    4
             Subprogram BLOCK DATA 	    6
             Subroutine TITLE   	    6
             Subroutine PRINT   	    6
             Subroutine CHECK   	      6
             Subroutine PSI	    7
             Subroutine TOTAL	,	    9
             Subroutine STAT    	    9
             Subroutine HISTOG  	   11
  III.  Running the Program	   13
             Input Data	   13
             Presentation of Data	,	   14
             Program Running Costs 	   15

References	   19
Appendices

     A.  Program Listing of INDEX.PLOT  	   21
     B.  Sample Output of INDEX.PLOT Using Data from
         Newark, New Jersey, 1974	   37
     C.  Raw Data File for Newark, New Jersey, 1974	   58
                                       v

-------
                              ACKNOWLEDGMENT

     I wish to thank William F. Hunt, Jr., for his extensive work in
preparing the data sets that were used in the development of this computer
program and his assistance in writing the PSI subroutines.  I wish also to
thank Gladys Bennie for her tireless and careful typing of this prosaic
report.
                                    vi

-------
                             I.   INTRODUCTION

     In May 1974, Thorn and Ott1  began a national survey of existing air
pollution indices—those in the literature and those used by air pollution
control agencies.  From the survey findings, they identified the structural
characteristics for a nationally uniform air pollution index.2>3  In
September 1976, the EPA formally adopted a recommended nationally uniform
air pollution index based upon this original structure—the Pollutant
Standards Index (PSI).'S5 The history of the PSI's development, along with
examples of its application to data and the theoretical basis for various
air and water pollution structures, has been documented in a recent book.6

     The PSI was intended to be used by State and local air pollution
control agencies for reporting air quality data to the public on a daily
basis.  At that time, although its use by air pollution agencies was
completely optional, a number of agencies adopted it.   With passage of the
Clean Air Act Amendments of 1977, the PSI has been given greater importance.
Section 309 of the Clean Air Act Amendments  requires that a national air
quality monitoring system be established using a uniform air quality index.

     During the development of the PSI, a special FORTRAN computer program,
INDEX.PLOT, was written to evaluate the index and to test the effect of
changing various breakpoints.  Once the characteristics of the index were
finalized, INDEX.PLOT was modified so that it could be used as a general
purpose program to calculate the PSI from existing air quality data.  A
study by Ott and Hunt9 used INDEX.PLOT to evaluate the performance of the
PSI with air quality data from eight United States cities.

     The present report was written to serve as a user's manual for
INDEX.PLOT.  Thus, it contains the final version of the program, full
documentation of the software, and samples of its output with actual air
quality data.   This computer program is particularly useful for displaying
air quality data over relatively long time periods (a month, a season, or
a year) or for comparing air quality levels at different monitoring
locations.  A companion document   has been prepared to assist users in
rapidly calculating the PSI on a daily basis without a computer.  Examples
of applications of PSI to data from various United States cities can be
found in the literature on this topic.6'9'11

-------
                       II.  STRUCTURE OF THE PROGRAM

     The complete program, INDEX.PLOT, is listed in Appendix A.  It
contains over 700 lines, with 563 FORTRAN statements.  Many comments are
included internally within the program to assist the user in understanding
the program steps or in making changes in the software.  The logic of the
program is relatively simple and should be easy for the user to follow.

     The overall program consists of a main program which calls seven
subroutines:

          1.   TITLE

          2.   PRINT

          3.   CHECK

          4.   PSI

          5.   TOTAL

          6.   STAT

          7.   HISTOG

Each subroutine performs an independent function, although some subroutines
depend upon the output from the preceding ones.

     The principal function of the main program is to read the data file,
storing the information in various arrays.  For example, the raw
observations of pollutant concentrations are stored by the main program
in the two-dimensional array STORE.  Once they are stored, the subroutine
PRINT lists the raw data so that the user can  examine the input values.
The subroutine TITLE merely reads and writes out any titles that accompany
the raw data.  The subroutine CHECK inventories the missing values by
pollutant and prints the result in tabular form.  Next, the PSI and all its
subindices are computed by the PSI subroutine.  For each input record, a
graphical time series plot of the PSI value, along with the critical
pollutant and a descriptor word, is printed on the line printer by the PSI
subroutine.  This subroutine also counts the number of records for which at
least one pollutant is present  (i.e., nonmissing records) and stores the
result in N.  Then the subroutine TOTAL is executed to count the number of
different descriptor words for each subindex,  including the PSI, and the
number of critical pollutants.  Next, the subroutine STAT is executed, which

-------
computes basic statistics for the PSI values, such as the mean, standard
deviation, coefficients of skewness and kurtosis.  Finally, the subroutine
HISTOG generates a plot of the histogram of the PSI values on the line
printer, along with a listing of the individual and cumulative frequencies.
In the present version of the program, the histogram interval width is 5 PSI
units, and the full histogram range is 5(100) = 500 PSI units.  Any PSI value
which exceeds 500 is listed immediately after the histogram is printed.  In
the United States, a PSI value above 500 is a very rare occurrence and
generally denotes an error.

MAIN Program

     The MAIN Program begins by initializing J, which is intended as a
counter to count the number of records read (J = 1 for the first record).
A "record" consists of a line of data, in card image format, with the date
and five air pollutants always listed in the following order:  carbon
monoxide (CO), ozone (03), nitrogen dioxide (NC>2), sulfur dioxide (SOa), and
total suspended particulates (TSP).  See Section III for details about the
input data format.  The vectors LINE(IOO) and MSUM(7,6) then are cleared, and
a code for missing values, Z, is set.  In the data read for this example
(Appendix C), each missing value is coded as Z = 999.99.  Of course, Z can
be set to any other numerical value, depending upon the coding system
established for the data.  Missing values must be dealt with in this
fashion so that they will not be erroneously treated as zeros and
accidentally included in the calculation of the mean and other statistics.

     The READ statement then reads values for ITEST (a code for the
beginning and end of the file), ID  (6 integer values of date:  month, day,
and year), and STORE (5 floating pollutant values:  CO, Os, N02, SOa, and
TSP).  If a title is to be read in with the data, the title (not to exceed
80 alphanumeric characters) is inserted in columns 1-80 just before the
first data record.  This title record must be preceded by a line containing
"11" in columns 1-2.  Whenever such a line is encountered, ITEST = 11
causes the TITLE subroutine to be executed, which reads the title, stores it
in LINE(80), and writes it out again.  As many title lines as desired may be
included before the data, and these will be printed on the first page of the
output to assist the user in identifying the run.  At the end of all data, a
"99" must be entered in column 1-2 to indicate that the end of the file has
been reached.  When this record is encountered, ITEST = 99 causes execution
to transfer to Statement #900 of the MAIN Program, and computation begins.

     As each data record is read, the pollutant concentrations on the record
are stored in the first five "columns" of the two-dimensional array
STORE(400,6), with the product TSP x S02 stored in the sixth column.  Each
"row" of this array usually corresponds to a day of the year and, therefore,
only the first 365 rows of this array usually are filled.  Thus, for the
first record  (first day of the data set), the five pollutants are stored in
STORE(l,k), where k = 1,2,...,5.  Next, the product TSP x S02 is computed
by multiplying STORE(1,4) x STORE(1,5) and storing the result into
STORE(1,6).  If either STORE(1,4) or STORE(1,5) contains Z, the code for a
missing value, then STORE(1,6) also is set to Z, denoting that the product
also is missing.  For each record, the PRINT subroutine then is executed.

-------
This subroutine prints the date and the values for six pollutants, including
the product.  The record counter J is printed also, giving the user an index
to facilitate comparison of different dates.  As with other parts of the
program, not more than 400 records (usually 365 are used to cover a year of
data) can be printed.  Once the data are printed for a given record, the
record counter J is incremented by 1, and execution returns to Statement #1.

     FORMAT Statement #100 governs the manner in which the data are read into
the program.  In the version of the program listed in Appendix A, the concen-
tration data are input as five real values  (F7.2 format), beginning at
column 22 and separated by one column each.  For other data formats, Statement
#100 should be modified.

     When the end of file code is encountered (ITEST = 99), execution trans-
fers to Statement #900.  The actual number of records  (days) read is stored
in NSUM = J-l.  The computations then are carried out  from the MAIN Program
by executing various subroutines.

     In the present version of the program, the units  are set manually.  If
different combinations of units are used in successive runs, the user may wish
to modify the input section of the program so that the units can be set
automatically on each run from codes contained within  the data.

Arrays

     The arrays in INDEX.PLOT are used by the MAIN Program and its subroutines
for the following purposes:
        LINE(100):
     •  XI(100):


     •  JHIST(IOO):



     •  PVAL(IOO):



     •  CUMVAL(IOO)
Stores the alphanumeric label that
identifies each data set.  Stores the
alphanumeric characters that are used to
print each line of the PSI time series
plot.  Stores the alphanumeric characters
that are used to print each line of the
histogram.

Stores the abscissa of the histogram, as
computed from the subroutine HISTOG.

Stores the number of PSI observations per
histogram interval, as computed from the
subroutine HISTOG.

Stores the frequencies of PSI values per
histogram interval, as computed from the
subroutine HISTOG.

Stores the cumulative frequencies of PSI
values per histogram interval, as
computed from the subroutine HISTOG.

-------
   RIVAL(100):
•  STORE(400,6)
   VALUE(400):
•  ID(400,6):
•  IUNITS(5):
•  MSUM(7,6):
   SUB(7):
   L(400):
•  NC(7):
Stores any individual PSI values that
exceed the range of the histogram, as
computed from the subroutine HISTOG.

Stores up to 400 records of raw data
(6 pollutants per record) and is
filled during execution of the MAIN
Program.

Stores up to 400 PSI values, as computed
in the PSI subroutine.  No PSI value is
stored in this array if, for any record,
all pollutants are missing.

Stores up to 400 dates, one for each
record in which the date consists of 6
integer values (month, 2 digits; day,
2 digits; year, 2 digits).  This array
is filled during execution of the MAIN
Program.

Stores a code for the units in which the
pollutants are expressed, one integer
value for each of five pollutants  (CO,
03, N02, S02, and TSP).  Here, ug/m3 is
coded as "1"; mg/m3 as "5"; and ppm as
"7".  These values are established in
the MAIN Program.

Stores the number of PSI values falling
into each descriptor category.  For
MSUM(I,M), I denotes the variable as
follows:  CO (1=1), 03  (1=2), NOa  (1=3),
S02 (1=4), TSP (1=5), TSP x S02 (1=6),
PSI (1=7), and M denotes the descriptor
category:  "Good" (M=l), "Moderate" (M=2),
 "Unhealthful"  (M=3),  "Very Unhealthful"
(M=4), "Hazardous" (M=5), and "Total"  (M=6)

Stores the six subindex values and the PSI
value and is used for temporary storage in
subroutine PSI.

Stores a code to identify the pollutant
with the maximum subindex  (i.e., the
"critical pollutant").  These codes are
determined during execution of the
subroutine PSI.

Stores the number of times each critical
pollutant appears and is computed in the
subroutine TOTAL.

-------
     •  P(7):           Stores the percentage of times that each
                       critical pollutant appears and is computed
                       in the subroutine TOTAL.

     The following sections discuss the subroutines and subprograms in
INDEX.PLOT.  A total of seven subroutines is called by the MAIN Program.

Subprogram BLOCK DATA

     The subprogram BLOCK DATA is necessary to store the alphanumeric
characters in common storage.  For example, MARK1 and MARK2 denote the
symbols "*" and "+", respectively, for use in graphing the individual and
cumulative frequencies in the histogram generated by the subroutine
HISTOG.  If the user wishes to change "+" to "C" in this histogram to
depict the cumulative frequencies more clearly, he merely changes the
symbol within the single quotation marks to read MARK2/'C   '/•

Subroutine TITLE

     The subroutine TITLE reads and writes out a title which usually
occurs at the beginning of each data set just before the data begin.
The title can be omitted or included.  If it is included, each line of
the title must be preceded by a record containing  "11" in column  1-2.
This code tells the program that the next line is  to be read and  printed
as a title and does not contain data.  The title can contain any
alphanumeric character but must not exceed 80  characters.

Subroutine PRINT

     The subroutine PRINT  (J,ID,STORE) prints  the  input data so  that  the
user  can examine his raw data.  For each integer value of J, it  prints  a
single line of output  containing the date, along with six pollutant
concentration values  (CO, 03, N02, S02, TSP, and TSP x S02).  The date
is printed as six integer characters from the  array  ID(400,6), and the
pollutants are printed as six floating numbers from  the array STORE(400,6),
The subroutine cannot  print more than  400 lines, and the usual data set
consists of 365 lines, one for each day of the year.

Subroutine CHECK

      The subroutine CHECK  (NSUM,STORE,Z) carries out an inventory of
missing values in the  array  STORE(400,6).   In  the  program listed in
Appendix A, missing values are coded as  Z =  999.99,  and,  therefore, this
subroutine is actually counting up the number  of 999.99's in the data set,
by pollutant.  Because NSUM  is the total number  of records  (i.e., days)
available, this subroutine simply  goes  through the STORE  array on a
pollutant-by-pollutant basis, counting up the  number of missing  values.
Then,  it prints the count  for each pollutant.  The count  for the product
TSP x  S02, since it depends  upon  the availability  of two  other pollutants,
is not included.

-------
Subroutine PSI

     The subroutine PSI (J,N,STORE,VALUE,IUNITS,MSUM,SUB,L) calculates the
PSI values.  It is called for each individual record (i.e., day).  For
example, for the first record, J = 1 and each of the six pollutants is
obtained from the first row in the STORE array.  The CO concentration is
obtained from this row as T = STORE(1,1).  If T = Z, a missing value for
CO has been encountered, and the CO subindex computation is skipped
(i.e., GO to 13).  If the CO value is present, a test is carried out to
determine whether the concentration is expressed in volumetric units,,
IUNITS(1) = 5, or gravimetric units, IUNITS(1) =7.  If the concentration
is in gravimetric units (mg/m3 for CO), the top portion of the program is
executed (beginning at Statement #11).  If the concentration is in
volumetric units (ppm), the lower portion of the program is executed
(beginning at Statement #12).  This general procedure is repeated for all
pollutants in the computation section, between Statements #11 and #63 of
this subroutine.

     After Statement #63 is executed, the results of the computation
section are analyzed.  The subindex values first are stored in the first
six elements of the vector SUB(7).  Then, PSI is computed using the AMAX1
function, which determines the maximum of the six elements, and is stored
as the seventh element of SUB.  By testing to see which of the six subindex
values equals PSI in the DO loop ending at Statement #65, the critical
pollutant is identified, and a code for the critical pollutant is stored
in the array L(400).  The codes are as follows:

                 POLLUTANT                   CODE

                 CO                            1

                 03                            2

                 N02                           3

                 S02                           4

                 TSP                           5

                 TSP x S02                     6


The maximum subindex, which is the PSI value, is stored in the array
VALUE(400), with the statement VALUE(N) = T.  The value of N is a count
of the number of valid PSI values stored in this array  (i.e., missing
values are not included), and N is incremented just before each PSI value
is stored.

     This subroutine prints the time series graph on the line printer.
First, markers in the form of alphabetic characters "I", are stored in
the alphanumeric vector LINE(100) at intervals of 20 characters each.
This is accomplished by the DO loop ending at Statement #70.  Then the

-------
subindices are sorted into the five PSI intervals, and the number of values
in each interval is tabulated, by pollutant variable, and stored in the
array MSUM(7,6).  The seven rows of this array denote the six pollutants
plus the PSI value, and the first five columns contain the number of
descriptor words in each of the following PSI ranges.  (The sixth column is
reserved for the totals that are computed later in the subroutine TOTAL).
     Interval Code              Descriptor               PSI Value

         M = 1               Good                      T ^50

         M = 2               Moderate                  50  < T  <_ 100

         M = 3               Unhealthful               100 < T  < 200

         M = 4               Very Unhealthful          200 ^T  < 300

         M = 5               Hazardous                 300 < T
Because each character on the line printer corresponds to 5 PSI units, the
PSI values are divided by 5.0, and converted to an integer through the
statement K = 1FIX(T/5.0).  For any subindex that exceeds 100, an
alphabetic pollutant character is inserted at the appropriate point in the
vector LINE(100); that is, in LINE(K).  The pollutant characters that are
inserted are as follows:
         Pollutant
         Character               Variable              Pollutant

            "C"                   MARKC                CO

            "0"                   MARKO                0
            "N"                   MARKN                 NO
                                            3

                                             2

"S"                   MARKS                S02

"T"                   llARKT                TSP

"P"                   MARKP                TSP x
     The pollutant code for the PSI "critical pollutant" is stored  in  the
variable MEM, so it can be printed on the line printer as a time series
graph.  Five possible formats are used in printing this graph, depending
upon the value of MEM (Statements #81, #82, #83, #84, and #85).  The format
for each statement uses a different descriptor word.  Once  the vector LINE
has been  used,  it  is  cleared  by  setting  all of  its  elements  equal  to  the
alphanumeric character for a blank, IBLANK.   (These alphanumeric characters

                                      8

-------
 defined earlier in the BLOCK DATA subprogram.)  If all subindices have
sing values, no PSI values can be calculated, and execution bypasses
 analysis section and transfers to Statement #15 at the end of the PSI
routine, where FORMAT #220 is executed.  This format prints a line of
 line printer graph in which PSI = 0, and there is no pollutant code
 no descriptor word.

routine TOTAL

  The subroutine TOTAL(MSUM,L,NSUM,NC,P) generates summary information
ut the number of values falling in each PSI descriptor word range, by
lutant.  The results are expressed both as integer totals and as
centages.  A summary of the critical pollutants also is presented.  The
ults of this subroutine appear in three tables on a single page of
put.  Before TOTAL is executed, the number of observations by sub index
 by descriptor word already are stored by the subroutine PSI in the
ay MSUM(I,M).  In this array, I denotes the pollutant code (in which
 7 denotes PSI), and M denotes the interval code  (for M = 1,2,. ..,5, as
ted in  the above table) .

  The total number of descriptor words for each subindex is first
puted and stored in the sixth column (M = 6) of the array MSUM.  Then the
ber of words, by descriptor category, is printed for each subindex.  The
ber of words, by descriptor category for PSI itself, is printed last — from
 seventh row of the MSUM array (I = 7).  Next, the number of values within
h subindex and descriptor category is divided by the total number of
ues and multiplied by 100 to give a percentage distribution by descriptor
d and pollutant.  This makes it possible to produce PSI bars (see Section
) and other frequency plots quite easily.

  Finally, the critical pollutant codes stored in the vector L(400) are
entoried by this subroutine.  This inventory is accomplished by setting
L = L(I) for each record from I = 1 to I = NSUM, inclusive.  Then, the
ber of times that IVAL = 1, IVAL = 2, IVAL = 3, etc. is counted and
red in the first six elements of the vector NC(7) to denote the critical
lutant.  IVAL = 7 denotes a missing value.  The elements of NC are then
med, the percentages are computed, and the number of values and
centages, by pollutant, are printed.

routine STAT

  The subroutine STAT(N, VALUE) is a general subroutine designed to compute
ndard statistical information for the first N values stored in the array
UE(400), which contains PSI values.  The subroutine computes the following
tistics using the following formulas:

        Arithmetic Mean
                n

-------
Second Moment About the Mean
          n
         V Cv
         ltlC±
    "2       n - 1
Standard Deviation
Coefficient of Variation
        S2
Third Moment About the Mean
          E
          1=1
              n
Fourth Moment About the Mean
          n          4
          E (-i - *)
    s, =
      ,
      4        n
Coefficient of  Skewness
     '1     1.5
         m_
Coefficient  of  Kurtosis
                        10

-------
As indicated by Hahn and Shapiro,12 the above measures are useful for
characterizing the shape of the frequency distribution of any set of
observations.  Because the first N values stored in the array VALUE(400)
usually consist of the PSI values calculated by the subroutine PSI for a
year of data, these statistics are helpful in describing the overall
features of the distribution of the PSI values computed for the year.
Examination of this subroutine will reveal that no special steps are taken
to deal with missing values, because only the "nonmissing" PSI values have
been stored in the array VALUE.

Subroutine HISTOG

     The subroutine HISTOG(INSTR,N,VALUE,BASE,DELTA) partitions the N
values contained in the array VALUE(N) into 100 intervals of equal size
DELTA.  The partitioning begins at the value specified by BASE and ends
at the value specified by TOP =  (100)(DELTA) + BASE.  Thus, the range of
the partitioning process is (100)(DELTA) units.  Then the subroutine
prints a histogram showing the results on the line printer.

     This subroutine first tests  each value contained in the array VALUE
to see if it is zero; if so, it increments IZERO, which counts the total
number of zero values.  To compensate for FORTRAN decimal conversion error
inherent in the IBM system, each  number in the array VALUE is incremented
by 0.000001.  If the incremented  number PVALUE is less than BASE, ILOW is
incremented, which counts the number of values below the range.  If the
PVALUE is less than TOP, execution proceeds; if not, IEXCES is incremented,
which counts the number of values above the range.  If INSTR = 1, and
PVALUE exceeds TOP, the (unincremented) value is stored in the array RIVAL
so that it can be printed at the  end of the histogram.

     Sorting is carried out by the DO loop that ends at Statement #25.
For each iteration of this loop,  SDELTA is incremented by DELTA.  Thus,
for J = 1, SDELTA = DELTA, and TDELTA = SDELTA + BASE = DELTA + BASE.
Then, the subroutine tests to see if PVALUE is less than (LT) TDELTA.
If it is not, then PVALUE must still be greater than TDELTA, and execution
continues in the loop, thereby incrementing SDELTA again.  As soon as this
condition is fulfilled; namely, that PVALUE is less than TDELTA, execution
transfers out of the loop, because PVALUE must be within the following
interval:

                      (TDELTA-DELTA) < PVALUE < TDELTA

For example, if the value lies in the second interval, then, for the
first iteration (J = 1), PVALUE will not be less than TDELTA and the
condition will not be fulfilled.  For the second iteration (J = 2),
PVALUE will be less than TDELTA = 2(DELTA) + BASE, and the condition
will be fulfilled.  Thus, JHIST(2) will be incremented, indicating that
the value lies in the second interval.  If the number of values outside of
the range exceeds 100, then an error message is printed suggesting that
DELTA be increased.  Finally, the number of histogram points are summed
by adding all of the elements in JHIST.  When combined with the integer
count IEXCES, the result will equal the total number of values contained

                                      11

-------
in JHIST, less those below the BASE.  Notice that values less than the BASE
are excluded from all histogram computations, such as the calculation of
cumulative frequencies.  (For INDEX.PLOT, this feature is of little
importance, because the BASE is set to zero.)  Although zero values are
counted separately and the count is stored in IZERO, this count does not
affect the histogram operation, and any zero value will be included in
the first interval.

     The abscissa is created and stored in the vector XI(100) by
successively adding DELTA to the BASE.  The individual frequencies are
computed and stored in the vector PVAL(IOO), while the cumulative
frequencies are stored in the vector CUMVAL(IOO).  Finally, the line
printer prints the abscissa, the number of values in each interval, the
individual frequencies, a graph of the individual and cumulative
frequencies, and the listing of cumulative frequencies for the full 100
intervals.

     When the subroutine HISTOG is called from the MAIN Program, the BASE
is set to zero, and the interval width automatically is set to 5.0
(BASE =0.0 and DELTA = 5.0).  Consequently, the range always is between
0 and 500, which is generally appropriate for plotting PSI values.
                                      12

-------
                         III.  RUNNING THE PROGRAM

Input Data

     Because the PSI is based on the U. S. National Ambient Air Quality
Standards (NAAQS), INDEX.PLOT requires input data in a form consistent with
the averaging times used in the NAAQS:

               Pollutant                        Averaging Time

               CO                                8-hr Average*

               03                                1-hr Average

               N02                               1-hr Average

               S02                              24-hr Average*

               TSP                              24-hr Average

               TSP x S02                        24-hr Average

For CO and S02, EPA recommends that the data be specified as "running"
averages.  For example, each 24-hour period has 24 8-hour CO running
average values, one beginning at each hour of the day.

     For the pollutants with running averages, the INDEX.PLOT program used
the highest average value in any 24-hour period.  That is, the highest
8-hour CO concentration of the 24 individual average values was used for
the computer run given in Appendix B.  The raw data are listed in Appendix
C and come from air monitoring activities in Newark, New Jersey, in 1974.
Because this format differs from the standard EPA Storage and Retrieval of
Aerometric Data (SAROAD) format, EPA sponsored the development of
specialized computer software for retrieving air quality data from SAROAD
in this format.  Users wishing additional information about this software
or about INDEX.PLOT should contact Jon Clark, Project Officer, Office of
Air Quality Planning and Standards, U.S. Environmental Protection Agency,
Research Triangle Park, North Carolina  27711.  This software is documented
in a report by Bennett.13
*Running average concentration.
                                     13

-------
     The data files for INDEX.PLOT ordinarily are set up as specified in
the comments contained in the main program.  For the example given in the
appendices, a title was used.  This title specified the monitoring station
code, the city,  and the pollutant names and units.  As indicated in the
above discussion of the main program, a title will be read and printed only
if the integer value "11" is specified in columns 1-2 of the record
immediately preceding the title record.  The title itself, consisting of
any alphanumeric characters, is placed on columns 1-80.  As many title
lines as desired may be used, but each line must be preceded by a record
containing "11."

     The data then are read according to FORMAT Statement #100.  In the
present version of the program, each data record contains the date
(columns 22-41), listed in the same order discussed above (month, day,
year).  The dates, which are merely read and then printed, can be omitted,
since no computations are performed on them.

     At the very end of the data file, a record must be inserted contain-
ing "99".in columns 1-2 to indicate that no more data are coming and that
computation is ready to begin.  Appendix C contains a listing of the raw
data file used by the program given in Appendix A to generate the output
shown in Appendix B, and the user should refer to this raw data listing
in setting up his own data file.

Presentation of Data

     The output of INDEX.PLOT consists of  seven basic items, each produced
by the subroutines described in the previous sections:

          1.  Title of the data set  (if specified)

          2.  List of the input data  (reformatted)

          3.  Count of the missing values, by pollutant

          4.  Graphical time series plot of PSI values on the line printer

          5.  PSI summary tables

          6.  Statistical results

          7.  PSI histogram and cumulative frequencies

     The first three items are intended only as reference information for
the data analyst, while the last four items can be used directly to create
figures and visual displays of PSI values.  Examples of plots based on the
time series output can be found in the PSI computer evaluation conducted
by Ott and Hunt   based on data from eight cities and in the book on
indices by Ott.6  Probably the most useful output of INDEX.PLOT is item #5,
the PSI summary tables, which enables the data analyst to generate bar
charts of the number  (or percentage) of PSI values in each descriptor
category.  These can be listed for each pollutant or for PSI itself.  One

                                      14

-------
approach is to display each of the PSI subindices on an adjacent bar.  If
the overall lengths of the bars are identical, with the lengths of shaded
areas on each bar corresponding to the proportion of the time period within
each descriptor category (i.e., proportion of days in the "good,"
"moderate," "unhealthful," ranges, etc.), the result is called a "PSI bar."
PSI bars are recommended by the author6 as a desirable technique for
comparing ambient air quality in different cities or at different air
monitoring stations.

     Figures 1 and 2 show colored PSI bars calculated from the output runs
of INDEX.PLOT which originally were used to prepare an article by Ott and
Hunt.9  These figures also appear in my recent book6 on indices, which
describes the advantages and possible applications of PSI bars in greater
detail.  In these two figures, PSI bars have been constructed for five
United States cities with relatively complete data sets (Figure 1) and for
three United States cities with data sets with many missing values
(Figure 2).  The colors were selected by Robert Flanagan of EPA's Office of
Public Awareness to depict psychologically a gradual worsening of air
quality.  The goal was to communicate the message with a minimum effort and
concentration on the part of the reader.  Standard colors (e.g., blue,
yellow, orange, and red) were found to be somewhat less effective for this
application because they required the reader to "learn" the meaning of each
color and, therefore, a "sense" of the severity of the air pollution
problem in each city was not perceived automatically or intuitively.  It is
hoped that PSI users will consider the colors given in Figures 1 and 2 as a
possible standard set of colors for reporting PSI descriptor categories to
the public.  (These colors were described to the printer as follows:
"good," 30% PMS process blue; "moderate," 50% PMS process blue and 10% PMS
253 purple; "unhealthful," 50% PMS 253 purple; "very unhealthful," 100% PMS
253 purple.)

     The statistical results generated by the program output can be used to
summarize PSI values in concise, tabular form, and the histogram plot can
be used directly to plot PSI on logarithmic probability paper, or on other
types of probability paper.  Figure 3, taken from the article by Ott and
Hunt,  shows an example of a logarithmic probability plot of PSI values for
five United States cities.   Readers wishing additional examples of ways to
display the PSI, and additional information on the index itself, are
advised to consult the literature.1 ~7>9-11

Program Running Costs

     This program was run on the IBM 370 computers that serve EPA through
its contract with COMNET in Bethesda, Maryland.  The program required 7.54
central processing unit seconds and cost $4.13 for the example contained
in this report.  It is expected that the cost of running INDEX.PLOT on
data from most United States cities generally will be less than $5.00 per
run.
                                     15

-------
     ANAHEIM, CA
CO
NO;

SO;
TSP
PSI
                                                                                        ""•' r g (n = 365)
     LENNOX, CA
CO
NO;
S00
TSP
PSI
                                                                                             (n = 365)
     LOS ANGELES, CA
CO
NO;

SO,
TSP
PSI
                                                                                              (n-364)
     CAMDEN, NJ
SO
TSP
PSI  [
   (n = 356)
CO
     NEWARK, NJ
PSI
                              MODERATE                 j  UNHEALTHFUL

      Figure 1  PSI Bars calculated by the author for five U S cities, from 1974 data
                                                                                              
(VERY
UNHEALTHFUL
                                                16

-------
     CHICAGO, IL
PSI
                                                                                                (n =364)
     HOUSTON, TX
CO
NO;

SO '
TSP
PSI
                                                                                                (n = 336)
     SEATTLE, WA
PSI
      |  | GOOD               MODERATE                F"| UNHEALTHFUU

      Figure  2  PSI-bars calculated from data sets with many missing values, 1974 data
                                                                                              •3 (n - 357)
I VERY
UNHEALTHFUL
                                                 17

-------
O
LU
QC
>
I-
                                                                                                                                  3
                                                                                                                                  I
                                                                                                                                  re

                                                                                                                                  c
                                                                                                                                  o
                                                                                                                                 oo

                                                                                                                                 Z)
Q.

H—

 O




_O

 Q.
                                                                                                                                 -Q
                                                                                                                                  re


                                                                                                                                 I
                                                                                                                                  Q.

                                                                                                                                  U

                                                                                                                                  E

                                                                                                                                 +^
                                                                                                                                  ^
                                                                                                                                  CO

                                                                                                                                  o
                                                                                                                                  3
                                                                                                                                  O)
                                                              18

-------
                                 REFERENCES

 1.   Thorn,  Gary C.,  and Wayne R.  Ott,  "Air Pollution Indices:  A Compendium
     and Assessment  of Indices Used in the United States and Canada,"
     Ann Arbor Science Publishers,  Ann Arbor, MI, 1976.

 2.   Thorn,  Gary C.,  and Wayne R.  Ott,  "A Proposed Uniform Air Pollution Index,"
     Atmospheric Environment, vol.  10, 1976.  p. 261.

 3.   Ott, Wayne R.,  and Gary C. Thorn,  "A Critical Review of Air Pollution
     Index Systems  in the United States and Canada," Journal of the Air
     Pollution Control Association, vol. 26, no. 5, May 1976.  pp. 460-470.

 4.   U.S. Environmental Protection Agency, "Guideline for Public Reporting
     of Daily Air Quality," Federal Register, vol. 41, no. 174, September 7,
     1976.   p. 37660.

 5.   Hunt,  William F., Jr., Wayne R. Ott, John Moran, Raymond Smith,
     Gary Thorn, Neil Berg, and Barry Korb, "Guideline for Public Reporting
     of Daily Air Quality—Pollutant Standards Index (PSI)," Office of Air
     Quality Planning and Standards, U.S. Environmental Protection Agency,
     EPA 450/2-76-013, Research Triangle Park, NC, August 1976.

 6.   Ott, Wayne R.,  Environmental Indices:  Theory and Practice, Ann Arbor
     Science Publishers, Ann Arbor, MI, 1978.

 7.   Hunt,  William F., Jr., Raymond Smith, Wayne R. Ott, and Wilson B. Riggan,
     "The Pollutant Standards Index (PSI)—An Early Warning System for Air
     Pollution," presented at the Eighth International Scientific Meeting of
     the International Epidemiological Association, Las Croabas, Puerto Rico,
     September 18-23, 1977.

 8.   Clean Air Act  Amendments of 1977 (P.L. 95-95), August 7, 1977.
     42USC7401.

 9.   Ott, Wayne R.,  and William F.  Hunt, "A Quantitative Evaluation of the
     Pollutant Standards Index," Journal of the Air Pollution Control
     Association, vol. 26, no. 11,  November 1976.  pp. 1050-1054.

10.   Wallace, Lance A., and Wayne R. Ott, "Rapid Techniques for Calculating
     the Pollutant  Standards Index  (PSI)," U.S. Environmental Protection
     Agency, Washington, DC, EPA-600/4-78-002.

11.   Rubin, Edward  S., Richard W. Walters, Paul J. Grogan, and
     Sara M. Friedman, "Comparative Analysis of Present and Proposed Air
     Pollution Indices for Allegheny County," presented at the 70th Annual

                                      19

-------
     Meeting of the Air Pollution Control Association, Toronto, Ontario,
     Canada, June 20-24, 1977.

12.   Hahn,  Gerald J.,  and Samuel S.  Shapiro, Statistical Models in
     Engineering, John Wiley and Sons,  Inc., New York, NY, 1967.

13.   Bennett, John, "Pollutant Standards Index (PSI) Multi-pollutant
     Retrieval Software," Report by  Systems Research and Development Co.
     for the Council on Environmental Quality and the U.S. Environmental
     Protection Agency, Research Triangle Park, NC, 1977.
                                      20

-------
         APPENDIX A




PROGRAM LISTING OF INDEX.PLOT
             21

-------
c  PROGRAM NAME * INSPLQTI (COMPLETED MARCH 30,
C  PROGRAM IS WRITTEN IN FORTRAN ly AND HUNS ON THE 031 IBM 360/370
C      PROGRAMMER 13 WAYNE R, OTT
C  U.S. ENVIRONMENTAL PROTECTION AGENCY
C  PROGRAM IS DESIGNED TO PLOT AND ANALYZE PSI AIR POLLUTION INDEX,
c      APPLYING IT TO REAL DATA
c  PROGRAM READS FIVE AIR POLLUTANTS PER RECORD (CARD IMAGE FORMAT)
C      POLLUTANTS s CO,D3,NQ2,SOa,TSP WITH F7.2 FORMATS IN COL 11-60
C      SET Z TO THE CODE FOR MISSING VALUES
C      A "99" IN COL. 1«2 SHOULD APPEAR AT END OF DATA SET
C      INCLUDE DATA SET TITLES BY INSERTING THE 60-CHARACTER TITLE BEFORE
C      THE DATA, PRECEDED BY A LINE *ITH "11" IN CUL. 1-2
C
C
c   * * *  HOUSEKEEPING SECTION  * * *
c
      COMMON /A/LINE(100),IBLANK,MARKI,MARK1,MARK2
      COMMON /B/MARKC,MARKO,MARKN,MARKS,MARKT,MARKP
      COMMON /C/XI(100),JHISTUOO),PVAL(100),CUMVALUOO)
      COMMON /OXHIVAL(IOO)
      DIMENSION STORE(
-------
      IFUTEST. EQ.U)   CALL TITLE
      IFdTEST.EQ.U)   GO TO 1
      IF   STQRECJ,6)«Z
      IF (STORE (J,«).N£.Z. AND. STORE (J»5).NE.Z)
     1   STORE{J,6)»STQRECJ,4)*STORE
-------
      BLUCK DATA
      COMMON /A/LIN£UOO),IBLANK,MARKI,MARK1,MARK2
      DATA IBLANK/'     »/»MARKI/iI    »/»MARKl/>*   '/»MARK2/'t   «/
      COMMON /B/MARKC,MARKO»MARKN,MARKS,MARKT»MARKP
      DATA MARKC/'C    '/,MARKO/»0   >/,MARKN/iN   '/,
     1MARK8/»S   »/»MARKT/»T   »/»MARKP/'P   •/
      END
      SUBROUTINE TITLE
C SUBROUTINE TO PRINT IDENTIFICATION TITLE
      COMMON /A/L. INE (100), IBLANK, MARK I, M ARK 1,MARK2
      READ(S,101)
      WR1T£(&,201)
C...CLEAR ARRAY
      DO 10 I«l,80
      LINE(I)«IBLANK
   10 CONTINUE
  101 FORMAT(80A1)
  201 FORMATC1H ,///////,IX,»TITLE OF DATA SETl »,6QA1)
      RETURN
      END
      SUBROUTINE PRINTCJ,ID,STORE)
  SUBROUTINE TO PRINT INPUT DATA
      DIMENSION ID(400,6),STOREUOO,6)
      IF(J.EQ.l)   WRITE(6,20l)
      IF(J.OT.«00)   60 TO 20
      WRITE(6,205) J,(ID(J,K),K*l,6),CSTQR£CJ,K),K«l,6)
      GO TO 30
   20 MRITE(6t210)
  201 FORMATUHl,16X,'DATE',18x,'CO»,8X,lQ3l,7XilNQ2l,7X,«SQ2«,7X,
     l'TSP',9X»'TSPXS02')
  205 FORMATC1H ,2X,I5,8X,6I1,lOX,5Fl0.2,Fl5.2)
  210 FORMAT(1MO,'ERROR| INPUT DATA SET CONTAINS MORE THAN «QO VALUES')
   SO CONTINUE
      RETURN
      END

-------
      SUBROUTINE CMECKCNSUM, STORE, Z)
C SUBROUTINE TO INVENTORY MISSING VALUES
      DIMENSION STOR£(400,6)
      WRITE(6,20i) NSUM
      MCO«0
      MQ3«0
      MNU2«0
      MS02*0
      MTSP»0
      DO 50 I«1,NSUM
C... COUNT CO MISSING VALUES
      IF(STORE(I,1).NE.Z)   GO TO 10
      MCO«MCO+i
c... COUNT os MISSING VALUES
   10 IF(3TQRE(I,2).NE.Z)   GO TO
      MQ3«M03+i
C... COUNT N02 MISSING VALUES
   20 IF(STORE(I,3).NE.Z)   GO TO
      MN02»MN02tl
C... COUNT S02 MISSING VALUES
   30 IF(STORE(I,4).NE.Z)   GO TO
      M302-MS02+1
C... COUNT TSP MISSING VALUES
   40 IF(STORE(I,5).NE,Z)   GO TO 50
      MT8P"MTSP*1
                                20
                                30
                                40
 50
      CONTINUE
      WRITE<6,202)
      WRIT£(6,205)
      WRITE(6>206)
                  MCO
                  «03
                  MN02
                  MS02
                  MTSP
201 FORMATUH ,/////, 2X, 'OF «, IH, '  RECORDS,  THE FOLLOWING MISSING VALUE
   is WERE OBSERVEDI '»///)
202
203
204
205
206
FQRMATC
FORMATC
FOKMATC
FORMAT(
FORMAT(
RETURN
END
1MO,
1MO,
1HO,
1MO,
1MO,
10X,
10X,
10X,
10X,
10X,
1 CO
' 03
'N02
'S02
'TSP
MISSING
MISSING
MISSING
MISSING
MISSING
VALUES!
VALUESl
VALUES!
VALUESl
VALUES!
M4)
M4>
',14)
',14)
M4)
                                  25

-------
      SUBROUTINE PSI(J,N,STORE,VALUE,Z,I UNITS,MSUM,SUB,L)
C SUBROUTINE TO CALCULATE AND PRINT THE POLLUTANT STANDARDS INDEX
      DIMENSION STORE(400,6),I UNITS(5),SUB(7),MSUM(7,6),L(400)
      DIMENSION VALUEC400)
      COMMON /A/LINE(100),IBLANK,MARK I,MARK1,MARK2
      COMMON /B/MARKC,MARKO,MARKN,MARKS,MARKT,MARKP
C...CLEAR VARIABLES
      8UBCO»0.0
      SUB03BO.O
      SUBNU2«0.0
      SUBS02BO.O
      SUBTSPiO.O
      S*0.0
C,,,CALCULATE SUBINDEX FOR CO
      T*STOR£(J,1)
      IF(T.EQ.Z)   GO TO 13
      IF(IUNITS(1).£Q.S)   GO TO 11
      IF(IUNITS(i),EQ,7)   GO TO 12
      GO TO 13
C......CO IN MG/M3I
   11 IF(T.GE.0,0.AND.T.LT.10.0)
      IF(T.GE.i0.0.AND.T.LT. 17.0)
      IF(T.GE.17.0.AND.T.LT,34,0)
      IF(T.GE.34.0,AND.T.LT.46,0)
      IFU.GE.46,0)
      GO TO 13
C......CO IN PPM|
   12 IFU.GE. 0.0. AND. T.LT. 9.0)
      IF(T.GE.9.0.AND.T.LT.15.0)
      IF(T.GE.15.0.AND,T.LT.30.0)
      IFU.GE.30.0)
      GO TO 13
C...CALCULATE SUBINDEX FOR 03
   13 TsSTQR£(J,2)
      IFU.EQ.Z)   GO TO 23
      IF(IUNIT3(2),EQ.1)   GO TO 21
      IF(IUNITS(2).EQ.7)   GO TO 22
      GO TO 23
C......03 IN UG/M3I
   21 IFU.GE,0,0, AND, T.LT. 160,0)
      IF(T.GE.160.0.AND.T.LT.400,0)
      IF(T.GE,400.0.AND.T.LT.800,0)
SU8CO«10,0*T
SUBCQ»14.285714*(T-10.0) *
SU8CO«5.8823529*U-17.0) *
SUBCQ«B.33333J3*(T-34.0) +
SUBCQ"8.695652*(T-46.0) +
SUBCO»U,11U11*T
SUBCO«16,666667*(T*9,0)
SUBCO«6,6666667*(T-15,0)
                                                              100,0
                                                              200.0
                                                              JOu.O
                                                             400,0
                                                             100,0
                                                              200,0
                                   SU8CO«10,0*(T-30,0) + 300,0
      IF(T.GE.eOO.O)
      GO TO 23
C	03 IN PPM
   22 IFU.GE. 0.0. AND. T.LT, 0.08)
      IF(T.GE.0,08.AND.T.LT,0.2)
      IF(T.G£.0.2.AND.T.LT.0.4)
      IF(T.GE.0.4)
      GO TO 23
C...CALCULATE SUBINDEX FOR NQ2
   23 T*STOR£(J,3)
      IF(T.EQ.Z)   GO TO 33
      IF(IUNITS(3).EQ,1)   GO TO 31
      IF(IUNITS(3).EQ,7)   GO TO 32
      GO TO 33
   SUB03«0,625*T
   SUB03*.416666667*(T*160,0)
   SUB03*0.25*(T-400.) + 200.0
   SUB03«0.5*(T-800,0) * 300,0
                                                                   100.0
SUB03"1250.0*T
SUB03B833.33333*(T*O.OB) 4 100,0
SUB03»500.0*(T-0.2) * 200,0
SUB03»1000,0*(T»0,4) + 300,0
                                    26

-------
 SU8NQ2«166.666667*(T-0.6) *
 SUBN02"250.0*(T-1.2) + 300.
                            200.
   SUBS02*0.625000*T
   SU8302«,17543860*(T-80.0)  +  50.
   SUBS02*0.229885*CT-365,0)  t  100.
   SUBSQ2»0.125*CT-800.0)  +  200,0
   8UBSQ2«0,2*CT-1600,0)  t 300,0
   SUBS02s0.192308*CT«2lOO.O)  + 400,
                             50,0
C......N02 IN MG/M3
   31 IFCT.GE.1130.0.AND.T.LT.2260.0) SUBN02«.088495575*(T-1130.) + 200.
      IF(T.6£.2260.0.AND,T.LT.3000.0) 3UBNQ2*.135135135*(T-2260,) * 300.
      IFCT.GE.3000.0)                 3UBN02*.133333333*(T-3000.) * 400.
      GO TO 33
C......N02 IN PPM
   32 IF(T.GE.0.6.AND.T.LT.1.2)
      IFCT.GE.1.2)
      60 TO 33
C...CALCULATE 3U8INDEX FOR 302
   33 T«8TQRE(J»4)
      IMT.EQ.Z)   60 TO 43
      IF(IUNITSU).EQ.l)   GO TO 41
      IFCIUNITSC4).EU.7)   GO TO 42
      60 TO 43
   41 IFCT.GE.0.0.AND.T.LT.80.0)
      IFCT.GE.80.0.AND.T.LT,365.0)
      IFCT.GE.365.0,AND.T.LT.800.0)
      IFCT.GE.800.0.AND.T.LT.1600.0)
      IFCT.GE.1600.0.AND.T.LT.2100.0)
      IFCT.GE.2100.0)
      GO TO 43
C	302 IN PPM
   42 IFCT.GE.0.0.AND.T.LT.0.03)
      IFCT.GE,0.03.AND.T.LT,0.14)
      IFCT.GE,0.14.AND.T.LT.0.3)
      IFCT.GE.0,3,AND.T.LT.0.6)
      IFCT.GE.0.6)
      60 TO 43
C......CALCULATE SUBINDEX FOR TSP
   43 T*3TORECJ»S)
      IF(T.EQ.Z)   GO TO 53
      IFCT.GE.0.0.AND.T.LT.75.0)
      IFCT.GE,75.0.AND.T.LT.260.0)
      IFCT.GE.260,0,AND.T.LT.375,0)
      IFCT.GE.375.0.AND.T.LT.875.0)
      IFCT.GE.875.0)
      GO TO 53
C...CALCULATE SUBINDEX FOR 302 X TSP
   53 T«STOR£CJ»6)
      IF(T.EQ.Z)   GO TO 63
      IFCIUNIT3(4).EQ.l)   GO TO 61
      IFCIUNITSC4).EQ.7)   GO TO 62
C......TSP IN UG/M3 AND 302 IN UG/M3I
   61 IFCT.GE,65000,0.AND.T.LT,261000.0)  S«.000510204*(T-65000.0) + 200,
      IF(T.GE.261000.0.AND.T.LT.393000,0) S».000757576*CT-261000,0)+300,
      IFCT.GE,393000.0)     8*0.0010309278*(T-393000.0) + 400
      GO TO 63
C......TSP IN UG/M3 AND 802 IN PPM|
   62 IFCT.GE.24.82,AND.T.LT.99.66)   3»1.3361839*CT-99,66) t 200.
      IFCT.GE.99.66.AND.T.LT,150,1)   S»1.9825535*(T-99,66) + 30U,
      IFCT.GE.150,1)                  S*2,702703*CT-150.1) + 400.
   63 CONTINUE
 SUBS02*1666.66667*T
 8UBS02«454.545456*CT"0.03) +
 SUBS02«625.0*CT»0.14) + 100.
 3UBS02B333,333333*CT-0.3)  + 200,0
 SUBSQ2«500.0*CT»0.6) + 300.0

(UNITS ALWAYS ARE IN UG/M3)
   SUBTSP*.666666667*T
   SUBT3PB0.27027027*(T-75.)  +  50.
   3UBTSP*.869565217*CT-260.0)  f  100.
   SUBTSP*0.4*CT-37S.O)  +  200,0
   SUBTSPBO,8*(T-875,0)  t  400.0
27

-------
C ANALYZE RESULTS
C...FILL SUBINDEX STORAGE ARRAY
      SUBU)«SU8CO
      SU8(2)«SUBOS
      SUB(3)«SUBN02
      SUS(4)*3UBSQ2
      SUS(5)«SUBTSP
      SUB(6)«S
      SUB(7)tAMAXl(SUBCQ,SUB03,3UBNQ2,SUBSQ2,SUBTSP,S)
C... DETERMINE IF ALL SUBINDICE3 ARE MISSING
      IF (STORE (J, 1),EQ.Z. AND. STORE (Jf 2). EQ.Z, AND. STORE (J/ 3). EQ.Z.
     1AND.8TORE(J»«).EQ.2.AND.8TORE(J,5).EQ.Z)   GO TO 15
C... DETERMINE rtHICM POLLUTANT IS MAXIMUM
      T«SUBC7)
      DO 65 191, 6>
      IF(SUB(I).EO.T)   LU)«I
   65 CONTINUE
C., .STORE MAXIMUM SUBINDEX
                                     »mZ
                                     M«3
                                     M«4
      VALUE(N)«T
C...INSERT MARKERS
      DO 70 I«20,100,20
      LINE(I)»MAHKI
   70 CONTINUE
C...SORT SUBINDICES INTO INTERVALS AND PERFORM SUMMATION BY POLLUTANT
      00 75 I«l»7
C...3KIP SUMMATION IF THE POLLUTANT IS MISSING
      IF(8TORE 100
C...SCALE VALUE
      K»IFIX(T/5.0)
      IF(K.LE.O)   K«l
      IF(K.GE.IQO)   K»100
c...INSERT POLLUTANT CODE FOR ALL SUBINDICES > 100, EXCEPT THE MAXIMUM
      IF(T.LT.100.0)   GO TO 78
C...INSERT POLLUTANT CODE IN LINE VECTOR
      IF(I.EQ.l)   LIN£(K)«MARKC
      IFU.EQ.2)   LIN£(K)«MARKO
      IFU.EQ.3)   LIN£(K)«MARKN
      IF(I.EQ.4)   LIN£(K)«MARKS
      IF(I.EQ.S)   LIN£(K)»MARKT
      IF(I.EQ.6)   LIN£(K)«MARKP
   78 CONTINUE
                                    28

-------
c..,INSERT POLLUTANT CODE FOR
      IFCI.NE.7)   GO TO 75
                              MAXIMUM SUBINDEX
      IF(L(J).EQ.U
      IF(L(J).EQ.2>
      IF(L(J).£Q.3)
                   J,T,LIN£
                      LINE(K)«MARKC
                      LINE(K)«MARKQ
                      LIN£(K)*MARKN
                      LIN£(K)BMARKS
      IF(L(J).EQ,5)   LIN£(K)«MARKT
      JF(L(J).£Q,6)   LINE(K)BMARKP
   75 CONTINUE
C...PRINT ONE LINE OF GRAPH OF PSI
      GO TO (81,82,83,84,85), MEM
      WRITE(6,22l) J*T,LlN£
      GO TO 30
      MRITE(6,222)
      GO TO 30
      NRITE(6,223)
      GO TO 30
      WRITE(6,224)
      GO TO 30
      WRITE(6,225)
      CONTINUE
             LINE VECTOR
             1*1,100
      LINE(I)*IBLANK
      CONTINUE
      GO TO 20
      CONTINUE
            VALUE ENCOUNTERED
                                   INDEX
   61

   02

   83

   84

   85
   30
C......CLEAR
      DO 100
      LIN
  100
   15
C...MISSING
      T»0,0
      L(J)»7
      WR1TE(6,220) JiT
   20 CONTINUE
  220 FQRMAT(1X,I3»F7.0,1X,
  221 FORMAT(1X»I3»F7.0»1X,
  222 FORMAT(1X»I3»F7.0,1X,
  223 FORMAT(1X,I3»F7.0,1X,
  224 FORMAT(1X,I3»F7.0,1X,
  225 FORMAT(lX,I3fF7.0,lX,
      RETURN
      END
                              ,100A1,7X,'GOOD')
                              ,100A1,5X,'MODERATE')
                              ,100A1,4X,'UNH£ALTHFUL')
                              ,100A1,2X,'V. UNHEALTHFUL')
                              , 100A 1,ax,'HAZARDOUS1 )
                                    29

-------
      SUBROUTINE TOTAL (M8UM*L»NSUM,P,NC)
      DIMENSION MSUM(7,6),LU00),NC(7),P<7)
C SUBROUTINE TCJ PRINT DISTRIBUTION OF WORDS BV SUBINDICES
      wRITEC6,210)
      WRITE(6,215)
      *RIT£(6,220>
C.,. COMPUTE SUMS Of SUBINDICES
      00 100 I«l,7
      00 110 M«l,5
      MSUM(1,6)«M8UMU,6)+MSUM(I,M)
  110 CONTINUE
  100 CONTINUE
C... PRINT DISTRIBUTION OF WORDS FOR SUBINDICES
      WRITE<6,231)   (M8UM(1,M),M«1,6)
      WRITE(6,232)   (M8UM(2,M) ,M"1 ,6)
      WRIT£C6,233)   6
      NTOT*NTOT*NC(I)
  12« CONTINUE
C... COMPUTE PERCENTAGE
      DO 126 1*1,6
      P(I)«FLOAT(NCU))*100.0/FLQAT(NTQT)
  126 CONTINUE
                                    30

-------
C...COMPUTE SUM OF PERCENTAGES
      PTQW.O
      DO 128 1*1,6
      PTOT«PTOT+PU)
  128 CONTINUE
C...PRINT SUMMARY OF CRITICAL POLLUTANTS
      WRITE(6,249)
      WRITE(6,250)
      WRITE<6,260>
      *RITE<6,251) NCCl)fP(l)
      WRITE<6,252) NCC2),P(2)
      WRITE<6,253) NCC3),PC3)
      WRITE(6,25a) NC(4),P(4)
      WRITE(6,255> NC(5)»P<5)
      WRITE(6,256) NCC6),P<6)
      WRITE(6,260)
      WRITE(6,258)
      WRIT£(6,257)
                 NTQT,PTQT
                 NC(7)
210 FORMAT(1H1,2X,'SUMMARY OF RESULTS BY 8UBINDEX AND BY DESCRIPTORI'
215 FORMAT(//,ITXi'GOOD',8X,«MODERATE'r5X,»UNHEALTHFUL»,
   14X, I V. UNHEALTHFUL ', 3X, 'HAZARDOUS', ItX, • TOTA(.')
220 FORMATUH , 10X,'—•-«•••——«•—•.••-•—-———————
   1.........................      ..........')
  231
  232
  233
  234
  235
  236
  237
  240
  242
  243
  244
  245
  246
  247
    FQKMATUH
    FQRMATUH
    FORMAT(1H
    FQRMATUM
    FORMAT(1H
    FORMATC1H
          ,8X,'COll,5X,I3,2(llX,I3),3X,2(UX,I3),i6X,I3)
          ,7X,'NU2l'»5X,I3,2CUX,I3),3X,2(nX,I3)r 16X,I3)
          ,7X,'S02I',5X,I3,2(llX,I3),3X,a(HX,I3),16X,I3)
          ,7X,'TSPI',5X,I3,2U1X,I3>,3X,2U1X,I3),16X,I3)
          ,3X,'T3PX802I',5X,I3,?(llX,l3),3X,2(llX,J
FORMAT(lMO/,8X,'PSIl'»5X,l3,2{llX,I3)»3X,2(llX,I3)»
FORMAT(//,6X,'RESULTS EXPRESSED AS A PERCENTAGE!',/)
    FQRMATUH
    FORMATUH
    FORMATUH
    FORMATUH
    FORMATUH
    FORMATUH
          ,8X,'Cai«,4X,F5.1»2C9X,F5.n»3X,2C9X,F5,l>,14X,F5.1)
          ,8X,'03l',4X,F5.1»2(9X,F5.1),3X,2(9X,F5,n,14X,F5.1>
          ,7X,'S02l»,4X>F5tl,2(9X,F5.1),3X,2(9X,F5.1),l4XrF5.1)
          ,7X,'TSPl',ax,F5.1,2(9X,F5.1),3X,2(9X,F5.1),l«X,F5.1)
          ,3X,'TSPXS02l',4X,F5.1,2(9X,F5.n,3X,2(9X,F5.1),!4X,F5.1
     1)
248 FORMAT(1HO/,8X,'PSII',4X,F5.1,2(9X,F5.1),3X,2(9X,F5.1),14X,F5,1)
249 FORMAT(1HO////,2X,'SUMMARY OF CRITICAL POLLUTANTS (POLLUTANTS FOR
   1WHICH SU8INDEX WAS MAXIMUM|)i,//)
250 FORMATUH ,8X,'POLLUTANT',4X,'NO. OF VALUES',4X,'PERCENT')
251 FORMATUH , 1IX,' CO', 12X, 14,1UX,F5. 1)
252 FORMATUH ,UX,'03',12X,I4,10X,F5.1)
253 FORMATUH ,1IX,'N02',1IX,14,10X,F5.1)
254 FORMATUH ,
255 FORMATUH ,
256 FORMATUH ,9X, ' TSPX802' ,9X, 14,10X,F5. 1)
257 FORMAT(1HO/,9X,'MISSING',10X,14)
258 FORMAT(1HO,10X,'TQTAL',10X,I4,9X,F6.1)
260 FORMATUH ,7X,'—*«—•-«  ............
      FORMATUH
      RETURN
      END
                                    31

-------
      SUBROUTINE STAT(N, VALUE)
C SUBROUTINE TO COMPUTE STATISTICAL MOMENTS
      DIMENSION VALUEUOO)
      IF (N.EQ.l)   CO TO 50
      WRITE(6,198)
c... COMPUTE MEAN
      T«FLOAT(N)
      SUMsO.O
      DO 10 I"1,N
      SUM"3UM+VALUE(I)
   10 CONTINUE
      AVE*SUM/T
      WRITE«>,199)
      WRITE(6,200) N
      WRIT£(6,199)
      WRITEC6,210) AVE
      WRITE<6,199)
C... COMPUTE OTHER MOMENTS
      SUM2«0,0
      SUM3SO.O
      SUM««0.0
      DO 20 H1,N
      DdVALUEdJ.AVE
      Z2«D*D
      Z3«D*Z2
   20 CONTINUE
C... COMPUTE VARIANCE»STANDARD DEVIATION, AND COEFFICIENT OF VARIATION
      S2«8UM2/(T-ltO)
      STU«SQRT(S2)
      COF"STD/AV£
      WRITE(6,220) S2
      WRITE(6,199)
      *RITE(6,22S) COF
C... COMPUTE COEFFICIENT OF SKEWN£SS
      IFC32.EQ.O.O)   GO TO 50
      S3»SUM3/T
      SKEW*S3/(S2**1.5)
      WRITt(6,23o) S3, SKEW
C... COMPUTE COEFFICIENT OF KURTOSIS
      S4HSUM4/T
      BETA2«$4/(S2*S2)
      WRITE(6,199)
C...FIND LOWEST AND HIGHEST VALUES
      VMAX»"99999999999. 0
      VM1N«99999999999.0
      DO 30 1*1, N
      IF(VALUEU).LT.VMIN)   VMIN«VALUE{I )
      IF(VALUEd).GT.VMAX)   VMAX" VALUE ( I)
   30 CONTINUE
                                    32

-------
      WRITE(6,245)
      WRITE(6,246)  VMAX
      WRITE<6,199)
      SO  TO  60
   50  CONTINUE
      WRITE(6,250)
  250  FORMATUH  ,5X,'NQ  ADDITIONAL  STATISTICS  POSSIBLE')
   60  CONTINUE
  198  FORMAT(lHl)
  199  FQRMATUHQ)
  200  FORMAT(1MO,5X,'N «»,I8)
  210  FQRMAT(1HO,5X,'MEAN  «',Fl8.8)
  220  FORMAT(1HO,5X,'2ND MOMENT  (VAR.)  «' ,F22. 10, 12X, ' STANDARD  DEV.  *'»
     1F20.9)
  225  FQRMAT(1HO,10X, 'COEFFICIENT OF  VARIATION «',F15.8)
  230  FORMAT(1HO,5X,'3RD MOMENT  • ' ,F20.9,9X, 'COfcF.  OF  SKEWNES8  »',F15.8)
  2«0  FORMAT(1HO,5X,'«TH MOMENT  •' »F20.9,9Xr 'COEF,  OF  KURT08IS  *'»F15.8)
  245  FORMAT(1HO,5X, 'LOWEST  VALUE «'»F18.8)
  246  FORMAT(1HO,5X, 'HIGHEST VALUE  **>F18.9)
      RETURN
      END
      SUBROUTINE HISTOGUNSTR,N,VALUE,BASE,DELTA)
C THIS SUBROUTINE SORTS EACH OF N VALUES INTO INTERVALS OF SIZE DELTA
C IF 1NSTR«1, THE VALUES ABOVE THE RANGE ARE LISTED
C. .XI CONTAINS THE HISTOGRAM ABSCISSA
C.
C.
C.
C.
C.
C.
.PVAL CONTAINS THE INDIVIDUAL FREQUENCIES
.CUMVAL CONTAINS THE CUMULATIVE FREQUENCIES
.ILOW IS THE NUMBER OF VALUES 8ELQW THE RANGE
.I ZERO IS THE NUMBER OF ZERO VALUES
.IEXCES IS THE NUMBER OF VALUES ABOVE THE RANGE
.HIVAL CONTAINS THE INDIVIDUAL VALUES ABOVE TH£ RANGE
      DIMENSION VALUEC400)
      COMMON /A/LINE (1 00) ,IBLANK, MARK I, MARK 1,MARK2
      COMMON /C/XI C 1 DO), JHIST( 100), PVAL (100), CUMVAL (100)
      COMMON /D/HIVALUOO)
C CLEAR ARRAYS
      DO i U1,100
      JHIST(I)»0
      PVAL(I)«0.0
      CUMVAL(I)«0.0
    1 CONTINUE
C... CLEAR VALUES
      ILOHvO
      IZERO-0
      iExces«o
C...SET TOP OF RANGE
      TOP«100.*DELTA + BASE
                                    33

-------
C BEGIN SORTING ROUTINE
      00 10 I«1,N
C... DETERMINE IF POINT IS A ZERO VALUE
      IF (VALUE(I).EQ.O.O)  IZtRO"IZERO*l
C... MODIFY VALUE TO ADJUST FOR MACHINE DECIMAL CONVERSION ERROR
      PVALUE«VALUEU) + 0.000001
C.,, DETERMINE IF POINT IS BELOW RANGE
      IF(PVALUE.GE.BASE)   SO TO 15
      GO TO 10
   15 CONTINUE
C... DETERMINE IF POINT IS ABOVE RANGE
      IF(PVALUE.LT.TOP)   GO TO 20
      IEXCE8«IEXCES+1
      IF(IEXCES.GT.IOOO)  GO TO 28
      IFUNSTR.EQ.i)   HI VALUEXCES)«VALUE(I )
      GO TO 10
   20 CONTINUE
C... POINT IS WITHIN RANGEl CARRY OUT SORTING
      SDELTA.0.0
      DO 25 J«l>100
      3DELTA«DELTA+3DELTA
      TDELTA*3DELTA+BASE
      IF(PVALUE.LT.TDELTA)   GO TO 27
   25 CONTINUE
   27 CONTINUE
C PVALUE IS GE THAN VALUE(I)| THEREFORE INTERVAL HAS BEEN FOUNDl
      JHIST(J)»JHISTCJ)+1
      GO TO 10
   28 CONTINUE
C ERRORI NUMBER OF POINTS ABOVE RANGE EXCEEDS ARRAY SIZE
      IF(IEXCES.EQ.lOOl)   wRIT£(6,2099)
 2099 FORMAT(1H1,2X»'TOO MANY POINTS ARE OUTSIDE RANGEf INCREASE DELTA')
   10 CONTINUE
C TOTAL HISTOGRAM POINTS (THOSE ABOVE BASE)
      DO 30 1*1,100
      NUM*NUM*JHIST(I)
   30 CONTINUE
      NUM«NUM+IEXCES
      S»FLOAT(NUM)
C FILL ABSCISSA, INDIVIDUAL* AND CUMULATIVE FREQUENCY VECTORS
      SUMBO.O
      DO 40 1*1,100
      XI(I)«(FLQATU))*DELTAtBASE
      PVAL(I)*(FLOAT(JH1STU))*100.0)/S
      SUM«SUM+PVAL(I)
      CUMVAL(I)«SUM
   ao CONTINUE
C CLEAR LINE ARRAY
      DO 50 K«l,50
      LINE(K)"IBLANK
   50 CONTINUE
C PRINT RESULTS
      WRITE(6»1999)
      wRITE(6,2000) DELTA
      WRIT£(fe,2001) §ASE,ILOW,IZERO
      *RIT£(6,2002)

                                    34

-------
      DO 60 I»l,100
      Z«PVAL(I)+0.5
      M«IFIX(Z)
      IMM.EQ.O)   GO TO 80
      IF(M.GT.SO)  M«50
C...FILL LINE ARRAY WITH INDIVIDUAL FREQUENCIES
      DO 70 J"i,M
      LINE(J)»MAR«i
   70 CONTINUE
   80 CONTINUE
C...FILL LINE ARRAY WITH CUMULATIVE FREQUENCIES
      Q«(CUMVAL(I)/2.)+0.5
      L«IFIX(Q)
      IKL.NE.O)   LIN£(L)«MARK2
C... PRINT ONE LINE
      ABXICD-DELTA
      IC«JHISTCI)
      DaPVAL(I)
      E»CUMVAL(I)
      IF(DELTA.LT.O.l) WRITE<6,2003) A,B, IC,D, (LINE(K) ,K«1 ,50)
      IF(OELTA.GE.O.l) WRITE(6,200«) A,8» IC»D, (LIN£(K) ,K«1 ,50)
C... CLEAR LINE ARRAY
      IF(M.EQ.O)   GO TO 90
      DO 90 K«1,M
      LINE(K)«IBLANK
   90 CONTINUE
      IFU.NE.O)   L1NE(L)»IBLANK
c.., CHANGE PAGE
      IFU.NE.50)   60 TO 60
      WRITE(6,2005)
      WRITE(6,1999)
   60 CONTINUE
C... PRINT BOTTOM OF GRAPH
      «RITE(6,2005)
C... PRINT NO. OF VALUES ABOVE RANGE
      PEXCESa (FLOA T( IE XCES)/S)* 100.0
      TOPHXI(IOO)
      WRITE(6,2006) TOP, IEXCES,P£XCES
 1999 FORMAT(lHl)
 2000 FORMAT(1HO,22X,       »*  *  *   DISTRIBUTION OF DATA (INTERVAL
     1DTH «',FS.4,')   *  *  *i)
C...IF lNSTRil» PRINT VALUES ABOVE THE RANGE
      IF(INSTR.NE.l)   60 TO 110
      IF(IEXCES.EQ.O)  GO TO HO
      IF(IEXCES.GT.IOOO)  GO TU 110
      WR1T£(6,2007)
      DO 100 I*1,IEXCES
      WRITE(6,2008) I,HIVAL(I)
  100 CONTINUE
  110 CONTINUE
 2001 FORMAT(1HO,2X,'NQ. OF VALUES LESS THAN • ,F8.4, '• •
     1'NQ. OF ZERO VALUES *',I6)
 2002 FORMAT ( 1HO, 5X, ' IN TERVAL',5X,' NUMBER ',3X,' PERCENT',
     12X,»+—«— ......»•».... —HISTOGRAM— ......—..*
     2ix,'cuw. FKEQ.«)
 2003 FORMATdH , 1X,F7.4, '- ' ,F7.«, IX, I7,2X,F7. 3,
     t'Xt,2X,'Il,50Al,»P,lX,F7.3,«X<)
                                    35

-------
ZOOM FQRMATUH , 1 X,F7,2, '-' ,F6.2, 1 X, I8,2X,F7. 3,
    l'X',2X,'I«,50Al, 'IMX,F7.3»'X»)
200S FORMATdH ,36X, 14........ .................
2006 FURMAT(1HO,2X,«NQ. OF VALUES EQUAL TO OR GREATER THAN «,F9t«f
2007 FORMAT(1H1,///,8X, 'LISTING OF VALUES ABOVE RANGEl',//)
2008 FORMAT(lfiO,12X,U,5X,Fia.6)
     RETURN
     END
                                   36

-------
           APPENDIX B

SAMPLE OUTPUT OF INDEX.PLOT USING
DATA FROM NEWARK, NEW JERSEY, 1974
               37

-------
O

-------
                                                                                                                             '
                                                                                                                                  •«*«»*•*••»•••
                                                                                                                                 f\i^CT'»O'ff'»^ff-o»i>O'a-»»
   OOO'tt'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO^OOOOOOOOOO 5O OOOO-ff-O1 C>OOO
f\l OOIJ-O-OOOOOOOOOOOOOOOOOOOOOOOOO^OOOOO'OOOO^O OOOOOO OOO  SCsOO-O'iJ' OOOO
a  ...-........-...*...-.................................«.....
                          '                                                                                                                        r*- o* o » -^ -^ o oo






   93^cr4}xin9Wiininrornin^^Kikn9inir4i^^in(r^r^9«r^nj9i^ro*'Ut9K)rno'f\iKttrrn^^»nj
ftlOOOCroOOO^OOOOOOOOOOOOOOOO'^OOOOOOOOOOOSOOO'OOOOOOOOOOOOOOO'OOOO
o  •••••••••••••••••••«••..•.••••*••-•*•••••••••••••<••*•••*.••.
ZOOOO'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO^OOO'OO^OOOOOOOOOO-O'Ct'OOOO
           9                                                                                                    jy.                                  ^ &• o-
           a-                                                                                                    a-                                  o- or- »•




      ^« AJ C^ "•* "^ v-^ V^V^V^V^V*      V-C^Vri v« v^vVvHlv^v^V^V^Vf^VrtV^ *^ »^^^^*^Q-^*»^»^»^»^^^(J> 1X1^4*^*^ ••* V4 f\J fU ^4 ~+ ** f\l & Of &• &• & fr •*+
I**OOOO-OOOOOOOOOOOOOO OOOOOO OOOOOO OOtTO-OO 3  :>O O (> OOOOO 3»OOOOOO OO-O" O
o«*--»*-*-**»*-*<*--*....  .....••.-.*••••••••••••••••*•••..•..
   OOO»OOOOOOOOOOOOOO  3»OOOOOOOOOOOOO»O-OOOOOOO> OOOOOOOOOO OOO-O'O'O'O'^ O
           *                                                                              o>a                  ff1                                  O'O-o-a-ff*
           o-                                                                              o-o                  cr                                  <*• o* a- & t> t>




   ooooooooooooooo ooooooooooooooooooooin^Tomso-oj»mfti^'uo^r omo *^^^— ?^oo^®m«O'^^Ai'^fvi-O;Tinnjrrir\i4»f\i'Oqr^-^^i/iKi-o-o<>Oi-*ru^r^fn

                                                                                                                                                     o- o-
                                                                                                           «o 9- o ^
   OOOOOOOOOOOOOOOOOOOOOQOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
                                                                               39

-------
   o-aa » o* o- o- » a o <


                            f\l
a-
O OOO  OOOOO-OOO-'O'O'  O O O O"  O1  OOOOOOOOOOOOO-O*O*OOOOOOOOOOtO'-OO11OOO*O"OkOOO*O1'OOO OO
 •  •••   • •••••••«•*•••  ••*••**••••  •*••••••*••  •*•••»••*•*•••••*••  ••
»x><\lalo>•o^/»coO'^lnO'Ov(^^-^«o•o^(^^lOor^o-^^»^l^«o>OkO*(>»aof^o^^r^^^O'<^oko*u^^<>^
o- *\i«Hi(or-tf»o*»in^O'O'Oi«=i^o-o>r-r*£r'  ^>%0=»m3r—«-o»*»inotO'O>r**r*»iA,o^» ^to-^ — O'O'fuO'K»^ovO'a'*«^ok^<\i'>ii\i-'-^





irin-*^  «tr>intr»o-rn^jHioto-kn--»t*»4pr»^j53^>5»^^js»^^>^tf\is»4}o-o-5T^*f*4>^^ ^so-^tA^^tr^o-oo- o-«i^*^)*or-4)i^ x> =a
O  SOOOOOOO-OOOO'O'OOOOOOOOOOOOOOOOOOO'O'OOOOOOOOOOOOOOOO'O'OOOOOOOOOO

OOO^OOOOO'OOOO"O'OOOOOOOOOOOOOOOOOOO*O'OOOOOOOOOOOOOOC3O*O1'OOOOOOOOOO
                      O-         O- »                                                  O1 O-                                           Ch O-





~~rv^~^^~&~~a.&&~~0'~~&&^o-&~(y-o*~&&~ru&&~o*~~~~~~~O'~~3-&&&&~~&Q-~~~~~^
o ooo  ooooo-oo^o-cr o  oo'ooo'O' JO-o-ooo-otf-O'ooo-o-oO'Ooo o  ^^ofx ooo-o-cro'O^oc'O'O'  oo » o o o








o ooo  000*000000* oooooo  oooooooooooooo* 00^00*^0000 oooo  ooooooooooooooo



      -*                         a                                                     &
                                 o-                                                     o-
                                                                                                                                                       4>**-ov o -^
                                                                                                                                                       «iuf\i'*ui\i»'to
                                                                                                                                                       ^99 sar ^atn
o  ooo ooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
                                                                                40

-------
                        (









&•  (f &•&•&•&- &                ....__










o  ooooooooooo  oo<^  00000000000000099 9  oooooooooooo  00900000000000 oo
O  OOOOOOOOOOOOO9  OOOOOOOOOOOOOOO999  OOOOOOOOOOOOOO9OOOOOOOOOOOOO












OOOOOOOOOOOOOOOJOOOOOO OOOOOOOOOOO  OOOOOOO-OOOOOOOOOOOOOOOOOOOOO








OO3OOOOOO 3OOOOOOOOOO  3OOOOOOt15OOOOOOOOOOOC>

O  O O  O O O O O OOOOOOOOOOOOOO& OO9 3  OOOOOOOO  !>  O O O O O OOOOOOOOOOOOOOOOOOOO
                                                                          ch        o-






o  ooooo oooooo  ooooooooooooooooooooooooooooooooooooooo  oooooooooo
                                                                                                 41

-------

                                                                                                                                                              - o-
OOOOOOO OOOOOOOO<»O O^OOOOOO1 OOOOOOOO-OOOCJ'O'O1 OOOO-O-OOOOOOOOOOOOOOOO
O O O O O O O OOO OOOOOOOOOOOOOOO" O O O O OOOOO O O O1 O O-OOO<^-^OOOOOOOOOO<»OOOOO

-o o 01 a- **»»-• tt> o o i^ »• ~*r»-o,o-*ru9**^ ococr-o O'^-r^.»O"
ru«« sr»«»*»^«f\im^. .-t.^,*f\j,-*,*ro~* ^•mry?rf\jru9'K)9 po^«r\i^ ^-c\i-* ^ruoo-ommrwo
                                                                a                               (> o o-         o-
                                                                                                                                               «^
ooooo sooooooooooooooooooooo ooo 3-^00000000000000000000000000000

OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO'OOfOOOOOOOOOOO^OOOO'SOOO'O
oooooo^ooooooooooooo^ooooooooooooooooooooooooooooo>oooo^ooooooooo
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
                                                                                                                                  ;y*iA-*«^r'V»o^i or>-a)9-  o—j\iH»«3-tf>4>r^coo o-^W>^»iA>Of^oooo-^(V»*»5»ir»'O'*-a>O' o—•m^^tn^^ajo- o — aj »*»
                                                                                                                              »»-*'*>***»*>'**»*»'*»'**'*>oi^a-*
                                                                           42

-------
                            r\l                                 9                                           —

























                                                                _____________    __             .       _       &-Q*&-&&*(Ott-tf-{f'&9>&-a>ii\&'(t-O>9'&(?Q*
















O  Of>ff- OOOOOOOff'O'OOf'C*k OOO  OOOOOOOOOOO-OOOOOOO'OOO1  O O  O ^  O* (* (^ o C






























































O  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  OOOOOOOOO'CF'9'9-(rO'O'  OO1  OO





















































O  O O O O OOO O  O O O O O O OOO O  O O  O O O O O O O O O *•* *** *^ *** •** "^*  *•* «^ •^ "•^  *^ *"*  *~* *^  ""• *"• *•* ^» «^» «^ *^ «-* *+ "^  **> •* ** «^ >^ VM .
                                                                                                   43

-------
o* 0* o- o* o* 0>  o0-o*0-0'0-0-0'0-0-0'0' oo-0*0'0'0'0-0-0'0'O'0*0'0'ot0iOk0*0'0'0k0'O'OO0'0'0'0'cr'0'0'O*»-O'0'0' o o > o* o  »
                                                                                                    0'O'O*o*0>o0-^0'o*o^

                                                                                                    cr»a
                                                  4> 0> o- a* o* 0* a* 0* »• 0- o* o- 0- wo^oo-ooo-o-O'O'-^^O'O^oo'OO c^c^cr-oo^o^^o^^
                                                                                                    0<0>0-0-o*^0^t>o*0'O-o>0-^o^
o* o> 0- o* o> 0- o0-o-0*ofO*0iO'0'0va-0iook»0'0LO*0-0'»O'0i0k o- o0'0>0'0''0'0*0>0*0>  o » 0-0-0ioi0'0'O-0-O'0i0'»-oo'0*0'0*O'
a o a o- o o- o^a-wo-ff-O'^O'O'O'O'oa-a'O'a'O'O-aoo'ao'a- oa-a'ataO'a'O'(rff-  oo-o-O'O'O'ff'a'a'a o- a o- CT- oa- cr o- o- a
                                                                    ' a- o O" cr ;>•
                                                                                                               C^»O1»O'0-O'O'O'C^
OOOOO-tf-OOOO'CT'O'O'OOOOO'OOOOOOOOOOOOO'O-O'OOOOOOOa-OOO'O-OO'OOOOOO'OOOOOO-OO
OOOO0-0-OOOO'0k0'0'O0"OOOlOOOOOOOOOOOOO-0-0-OOOOOOO0-OO0>0'O0'OOOOO-0'OOOOO0-OO

& o tn tntn«rt*»M— »mr\iaj-*^0- 0-0-^*r^^rt(Oir»oovr^r^o*0-j»0"Kip*i^fMO0' nio^r^niocr- >o o
mi>jr'i^a0k»*ioi(M0'0k0'0--oovf"^r0'^T-i>»*»— 'r^o-r-  -* in -« ^ t/* o- 0-0-K»o-^j — rtj^inoiir>to0'0- ,ook>oovr^— •o^O't^^^roino- 4>co
           0.0-O^O^0'0L0'9'-^0>'4                       -*      O-O-O1      —^         ^      O1 0-    0-         -*0>o-          *«o-




^j Kif^mo-njAio- nj f\j a- 0- 9*09 tncoi^ otntomr^ao •oAtunm»nm<\if\mr/i^ofvmf^o -o r^ 0-0- (\i**if*tKium»n^f^i*ifo=»^i0- m ^
OOOO0'OOO>OO0V0'O'OOOOOA|OOO'3OOOOOOOOOOOOOOOOOO*OO<^0'OOOOOOOOOOOOO0'OO

OOOOCT-O ootooo-O'a*oooooooooooooooooooooooo=)ooOk^^0-^^^^«^^^^^0*^^m^^^0'0-^ni^^0K^0L(^0*^0'0>0*^9O'^O--4'^0'^9k0>0-
o o 300-0 ooooo-tro'O' oocr-^csooo  oo oooo-oo  »  o o o c- 0> ooooo^oa-o-o- c»0-0'0'O'0'0-oo'  ooo'OO'O^O'
O OOOO- OOOOOff-0*O*0- OOO'OOOOOOOOOOO'O OO  OOC>OkO-OOOOO-OO'a'OlOO'O> O-O'O" OOO- O O 0- O O- O 0-
           9               Or 0-  0- 0-       0-                             9                  O1 0-            OO'0'0-O-0kO"O'0'O'0'       tf-   0- 0- 0-
           a-               ero-O'O'       o                             *                  90^            o-o-O'O'a-a-o-O'ff-O'o-       o-   o- o- 0-




o 0000*000000000000000000000000 oo  oooooooooooooooooooooooooooooo
           o*
                                                                                                                                                                      r a
                                          o—•rvf*=»iA4>r»eo0- o — f\i»*t^tnr\i*^>4'ifi«or^coOkO«^nj'O?tin
                                                                                                                                      tnirtiAtO»^
                                                                                44

-------
as
o
O
_l
-I
a
a
z


                       in
                       m
o
u
               D    Kl

               O    O
           t\t   f»    (L
           O   O    en
           2    «n    >-
in
•o
                                                          45

-------
UJ UJ lil ill tti UJ IL.
i- •->->- >- 1- x
         oa    ooooaox
       _
i&~ IL. X    tij
xi:«-    t-i
xxz
Z23
  3    3    33
J U_ UJ IL    IL **
  i>-i    x: x
xx
ZZ
33
                                       aaaxox
                                       ZXXZEZ
                                                33
                                                                                             3
                                                                                             IL l&J    IkJ LkJ
                                                                                             x i-    >- »-
                                                xo
                                                ZZ
                                                3
                                                                                                                                                                           a
                                                                                                                                                                           o
                                                                                                                                                                           a
                                                  ooo
                                                  XXX
                                                                                                                                    ax
                                                                                                                                    XZ
                                                                                                                                       3
in


in
tn
AJ
m
                                                                                                         CO           CO TO   CO
                                                                                                            
-------
   UJ UJ    UJ UJ X   UJ  111   UJ                   UJ       UJ Ul   UJ UJ   UJ UJ
                                                                                                                                       _
OlUUJOUJlUUIOUIUJQUJOOOO    OUiOOUUlOlilUIOUlUiOOUJQOiUtiJ    UJUlOOuiOOlUUI^COOOUlOUIUJOUJiUOOOO
   aaoazaao                   o       aoaaaa       C3       aaoo       o       aoi          aoaao
   ££Z£3rcz:                   x       £ c    £  x    x: c       z:       3Erxn       x       ztz          z    z £•    x x:
                                                     O       O


                                                  o       u
                                                                                              CO

                                                                             CO

                                                                                     CO         (
                                                                               47

-------
                                                                                                                                                              alOCAO OQQ
                             oo          oooo          aoia             oo    o    ora    aaao    a    a       a    oaxo    oooo
                                               t r n          zrz£             zzzczczzzzxz       ZZCZCZZZE
                                    o o                a
         U             U
      O                   U             O                O O
                  o
                                                   O                U                      l>
                                                                                          U             U            U
                                             U                                                    U                     U             U
                                                U    O          U                                                                U
                                                                           U                   U                   CO       U
i^ 1*1 i«i!» i*-
                                                                                       48

-------
oo    aoooaa
IE:  t
                    a          a          a aoa oo o a a oo a  ooo ooo oo    aa   ooo    ooo
                                            z:cz£ZX:zzx:s:s:x:x:£czx;^z:£    cz:   r n l:    x£z
                                                          o          ou
      0
oo    o
                                                      49

-------
_       _       _                ____                 _            _  _                    ______
333      3              33333                3           33*.                 3333333
U. U- Uf U- Ul UJ U.   UfUIUiUJU.tt.U-U.tlL.      UJUIUIUIU.U1      UiU-UvXtUUIUibU      U~U.aJCA.UJU.U-b-tL.
x x »- x *- »- x   *~ i- i— »- i x x x x      >- 1- »— >- x *—      t-xx»-i-»-»— »—      xx»— i*— xrxx
                                                                                                   -ja:_i(i:-i-i_i-JOOQ:o_iOct:o         oc
                                                                                                   -«uJ'4UJ<  •<•<•< OOUJO        CJ
                           (J

                        (_>(->
           O 0
                   o
                                                                          a)9 o*->f\iit9tr -o ?^ «o o- o*«r
                                                                          ^^f^t^t^t^l^t^t^t^t^t^&&
 IM fUf\tfuniAir\iaiAirufti«vnifvruniniaii\ininiAiAi'ufVAif\if\)Air\inirunjrvf\iAiAiniai'\j<\ifv aiAiniai
                                                                               50

-------
           -
      U. X U~ UJ Ui Li.    UlUJUJuJUJUJUJU.iL.UIUJUIU.U.U-UIUJtft.U.lL.    il_ Ul UJ Ui             U.U.UJ    LkJ    Ul U. UJ          i&l    til UJ Ul    U-  UJ       oJ
      x >- x •- *— x    >->-*- i— i— i— t~ x i »— »-»— x x  r »- »— xxx    x »-*-    '
                                                                                                                                                                         _
                                                                                                                  44  uU O UJ O UJ 4 uJ O O O UJ O UJ LU til O ^  uJ O O liJ
         X til Q O Si I    O O O O O O O UJ til Q O O aJ UJ i*l  O O ill ui aJ C3 aJ O O O O t3 t3 C9 ul uJ  O 13 O ^9 O aJ O t3 *-9 (J Q CS O Q O (3 UJ  O <-3 C3 O
a    xzxoox    ooaaoaoxxaoaxxrooxxx    xaao             xxa    a    oxo          o    ooo    xa       a
r    z ^ z x £ 2    z££xxczzzaczczzzx£:zzz    zxxz             zzac    x    s:zsi          x    xrr    zz       x
                                                                                    51

-------
O O •< t-
o a ir
o
      01
      x; z
                                                                              52

-------
CM o -o <* ?»-
tf* O
t*» r\i r*t Al
                                                             o o o o o o












X
o
*-
»-*
CE
O
n
UJ
o
OCL
Q
5
X
UJ
o
2
m
£D
09
ZS
CO
UJ
U.
o
QC

X
x
00
0
o
*%
M
I
-1
U,
X
—I
UJ
X
z.
z>
>
u.
X
*-
^
UJ
X
2



UJ
5
UJ
o
a
x


0
o
o























in








In ° ,0 ZI °






l*» CO Al Al -* Al
-• AII*I AI



O H> Al Al Q. Al
o o o o co a
z 
>•
-1
z»
u.
X
t—
in <:
UJ
X
z


UJ
<• uj
2 •<
^" (J UJ
-* a o
UJ O
a. x
•*
<
o
co a
w* CO O
Al UJ O
— cr c»
OL
X
UJ
CO
M J
CO Z>
Q. CO
UJ
a:



o o o o o o
o o o o o o




— * O 0 O O O
•* o o o o o




aD o o o o o
^ o o o o o
T*






-4> o o  o » a- o
K» O o f»tf* O
V4 V4


O Kl Al AICL Al
»- SO
X
ex
CO


o
o




-
JZ




+•*
^
v«






o
a





m
5



^
CO
(L



                                                                                                          a
                                                                                                          z

                                                                                                          1C
                                                                                                          <0


                                                                                                          2
                                                                                                          O


                                                                                                          a:

                                                                                                          z:
                                                                                                          x
                                                                                                                                O  -H -^ O
                                                                                                                         AI in o  o -
                                                                                                                         O- —    ij
                                                                                                                         Al
                                                                                                                                         Al
                                                                                                                                         O
                                                                                                                               Al  *M CL CO
                                                                                                                          o »t o  o «o x
                                                                                                                          0 O2  « >- O.
                                                                                                                                         CO
u
z
                                                                  53

-------
o-
in
1U
o

a
a:
<
o
                                   ni
                                   «
                                   00
                        H


                        V>
                                   m
                                   a
                        
                                               UJ
                                                           I
                                                           (9
                       54

-------
                    f*- Kt ^0 o cotfi^ -o — tn ru AI =
                    oooooooooooooooooooooooooooooooooooooooooooooooo
      U_   I—    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
      o   z oooooooooooooooooooooooooooooooooooooooooooooooooo
                                                                                 55

-------
                     XXXXXXXX  XXX  X X X X X X
                                                                                                              XXXxXXXXXXXXXX
noooooooooooooooooooooooooooooooooooooooooooooooooo
O
                                                                                                                                       ! XX X X X
cioooooooooooooooooooooooooooooooooooooooooooooooooo
a:   •••*••**•**••••••*«>**•••»••••*»*****•***••<•*•••*•*
UJOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
                                                                                                                                                             O

                                                                                                                                                             O
CD
3:
    oooooooooooooooooooooooooooooooooooooooooooooooooo
    ooooooooooooooooooooo ooooooooooooooooooo oooooooooo

    in o if* o m  otn oinotnotnotfiotn omoknoinotootfiom oknot*tomo*notnomomc»»noif» otno
I-  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOO
sroooooooooooooooooooooooooooooooooooooooooooooooooo
                                                                                                                                                             Of
                                                                                                                                                             UJ
 .
O

 •
O
                                                                         56

-------
                APPENDIX C




RAW DATA FILE FOR NEWARK, NEW JERSEY,  1974
                    57

-------
11
313480C02F01 Nl
  313460C02FC1
  3134600G2F01
  313480002F01
  313480002F01
  3134fr0002FGl
  3134fc0002F01
  3134F0002F Cl
  3134fcOC02F01
  3134t0002rGl
  3134fC002F01
  31346C002F01
  3134t0002F01
  313460002F01
  31346G002F01
  3134f0002F01
  313tfcOOQ2F01
  3134E0002FU1
  3134fc0002FGl
  313460002FQ1
  3134800G2F01
  3134fa0002F01
  3134fcCOG2FUl
  313460G02F01
  313460002F01
  313460002F01
  3134600G2F01
  313480002F01
  313480002F01
  3134fc0002F01
  313480002F01
  313480002F01
  3134fcOOC2F01
  31 34 60002 F01
  313480002F01
  313480002F01
  3134&C002F01
  3134£0002F01
  3134600U2F01
  31346G002FG1
  313480002F01
  31346GOG2F01
  313480002F01
  3134tOOG2F01
  313460002F01
  3134tC002F01
  313460002F01
  313480002FQ1
  3134e0002F01
  3134fa0002F01
  3134B0002F01
  313460002F01
  31348C002F01
  3134P0002F01
  313460002F01
  313460002F01
  3134C0002F01
  313480002F01
HARK MJ
010174
010274
010374
01C474
010574
010674
010774
010fc74
010974
011074
011174
011274
011374
011474
011574
011674
011774
011874
011974
012074
012174
012274
012374
012474
012574
012674
012774
012874
012974
013074
013174
020174
020274
020374
020474
020574
020674
020774
020b74
020974
021074
021174
021274
021374
021474
021574
021674
021774
021874
021974
022074
022174
022274
022374
022474
022574
022674
022774
CO-MG/M3
260
510
770
450
850
430
680
670
440
560
121C
440
27C
1050
1440
1910
390
930
600
440
1570
950
1190
370
1070
1010
430
890
50C
1120
970
370
400
210
270
260
650
440
500
250
380
290
630
1250
340
400
400
150
400
560
330
660
610
99999
99999
170
270
750
CO
Cl
C2
99999
Cl
Cl
Cl
11
tl
Cl
01
Cl
CC
00
Cl
04
Cl
01
01
Cl
01
Cl
01
Cl
Cl
Cl
Cl
Cl
Cl
Cl
01
01
99999
99999
01
01
Cl
Cl
Cl
01
99999
02
01
01
Cl
01
Cl
C2
02
01
01
01
02
99999
99999
99999
99999
99999
DX-PPM
04
04
07
99999
06
C6
05
C4
05
05
05
03
C3
05
06
06
03
05
04
05
05
04
07
04
05
09
04
07
C4
08
C7
C2
04
03
C3
01
05
04
03
03
90999
02
03
05
03
04
C4
Cl
C2
C3
02
C5
03
99999
S9999
99999
02
05
N02-FPH
64 CO
34 CO
99999
99999
79 CO
148CO
142CO
4500
104 CC
112CO
132 CC
6000
55 00
122CO
126CO
1130C
66 CO
171 CO
iieco
103CC
97CO
73 CO
155CO
4700
92 CC
22600
53CO
122CC
53 CC
1790C
174CC
5500
13100
91 CO
7300
37CO
126 CO
104 CC
84 CC
6 ICC
9700
71 CO
112 CO
190 CO
7EOC
6800
154CO
52CO
5800
132 CO
98CC
129CO
9700
99999
99999
99999
7100
111CO
S02-UG/M3
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
V9999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
5200
99999
99999
99999
99999
99999
99999
99999
99999
99999
59999
99999
TSP-UG/H3
                                     58

-------
 3134&0002F01
 3134L-C002F01
 3134E0002F01
 313480002F01
 313480002FG1
 313480002F01
 313480002F01
 313480002F01
 313480002F01
 3134B0002F01
 313460002F01
 3134fc0002F01
 313460002F01
 313460002F01
 313480002FC1
 3134C0002F01
 31346C002F01
 3134L0002F01
 3134fc0002F01
 3134J0002F01
 313460002F01
 31348C002F01
 3134F0002F01
 313480002F01
 313460002F01
 313480G02F01
 3134t0002F01
 313480002F01
 31346C002F01
 3134fc0002F01
 3134fc0002Fol
 3134£C002F01
 313460002F01
 313480002F01
 3134C0002F01
 313460002F01
 31346C002F01
 313480002F01
 3134t0002F01
 3134bOOG2FGl
 3134f0002F01
 313480C02F01
 313480002F01
 313460002F01
 3134E0002F01
 313460002F01
 313480002F01
 313480002F01
 31348C002F01
 313480002F01
 313480002F01
 31348C002F01
 3134P0002F01
 313480002F01
 313480002F01
 3134B0002F01
 313480002F01
 313480002F01
 313480002F01
313460002F01
022874
030174
030274
030374
030474
030574
030674
030774
030874
030974
03107*
031174
031274
031374
031474
031574
031674
031774
031674
031974
032074
032174
032274
032374
032474
032574
032674
032774
032674
032974
033074
033174
040174
040274
040374
040474
040574
040674
040774
040874
040974
041074
041174
041274
041374
041474
041574
041674
041774
041b74
041974
042074
042174
042274
042374
042474
042574
042674
042774
042C74
730
330
590
490
1750
3EO
720
690
500
630
150
310
230
17&
99999
490
590
200
450
570
510
430
700
450
300
600
6t/0
310
210
940
400
3CO
560
630
99999
630
590
440
330
570
310
350
580
620
1220
400
290
290
550
390
520
510
400
700
520
230
130
270
440
460
99999
01
01
01
02
01
01
Cl
Cl
Cl
99999
Cl
01
99999
99999
99999
01
01
99999
Cl
01
99999
99999
Cl
99999
99999
01
99999
99999
01
99999
99999
01
02
99999
99999
01
99999
01
01
Cl
01
Cl
01
Cl
99999
Cl
Cl
99999
99999
99999
99999
99999
01
01
99999
99999
01
01
Cl
C5
Cl
C5
05
Cl
04
C6
05
05
05
99999
03
04
03
99999
99999
C5
Cl
03
05
07
04
04
C6
04
C4
06
04
C4
06
04
C2
04
06
9S999
9S999
C4
03
05
06
04
04
06
C9
07
C5
03
03
05
C6
06
9S999
9S999
08
04
06
C6
03
07
06
130CC
6600
9400
12600
142CO
3200
69CO
7000
55 CO
9800
99999
5100
4500
99999
99999
99999
63CC
41GO
36CO
99999
99999
7900
72 CO
9500
6000
6700
14000
5100
4700
11200
65CO
3600
59CO
99999
99999
99999
3400
3800
5700
6000
4600
420C
57CO
11400
11300
99999
99999
2900
99999
3500
4400
99999
99999
99999
17CO
1400
99999
99999
2900
25CO
11500
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
5800
99999
99999
99999
99999
99999
99999
99999
99999
99999
59999
99999
3100
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
3600
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
67CO
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
                                    59

-------
313460002F01
313480002F01
3134£0002FG1
313460002F01
31346C002F01
313480002F01
3134fc0002F01
3134fc0002F01
3134J0002F01
3134t0002F01
313480002F01
313480002FG1
3l34tC002F01
313480002F01
313480002F01
3134f0002F01
313460002F01
3134fc0002FQl
313460002F01
313480002F01
313460002F01
31346C002F01
3134C0002F01
3134fc0002F01
313460002FG1
3134PC002F01
3134fc'0002F01
313480002F01
3134E0002F01
313480002F01
3134J30002F01
313480002F01
313460002F01
313480002F01
31 34 80002 F01
313480002F01
313460002F01
313460002F01
313460Q02F01
313480002F01
313460002F01
313460002F01
31348G002FG1
313460002F01
313480002F01
3134E0002F01
3134t0002F01
313460002F01
313
-------
31346C002F01
313480002F01
3134fc0002F01
313480002F01
3l34fc0002F01
313480002F01
3134£0002FOi
313480002F01
3134t0002F01
313480002F01
313480002F01
313480002F01
313460002F01
313480002F01
313480002F01
313460002F01
3134e0002F01
313460002F01
313480002F01
3134fr0002FQl
3134b0002F01
313460002F01
313480002F01
3134fc0002F01
313480002F01
3l34fc0002F01
313460002F01
313480002F01
313480002F01
313460002F01
313480002F01
3134E0002F01
3134b0002F01
313480002F01
313460002F01
313480002F01
3134E0002F01
313460002F01
3134t0002F01
313480002F01
313480002F01
313480002F01
313480002F01
313460002FG1
313480002F01
313480002F01
313480002F01
313480002F01
3134fc0002F01
313460002F01
3134f0002F01
3134£0002F01
313460002F01
3134C0002F01
3134b0002F01
313480002F01
313480002F01
313460002F01
313460002F01
313460002F01
062874
062974
063074
070174
070274
070374
070474
070574
070674
070774
070874
070974
071074
071174
071274
071374
071474
071574
071674
071774
071874
071974
072074
072174
072274
072374
072474
072574
072674
072774
072874
072974
073074
073174
080174
080274
080374
060474
080574
080674
080774
080674
080974
081074
081174
081274
081374
081474
061574
081674
081774
081874
061974
082074
082174
082274
082374
082474
082574
082674
590
660
400
520
820
930
570
870
510
400
410
440
420
290
370
290
45C
420
320
360
740
470
320
470
520
510
610
540
550
690
530
610
600
660
680
760
750
520
590
540
730
660
810
530
470
630
700
46C
560
680
660
360
550
840
880
450
1010
660
540
920
Cl
02
C3
C2
C3
02
04
01
02
C3
C2
C4
03
01
01
C2
C6
04
02
03
02
03
C2
03
03
Cl
01
99999
01
02
02
01
03
03
03
02
01
Cl
02
03
01
03
02
Cl
02
03
03
03
02
02
02
C3
03
Cl
01
01
03
02
03
01
C5
05
03
C4
06
06
04
06
05
03
04
04
04
02
03
04
03
03
03
04
08
04
02
04
07
C5
06
C6
07
07
06
04
04
06
06
11
03
02
03
06
07
05
06
04
03
06
09
03
04
07
05
03
06
09
Cfc
06
C6
05
02
06
2600
2500
2800
18CO
26 CO
4500
47CO
4200
35 CO
1400
19CC
2000
32 OC
1400
14CO
1400
1900
2500
13CO
It CO
32 CO
1900
13CC
2100
2600
4000
2800
27CO
99999
3100
4700
30 CO
16CO
21 CO
4200
44 CO
2100
1400
1600
2600
99999
99999
99999
24 CO
2700
29CO
99999
99999
2CCC
25CO
2600
1300
1900
40CC
3900
3300
3200
32CO
1300
2800
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
5200
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
6300
99999
99999
99999
99999
99999
99999
99999
99999
99999
11600
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
5900
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
                                   61

-------
313480002F01
313460002F01
3134E0002F01
3134fc0002F01
313460002F01
3134COOC2F01
313460002F01
313460002FU1
3134E0002F01
3134e0002F01
3134b0002F01
313460002F01
3134K0002F01
3l34fc0002F01
3134b0002F01
313480002F01
313480002F01
3134E0002F01
313460002F01
313480002F01
313460002F01
31348COC2F01
313460002F01
313480002F01
31346C002F01
313480002F01
313460002F01
3134b0002F01
3134800G2F01
313460002F01
313460002F01
313480002F01
313460002F01
3i34t0002F01
313480002F01
3134F.OOOZF01
3134B0002F01
313480002F01
313460002F01
3134fcC002F01
313460002F01
313480002F01
313480002F01
313460002F01
3134B0002F01
3134£0002FU1
313480002F01
313460002F01
313480002F01
3134e0002F01
3l34t0002F01
3134t0002F01
313460002F01
313460002F01
3134fc0002F01
3134fe0002F01
3134t0002F01
313460002F01
31346C002F01
313460002F01
062 774
082fa74
082974
083074
08317
-------
313480002F01
3134b0002F01
3134&0002F01
313460002F01
3134fc0002F01
3134E0002F01
313460002F01
313460002F01
3134600G2F01
3134t0002F01
313480002F01
31348C002F01
313480002F01
3134£0002F01
3134f0002F01
313480002F01
3134t0002F01
3134EC002F01
313460002F01
3134fc0002F01
313460002FU1
313460002F01
313480002F01
3134f-0002F01
313460002F01
3134&0002F01
313460002F01
3134b0002F01
3134fc0002F01
3134C0002F01
313460002F01
313460002F01
3134fc0002F01
3134fe0002F01
3134tOOC2F01
3134800U2FC1
313480002FG1
31348C002F01
3134e0002F01
3134E0002F01
3134£0002F01
3134£0002F01
3134e0002F01
31348C002F01
3134t0002F01
3134fc0002F01
313480002F01
313480002F01
313460002F01
3134C0002F01
3134f0002F01
3134fr0002F01
3134t0002F01
313480002F01
313460002F01
313480002F01
313480032F01
313480002F01
313410002F01
3134e0002F01
102674
102774
1C2874
102974
103074
10317«i
110174
110274
110374
110474
110574
110674
110774
110874
110974
111074
111174
111274
111374
111474
111574
111674
111774
111874
111974
112074
112174
112274
112374
112474
112574
112674
112774
112874
112974
113074
120174
120274
120374
120474
120574
120674
120774
120C74
120974
121074
121174
121274
121374
121474
121574
121674
121774
121874
121974
122074
122174
122274
122374
122474
99999
99999
750
99999
1110
1620
1430
940
900
1360
99999
600
640
800
590
550
550
620
1420
1160
660
750
770
1350
1620
1370
700
560
1310
1270
1160
490
1010
370
550
560
210
210
180
190
1010
1470
740
480
670
210
660
1010
750
260
120
480
630
360
560
760
300
320
1120
520
99999
99999
99999
99999
01
01
01
Cl
11
01
99999
01
01
Cl
02
01
99999
99999
99999
99999
01
01
99999
01
Cl
Cl
Cl
01
01
Cl
Cl
01
01
99999
01
Cl
G2
01
Cl
01
99999
99999
Cl
02
01
Cl
99999
01
99999
99999
99999
01
99999
99999
99999
99999
99999
99999
01
99999
99999
99999
99999
99999
08
07
Ob
03
03
05
99999
02
C2
S9999
C2
02
99999
99999
99999
C5
04
C5
08
07
ZO
C5
03
C3
C7
08
06
02
C5
05
03
05
02
02
C3
03
06
08
06
02
03
03
99999
06
07
99999
99999
02
03
03
03
04
05
03
04
07
99999
99999
99999
99999
99999
£400
5900
2000
35 CO
4600
99999
99999
34 CO
99999
2600
99999
99999
99999
99999
6600
99999
7900
14900
99999
1 46 CO
6500
35 CO
ieco
7200
9200
7100
1300
5200
11800
4100
5400
99999
99999
99999
31CO
97CO
16500
11300
2600
4500
5000
99999
57CO
63CO
99999
99999
65 CO
99999
63CO
9700
7700
112CO
99999
99999
72CO
99999
99999
99999
99999
99999
999S9
99999
99999
99999
99999
99999
99999
3700
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
6400
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
4200
99999
99999
99999
99999
99999
99999
99999
99999
99999
9500
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
99999
                                  63

-------
  313480002F01 122574     260      01      03    49CO   99999
  313480002F01 122674     360      01      03    4700    6600
  3134E0002F01 122774     660   99999      04    10200   99999
  3134£0002F01 122874     2^0      01      04    &OOC   99999
  313^t60002F01 12297<»     240   99999   SS999    99999   99999
  313
-------
                                   TECHNICAL REPORT DATA
                            {Please read Instructions on the reverse before completing)
 1. REPORT NO.
   EPA-600/4-78-001
 4. TITLE AND SUBTITLE
  A  FORTRAN PROGRAM FOR COMPUTING THE  POLLUTANT
    STANDARDS INDEX (PSI)
 7. AUTHOR(S)
   Wayne R.  Ott
                                                           8. PERFORMING ORGANIZATION REPORT NO.
                                                           3. RECIPIENT'S ACCESSION-NO.
             5. REPORT DATE
                    May 1978
             6. PERFORMING ORGANIZATION CODE
 9. PERFORMING ORGANIZATION NAME AND ADDRESS
   N/A
             10. PROGRAM ELEMENT NO.

                    1HD621
             11. CONTRACT/GRANT NO.
                                                                 N/A
 12. SPONSORING AGENCY NAME AND ADDRESS
 Office of Monitoring and Technical  Support
 Office of Research and Development
 U.S.  Environmental Protection Agency
 Washington,  D.C.  20460
                                                           13. TYPE OF REPORT AND PERIOD COVERED
             14. SPONSORING AGENCY CODE

                   EPA/600/19
 15. SUPPLEMENTARY NOTES
 None
 16. ABSTRACT
      This report gives full  documentation and serves as  a  user's manual for INDEX.PLOT,
 a FORTRAN computer program designed to calculate the Pollutant Standards Index  (PSI).
 The PSI was proposed in  the  Federal Register in September  1976 by the Environmental
 Protection Agency as a nationally uniform air pollution  index, and is intended  for use
 by State and local air pollution control agencies under  Section 319 of the Clean Air
 Act.   This computer program, which was originally developed  to test the structure of
 PSI,  has now been expanded as  a general purpose program  which can compute daily index
 values for a month, a season,  a year,  or longer.  The program consists of 563 FORTRAN
 statements and contains  seven  specialized subroutines.   By use of the subroutines, the
 main program:  lists the raw data,  along with any data set labels; inventories missing
 values in the data set;  plots  a time series graph of PSI values on the line printer;
 calculates statistics for PSI  (mean,  standard deviation, range, coefficients of
 skewness and kurtosis);  and  generates  and plots a frequency  distribution of PSI values,
 along with cumulative frequencies,  on  the line printer.  A complete listing of the
 program is given, along  with sample outputs and descriptions of each subroutine.  This
 program can be used for  describing air quality trends, comparing data from different
 monitoring stations, and developing environmental quality  profiles.
                                KEY WORDS AND DOCUMENT ANALYSIS
                  DESCRIPTORS
                                              b.IDENTIFIERS/OPEN ENDED TERMS
                           c. COSATI Field/Group
Mathematical models, -Computer simulation,
Systems  analysis,  Statistical analysis,
Pollution  - Air pollution, Sanitary
engineering,  Environmental engineering,
 ivil  engineering
Environmental  indices
Air quality  indices,
Data analysis,  Computer
techniques,  Environmen-
tal monitoring
  04B
  05C
  06F
  12A
  12B
  13B
 3. DISTRIBUTION STATEMENT

         RELEASE TO PUBLIC
19. SECURITY CLASS (This Report)
      UNCLASSIFIED
21. NO. OF PAGES
   65
                                              20 SECURITY CLASS (This page)
                                                    UNCLASSIFIED
                                                                        22. PRICE
EPA Form 2220-1 (9-73)
                                             65
                                                     fcU.S. GOVERNMENT PRINTING OFFICE: 1978 O— 620-736/62 REGION 3-1

-------
               ENVIRONMENTAL
                 PROTECTION
                   AGENCY
               DALLAS, TE>,

                  LIBRARY
EPA 600/4-78-001
       600/4-78-001

-------