DETAILED SYSTEM DESIGN AND

            SPECIFICATION

 FEDERAL WATER SUPPLY DATA SYSTEM


                Prepared for


     THE OFFICE OF WATER SUPPLY
U.S. ENVIRONMENTAL PROTECTION AGENCY

          Contract No. 68-01 -3308
           Task Order 68-01-3910


                Prepared by
             Index Systems, Inc.
              One Broadway
             Cambridge, Mass.
              September 1976
                VOLUME

-------
DETAILED SYSTEM DESIGN AND SPECIFICATION

    FEDERAL WATER SUPPLY DATA  SYSTEM
              Prepared For



       THE OFFICE OF WATER SUPPLY

  U.S. ENVIRONMENTAL PROTECTION AGENCY



        Contract No. 68-01-3308

         Task Order  68-01-3910
              Prepared By
           INDEX SYSTEMS, INC,
              One Broadway
            Cambridge, Mass.
             September,  1976
              VOLUME  III

-------
VII.  PROGRAM  SPECIFICATIONS
                                        index systems inc

-------
             VII.   PROGRAM  SPECIFICATIONS
This  chapter contains  the program  specifications, organ-
ized  numerically within  subsystem.  Each specification
contains several sections, as follows:

       General description
       Input/output chart
       Data file and table usage
       Report reference
       Control or report totals
       Logic chart
       Processing step descriptions

The detailed file and report layouts from chapters in and
IV of this report should be used in conjunction with the pro-
gram specifications.  A separate table of contents is included
for this chapter.

The programs are designed to be written in COBOL.  The internal
date retrieval function is to be used in all cases where the
current processing date is required.  The Periodic Reporting
Subsystem is designed to utilize the string function of COBOL
to access fields by means of offset and length values and
thus facilitate the report selection programming.  In addition
                         -296-
                                                    index systems Ine

-------
this subsystem is designed to use the internal sort

facility.



Reference is made in the specifications to two functional

subroutines which should be coded separately for incor-

poration in many of the programs.  The STANDARD-ERROR routine

is used to print error messages on reports.  The JULIAN-DATE

routine is used to convert Gregorian input dates to Julian

for processing and back to Gregorian for reporting purposes.
     PROGRAM SPECIFICATION TABLE OF CONTENTS
                                                         PAGE
                    PROGRAM                             NUMBER

  1.   Input Subsystem  	  299

    EDIT010 - Edit PWS Inventory Card Transactions 	  299
    EDIT015 - Sort PWS Inventory Card Transactions 	  305
    EDIT020 - Edit Enforcement Card Transactions	  307
    EDIT025 - Sort Enforcement Action Records 	  313
    EDITOjO - Edit Variance and Exemption Card	  315
              Transactions
    EDIT035 - Sort Variance and Exemption Card	  321
              Transactions
    EDIT040 - Edit Summary Violation Card	  323
              Transactions
    EDIT050 - Summarize MSIS Detail Violations 	  329
    EDIT055 - Sort Summary Violation Transactions  	  334
    EDIT060 - Sort MSIS PWS Inventory Transactions 	  336
    EDIT070 - Sort MSIS Variance and Exemption	  338
              Transactions
    EDIT080 - Merge MSIS Detail Violations  	  340
  2.   Update Subsystem	  342

   UPDT010 - Update  PWS  Inventory File	  342
   UPDT020 - MSIS  Update PWS  Inventory File	  351
   UPDT030 - Update  PWS  Inventory Violations	  356
   UPDT040 - Year  End PWS Inventory File Update  	  361
   UPDT045 - Merge Purged PWS Inventory Records  	  366
                            - 2 9 7 -                     index systems inc

-------
                                                        PAGE
                  PROGRAM                              NUMBER

3.  Update Subsystem Cont.

  UPDT050 - Update Variance and Exemption File 	  368
  UPDT060 - MSIS Update Variance and Exemption 	  377
            File
  UPDT065 - Merge Purged Variance and Exemption .......  382
            Records
  UPDT070 - Update Processing Tables	  384
    Periodic Reporting Subsystem 	„...   386

  PRRP010 - Edit PWS Inventory Report Selection 	   386
            Cards
  PRRP020 - Generate PWS Inventory Reports 	...   391
  PRRP030 - Edit Variance and Exemption Report 	   396
            Selection Cards
  PRRP040 - Generate Variance and Exemption	   401
            Review List
5.   Annual Reporting Subsystem 	   406

  ANRP020 - Generate Compliance Profiles	   406
  ANRP031 - Generate Inventory Reports by Ownership .,.   413
  ANRP032 - Generate Inventory Reports by Type of .....   418
            Water Source
  ANRP033 - Generate Inventory Reports by Treatment ...   423
  ANRP034 - Generate Inventory Reports by Lab Control  .   429
  ANRP035 - Generate Inventory Reports by Treatment ...   433
            Process
  ANRP036 - Generate Inventory Reports by Analyzing ...   438
            Services
  ANRP037 - Generate Inventory Reports of Capacity ....   442
            and Production
  ANRP038 - Generate Inventory Report of Per  Capita ..,   447
            Water Use
  ANRP040 - Generate Enforcement Action Summary 	   451
  ANRP050 - Generate Violation Summary	   457
  ANRP060 - Generate Variance  and Exemption Summary ...   463
                         •298-                     index systems Sine

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
EDIT010 - Edit PWS Inventory Card Transactions

INPUT

This program edits the PWS -'inventory card input
transactions.  It produces an edited tape for
input to the PWS Inventory Update program UPDT010,
a detailed Transaction Report EDIT010R2 and a
Batch Control and Error Report EDIT010R1.
     PINCT
                                                 EPICT
^
J?- 	 —
PWS INVENTORY
CARD
TRANSACTIONS

•
v
	 J

EDTT010
EDIT PWS INVEN-
TORY CARD
TRANSACTIONS
/EDITED
/ PWS
J INVENTORY
*1 CARD
\ TRANSACT!
V TIONS
        EDITOTOR1
       DATA ENTRY
       BATCH CONTROL
       &  ERROR REPORT:!
       PWS  INVEN-
         TORY
                      EDIT010R2

                    PWS INVENTORY
                     TRANSACTION

                       LIST
                            -299-
                                                      index systems one

-------
1.  INTRODUCTION;

    Function;  This program reads PWS inventory transactions,
               batched by state.  It checks data values on
               each transaction and balances to batch control
               totals.

    Transaction Source;  Card input, keypunched from input forms,

    Input Sort Sequence; Batch number

    Reports;  EDIT010R1 - Data Entry Batch Control and Error
              Reports  PWS Inventory lists transactions in
              error, error messages, batch and run totals.

              EDIT010R2 - PWS Inventory Transaction Listing -
              lists transactions accepted and the sequence
              numbers assigned by the program.
2.  DATA USAGE:
    Input File;
    Output File;
    Tables:
                         File Name - PWS Inventory Card Trans-
                                     actions
                         File I.D. - PINCT
                         File Layout Reference - See PWS Inven-
                                     tory Entry Form
                         Record Name - Not applicable
                         File Name - Edited PWS Inventory Card
                                     Transactions
                         File I.Do - EPICT
                         File Layout Reference - PWSUT
                         Record Name - PWS Trans (00/01)-(13)
                         Table Name
                         Table I.D.

                         Table Name
                         Table I.D.
Error Messages
ERRMSG

State Table
STATAB
                             -300-
                                                      iradex systems

-------
3.  REPORT OUTPUT;

         EDIT010R1 - Data Entry Batch Control and Error Report:
                     PWS Inventory

         EDIT010R2 - PWS Inventory Transaction Listing


4.  CONTROL ACCUMULATORS;

    Number of batches processed

    Number of batches accepted

    Number of batches rejected

    Number of batches in balance

    Number of batches out-of-balance

    Number of transactions - per batch

    Number of transactions accepted - per batch

    Number of transactions rejected - per batch


5.  GENERAL PROCESSING NOTES;

    A common subroutine,  STANDARD-ERROR,  is used to print error
    messaaes on EDIT010R1.

    A common subroutine,  JULIAN-DATE, is  used to convert dates
    on the input cards to Julian dates.
                             -301-
                                                      index systems inc

-------
6.  LOGIC CHARTt   (Numbers reference  PROCESSING  STEPS, Section  7)
                                                                                  (6)
                             INITIALIZE
                              READ
                              TABLES
                                                 SUM BATCH
                                                TOTAL (RUN)
a                                      READ
                                     TRANSACTION
                                       CARD
                                                                     WRITE
                                                                     PRIOR
                                                                     BATCH
                                                                     TOTALS
                 SUM
                 TRANSACTION
                 TOTAL
                   HEADER:
                    TRAN:
                     END:
                              WRITE'   /
                               RUN     /
                              TOTALS
SUM
TRANSACTION
   VALID
TRANSACTION
                                                         VALID BATCH
                                                                             ERROR
                                                                             COUNTER  (RUN)
                                                                        WRITE BATC
                                                                        ERROR
                                                        SUM BATCH
                                                        TOTAL ACCEPTED
                                                          (RUN)
 SUM
 TRANSACTION
 ACCEPTED
 COUNTER
           / WRITE TRAN
           /  SACTION
          LIST! REPORT
                                                         STORE BATCH
                                                           VALUES
                                                             READ NEXT
                                                            TRANSACTIO
                                                              CARD
         / EDIT010R2
                                                  INITIALIZE
                                                TRANSACTION
                                                  COUNTERS
                   AjRITE VALID/
                  /TRANSACTION/
                  /   TAPE   /
                                                              BATCH
                                                              HEADER
                                                   WRITE
                                                   REPORT
                                                  HEADERS
                                         -302-

-------
7.     PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

       (1)    Initialize counters.

       (2)    Read and store tables.

       (3)    Read a record from the transaction file.

       (4)    Increment batch counters for batch header.  If not
              first batch write prior batch totals as indicated on
              EDIT010R1.  Print the out of balance message if the
              transactions per batch accumulator does hot equal the
              transaction count from the batch header.

       (5)    Validate batch header:

              Tran code must be "BP", if not, perform step (6),
              using error message 001.

              Check state code:

                     If 0-10, use as the region number and set
                     state code to blank.

                     If not 0-10, match to State Table.  Use cor-
                     responding region number from State Table as
                     the region.

                     If no match to table, perform step (6),  using
                     error message 002.

       (6)    For an invalid batch, increment batch rejected counter,
              write error message as indicated on EDIT010R1 layout
              and read to next batch header.

       (7)    For a valid batch, increment batch accepted counter,
              store header values for balancing and initialize
              transaction counters.

              Write report headers to a new page for both EDIT010R1
              and EDIT010R2.  Read next transaction record.

       (8)    Process transactions by incrementing the transaction
              counter.

       (9)    Validate  data values as described in the Edit Require-
              ments section of the Data Element Description.   The
              tran code on each transaction will indicate which of
              the 13 transaction types the record represents.   The
                                 -303-                 index systems inc

-------
       appropriate error checks should be made to the data
       elements of each specific record type.  It is valid
       to have blanks in any field beyond the key.  It is
       also valid to have an asterisk (*) in the right-most
       position of any field and the remainder of the field
       blank.   If a value is in error, perform step 10 using
       appropriate error message.  If record is valid, per-
       form step 11.

(10)    For a transaction error, increment transaction re-
       jected counter and write record to EDIT010R1 (as
       indicated on the report layout).   Read next trans-
       action.

(11)    For a valid transaction, increment transaction ac-
       cepted counter.

       Write transaction to EDIT010R2 (as indicated on the
       report layout)  using the PWSID and tran code for the
       first two fields respectively for the output record.
       The report should show a card image unformatted.
       All date fields should be converted to Julian dates
       using the subroutine JULIAN-DATE.

       Write transaction to file EPIOT Edited PWS Inventory
       Transactions File.  Read the next transaction.

(12)    At end of run,  write run totals to EDIT010R1 as indi-
       cated on the report layout.
                       -304-                    .  .      m
                                                index systems me

-------
                  EPA WATER SUPPLY DATA SYSTEM

                      PROGRAM SPECIFICATION


PROGRAM:       EDIT015 - Sort Edited PWS Inventory Card Transactions

SUBSYSTEM:     INPUT

DESCRIPTION:   Utility Sort/Merge Program
        EPICT
        ^—'-
        EDITED
         PWS
    [INVENTORY
         CARD
     ^TRANSACTION
                      SPICT
EDIT015
  SORT
                               -305-
                            index systems inc

-------
SORT SEQUENCE;

   Data Element

   REGION
   STATE
   PWS-ID
   TRAN-CODE
   SOURCE-ID-NUM
Offset    Length    Data Type
  1
  3
  5
 12
 20
2
2
7
2
2
character
character
character
character
character
Ascending/
Descending

ascending
ascending
ascending
ascending
ascending
DATA USAGE
Input File;
Output File;
                     File Name - Edited PWS Inventory Card
                                 Transactions
                     File I.D. - EPICT
                     File Layout Reference - PWSUT
                     Record Name - PWS Trans (00/01) -  (13)
                     File Name - Sorted PWS Inventory Card
                                 Transactions
                     File I.D. - SPICT
                     File Layout Reference - PWSUT
                     Record Name - PWS Trans (00/01) - (13)
                               -306-
                                index systems ids

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
EDIT020 - Edit Enforcement Card Transactions

INPUT

This program edits the enforcement card input
transactions.  It produces an edited tape to
be merged with MSIS Transactions, a detailed
Transaction Report EDIT020R2 and a Batch
Control and Error Report EDIT020R1.
     ENACT
                                                  EENAC
   ENFORCE-
MENT ACTION
   CARD

PRANSACTIONS
      EDIT020
     EDIT ENFORCE
     MENT CARD

     TRANSACTIONS
   EDITED
ENFORCEMENT

   ACTION

  RECORDS
       DATA ENTRY
       BATCH CONTROL
       & ERROR REPORT
       1NFORCEMENT
       ACTIONS
                   ENFORCEMENT
                   TRANSACTION
                     LIST
                               -307-
                                                      index systems me

-------
    INTRODUCTION;

    Function;  This program reads enforcement transactions,
               batched by state.  It checks data values on
               each transaction and balances to batch control
               totals.

    Transaction Source;  Card input, keypunched from input forms,

    Input Sort Sequence;  Batch number

    Reports;   EDIT020R1 - Data Entry Batch Control and Error
              Report:  Enforcement Transactions list transac-
              tions in error, error messages, batch and run
              totals.

              EDIT020R2 - Enforcement Transaction Listing lists
              transactions accepted and the sequence numbers
              assigned by the program.
2.   DATA USAGE:
    Input File;
    Output File;
    Tables:
                       File Name - Enforcement Action Card Trans-
                                   actions
                       File I.D. - ENACT
                       File Layout Reference - See Enforcement
                                   Actions Entry Form
                       Record Name - Not applicable
                       File Name - Edited Enforcement Action
                                   Records
                       File I.D. - EENAC
                       File Layout Reference - ENACF
                       Record Name -  Enforcement
                       Table  Name
                       Table  I.D.

                       Table  Name
                       Table  I.D.
Error Messages
ERRMSG

State Table
STATAB
                             -308-
                  index systems inc

-------
3.  REPORT OUTPUT;

         EDIT020R1 - Data Entry Batch Control and Error Report:
                     Enforcement  Actions

         EDIT020R2 - Enforcement Transaction Listing


4.  CONTROL ACCUMULATORS;

    Number of batches processed

    Number of batches accepted

    Number of batches rejected

    Number of batches in balance

    Number of batches out-of-balance

    Number of transactions - per batch

    Number of transactions accepted - per batch

    Number of transactions rejected - per batch


5.  GENERAL PROCESSING NOTES;

    A common subroutine, STANDARD-ERROR,  is used to print error
    messages on EDIT020R1.

    A common subroutine, JULIAN-DATE, is  used to convert dates
    on the input cards to Julian dates.
                             -309-                   §rodex systems Birae

-------
    &OQIC  CHART;   (Numbers reference PROCESSING STEPS,  Section 7)
                                                                                          (6)
                                     INITIALIZE
                                      READ
                                      TABLES
                                                         SUM BATCH

                                                        TOTAL (RUN)
                                      READ
                                    TRANSACTION
                                       CARD
                                                                             WRITE
                                                                             PRIOR
                                                                            BATCH
                                                                            TOTALS
                 SUM
                 TRANSACTION
                 TOTAL
                   HEADER:
                    TRAN:
                     END:
                                      WRITE
                                       RUN
                                      TOTALS
SUM
 RANSACTION
   VALID
TRANSACTION
                                                        VALID BATCH
                                                                            ERROR
                                                                            COUNTER (RUN)
ERROR
COUMTKB
                                                                               WRITE BATC
                                                                                ERROR
 WRITE
   TRAN
  ERROR
                                     SUM BATCH
                                     TOTAL ACCEPTED
                                       (RUN)
SUM
TRANSACTION
ACCEPTED
COUNTER
                   / WRITE TRAN
                   /  SACTION
                  /LIST REPORT
                                                         STORE BATCH
                                                          VALUES
                                                             1READ NEXT
                                                             ^RANSACTIO
                                                              CARD
                 / EDIT020R2
                                                          INITIALIZE
                                                        TRANSACTION
                                                          COUNTERS
                      TE VALID/
                   TRANSACTION/
                      TAPE   /
                                                           WRITE
                                                           REPORT
                                                          HEADERS
                                              -310-

-------
7.     PROCESSING STEPS;   (Numbers reference LOGIC CHART,  Section  6)

       (1)    Initialize counters.

       (2)    Head and store tables.

       (3)    Read a record from the transaction file.

       (4)    Increment batch counters for batch header.   If not
              first batch write prior batch totals as indicated on
              EDIT020R1.  Print the out of balance message if  the
              transactions per batch accumulator does not  equal the
              transaction count from the batch header.

       (5)    Validate batch header:

              Tran code must be "BE", if not, perform step (6),
              using error message 001.

              Check state code:

                     If 0-10, use as the region number and set
                     state code to blank.

                     If not 0-10, match to State Table.  Use cor-
                     responding region number from State Table as
                     the region.

                     If no match to table, perform step  (6), using
                     error message 002.

       (6)    For an invalid batch, increment batch rejected counter,
              write error message as indicated on EDITO-20R1 layout
              and read to next batch header.

       (7)    For a valid batch, increment batch accepted  counter,
              store header values for balancing and initialize
              transaction counters.

              Write report headers to a new page for both  EDIT 020R1
              and EDIT020R2.  Read next transaction record.

       (8)    Process transactions by incrementing the transaction
              counter.

       /o\
       XJ/    Validate data values as described in the Edit Require-
              ments section of the Data Element Description.  It  is
              valid to have blanks in any field beyond the  key.  If
              a value is in error, perform step 10 using  appropriate
              error message.  If record is valid,  perform step  11.
                                  -311-
index systems inc

-------
(10)    For a transaction error, increment transaction re-
       jected counter and write record to EDIT020R1 (as
       indicated on the report layout).   Read next trans-
       action.

(11)    For a valid transacton, increment transaction ac-
       cepted counter.

       Write transaction to EDIT020R2 (as indicated on the
       report layout)  using the current value of the
       transaction counter as the TRAN number.

       Write transaction to file EENAC Edited Enforcement
       Action Records.   Read the next transaction.

(12)    At end of run,  write run totals to EDIT020R1 as indi-
       cated on the report layout.
                        -312-
index systems inc

-------
                 EPA WATER SUPPLY DATA SYSTEM
                     PROGRAM SPECIFICATION

PROGRAM;       EDIT025 - Sort Enforcement Actions Records
SUBSYSTEM:     INPUT
DESCRIPTION:   Utility Sort/Merge Program
                             MSISE
                             MS IS
                          ENFORCEMENT
                             ACTIONS
 EDITED
ENFORCEMENT
 ACTION
 RECORDS
                                                ENFORCEMEN
                                                 ACTIONS
                                                  FILE
                                -313-
                                                        index systems ine

-------
SORT SEQUENCE;

   Data Element

   REGION
   STATE
   PWS-ID
   CASE-ID
Offset    Length    Data Type
  1
  3
  5
 12
2
2
7
5
character
character
character
character
Ascending/
Descending

ascending
ascending
ascending
ascending
DATA USAGE:
Input Files:
Output File;
                  File Name - Edited Enforcement Action Records
                  File I.D. - EENAC
                  File Layout Reference - ENACF
                  Record Name - Enforcement

                  File Name - MSIS Enforcement Actions
                  File I.D. - MSISE
                  File Layout Reference - ENACF
                  Record Name - Enforcement
                  File Name - Enforcement Actions File
                  File I.D. - ENACF
                  File Layout Reference - ENACF
                  Record Name - Enforcement
                            -314-
                                                    index systems inc

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:



SUBSYSTEM:

DESCRIPTION:
EDIT030 - Edit Variance and Exemption Card
          Transactions

INPUT

This program edits the  variance  and  exemption
card input transactions.  It produces an edited
tape for input to the Variance and Exemption
Update program UPDT050, a detailed Transaction
Report EDIT030R2 and a Batch Control and Error
Report EDIT030R1.
     VEXCT
                                                EVECT
^
^"VARIANCE &
EXEMPTION
CARD
TRANSACTIONS
«



EDTT030
EDIT VARIANCE
& EXEMPTION
CARD
TRANSACTIONS
v_

                                                 EDITED
                                               VARIANCE &
                                               EXEMPTION
                                                  CARD
                                               RANSACTION
        EDIT030R1
      DATA ENTRY
      BATCH CONTROL  &|
      ERROR REPORT:
      VARIANCES &
      EXEMPTIONS.
                     EDIT030R2

                  VARIANCE  &
                  EXEMPTION
                  TRANSACTION
                     LIST
                               -315-
                                      index systems inc

-------
1.  INTRODUCTION;

    Function:  This program reads variance and exemption
               transactions, batched by state.  It checks data
               values on each transaction and balances to
               batch control totals.

    Transaction Source;  Card input, keypunched from input forms,

    Input Sort Sequence;  Batch number

    Reports;  EDIT030R1 - Data Entry Batch Control and Error
              Report:  Variances and Exemptions lists  trans-
              actions in error, error messages, batch and
              run totals.

              EDIT030R2 - Variance and Exemption Transaction
              Listing lists transactions accepted and the
              sequence numbers assigned by the program.


2.  DATA USAGE:
    Input File;
    Output File:
    Tables:
                       File Name - Variance and Exemption Card
                                   Transactions
                       File I.D. - VEXCT
                       File Layout Reference - See Variance and
                                   Exemption Entry Form
                       Record Name - Not applicable
                       File Name - Edited Variance and Exemption
                                  • Card Transactions
                       File I.D. - EVECT
                       File Layout Reference - VAEXT
                       Record Name - V&E Trans (00/01)
                       Table Name - Error Messages
                       Table I.D. - ERRMSG

                       Table Name - State Table
                       Table I.D. - STATAB
                             -316-
index systems inc

-------
3.  REPORT OUTPUT;

        EDIT030R1 - Data Entry Batch Control and Error Report:
                    Variances and Exemptions

        EDIT030R2 - Variance and Exemption Transaction Listing


4.  CONTROL ACCUMULATORS;

    Number of batches processed

    Number of batches accepted

    Number of batches rejected

    Number of batches in balance

    Number of batches out-of-balance

    Number of transactions - per batch

    Number of transactions accepted - per batch

    Number of transactions rejected - per batch


5.  GENERAL PROCESSING NOTES;

    A comiri~n subroutine, STANDARD ERROR, is used to print
    error messages on EDIT030R1.

    A common subroutine, JULIAN-DATE,  is used to convert dates
    on the input cards to Julian dates.
                            - 317 -                     index systems inc

-------
  6. LOGIC CHART;    (Numbers reference  PROCESSING  STEPS,  Section  7)
                                      READ
                                    /TRANSACTION,
                                       CARD
(10)
  SUM BATCH

 TOTAL  (RUN)
                  SUM
                  TRANSACTION
                  TOTAL
                      WRITE
                      PRIOR
                     BATCH
                     TOTALS
                                                                                          (6)
                    SUM
                    TRANSACTION
                    ACCEPTED
                    COUNTER
                   /WRITE TRANi
                   /  SACTION
                   LlST REPORT,
                  /EDIT030R2
                      ITE VALID7
                    TRANSACTION/
                       TAPE   /
                             /
SUM BATCH
TOTAL ACCEPTED
  (RUN)
                                                             i
 STORE BATCH
   VALUES
  INITIALIZE
TRANSACTION
  COUNTERS
                                                           WRITE
                                                           REPORT
                                                           HEADERS
                                                                            SUM BATCH

                                                                            ERROR
                                                                            COUNTER (RUN)
                                                                                  JL
  'WRITE BATCIi
   ERROR

fEDIT030Rl
   READ NEXT /
 1 TRANSACTION/
   CARD
                                /
                                                 -318-

-------
7.     PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

       (1)    Initialize counters.  .

       (2)    Read and store tables.

       (3)    Read a record from the transaction file.

       (4)    Increment batch counters for batch header.  If not
              first batch write prior batch totals as indicated on
              EDIT030R1   Print the out of balance message if the
              transactions per batch accumulator does hot equal the
              transaction count from the batch header.

       (5)    Validate batch header:

              Tran code must be "BV" , if not, perform step (6) ,
     . •        using error message 001.

              Check state code:

                     If 0-10, use as the region number and set
                     state code to blank.

                     If not 0-10, match to State Table.  Use cor-
                     responding region number from State Table as
                     the region.

                     If no match to table, perform step  (6),  using
                     error message 002.

       (6)    For an invalid batch, increment batch rejected counter,
              write error message as indicated on -EDIT030R1  layout
              and read to next batch header.

       (7)    For a valid batch; increment batch accepted counter,
              store header values for balancing and initialize
              transaction counters.

              Write report headers to a new page for both EDIT030R1
              and ,EDIT03QR2,  Read next transaction record.

       (8)    Process transactions by incrementing the transaction
              counter.

              Validate  data  values as described in the Edit Require-
              ments section  of the Data Element Description.   It is  valid
              to have blanks in any field beyond the key. It is also
              valid to  have  an asterisk (*)  in  the right-most position
              of any field and the remainder of the field blank.   If a
                                     -319-
index systems inc

-------
      value is in error,  perform step 10 using
      appropriate error message.   If record is valid,
      perform step 11.

(10)   For a transaction error,  increment transaction re-
      jected counter and  write  record to EDIT030R1 (as
      indicated on the  report layout).   Read next trans-
      action.

(11)   For a valid transaction,  increment transaction ac-
      cepted counter.

      Write transaction to EDIT030R2 (as indicated on the
      report layout)  using the  current value of the trans-
      action counter as TRAN number.  All date fields  should
      be  converted to Julian dates using the subroutine
      JULIAN-DATE.

      Write transaction to file EVECT Edited Variance  and
      Exemption Card Transactions File.   Read the next
      transaction.

(12)   At  end of run,  write run  totals to EDIT030R1 as  indi-
      cated on the report layout.
                          _ 3 2 o -                  index systems °mc

-------
                  EPA WATER SUPPLY DATA SYSTEM
                      PROGRAM SPECIFICATION
PROGRAM:


SUBSYSTEM:

DESCRIPTION:
EDIT035 - Sort Edited Variance and Exemption Card
          Transactions

INPUT

Utility Sort/Merge Program
         EVECT
       EDITED
      VARIANCE &
     EXEMPTION
        CARD
     kTRANSACTION
         TIONS
            EDIT035
             SORT
                                                   SVECT
    SORTED
 VARIANCE  &
[EXEMPTION
    CARD
 ^TRANSAC-
     TIONS
                                 -321-
                                         index systems inc

-------
1.   SORT SEQUENCE;

        Data Element

        REGION
        STATE
        PWS-ID
        VE-ID
        TRAN-CODE
Offset    Length
  1
  3
  5
 12
 17
2
2
7
5
2
Data Type

character
character
character
character
character
Ascending/
Descending

ascending
ascending
ascending
ascending
ascending
2.   DATA USAGE:
     Input File;
                       File Name - Edited Variance and Exemption
                                   Card Transactions
                       File I.D. - EVECT
                       File Layout Reference - VAEXT
                       Record Name - V & E Trans  (00/01)
     Output File;
                       File Name - Sorted Variance and Exemption
                                   Card Transactions
                       File I.D. - SVECT
                       File Layout Reference - VAEXT
                       Record Name - V & E Trans  (00/01)
                                  -322-
                                index systems ins

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:
EDIT040 - Edit Summary Violation Card Trans-
          actions
SUBSYSTEM:

DESCRIPTION:
INPUT

This program edits the violations summary
input transactions.  It produces an edited
tape for input to the Violations PWS Update
Program UPDT030, a detailed Transaction Report
EDIT040R2 and a Batch Control and Error Listing
EDIT040R1.
     SPVCT
^SUMMARY PWS
INVENTORY
VIOLATION
CARD
TRANSACTIONS
m
*.
	 *
EDIT040
EDIT SUMMARY
PWS INVENTORY
VIOLATION CARD
TRANSACTIONS


                                  ESPVT
                                 ^	>
                                  EDITED"
                                SUMMARY
                              ?WS INVENTORY
                               VIOLATION
                              ?RANSACTIONS
        EDIT040R1
       DATA ENTRY
       BATCH CONTROL
       ERROR REPORT:
       SUMMARY
       VIOLATIONS
                     EDIT040R2
                   SUMMARY VIOLA-
                   TIONS TRANSAC-
                   TION LIST
                           -323-
                                                      index systems Sine

-------
1.  INTRODUCTION;

    Function:  This program reads  violation summary  transac-
               tions, batched by state.  It checks data values
               on each transaction and balances to batch control
               totals.

    Transaction Source;  Card input, keypunched from input forms,

    Input Sort Sequence;  Batch Number

    Reports; EDIT040R1 - Data Entry Batch Control and Error
             *tep°rt:  Summary Violations lists transactions
             in error, error messages, hatch and run totals.

              EDIT04X)R2 - Summary Violations Transaction Listing
              lists transactions accepted and the sequence
              numbers assigned by the program.
2»   DATA USAGE:
    Input File;
    Output File;
                       File Name - Summary Violation Card
                                   Transactions
                       File I.D. - SPVCT
                       File Layout Reference - See Violation
                                   Summary Entry Form
                       Record Name - Not applicable
                       File Name - Edited Summary Violation
                                   Transactions
                       File I.D. - ESPVT
                       File Layout Reference - VIOST
                       Record Name - Violation Trans (01)
    Tables:
                       Table Name
                       Table I.D.

                       Table Name
                       Table I.D.
Error Messages
ERRMSG

State Table
STATAB
                            -324-
                  index systems me

-------
3.  REPORT OUTPUT;

        EDIT040R1 - Data Entry Batch Control and Error Report;
                    Summary Violations

        EDIT040R2 - Summary Violations Transaction Listing


4.  CONTROL ACCUMULATORS;

    Number of batches processed

    Number of batches accepted

    Number of batches rejected

    Number of batches in  balance

    Number of batches out-of-balance

    Number of transactions - per batch

    Number of transactions accepted - per batch

    Number of transactions rejected - per batch


5.  GENERAL PROCESSING NOTES;

    A common subroutine,  STANDARD-ERROR,  is used to print
    error inessages on EDIT040R1.
                            ~325~                    index systems inc

-------
     i.  &QSIC  CHARTS   (Numbers reference  PROCESSING STEPS,  Section 7)
                                       READ
                                    /TRANSACTION,
                                        CARD
            (8)
                  SUM  '
                  .TRANSACTION

                  TOTAL
  SUM BATCH

 TOTAL  (RUN)
(10)
                    SUM
                    TRANSACTION
                    ACCEPTED
                    COUNTER
                    /WRITE TRANi
                   /  SACTION
                   &.IST REPORT i
                  /EDIT040R2
                     *ITE VALIDj
                   'TRANSACTIOli
                       TAPE
SUM BATCH
TOTAL ACCEPTED
  (RUN)
 STORE BATCH

   VALUES
  INITIALIZE
TRANSACTION
  COUNTERS
                                                            WRITE
                                                            REPORT
                                                           HEADERS
                      WRITE
                      PRIOR
                     BATCH
                     TOTALS
                                  (6)
                                                                             SUM BATCH

                                                                             ERROR
                                                                             COUNTER  (RUN)
 ' READ NEXT /
FTRANSACTION/
   CARD    /
                                              -326-

-------
7.     PROCESSING STEPS;   (Numbers reference LOGIC CHART,  Section  6)

       (1)    Initialize counters.

       (2)    Read and store tables.

       (3)    Read a record from the transaction file.

       (4)    Increment batch counters for batch header.   If not
              first batch write prior batch totals as indicated on
              EDIT040R1..  Print the out of balance message,.if the
              transactions per batch accumulator does not  equal the
              transaction count from the batch header.

       (5)    Validate batch header:

              Tran code must be "B$" , if not, perform step (6),
              using error message 001.

              Check state code:

                     If 0-10, use as the region number and set
                     state code to blank.

                     If not 0-10, match to State Table.  Use cor-
                     responding region number from State Table as
                     the region.

                     If no match to table, perform step  (6), using
                     error message 002.

       (6)    For an invalid batch, increment batch rejected counter,
              write error message as indicated on EDIT040R1 layout
              and read to next batch header.

       (7)    For a valid.batch, increment batch accepted  counter,
              store header values for balancing and initialize
              transaction counters.

              Write report headers to a new page for both  EDIT040R1
              and EDIT040R2 .   Read next transaction record.

       (8)    Process transactions by incrementing the transaction
              counter.

       (9)   Validate data values as described in the Edit Require-
             ments section of the Data Element Description.  It  is valid
             to have blanks in any field beyond the key.   It  is  also
             valid to have an asterisk (*) in the right-most  position
             of any field and the remainder of the field  blank.   If a
                                -327-
                                                        index systems inc

-------
      value is in error, perform step 10 using
      appropriate error message.  If record is
      valid,  perform step 11.

(10)   For a transaction error,  increment transaction
      rejected counter and write record to EDIT040R1
      (as indicated on the report layout).  Read
      next transaction.

(11)   For a valid transaction,  increment trans-
      action accepted counter.

      Write transaction to EDIT040R2 (as indicated
      on the report layout)  using the current value
      of the transaction counter as the TRAN number.

      Write transaction to file ESPVT Edited Summary
      Violation Transactions File.   Read the next
      transaction.

(12)   At end of run,  write run  totals to EDIT040R1
      as indicated  on the report layout.
                  -328-

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
EDIT050 - Summarize MSIS Detail Violations

INPUT

This program edits and summarizes the MSIS
Detail Violations tape.  It produces a sum-
marized violation tape and a control listing
EDIT050R1.
       MPDVT
      *• " -
     MSIS
   PWS  INVEN-
  TORY  DETAIL
  VIOLATION
  ^TRANSACTIONS
         EDIT050

      SUMMARIZE MSIS
         DETAIL

      VIOLATIONS
                              SMPVT
 'SUMMARIZED
   MSIS PWS
[INVENTORY
 VIOLATION
 TRANSAC-
   TIONS
                        EDIT050R1
                     MSIS VIOLATIONS
                      TRANSACTION
                         LIST
                               -329-
                                       M@x systems Sue

-------
1.
2.
       INTRODUCTION:
      Function:
                      This program reads violations detail reco.rds,
                      It summarizes violations by region, state>
                      PWS-ID, contaminant identification and vio-
                      lation type.
      Transaction Source:
                             Tape input, from the mechanized state
                             processing system, MSIS.
      Input Sort Sequence;  Region, state, PWS-ID, contaminant
                            identification and violation  type.

      Report;  EDIT050R1 - MSIS Violations Transaction List - lists
               the summarized transactions and the sequence number
               assigned by the program.
      DATA USAGE:
      Input File;
      Output File;
      Tables:
                         File Name - MSIS Detail Violation Transactions
                         File I.D. - MPDVT
                         File Layout Reference - VIODT
                         Record Names - Violation
                                        Control Record
                         File Name - Summarized MSIS Violation
                                     Transactions
                         File I.D. - SMPVT
                         File Layout Reference - VIOST
                         Record Name - Violation Trans (01)
                         Table Name - Contaminant Table
                         Table I.D. - CONTAB

                         Table Name - Violation Type Table
                         Table I.D. - VIOTAB
3,
       REPORT OUTPUT:
           EDIT050R1 - MSIS Violations Transaction List
                               -330-
                                                        index systems irce

-------
4.     CONTROL ACCUMULATORS;

       Total transactions read by state

       Total transactions summarized by state

       Total violations by state

       Total transactions read by run

       Total transactions summarized by run

       Total violations by run


5.     GENERAL PROCESSING NOTES:
       Error messages will be written by a common subroutine,
       STANDARD-ERROR, to EDIT050R1.

       One summary output transaction is created for each unique
       PWS-ID within a state.
                                -331-
index systems inc

-------
6.  LOGIC CHART:  (Numbers reference PROCESSING STEPS, Section 7)
 SUM PWS

 CONTAMINANTS
   SUM PWS

  VIOLATIONS
                (1)
                                     (2)
                      INITIALIZE
                        COUNTERS
                                        STORE # OF

                                         RECORDS
  PRINT  FIN-
fAL STATE  &
 RUN TOTALS
                                        WRITE PRE-
                                         VIOUS
                                       STATE
                                        COUNTERS
                               INITIALIZE
                               STATE COUNTERS

                                TO  '0'
                  WRITE  PRE-
                  VIOUS  PWS
                  SUMMARY TO
                   SMPVT
,"' ^
t
SET CONTAMINANT
i VIOLATION
COUNTERS TO
'O1

                     c
   STOP
                              -332-

-------
7.     PROCESSING STEPS;   (Numbers reference LOGIC CHART, Section 6)

       (1)  Initialize counters.

       (2)  Read a transaction record.

       (3)  Compare to see if a control record and store control
            totals.

       (4)  If new state, write the prior state totals to the
            Summarized MSIS Violation Transaction Report EDIT050R1,
            after matching total violations to control totals.
            If no match, write error message 06 .

            Set all PWS contaminant/violation counters to zero.

            Increment new states  transactions counter.

       (5)  Write previous PWS summed record to the SMPVT file and
            the EDIT050R1 report.

            Set all PWS contaminant and violation counters to 0.

       (6)  Sum contaminant/violations for each corresponding PWS.

       (7)  At the end of the run, print the run totals.
                                 -333-                  index systems one

-------
                  EPA WATER SUPPLY DATA SYSTEM

                      PROGRAM SPECIFICATION


PROGRAM:       EDIT055 - Sort Summary Violation Transactions

SUBSYSTEM:     INPUT

DESCRIPTION:   Utility Sort/Merge Program
                              ESPVT
                             EDITED
                            SUMMARY
                          PWS INVENTORY
                           VIOLATION:
                           TRANSACT
                              TIONS
                                                  SORTED
                                                 SUMMARY
                                               PWS INVENTORY
                                                VIOLATION
                                                RANSACTIONS
 SUMMARIZE
MSIS PWS
INVENTORY
VIOLATION
RANSACTIONS
                               -334-
                                                   index systems inc

-------
1.   SORT SEQUENCE;

        Data Element

        REGION
        STATE
        PWS-ID
Offset    Length
  1
  3
  5
2
2
7
Data Type

character
character
character
Ascending/
Descending

ascending
ascending
ascending
2.    DATA USAGE:
     Input Files;
                       File Name - Summarized MSIS PWS Inventory
                                   Violation Transactions
                       File I.D. - SMPVT
                       File Layout Reference - VIOST
                       Record Name - Violation Trans (01)

                       File Name - Edited Summary PWS Inventory
                                   Violation Transactions
                       File I.D. - ESPVT
                       File Layout Reference - VIOST
                       Record Name - Violation Trans (01)
     Output File;
                       File Name - Sorted Summary PWS Inventory
                                   Violation Transactions
                       File I.D. - SSPVT
                       File Layout Reference - VIOST
                       Record Name - Violation Trans (01)
                                 -335-
                                snd@K systems me

-------
                  EPA WATER SUPPLY DATA SYSTEM

                      PROGRAM SPECIFICATION


PROGRAM:       EDIT060 - Sort MSIS PWS Inventory Transactions

SUBSYSTEM:     INPUT

DESCRIPTION:   Utility Sort/Merge Program
        MSISP
       MSIS PWS
      INVENTORY
     TRANSACTIONS
EDIT060
                            SORT
      SMPUT
     ^	.
     SORTED
        PWS
_»J INVENTORY
    UPDATE
  ^TRANSACTIONS
                                -336-
                             index systems inc

-------
SORT SEQUENCE;

   Data Element

   REGION
   STATE
   PWS-ID
Offset    Length    Data Type
Ascending/
Descending
1
3
5
2
2
7
character
character
character
ascending
ascending
ascending
DATA USAGE:
Input File;
Output File;
                  File Name - MSIS PWS Inventory Transactions
                  File I.D. - MSISP
                  File Layout Reference - PWSIF
                  Record Names - Inventory
                                 PWS Control
                  File Name - Sorted MSIS PWS Inventory Update
                              Trans
                  File I.D. - SMPUT
                  File Layout Reference - PWSIF
                  Record Names - Inventory
                                 PWS Control
                         -337-
                                index systems inc

-------
                  EPA WATER SUPPLY  DATA  SYSTEM

                      PROGRAM SPECIFICATION


PROGRAM:       EDIT070 - Sort MSIS  Variance  and  Exemption Transactions

SUBSYSTEM:     INPUT

DESCRIPTION;   Utility Sort/Merge Program
         MSISV
        p**-••"•*.
         MS Id
      VARIANCE &
     EXEMPTION
    ^TRANSACTIONS,
                       SMVET
EDIT070
 SORT
     SORTED
   MSIS VARI-
WANCE & EXEMP
  TION TRANS-
    ACTIONS
                                  -338-
                             iindex

-------
SORT SEQUENCE;

   Data Element

   REGION
   STATE
   PWS-ID
   VE-ID
Offset

  1
  3
  5
 12
Length

  2
  2
  7
  5
Data Type

character
character
character
character
Ascending/
Descending

ascending
ascending
ascending
ascending
DATA USAGE:
Input File;
                  Pile Name - MSIS Variance and Exemption
                              Transactions
                  File I.D. - MSISV
                  File Layout Reference - VAEXF
                  Record Name - V/E Control
Output File;
                  File Name - Sorted MSIS Variance and
                              Exemption Transactions
                  File I.D. - SMVET
                  File Layout Reference - VAEXT
                  Record Name - V/E Control
                          -339-
                                                   index systems inc

-------
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
EPA WATER SUPPLY DATA SYSTEM

    PROGRAM SPECIFICATION


 EDIT080 - Merge MSIS Detail Violation Transactions

 INPUT

 Utility Sort/Merge Program
   MPDVT
       MSIS
      DETAIL
    VIOLATION
   TRANSACTIONS
         EDITG8G
         MERGE
                                             MMDVT
   MERGED
    MSIS
   DETAIL
 VIOLATION
.TRANSACTIONS
                            -340-
                                                      index systems inc

-------
1.  SORT SEQUENCE;

       Data Element

       REGION
       STATE
       PWS-ID
       VIOATION-ID
Offset    Length    Data Type
  1
  3
  5
 12
2
2
7
5
character
character
character
character
Ascending/
Descending

ascending
ascending
ascending
ascending
2.  DATA USAGE
    Input File;
                         File Name - MSIS Detail Violation
                                     Transactions
                         File I.D. - MPDVT
                         File Layout Reference - VIODT
                         Record Name - Control Record
    Output File;
                         File Name - Merged MSIS Detail Violation
                                     Transactions
                         File I.D. - MMDVT
                         File Layout Reference - VIODT
                         Record Name - Control Record
                             -341-

-------
                  EPA WATER SUPPLY DATA SYSTEM
                      PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
UPDT010  -  Update PSW Inventory File

UPDATE

This program updates the PWS Inventory File with
sorted transactions produced by EDIT010.  Two out-
put reports are produced also by this program.
                             SPICT
     PWS 10
                                   PWS IN
OLD PWS
INVENTORY
FILE
' . . . i
<&.
r
A
y
UPDTOl'O
i ' '•;"'-'•. .- ' •'
UPDATE PWS
INVENTORY FILE
"to
i
f]
,1
NEW PWS
INVENTORY •
FILE
J
                 •UPPTOIORI
                 UPDATE CON-
                 P'ROL & ERROR
                 REPORT: P
                 ENVTRY
                        UPDT010R2
                        UPDATE RE-
                        PORT: PWS
                        INVENTORY-
                        FILE
                                  -342-

-------
1.   INTRODUCTION;

     Function;  This program processes add, change and delete
                transactions against the PWS  Inventory File.

     Transaction Source;  Card input as edited by EDIT010

     Input Sort Sequence; EPA region, state,  PWS identification
                          and transaction code

     Reports;   UPDT010R1  -  Update Control  and Error Report;
                PWS Inventory File-lists rejected transactions
                and update control messages

                UPDT010R2  -  Update Report:PWS Inventory File-
                lists all posted transactions
2.   DATA USAGE;

     Input Files;
                         File Name - Old PWS Inventory File
                         File I.D. - PSWIO
                         File Layout Reference - PWSIF
                         Record Name - Inventory

                         File Name - Sorted PWS Inventory Card
                                     Transactions
                         File I.D. - SPICT
                         File Layout Reference - PWSUT
                         Record Name  - PWS Trans (00/01)-(13)
     Output File;
                         File Name - New PWS Inventory File
                         File I.D. - PWSIN
                         File Layout Reference - PWSIF
                         Record Name - Inventory

     Table;
                  Table Name - Error Messages
                  Table I.D. - ERRMSG
3.    REPORT OUTPUT;

          UPDT010R1  -   Update Control and Error Report: PWS Inventory

          UPDT010R2  -   Update Report:  PWS Inventory File
                                  -343-

-------
4.   CONTROL ACCUMULATORS;


     Number of SPICT transactions posted per state

     Number of SPICT transactions rejected per state

     Number of SPICT transactions posted for the run'

     Number of SPICT transactions rejected for the run


5..   GENERAL PROCESSING NOTES;

     The transaction file, SPICT, contains three types of trans-
     actions,  as follows:

          Transaction code 00  -  used to add a new record-  All
          fields beyond record identification fields will be blank
          (positions 20 - 85).

          Transaction codes 01-13  -  used to change fields on
          an existing PWS Inventory record or one being added by
          transaction 00.

          Transaction code 99 -  used to mark for deletion a record
          which is to be removed from the PWS Inventory File.

     The PWS Inventory File is organized as a partitioned data set
     with or°  partition for each EPA region.  Each region must
     therefore be accessed as a separate file.   The PWS Inventory
     File is updated sequentially so that each record is read and
     written to the new master file.

     A common subroutine, STANDARD-ERROR, is used to print reject
     messages on UPDT010R1.
                                -344-                    index systems inc

-------
6.  LOGIC CHART; (Numbers Reference PROCESSING STEPS,  Section  7)
                    \^ START   J
               (1)
                    INITIALIZE
                    PROCESSING
                         I
                     READ OLD
                      MASTER
/ t->W.S 1 f
ll "h
>
y
t
                    ^READ TRANS- 7 END OF FILE
                      ACTION    /	
                      SPICT    /
           O
                   END OF STATE

                    PROCESSING
         01-13  or  99/TRAN  \  00
                       CODE?
TO
PAGE
                      ERROR
                      PROCESSING
                             -345-

-------
        TRAN CODE 00
                 FROM
                  PAGE
                   345
ERROR

PROCESSING
                                   (6.1
 TRANS
« MASTER
                     TRANS > MASTER
NEW MASTER

 PROCESSING
               WRITE NEW
                MASTER
                PWSTTJ
                    .*_
               READ OLD
                MASTER
               PWSIO
                    -346-

-------
7.   PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

     (1)   Initialize all control accumulators to zero and open
          files.

     (2)   Print the state totals as shown on UPDT010R1.  Skip
          to a new page on both reports.  Add the state accumula-
          tors to the run accumulators and zero out the state
          accumulators.

     (3)   If TRAN-CODE is not equal to 00, 01-13 or 99 call
          STANDARD-ERROR to print reject message 015 on UPDT050R1.

     (4)   Compare on REGION, STATE and PWS-ID.

     (5)   Call STANDARD-ERROR to print reject message 016 on
          UPDT050R1.

     (6)   Create a new PWSIN record in core with all blank fields
          except REGION, STATE and PWS-ID.  Print the transaction
          on UPDT010R2 but in the data element field print 'NEW
          RECORD'.  Leave old value and new value blank.
                                 -347-                  index systems

-------
  TRAN CODE 01-13 or 99
ERROR
PROCESSING
                        CHANGE
                        MASTER
                        PROCESSING
           7
WRITE NEW
  MASTER
 PWSIN
READ OLD
  MASTER
  PWSIQ_

7
                           7
                    -348-

-------
END OF FILE PROCESSING
         (2)
             END OF STATE

              PROCESSING
             WRITE NEW
                MASTER
             PWSIN
                   I
READ OLD
   MASTER
   PWSIO
    0

                          (9)
                               /END OF

                                FILE
   OF RUN

PROCESSING
                                               I
                                            STOP
            )
                      -349-

-------
(7)   Call STANDARD-ERROR to print reject message 017 -on
     UPDT050R1.

(8)   For TRAN-CODE 99, set DEACT-REASON to D and post
     today's date to LAST-UPDATE and DEACT-DATE.

     For TRAN-CODE 01 through 12, for each non-blank field,
     proceed as  follows:

             Replace the corresponding field on the master
             with the field from the transaction

             Print a line on UPDT010R2 showing the data
             element name and the old and new values

             Post today's date to LAST-UPDATE

     For the SERVICE-AREA field on transaction 04 and the
     LAB-CONTROL field on transaction 08, treat each indi-
     vidual byte as a separate field to be checked for
     changes.  Report any changes, however, for the data
     element as  a whole on UPDT010R2.

     Transaction 13 contains changes to a particular source
     within the  PWS Inventory record.  SOURCES-NUM indicates
     the number  of sources on the PWS Inventory record, up
     to a maximum of 15.  For each TRAN-CODE 13 proceed as
     follows %

             If  SOURCE-ID-NUM is less than or equal to
             SOURCES-NUM then make the changes as indicated
             to  the corresponding source fields on the PWS
             Inventory record

             If  SOURCE-ID-NUM is greater than SOURCES-NUM
             then add the space necessary for another entire
             source, process each field change as for TRAN-
             CODE 01 through 12 and update SOURCES-NUM to
             indicate the new number of sources.

     For all transactions, 01 through 13, if any field on
     the input transaction has an asterisk (*)  in the right-
     most position, set the corresponding master file field
     equal to blanks and print on the report the same as
     any other change.

(9)   Print the run totals as shown on UPDT050R1, close files
     and end job.
                            - 3 5 o -                  index systems 'me

-------
                  EPA WATER SUPPLY DATA SYSTEM
                      PROGRAM SPECIFICATION
PROGRAM;

SUBSYSTEM:

DESCRIPTION;
UPDT020  -  MSIS Update PWS Inventory File

UPDATE

This program updates the PWS Inventory File with
sorted transactions from the mechanized state
processing system MSIS.  An update report is pro-
duced also by this program.
                           SMPUT
      PWSIO
    OLD PWS
     INVENTORY
       FILE
                            SORTED
                           MSIS PwS
                            UPDATE
                           TRANSAC-
                             TIONS
             UPDT020
          MSIS UPDATE
          PWS INVENTORY
               FILE
                                                  PWS IN
NEW PWS
 INVENTORY
   FILE
                           UPDT020R1
                           MSIS UPDATE
                           REPORT: PWS
                           INVENRO
                           FILE
                              -351
                                         Index systems toe

-------
1.   INTRODUCTION;

     Function; This program processes change transactions against
               the PWS Inventory File.

     Transaction Source;  Created by the mechanized state pro-
                          cessing systems, MSIS

     Input Sort Sequence; EPA region, state and PWS identification

     Report;   UPDT020R1  -  MSIS Update Report:  PWS Inventory
               File -  a listing of all records which were changed
               and the processing control totals


2.   DATA USAGE;

     Input Files;
                        File Name - Old PWS Inventory File
                        File I.D. - PWSIO
                        File Layout Reference - PWSIF
                        Record Name - Inventory

                        File Name - Sorted MSIS PWS Update Transactions
                        File I.D. - SMPUT
                        File Layout Reference - PWSIF
                        Record Names - Inventory
                                       PWS Control

     Output File;
                        File Name - New PWS Inventory File
                        File I.D. - PWSIN
                        File Layout Reference - PWSIF
                        Record Name - Inventory


3.   REPORT OUTPUT;

          UPDT020R1 - MSIS Update Report: PWS Inventory File


4.   CONTROL ACCUMULATORS;

     Number of records added to PWS Inventory File per state

     Number of records replaced on PWS Inventory File per state

     Number of records added to PWS Inventory File for the entire run

     Number of records replaced on PWS Inventory File for the entire
     run
                                ~352~                    index systems inc

-------
5.   GENERAL PROCESSING NOTE;

     The PWS Inventory File is organized as a partitioned data
     set with one partition for each EPA region.  Each region
     must therefore be accessed as a separate file.  This up-
     date run operates in a sequential fashion, reading each
     record on the entire data set.
                            -353-                       index systems inc

-------
6. LOGIC CHART  (Numbers Reference PROCESSING STEPS, Section  7)
      51.
      REPLACE MASTER
         RECORD

       PROCESSING
                         READ OLD
                           MASTER
                            pwsrn
                          READ
                          TRANSACTION
                            SMPUT
                                   SET
                                   TRANS
                                   KEY TO
                                   INDI-
                                    CATE
                                               END
                                             OF FILE  ^ No
                                           ON OLD MASTE
                   END OF STATE
                    PROCESSING
                                   TRANS>
                                   MASTER
                                             ADD MASTER
                                               RECORD
                                              PROCESSING
WRITE NEW
  MASTER
 PWSIN
                          READ OLD
                           MASTER
                          PWSIO
              END OF FILE
                .--
                                                       SET MASTER KEY
                                          END
                                      OF FILE ON
                                          TRANS
                              TO INDICATE
                                  EOF
                                    END OF JOB
                                      PROCESSING
                                                              -354-

-------
7.    PROCESSING STEPS; (Numbers refer to LOGIC CHART, Section 6)

     (1)   Initialize all control accumulators to zero and open
          files.

     (2)   A control record is recognized by having hexadecimal
          F's in PWS-ID.

     (3)   Compare on REGION, STATE and PWS-ID.

     (4)   Print a line as indicated on UPDT020R1 with an action
          taken message 'NEW RECORD ADDED1.  Create a new PWS
          Inventory record in core and post today's date to
          LAST-UPDATE.

     (5)   Print a line as indicated on UPDT020R1 with an action
          taken message 'EXISTING RECORD REPLACED1.  Replace the
          existing record in core with the transaction record
          and post today's date to LAST-UPDATE.

     (6)   Print the state totals as indicated on UPDT020R1.  The
          'TOTAL INPUT' figure is TOTAL-INPUT from the control
          record.  If TOTAL-INPUT does not equal the sum of ac-
          cumulators for the number of records added and the
          number of records replaced, then print the out of balance
          message as indicated.  Add the state accumulators to
          the run accumulators and zero out the state accumulators.

     (7)   Store hexadecimal F's in the comparison key of the trans-
          action file to permit processing the remainder of the
          PWS inventory File.

     (8)   Store hexadecimal F's in the comparison key of the PWS
          Inventory File to permit processing the remainder of
          the transactions.

     (9)   Print run totals on UPDT020R1,  close files and end job.
                                  -355-                  index systems inc

-------
                  EPA WATER SUPPLY DATA SYSTEM
                      PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
UPDT030 - Update PWS Inventory Violations

UPDATE

This program updates the PWS Inventory File with
sorted summary violation transactions originating
from the merged output of EDIT040 and EDIT050.
An update report and an error report are produced
also by this program.
                           SSPVT

                            'SORTED
                           'SUMMARY PW£
                           INVENTORY
                           VIOLATION
                            TRANS.
    PWS 10
                                    PWS IN
OLD
PWS INVENTORY
FILE
V
A
V
UPDT030
TT-nr-i TV m-p T3TA7C
UPDA1.D FWo
INVENTORY
VIOLATIONS

i
NEW PWS
INVENTORY
FILE
_j
                UPDT030R1
                UPDATE CON-
                TROL & ERROJ
                RPT. SUMMAR
                VIOLA-
                        UPDT030R2
                        UPDATE RPT:
                        PWS INVTRY/
                        VIOLATION!
                                -356-
                                         index systems inc

-------
1.   INTRODUCTION'.

     Function; This program processes summary violation trans-
               actions against the PWS Inventory File.

     Transaction Source;  Summarized from detail transactions
                          created by the mechanized state pro-
                          cessing system, MSIS, and from card
                          input edited by EDIT040

     Input Sort Sequence; EPA region, state and PWS identifica-
                          tion

     Reports;  UPDT030R1 - Update Control and Error Report:
                           Summary Violations - lists control
                           messages and all rejected transac-
                           tions

               UPDT030R2 - Update Report:  PWS Inventory/
                           Violations - lists each field change
                           which was posted
2.    DATA USAGE
     Input Files;
                        File Name - Old PWS Inventory File
                        File I.D. - PWSIO
                        File Layout Reference - PWSIF
                        Record Name - Inventory

                        File Name - Sorted Summary PWS Inventory
                                    Violation Transactions
                        File I.D. - SSPVT
                        File Layout Reference - VIOST
                        Record Name - Violation Trans (01)
     Output Files
     Table:
                        File Name - New PWS Inventory File
                        File I.D. - PWSIN
                        File Layout Reference - PWSIF
                        Record Name - Inventory
                        Table Name - Error Messages
                        Table I.D. - ERRMSG
                                 -357-
index systems irac

-------
3.   REPORT OUTPUT

          UPDT030R1  -  Update Control and Error Report:
                        Summary Violations

          UPDT030R2  -  Update Report:  PWS Inventory/Violations


4.   CONTROL ACCUMULATORS;

     Number of SSPVT transaction records posted per state

     Number of SSPVT transaction records rejected per state

     Number of SSPVT transaction records posted for the run

     Number of SSPVT transaction records rejected for the run

     Number of SSPVT violations posted per state

     Number of SSPVT violations rejected per state

     Number of SSPVT violations posted for the run

     Number of SSPVT violations rejected for the run


5.   GENERAL PROCESSING NOTES;

     The input transaction file, SSPVT, is a merged file con-
     taining records originating from MSIS and records originating
     from card input.

     The PWS Inventory File is organized as a partitioned data
     set with one partition for each EPA region.  Each region
     must therefore be accessed as a separate file.   This up-
     date run operates in a sequential fashion, reading each
     record on  the entire data set.

     A common subroutine, STANDARD-ERROR,  is used to print reject
     messages on UPDT030R1.
                              -358-
                                                        index systems Sue

-------
6. LOGIC CHART;   (Numbers Reference PROCESSING STEPS,  Section  7)
                             START
                 (1)
                        INITIALIZE
                         PROCESSING
READ OLD
  MASTER
PWSIO
                                           END OF FILE
                         READ TRANSACTION

                           SSPVT
             TJ

t
9
1
t
1
8

END
&

OF


STATE
PROCESSING



8
                                                             (6)
    (4)
           ERROR

          PROCESSING
                   ^MASTER
                                    SET
                                    TRANS
                                    KEY TO
                                    INDICATE
                          NEW STATE
                                     RANS =
                                       ASTER
                    END OF STATE
                     PROCESSING
TRANS:MASTER
          TRANS
        > MASTER
                          WRITE NEW
                           MASTER
                    TRANSACTION
                    PROCESSING
                         READ OLD
                            MASTER
                            PWSIO
               END OF FILE
                                          END
                                      OF FILE ON
                                          TRANS
                              SET MASTER KEY
                              TO INDICATE
                                  EOF
                                    END OF RUN
                                      PROCESSING
                                                            -359-

-------
7.   PROCESSING STEPS; (Numbers reference LOGIC CHART, Section 6)

     (1)  Initialize all control accumulators to zero and open
          files.

     (2)  Compare on REGION, STATE and PWS-ID.

     (3)  The VIOLATIONS ACCUMULATORS occur six times on the
          transaction record corresponding to the six occurrances
          on the master file.  For each non-zero field on the
          transaction, proceed as follows:

              Add the transaction amount to the master file
              corresponding year to date accumulator.

              Add the transaction amount to the master file
              corresponding total accumulator.

              If any  field has an asterisk  (*) in the right-most
              position, re-initialize the corresponding master
              file field to zero.

              Print a line on UPDT030R2 showing the old and
              new values of the year to date accumulator only.
              In the data element column, append the following
              four-position designators to the data element
              name to distinguish which accumulator is being
              updated:

                     PHYS - physical
                     INOR - inorganic chemicals
                     PSOR - pesticides and organic chemicals
                     MICE - microbiological
                     RADI - radioactive
                     TREA - treatment

          Post today's date to LAST-UPDATE.

     (4)  Call STANDARD-ERROR to print reject message 017 on
          UPDT030R1.

     (5)  Print the state totals as shown on UPDT030R1.   Skip to
          a new page on both reports.  Add the state accumu-
          lators to the run accumulators and zero out the state
          accumulators.

     (6)  Store hexadecimal F's in the comparison key of the
          transaction file to permit processing the  remainder
          of the PWS Inventory File.           :

     (7)  Store hexadecimal F's in the comparison key of the
          PWS Inventory File to permit processing the remainder
          of the transactions.

     (8)  Print run totals as indicated on UPDT030R1 and close
          files.
                             -360-                      index systems irae

-------
                  EPA WATER SUPPLY DATA SYSTEM
                      PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
UPDT040 . - Year End PWS Inventory File Update

UPDATE

This program updates the PWS Inventory File by
zeroing out all the year-to-date violation ac-
cumulators.  An output report and a tape file
of purged records are also created.
                           PWS 10
'
J
OLD PWS
INVENTORY
FILE
                        UPDT040
                      YEAR END PWS
                      INVENTORY FILE
                          UPDATE
        UPDT040R1
      YR. END PWS
      INVTY. CON-
      TROL & DE-
      LETION
      LIST
        NEW  PWS

         INVENTORY
           FILE
                           PWS IN
 PURGED
  PWS
INVENTORY
   FILE
                                               PWS IP
                                    -361-
                                       index systems inc

-------
1.    INTRODUCTION

     Function;  This program clears the year-to-date violation
                accumulators on the PWS Inventory File and purges
                all records which have been deactivated for more
                than one year.

     Report;     UPDT040R1  -  Year End PWS Inventory Control and
                Deletion List  -  lists records being purged from
                the file.
     DATA USAGE:
     Input File;
     Output Files;
File Name - Old PWS Inventory File
File I.D. - PWSIO
File Layout Reference - PWSIF
Record Name - Inventory


File Name - New PWS Inventory File
File I.D. - PWSIN
File Layout Reference - PWSIF
Record Name - Inventory

File Name - Purged PWS Inventory File
File I.D. - PWSIP
File Layout Reference - PWSIF
Record Name - Inventory
     REPORT OUTPUT:
          UPDT040R1  -
Year End PWS Inventory Control and
Deletion List
     CONTROL ACCUMULATORS;

     Number of records read from PWSIO per state

     Number of records written to PWSIN per state

     Number of records deleted and written to PWSIP per state

     Number of records read from PWSIO for the run

     Number of records written to PWSIN for the run

     Number of records deleted and written to PWSIP for the run
                               -362-
                                index systems one

-------
5.    GENERAL PROCESSING NOTES;

     The PWS Inventory File is organized as a partitioned data
     set with one partition for each EPA region.  Each region
     must therefore be accessed as a separate file.  This up-
     date run operates in a sequential fashion, reading each
     record on the data set.
                                 -363-                  index systems inc

-------
6. LOGIC CHART: (Numbers Reference PROCESSING STEPS, Section 7)
r >
^ START J
<» ,
,
INITIALIZE
PROCESSING
\
9
_j
t
/READ OLD
MASTER
PWSIO /
.1
1
VEND .
OF FILI
6^

r 4f
~w QTDP
END OF RUN \^ *LUV ^
PROCESSING
                        END OF STATE
                         PROCESSING
                        WRITE NEW
                           MASTER
                           PWSIN
                                           PURGED RECORD
                                            PROCESSING
-*©
                               -364-

-------
PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

(I)   Initialize all control accumulators to zero and open
      files.

(2)   Print the state totals as shown on UPDT040R1.  Add the
      state accumulators to the run accumulators and zero out
      the state accumulators.

(3)   Purge the record if DEACT-DATE is more than one year
      prior to the current date.

(4)   Write a line on UPDT040R1.  See the Deactivation Reason
      Table for the descriptions to be printed for each
      DEACT-REASON.

(5)   Zero out the following fields before writing each
      record to the output file:

                   VIO-CONTAM-YTD
                   VIO-SAMP-YTD
                   VIO-OTHER-YTD

      (Each field occurs six times.)

(6)   Perform the end of state processing as in step (2).
      Print the run totals as shown on UPDT040R1 ,
      close  files  and end  job.
                                                   index systems 'me

-------
                 EPA WATER SUPPLY DATA SYSTEM

                     PROGRAM SPECIFICATION


PROGRAM:      UPDT045 - Merge PWS Inventory Purged Records

SUBSYSTEM:    UPDATE

DESCRIPTION:  Utility Sort/Merge Program
                             PIPFO
                              OLD
                           PURGED  PWS

                           INVENTORY

                              FILE
                                                  MERGED
                                                    PWS
                                                INVENTORY
                                                URGED  RECORD
                                                    FILE
 PURGED
  PWS
INVENTORY
  FILE
SORT/MERGE
                                 -366-
                                                         index systems inc

-------
1.    SORT SEQUENCE;
                                                         Ascending/
        Data Element    Offset    Length    Data Type    Descending

        REGION            1         2       character    ascending
        STATE             3         2       character    ascending
        PWS-ID            5         7       character    ascending
     DATA USAGE;

     Input File;
                          File Name - Purged PWS Inventory File
                          File I.D. - PWSIP
                          File Layout Reference - PWSIF
                          Record Name - Inventory

                          File Name - Old Purged PWS Inventory File
                          File I.D. - PIPFO
                          File Layout Reference - PWSIF
                          Record Name - Inventory
     Output File;
                          File Name - Merged PWS Inventory Purged
                                      Records File
                          File I.D, - PIPFN
                          File Layout Reference - PWSIF
                          Record Name - Inventory
                                 -367-

-------
                  EPA WATER SUPPLY DATA SYSTEM
                      PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
UPDT050  -  Update Variance and Exemption File

UPDATE

This program updates the Variance and Exemption

file with sorted transactions produced by EDIT030,

Two reports and an output tape of purged variance

and exemption records are produced also.


               SVECT
               <*	N
              SORTED
           rVARIANCE &
            EXEMPTION
           i  CARD .
           N^  TRANS.
        VAEXO
          OLD
        VARIANCE
        EXEMPTION
          FILE
                                                 VAEXN
            fPDTQSO
          UPDATE VARI-
          ANCE AND
          EXEMPTION
             FILE
                  UPDT050R1
                UPDATE
                TROL &
                RPT:VARIAN-
                CES & EXEMPj
                TIONS
VARIANCE
EXEMPTION
                        UPDT050R2
                        UPDATE RPT:
                        VARIANCES &
                        EXEMPTIONS
         VARIANCE
                                       EXEMPTION
                                         PURGED
                                         RECORDS
                               -368-
                                                        index systems Srse

-------
INTRODUCTION;

Function:  This program processes add, change and delete
           transactions against the Variance and Exemption
           File.  Records meeting the criteria for purging
           are written to a Variance and Exemption Purged
           Records tape.

Transaction Source; Card input as edited by EDIT030

Sort Sequence;  EPA region, state, PWS identification,
                variance/exemption identification and trans-
                action code

Reports;  UPDT050R1  -  Update Control and Error Report
          Variances and Exemptions - lists rejected trans-
          actions and update control messages

          UPDT050R2  -  Update Report Variances and Exemp-
          tions - lists all posted transactions
DATA USAGE:
Input Files;
Output Files;
                  File Name - Variance and Exemption File
                  File I.D. - VAEXO
                  File Layout Reference:  VAEXF
                  Record Name - Variance/Exemption

                  File Name - Sorted Variance and Exemption
                              Card Transactions
                  File I.D. - SVECT
                  File Layout Reference:  VAEXT
                  Record Name  - V & E Trans  (00/01)
                  File Name - Variance and Exemption File
                  File I.D. - VAEXN
                  File Layout Reference: •VAEXT
                  Record Name - Variance/Exemption

                  File Name - Variance and Exemption Purged Records
                  File I.D. - VEPRG
                  File Layout Reference:  VAEXF
                  Record Name - Variance/Exemption
                            -369-
index systems fnc

-------
      Table;    t  Table Name - Error Messages
                 Table I.D. - ERRMSG
3.   REPORT OUTPUT:

           UPDT050R1 - Update Control and Error Report:
                       Variances and Exemptions

           UPDT050R2 - Update Report: Variances and Exemptions
     CONTROL ACCUMULATORS:
     Number of SVECT transactions posted per state

     Number of SVECT transactions rejected per state

     Number of SVECT transactions posted for the run

     Number of SVECT transactions rejected for the run


5.    GENERAL PROCESSING NOTES;

     The transaction file, SVECT, contains three types of trans-
     actions,  as follows:

           Transaction code 00 - used to add a new record.  All
           fields beyond record identification fields will be
           blank  (positions 25 - 65)

           Transaction code 01 - used to change fields on an
           existing variance and exemption record or one being
           added by transaction 00

           Transaction code 99 - used to mark for deletion a
           record which is to be removed from the variance and
           exemption file

     The Variance and Exemption Master File,  VAEXO,  is processed
     in a sequential manner and a new master  file,  VAEXN,  is
     created during each run.

     A common  subroutine STANDARD-ERROR is used to  print reject
     messages  on UPDT050R1.
                              _370-

-------
6. LOGIC CHART: (Numbers Reference PROCESSING STEPS, Section 7)
                  f  START  J
           (1)
                  INITIALIZE

                  PROCESSING
                   READ OLD
                     MASTER
                   READ TRANS-
                    ACTION

                    SVECT   /
            (2)
                 END OF STATE

                 PROCESSING
                   ERROR

                   PROCESSING
                        -371-

-------
   TRAN CODE 00
NEW MASTER

 PROCESSING
ERROR
PROCESSING
                             TRANS
                            MASTER
         = MASTER
                     TRANS>MASTER
                                  WRITE PURGE
                 MASTER
                DEACTIVE
                                    RECORD
                                     VEPRG
               WRITE NEW
                  MASTER
               READ OLD
                 MASTER
                 VAEXO
                     -372-

-------
7.   PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

     (1)   Initialize all control accumulators to zero and open
           files.

     (2)   Print the state totals as shown on UPDT050R1.  Skip to
           a new page on both reports.  Add the state accumulators
           to the run accumulators and zero out the state accumula-
           tors .

     (3)   If TRAN-CODE is not equal to 00, 01 or 99 call STANDARD-
           ERROR to print reject message 015 on UPDT050R1.

     (4)   Compare on REGION, STATE, PSW-ID and VE-ID.

     (5)   Call STANDARD-ERROR to print reject message 016 on
           UPDT050R1.

     (6)   Create a new VAEXN record in core with all blank fields
           except REGION,  STATE, PWS-ID and VE-ID.  Print the trans-
           action on UPDT050R2 but in the data element field print
           'NEW RECORD".  Leave old value and new value blank.

     (7)   If VE-STATUS is D and LAST-UPDATE is more than 5 years
           before the current date then the master record is to be
           purged.
                                  -373-
                                                        index systems inc

-------
     TRAN CODE 01 or 99
(8)
 ERROR
 PROCESSING
TRANS =
   1ASTER
                  MASTER
                 EACTIVE 5
                     YRS.
                                     (i)
CHANGE MASTER
  PROCESSING
                 WRITE NEW
                   MASTER
                   VAEXN
                READ  OLD
                  MASTER
                 VAEXO
        WRITE PURGE
          RECORD

         VEPRG

                          -374-

-------
END OF FILE PROCESSING
      (2)
          END OF STATE
            PROCESSING
             WRITE NEW
               MASTER
              VAEXN
              READ OLD
               MASTER
              VAEXO
  MASTER
EACTIVE 5
   YRS.
                                   WRITE PURGE
                                      RECORD

                                       VEPRG
                            B
7
                                     (10)
   FILE
                         END OF RUN

                            PROCESSING
                                         STOP
                      -375-

-------
(  8)   Call STANDARD-ERROR to print reject message 017 on
      UPDT050R1.

(  9)   For TRAM-CODE 99,  set VE-STATUS to D and post today's
      date to LAST-UPDATE.

      For TRAN-CODE 01,  check each field on the transaction
      beginning with VE-STATUS.   For each non-blank field,
      replace the corresponding field on the master.  Also
      print a line on UPDT050R2 showing the data element
      name and old and new values.  Also post today's date
      to LAST-UPDATE.

      If any field on the input transaction has an asterisk
      (*)  in the  right-most position, set the corresponding
      master file field  equal to blanks and print on UPDT050R2
      the same as any other change.

(10)   Print the run totals as shown on UPDT050R1. close files
      and end the job
                           -376-                   index systems inc

-------
                   EPA WATER SUPPLY DATA SYSTEM
                       PROGRAM SPECIFICATION
 PROGRAM:

 SUBSYSTEM:

 DESCRIPTION:
UPDT060 - MSIS Update Variance and Exemption File

UPDATE

This program updates the Variance and Exemption
File with sorted transactions from the mechanized
state processing system, MSIS.  An update report
is produced also by this program.
                           SMVET
  VAEXO
                           SORTED
                           MSIS
                       (VARIANCE &

                        EXEMPTION

                           TRANS-
                                                  VAEXN
   OLD
VARIANCE &

EXEMPTION

  FILE
        UPDT060

  SIS UPDATE VARIANCE AND

  EXEMPTION FILE
             UPDT060R1
            MSIS UPDATE
            RPT: VARI-
            ANCES & EX-

            EMPTIONS
                   VARIANCE
                      &
                 EXEMPTION
                    PURGED
                    RECORDS
                               -377-
                                         index systems inc

-------
INTRODUCTION;

Function;  This program processes change transactions
           against the Variance and Exemption File.
Transaction Source:
Input Sort Sequence;
Created by the mechanized state
processing system, MSIS

EPA region, state, PWS identifi-
cation and variance/exemption
identification
Report;    UPDT060R1 - MSIS Update Report: Variances
                       and Exemptions - a listing of all
                       records which were changed and the
                       processing control totals
DATA USAGE
Input Files;
Output Files;
                    File Name - Old Variance and Exemption File
                    File I.D. - VAEXO
                    File Layout Reference - VAEXF
                    Record Name - Variance/Exemption

                    File Name - Sorted MSIS Variance and
                                Exemption Transactions
                    File I.D. - SMVET
                    File Layout Reference - VAEXF
                    Record Names - Variance/Exemption
                                   V/E Control
                    File Name - New Variance and Exemption File
                    File I.D. - VAEXN
                    File Layout Reference - VAEXF
                    Record Name - Variance/Exemption

                    File Name - Variance and Exemption Purged
                                Records
                    File I.D. - VEPRG
                    File Layout Reference - VAEXF
                    Record Name - Variance/Exemption
                          -378-
                                                  index systems inc

-------
3.    REPORT OUTPUT;

          UPDT060R1  -  MSIS Update Report:  Variance and Exemptions


4.    CONTROL ACCUMULATORS;

      Number of records added to Variance and Exemption File per state

      Number of records replaced on Variance and Exemption File
      per state

      Number of records added to the Variance and Exemption File
      for the run

      Number of records replaced on Variance and Exemption File
      for the run


5o    GENERAL PROCESSING NOTES;

      The Variance and Exemption Master File, VAEXO, is processed
      in a sequential manner and a new master file, VAEXN, is
      created during each run.
                                -379-                   index systems owe

-------
6. LOGIC CHART;  (Numbers Reference PROCESSING  STEPS,  Section  7)
                        INITIALIZE
                        PROCESSING
                        READ OLD
                           MASTER
                      READ TRANSACTION
                           INPUT
                                                         INDICATE

                                                           EOF
                    CONTROL
                   RECORD
    REPLACE MASTER
                          TRANS 2

                          MASTER
                                     END OF STATE
  RECORD

PROCESSING
                                           PROCESSING
                             RANS >
                             MASTER
                                    ADD MASTER
                                         RECORD PROCESS
                                               ING
                        MASTER   \Ye-g
                       DEACTIVE 5
                          YRS.
                                          WRITE PURGE
                                            RECORD
                      WRITE NEW
                        MASTER
                       WZVPY
                       READ OLD
                         MASTER
                                                    SET MASTER KEY
                                                    TO INDICATE
                                                       EOF
                               END OF RUN
                                   PROCESSING
                                 C
                                STOP
                                                      -380-

-------
7.     PROCESSING NOTES; Numbers reference LOGIC CHART, Section 6)

      (])   Initialize all control accumulators to zero and open
            files.

      (2)   A control record is recognized by having hexadecimal
            F's in PWS-ID and VE-ID.

      (3)   Compare on REGION, STATE, PWS-ID and VE-ID.

      (4)   Print a line as indicated on UPDT060R1 with an action
            taken message 'NEW RECORD ADDED1.   Create a new
            Variance and Exemption record in core and post today ' s
            date to LAST-UPDATE.

      (5)   Print a line as indicated on UPDT060R1 with an action
            taken message 'EXISTING RECORD REPLACED1.  Replace the
            current master record in core with the transaction and
            post today's date to LAST-UPDATE.

      (6)   If VE-STATUS is D and LAST-UPDATE is more than 5 years
            before the current date then the master record is to
            be purged.

      (7)   Print the state totals as indicated on UPDT060R1.  The
            'TOTAL INPUT1 figure is TOTAL-INPUT from the control
            record.  If TOTAL-INPUT does not equal the sum of the
            accumulators of number of records added and number of
            records replaced on Variance and Exemption File, then
            print the out of balance message as indicated.  Add
            the state accumulators to the run accumulators and zero
                the state accumulators.
      (8)    Store hexadecimal F's in the comparison key of the
            transaction file to permit processing the remainder
            of the PWS Inventory File.

      (9)    Store hexadecimal F's in the comparison key of the
            PWS Inventory File to permit processing the remainder
            of the transactions.

     (10)    Print run totals as indicated on UPDT060R1 and
            close files.
                               -381-                   index systems inc

-------
                 EPA WATER SUPPLY DATA SYSTEM

                     PROGRAM SPECIFICATION

PROGRAM;      UPDT065 - Merge Variance and Exemption Purged Records

SUBSYSTEM:    UPDATE

DESCRIPTION:  Utility Sort/Merge Program
                            VEPFO
                             OLD
                           VARIANCE &
                          EXEMPTION
                           PURGED
                             FILE
                                                 MERGED
                                               VARIANCE &
                                               EXEMPTION
                                              PURGED REC-
                                               ORDS FILE
  VARIANCE
& EXEMPTION
  PURGED
  RECORDS
SORT/MERGE
                            -382-
                                                        index systems inc

-------
1.   SORT SEQUENCE;

        Data Element    Offset    Length    Data Type

        REGION            1         2       character
        STATE             3         2       character
        PWS-ID            5         7       character
        VE-ID            12         5       character
Ascending/
Descending

ascending
ascending
ascending
ascending
2.   DATA USAGE:
     Input Files;
                          File Name - Variance and Exemption
                                      Purged Records
                          File I.D. - VEPRG
                          File Layout Reference - VAEXF
                          Record Name - Variance/Exemption

                          File Name - Old Variance and Exemption
                                      Purged File
                          File I.D. - VEPFO
                          File Layout Reference - VAEXF
                          Record Name - Variance/Exemption
     Output File;
                          File Name - Merged Variance and Exemption
                                      Purged Records File
                          File I.D. - MVEPG
                          File Layout Reference - VAEXF
                          Record Name - Variance/Exemption
                            -383-
index systems inc

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
UPDT070 - Update Processing Tables

UPDATE

This program creates any necessary processing
tables on disk from card input.
J
V
\ TABLE DATA
I

.
»•
F

UPDT070

UPDATE PROCESS-
ING TABLES

».
~"'f

PROCESSING
TABLES
L W
                           -384-
                                    index systems inc

-------
INTRODUCTION:
      Many of the programs utilize common data tables such as
      the State Table, STATAB.  For this reason, these tables
      should be maintained on a disk or tape file so they can
      be easily accessed by many programs.

      Card formats are needed to create the data tables.  The
      purpose of this program is to read the cards, validate
      them and create the tables.

      This program cannot be specified in detail until the re-
      mainder of the processing tables are defined by state
      EPA personnel for MSIS.
                             -385-
                                                      ircdex systems one

-------
               EPA WATER SUPPLY DATA SYSTEM
                   PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
PRRP010 - Edit Inventory Report Selection Cards

PERIODIC REPORTING

This program edits selection control cards for
selecting PWS Inventory reports.  It produces
a deck of edited selection cards, and a selection
Translation and Error Report PRRP010R1.
                            PIRSC
                        REPORT
                        SELECTION
                        CARDS
                        PRRPOIO

                     EDIT INVENTORY
                     REPORT SELEC-
                     TION CARDS
          PRRP010R1
         SELECTION
         TRANSLATION &
         ERROR REPORT
                     EDITED
                     REPORT
                   SELECTION
                     CARDS
                                       EIRSC
                              -386-
                                      index systems inc

-------
INTRODUCTION;

Function;  This program edits selection control cards for
           selecting PWS Inventory reports.

Input Source;  Card input keypunched from input forms.

Input Sort Sequence;  All "AND" operaters must come first.

Reports;   PRRP010R1 - Selection Translation and Error
           Report:  PWS Inventory
DATA USAGE:
Input Files;
Output File;
                  File Name - Report Selection Cards
                  File I.D. - PIRSC
                  File Layout Reference - PRRSC
                  Record Names - Header Card
                                 Selection Card
                  File Name - Edited Report  Selection Cards
                  File I.D. - EIRSC
                  File Layout Reference - EPRSC
                  Record Names - Edited Header Card
                                 Edited Selection Card
Tables:
                  Table Name
                  Table I.D.

                  Table Name
                  Table I.D.
State Table
STATAB

Inventory Selection Table
ISLTAB
REPORT OUTPUT:
      PRRP010R1 - Selection Translation and Error Report;
                  PWS Inventory
CONTROL ACCUMULATORS;

Number of selection cards read and passed

Number of selection cards punched
                        -387-
                 index systems inc

-------
5.    GENERAL PROCESSING NOTES;

      A common subroutine, STANDARD-ERROR, is used to print
      error messages on PRRP010R1.

      Any data element can become a selection criteria if it
      is included in the Selection Table.
                               -388-                   .  .     .
                                                      index systems me

-------
  6.  LOGIC CHART:  (Numbers reference PROCESSING STEPS,  Section 7)
                   f   START   J
                         I
                INITIALIZE CONTROL
                      COUNTERS
          ©•
     t
                       READ
                     CONTROL
                       CARD
                   (1)
                      READ AND
                       STORE
                      TABLES
              (2)
             (3)
                                     .(4)
                INCREMENT TRANSACTION
                     COUNTER
E PRINT
ERROR
 MESSAGE

'RRP010R1
   ALID
TRANSACTION
                     PRINT
                     CONTROL
                      TOTALS

                   PRRP010R1
              (10)
                   f   STOP     J
                                                    (7)
 PRINT
 RANSLATED
SELECTION

PRRP010R1
                                              I
F                       PUNCH
                       EDITED
                       SELECTION
                        CARD
             (8)
                                                            (9)
                 INCREMENT ACCEPTED
                        COUNTER
                             -389-

-------
PROCESSING STEPS; (Numbers reference LOGIC CHART, Section 6)

(1)   Initialize all control counters to zero.

(2)   Read and store State Table and Selection Table.

(3)   Read a selection control card.

(4)   Increment transaction counter.

(5)   Validate transaction

      The selection control card must have 1 - 7 in column
      1 and 0 or 1 in column 2.  If not write error message 009.

      For each selection card, validate according to the
      edit requirements in the Data Element Descriptions.

      The sort code, if it exists, should not be identical
      to any other sort code.  If it does exist, a sort table
      should be prepared, and punched at the end of the run.

      Write an error message to PRRP010R1 for any errors
      which are found.

(6)   If any errors occur, print the appropriate error
      message and do not punch any further cards. Continue
      editing transactions.

(7)   If all of the fields are valid, punch output cards.

      If the mnemonic is "SOURCE" a series of 15 control cards
      will be punched, each with the same value, but with the
      different offsets and lengths as found in the Selection Tables,

      If not "SOURCE" one control card will be punched,
      using the offset and length as found in the Selection
      Table.

(8)   A "translated" selection will be printed on PRRP010R1
      for each punched control card, as shown on the report
      layout, using the current transaction counter as the
      card number.

(9)   The control card acceptance counter is incremented.

(10)   At the end of the run control totals are printed and
      a sort control table is punched from those records
      whose sort sequence is indicated.
                                                index systems line
                         -390-

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAMS

SUBSYSTEM:

DESCRIPTION:
PRRP020 - Generate PWS Inventory Reports

PERIODIC REPORTING

This program generates six PWS Inventory Reports
according to specifications which are entered on
cards.
      EIRSC
REPORT
SELECTION
  CARDS
                       PWS IF
                         PWS
                      INVENTORY
                         FILE
                     PRRP020
                    GENERATE PWS
                     INVENTORY
                      REPORTS
                      PRRP020R1-
                          R6
                     PWS INVEN-
                     TORY REPORTS
                                              PIESF
                           PWS  INVENTORY
                           EXPANDED

                           SORT  FILE
                                 -391-
                                        index systems

-------
1.
INTRODUCTION;

Function;   This program generates six PWS Inventory Reports
            based on report selection cards produced by
            PRRP010.

Reports;    PRRP020R1 - Public Water Systems Comprehensive
            List - a comprehensive list of public water
            systems, one per page.

            PRRP020R2 - Public Water Systems Detailed Listing -
            a detailed listing of public water systems, two
            per page.

            PRRP020R3 - Public Water Systems Address, Capacity
            and Source Data - a listing of PWS name and address
            and source data, twelve per page.

            PRRP020R4 - Public Water Systems State Discretionary
            Data - a report showing name and state discretionary
            data, two lines per PWS.

            PRRP020R5 - Public Water Systems Service Area and
            Source Data - a listing of PWS location and source
            data, one line per PWS.

            PRRP020R6 - Public Water Systems Codes and Miscel-
            laneous Data - a report of codes, dates and other
            miscellaneous data, one line per PWS.
2.      DATA USAGE;

       Input Files;
                          File Name - PWS Inventory File
                          File I.D. - PSWIF
                          File Layout Reference - PWSIF
                          Record Name - Inventory

                          File Name - Edited Report Selection Cards
                          File I.D. - EIRSC
                          File Layout Reference - EPRSC
                          Record Names - Edited Header Card
                                         Edited Selection Card
       Intermediate
       Sort File:
                          File Name - PWS Inventory Expanded Sort File
                          File I.D. - PIESF
                          File Layout Reference - PWSIF
                          Record Name - Expanded Inventory
                              -392-
                                                 index systems inc

-------
       Tables;
                      Table Name - State Table
                      Table I.D. - STATAB
3.     REPORT OUTPUT;

            PRRP020R1 - R6  -  PWS Inventory Reports


4.     CONTROL ACCUMULATORS;

       Total inventory records printed per report.


5.     GENERAL PROCESSING NOTES;

       The program will sort and select records for report generation,
       based on the selection criteria being entered on cards.

       A subroutine is used to compare PWS Inventory records to a
       group of parameters defined by the selection control card
       (punched by PRRP010).
                               -393-                    index systems ane

-------
       6.   LOGIC CHART; (Numbers reference PROCESSING  STEPS,  Section 7)
                  f  START    J
                INITIALIZE COUNTERS
                  (1)
                     READ SELECi
                    TION CON-
                    TROL CARDS
                      END OF
                     REPORT
                     GROUP
             (2)
                      READ
                     SORTED
                     RECORDS
                                  YES
                                                           (5)
                             WRITE
                           RECORD

                         TO SORT
 fRITE RE-
  PORT
'RRP020
 R1-R6
              INCREMENT RECORD
                    COUNTER
              [COMPARE TOTALS     [
 WRITE
COUNTERS
                              7
                                           (9);
                                             -394-

-------
PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

(1)  Initialize counters.

(2)  Read all of the selection control cards for a report type,
     Store the report indicator (column 1 of header card).

     Store the address indicator (0 = mailing address,
     1 = plant address)from the header card.


     Store the sort sequence number, starting position and
     length of each selection element identified as a sort
     parameter.

     Define a group of parameters to be passed to a selection
     subroutine.  The parameters should contain the variable
     position in the record, the relation, the value and a
     switch to indicate if a failure to meet the parameter
     rejects the record (all "AND"  operators)  or if the next
     comparison is used ("OR"operators).

(3)  Read an Inventory record and pass the record to the
     selection routine.

(4)  The selection routine should return a 0 for select, or
     1 for fail.  If the record is  a fail the program should
     read the next Inventory record.

(5)  Write the record (using the appropriate address)  to a
     sort routine to be sorted by the stored sequence.  This
     record should contain all of the information as indicated
     on the selected report layout.

(6)  After all records are read and processed, read the
     sorted file.   Compute totals according to sort levels.

(7)  Write the Selected Inventory Report  as indicated on the
     corresponding report layout and increment the record
     counter for each record printed.

(8)  After all sorted records are processed,  print the total
     records written.

(9)  If another set of report selections  exist,  go to step
     one (1)  and produce the next report.
                  - 3 9 5 -                         index systems inc

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:


SUBSYSTEM:

DESCRIPTION:
PRRP030 - Edit Variance and Exemption Report
          Selection Cards

PERIODIC REPORTING

This program edits selection control cards for
selecting the parameters of the Variance and
Exemption Review List.  It produces a deck of
edited selection cards, and a selection Trans-
lation and Error Report PRRP030R1.
                             VERSC
                           REPORT
                        SELECTION

                           CARDS
                         PRRP030
                       EDIT VARIANCE
                       & EXEMPTION
                       REPORT SELEC-
                       TION CARDS
            PRRP030R1
          SELECTION
          TRANSLATION &
          ERROR REPORT
                        EDITED
                     REPORT SELEC-
                     TION CARDS
                                      EVRSC
                             -396-
                                        index systems inc

-------
       INTRODUCTION:
       Function:
               This program edits selection control cards
               for selecting parameters of the Variance
               and Exemption Review List.
       Input Source;  Card input keypunched from input forms.

       Input Sort Sequence;  All "AND" operators must come first.

       Reports;
            PRRP030R1 - Selection Translation and Error
            Report:  Variance and Exemption
       DATA USAGE:
       Input Files;
       Output File;
                          File Name - Report Selection Cards
                          File I.D. - VERSC
                          File Layout Reference - PRRSC
                          Record Names - Header Card
                                         Selection Card
                          File Name - Edited Report Selection Cards
                          File I.D. - EVRSC
                          File Layout Reference - EPRSC
                          Record Names - Edited Header Card
                                         Edited Selection Card
       Tables:
                          Table Name
                          Table I.D.

                          Table Name

                          Table I.D.
                                State Table
                                STATAB

                                Variance and Exemption
                                Selection Table
                                VESTAB
3.
REPORT OUTPUT:
            PRRP030R1 - Selection Translation and Error Reports
                        Variance and Exemptions
4.     CONTROL ACCUMULATORS;

       Number of selection cards read and passed

       Number of selection cards punched.
                            -397-
                                                 index systems inc

-------
5.     GENERAL PROCESSING NOTES;

       A common subroutine, STANDARD-ERROR, is used to print
       error messages on PRRP030R1.

       Any data element can become a selection criteria if it
       is included in the Selection Table.
                          — 39 8—
                                                       index systems ie?e

-------
  6.  LOGIC CHART:   (Numbers reference PROCESSING STEPS, Section 7)
                       START
                INITIALIZE CONTROL
                      COUNTERS
          (£>
                       READ
                     CONTROL
                       CARD
                   (1)
                      READ AND
                       STORE
                      TABLES
              (2)
             (3)
                INCREMENT TRANSACTION
                     COUNTER
 PRINT
ERROR
 MESSAGE

PRRP030R1
                           END
                  C
  STOP
                                      (4)
   ALID
TRANSACTION
                     PRINT
                     CONTROL
                      TOTALS

                    PRRP030R1
              (10)
                                                    (7)
      PRINT
      RANSLATED
     SELECTION

     PRRP030R1
                       PUNCH
                       EDITED
                       SELECTION
                        CARD
                  (8)
INCREMENT ACCEPTED
       COUNTER
                                                            (9)
                              -399-

-------
PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

(1)  Initialize all control counters to zero.

(2)  Read and store State Table and Selection Table.

(3)  Read a selection control card.

(4)  Increment transaction counter.

(5)  Validate transaction

     The selection control card must have 0 or 1 in column 1.
     If not write error message 009.

     For each selection card, validate according to the
     edit requirements in the Data Element Descriptions.

     The sort code, if it exists,  should not be identical
     to any other sort code.  If it does exist, a sort table
     should be prepared, and punched at the end of the run.

     Write an error message to PRRP030R1 for any errors which
     are found.

(6)  If any errors occur, print the appropriate error message
     and do not punch any further  cards.  Continue editing
     transactions.

(7)  If all of the fields are valid, punch output cards.

     If the mnemonic is "SOURCE" a series of 15 control cards
     will be punched, each with the same value, but with the
     different offsets and lengths as found in the Selection
     Table.

     If not "SOURCE"  one control card will be punched, using
     the offset and length as found in the Selection Table.

(8)  A "translated" selection will be printed on PRRP030R1
     for each punched control card, as shown on the report
     layout,  using the current transaction counter as the
     card number.

(9)  The control card acceptance counter is incremented.

(10)  At the end  of the run control totals are printed and
     a sort control table is punched from those records
     whose sort  sequence is indicated.
                      - 4 0 0 -                     index systems inc

-------
                 EPA WATER SUPPLY DATA SYSTEM
                     PROGRAM SPECIFICATION
PROGRAM:


SUBSYSTEM:

DESCRIPTION:
PRRP040 - Generate Variance and Exemption
Review List

PERIODIC REPORTING

This program generates the Variance and Exemption
Review List according to specifications which
are entered on cards.
          PWSIF
                                 VAEXF
            PWS

          INVENTORY

            FILE
    EVRSC
    EDITED
    REPORT
  SELECTION
    CARD
    PRRP040

  GENERATE VAR-
  IANCE & EXEMP-
  TION REVIEW
       LIST
                     PRRP04QR1
                    VARIANCE &
                    EXEMPTION
                    REVIEW
                      LIST
                                            VEESF
VARIANCE &
EXEMPTION

EXPANDED

SORT FILE
                           -401-
                                      index systems inc

-------
INTRODUCTION;

Function r  This program generates the Variance and Exemption
           Review List based on report selection cards pro-
           duced by PRRP030.

Reports;   PRRP040R1 - Variance and Exemption Review List  -
           lists variances and exemptions meeting the
           criteria specified on selection cards.
DATA USAGE:
Input Files;
                  File Name - PWS Inventory File
                  File I.D. - PSWIF
                  File Layout Reference - PWSIF
                  Record Name - Inventory

                  File Name - Variance and Exemption File
                  File I.D. - VAEXF
                  File Layout Reference - VAEXF
                  Record Name - Variance/Exemption

                  File Name - Edited Report Selection Cards
                  File I.D. - EVRSC
                  File Layout Reference - EPRSC
                  Record Names - Edited Header Card
                                 Edited Selection Card
Intermediate
Sort File:
                  File Name - Variance and Exemption
                              Expanded Sort File
                  File I.D. - VEESF
                  File Layout Reference - VEESF
                  Record Name - Expanded Variance/Exemption
                                Record
Tables:
                  Table Name
                  Table I.D.

                  Table Name
                  Table I.D.

                  Table Name
                  Table I.D.
State Table
STATAB

Treatment Table
TRETAB

Contaminant Table
CONTAB
                      -402-
                   index systems inc

-------
3.    REPORT OUTPUT;

            PRRP040R1 - Variance and Exemption Review List


4.    CONTROL ACCUMULATORS;

      Total variances and exemptions printed.


5.    GENERAL PROCESSING NOTES;

      The program will sort and select records for report genera-
      tion, based on the selection criteria being entered on cards.

      A subroutine is used to compare Variance and Exemption re-
      cords to a group of parameters defined by the selection con-
      trol card (punched by PRRP030).

      The following variables should be matched to internally-coded
      tables, and the table values printed:

            Variable                  Table

            Status                    Status Table
            Milestone                 Milestone Table
            Reason                    Reason Table
                         -403-                        Index, systems 'm®

-------
        6.  LOGIC CHART;  (Numbers  reference PROCESSING STEPS, Section  7)
                        START
 /WRITE RE-
   PORT

'PRRP040R1
                 INITIALIZE  COUNTERS
                   (1)
   READ
 'TION  CON-
 TROL CARDS
rTO END
                                  (2!
                                  (3)
                     /READ  VARI-
                    ANCE AND
                    /EXEMPTION
                   /  FILE
                        READ
                       SORTED
                       RECORDS
               INCREMENT RECORD
                     COUNTER
                      WRITE
                     COUNTERS
                                    YES
                                   (7)
                            'READ INVEN-y
                              TORY
                              FILE
                                                             (5)
                            /RITE COM-
                          BINED
                            CCORD TO
                             SORT
                                         (6)
                     STOP

-------
7.    PROCESSING STEPS; (Numbers reference LOGIC CHART, Section 6)

      (1)    Initialize counters.

      (2)    Read ail of the selection control cards.

            Store the address indicator (0 = mailing address,
            1 = plant address)  from the header card and the
            sample percentage.

            Store the sort sequence number, starting position
            and length of each selection element identified as
            a sort paramter.

            Define a group of parameters to be passed to a selec-
            tion subroutine.-  The parameters should contain the
            variable position in the record, the relation , the
            value and a switch to indicate if a failure to meet
            the parameter rejects the record (all "AND" operators)
            or if the next'comparison is used ("OR"  operators).

      (3)    Read a Variance and Exemption record and pass the
            record to the selection routine.

      (4)    The selection routine should return a 0 for select,
            or 1 for fail.  If  the record is a fail the program
            should read the nexL Variance and Exemption record.

      (5)    Match the PWS-ID to the Inventory File PWS-iD.  if no
            match put-"NO INVENTORY RECORD" in name and address
            field.

      (6)    Write a combined record (using the appropriate address)
            to a sort routine to be sorted by the stored sequence.
            This record should  contain all of the information as
            indicated on the PRRP040R1 report layout.  Note that
            the address, region, district, population,
            community and type  of source are obtained from the PWS
            Inventory File.

      (7)    After all Variance  and Exemption records are read and
            processed,  read the sorted file.

      (8)    Write the Variance  and Exemption Review List PRRP040R1,
            as indicated on the report layout and increment the
            record counter for each record printed.

      (9)    After all sorted records are processed,  print the total
            records written.
                            -405-
                                                      index systems 'me

-------
                 EPA WATER SUPPLY DATA SYSTEM
                     PROGRAM SPECIFICATION
PROGRAMS

SUBSYSTEM:

DESCRIPTION:
ANRP020 - Generate Compliance Profiles

ANNUAL REPORTING

This program generates two compliance summary
summary reports reflecting violation occurrances,
Various criteria are specified by the user on
card input.
                        PWSIF
                         PWS

                         INVENTORY

                         FILE
     CPRSC
^ REPORT
SELECTION
CARD
V,
. f
ANRP020
GENERATE
COMPLIANCE
PROFILES
          ANRP020R1
        :OMPLIANCE
         PROFILE  SHOW-
         ING NUMBER OF
         PWS's
                      ANRP020R2
                     :OMPLIANCE PRO-
                     TILE  SHOWING
                     POPULATION
                        SERVED
                           -406-

-------
 INTRODUCTION:
            This program creates two summary level reports
                        1 t T\ i"*ii -f* ty Y^^/"* T -P-i /-i a 4- -J ^M«* e»
Function;  This program creates two summary 1<
           based on card input specifications,

Reports;   ANRP020R1 - Compliance Profile Showing Number
           of Public Water Systems - shows number of water
           systems within categories based on number of
           violations and population served

           ANRP020R2 - Compliance Profile Showing Population
           Served - shows population served by water sys-
           tems within categories based on number of vio-
           lations and population served.
 DATA USAGE:
 Input Files:
Table:
                  File Name - PWS Inventory File
                  File I.D. - PWSIF
                  File Layout Reference - PWSIF
                  Record Name - Inventory

                  File Name - Report Selection Card
                  File I.D. - CPRSC
                  File Layout Reference - ANRSC
                  Record Name - Selection Card
                  Table  Name  -  State Table
                  Table  I.D.  -  STATAB
REPORT OUTPUT:
ANRP020R1  -  Compliance  Profile  Showing Number of Public
             Water  Systems
ANRP020R2  -  Compliance  Profile  Showing Population Served
TOTALING LEVELS:
Not applicable
GENERAL PROCESSING NOTES;

The PWS Inventory File is organized as a partitioned data
set with one partition for each EPA region.  Each  region
must therefore be accessed as a separate file.   If the  re-
ports are to be printed for only one region, then  only
that portion of the data set need be accessed.
                     -407-
                                                index systems inc

-------
The violation accumulators to be accessed for these reports
are the year-to-date figures, data elements 062, 063 and
064, and the total figures, data elements 065, 066 and 067.
These six accumulators occur six times on each PWS Inventory
record, representing the six contaminant categories.

Each report is contained on only one page.  Accumulators are
used to "build" the entire report in core.  It is then
printed at the end of the program.
                  - 4 o 8 -                         index systems inc

-------
6. LOGIC CHART;   (Numbers  reference PROCESSING STEPS,  Section 7)
   (   START   J
   INITIALIZATION

    PROCESSING

                  (1)
    fREAD SELEC-y
     TION CARD

      CPRSC
(2)
(3/READ PWS  7  J
   INVENTORY / i
      FILE
             7END
              OF
             PIL:
CALCULATE
TOTALS AND
PERCENTAGES
                                               (8)
                                           (9)
                !/ PRINT     /
                \J  REPORT   I"*
                                                   END OF RUN

                                                    PROCESSING
                                                                STOP

                   YES
                              (4
                  YES
ACCUMULATE
  VIOLATIONS
   PROCESSING

                                 BEING
                           KSELECTED  ON
                                 REGION
              EING
          SELECTED ON
              STATE
                            -409-

-------
7.    PROCESSING STEPS; (Numbers reference LOGIC CHART, Section 6)

      (1)  Zero out all accumulators and open files.  Read in
           State Table.

      (2)  The selection card indicates the specifications to
           be used in generating the report.  Validate each field
           in the card according to the edit rules specified in
           the Data Element Descriptions.  If the card is invalid,
           abort the run and print 'REPORT SELECTION INVALID1 on
           ANRP020R1.

      (3)  Read either the individual region as specified on the
           input card, CPRSC, or read sequentially through the
           entire data set.

      (4)  Region selection is determined by input card, CPRSC.

      (5)  State selection is determined by input card, CPRSC.

      (6)  For both reports, check each inventory record to see
           whether or not it meets the specifications of the
           selection card, as follows:

                 .  Check TYPE-OF-PWS-SEL against PSW-TYPE.
                    If A is specified, select all types.

                 .  Check REGION-SEL against REGION.  If A
                    is specified, select all regions.

                    Check STATE-SEL against STATE.  If A is
                    specified, select all states.

                 .  Check SOURCE-TYPE-SEL against each SOURCE-
                    CODE.   The number of SOURCE-CODE fields to
                    be checked is indicated in SOURCE-NUM.  If
                    any match is found, select the inventory re-
                    cord for inclusion on the report.  If A is
                    specified, select all source types.

                    CONTAM-CTG-SEL indicates which set of six
                    accumulators on the inventory file should
                    be used.  If A is specified, add together
                    corresponding accumulators for the six con-
                    taminant categories.

                    ACCUM-TYPE-SEL indicates whether the year-
                    to-date or total-to-date accumulators should
                    be used.

                    VIO-TYPE-SEL specifies which of the three
                    accumulators should be used.  If A is speci-
                    fied,  add the contaminant, sampling and
                    other accumulators together.
                             ~ 41 ° ~                     index systems inc

-------
     For each report,  define a matrix of 152 accumulators
     representing the eight violation categories and the
     nineteen population categories.

              Analyze the POP-SERVED field in conjunction
              with VIOLATIONS ACCUMULATORS and determine
              which matrix accumulator should be incre-
              mented for each inventory record.

              For ANRP020R1, add 1 to the matrix accumu-
              lator selected.

           .   For ANRP020R2, add POP-SERVED to the matrix
              accumulator selected.

(7)   Calculate the totals and percentages in the following
     manner:

              Sum the eight accumulators for each of the
              nineteen population categories to arrive at
              the right-most total column.

              Sum the nineteen accumulators for each of the
              eight violation categories to arrive at the
              bottom total row.

              Use the grand total figure (right-most column,
              bottom row)  to calculate the percentages.
              Divide each of the 152  accumulators as well
              as the nineteen figures in the total column
              and the eight figures  in the total row by the
              grand total figure.  Each result will be a
              percentage (multiply by 100 before printing).

(8)   For ANRP020R2, divide all population figures by
     1000 before printing.

     Print the report requested as shown on the report
     layouts.

              On line 3, under the heading print one of the
              following descriptions  corresponding to
              TYPE-OF-PWS-SEL on the  input card:

                 COMMUNITY SYSTEMS
                 NON-COMMUNITY SYSTEMS
                 ALL PUBLIC WATER SYSTEMS
                    -411-                       index systems inc

-------
              On line 5, print REGION-SEL for region.
              If REGION-SEL equals A, leave blank.  Print
              the state name corresponding to STATE-SEL
              by using the table STATAB.   If STATE-SEL
              equals A, leave blank.

              On line 6, print whichever of the following
              descriptions corresponding to CONTAM-CTG-SEL:

                 PHYSICAL
                 INORGANIC CHEMICALS
                 PESTICIDES AND ORGANIC CHEMICALS
                 MICROBIOLOGICAL
                 RADIOACTIVE
                 TREATMENT
                 ALL (if A is specified)

              Line 7 should contain whichever of the fol-
              lowing corresponds to VIO-TYPE-SEL:

                 CONTAMINANT
                 SAMPLING
                 OTHER
                 ALL (if A is specified)

              On line 8 print whichever of the following
              corresponds to SOURCE-TYPE-SEL:

                 SURFACE
                 GROUND
                 PURCHASED
                 ALL (if A is specified)

              On line 9 print YEAR-TO-DATE or TOTAL-TO-DATE
              according to ACCUM-TYPE-SEL.
(9)   Close  files  and end the job.
                       -412-                    index systems inc

-------
                      EPA WATER SUPPLY DATA SYSTEM
                          PROGRAM SPECIFICATION
PROGRAM;

SUBSYSTEM:

DESCRIPTION:
ANRP031 - Generate PWS Inventory Reports by Ownership

ANNUAL REPORTING

This program generates two reports which analyze the
PWS Inventory records according to type of ownership.
                           PWS IF
                           PWS

                           INVENTORY

                           FILE
       PIRSC
     REPORT
     SELECTION
     CARD
            ANRP031

          GENERATE PWS
           OWNERSHIP
            REPORTS
            ANRP030R1
          NO.  OF FAC.  &
          POP. SERVED  BY
           OWNERSHIP
                          ANRP030R2
                       PERCENTAGE FAC.
                       & POP.  SERVED
                       BY OWNERSHi:
                               -413-

-------
INTRODUCTION;

Function;  This program produces two reports.

Reports;   ANRP030R1 - Number of Facilities and Population
           Served by Type of Ownership - shows the number
           of facilities and population served for each type
           of PWS ownership summarized by population cate-
           gory and state.

           ANRP030R2 - Percentage of Facilities and Popula-
           tion Served by Type of Ownership - shows the per-
           centage of facilities and percentage of population
           served for each type of ownership summarized by
           population category and state.
DATA USAGE:
Input Files;
                   File Name - PWS Inventory File
                   File I.D. - PWSIF
                   File Layout Reference - PWSIF
                   Record Name - Inventory

                   File Name - Report Selection Card
                   File I.D. - PIRSC
                   File Layout Reference - ANRSC
                   Record Name - Selection Card
Table:
                   Table Name - State Table
                   Table I.D. - STATAB
REPORT OUTPUT;

     ANRP030R1 - Number of Facilities and Population Served
                 by Type of Ownership

     ANRP030R2 - Percentage of Facilities and Population
                 Served by Type of Ownership
TOTALING LEVELS:
Entire report (total of all states)
                    -414-
index systems inc

-------
5.      GENERAL PROCESSING NOTES;

       The PWS Inventory File is organized as a partitioned data
       set with one partition for each EPA region.  Each region
       must therefore be accessed as a separate file.  For this
       program the entire data set is read sequentially.

       The report selection card indicates whether the reports
       are to be printed for community, non-community or all
       PWS's.  Check PWS-TYPE in each record to see if it should
       be included.
                          -415-                        index systems inc

-------
    6.   LOGIC CHART:   (Numbers  reference  PROCESSING  STEPS,  Section  7)
      (   START    )
           I
    INITIALIZATION
      PROCESSING
        READ AND
        VALIDATE
      'SELECTION
         CARD
  U)
(2)
G>
 (3)
        READ PWS
INVENTORY
               (4)
 (END
 	N
  OF  "
(FILE
     CALCULATE
       TOTALS
         &
     PERCENTAGES
                    (5)
                               (6)
                                         PRINT7
                                              END OF  JOB

                                               PROCESSING
                                                                           J
  ACCUMULATE  TOTALS
                                -416-

-------
7.     PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

       (1)   Initialize all accumulators to zero and open files.
            Read in State Table.

       (2)   Check PWS-TYPE-SEL for a C, N or A.  If other than
            one of these values, abort the run and print 'INVALID
            SELECTION CARD1  on ANRP030R1.

       (3)   Define a matrix of accumulators having ten accumulators
            for each of the nineteen population categories and
            ten for each of the fifty-six states and territories.
            Analyze PWS-OWNER-TYPE and POP-SERVED on each PWS
            Inventory record and add to the appropriate facility
            and population accumulators based on POP-SERVED .  (if
            POP-SERVED is blank, add to the 'UNKNOWN1  accumulators).
            In a similar manner add to the appropriate facility
            and population accumulators based on the STATE field.

       (4)   Calculate the total line by adding up the fifty-six
            state and territory accumulators.   Calculate all  the
            percentage fields for ANRP030R2 in the following  manner:

                   For each line, add up the five facility accum-
                   ulators for ANRP030R1 and the five population
                   accumulators.

                   Find each percentage by dividing each individ-
                   ual accumulator by the corresponding line  total
                   (facility or population).

       (5)   On ANRP030R1 divide each population figure by 1000
            before printing.

            For each report, centered under the heading, print
            one of the following descriptions:

                      COMMUNITY SYSTEMS
                      NON-COMMUNITY SYSTEMS
                      ALL PUBLIC WATER SYSTEMS

            corresponding to PWS-TYPE-SEL on the report selection card.

       (6)   Close files and  end job.
                         -417-
                                                       index systems "me

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:


SUBSYSTEM:

DESCRIPTION:
ANRP032 - Generate PWS Inventory Reports by
          Type of Water Source

ANNUAL REPORTING

This program generates two reports which analyze
the PWS Inventory records according to type of
water source.
                           PWS IF
        PIRSC
      REPORT
      SELECTION

      CARD
                           PWS
                           INVENTORY

                           FILE
          ANRPQ32

       GENERATE PWS

        SOURCE  TYPE

          REPORTS
           ANRPQ30R3
         NO. OF FAC.  &
         POP.  SERVED  BY

         TYPE  OF  SOURi
                       ANRP030R4

                     PERCENTAGE  FAC,
                      & POP.  SERVED
                     BY TYPE  OF
                      SOURCE
                            -418-
                                                        index systems inc

-------
INTRODUCTION;

Function;   This program produces two reports.

Reports;    ANRP030R3 - Number of Facilities and Population
            Served by Type of Water Supply Source - shows
            the number of facilities and population served
            for each type of water supply source summarized
            by population category and state.

            ANRP030R4 - Percentage of Facilities and Popu-
            lation Served by Type of Water Supply Source -
            shows the percentage of facilities and percen-
            tage of population served for each type Of water
            supply source summarized by population category
            and state.
DATA USAGE:
Input Files:
                   File Name - PWS Inventory File
                   File I.D. - PWSIF
                   File Layout Reference - PWSIF
                   Record Name - Inventory

                   File Name - Report Selection Card
                   File I.P. - PIRSC
                   File Layout Reference - ANRSC
                   Record Name - Selection Card
Table:
                   Table Name - State Table
                   Table I.D. - STATAB
REPORT OUTPUT

ANRP030R3 - Number of Facilities and Population Served by
            Type of Water Supply Source

ANRP030R4 - Percentage of Facilities and Population Served
            by Type of Water Supply Source
TOTALING LEVELS;

Entire report (total of all states)
                       -419-
index systems inc

-------
5.      GENERAL PROCESSING NOTES;

       The PWS Inventory File is organized as a partitioned data
       set with one partition for each EPA region.  Each region
       must therefore be accessed as a separate file.  For this
       program the entire data set is read sequentially.

       The report selection card indicates whether the reports
       are to be printed for community, non-community or all PWS's.
       Check PWS-TYPE in each record to see if it should be included,
                          -420-                        index systems inc

-------
   6.  LOGIC CHART:   (Numbers  reference PROCESSING STEPS, Section  7)
     I   START
INITIALIZATION
PROCESSING
i
f
                       1)
       READ AND
       VALIDATE
     'SELECTION
        CARD
   (2)
                      (4)
       READ PWS
                 /END
                 A-VTtT->
      INVENTORY  / OF
                 /FI
(FILE
(3)
                I
CALCULATE
  TOTALS
   &
PERCENTAGES
                                        (5)
                                   (6!
                         PRINT7
END OF JOB
 PROCESSING
                                                     STOP
  ACCUMULATE TOTALS
                             -421-

-------
7.     PROCESSING STEPS: (Numbers reference LOGIC CHART, Section 6)

       (1)   Initialize all accumulators to zero and open files.
            Read in State Table.

       (2)   Check PWS-TYPE-SEL for a C, N or A.  If other than
            one of these values, abort the run and print 'INVALID
            SELECTION CARD' on ANRP030R3.

       (3)   Define a matrix of accumulators having eight accumula-
            tors for each of the nineteen population categories
            and eight for each of the fifty-six states and terri-
            tories.  Check the SOURCE-CODE field for each source
            on the PWS inventory record (use SOURCES-NUM to indicate
            the number of sources to be checked).

                   If all are S, categorize as surface.
                   If all are G, categorize as ground.
                   If any is P, categorize as purchased.
                   If some are S and some are G, categorize as
                   surface and ground.

            Based on this analysis,  add to the appropriate facility
            and population accumulators based on POP-SERVED (if blank
            add to UNKNOWN).  In a similar manner add to the appro-
            priate facility and population accumulators based on
            the STATE field.

       (4)   Calculate the total line by adding up the fifty-six
            state and territory accumulators.  Calculate all the
            percentage fields for ANRP030R4 in the following manner:

                   For each line, add up the five facility
                   accumulators for  ANRP030R3 and the five
                   population accumulators.  (These will be
                   printed in the TOTAL columns.)

                   Find each percentage by dividing each in-
                   dividual accumulator by the corresponding
                   line total (facility or population).

       (5)   On ANRP030R3 divide each population figure by 1000
            before printing.

            For each report,  centered under the heading, print one
            of the following descriptions:

                      COMMUNITY SYSTEMS
                      NON-COMMUNITY  SYSTEMS
                      ALL PUBLIC WATER SYSTEMS

            Corresponding to PWS-TYPE-SEL on the report selection card,

       (6)   Close files and end job.


                              -422-                      index systems inc

-------
                      EPA WATER SUPPLY DATA SYSTEM
                          PROGRAM SPECIFICATION
      PROGRAM:

      SUBSYSTEM:

      DESCRIPTION:
ANRP033 - Generate PWS Inventory Reports by Treatment

ANNUAL REPORTING

This program generates five reports which analyze
the PWS Inventory records according to whether or
not the water source is treated.
                                PWS IF
                                PWS
                                INVENTORY
                                FILE
             PIRSC
           REPORT
           SELECTION
           CARD
        ANRP033

        GENERATE  PWS
          TREATMENT
          REPORTS
M&P030R5
    OF FAC
'OPo SERVED
               PERCENTAGE OF
               FAC. & POP.
               SERVED BY
               TREATMENT
                     NUM. FACo &
                     POP. BY TREAT-
                     MENT GROUND
                     SUPPLIES
  ANRP030R9
NUM. FAC. &
BY TREATMENT
SURFACE 6
GROUND
 UPPLIE
                               ANRP030R7
                             NUM. FAC. &
                             POP. BY TREAT-
                             MENT SURFACE
                             SUPPLIES
                                          -423-
                                                              index systems me

-------
INTRODUCTION;

Function;   This program produces five reports.

Reports;    ANRP030R5 - Number of Facilities and Population
            Served by Treatment - shows the number of facil-
            ities and population served by treated and un-
            treated water summarized by population category
            and state.

            ANRP030R6 - Percentage of Facilities and Popula-
            tion Served by Treatment - shows the percentage
            of facilities and percentage of population served
            by treated and untreated water summarized by
            population category and state.

            ANRP030R7 - Number of Facilities and Population
            Served by Treatment for Surface Only Supplies -
            same as ANRP030R5 but for surface supplies only.

            ANRP030R8 - Number of Facilities and Population
            Served by Treatment for Ground Only Supplies -
            same as ANRP030R5 but for ground supplies only.

            ANRP030R9 - Number of Facilities and Population
            Served by Treatment for Surface and Ground Supplies
            same as ANRP030R5 for surface and ground supplies.
DATA USAGE:
Input Files;
Table:
                   File Name - PWS Inventory File
                   File I.D. - PWSIF
                   File Layout Reference - PWSIF
                   Record Name - Inventory

                   File Name - Report Selection Card
                   File I.D. - PIRSC
                   File Layout Reference - ANRSC
                   Record Name - Selection Card
                   Table Name - State Table
                   Table I.D. - STATAB
                   -424-
index systems inc

-------
REPORT OUTPUT;

     ANRP030R5 -


     ANRP030R6 -


     ANRP030R7 -


     ANRP030R8 -


     ANRP030R9 -
Number of Facilities and Population
Served by Treatment

Percentage of Facilities and Population
Served by Treatment

Number of Facilities and Population
Served by Treatment for Surface Only Supplies

Number of Facilities and Population
Served by Treatment for Ground Only Supplies

Number of Facilities and Population
Served by Treatment for Surface and
Ground Supplies
TOTALING LEVELS:
Entire report  (total of all states).
GENERAL PROCESSING NOTES;

The PWS Inventory File is organized as a partitioned data
set with one partition for each EPA region.  Each region
must therefore be accessed as a separate file.  For this
program the entire data set is read sequentially.

The report selection card indicates whether the reports
are to be printed for community, non-community or all
PWS's.  Check PWS-TYPE in each record to see if it should
be included.
                       -425-
                                                 index systems inc

-------
    6.   LOGIC CHART:  (Numbers reference PROCESSING STEPS, Section 7)
     C
START
    INITIALIZATION
      PROCESSING
G>
 (3)
                      (1)
        READ AND
        VALIDATE
      'SELECTION
         CARD
           (2)
             (4)
        READ PWS

       INVENTORY
         (END
         ""op""'
        (FILE
CALCULATE
  TOTALS
   &
PERCENTAGES
                               (5)
                         (6)
                                                 /
PRINT   /  END OF JOB
REPORTS P"  PROCESSING
•*f STOP   J
   ACCUMULATE TOTALS
           JJL
          0
                              -426-

-------
7.     PROCESSING STEPS;  (Numbers reference LOGIC CHART,Section 6)

       (1)   Initialize all accumulators to zero and open files.

       (2)   Check PWS-TYPE-SEL for a C, N or A.  If other than
            one of these values, abort the run and print 'INVALID
            SELECTION CARD1  on ANRP030R5.

       (3)   For each report ANRP030R5, ANRP030R7, ANRP030R8, and
            ANRP030R9, define a matrix of accumulators having
            eight accumulators for each of the nineteen population
            categories and eight for each of the fifty-six states
            and territories.  On each PWS Inventory record check
            each water source for as many as are indicated by
            SOURCES-NUM, as follows:

                   If all sources have at least one TREATMENT
                   indicated, add to the appropriate accumulators
                   for 'TREATED ONLY' for ANRP030R5.

                   If all sources have no TREATMENT indicators,
                   add to the appropriate accumulators for
                   'UNTREATED ONLY1  for ANRP030R5.

                   If only some sources have TREATMENT indicators
                   and some do not,  add to the appropriate accum-
                   ulators for 'BOTH1 for ANRP030R5.

                   Use POP-SERVED and STATE to determine the ap-
                   propriate accumulators.

            In a similar manner, add to the accumulators for
            ANRP030R7 if all SOURCE-CODE indicators are 'S'.

            Add similarly to the ANRP030R8 accumulators if all
            SOURCE-CODE indicators are 'G'.

            Add similarly to the ANRP030R9 accumulators if some
            SOURCE-CODE indicators are 'S1 and some are 'G1.

       (4)   Calculate the two total  columns on each report by adding
            up the three facility columns and the three population
            columns.

            Calculate the total line for each report by adding up
            the fifty-six state and  territory accumulators.
            Calculate all the percentage fields for ANRP030R6 by
            dividing each individual accumulator for report
            ANRP030R5 by the corresponding facility or population
            line total.
                           - 4 2 7 -                       index systems inc

-------
(5)   On ANRP030R5,  ANRP030R7,  ANRP030R8 and ANRP030R9
     divide each population figure by 1000 before printing.

     For each report,  centered under the heading, print
     one of the following

            COMMUNITY  SYSTEMS
            NON-COMMUNITY SYSTEMS
            ALL PUBLIC WATER SYSTEMS

     corresponding  to  PWS-TYPE-SEL on the report selection card.

(6)   Close files and end job.
                     ~428                       index systems inc

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:


SYBSYSTEM:

DESCRIPTION:
ANRP034 - Generate PWS Inventory Report by
          Lab Control

ANNUAL REPORTING

This program generates a report which analyzes the
PWS Inventory records according to laboratory control
                                 PWS IF
              PIRSC
            REPORT
            SELECTION
            CARD
                               PWS

                               INVENTORY

                               FILE
                ANRPQ34
             GENERATE PWS
             LAB CONTROL
               REPORT
                              ANRP030R10
                             NUM.  FAC. AND
                             POP.  SERVED BY
                             TYPE  OF  LAB
                             CONTROL
                             -429-
                                                       index systems inc

-------
1.     INTRODUCTION;

       Function;   This program produces two reports.

       Reports;    ANRP030R10 - Number of Facilities and Population
                   Served by Type of Lab Control - shows the number
                   of facilities and population served by plants
                   having each of four types of lab control.
2.
DATA USAGE:
       Input Files;
       Table:
                      File Name - PWS Inventory File
                      File I.D. - PWSIF
                      File Layout Reference - PWSIF
                      Record Name - Inventory

                      File Name - Report Selection Card
                      File I.D. - PIRSC
                      File Layout Reference - ANRSC
                      Record Name - Selection Card
                      Table Name - State Table
                      Table I.D. - STATAB
3.
REPORT OUTPUT:
4.
            ANRP030R10 - Number of Facilities and Population Served
                         by Type of Lab Control
TOTALING LEVELS:
       Entire report (total of all states).
5.     GENERAL PROCESSING NOTES;

       The PWS Inventory File is organized as a partitioned data
       set with one partition for each EPA region.  Each region
       must therefore be accessed as a separate file. For this
       program the entire data set is read sequentially.

       The report selection card indicates whether the report is
       to be printed for community, non-community or all PWS's.
       Check PWS-TYPE in each record to see if it should be in-
       cluded.
                               -430-
                                                 index systems inc

-------
   6.  LPGIC CHART:   (Numbers  reference  PROCESSING STEPS, Section 7)
     I   START
   INITIALIZATION
     PROCESSING
                       1)
       READ AND
       VALIDATE
     'SELECTION
        CARD
(2)
                      (4)
 ;READ PWS  /
           /END
[NVENTORY / ~oT^
          /FILE
(3)
                /
                        CALCULATE
                          TOTALS
                                        (5)
                               (6)
                      PRINT
                      REPORT
END OF JOB
 PROCESSING
•if STOP   J
  ACCUMULATE TOTALS
                              -431-

-------
7.     PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

       (1)  Initialize all accumulators to zero and open files.
            Read in State Table.

       (2)  Check PWS-TYPE-SEL for a C, N or A.  If other than
            one of these values, abort the run and print 'INVALID
            SELECTION CARD1  on ANRP030R10.

       (3)  Define a matrix having eight accumulators for each of
            the nineteen population categories and eight for each
            of the fifty-six states and territories.  Analyze
            POP-SERVED and LAB-CONTROL on each PWS Inventory record
            and add to the appropriate facility and population.
            Accumulators based on POP-SERVED (if POP-SERVED is
            blank, add to the 'UNKNOWN' accumulators).  In a sim-
            ilar manner add to the appropriate facility and popu-
            lation accumulators based on the STATE field.

       (4)  Calculate the total line by adding up the fifty-six
            state and territory accumulators in each of the eight
            columns.

       (5)  Divide each population figure by 1000 before printing.

            For each report, centered under the heading, print one
            of the following descriptions:

                   COMMUNITY SYSTEMS
                   NON-COMMUNITY SYSTEMS
                   ALL PUBLIC WATER SYSTEMS

            corresponding to PWS-TYPE-SEL on the report selection card,

       (5)  Close files and end job.
                           - 4 3 2 -                       index systems inc

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:
SUBSYSTEM:
DESCRIPTION:
ANRP035 - Generate PWS Inventory Reports by
          Treatment Process

ANNUAL REPORTING

This program generates six reports which analyze
the PWS Inventory records according to type of
treatment process.
        PIkSC
      REPORT
      SELECTION

      CARD
                         PWS IF
                         PWS

                         INVENTORY

                         FILE
          ANRP035

       GENERATE PWS
        TREATMENT

       PROCESS REPORTS
              ANRP030R11B
            ANRP030R11A
           ANRP030R11

         NUM.  FAC.  & POP
         SERVED BY  TREAT
           MENT
         PROCESS
                                          ANRP030R12B
                      ANRP030R12

                     PERCENTAGE OF
                     FAC.  & POP.
                     SERVED BY
                     KENT
                       ROCESj
                           -433-
                                        index systems inc

-------
INTRODUCTION;

Function;   This program produces  six  reports.

Reports;    ANRP030R11, RllA, RllB - Number of  Facilities  and
            Population Served by Treatment Process  -  shows
            the number of facilities and population served
            by each treatment process  summarized by popula-
            tion category and state.

            ANRP030R12, R12A, R12B - Percentage of  Facilities
            and Population Served  by Treatment  Process  - shows
            the percentage of facilities and percentage of
            population served by each  treatment process sum-
            marized by population  category and  state.
DATA USAGE:
Input Files;
Tabile:
                   File Name - PWS Inventory File
                   File I.D. - PWSIF
                   File Layout Reference - PWSIF
                   Record Name - Inventory

                   File Name - Report Selection Card
                   File I.D. - PIRSC
                   File Layout Reference - ANRSC
                   Record Name - Selection Card
                   Table Name - State Table
                   Table I.D. - STATAB
REPORT OUTPUT:
     ANRP030R11, RllA, RllB -
     ANRP030R12, R12A, R12B -
Number of Facilities and Popu-
lation Served by Treatment Process

Percentage of Facilities and
Population Served by Treatment
Process
TOTALING LEVELS:
Entire report (total of all states).
                       -434-
                                                 index systems inc

-------
5.      GENERAL PROCESSING NOTES;

       The PWS Inventory File ir organized as a partitioned data
       set with one partition for each EPA region.  Each region
       must therefore be accessed as a separate file.  For this
       program the entire data set is read sequentially.

       The report selection card indicates whether the report
       is to be printed for community, non-community or all PWS's.
       Check PWS-TYPE in each record to see if it should be included.
                             -435-  ,                   index systems Sroe

-------
    6.   LOGIC CHART:   (Numbers reference PROCESSING STEPS,  Section 7)
      (   START    )
    INITIALIZATION
      PROCESSING
G>
 (3)
                       1)
        READ AND
        VALIDATE
      'SELECTION
         CARD
(2)
        ]READ PWS

       [NVENTORY
      CALCULATE
        TOTALS
         &
      PERCENTAGES
                    (5)
                               (6)
                                                 /
PRINT ""71 END OF JOB
REPORTS fa  PROCESSING
->f STOP   J
   ACCUMULATE  TOTALS
           jv

          0
                                -436-

-------
7.     PROCESSING STEPS; (Numbers reference LOGIC CHART, Section 6 )

       (1)   Initialize all accumulators to zero and open files.

       (2)   Check PWS-TYPE-SEL for a C, N or A.  If other than one
            of these values, abort the run and print 'INVALID
            SELECTION CARD1 on ANRP030R11.

       (3)   Define a matrix of accumulators having 28 accumulators
            (2 for each treatment process and 2 for totals)  for each
            of the nineteen population categories and 28 for each
            of the fifty-six states and territories.  Analyze
            POP-SERVED and STATE on each PWS Inventory record to
            determine which accumulators to increment for each record.
            If POP-SERVED is blank, add to the 'UNKNOWN1 accumulators.
            On each Inventory record, check each water source for as
            many as are indicated by SOURCES-NUM, as follows:

                   Check each TREATMENT code and add to the corres-
                   ponding accumulators if the treatment code is on.
                   The purification indication is defined as having
                   the following TREATMENT indicators all on:

                          disinfection, coagulation, sedimentation
                          and filtration, OR

                          disinfection, coagulation, and filtration.

                   Each record may be added to multiple accumulators.

            Add each PWS Inventory record to the line total accumu-
            lators based on POP-SERVED and STATE.

       (4)   Calculate the total line by adding up the fifty-six
            state and territory accumulators.

            Calculate all the percentage fields for ANRP030R12, R12A
            and R12B by dividing each individual accumulator by the
            corresponding line total accumulator (facility or popu-
            lation) .

       (5)   On ANRP030R11,  RllA, and RllB divide each population
            figure by 1000 before printing.

            For each report, centered under the heading, print one
            of the following descriptions:

                   COMMUNITY SYSTEMS
                   NON-COMMUNITY SYSTEMS
                   ALL PUBLIC WATER SYSTEMS

            corresponding to PWS-TYPE-SEL on the report selection card.

       (6)   Close files and end job.


                             _437_                       index systems inc

-------
                  EPA WATER SUPPLY DATA SYSTEM
                      PROGRAM SPECIFICATION
PROGRAM:


SUBSYSTEM:

DESCRIPTION
ANRP036 - Generate PWS Inventory Reports
          Analyzing Services

ANNUAL REPORTING

This program generates two reports which analyze
the PWS Inventory records according to population,
services and meters.
                           PWS IF
       PIRSC
      SELECTION

      CARD
                           PWS

                           INVENTORY

                           FILE
          GENERATE  PWS
          INVENTORY
          SERVICES  AND
          METERS  REPORTS
           ANRP030R13
         AVERAGE NUMBER
          PERSONS PER

          SERVICE
                        ANRP030R14
                       PERCENTAGE OF
                          SERVICES
                          METERED
                              -438-
                                          mdex systems me

-------
INTRODUCTION;

Function:    This program produces two reports.

Reports;     ANRP030R13 - Average Number of Persons Per Service  -
             shows the number of persons per service according
             to population categories and overall per state.

             ANRP030R14 - Percentage of Services Metered - shows
             the percentage of services metered according to pop-
             ulation categories and overall per state.
DATA USAGE:
Input Files:
Table:
                    File Name - PWS Inventory File
                    File I.D. - PWSIF
                    File Layout Reference - PWSIF
                    Record Name - Inventory

                    File Name - Report Selection Card
                    File I.D. - PIRSC
                    File Layout Reference - ANRSC
                    Record Name - Selection Card
                    Table Name - State Table
                    Table I.D. - STATAB
REPORT OUTPUT;

     ANRP030R13 - Average Number of Persons Per Service

     ANRP030R14 - Percentage of Services Metered


TOTALING LEVELS;

Entire report  (total of all states).


GENERAL PROCESSING NOTES;

The PWS Inventory File is organized as a partitioned data set
with one partition for each EPA region.  Each region must
therefore be accessed as a separate file.  For this program,
the entire data set is read sequentially.

The report selection card indicates whether the report is to
be printed for community, non-community or all PWS's.  Check
PWS-TYPE in each record to see if it should be included.
                          -439-
                                                    index systems inc

-------
7.   PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

     (1)   Initialize all accumulators to zero and open files.
          Read in State Table.

     (2)   Check PWS-TYPE-SEL for a C, N or A.  If other than one
          of these values, abort the run and print 'INVALID SELECTION
          CARD' on ANRP030R13.

     (3)   Define a matrix of accumulators for each of the three
          fields POP-SERVED, SERVICES-NUM and METERS-NUM.  Each
          matrix must have thirteen accumulators (for the popula-
          tion categories) for each of the fifty-six states and
          territories.  Analyze STATE and POP-SERVED on each PWS
          Inventory record and add to the appropriate accumulators.
          If any of the three fields POP-SERVED, SERVICES-NUM or
          METPERS-NUM is blank, skip the record.

     (4)   Calculate the total line by first adding up the fifty-
          six state and territory accumulators.   Calculate the
          fields on ANRP030R13 by dividing each POP-SERVED accum-
          ulator by the corresponding SERVICES-NUM accumulator.
          Calculate the fields on ANRP030R14 by dividing each
          METERS-NUM accumulator by the corresponding SERVICES-NUM
          accumulator.  Calculate the state average columns by
          adding the line accumulators across and then dividing.

     (5)   For each report, centered under the heading, print one
          of the following descriptions:

                  COMMUNITY SYSTEMS
                  NON-COMMUNITY SYSTEMS
                  ALL PUBLIC WATER SYSTEMS

          corresponding to PWS-TYPE-SEL on the report selection card.

     (6)   Close files and end job.
                            -440-                       index systems ine

-------
   6.   LOGIC CHART:   (Numbers reference  PROCESSING STEPS, Section 7)
     (   START    J
   INITIALIZATION
     PROCESSING
                      1)
       READ AND
       VALIDATE
     'SELECTION
        CARD
(2)
                      (4)
       READ PWS
                 ]/END
      [NVENTORY  fOP"
                 /FILE
(3)
      CALCULATE
        TOTALS
         &
      PERCENTAGES
                                        (5)
                                (6)
  ACCUMULATE TOTALS
/
PRINT7  END OF JOB
REPORTS I*  PROCESSING
                  •^f STOP   J
                               -441-

-------
                  EPA WATER SUPPLY DATA SYSTEM
                      PROGRAM SPECIFICATION
PROGRAM:


SUBSYSTEM:

DESCRIPTION:
ANRP037 - Generate PWS Inventory Reports of Capacity
          and Production

ANNUAL REPORTING

This program generates two reports which analyze
the PWS Inventory records according to production
and capacity.
                           PWS IF
                          PWS

                          INVENTORY

                          FILE
        PIRSC
   ^REPORT
      SELECTION
      CARD
          ANRP037
         GENERATE PWS
         INVENTORY CAP-
         ACITY & PRO-
         DUCTION REPORTS
          PERCENTAGE  OF
          DIST.  STOR.  AS
          MAX. DAILY
          PRODUCTION
                       PERCENTAGE OF
                       CAPACITY AS MAX
                        DAILY
                       PRODUCTION
                               -442-
                                                        index systems inc

-------
      INTRODUCTION;

      Function;    This program produces two reports.

      Reports;     ANRP030R15 - Percentage of Distribution  Storage
                  as Maximum Daily Production -  shows this percentage
                  by population group and overall  for each state.

                  ANRP030R16 - Percent of Capacity as Maximum  Daily
                  Production - shows the number  of systems falling
                  within various percentages by  population group
                  and overall for each state.
     DATA USAGE:
     Input Files;
     Table:
                         File Name - PWS Inventory File
                         File I.D. - PWSIF
                         File Layout Reference - PWSIF
                         Record Name - Inventory

                         File Name - Report Selection Card
                         File I.D. - PIRSC
                         File Layout Reference - ANRSC
                         Record Name - Selection Card
                         Table Name - State Table
                         Table I.D. - STATAB
3.
REPORT OUTPUT:
4.
          ANRP030R15 - Percentage of Distribution Storage as
                       Maximum Daily Production

          ANRP030R16 - Percent of Capacity as Maximum Daily
                       Production
TOTALING LEVELS:
     Entire report (total of all states).
5.    GENERAL PROCESSING NOTES;

     The PWS Inventory File is organized as a partitioned data set
     with one partition for each EPA region.  Each region must
                             -443-
                                                    index systems inc

-------
therefore be accessed as a separate file.  For this program
the entire data set is read sequentially.

The report selection card indicates whether the report is to
be printed for community, non-community or all PWS's.  Check
PWS-TYPE in each record to see if it should be included.
                       -444-                       index systems inc

-------
    6.   LOGIC CHART:   (Numbers reference PROCESSING STEPS,  Section 7)
      (   START    J
    INITIALIZATION
      PROCESSING
G>
 (3)
                       1)
        READ AND
        VALIDATE
      'SELECTION
         CARD
(2)
  (4)
        READ PWS

       INVENTORY
      CALCULATE
        TOTALS
         &
      PERCENTAGES
                    (5)
        7  END OF JOB

REPORTS A  PROCESSING
•*f STOP   j
   ACCUMULATE  TOTALS
           yr

          0
                              -445-

-------
7.   PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

     (1)   Initialize all accumulators to zero and open files.
          Read in State Table.

     (2)   Check PWS-TYPE-SEL for a C, N or A.  If other than one
          of these values, abort the run and print 'INVALID
          SELECTION CARD1  on ANRP030R15.

     (3)   For ANRP030R15,  define a matrix of thirteen accumulators
          for each state for MAX-PRODUCTION and STORAGE-CAPACITY.
          For each PWS Inventory record add to these accumulators
          based on STATE and POP-SERVED.  If POP-SERVED, MAX-
          PRODUCTION or STORAGE-CAPACITY is blank, skip the record.

          For ANRP030R16,  define a matrix of thirteen accumulators
          for each of the  percentage categories shown on the report
          for each state.   For each PWS Inventory record, divide
          MAX-PRODUCTION by NORMAL-CAPACITY and add 1 to the appro-
          priate accumulator based on the result and the STATE and
          POP-SERVED fields.  If POP-SERVED, NORMAL-CAPACITY or
          MAX-PRODUCTION are blank, skip the record.

     (4)   For ANRP030R15,  calculate the total line by adding up
          the fifty-six state and territory accumulators.  Calcu-
          late the state average by first adding across the accumu-
          lators for each  row.  Then calculate each percentage
          figure (detail or total) by dividing each MAX-PRODUCTION
          accumulator by the corresponding STORAGE-CAPACITY accumu-
          lator.

          For ANRP030R16,  calculate the state total section each
          row across.  Then calculate the report totals by adding
          up all the corresponding accumulators for the fifty-six
          states and territories

     (5)   For each report, centered under the heading, print one
          of the following descriptions:

                  COMMUNITY SYSTEMS
                  NON-COMMUNITY SYSTEMS
                  ALL PUBLIC WATER SYSTEMS

          corresponding to PWS-TYPE-SEL on the report selection card.

     (6)   Close files and  end job.
                               -446-
                                                        index systems inc

-------
                  EPA WATER SUPPLY DATA SYSTEM
                      PROGRAM SPECIFICATION
PROGRAM:


SUBSYSTEM:

DESCRIPTION:
ANRP038 - Generate PWS Inventory Report of
          Per Capita Water Use

ANNUAL REPORTING

This program generates one report which analyzes the
PWS Inventory records according to maximum per capita
daily water use.
              PIRSC
             REPORT
           SELECTION
             CARD
                                 PWS IF
                                PWS

                                INVENTORY

                                FILE
                 ANRP038

               GENERATE PWS
               INVENTOYR PER
               CAPITA WATER
                   USE
                                ANRP030R17
                              MAX. PER CAPITA

                                  DAILY

                              WATER USE
                             -447-
                                                         index systems isie

-------
1.   INTRODUCTION;

     Function;    This program produces one report.

     Reports;     ANRP030R17 - Maximum Per Capita Daily Water Use -
                  shows the population and maximum per capita water
                  use by state.


2.   DATA USAGE;

     Input Files;
                         File Name - PWS Inventory File
                         File I.D. - PWSIF
                         File Layout Reference - PWSIF
                         Record Name - Inventory

                         File Name - Report Selection Card
                         File I.D. - PIRSC
                         File Layout Reference - ANRSC
                         Record Name - Selection Card

     Table:
                         Table Name - State Table
                         Table I.D. - STATAB
3.   REPORT OUTPUT;

          ANRP030R17 - Maximum Per Capita Daily Water Use


4.   TOTALING LEVELS;

     Entire report (total of all states).


5.   GENERAL PROCESSING NOTES;

     The PWS Inventory File is organized as a partitioned data set
     with one partition for each EPA region.  Each region must
     therefore be accessed as a separate file.  For this program
     the entire data set is read sequentially.

     The report selection card indicates whether the report is
     to be printed for community, non-community or all PWS's.
     Check PWS-TYPE in each record to see if it should be included.
                             -448-

-------
 INTRODUCTION;

 Function;    This program produces one report.

 Reports;     ANRP030R17 - Maximum Per Capita  Daily Water  Use  -
             shows the population and maximum per capita  water
             use by  state.
DATA USAGE:
Input Files:
Table:
                    File Name - PWS Inventory File
                    File I.D. - PWSIF
                    File Layout Reference - PWSIF
                    Record Name - Inventory

                    File Name - Report Selection Card
                    File I.D. - PIRSC
                    File Layout Reference - ANRSC
                    Record Name - Selection Card
                    Table Name - State Table
                    Table I.D. - STATAB
REPORT OUTPUT:
     ANRP030R17 - Maximum Per Capita Daily Water Use
TOTALING LEVELS:
Entire report  (total of all states).
GENERAL PROCESSING NOTES;

The PWS Inventory File is organized as a partitioned data set
with one partition for each EPA region.  Each region must
therefore be accessed as a separate file.  For this program
the entire data set is read sequentially.

The report selection card indicates whether the report is
to be printed for community, non-community or all PWS's.
Check PWS-TYPE in each record to see if it should be included.
                        -448-
index systems inc

-------
 INTRODUCTION;

 Function;    This program produces one report.

 Reports;     ANRP030R17 - Maximum Per Capita  Daily Water Use  -
             shows the population and maximum per capita water
             use by state.
DATA USAGE:
Input Files:
                    File Name - PWS Inventory File
                    File I.D. - PWSIF
                    File Layout Reference - PWSIF
                    Record Name - Inventory

                    File Name - Report Selection Card
                    File I.D. - PIRSC
                    File Layout Reference - ANRSC
                    Record Name - Selection Card
Table:
REPORT OUTPUT:
                    Table Name - State Table
                    Table I.D. - STATAB
     ANRP030R17 - Maximum Per Capita Daily Water Use
TOTALING LEVELS:
Entire report  (total of all states).
GENERAL PROCESSING NOTES;

The PWS Inventory File is organized as a partitioned data set
with one partition for each EPA region.  Each region must
therefore be accessed as a separate file.  For this program
the entire data set is read sequentially.

The report selection card indicates whether the report is
to be printed for community, non-community or all PWS's.
Check PWS-TYPE in each record to see if it should be included.
                        -448-
index systems inc

-------
   6.  LpGIC CHART:   (Numbers  reference PROCESSING STEPS, Section 7)
     C
START
INITIALIZATION
PROCESSING
,
,
                       1)
(3)
       READ AND
       VALIDATE
     'SELECTION
        CARD
            (2)
       JREAD PWS

      [NVENTORY
                  CALCULATE

                   TOTALS
                                        (5)
                                                   (6)
PRINT

REPORT
END OF JOB

 PROCESSING
STOP
  ACCUMULATE TOTALS
          JSL.

         ©
                              -449-

-------
7.    PROCESSING STEPS;  (Numbers  -eference LOGIC CHART, Section 6)

     (1)   Initialize all accumulators to zero and open files.
          Read in State Table.

     (2)   Check PWS-TYPE-SEL for a C, N or A.  If other than
          one of these values, abort the run and print 'INVALID
          SELECTION CARD'  on ANRP030R17.

     (3)   Define an array of accumulators for MAX-PRODUCTION and
          POP-SERVED for each of the fifty-six states and terri-
          tories.  Analyze each PWS Inventory record according to
          STATE and add to the appropriate accumulators.   If
          either MAX-PRODUCTION or POP-SERVED is blank, skip the
          record.

     (4)   Calculate the total line by adding up the fifty-six
          state and territory accumulators.

     (5)   For each report, centered under the heading, print one
          of the following descriptions:

               COMMUNITY SYSTEMS
               NON-COMMUNITY SYSTEMS
               ALL PUBLIC WATER SYSTEMS

          corresponding to PWS-TYPE-SEL on the report selection card.

     (6)   Close files and end job.
                            - 4 5 0 -                       index systems

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
       ANRP040  -  Generate Enforcement Action Summary

       ANNUAL REPORTING

       This program generates two enforcement action
       summary reports, each reflecting enforcement
       actions taken for community, non-community or
       all public water systems.
                         PWSIF
                                                ENACF
                         PWS
                         INVENTORY
                         FILE
      EARSC
     REPORT
     SELECTION
     CARD
                                       ENFORCEMEN
                                         ACTIONS
                                          FILE
                ANRPQ40

              GENERATE EN-
              FORCEMENT AC-
              TION SUMMARY
  ANRP040R1

ENFORCEMENT AC-
TION SUMMARY
POPULATION
                                      ANRP040R2

                                    ENFORCEMENT AC-
                                    SUMMARY BY TYPE
                                    AND SOURCE
                           -451-
                                              index systems inc

-------
 1.    INTRODUCTION;

       Function; This program creates two summary level
                 reports.

       Reports;  ANRP040R1 - Enforcement Action Summary
                 by Population - lists the number of enforce-
                 ment actions undertaken by population grouping,
                 action type and state.

                 ANRP040R2 - Enforcement Action Summary by Type
                 and Source - lists the number of enforcement
                 actions taken for each state categorized by type
                 of water source and type of action.
 2.    DATA USAGE:
       Input Files;
      Table:
                         File Name - PWS Inventory File
                         File I.D. - PWSIF
                         File Layout Reference - PWSIF
                         Record Name - Inventory

                         File Name - Enforcement Action
                         File I.D. - ENACF
                         File Layout Reference - ENACF
                         Record Name - Enforcement
                         File Name - Report Selection Card
                         File I.D. - EARSC
                         File Layout Reference - ANRSC
                         Record Name - Selection Card
                         Table Name - State Table
                         Table I.D. - STATAB
3.    REPORT OUTPUT;

          ANRP040R1 •
          ANRP040R2 •
Enforcement Action Summary by Population
Enforcement Action Summary by Type and Source
4.    TOTALING LEVELS;

      Accumulate totals by state, EPA region and for the entire
      nation as indicated on the report layouts.
                             -452-
                                  index systems inc

-------
5.    GENERAL PROCESSING NOTES;

      The PWS Inventory File is organized as a partitioned
      data set with one partition for each EPA region.  Each
      region must therefore be accessed as a separate file.
                          -453-                       index systems

-------
6.  LOGIC  CHART:   (Numbers reference  PROCESSING STEPS,  Section  7)
 (    START   )
 INITIALIZATION

   PROCESSING
 ACCUMULATE
 PWS TOTALS

 PROCESSING
                (1)
      :READ
   SELECTION
      CARD

   EARSC
                (2)
    READ PWS
  ' INVENTORY
     FILE

   PWS IF
   READ EN-
   ORCEMENT
    FILE

   ENACF
                  (4) & (5)
                       (6)
FILE
END OF STATE
& END OF RE-
GION
PROCESSING
\

END OF JOB
PROCESSING
                                            STOP
(4)
ES
>-*

END OF STATE
PROCESSING
(5)


END OF REGION
PROCESSING
                                                   -€>
                  END OF STATE
                  PROCESSING
                YES
              (3)
                           NEW
                        PWS -MATCH
                       INVENTORY
                           PWS
I                         READ PWS
                        INVENTORY

                         FILE
                         -454-

-------
7.    PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

      (1)   Zero all accumulators and open files.  Read in
           State Table.

      (2)   The selection card indicates which report is to be
           printed and whether community, non-community or all
           PWS's are to be included.  The community/non-community
           designation is PWS-TYPE, data element 020.

           On the second line of the report heading print one
           of the following descriptions to indicate what was
           present on the selection card:

                 COMMUNITY SYSTEMS
                 NON-COMMUNITY SYSTEMS
                 ALL PUBLIC WATER SYSTEMS

      (3)   To be valid, the input card must indicate report
           ANRP040R1 or ANRP040R2 and selection criterion C,
           N or A.  If the card is invalid, abort the run and
           print 'REPORT SELECTION INVALID1 on ANRP040R1.

           For each enforcement action record, analyze the
           MILESTONES array. NUM-MILESTONES  indicates how many
           milestones are present.  Each one represents one en-
           forcement action with the MILESTONE-CODE indicating
           the type of action.  Therefore each record may be
           added to several accumulators depending on the num-
           ber of milestones.

           For ANRP040R1:

                    Define an array of 77 accumulators for the
                    eleven population groups (not including
                    TOTAL)  and the seven action types.

                    Add to the accumulators as indicated by the
                    MILESTONE-CODE fields on the Enforcement
                    Action File and the POP-SERVED field on the
                    PWS Inventory file.

           For ANRP040R2:

                    Define  an  array of eleven accumulators rep-
                    resenting  the seven action types,  the three
                    water source types and one total accumulator
                    representing the total of the seven action
                    type accumulators.
                             -455-                     index systems inc

-------
              Add to the action type accumulators based
              on the MILESTONE-CODE fields on the Enforce-
              ment Action File.

              For each Enforcement Action record, add to
              the type of source accumulators based on
              SOURCE-CODE, data element 071 on the PWS
              Inventory File.

                     Check as  many SOURCE-CODE fields as
                     are indicated in SOURCES-NUM

                     If any are surface,  consider the
                     water supply surface only.   Otherwise
                     add to whatever accumulators apply
                     based on  SOURCE-CODE (thus  each en-
                     forcement action may be added to both
                     the ground and purchased accumulators).

(4)   For ANRP040R1:

              Print a line for each action type  which has
              any non-zero accumulators.   Also print the
              one-line state total as shown on the layout.

     For ANRP040R2:

              Print one line for each state as shown.

     Print the state name on the first line printed
     for each state.  Use STATAB table to retrieve
     the name.  If the state code is blank on one or
     more records, print the state name as 'INDIAN
     RESERVATION1.

     Add the state accumulators to region accumulators
     and zero out the state accumulators.

(5)   Print the region total line as shown on the report
     layouts. Add the region accumulators to grand total
     accumulators and zero out the region accumulators.
     Skip to a new page on the report (unless at end of
     file).

(6)   Print the grand totals as indicated as NATIONAL TOTALS
     on the  report layouts.  Close all files and end job.
                    -456-                        index systems inc

-------
                 EPA WATER SUPPLY DATA SYSTEM
                     PROGRAM SPECIFICATIONS
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
ANRP050 - Generate Violation Summary

ANNUAL REPORTING

This program generates two violation summary re-
ports, each reflecting violation occurrances for
community, non-community or all public water systems,
                          PWSIF
       VIKSC
    REPORT
    SELECTION
    CARD
                         PWS
                         INVENTORY

                         FILE
        ANRP050

       GENERATE
       VIOLATION
       SUMMARY
        VIOLATION
        SUMMARY BY
        POPULATION
                     VIOLATION SUM-
                     MARY BY TYPE
                     AND SOURCE
                               -457-
                                       index systems inc

-------
1.    INTRODUCTION;

      Function;  This program creates two summary  level  reports.

      Reports;   ANRP050R1 - Violation Summary by  Population -
                 lists the number of violations occurring by
                 population group for each contaminant category
                 and state.

                 ANRP050R2 - Violation Summary by  Type and Source
                 lists the number of violations occurring by type
                 of violation and type of source for each contam-
                 inant category and state


2.    DATA USAGE;

      Input Files:
                       File Name - PWS Inventory File
                       File I.D. - PWSIF
                       File Layout Reference - PWSIF
                       Record Name - Inventory

                       File Name - Report Selection Card
                       File I.D. - VIRSC
                       File Layout Reference - ANRSC
                       Record Name - Selection  Card

      Table:
                       Table Name - State Table
                       Table I.D. - STATAB
3.    REPORT OUTPUT:
           ANRP050R1 - Violation Summary by Population
           ANRP050R2 - Violation Summary by Type and Source


4.    TOTALING LEVELS;

      Accumulate totals by state, EPA region and for the entire
      nation as indicated on the report layouts.
5.    GENERAL PROCESSING NOTES;

      The PWS Inventory File is organized as a partitioned data
      set with one partition for each EPA region.  Each region
      must therefore be accessed as a separate file.
                             -458-                    index systems snc

-------
The violation accumulators to be printed are those for
the year-to-date figures, data elements 062, 063 and 064.
These three occur six times on each PWS Inventory record,
representing the six contaminant categories which should
be printed with the following descriptions:

     PHYSICAL
     INORGANIC CHEMICALS
     PEST & ORGANIC CHEMS
     MICROBIOLOGICAL
     RADIOACTIVE
     TREATMENT

For each report, accumulate all records for an entire state
before printing anything.
                     -459-

-------
6.  LOGIC CHART:  (Numbers reference PROCESSING STEPS, Section 7)
          START
                   (1)
      INITIALIZE

       PROCESSING
        READ SEL-
       'ECTION CARD/

         VIRSC
                  ,(2)
fREAD PWS   /
 INVENTORY  /
          A—>
 PWSIF    / END
        / OF
	/ FILE
     ACCUMULATE

     VIOLATIONS

     PROCESSING
                     (4) & (5)
                      END OF STATE

                       PROCESSING
                               (6)
END OF STATE
& END OF
REGION PRO-
CESSING


END OF RUN
PROCESSING
                                                          STOP
                                    (5)
END OF STATE
PROCESSING


END OF REGION
PROCESSING
                                                    -©
                           -€>
                          -460-

-------
7.    PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

      (1)   Zero all accumulators and open files.  Read in State
           Table.

      (2)   The selection card indicates which report is to be
           printed and whether community, non-community or all
           PWS's are to be included.  The community/non-community
           designation is PWS-TYPE, data element 020.

           Print the state name on the first line printed for
           each state.  Use STATAB table to retrieve the name.
           If the state code is blank on one or more records,
           print the state name as 'INDIAN RESERVATION'.

      (3)   For ANRP050R1:

                    Define an array of 66 accumulators for the
                    eleven population groups (not including
                    TOTAL)  and the six contaminant categories

                    For each PWS Inventory record, add to the
                    population accumulators based on POP-SERVED,
                    data element 035

                    All three year to date accumulators should
                    be added together for each contaminant group

           For ANRP050R2:

                    Define an array of 36 accumulators for the
                    three violation types, the three water
                    source types and the six contaminant cate-
                    gories

                    For each PWS Inventory record, add to the
                    violation type accumulators from the record
                    accumulators (the MCL accumulator is
                    VIO-CONTAM-YTD)

                    For each PWS Inventory record, add to the
                    type of source accumulators based on SOURCE-
                    CODE, data element 071

                           Check as many SOURCE-CODE fields as
                           are indicated in SOURCES-NUM

                           If any are surface,  consider the water
                           supply surface only.  Otherwise add to
                           whatever accumulators apply based on
                           SOURCE-CODE (thus the accumulators
                           may be added to both the ground and
                           purchased accumulators)
                                                       index systems inc
                            -461-                           '

-------
(4)   Print a line for each contaminant category which
     has any non-zero accumulators.   For ANRP050R1,  the
     TOTAL field is the totals of the eleven population
     categories.  For ANRP050R2,  the TOTAL field is  the
     total of the three types of  violation categories.

     Also print the one line state total as shown on
     the report layouts.   Add the state accumulators to
     region accumulators  and zero out the state accumu-
     lators.

     On the second line of the report heading print  one
     of the following descriptions to indicate what  was
     present on the selection card:

           COMMUNITY SYSTEMS
           NON-COMMUNITY  SYSTEMS
           ALL PUBLIC WATER SYSTEMS

     To be valid, the input card  must indicate report
     ANRP050R1 or ANRP050R2 and selection criterion
     C, N or A.   If the card is invalid, abort the run
     and print 'REPORT SELECTION  CARD INVALID1  on
     ANRP050R1.

(5)   Print the region total line  as  shown on the report
     layouts.   Add the region accumulators to grand  total
     accumulators and zero out the region accumulators.
     Skip to a new page on the report (unless at end of
     file).

(6)   Print the grand totals as indicated as NATIONAL
     TOTALS on the report layouts.   Close all files  and
     end job.
                      -462-                     index systems see

-------
                EPA WATER SUPPLY DATA SYSTEM
                    PROGRAM SPECIFICATION
PROGRAM:

SUBSYSTEM:

DESCRIPTION:
ANRP060 - Generate Variance and Exemption Summary

ANNUAL REPORTING

This program generates two variance and exemption
summary reports each reflecting variances"and ex-
emptions granted to community, non-community or
all public water systems.
                        PWSIF
       VERSC
    REPORT

    SELECTION

    CARD
                                                  VAEXF
                        PWS

                        INVENTORY

                        FILE
                                 VARIANCE &

                                 EXEMPTION

                                   FILE
           ANRP060

        GENERATE VARI-
        ANCE & EXEMP-
        TION SUMMARY
          ANRP060R1
        VARIANCE & EX-
        EMPTION SUMMARY

        BY POPULATIO
                         ANRP060R2
                      VARIANCE & EX-
                      EMPTION SUM-
                      MARY BY SOURCE
                       TYPE
                           -463-
                                        index systems ienc

-------
       INTRODUCTION;

       Function:  This program creates two summary level reports.

       Reports:   ANRP060R1 - Variance and Exemption Summary
                  by Population - lists the number of variances
                  and exemptions by population grouping, contami-
                  nant or treatment type and state

                  ANRP060R2 - Variance and Exemption Summary by
                  Source Type - lists the number of variances and
                  exemptions for each state categorized by type
                  of water source and contaminant or treatment type,
       DATA USAGE:
       Input Files;
       Tables:
                        File Name - PWS Inventory File
                        File I.D. - PWSIF
                        File Layout Reference - PWSIF
                        Record name - Inventory

                        File Name - Variance and Exemption File
                        File I.D. - VAEXF
                        File Layout Reference - VAEXF
                        Record Name - Variance/Exemption

                        File Name - Report Selection Card
                        File I.D. - VERSC
                        File Layout Reference - ANRSC
                        Record Name - Selection Card
                        Table Name
                        Table I.D.

                        Table Name
                        Table I.D.

                        Table Name
                        Table I.D.
State Table
STATAB

Contaminant Table
CONTAB

Treatment Table
TRETAB
3.     REPORT OUTPUT;

          ANRP060R1 - Variance and Exemption Summary by Population
          ANRP060R2 - Variance and Exemption Summary by Source Type
                             -464-
                   jndex systems inc

-------
4.     TOTALING LEVELS;

       Accumulate totals by state, EPA region and for the entire
       nation as indicated on the report layouts.
5.     GENERAL PROCESSING NOTES;

       The PWS Inventory File is organized as a partitioned data
       set with one partition for each EPA region.  Each region
       must therefore be accessed as a separate file.
                              -465-                     index systems iroe

-------
f   START   J
INITIALIZATION

  PROCESSING
              U,
     I
     READ
  SELECTION
     CARD
    VERSC
   READ  PWS
  INVENTORY
    PILE

  PWS IF
                (4)  &  (5)
    (6)
/READ VARI- /
'ANCE & EX- L—±
EMPTION /END
vaSE / FILE
END OP STATE
& END OF RE-
GION
PROCESSING
\

END OF JOB
PROCESSING
                                                 —rf   STOP    1
                                (5)
END OF STATE
- »-
?
END OF REGION
PROCESSING
                 END OF STATE

                 PROCESSING
-o
              YES
        NEW
     PWS MATCH
    INVENTORY
       MATCH
ACCUMULATE
PWS TOTALS

PROCESSING
      READ PWS
     INVENTORY
      FILE
                     -466-

-------
7.    PROCESSING STEPS;  (Numbers reference LOGIC CHART, Section 6)

      (1)   Zero al_ accumulators and open files.  Read in tables.

      (2)   The selection card indicates which report is to be
           printed and whether community, non-community or all
           PWS's are to be included.  The community/non-community
           designation is PWS-TYPE, data element 020.

           On the second line of the report heading print one of
           the following descriptions to indicate what was present
           on the selection card:

                 COMMUNITY SYSTEMS
                 NON-COMMUNITY SYSTEMS
                 ALL PUBLIC WATER SYSTEMS

           To be valid, the input card must indicate report
           ANPR060R1 or ANRP060R2 and selection criteria C, N or
           A.  If the card is invalid, abort the run and print
           'REPORT SELECTION CARD INVALID1  on ANRP060R1.

      (3)   Each Variance/Exemption record represents one variance
           or exemption.  VE-TYPE indicates V for variance and
           E for exemption.   Each record will have either a
           CONTAMINANT-ID,  or,  if this field is blank,  the
           TREATMENT field will be filled.

           For ANRP060R1:

                    Define two  arrays of eleven accumulators each
                    (one for variances and  one for exemptions)  for
                    each unique CONTAMINANT-ID or TREATMENT which
                    is found on the Variance and Exemption File.

                    Add to the  accumulators for each variance and
                    exemption record read by checking the POP-
                    SERVED field on the PWS Inventory File to
                    determine the population category.

           For ANRP060R2:

                    Define  an array of eight accumulators for
                    each unique CONTAMINANT-ID or TREATMENT which
                    is found on the Variance and Exemption file.
                    These  represent the three water source types
                    and the  total for variances and for  exemptions.
                          -467-                       index systems ine

-------
              For each Variance and Exemption record,  add
              to the type of source accumulators based on
              SOURCE-CODE, data element 071 on the PWS
              inventory File.

                     Check as  many SOURCE-CODE fields  as
                     are indicated in SOURCES-NUM.

                     If any are surface,  consider the  water
                     supply surface only.   Otherwise add to
                     whatever  accumulators apply based on
                     SOURCE-CODE (thus each variance or
                     exemption may be added to both the
                     ground and purchased accumulators).

                     Add to the "total" accumulators only
                     once for  each variance or exemption
                     based on  VE-TYPE.  Each total may there-
                     fore be less  than the arithmetical
                     total of  the  three source categories.
(4)   For  ANRP060R1:
              Print three  lines  for  each contaminant or
              treatment which has  any  non-zero  accumulators;
              one  for  variances, one for exemptions  and
              one  for  the  total.   Use  CONTAB  and  TRETAB
              to retrieve  the descriptions  to be  printed in
              the  contaminant/treatment  field.  Also print
              the  one  line state total as shown on the
              layout.

    For ANRP060R2:

              Print one line  for each  contaminant or
              treatment which has  any  non-zero  accumulators.
              Use  CONTAB and  TRETAB  to retrieve the  des-
              criptions to be printed  in the  contaminant/
              treatment field.  Also print  the  one line
              state total  as  shown on  the layout.

    iPrint the state name on the first line printed for
     each state.   Use STATAB table to  retrieve the name.
     If the state code is blank on one or more records,
     print the state name as  'INDIAN RESERVATION'.

     Add the state accumulators to region accumulators
     and zero out the state accumulators.
                                                index systems inc
                     -468-                            y

-------
(5)   Print the region total line as shown on the report
     layouts.   Add the region accumulators to grand total
     accumulators and zero out the region accumulators.
     Skip to a new page on the report (unless at end of
     file).

(6)   Print the grand totals as indicated as NATIONAL
     TOTALS on the report layouts.  Close all files and
     end job.
                                                index systems iroe

-------