SEPA
            United States
            Environmental Protection
            Agency
            Municipal Environmental Research
            Laboratory
            Cincinnati OH 45268
EPA-600/2-80-012b
July 1980
            Research and Development
Development and
Application of a
Water Supply Cost
Analysis System
           Volume II

-------
                RESEARCH REPORTING SERIES

Research reports of the Office of Research and Development, U.S Environmental
Protection Agency, have been grouped into nine series These nine broad cate-
gories were established to facilitate further development and application of en-
vironmental technology Elimination of traditional grouping was consciously
planned to foster technology transfer and a maximum interface in related fields.
The nine  series are

      1   Environmental Health  Effects Research
      2   Environmental Protection Technology
      3   Ecological Research
      4   Environmental Monitoring
      5,  Socioeconomic Environmental Studies
      6.  Scientific and Technical Assessment Reports (STAR)
      7   Interagency Energy-Environment Research and Development
      8.  "Special" Reports
      9   Miscellaneous Reports

This report has been assigned  to the  ENVIRONMENTAL PROTECTION TECH-
NOLOGY series. This series describes research  performed to develop and dem-
onstrate instrumentation, equipment, and methodology to repair or prevent en-
vironmental degradation from point and non-point sources of pollution. This work
provides the new or improved technology required for the controf and treatment
of pollution sources to  meet environmental quality standards.
This document is available to the public through the National Technical Informa-
tion Service, Springfield, Virginia  22161.

-------
                                          EPA-600/2-80-012b
                                          July 1980
     DEVELOPMENT AND APPLICATION OF A

     WATER SUPPLY COST ANALYSIS SYSTEM

                 Volume II
                    by

             James I. Gillean
               Rex D. Osborn
          William L. Britton, Jr.
             ACT Systems, Inc.
        Winter Park, Florida  32789

              Robert M. Clark
Municipal Environmental Research Laboratory
          Cincinnati, Ohio  45268
          Contract No. 68-03-2506
              Project Officer

              Robert M. Clark
     Drinking Water Research Division
Municipal Environmental Research Laboratory
          Cincinnati, Ohio  45268
MUNICIPAL ENVIRONMENTAL RESEARCH LABORATORY
    OFFICE OF RESEARCH AND DEVELOPMENT
   U.S. ENVIRONMENTAL PROTECTION AGENCY
          CINCINNATI, OHIO  45268

-------
                                DISCLAIMER
     This report has been reviewed by the Municipal Environmental Research
Laboratory, U.S. Environmental Protection Agency, and approved for
publication.  Approval does not signify that the contents necessarily
reflect the views and policies of the U.S. Environmental Protection Agency;
nor does mention of trade names or commercial products constitute
endorsement or recommendation for use.
                                     ii

-------
                                 FOREWORD
     The Environmental Protection Agency was created because  the  public  and
the federal government were increasingly concerned about  the  dangers  of
pollution on the health and welfare of the American people.   Noxious  air,
foul water, and spoiled land are tragic testimonies to  the deterioration of
our natural environment.  The complexity of that environment  and  the  inter-
play among its components require a concentrated and integrated attack on
the problem.

     Research and development is that first step in problem solution, and
involves defining the problem, measuring its impact, and  searching  for
solutions.  The Municipal Environmental Research Laboratory develops  new
and improved technology and systems:  1) to prevent, treat, and manage
wastewater, solid and hazardous waste, and pollutant discharges from
municipal and community sources; 2) to preserve and treat public  drinking
water supplies; and 3) to minimize the adverse economic,  social,  health,
and aesthetic effects of pollution.  This publication is  a product  of that
research and is a most vital communications link between  the  researcher  and
the user community.

     The Safe Drinking Water Act of 1974 establishes primary  health-
related standards and secondary aesthetic-related but nonenforceable
guidelines for drinking water supplies.  These standards  will bring about a
fundamental examination of the way water is handled before it is  delivered
to the consumer.  Many of these changes will have an economic impact  on  the
affected water utilities.  This report describes a cost analysis  system
that was developed to analyze a water utility's operating and maintenance
cost data.  The cost analysis system provides the manager and other
interested parties with an insight into a water utility's performance, and
defines, by unique cost centers, those areas where costs  can  be monitored.

      Volume I of this report outlines the background,  development, and
application of the cost analysis system.  Volume II provides  the  computer
program documentation developed to operate the system.
                                 Francis T. Mayo
                                 Director
                                 Municipal Environmental Research  Laboratory
                                     iii

-------
                                 ABSTRACT
     The Environmental Protection Agency  is  concerned with the Safe
Drinking Water Act's  economic  impact on the  water  supply  industry.
The Environmental Protection Agency initiated  an ongoing  program to gather
and examine cost data from utilities across  the country on which to
establish a data base for water  supply cost.

     Experience has shown that although most utilities maintain an
accounting system, the data provided by the  systems  are maintained  in
different formats and are therefore incompatible among utilities.   Few
systems provide continuous and adequate cost information  directly.

     As a result of this effort, the Environmental Protection Agency and
many utility managers agree that there is a  need for a cost analysis
system having features especially applicable to the  water supply industry.
Based on the perceived need and  because of the Act's emphasis on
economics, the Drinking Water Research Division initiated a research
program to develop standardized  techniques for analyzing  costs within a
utility accounting framework.  This program  is described  in a two-volume
report.  Volume I describes the  development  and functions of this  system
and its application to Kenton County, Kentucky, Water District No.  1.

     Volume II contains the programming documentation and operating
instructions for the cost analysis system.

     This report is submitted by ACT Systems,  Inc.,  in partial fulfillment
of Contract No. 68-03-2506, Section II, under  the  sponsorship of the U.S.
Environmental Protection Agency.
                                      iv

-------
                              CONTENTS
Foreword	ill
Abstract	    iv
Figures  	    v
Acknowledgments  	    vi

        1.  Introduction 	    1

        2.  Cost Analysis System Computer Operations 	    3
                System Flow Diagrams 	    3
                Computer Program Directory 	    3
                System Operating Instructions  	    8
                Routine Operating Sequence 	    41

        3.  Data Format	    43
                Keypunching Source Data  	    43
                System File Layout	    66

        4.  Program Flow Diagrams  	 .....    77

        5.  Program Listing	124
                              FIGURES

Number                                                           Page

  1    Cost analysis system flow diagram 	    4

  2    Cost data flow through the cost analysis system	    7

-------
                             ACKNOWLEDGMENTS
     The staff of Kenton County, Kentucky, Water District No. 1
participated in the development and implementation of the cost analysis
system described in this report.  The cooperation and active support of
Mr. Victor C. Fender, General Manager, and Mr. Malvern Connett, Office
Manager, are gratefully acknowledged.
                                  vi

-------
                                SECTION  1

                                INTRODUCTION

     Volume I describes the water  supply cost  analysis  system in detail
from concept to final report generation.  Volume  II  explains  the computer
operations and is intended to be used along  with  Volume  I.

     From its inception,  the water supply cost analysis  system was
designed to have broad applications  to  the water  supply  industry while
maintaining the capability of performing detailed checks of  the input data
and handling that data to meet  the specific  needs of a  utility.   This adds
up to the requirement that the  cost  analysis system  be  both  general and
specific at the same time.  In  addition, it  was recognized  that the
program must have the built-in  capability to interface  with  many different
utilities each with a different operating configuration  and  financial
system.

     Based on experience  in examining the financial  records  of over 50
water utilities, it was also recognized  that most utilities  do not
identify cost to the level required  by  the cost analysis system, and it is
difficult to attempt a rapid change  in  the total  accounting  system of a
utility during the implementation  of a  cost  analysis module.   Therefore,
it was necessary to design, within the  cost  analysis system,  flexible
inputs and the capability of allocating  costs  when they  are  not
specifically identified.

     To accomplish the objectives  of the cost  analysis  system, all cost
input information must come from the utility's financial documentation.
Since this information will vary from utility  to  utility, a  concept was
established for developing interface programs  unique to  each utility.
These interface programs will accept the information in  a specific utility
format and convert it to a standardized  format.   However, the cost
analysis system program cannot  be  entirely standard  because  each utility
maintains a different chart of  accounts  and  cost  centers.   For this
reason, it is necessary to adjust  the standard program  to contain the
chart of accounts and the cost  centers  on a  utility-by-utility basis.
Once this is accomplished, the  program will  handle all  utilities in a
standard mode while producing reports compatible  with each  utility's
particular needs.

     As described in Volume I,  from  a formatting  standpoint,  the principal
variation between reports of different  utilities  will be in the Level IV
and II reports which will reflect  specific utility cost  centers and chart
of accounts.   Level I and III reports will appear exactly the same in

-------
format but will be produced with each utility's individual  data.

     The following sections of this report provide the details  of  the  cost
analysis operating system.

-------
                                SECTION 2

                  COST ANALYSIS SYSTEM COMPUTER OPERATIONS
SYSTEM FLOW DIAGRAMS

     Figure 1 (a,b,c) represents the overall routine monthly  operating  flow
diagram of the cost analysis system.  In general, the  cost  analysis  system
takes the source input data, verifies it, allocates or  assigns  it  to  the
proper cost centers, and produces the reports.  There  are actually fourteen
separate modules of programs performing the necessary  functions  of the
analysis and six modules performing the interface functions.  The  inter-
face programs receive the input data in various formats, edit the  data  for
validity, and condition the data for entry into the cost analysis  system.
It is from these interface programs that reports are generated  to  link  the
automated cost analysis system with the Kenton County  Water District's
financial reporting system.  The interface edit programs perform such
functions as verifying the validity of each account number  to assure  that  it
is appropriate, monitoring each cost for correct designation  to  a  cost
center, and allocating costs not assigned to proper cost centers.  These
cost elements are stored in a large matrix from which  each  element is
withdrawn and utilized in the various reports.  Figure  2 shows  the types of
information input to the system, the flow, and application  of that
information within the system.  In addition, the figure includes a brief
description of the types of reports generated.

COMPUTER PROGRAM DIRECTORY

     The purpose of this directory is to record the location  of  each  program
within the Operating Instructions, Flow Diagrams, and  Program Listings
Sections of this report so that each program may be analyzed  individually  in
its entirety.

     The programs listed are in the order used to create the  system  and are
not necessarily in their routine operating order.  That order is recorded  in
the Routine Operating Sequence part of Section 2.

-------
<^2
INITI/
'AYROU
FILE
1
1
I

u.
—•^
>
\L
C
— -^
•~>
\L
CE
\CT
^
~>
KL
>
a.
;
>
LL
F-^





— *1


	 *~
--



1

!



j '
1

c
R
BUMS
HUM



I
i
UPPLE
ACCOUM
' REP
1
JST AC
'.PORT
DATA
iER WT
EDIT


-, t-^

1
-


ENTAL
TING
RTS

JOUNTI
PROGRA
3Y ACCJ
HUN E/
FILE
Jt
1



1
i

1
1
1
G
t
HJNT
CH



-



1
UPPLET
ACCOUN
REI
|



ENTAL
TING
URT
- - --
-


---
—
PAAC
MERGES EDIT
--FILES AND SUMS--
DATA BY
ACCOUNT NUMBER

1




1


1







1
I
T

^- —


—
j
j -

1
-
D


—





_ .

... _.
- --


Figure l(a).  Cost analysis system routing operation flow diagram.

-------
INDIRECT

 CHARGES

   UNr

RFSOLVED
                 COST1ALLOCATION
                      PART;3
                   "WBASCAPV- --

                     1
        Figure  l(b)

-------
Figure l(c)

-------
 DESCRIPTION  Of  MONTHLY
   lUIST  DATA  SOURCES
         oescumoN OF COST
           T»ATA BANK WITHIN
         Cost  Analysis  Svstem
      DESCRIPTION OF REPORTS GENERATED BY Cost  Analysis  System
      TOtAL  COSTS
  INCUKKril FOR  PERIOD
        SOUiTFS
    OF  COST  DATA
\~{ I'AVHULI.  I IKE  CAMI>S
                                  PAYROLL COSTS
    RHJIMSiriON  MOM
       STOCK  FORMS
         PAYMTITT
  AUTHORIZATION  FORM
        COST OF MATERIALS USED
              FROM STOCK
                                   DEPRECIATION
        PURCHASES (•ROM OUTS IDC
         SOURCES NOT TO STOCK
                                 1MTCRFST PAID OR
                                     INCURRED
   M RVICF. CUNTHACT
          FORM
  MlbC. TRANSACTIONS
  OK AnJUSTMENT  FORM
n;
m
            ABJUSTHKNTS  OR
        COKHECT1ONS OF EMRORS
                                  COSTS TO BE
                                  CAPITAI IZFD
                                  TOTAL COSTS
                               TO U DISTI1BUTED
                                  AID REPORTED
                                        L
                               n
                             COSTS COVERED BY OTHt.R
                             REVENUE THAN BILLINGS
                               TO WATER CUSTOMERS
  COSTS KEPORTFn BY COST CENTERS

            LEVEL  IV:
     DETAIL  BY NAHUC ACCOUNT

          LEVEL 111-
  SI'MMARt  BY  i,TD COST CATEGORY

            LEVEL  1:
 SUMMARY BY  TOTAL  COST AND UNIT
             COST
 COSTS REPORTED BY THE COST OF
    REVENUE PRODUCING WATER

WATER SUPPLY DATA ANALYSIS  REPORT
   FUNCTIONAL COSTS AJID TOTAL
   COST BY PRESSUKE ZONE
   EXPRESSED AS A TOTAL AND AS A
   UNIT COST PER MC REVENUE PRO-
   DUCING WATER
                                                                                                   COSTS REPORTED BY PERFORMANCE
      TO SOME STANIMHLJ

          LEVEL 11 :
ACTUAL TO BUDC.ET BY NARUC
  ACCOUNT;
All UAL Til PRIOK YEAR BY STAN-
  DARD COST UAIEUOKY;

          LEVtL 1:
UNIT COSTS COMI'AKED TO PRIOR
  MONTH AND PR ION YFAK,
UNIT COSTS BY FUNCTION COM-
  PARED TO TOTAL UNIT  COST;
SUMMARY TOTALS OF OIIIKH  HI-
  PORTb;
SUMMARY TOTALS OF COSTS  BY
  FUNCTION, BY MONTH,  ANU UY
  YEAR                      "*
          Figure 2.   Cost  data  flow through the cost  analysis  system.

-------
   PROGRAM
  SECTION 2
  OPERATING
INSTRUCTIONS
   Page No
  SECTION 4
FLOW DIAGRAMS

   Page No.
   SECTION 5
PROGRAM LISTINGS

     Page No.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
WUASBCCT
WUASBSAT
WUASBFAT
WUASBCRF
WUASBCMF
WUASBDPT
WUASBCDP
WUASSCER
WUASMTER
WUASPAER
WUASRSER
WUASPRER
WUASCARP
WUASPAAC
WUASCAP1
WUASCAP2
WUASCAP3
WUASUZFI
WUASCUPD
WUASPLV4
WUASPLV3
WUASPLV2
WUASPLV1
WUASPWAR
WUASBUCM
WUASUCAD
9
10
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
29
30
32
33
34
36
37
38
78
79
80
82
83
85
86
88
90
92
94
96
98
99
101
103
104
106
108
109
114
115
116
119
120
121
125
130
134
140
148
157
161
167
174
182
191
200
209
214
219
227
231
242
245
249
284
292
311
318
331
337
SYSTEM OPERATING INSTRUCTIONS
     The purpose of this part of the report is to provide a  general
description of each program and give specific keypunching and  system
operating instructions.  All routine listings should normally  be  printed
on one-part paper; however, the number of report copies  should be deter-
mined by the utility's requirements.

     Operating instructions for each program begin with  an objective or
definition, and then the instructions are broken down  into keypunching
and operation instructions.

     By following these instructions, the cost analysis  system can be
operated successfully.  If a variation in procedure is encountered,  contact
the System Programmer.

-------
                                 "WUASBCCT"









OBJECTIVE:    THIS PROGRAM CREATES A FILE THAT  CONTAINS  ALL THE VALID




              COST CENTERS AND THEIR DESCRIPTIONS  USED  IN  THE  COST




              ANALYSIS SYSTEM.
(A) KEY PUNCH:
           OPERATING INSTRUCTIONS




THE FOLLOWING INPUT DATA ARE REQUIRED:  (see section 3)




(1).  ONE DATE-TITLE CARD.




(2).  DATA USED TO BUILD THE COST CENTER TABLE FILE.
(B) OPERATION:
PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




(1).  PLACE THE DATE-TITLE CARD FOLLOWED BY THE COST




      CENTERS DATA BEHIND THE "//SYSIN DD *" CARD  IN THE




      "WUASBCCT" JCL DECK.




(2).  PUT THE DECK IN THE CARD READER AND READ THE DECK.




(3).  OUTPUT WILL BE ON ONE-PART PAPER LISTING THE DATA




      FILE.




(4).  THIS PROGRAM MAY BE RUN AS MANY TIMES AS REQUIRED.

-------
                                  "WUASBSAT"










OBJECTIVE:    THIS PROGRAM IS USED TO CREATE SPECIAL TABLE  FILES  THAT  ARE




              USED THROUGHOUT THE COST ANALYSIS SYSTEM TO VERIFY  OR




              REFERENCE CERTAIN DATA.  CURRENTLY, THERE ARE THREE FILES




              THAT ARE CREATED BY THIS PROGRAM.




                  (1). BSAT.CCC     COST CENTER CONVERSION:




                                   USED TO CONVERT TWO-DIGIT  COST CENTERS  TO




                                   FOUR-DIGIT COST CENTERS.




                  (2). BSAT.CCT     COST CATEGORY TABLE:




                                   USED TO VERIFY THE EXISTENCE OF A VALID




                                   COST CATEGORY AND THE NAME OF  THE




                                   CATEGORY.




                  (3). BSAT.FAT     FUND TITLE TABLE:




                                   USED TO VERIFY AND PROVIDE VALID




                                   FUND TITLES REQUIRED IN  THE (CMF)




                                   BUILDING PROGRAM WUASBCMF.
(A)  KEY PUNCH:
           OPERATING INSTRUCTIONS




THE FOLLOWING INPUT DATA ARE REQUIRED:   (see  section  3)




(1).   ONE DATE-TITLE CARD.




(2).   DATA USED TO BUILD THE SPECIFIC FILE.
                                     10

-------
                              "WUASBSAT" (continued)









(B) OPERATION:   PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                (1).   PLACE  THE DATE-TITLE CARD FOLLOWED BY THE




                       SPECIFIC  FILE DATA BEHIND THE "//SYSIN DD *" CARD




                       IN THE "WUASBSAT" JCL DECK.




                (2).   PUT THE DECK IN THE CARD READER AND READ THE DECK.




                (3).   OUTPUT WILL BE ON ONE-PART PAPER LISTING THE FILE.




                (4).   THIS PROGRAM MAY BE RUN AS MANY TIMES AS REQUIRED.
                                      11

-------
                                 "WUASBFAT"









OBJECTIVE:    THIS PROGRAM CREATES A FILE THAT  IS  USED  IN  BUILDING THE COST




              MATRIX FILE AND THE CROSS REFERENCE  FILE.  IN  ADDITION,  IT IS




              USED TO VERIFY THE EXISTENCE OF VALID ACCOUNT  NUMBERS IN THE




              ANALYSIS SYSTEM.  THIS FILE CONTAINS THE  ACCOUNT NAME IN TWO




              (2) 20-CHARACTER FIELDS.
(A) KEY PUNCH:
           OPERATING INSTRUCTIONS




THE FOLLOWING INPUT DATA ARE REQUIRED:  (see section  3)




(1).  ONE DATE-TITLE CARD.




(2).  DATA USED TO BUILD THE FINANCIAL ACCOUNT TABLE




      FILE.
(B) OPERATION:
PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




(1).  PLACE THE DATE-TITLE CARD FOLLOWED BY THE FINANCIAL




      DATA BEHIND THE "//SYSIN DD *" CARD IN THE "WUASBFAT"




      JCL DECK.




(2).  PUT THE DECK IN THE CARD READER AND READ THE DECK.




(3).  OUTPUT WILL BE ON ONE-PART PAPER LISTING THE FINANCIAL




      ACCOUNT TABLE FILE.




(4).  THIS PROGRAM MAY BE RUN AS MANY TIMES AS REQUIRED.
                                     12

-------
                                  "WUASBCRF"









OBJECTIVE:    THIS PROGRAM CREATES A  FILE  THAT  IS  USED TO ALLOCATE




              COSTS TO COST CENTERS.   IN ADDITION,  THIS FILE IS USED BY




              THE "WUASBCMF" PROGRAM  TO CREATE  THE COST MATRIX FILE.
(A) KEY PUNCH:
           OPERATING INSTRUCTIONS




THE FOLLOWING INPUT DATA ARE REQUIRED:  (see section  3)




(1).  ONE DATE-TITLE CARD.




(2).  CROSS REFERENCE DATA NEEDED TO CREATE THE CROSS




      REFERENCE FILE (CRF).
(B) OPERATION:
PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




(1).  PLACE THE DATE-TITLE CARD FOLLOWED BY THE CRF DATA




      BEHIND THE "//SYSIN DD *" CARD IN THE "WUASBCRF"




      JCL DECK.




(2).  PUT THE DECK IN THE CARD READER AND READ THE DECK.




(3).  OUTPUT WILL BE ON ONE-PART PAPER LISTING THE CROSS




      REFERENCE FILE.




(4).  THIS PROGRAM CAN BE RUN AS MANY TIMES AS REQUIRED BUT




      SHOULD ONLY HAVE TO BE RERUN WHEN NEW ACCOUNT NUMBERS




      AND/OR NEW COST CENTERS ARE ADDED TO THE COST




      ANALYSIS SYSTEM.
                                       13

-------
                                "WUASBCMF"










OBJECTIVE:  THIS PROGRAM CREATES THE COST MATRIX FILE.  GENERALLY,  THIS




            PROGRAM SHOULD BE USED ONLY ONCE TO INITIATE THE  FILE.




            HOWEVER, IF THE FILE IS DELETED, THE ORIGINAL FILE  CAN  BE  RE-




            CREATED AND UPDATED FROM THE MOST CURRENT BACKUP  TAPE USING




            PROGRAM "WUASUCAD".









                          OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED:  (see  section 3)




                (1).  DATE-TITLE CARD.




                (2).  REQUIRES NO DATA CARD INPUT.









(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                (1).  NOTE:  MAKE SURE THE PROGRAM "WUASBCRF"  IS




                      SUCCESSFULLY COMPLETED PRIOR TO RUNNING THIS JOB




                      BECAUSE THE FILE  BUILT IN THAT PROGRAM  IS USED TO




                      CREATE THIS FILE.




                (2).   PLACE  THE DATE-TITLE CARD BEHIND THE "//SYSIN DD *"




                      CARD  IN THE "WUASBCMF" JCL DECK.




                (3).   PUT THE DECK IN THE CARD READER AND READ THE DECK.




                (4).   OUTPUT WILL BE ON ONE-PART PAPER.




                (5).   LISTING WILL SHOW WHAT THE FILE CONTAINS.




                (6).   THIS PROGRAM CAN  BE RUN AS MANY TIMES AS REQUIRED.
                                    14

-------
                                   "WUASBDPT"










OBJECTIVE:      THIS PROGRAM IS USED TO CREATE A TABLE  FILE  OF  THE  YEARLY




                DEPRECIATION AMOUNTS ASSIGNED TO VARIOUS  COST CENTERS.   THE




                TABLE FILE WILL THEN BE USED IN THE PROGRAM  "WUASBCDP"  WHICH




                CONVERTS THE YEARLY DEPRECIATION AMOUNTS  INTO A CURRENT




                DEPRECIATION AMOUNT.










                           OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED:  (see Section  3)




                   (1).  ONE DATE-TITLE CARD.




                   (2).  DATA FOR BUILDING THE DEPRECIATION  TABLE.










(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                   (1).  PLACE THE DATE-TITLE CARD FOLLOWED  BY  THE




                         DEPRECIATION AMOUNTS BEHIND THE  "//SYSIN DD  *" CARD




                         IN THE "WUASBDPT" JCL DECK.




                   (2).  PUT THE DECK IN THE CARD READER  AND READ THE DECK.




                   (3).  OUTPUT WILL BE ON ONE-PART PAPER LISTING THE




                         THE DEPRECIATION AMOUNTS.




                   (4).  THIS PROGRAM MAY BE RUN AS MANY  TIMES  AS REQUIRED




                         BUT IS USUALLY RUN ONCE OR UNTIL A  COST CENTER




                         DEPRECIATION VALUE CHANGES.
                                      15

-------
                                    "WUASBCDP"
OBJECTIVE:   THE PURPOSE OF THIS PROGRAM  IS TO READ  THE  FILE  WHICH




             CONTAINS THE YEARLY DEPRECIATION COSTS  BY COST CENTERS




             THEN CALCULATE THE CURRENT PERIOD DEPRECIATION VALUES




             (MONTHLY, QUARTERLY, ETC.).









                            OPERATING INSTRUCTIONS




(A) KEY PUNCH:   THE FOLLOWING INPUT DATA ARE REQUIRED:   (see  Section  3)




                (1).  ONE SPECIAL DATE-TITLE CARD.




                (2).  REQUIRES NO DATA CARD INPUT.
(B)  OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                (1).   PLACE DATE-TITLE CARD BEHIND THE "//SYSIN DD *"




                      CARD IN THE "WUASBCDP" JCL DECK.




                (2).   PUT DECK IN CARD READER AND READ THE DECK.




                (3).   OUTPUT WILL BE ON ONE-PART PAPER.




                (4).   THIS PROGRAM MAY BE RUN AS MANY TIMES AS




                      REQUIRED.
                                     16

-------
                                   "WUASSCER"










OBJECTIVE:   THE PURPOSE OF THIS PROGRAM  IS TO READ AND  EDIT  THE




             SERVICE CONTRACT SOURCE DATA CARDS.   THIS PROGRAM BUILDS




             A DATA FILE USED IN THE COST ANALYSIS SYSTEM.










                            OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA  ARE REQUIRED:   (see  Section 3)




                (1).  ONE DATE-TITLE CARD.




                (2).  DATA FROM SERVICE CONTRACT  SOURCE  DOCUMENTS  SHOULD




                      BE PUNCHED AND VERIFIED.










(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS  AS FOLLOWS:




                (1).  PLACE DATE-TITLE CARD FOLLOWED  BY  THE SERVICE




                      CONTRACT DATA BEHIND THE "//SYSIN  DD *"  CARD IN  THE




                      "WUASSCER" JCL DECK.




                (2).  PUT THE DECK IN THE CARD READER AND READ THE DECK.




                (3).  OUTPUT WILL BE ON ONE-PART  PAPER.




                (4).  UNDER THE COMMENT COLUMN OF THE LISTING, DESCRIPTIVE




                      COMMENTS WILL BE PRINTED CONCERNING ERROR(S) FOUND  IN




                      THE DATA.




                (5).  IF ANY ERRORS WERE  DETECTED, CORRECT THEM AND  GO BACK




                      TO (1).




                (6).  THIS PROGRAM MAY BE RUN AS  MANY TIMES AS REQUIRED.
                                      17

-------
                                   "WUASMTER"
OBJECTIVE:   THE PURPOSE OF THIS PROGRAM IS TO READ AND EDIT  THE




             MISCELLANEOUS TRANSACTIONS SOURCE DATA CARDS.  THIS




             PROGRAM BUILDS A DATA FILE USED IN THE COST ANALYSIS




             SYSTEM.









                            OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED:  (see  Section  3)




                (1).  ONE DATE-TITLE CARD.




                (2).  DATA FROM MISCELLANEOUS TRANSACTIONS SOURCE DOCUMENTS




                      SHOULD BE PUNCHED AND VERIFIED.










(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                (1).  PLACE DATE-TITLE CARD FOLLOWED BY THE MISCELLANEOUS




                      TRANSACTIONS DATA BEHIND THE "//SYSIN DD *" CARD IN




                      THE "WUASMTER" JCL DECK.




                (2).  PUT THE DECK IN THE CARD READER AND READ THE DECK.




                (3).  OUTPUT WILL BE ON ONE-PART PAPER.




                (4).  UNDER THE COMMENT COLUMN OF THE LISTING, DESCRIPTIVE




                      COMMENTS WILL BE PRINTED CONCERNING ERROR(S) FOUND IN




                      THE DATA.




                (5).   IF  ANY ERRORS WERE DETECTED, CORRECT THEM AND GO BACK




                      TO  (1).




                (6).   THIS  PROGRAM MAY BE RUN AS MANY TIMES AS REQUIRED.








                                     18

-------
                                   "WUASPAER"










OBJECTIVE:   THE PURPOSE OF THIS PROGRAM IS TO READ AND  EDIT  THE  PAYMENT




             AUTHORIZATIONS SOURCE DATA CARDS.  THIS PROGRAM  BUILDS  A




             DATA FILE USED IN THE COST ANALYSIS  SYSTEM.










                            OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED:   (see  Section 3)




                (1).  ONE DATE-TITLE CARD.




                (2).  DATA FROM PAYMENT AUTHORIZATION  SOURCE  DOCUMENTS




                      SHOULD BE PUNCHED AND VERIFIED.










(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS  AS FOLLOWS:




                (1).  PLACE DATE-TITLE CARD FOLLOWED BY  THE PAYMENT




                      AUTHORIZATION DATA BEHIND THE "//SYSIN  DD *" CARD  IN




                      THE "WUASPAER" JCL DECK.




                (2).  PUT THE DECK IN THE  CARD READER  AND  READ THE DECK.




                (3).  OUTPUT WILL BE ON ONE-PART  PAPER.




                (4).  UNDER THE COMMENT COLUMN OF THE  LISTING, DESCRIPTIVE




                      COMMENTS WILL BE PRINTED CONCERNING  ERROR(S) FOUND IN




                      THE DATA.




                (5).  IF ANY ERROR(S) WERE DETECTED, CORRECT  THEM AND GO BACK




                      TO (1).




                (6).  THIS PROGRAM MAY BE  RUN AS  MANY  TIMES AS REQUIRED.
                                      19

-------
                               "WUASRSER"
OBJECTIVE:    THE PURPOSE OF THIS PROGRAM IS TO READ AND EDIT  THE




              REQUISITION FROM STOCK SOURCE DATA CARDS.  THIS  PROGRAM




              BUILDS A DATA FILE USED IN THE COST ANALYSIS  SYSTEM.
(A) KEY PUNCH:
            OPERATING  INSTRUCTIONS




 THE  FOLLOWING  INPUT DATA ARE  REQUIRED:  (see Section 3)




 (1).  ONE DATE-TITLE  CARD.




 (2).  DATA  FROM  STOCK REQUISITION  SOURCE DOCUMENTS




      SHOULD BE  PUNCHED  AND VERIFIED.
(B)  OPERATION:
PROGRAM OPERATION/INFORMATION  IS  AS  FOLLOWS:




(1).  PLACE DATE-TITLE  CARD  FOLLOWED BY THE REQUISITION




      FROM STOCK DATA BEHIND THE  "//SYSIN DD *"  CARD IN




      THE "WUASPRSER" JCL DECK.




(2).  PUT THE DECK IN THE CARD READER AND READ THE DECK.




(3).  OUTPUT WILL BE ON ONE-PART  PAPER.




(4).  UNDER THE COMMENT COLUMN OF THE LISTING, DESCRIPTIVE




      COMMENTS WILL BE PRINTED CONCERNING ERROR(S) FOUND




      IN THE DATA.




(5).  IF ANY ERROR(S) WERE DETECTED,  CORRECT  THEM  AND GO




      BACK TO (1).




(6).  THIS PROGRAM MAY BE RUN AS  MANY TIMES AS REQUIRED.
                                     20

-------
                                    "WUASPRER"
OBJECTIVE:    THE PURPOSE OF THIS PROGRAM  IS  TO  READ  AND  EDIT  THE PAYROLL




              SOURCE DATA CARDS.  THIS  PROGRAM BUILDS A DATA FILE USED




              IN THE COST ANALYSIS  SYSTEM.
(A) KEY PUNCH:
           OPERATING INSTRUCTIONS




THE FOLLOWING INPUT DATA ARE REQUIRED: (see Section  3)




(1).  ONE DATE-TITLE CARD.




(2).  DATA FROM PAYROLL SOURCE DOCUMENTS SHOULD BE




      PUNCHED AND VERIFIED.
(B) OPERATION:
PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




(1).  PLACE DATE-TITLE CARD FOLLOWED BY THE PAYROLL DATA




      BEHIND THE "//SYSIN DD *" CARD IN THE "WUASPRER"




      JCL DECK.




(2).  PUT THE DECK IN THE CARD READER AND READ  THE DECK.




(3).  OUTPUT WILL BE ON ONE-PART PAPER.




(4).  UNDER THE COMMENT COLUMN OF THE LISTING,  DESCRIPTIVE




      COMMENTS WILL BE PRINTED CONCERNING ERROR(S) FOUND




      IN THE DATA.




(5).  IF ANY ERROR(S) WERE DETECTED, CORRECT  THEM AND GO




      BACK TO (1).




(6).  THIS PROGRAM MAY BE RUN AS MANY TIMES AS  REQUIRED.
                                      21

-------
                                   "WUASCARP"
OBJECTIVE:      THE PURPOSE OF THIS PROGRAM IS TO READ THE FILES CREATED




                BY THE INITIAL EDIT PROGRAMS AND THEN LIST THE COST  BY




                ACCOUNT NUMBER WITHIN TYPE OF DATA (PAYROLL, SERVICE





                CONTRACT, ETC.).









                            OPERATING INSTRUCTIONS




(A) KEY PUNCH:  REQUIRE NO DATE-TITLE OR DATA CARD INPUT.










(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                   (1).   PUT THE  "WUASCARP" JCL DECK IN THE CARD READER




                         AND READ THE DECK.




                   (2).   OUTPUT SHOULD BE ON MULTI-PART PAPER DEPENDING




                         ON THE NUMBER OF REQUIRED COPIES.




                   (3).   UNDER THE COMMENT COLUMN OF THE LISTING,




                         DESCRIPTIVE COMMENTS WILL BE PRINTED INDICATING




                         ERROR(S) FOUND IN THE DATA.




                   (4).   IF ERRORS ARE DETECTED, THE CORRECTIONS MUST BE




                         MADE TO  THE INITIAL INPUT DATA.   THE APPROPRIATE




                         EDIT PROGRAM MUST THEN BE RERUN.




                   (5).   THIS PROGRAM MAY BE RUN AS MANY TIMES AS




                         REQUIRED.
                                     22

-------
                                    "WUASPAAC"
OBJECTIVE:   THE PURPOSE OF THIS PROGRAM  IS  TO  SUM,  WITHIN  ACCOUNT




             NUMBER ORDER, THE  INPUT DATA FILES CREATED  BY  THE  INITIAL




             EDIT PROGRAMS.
(A) KEY PUNCH:
        OPERATING INSTRUCTIONS




THE FOLLOWING INPUT DATA ARE REQUIRED:   (see Section  3)




(1).  ONE DATE-TITLE CARD.




(2).  REQUIRES NO DATA CARD INPUT.
(B) OPERATION:
PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




(1).  PLACE DATE-TITLE CARD BEHIND THE  "//SYSIN DD *"  CARD




      IN THE "WUASPAAC" JCL DECK.




(2).  PUT THE DECK IN THE CARD READER AND READ THE DECK.




(3).  OUTPUT CAN BE ON MULTI-PART PAPER.




(4).  THIS PROGRAM MAY BE RUN AS MANY TIMES AS REQUIRED.
                                     23

-------
                                    "WUASCAP1"










OBJECTIVE:      THE PURPOSE OF THIS PROGRAM  IS TO READ  THE  FILES  CREATED BY




                THE INITIAL EDIT PROGRAMS AND MERGE  THESE FILES  INTO TWO




                FILES; ONE FILE CONTAINING RECORDS OF DIRECT  COST CENTERS




                AND CHARGES, AND THE OTHER FILE CONTAINING  THE  INDIRECT




                CHARGES.









                           OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED:  (see  Section 3)




                (1).   REQUIRES NO DATE-TITLE CARD INPUT.




                (2).   ONE UTILITY DESCRIPTION CARD.  (UTILITY  NAME OR NUMBER.)









(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS  FOLLOWS:




                (1).   PLACE UTILITY DESCRIPTION CARD BEHIND THE "//SYSIN




                      DD *" CARD IN THE "WUASCAP1" JCL DECK.




                (2).   PUT THE  DECK IN THE CARD READER AND READ THE DECK.




                (3).   OUTPUT WILL BE ON ONE-PART PAPER.




                (4).   THIS PROGRAM MAY BE RUN AS MANY TIMES AS REQUIRED.
                                      24

-------
                                    "WUASCAP2"
OBJECTIVE:      THE PURPOSE OF THIS PROGRAM  IS  TO  READ  THE DIRECT CHARGES




                FILE (RESOLVED COSTS) CREATED BY THE  "WUASCAP1"  PROGRAM,




                SUM WITHIN COST  CENTERS,  AND CREATE A FILE THAT  CONTAINS




                THE TOTAL AMOUNT CHARGED  TO  THE COST  CENTERS.










                         OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA  ARE REQUIRED:   (see  Section 3)




                (1).  ONE DATE-TITLE CARD.




                (2).  REQUIRES NO DATA  CARD  INPUT.










(B) OPERATION:   PROGRAM OPERATION/INFORMATION  IS  AS  FOLLOWS:




                 (1).  PLACE DATE-TITLE CARD FOLLOWING  THE "//SYSIN DD *"




                       CARD IN THE "WUASCAP2" JCL  DECK.




                 (2).  PUT THE DECK IN  THE CARD READER  AND READ  THE DECK.




                 (3).  OUTPUT WILL BE ON  ONE-PART  PAPER.




                 (4).  THIS PROGRAM MAY BE RUN  AS  MANY  TIMES  AS  REQUIRED.
                                     25

-------
                                    "WUASCAP3"










OBJECTIVE:      THE PURPOSE OF THIS PROGRAM  IS TO READ  THE  FILE  CREATED BY




                THE "WUASCAP2" PROGRAM AND,  USING A PREDETERMINED  ALLOCA-




                TION METHOD, DETERMINE THE PERCENTAGES  ASSOCIATED  WITH EACH




                COST CENTER.  WHEN THE RATIO OF DIRECT  CHARGES TO  TOTAL




                CHARGES IS DETERMINED, THE NON-DIRECT COST  CREATED IN THE




                "WUASCAP1" PROGRAM ARE ALLOCATED TO COST  CENTERS.   THE NEW




                RECORDS ARE THEN ADDED TO THE RESOLVED  COST CENTERS FILE




                CREATED IN "WUASCAP1".










                         OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED:  (see  Section 3)




                (1).  ONE DATE-TITLE CARD.




                (2).  REQUIRES NO DATA CARD  INPUT.










(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                (1).  PLACE DATE-TITLE CARD  FOLLOWING THE "//SYSIN DD *"




                      CARD IN THE "WUASCAP2" JCL DECK.




                (2).  PUT THE DECK IN THE CARD READER AND READ THE DECK.




                (3).  OUTPUT WILL BE ON ONE-PART PAPER.




                (4).  THIS PROGRAM MAY NOT BE RERUN.  IF  PROGRAM IS NOT




                      COMPLETED,  YOU MUST START OVER AGAIN  AT THE




                      "WUASCAP1"  LEVEL.




                       DO NOT RERUN THIS PROGRAM.
                                     26

-------
                                   "WUASUZFI"










OBJECTIVE:  THE PURPOSE OF THIS PROGRAM IS TO ADJUST OR ELIMINATE  COST  BY




            ACCOUNT NUMBER IN CERTAIN DATA FIELDS THROUGHOUT  THE COST MAT-




            RIX FILE (CMF).  THIS PROGRAM MOVES THE CURRENT PERIOD'S COST




            TO THE PREVIOUS PERIOD'S COST FIELDS AND THEN  ZEROS THE CUR-




            RENT PERIOD'S COST FIELD.  THE PROGRAM CAN ALSO MAKE OTHER




            CHANGES TO THE (CMF) BY USING ONE OF THE FOLLOWING OPTION




            CARDS:




            (1)  BY INCLUDING A "PHYSICAL" OPTION CARD, IN ADDITION TO




                 ACCOMPLISHING THE ABOVE ADJUSTMENT, THE CURRENT YEAR-




                 TO-DATE COST WILL BE MOVED TO THE PREVIOUS YEAR-TO-DATE




                 COST FIELDS AND THEN THE CURRENT YEAR-TO-DATE COST FIELDS




                 ARE ZEROED.




            (2)  BY INCLUDING A "ZERO" OPTION CARD, ALL THE COST DATA




                 FIELDS WILL BE ZEROED.  (SHOULD BE USED NORMALLY  FOR




                 INITIAL SYSTEM TESTING PERIOD).










                          OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED.  (see  Section 3)




                (1)  NO DATE-TITLE CARD IS NEEDED.




                (2)  FOR "PHYSICAL" OPTION—PUNCH THE WORD "PHYSICAL" IN




                     THE FIRST SEVEN POSITIONS OF THE DATA CARD.




                (3)  FOR "ZERO" OPTION—PUNCH THE WORD "ZERO" IN THE




                     FIRST FOUR POSITIONS OF THE DATA CARD.
                                     27

-------
                          "WUASUZFI" (continued)
(B) OPERATION:   PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                NOTE;  USE CARE WHEN RUNNING THIS JOB, AS FILE COULD BE




                ERASED IN ERROR.  THIS JOB MUST BE RUN PRIOR TO RUNNING




                THE PROGRAM "WUASCUPD" WHICH IS THE UPDATE UTILITY




                PROGRAM.




                (1).   IF USING AN OPTION CARD, PLACE THE OPTION CARD




                      AFTER THE "//SYSIN DD *" CARD IN THE "WUZSUZFI" JCL




                      DECK.




                (2).   PUT THE DECK IN THE CARD READER AND READ THE DECK.




                (3).   OUTPUT WILL BE ON ONE-PART PAPER.  ONLY A MESSAGE




                      WILL BE PRINTED STATING WHAT TYPE OF OPTION WAS USED




                      AND IF IT WAS COMPLETED.




                (4).   DO NOT RERUN THIS JOB...IF JOB SHOULD NOT BE




                      COMPLETED OR THE WRONG OPTION WAS USED, THE FILE




                      WILL HAVE TO BE REBUILT.
                                     28

-------
                                   "WUASCUPD"
OBJECTIVE:     THE PURPOSE OF THIS PROGRAM  IS TO UPDATE THE  COST MATRIX




               FILE (CMF) WITH CURRENT VALUES USING THE DIRECT  CHARGES FILE




               CREATED BY THE "WUASCAP3" PROGRAM.










                            OPERATING INSTRUCTIONS




(A) KEY PUNCH:  REQUIRES NO DATE-TITLE OR DATA  CARD(S) INPUT.










(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                NOTE;  MAKE SURE PROGRAM "WUASUZFI" WAS EXECUTED PRIOR TO




                BEGINNING THIS JOB.
                 (1).  PLACE THE "WUASCUPD" JCL DECK  IN THE  CARD  READER AND




                      READ THE DECK.




                 (2).  OUTPUT CONSISTING OF A MESSAGE  INFORMING THE OPERATOR




                      THAT THE COST MATRIX FILE HAD  BEEN UPDATED WILL BE ON




                      ONE-PART PAPER.




                 (3).  DO NOT RERUN THIS JOB.  IF JOB  ABORTS,  CONTACT PRO-




                      GRAMMER OR DATA  BASE MANAGER BEFORE ATTEMPTING FURTHER




                      ACTION.
                                     29

-------
                                   "WUASPLV4"










OBJECTIVE:  THIS LEVEL 4 REPORT PROGRAM IS BROKEN DOWN INTO THE FOLLOWING




            FOUR SEPARATE PROGRAMS: "WUASLV41", "WUASLV42", "WUASLV43",




            AND "WUASLV44".  THE PROGRAM READS THE COST MATRIX FILE AND




            PRODUCES A LISTING OF THE COSTS BY ACCOUNT NUMBERS WITHIN COST




            CENTERS.




            THE "WUASLV41" PROGRAM LISTS ALL COSTS PERTAINING TO THE




            ACQUISITION FUNCTION.




            THE "WUASLV42" PROGRAM LISTS ALL COSTS PERTAINING TO THE




            TREATMENT FUNCTION.




            THE "WUASLV43" PROGRAM LISTS ALL COSTS PERTAINING TO THE




            DELIVERY FUNCTION.




            THE "WUASLV44" PROGRAM LISTS ALL COSTS PERTAINING TO THE




            SUPPORT SERVICE FUNCTION.










                          OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED:  (see Section 3)




                 (1).   ONE DATE-TITLE CARD IS NEEDED FOR EACH PROGRAM.




                 (2).   REQUIRES NO DATA CARD INPUT.










(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                 (1).   PLACE DATE-TITLE CARDS IN THE "WUASLV41",




                       "WUASLV42", "WUASLV43", AND "WUASLV44" JCL DECKS.
                                     30

-------
         "WUASPLV4" (continued)
(2).   PUT THE DECKS IN THE CARD READER AND READ  THE  DECKS.




(3).   OUTPUT WILL BE ON MULTI-PART PAPER DEPENDING UPON




      THE NUMBER OF REQUIRED COPIES.




(4).   THESE PROGRAMS MAY BE RUN AS MANY TIMES AS  REQUIRED.
                     31

-------
                                   "WUASPLV3"









OBJECTIVE:  THIS LEVEL 3 REPORT PROGRAM READS THE COST MATRIX FILE,  THEN




            SUMS THE CURRENT COSTS AND YTD COST BY COST CATEGORIES WITHIN




            FUNCTIONS OF ACQUISITION, TREATMENT, DELIVERY,  SUPPORT SERVICES,




            TAXES, AND INTEREST.
(A) KEY PUNCH:
            OPERATING INSTRUCTIONS




THE FOLLOWING INPUT DATA ARE REQUIRED:   (see  Section  3)




(1).  ONE DATE-TITLE CARD.




(2).  REQUIRES NO DATA CARD INPUT.
(B) OPERATION:
PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




(1).  PLACE DATE-TITLE CARD BEHIND THE "//SYSIN DD *" CARD




      IN THE "WUASPLV3" JCL DECK.




(2).  PUT THE DECK IN THE CARD READER AND READ THE DECK.




(3).  OUTPUT WILL BE ON MULTI-PART PAPER DEPENDING UPON THE




      NUMBER OF COPIES REQUIRED.




(4).  THIS PROGRAM MAY BE RUN AS MANY TIMES AS REQUIRED.
                                     32

-------
                                    "WUASPLV2"
OBJECTIVE:   THIS LEVEL 2 REPORT PROGRAM READS  THE  COST  MATRIX  FILE  AND




             PRODUCES A TWO-PART LISTING.   THE  FIRST  PART  IS  A  COST




             COMPARISON OF THE ACTUAL COSTS TO  THE  BUDGET  BY  ACCOUNT




             NUMBERS.   THE SECOND PART IS  A  COST COMPARISON  OF ACTUAL




             COSTS TO THE PREVIOUS YEAR'S COST.









                            OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE  REQUIRED:   (see  Section 3)




                (1).  ONE DATE-TITLE CARD.




                (2).  REQUIRES NO DATA CARD INPUT.









(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                (1).  PLACE DATE-TITLE CARD BEHIND  THE "//SYSIN DD *" CARD




                      IN THE "WUASPLV2" JCL DECK.




                (2).  PUT THE DECK IN THE CARD  READER AND  READ  THE DECK.




                (3).  OUTPUT WILL BE ON MULTI-PART  PAPER DEPENDING UPON THE




                      NUMBER OF COPIES REQUIRED.




                (4).  THIS PROGRAM MAY BE RUN AS MANY TIMES AS  REQUIRED.
                                      33

-------
                                   "WUASPLV1"










OBJECTIVE:  THIS LEVEL 1 REPORT PROGRAM READS THE COST MATRIX FILE, THEN




            SUMS THE CURRENT COSTS AND YTD COSTS BY COST CATEGORIES WITHIN




            FUNCTIONS OF ACQUISITION, TREATMENT, DELIVERY, SUPPORT SERVICES,




            TAXES AND INTEREST.  THIS PROGRAM USES THESE VALUES TO PRODUCE




            A LIST OF THE COSTS IN TERMS OF WATER PRODUCTION UNITS.




            (USUALLY THE UNIT IS IN MILLIONS OF GALLONS.)









                            OPERATING INSTRUCTIONS:
(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED:  (see Section 3)




                (1).   ONE DATE-TITLE CARD.




                (2).   ONE DATA CARD CONTAINING THE AMOUNT OF WATER USED




                      FOR THE PREVIOUS MONTH IS NEEDED.




                (3).   ONE DATA CARD CONTAINING THE AMOUNT OF WATER USED




                      FOR THE CURRENT MONTH IS NEEDED.










(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                NOTE;   THIS PROGRAM CANNOT BE RUN UNTIL LEVEL 2 REPORT HAS




                       BEEN SUCCESSFULLY COMPLETED SINCE PART OF THE DATA




                       FOR THIS PROGRAM IS TAKEN FROM LEVEL 2 (DATA TAKEN




                       FROM LEVEL 2 = ACTUAL TO BUDGET PERCENT).




                 (1).   PLACE THE DATE-TITLE CARD FOLLOWED BY THE PREVIOUS




                       MONTH WATER CARD AND THE CURRENT MONTH WATER CARD




                       BEHIND THE "//SYSIN DD *" CARD IN THE "WUASPLV1" JCL




                       DECK.
                                     34

-------
          "WUASPLV1" (continued)
(2).   PUT THE DECK IN THE CARD READER AND READ THE  DECK.




(3).   OUTPUT WILL BE ON MULTI-PART PAPER DEPENDING  UPON  THE




      NUMBER OF COPIES REQUIRED.




(4).   THIS PROGRAM MAY BE RUN AS MANY TIMES AS REQUIRED.
                     35

-------
                                   "WUASPWAR"
OBJECTIVE:   THIS WATER SUPPLY DATA ANALYSIS PROGRAM READS THE  COST  MATRIX




             FILE, ANALYZES THE COST ASSOCIATED WITH WATER PRODUCTION




             WITHIN VARIOUS ZONES IN THE WATER UTILITY SYSTEM,  AND THEN




             PRINTS A REPORT.









                            OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED:  (see Section 3)




                (1).   ONE DATE-TITLE CARD.




                (2).   ONE CURRENT ZONE-USAGE DATA CARD.




                (3).   ONE YTD ZONE-USAGE DATA CARD.









(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                (1).   PLACE DATE-TITLE CARD FOLLOWED BY THE CURRENT  AND




                      YTD DATA CARDS BEHIND THE "//SYSIN DD *"  CARD  IN




                      THE "WUASPCAR" JCL DECK.




                (2).   PUT THE DECK IN THE CARD READER AND READ  THE DECK.




                (3).   OUPUT WILL BE PRINTED ON MULTI-PART PAPER DEPENDING




                      UPON THE NUMBER OF REQUIRED COPIES.




                (4).   THIS PROGRAM MAY BE RUN AS MANY TIMES AS  REQUIRED.
                                     36

-------
                                    "WUASBUCM"
OBJECTIVE:  THIS PROGRAM IS USED TO LIST  AND/OR BACK UP  THE COST MATRIX




            FILE (CMF) ONTO A TAPE FILE.   THE  PROGRAM WILL NORMALLY PRODUCE




            A LISTING OF THE DATA ON  THE  CMF,  HOWEVER,  BY INSERTING AN




            OPTION CARD THE FILE WILL BE  ALSO  BACKED UP  ON TAPE.










                             OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA  ARE REQUIRED:   (see Section 3)




                (1).  ONE DATE-TITLE  CARD.




                (2).  ONE OPTION CARD CONTAINING THE WORD "BACK-UP" IN THE




                      FIRST SEVEN POSITIONS OF THE CARD  IF ACTUAL BACK-UP




                      IS TO TAKE PLACE.   OTHERWISE,  NO OPTION CARD REQUIRED.
(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS  AS FOLLOWS:




                (1).  PLACE THE  DATE-TITLE  CARD  FOLLOWING THE "//SYSIN DD *'




                      CARD IN  THE  "WUASBUCM"  JCL  DECK.




                (2).  OPTION;  IF  COST  MATRIX FILE IS TO BE BACKED UP ON




                      TAPE THEN  PLACE THE OPTION  CARD AFTER THE DATE-TITLE




                      CARD.




                (3).  PUT THE  DECK IN THE CARD READER AND READ THE DECK.




                (4).  OUTPUT WILL  BE ON ONE-PART  PAPER.




                (5).  THIS PROGRAM MAY  BE RUN AS  MANY TIMES AS REQUIRED.
                                      37

-------
                                   "WUASUCAD"










OBJECTIVE:  THIS PROGRAM IS USED FOR MAKING CHANGES, ADDITIONS, AND/OR




            DELETIONS TO RECORDS IN THE COST MATRIX FILE  (CMF).   IN




            ADDITION, THE (CMF) MAY BE RE-CREATED FROM A  (CMF) BACKUP TAPE.










                             OPERATING INSTRUCTIONS




(A) KEY PUNCH:  THE FOLLOWING INPUT DATA ARE REQUIRED:  (see Section 3)




                (1).  ONE DATE-TITLE CARD.




                (2).  ONE OPTION CARD WITH THE WORD '****UPDATE'  IN THE




                      FIRST 10 POSITIONS OF THE CARD.




                (3).  DATA FOR MAKING CHANGES, ADDITIONS, AND/OR  DELETIONS.




                      DATA RECORDS (CARDS) MUST BE IN THE EXACT IMAGE OF  THE




                      COST MATRIX FILE RECORDS.










(B) OPERATION:  PROGRAM OPERATION/INFORMATION IS AS FOLLOWS:




                NOTE:  BY LEAVING OUT THE '****UPDATE' CARD, THE  FILE WILL




                NOT BE PHYSICALLY CHANGED.  ONLY A SIMULATION OF  UPDATING




                WILL TAKE PLACE.  THIS WILL ALLOW FOR A TEST RUN  ON LARGE




                AMOUNTS OF DATA TO REVIEW CHANGES.










                THERE ARE TWO (2) DIFFERENT OPERATING PROCEDURES




                AVAILABLE TO BE USED IN THIS PROGRAM, AS  DESCRIBED BELOW.










    (1) CHANGING,  ADDING, DELETING PROCEDURE.




                IN ORDER TO CHANGE A RECORD, THE ACCOUNT  NUMBER,  COST CENTER,
                                     38

-------
                   "WUASUCAD" (continued)










        AND COST CATEGORY FIELDS MUST BE IDENTICAL  TO  THOSE  OF  THE




        RECORD BEING CHANGED.  IF THESE KEY FIELDS  ARE INVALID  OR




        CANNOT BE LOCATED WITHIN THE COST MATRIX FILE,  THE CHANGE




        WILL BE CONSIDERED A NEW RECORD AND WILL BE ADDED TO THE




        EXISTING FILE.  EACH AMOUNT FIELD MUST  CONTAIN A VALUE,




        OTHERWISE, IF LEFT BLANK, THE FIELD WILL BE ZEROED.










        IN ORDER TO ADD A NEW RECORD, THE ACCOUNT NUMBER, COST




        CENTER, AND COST CATEGORY FIELDS MUST BE COMPLETED.   THE




        AMOUNT FIELDS SHOULD CONTAIN WHATEVER VALUES ARE REQUIRED.




        IN ADDITION, THE NEW RECORD MUST INCLUDE A  UNIQUE MATCH CODE




        IN ORDER TO POSITION THE INFORMATION WITHIN THE OUTPUT




        REPORTS.










        IN ORDER TO DELETE AN EXISTING RECORD,  THE  ACCOUNT NUMBER,




        COST CENTER, AND COST CATEGORY FIELDS MUST  BE  IDENTICAL TO




        THOSE OF THE RECORD BEING DELETED.  ALL OTHER  FIELDS MUST




        BE BLANK.










TO OPERATE THE CHANGE, ADD, OR DELETE PROGRAM:




(a)  PLACE THE DATE-TITLE AND THEN THE OPTION CARD, IF USED,




     FOLLOWED BY THE DATA CARDS BEHIND THE "//SYSIN DD *" CARD




     IN THE "WUASUCAD" JCL DECK.




(b)  PUT THE DECK IN THE CARD READER AND READ THE DECK.
                              39

-------
                            "WUASUCAD" (continued)










      (c)   OUTPUT WILL BE ON ONE-PART PAPER LISTING ALL CHANGES, ADDS,  OR




           DELETES.   A COMMENT WILL STATE WHAT ACTION WAS TAKEN FOR  EACH




           RECORD (i.e.  RECORD CHANGED, ADDED, OR DELETED).  IN ADDITION




           AT THE END OF THE LISTING, A COUNT OF ALL CHANGES WILL BE BE




           PRINTED.




      (d)   THIS JOB  CAN BE RERUN, BUT USE CARE AS THE COST MATRIX FILE




           CAN BE DRASTICALLY CHANGED.










(2)  THE PROCEDURE FOR RECREATING THE (CMF) FROM (CMF) BACKUP TAPE.




     NO DATA CARDS ARE USED IN THIS PROGRAM—ONLY THE DATE-TITLE, OPTION




     CARD,  AND THE (CMF) BACKUP FILE.  TO OPERATE THE RECREATING PROGRAM:









     (a).  PLACE THE  DATE-TITLE CARD FOLLOWED BY THE OPTION CARD BEHIND  THE




          "//SYSIN DD *" CARD IN THE "WUASUCAD" JCL DECK.




     (b)  PUT THE DECK IN THE CARD READER AND READ THE DECK.




     (c)  OUTPUT WILL BE ON ONE-PART PAPER, LISTING ALL THE RECORDS  THAT




          WERE RECREATED.




     (d)  THIS JOB CAN BE RERUN IF REQUIRED.
                                     40

-------
ROUTINE OPERATING SEQUENCE

     The following routine operating sequence should normally be  followed
unless otherwise stated in the special operating  instructions.  In
operating the cost analysis system, it is  important to note  that  each
program instruction must be understood and  that certain procedures be
completed prior to performing the subsequent operational  functions.

     (A)  Initial Edits - WUASPRER  (Payroll), WUASRSER (Requisition from
          Stock), WUASPAER (Payment Authorization), WUASSCER (Service
          Contract), WUASMTER (Miscellaneous Transactions),  and WUASBCDP
          (Depreciation).

          Special Instructions:

          (1)  The WUASBCDP (Depreciation)  program needs  to  be run only
               once until the depreciation  values change.

          (2)  All other edit programs must be run even if current data is
               not supplied.

          (3)  The edit programs may be  run in any order.

     (B)  Cost Allocation - WUASCAP1 (1st Allocation Program), WUASCAP2
          (2nd Allocation Program); and  WUASCAP3  (3rd Allocation  Program).

     (C)  Updating Cost Matrix File - WUASUZFI (Zero File) and WUASCUPD
          (Update File).

          Special Instructions:

          (1)  Each program must be run  in  the order listed.

          (2)  Do not re-run these  programs without consulting with
               Systems Programmer.

     (D)  Print Output Reports - WUASLV41,  WUASLV42, WUASLV43, WUASLV44
          (Level 4 Reports); WUASPLV3 (Level 3 Report); WUASPLV2  (Level 2
          Report); WUASPLV1 (Level  1 Report); and WUASPWAR (Water Supply
          Data Analysis Report).

          Special Instructions;

          (1)  Programs may be run  in any  order,  except WUASPLV1; because
               this program needs data from WUASPLV2.

          (2)  Programs may be run as many  times  as required.

     (E)  Back-Up Cost Matrix File - WUASBUCM (Back-Up file).
                                      41

-------
Special Instructions:

(1)  Program may be run as many times as required.

(2)  To produce a current listing of the Cost Matrix File only,
     run program WUASBUCM without "Back-Up" option card.

(3)  To back-up the Cost Matrix File and then produce a listing
     run program WUASBUCM, with "Back-Up" option card.
                           42

-------
                                SECTION 3

                               DATA FORMAT
KEYPUNCHING SOURCE DATA

     The keypunch format is provided to describe the card  image  layout  of
all input data.  This keypunch format should be used by  the keypunch
operator in setting-up drum cards and keypunching the data onto  an
80-column card.  Any variation in these formats should be  discussed with
the Systems Programmer.
                                      43

-------
PUNCHING
NAME WUASBCCT
PROGRAM CARD NO.
TYPE OF CARDS 80 COLUMN

FIELD
1 NO,
1

2

3



















FIELD NAME
COST CENTER
BLANK
CC NAME 1
iSLANK
CC NAME 2
BLANK


















COLUMNS
FROM
1
s
6
19
20
33

















THRU
4
q
1 8
19
32
80

















OR VERIFICATION
SOURCE DOCUME
SOURCE

NO, OF
COLUMNS
4
1
13
1
13
48

















INSTRUCTIONS
SHFFT NO. 1 OF 1
SJJ BUILD COST CENTER TABLE
DFPT. JOB NO.

TYPE
N
X

X

X


















A


X

X


















CO
n
—)


LJ

T,.T










































REMARKS AND INSTRUCTIONS


DESCRIPTION OF COST CF.NTF.R

DESCRIPTION DTT rngT r'ENTEP



















-------
PUN(
NAME WUASBSAT (".CCC"f ".CCT", '
PROGRAM CARD NO,
TYPE OF CARDS 80 COLUMN

FIELD
NO.
1

2





















FIELD NAME
SPECIAL AOCT. NO
BLANK
SPECIAL ACCT. NA
RT.ANK




















:HING OR VERIF
'.FAT")
SOURC
SOURC
COLUMNS
FROM
1
3
IE 4
24



















THRU
2

23
80



















NO. OF
COLUMNS
?
1
20
57



















I CAT I ON
E DOCUME
E
INSTRUCTIONS
SHEET NO. 1 OF 1
NT BUILDING SPECIAL ACCT. TABLES
DFPT. JOB NO,

TYPE
N
.. X

X




















A
x

X




















CO
-)


T,.T




















o;
LLJ
>























REMARKS AND INSTRUCTIONS
























-------
PUNCHING OR VERIFICATION
NAME WUASBFAT
PROGRAM CARD NO.
TYPE OF CARDS 80 COLUMN

FIELD
NO,
1

2

3

4

5

6













FIELD NAME
ACCOUNT NO.
BLANK
ACCOUNT NAME 1
BLANK
ACCOUNT NAME 2
BLANK
FUND TITLE NO.
BLANK
GENERAL ACCT. NO
BLANK
ACCT. NO. INTERNA
BLANK











SOURCE DOCUME
SOURCE CARD

COLUMNS
FROM
1
11
12
32
33
53
54
56
57
59
, 60
64











THRU
in
11
31
32
52
53
55
56
58
59
63
80












NO. OF
COLUMNS
in
1
20
1
20
1
2
1
2
1
4
17











INSTRUCTIONS
SHFET NO. 	 L OF i
NT FINANCIAL. ACCT. TART.F. INPUT SWTTF.T
DFPT. JOB NO,

TYPE
N
x

X

X

X

X

X












A
X

X

X

x.

X

X












CO
=^
TiJ

TiJ

Ti,T


















on
UJ
>























REMARKS AND INSTRUCTIONS


ACCOUNT NO. DF^r.RTPTTnN 1

ACCOUNT NO. TIRCIPRTPTTDM ?

FIJND TTTT.F. NO (i - in)

GENERAL ACCOUNT NO. (H ~ 99)

INTERNAL AflflT. NO













-------
                              PUNCHING OR VERIFICATION  INSTRUCTIONS
NAME WUASBCRF

PROGRAM CARD NO, 1
TYPE OF CARDS sn rm.iiMM

FIELD
NO,
1

-2
3

4
5

6
7
8
9
10
11
12
13
14
15
16
17
18
19


FIELD NAME
CARD NUMBER
BLANK
ACCOUNT NUMBER
^ALLOCATION CODE
BLANK
COST CAT (NOH LAB
COST CAT (LABOR)
BLANK
COST CKETER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
BLANK

COLUMNS
FROM
1
2
3
13
14
)R) 15
17
19
21
25
29
33
37
41
45
49
53
57
61
65
69
73
77
THRU
1
2
12
13
14
16
18
20
24
28
32
36
40
46
48
52
56
60
64
68
72
76
80
SOURC
SOURC
NO. OF
COLUMNS
1
1
10
1
1
2
2
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
E DOCUME
£ FIRST C

SHEET NO, l OF 2 	
SIT CROSS REFERENCE FILE INPUT SHEET
ARD DEPT. JOB NO,

TYPE
N
X

X


X
X

X
X
X
X
X
X
X
X
X
X
X
X
X
X

A


X
X



















CO
—


LJ




















cc.
ID
>























REMARKS AND INSTRUCTIONS
MUST BE A '!'






















-p-

-------
                               PUNCHING OR VERIFICATION INSTRUCTIONS
     NAME
WUASBCRF
                                                        SHEET NO.
OF
PROGRAM CARD NO. 2
TYPE OF CARDS 80 COLUMN

FIELD
NO,
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18





FIELD NAME
CARD NUMBER
BLANK
ACCOUNT NUMBER
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
COST CENTER
MATCH CODE
BLANk




COLUMNS
FROM
1
2
3
13
17
21
25
29
33
37
41
45
49
53
57
61
65
69
73
77



THRU
L
2
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
SOURC
SOURC
NO, OF
COLUMNS
1
1
10
4
4
4
4
4
4
4
4
4
4
4
4
4
4
72 4
76
80



4
L



E DOCUME
E ADDITIC
^T CROSS REFERENCE FILE INPUT SHEET
NAL CARDSDFPT. JOB NO,

TYPE
N
x

X
X
X
X
X
X
X
X
X
X
X
X •
X
X
X
X
X




A


X




















CO
—


LJ




















a:
LU
>























REMARKS AND INSTRUCTIONS
VTTWRR '9' ' T ' np '/.'
* *





















-P-
00

-------
PUNCHING
NAME WUASBDPT
PROGRAM CARD NO.
TYPE OF CARDS 80 COLUMN

FIELD
NO.
1

2

3



















FIELD NAME
COST CENTER
BLANK
AMOUNT
BLANK
UTILITY CODE
BLANK


















COLUMNS
FROM
1
5
6
16
17
18

















THRU
L
5
15
16
17
80

















OR VERIF
SOURC
SOURC
NO, OF
COLUMNS
4
1
10
1
1
63

















I CAT I ON
E DOCUME
E
INSTRUCTIONS
SHEET NO, 1 OF 1
NT BUILD DEPRECIATION TABLE
DEPT. JOB NO.

TYPE
N
X

X




















A




X


















CO
-)


RJ




















oc
LLJ
>























REMARKS AND INSTRUCTIONS
MUST BE 4-DIGIT NUMBER

YEARLY DEP. AMOUNT PIC 9(8)V99

BLANK = KENTON, "C" - COVINGTON



















-------
     NAME
WUASSCER
PUNCHING OR VERIFICATION INSTRUCTIONS

                                    SHEET  NO.    1   OF	L
     PROGRAM  CARD  NO,
TYPE OF CARDS 80 COLUMN

FIELD
NO,
1

2

3
4
5
6
7
8
9
10
11





1



VVOTM^^BMM

FIELD NAME
SOURCE CODE
BLANK
UTILITY CODE
BLANK
CONTRACT NO.
MATERIAL COST
LABOR COST
TRACTOR COST
COMPRESSOR COST
TRUCK (S) COST
OTHER COST
OVERHEAD COST
BALANCE
BLANK










COLUMNS
FROM
1
2
3
4
5
9
17
25
33
41
49
57
65
73









THRU
1
2
3
4
8
16
24
32
40
48
56
64
72
an









SOURC
NO. OF
COLUMNS
1
1 1
J__ 1
1
4
8
8
8
8
8
8
8
h 8
fi









IE DEPT. JOB NO,

TYPE
N
X



X
X
X
X
X
X
X
X
r X










A


X




















C/3
^




RJ
RJ
RJ
RJ
RJ
RJ
RJ
RJ
RJ










OC
LU
>























REMARKS AND INSTRUCTIONS
MUST BE A '3'

BLANK=KENTON, "C"=COVINGTON


PIC 9(8)V99
PIC 9(8)V99
PIC 9(8)V99
PIC 9(8)V99
PIC 9(8)V99
PIC 9(8)V99
PIC 9(8)V99
PIC 9(8)V99










Ln
O

-------
PUNCHING OR VERIFICATION
NAME WUASMTER
PROGRAM CARD NO,
TYPE OF CARDS 80 COLUMN

FIELD
NO,
1

2

3

4

5















FIELD NAME
SOURCE CODE
BLANK
ENTRY NO.
BLANK
ACCOUNT NO.
BLANK
COST CENTER
BLANK
AMOUNT
BLANK














COLUMNS
FROM
1
2
3
6
7
17
18
22
23
33













THRU
1
2
5
6
16
17
21
22
32
80













SOURC
SOURC
NO, OF
COLUMNS
1
1
3
1
10
1
4
1
10
48













INSTRUCTIONS
SHEET NO, 1 OF 1
E DOCUMENT MISCELLANEOUS TRANSACTIONS
E
DEPT. JOB NO.

TYPE
N
X

X

X

X

X














A




X


















CO
—


RJ

L.T

RJ

RJ














cn
LU
>























REMARKS AND INSTRUCTIONS
MUST BE A 'S'

PIC gm

PIC XflO")

PIC 9(4}

PIC 9C81V99















-------
Ul
ho
PUNCHING
NAME WUASPAER
PROGRAM CARD NO.
OR VERIFICATION INSTRUCTIONS
SHFET NO. 1 OF 1
SOURCE DOCUMENT PAYMENT AUTHORIZATIONS
TYPE OF CARDS 80 COLUMN

FIELD
NO,
1

2

3

4

5

6













FIELD NAME
SOURCE CODE
BLANK
AUTHORIZATION NO
BLANK
ACCOUNT NO.
BLANK
COST CENTER
BLANK
AMOUNT
BLANK
TOTAL
BLANK












COLUMNS
FROM
1
2
3
13
14
24
25
29
30
40
41
51











THRU
1
2
12
13
23
24
28
29
39
40
50
80











SOURC
NO. OF
COLUMNS
1
1
10
1
10
1
4
1
10
1
10
30











E
DEPT. JOB NO,

TYPE
N
X

X

X

X

X

X












A




X


















to


RJ

LJ

RJ

RJ

RJ












a
LU
>























REMARKS AND INSTRUCTIONS
MUST BE A '4'

PIC 9(10)

PIC X(10)

PIC 9(4)

PIC 9(8)V99

PIC 9(8)V99













-------
PUNCHING
NAME WUASRSER
PROGRAM CARD NO,
TYPE OF CARDS 80 COLUMN

FIELD
NO,
1

2

3

4

5

6













FIELD NAME
SOURCE CODE
BLANK
REQUISITION NO.
BLANK
ACCOUNT NUMBER
BLANK
COST CENTER
BLANK
AMOUNT
BLANK
TOTAL
BLANK












COLUMNS
FROM
1
2
3
13
14
24
25
29
30
40
41
51











THRU
1
2
12
13
23
24
28
29
39
40
50
80











OR VERIF
SOURC
SOURC
NO. OF
COLUMNS
1
1
10
1
10
1
4
1
10
1
10
30











'I CAT I ON
.E DOCUME
E
INSTRUCTIONS
SHEET NO, 1 OF 1
NT REQUISITION FROM STOCK
DFPT. JOB NO.

TYPE
N
X

X

X

X

X

X












A




X


















c/>


RJ

LJ

RJ

RJ

RJ












cr
LU
>
-






















REMARKS AND INSTRUCTIONS
MUST BE A '2'

PIC 9(10)

PIC X(10)

PIC 9(4)

PIC 9(8)V99

PIC 9(8)V99













-------
PUNCHING
NAME WUASPRER
PROGRAM CARD NO.
OR VERIFICATION INSTRUCTIONS
SHEET NO. 1 OF 1
SOURCE DOCUMENT PAYROLL
TYPE OF CARDS 80 COLUMN

FIELD
NO,
1

2

3

4

5

6

7











FIELD NAME
SOURCE CODE
| BLANK
EMPLOYEE NUMBER
BLANK
DATE
BLANK
ACCOUNT NO.
BLANK
COST CENTER
BLANK
TOTAL PAY
BLANK
GROSS PAY
BLANK










COLUMNS
FROM
1
2
3
12
13
19
20
30
31
35
36
46
47
57









THRU
1
2
11
12
18
19
29
30
34
35
45
46
56
80









SOURC
NO. OF
COLUMNS
1
1
9
1
6
1
10
1
4
1
10
1
10
24









E
DEPT. JOB NO,

TYPE
N
X

X

X

X

X

X

X










A






X
















CO






LJ

RJ

RJ

RJ










o:
LU
>























REMARKS AND INSTRUCTIONS
MUST BE A '!'

SOCIAL SECURITY NUMBER

DDMMYY

PIC X(IO)

PIC 9(4)

PIC 9(8)V99

PIC 9(8)V99











-------
PUNCHING
NAME WUASCAP1
PROGRAM CARD NO,
TYPE OF CARDS 80 COLUMN

FIELD
NO.
1























FIELD NAME
UTILITY CODE
BLANK






















COLUMNS
FROM
1
2





















THRU
1
80





















OR VERIF
SOURC
SOURC
NO, OF
COLUMNS
1
79





















I CAT I ON
E DOCUME
E
INSTRUCTIONS
SHEET NO, 1 OF 1
NT UTILITY DATA CARD FOR COST ALCT^. PT 1
DEPT. JOB NO,

TYPE
N























A
X






















CO
—























tr
LU
>























REMARKS AND INSTRUCTIONS
OPTION = BLANK - KENTON
or
"C" = COVINGTON





















-------
OPTION CARD
PUNCHING OR VERIFICATION
NAME WUASUZFT
PROGRAM CARD NO.
TYPE OF CARDS 80 COLUMN

FIELD
NO,
1























FIELD NAME
OPTION
BLANK





















INSTRUCTIONS
SHFFT NO. 1 OF 1
SOURCE DOCUMENT
SOURCE

COLUMNS
FROM
1
7





















THRU
6
80





















NO. OF
COLUMNS
§
74





















OPTION FOR ZEROING CM FILE
DFPT. JOB NO.

TYPE
N























A
X






















y>
^
L.






















ce
LU
^























REMARKS AND INSTRUCTIONS
OPTIONS = 'FTSCAT,"
= 'ZERO"






















-------
PUNCHING OR VERIFICATION
NAME WUASPLV1
PROGRAM CARD NO, 1
TYPE OF CARDS 80 COLUMN

FIELD
NO.
1
2
3
4
5





1











I

FIELD NAME
CURRENT RPW
CURRENT TRTD WTR
YTD RPW
PREV YR -RPW
ACTUAL TO BUDGET
BLANK

















SOURC
SOURC
COLUMNS
FROM
1
11
21
31
41
46

















THRU
10
20
30
40
45
80

















NO, OF
COLUMNS
10
10
10
10
5
35

















E DOCUME!
E CARD
INSTRUCTIONS
SHFFT NO. 	 L OF 1
YT WATER FLOW SHFFT
DEPT. JOB NO,

TYPE
N
X
X
X
x
X


















A























V)
R.T
RJ
R.T
P T
RJ


















a:
LLJ
>























REMARKS AND INSTRUCTIONS
PIC 9f7^VqQQ
PTC QHWQQQ
PTC qmVQQP
PTC QHWQQQ
PIC gnwqq *


















* TAXEN FROM LV II ACTUAL TO BUDGET PERCENTAGE

-------
Ul
00
PUNCHING OR VERIFICATION
NAME WUASPWAR
PROGRAM CARD NO, 1
TYPE OF CARDS 80 COLLUMN

FIELD
NO,
1
2
3
4
5
6
7
8
9
10
11
12












FIELD NAME
UTILITY NAME
SYSTEM
SERIES
PARALLEL
SERIES-PARALLEL
WATER SOLD
MILLION GALLONS
MILLION GALLONS
MILLION GALLONS
MILLION GALLONS
MILLION GALLONS
MILLION GALLONS











SOURC
SOURC
COLUMNS
FROM
1
3
5
7
9
11
21
31
41
51
61
71











THRU
2
4
6
8
10
20
30
40
50
60
70
80











NO. OF
COLUMNS
?
2
2
2
2
10
10
10
10
10
10
10











E DOCUME
£ CARD
INSTRUCTIONS
SHEET NO, 1 OF 1
NT WATER FLOW SHEET
DFPT. JOB NO,

TYPE
N

X
X
X
X
X
X
X
X
X
X
X











A
x






















CO
^





RJ
RJ
RJ
RJ
RJ
RJ
RJ











tr
LU
_>























REMARKS AND INSTRUCTIONS
"KE"=KENTON, "CO"=COVINGTON
PIC 99
PIC 99
PIC 99
PIC 99
PIC 9 (7)V999
PIC 9 (7)V999
PIC 9 (7)V999
PIC 9 (7)V999
PIC 9 (7)V999
PIC 9 (7)V999
PIC 9 (7)V999












-------
OPTION CARD
PUNCHING OR VERIFICATION
NAME WUASRUCM
PROGRAM CARD NO,
TYPE OF CARDS 80 COLUMN

FIELD
NO,
1























FIELD NAME
OPTION
BLANK





















SOURC
SOURC
COLUMNS
FROM
1
8





















THRU
1
80





















NO, OF
COLUMNS
7
73





















INSTRUCTIONS
SHEET NO, 1 OF 1
E DOCUMENT RACK TIP OPTION CARD
E
DFPT. JOB NO.

TYPE
N























A
X






















CO
—
T,






















a:
LU
>























REMARKS AND INSTRUCTIONS
MUST BE "BACK-UP"























-------
   OPTION CARD
         WUASUCAD
NAME
PROGRAM  CARD NO.
PUNCHING OR  VERIFICATION  INSTRUCTIONS
                                      SHEET NO.    1   OF	L
             SOURCE DOCUMENT CHAN£E. ADD. DELETE OPTION CARD

FIELD
NO,

1





















FIELD NAME
BLANK
OPTION
BLANK





















COLUMNS
FROM
1
5
11




















THRU
4
10
80





















NO, OF
COLUMNS
A
6
70





















TYPE
N























A

X





















V

T..T





















OL
LL)
>























REMARKS AND INSTRUCTIONS

MTT9T RT? "TTPnATp"






















-------
PUNCHING
NAME wuAsiir.An
PROGRAM CARD NO,
OR VERIFICATION INSTRUCTIONS
<;HFFT NO. i OF i
SOURCE DOCUMENT IITTT.TV TO CHANGE. ADD. OR DLTE. CM RCDS.
TYPE OF CARDS 80 COLUMN

FIELD
NO,
1
2
3
4
5
6
7
8
9
10
j
1












FIELD NAME
MATCH CODE
ACCOUNT NO.
COST CENTER
COST CATEGORY
CURRENT COST
PREVIOUS PRD CS1
YTD COST
YEARLY BUDGET
NOT USED
PREV YR CST














COLUMNS
FROM
1
5
15
19
21
31
41
51
61
71













THRU
4
14
18
20
30
40
50
60
70
80













SOURC
NO. OF
COLUMNS
4
10
4
2
10
10
10
10
10
10













E
DFPT. JOB NO,

TYPE
N
X
X
X
X
X
X
X
X
X
X













A

X













































REMARKS AND INSTRUCTIONS




PIC 9(8)V99
PIC. 9C8)V99
PIC 9(8)V99
PIC 9(8)V99
PIC 9(8)V99
PIC 9(8)V99














-------

                                PUNCHING OR VERIFICATION INSTRUCTIONS
     NAME   DATE-TITLE CASH.
                         SHEET  NO,.
1	OF.
     PROGRAM CARD NO,.
     TYPE  OF  CARDS 80 COLUMN
SOURCE DOCUMENT  STANDARD DATE-TITLE  CARD	
SOURCE	DEPT,	JOB  NO,.

FIELD
NO.
1
2





















FIELD NAME
DATE
TITLE
BLANK





















COLUMNS
FROM
1
19
43




















THRU
18
42
80



















1

NO, OF
COLUMNS
18
24
38





















TYPE
N
X
X





















A
X
X
]




















CO
-)
LJ
:EN





















a:
UJ
>























REMARKS AND INSTRUCTIONS
MONTH DD, YYYY
UTILITY NAME





















N3

-------
PUNCHING
NAME DATE-TITLE CARD
PROGRAM CARD NO. SPECIAL
OR VERIFICATION INSTRUCTIONS
SHEET NO. 1 OF 1
SOURCE DOCUMENT F°R PROGRAM WUASBDPT
TYPE OF CARDS

FIELD
NO,
1
2
3





















FIELD NAME
DATE
TITLE
DEP. ACCT. NO
BLANK




















COLUMNS
FROM
1
19
43
53



















THRU
18
42
52
80



















SOURCE

NO, OF
COLUMNS
18
24
10
28



















DFPT. JOB NO,

TYPE
N
X
x
X




















A
„
X
X.




















V)
—
LJ
CKN
Tn





















o:
LU
























REMARKS AND INSTRUCTIONS
MONTH nn YYYY
TITTT.TTY NAMF






















-------
PUNCHING
NAME DATE-TITLE
PROGRAM CARD NO. SPECIAL
TYPE OF CARDS 80 COLUMN

FIELD
NO.
1
2
3





















FIELD NAME
DATE
TITLE
DEPRECIATION PRO
BLANK




















COLUMNS
FROM
1
19
43
53



















THRU
18
42
52
80



















OR VERIFICATION
SOURCE DOCUME
SOURCE

NO. OF
COLUMNS
18
24
10
28



















INSTRUCTIONS
SHFFT NO. 1 OF 1
NT FOR
PP.DITRAM TJTTAQ'Rrnp
DEPT. JOB NO.

TYPE
N
X
X





















A
X
X
X




















to
T,,T
CF
T,.T




















tr
LU























REMARKS AND INSTRUCTIONS
MONTH Dn, VYYY
UTILITY NAME
OPTIONS = MONTHTV
QTTARTFRT.V
YEARLY
WKFK7.Y
DEFAIILT=MONTHT.Y

















-------
PUNCHING OR VERIFICATION INSTRUCTIONS
NAME DATE-TITLE
PROGRAM CARD NO, SPECIAL

SHEET NO, 1 OF 1
SOURCE DOCUMENT FOR PROGRAMS WUASPLV2, WUASPCAR
TYPE OF CARDS 80 COLUMN

FIELD
NO.
1
2

3

4
5

















FIELD NAME
DATE
TITLE
BLANK
FISCAL YEAR BEGIb
BLANK
NUMBER OF WEEKS
REPORT PERIOD

















COLUMNS
FROM
1
19
43
I 51
75
79
80
















THRU
18
42
50
74
78
79
80
















SOURC
NO. OF
COLUMNS
18
24
8
24
4
1
1
















E
DEPT. JOB NO,

TYPE
N
X
X

X

X
X
















A
X
X

X



















to
T,,T
CF

T,J



















£T
LLJ
>























REMARKS AND INSTRUCTIONS
MONTH DD. YYYY
UTILITY NAME

MONTH DD. YYYY

1=4, 2=5, 3=13. 4=26. 5=52
1=MONTHLY. 2=OUARTFR. 3=HALFr
4=ANNUAL
















-------
SYSTEM FILE LAYOUT

     The system file layout is provided to illustrate each  cost  accounting
system program file.
                                     66

-------
VAMC        WUASBCCT
NAME   COST CENTER TABLE FILE


FILE RECORD NO.        i
FILE LAYOUT FORMAT
      RECORD LENGTH
SHEET NO.


  10
                                               OF
TYPE OF FILE   INDEXED SEQUENTIAL
      SOURCE   COST CENTER DESCRIPTION SHVFT
FIELD
NO.
1
2
3



FIELD NAME
COST CENTER NO
COLUMNS
FROM
1
COST CENTER NAMEl! 5
COST CENTER NAME2J 18
1


i


















































THRU
L
17
30



















NO. OF
COLUMNS
u
13
13








(.











TYPE
N
X
X
X



















A

X
X




•














!
to


i




















cc
LU






















REMARKS AND INSTRUCTIONS
KEY FIELD


'


1















1

-------
00
MAMC WUASBSAT."XXX"
NAMt SPECIAL ACCT. TABLES (".CCC"
FILE RECORD NO. i
TYPE OF
FIELD
NO,
j

FILE SEQUENTIAL

FIELD NAME
NO. OF RECORDS
BLANK
1


















I

















1
FILE LAYOUT FORMAT
.".CCT'Y'.FAT", ".DPT") SHEET
RECORD LENGTH
NO. 1 OF 2
22
SOURCE SPECIAL ACCOUNTS INPUT DESCRIPTION SHEET

COLUMNS
FROM
1
5




















THRU
4
22
NO. OF
COLUMNS
4
18



















I


TYPE
N
X

A


i

i



















































! ,
CO























K
LU
>



t
REMARKS AND INSTRUCTIONS



1




































-------
o-.
U3
!
]
jl
.
L
1
WUASBSAT
MANE SPECIAL ACCT. TABLES
FILE RECORD NO. 2
TYPE OF FILE SEQUENTIAL
| — ••--
1 PLELD
NO.
t — — 	
I

FIELD NAfvi
FILE LAYOUT FORMAT
SHEET NO. 9 OF 2
RECORD LENGTH
SOURCE

COLUHNS
; PROM JTHRU
SPECIAL ACCT. NO. 1
2 SPECIAL ACCT. NAME 3

i
-











f
i



















1
















<
o
4-
NO, OF
COLUMNS
22


TYPE
N A
7 Y

V)
Z3
~?
[
22 70 Y y
i




i




1





t 1















i











































! 1

i







,






	 f 	 . 	
-j
ujj REMARKS AND INSTRUCTIONS
>t
1 INDRYTNC TTP-V J
i




i

;
t
t
i
— T" ;
1
f)
1 i
! ^
j
[
i



• i i ' • " • i

-------
FILE LAYOUT FORMAT
WUASBFAT
NAME FINANCIAL ACCOUNT TABLE FILE SHEET NO. 1 OF 1
FILE RECORD NO. 1
TYPE OF FILE INDEXED SEQUENTIAL

FIELD
NO.

FIELD NAME
i {ACCOUNT NO.
2 'ACCOUNT NAME i
3
4
5
6
ACCOUNT NAME 2
FUND TITLE
GENERAL ACCT.
ACCOUNT NO. INTER*































RECORD LENGTH 58
SOURCE FINANCIAL ACCOUNT INPUT DESCRIPTION SHEET

COLUMNS
FROM
1
11
31
51
53
AL 55

















THRU
10
30
NO. OF
COLUMNS
10
20
50 20
52
54
58
2
2
4

































TYPE
N
A
X X
X
X
X X
X
X
X


































CO
^






















1
LLl



REMARKS AND INSTRUCTIONS
KEY FIELD


i




















I

















-------
                                    FILE LAYOUT FORMAT
WUASBCRF
NAME CROSS REFERENCE FILE (CRF)
FILE RECORD NO. i
TYPE OF FILE TMriFYT?n SEQUENTIAL
FIELD
NO.
1
2
3
4
5
* 6

















FIELD NAME
ACCOUNT NUMBER
r ALLOCATION CODE
COST CAT CNON LAB
COST CAT fLARO^
NO. OF COST CENTE,

COST CENTER
MATCH CODE















SHEET NO. 1 OF ,
RECORD LENGTH 265

SOURCE CROSS RFFFRFWrF INPUT DF.Sr.RTPTTnN QHFFT

COLUMNS
FROM
1
11
3R1 12
U
RS 16


















THRU
10
1 1
13
is
n



















NO. OF
COLUMNS
10
l
2
7
?

4
4
















TYPE
N
X

X
X
X

X
JC















A
X
X





















V)























cr
LU
>























REMARKS AND INSTRUCTIONS
KEY FIELD






















* THE FOLLOWING TWO ITEMS OCCURS 31 TIMES

-------
„..„ WUASBCMF
NAMt COST MATRIX FILE (CMFl
FILE RECORD NO.
TYPE OF FILE JEBEXEB. SEQUENTIAL
FILE LAYOUT FORMAT
RECORD LENGTH
SOURCE CROSS
SHEET NO. i OF 1 |
80
s!
1
REFERENCE FILE 3
J 	
1 FIELD
| NO,
! i
1 2 -
FIELD NAME
MATCH CODE
ACCOUNT NO.
'] 3 JCOST CENTER
! 4
I 5
I 6
\ 7
COST CATEGORY
CURRENT COST
PREVIOUS COST
YTD COST
I 8 YEARLY BUDGET
ji Q
W
I 10













NOT USED
PREVIOUS YEAR COS1













COLUMNS
FROM
1
5
15
19
21
31
41
51
61
r 71













THRU
4
14
18
20
30
40
50
60
70
80













NO, OF
COLUMNS
4
10
4
2
10
10.
10
10
10
10













TYPE
N
X
X
x
__JL_
L x
V
.A.
X
X
X
r x












A

_JL




















(
v>
~























cr
LU
^























REMARKS AND INSTRUCTIONS


1
KEY FTFT.n i
f




















-------
-vj
OJ
MAUC WUASBUCM
MAMh COST MATRIX FILE BACKUP (CM
FILE RECORD NO.
TYPE OF
FIELD
NO.
1
2
3
4
5
6
7
8
9
10













FILF- SEQUENTIAL f TAP El

FIELD NAtfE
MATCH CODE
ACCOUNT NO.
COST CENTER

FILE LAYOUT FORMAT
F BACKUP) SHEET
RECORD LENGTH

COLUMNS
FROM
1
5
15
COST CATEGORY I 19
CURRENT COST
PREVIOUS COST
YTD COST
YEARLY BUDGET
NOT USED
PREVIOUS YEAR COS












21
31
41
51
61
: 71













THRU
4
14
SOURCE
NO. OF
COLUMNS
4
10
18 4
20
30
40
50
60
70
80












I 2
! 10
10
10
10
10
10












NO. l OF ,
80
COST MATRIX FILE

TYPE
N
X
X
A

X
X
x
X
X
X
, X
X
1 X




























T
1
1
CO
ID






















CE
LU






















REMARKS AND INSTRUCTIONS



'


















!

-------
NAME EDIT FILES *
FILE RECORD NO. 1
TYPE OF FILE SEQUENTIAL

FIELD
NO.

FIELD NA^E
JBLANK
1 SORT SEQUENCE
2 pATE


















1
1
1


i
1















FILE LAYOLTT FORMAT
SHEET NO. i OF 3
RECORD LENGTH
26
SOURCE PAYROLL, PAY AUTH. REQ STOCK, SERVICE CONTRACT,

COLUMNS
FROM
1
; 2
3

7
















THRU
1
2
26


















i :

NO. OF
COLUMNS
-t 	
1
1
I_ 24



















DEPRECIATION, MISC. TRANS.
TYPE
N

X
X
A


X
i
!
I
f '















1
1
















it i
v)
^
—)























cr.
LLJ
>





REMARKS AND INSTRUCTIONS

IS LEFT BLANK
DATE FROM INPUT
I

1
















1
r
















* NOTE:  EACH EDIT FILE HAS THE SAME FORMAT.

-------
MANE EDIT FILES
FILE RECORD NO. 2
TYPE OF
FIELD
NO.

1
FILE SEQUENTIAL

FIELD NAf.E
BLANK
FILE LAYOUT FORMAT
SHEET NO. 9 OF 3
RECORD LENGTH
SOURCE

COLUMNS
FROM
1
SORT SEQUENCE i 2
THRU
1
2 '
NO, OF
COLUMNS
1
26


TYPE
N

1 X
A


V)
Z)
-5


a:
LU
>


REMARKS AND INSTRUCTIONS

IS THE SOURCE CODE FROM INPUT
!TITLE
261    24
X !   X
IS THE UTILITY NAME

-------
NANE EDIT FILES
FILE RECORD NO. (DATA) 3
TYPE OF FILE SEQUENTIAL

FIELD
NO.
1
2
3
4




FIELD NAtfE
ACCOUNT NO.
COST CENTER
COST CATEGORY
AMOUNT


































FILE LAYOUT FORMAT
SHEET NO. -n OF 3
RECORD LENGTH 26
SOURCE

COLUMNS
FROM
1
11
15
17



















THRU
10
14
16
26




















NO, OF
COLUMNS
10
4
2
10




















26

TYPE
N
X
X
X
X


















A
X





















!
(/>
3
~5























CL.
LU
>























REMARKS AND INSTRUCTIONS
























-------
                                SECTION 4

                          PROGRAM FLOW DIAGRAMS
     The following program flow diagrams are provided to illustrate  the
normal activity sequence within each program.
                                     77

-------
                                                   A3 - 1	,
                                                ;  /PRINT COST
                                                    CENTER
                                                     NAME1
                                                      NAME2
                                                                                                  r A5 - •+	
                                                                                                         h --- 1
                                                                                                 I               I
                                                                                                 +              4
                                                                                                 '               i
                                                                                                 i               i
                                                                                                 I --- _, ---- 1


                                                                                                 rC5-+ --- 1
                                                                                                   	1	1
                                                                                                 rD5

                                                                                                 I
                                                                                                 I
                                                                                                 T
                                                                                                 i	1	1
                                                                                                  -E5- H	
                                                                                                              ~l
                                                                                                 - F5	1	
                  ^ G5 — <	,
                  i              !
                  t              |
                                i
                                                                                                 -              4-
                                                                                                                I
                                                                                                                I



                                                                                                 r-.js--,	,

                                                                                                 i               i
                                                                                                 J-              4.
                                                                                                                i
                                                                                                 !               I
.- Kl — ->- —
                                                             ' ~\
                                                               I
                                                               I
                                                               t
                                                               I
                                                               I
        i
        i
        +
        I
        I
+	1
                                                                                                 1	+	1
                                                       78

-------
NOTE:   THIS  PROGRAM IS jUSED TO BUILD
        SEVERAL DIFFERENT TABLE FILES
        USING SAME FORMAT.  ONLY JCL
	INEEBS-TO BE CHAlteEB,	1	
-Bl	i	1
                                                                                                  nuvt. i
                                                                                                    DATA TO
                                                                                                 SPECIA1 ACCT.
                                                                                                    RECORD
                                                                                                  DESCRIPTION
                                                                                                             J

                        I	•
, - K i -  — —
                        I-K2	,
                                                                                                r- K5 - H	
                                                                                                i	H.	i
                                                    79

-------
• Al	•-	•
                       •A3- H
                                                A3 — H	.
                                                                                              - A5 - -i-	1
                                             iREAD IN INDEXED
                                             tLE SPECIAL
                                              E KEYING IN Ol(
                                                 COST CAT.  I
                                                    80

-------
                          SEARCH TABLE
                          KEYING IN  ON
                              COST
                           CATEGORIES
                         WRITE  ON  FAT
                       TABLE  FILE  ACCT-.
                        INC..  ACCT.  NO.!
                   /
'R^NT ACCT. NO. A'CCT./
  0. DESCRIPTIONS
C^ST CAT. NO. COST j
CAT. DESCRIPTIONS
ra
                       i     O
                                                 - Ha	
.— J2	'	i
                                                                         	K	I
                                                                        rB5- -I	
                                                                        .	H	I
                                                                                      1
                                                                        I	,	1
                                                                         -D5 — H	


                                                                        - G5 — .	
                                                                         - H5 -- -i	>
                                                                        r-KS	
                        I	,	I

                               81
                                                 1	+	1

-------
     ON
 ACCOUNT NO.
\6jSEQJJEHCE
     NO.
                                                                              	I
                              82

-------
                           PRINl   ft   YES
                           ERROR   "   -A-
                          MESSAGE
- K  -  —
                                                   83

-------
                                                                                               SAVE
                                                                                               ACCT.
                                                                                                NO.
                                                                                            DESCRIPTION
                           PRINT
                           ERROR
                          MESSAGE
                                                                                                READ
                                                                                                COST
                                                                                               CENTER
                                                                                                FILE
                                                                                          I-05 -^	;
                                                                  1	,	I
                                                                                ,'PRINT ACCT. NO., COST
                                                                                 ENTER, COST CATS.,
                                                                                CCT. DESCRIPTION, COST
                                                                               -AT. DESCRIPTION. COST
                                                                               CENTER DESCRIPTION,
                                                                                TCH CODE, ALLOCATION
                                                                                     WRITE CM FILE
                                                                                    REC. ACCT. NO.
                                                                                   COST CENTER COST
                                                                                      CAT,, MATCH
                                                                                          ,CODE
   SAVE
   COST
   CAT.
DESCRIPTION
_EAT_J-
  TAB
 FILE
/READ FAT
TAB FILE
KEYING
 ON ACCT
    NO
                                                                                          I	4-	I

-------
                           r *'••• -
     _  ..	i
-- K I -  *  -
                           -K2-
                                                      --K3 —	
                                                                                                              • K5 - *	
                                                                                   	+.	1
                                                                                                             I	4	1
                                                            85

-------
86

-------
  SEARCH
  TABLE
SEQUENTIALLY
       87

-------
1 WRITE DATE/
  -TITLE   /
  CARD ON /
)ISK FILE/
                           88

-------
                  /PRINT SUB'
                  /TOTAL FOR
                  / PREVIOUS
                 /SVC. CONT.
                 '    NO.
                     PRINT
                     GRAND
                     TOTAL
                     CLOSE
                     FILES
                C    STOP   J
89

-------
90

-------
1
                                          PRINT SUB
                                          TOTAL FOR
                                          PREVIOUS
                                          MISC. TX.
                                             NO.
                     91

-------
                      PRINT SUB
                      TOTAL FOR
                       PREVIOUS
                     PKT.  Al'TH.
                        NO.
92

-------
    WRITE
    RECORD
     OH
'DISK FILE  j
                           93

-------
94

-------
FLAG
ERROR
95

-------
(CLOSE  \
FILES   >
NO



SAVE
EMPL
NO. A
DA

NEW
OYEE
OT
TE
                     0
                       96

-------
97

-------
  SORT
  EDIT
  FILE
 INTO A
TEMP SORT
 FILE BY
  ACCT.
   NO.
                                                                      Q
 O
                          98

-------
99

-------
100

-------
NOTE:  WHEN READING
       EDIT FJLES ALL
       SIX OF4THE EDIT
       FILES IfILL BE
       READ 01JE AT A
	TTMT UNTIL THEY
       HAVE ALL BEEN
       PROCESSED
                                                  JREAD
                                                 'CROSS-REF
                                                 'ILE)  KEY-/ 7
                                                 1C  IN  ON
                                                 :COUNT NO
                                                                                               -65 - -f - -- -
                                                                                                            1

                                                                                               -C5-	
                                                                                                           ~]
                                                                                               -D5	,
                                                                                               	,_	1
                                                                                               -E5-  -I	
                                                                                              - G5 —•	

                                                                                              I	+	I
                                                     101

-------
                                                                                        1-A5-
Cl--f	1

                      62- n ---- .
                                   YES

- C2 -,


SAVE LABOR
COST
CATEGORY
NO.
-^
1
i^V RECORQ/'V
L><_J ;
rC3- + 	 -|
1 1
t t
1 i
1 i
- co --i
•
	
SAVE LABOR
NON LABOR
COST CATEGORY
NO.
                                                                                                      I
                                                                                                     J.
                                                                                         	I-	1
                                                                                        rB5- -I	
                                                                                        !	I
                                                                                        r1-
                                           r H3-
                                                                 r- H4 - *	.
                                                                 I	,	J
  4


-J


                                                                                        r J5 - H	
                                                102
— K3-
1
I
-
1
1
-i. 	 (
1
1
t
1
1
l^
r
i
i
4
1
1
                                                                   K4- -i	
                                                                                        4-
                                                                                        I
                                                                                        I
                                                                                        L

-------
                                                  ADD COST
                                                CENTER VALUE
                                                   TO COST
                                                   CENTER
                                                 ACCUMULATOR

r-C2- H	,
                                                                       I /         J
                                                                       1 '•CCtlMULATEDT
                                                                          VALUES  OF/ i
                                                                      i£OST CENTEW
I      ZERO      i
OUT  INDIVIDUAL1
*  ACCUMULATED 4
     VALUES     i
      PRINT
      ERROR
i /  MESSAGE
                             SORT
                             SOLVED
                          _ . COSTS. _
                             FILE
                              BY
                          r J -COST- —
                            CENTER
                                               r- 64-	1
                             READ
                            SORTED
                       I /    FILE
                         /   PRINT   I	
                         ACCUMULATED/^   >    H
                        /VALUES OF  /   r
                        COST CENTER/
                          I  WRITE
                         ACCUMULATED
                        W VALUES ON
                        /DISK TABLE
                        I   "COSTS"
                                                                               	I
                            103

-------
- Al - -L-	1
                                                                                    	.-	I
                                                                                   I-B5-4-	1
                                                                                   r-cs-4-	1
                                                                                    	1	1
                                                                                   r
                                                                                    E5	1	,

                                                                                   r- H5 --	
                                                                                   !	,	i
                                                                                    -K5 - J	
                                                                                   I	+	1
                                             104

-------
                                COMPUTE
                             PERCENTAGES
                             _FgR.ALLOC.
                                 CODE
CALCULATE NON-
|  DIRECT COST |
4   TO DIRECT  4
     COST     :

I
I
t
I
1	,	


^05 -	
                                                                      :	i
                                                                       -E5- -4-	,
                         	,	1
                                                - K 4 - •*•	.
                                                                      rK5 - *	
                                                                      I	+	1
                            105

-------
                                                                  MOVE CURRENT  I
                                                                  J    COST TO   i
                                                                  PREVIOUS PERIOD
                                                                COST.  MOVE ZERQ TO
                                                                   CURRENT COST
                                                                      REWRITE
                                                                        CM
                                                                      FILE
                                                                  II RECORD
EOF X.  I YES     I
                         ZERO  -    YES   I
                         FILE
                        OPTI
                                                                  i	Y	I
                                                                MOVE YTD COST 1C)
                                                               PREVIOUS YTD COST
                                                                 -MOVE ZEROS TO+
                                                               URjtENT, PREVIOUS,
                                                                   AND YTD COST'
_ ^	I
                   r-K2-
                                           - K 3 - •*•	
                                                                                         r-K5 -	
                                                                                         I	+	1
                                               106

-------
                                             - -t	.
1	
                                                             ;	,	i
                                                              - D4 - -t	1
                                                             I	I

                                                                                  rB5- -•	•
                                                                                  •C5 - -i	
                                                                                  •D5	
                                                                                  -E5-
                                             107

-------
NOTE:  KEY •= THE
       CONCATENATION 01
       ACCT . BO. , COST '
       CENTER) AND
 	,CO_ST_ CATEGORY
                                       0—
                        M r, .  . r—	(   ^^^   ,_ u i _
                                                                                                         _J
                                                   108

-------
                                           --A3 - T-	
                                           \_    START J,
                      82-1	
                                             B3_,r 	
                                                 OPEN
                                                 FILES
>
                                                                    B4	
ADD I
COSTS L
TO COST f
ACCUM. |
r co-
' I
                                                                                         	NO-	1
                                                                                         rC5-	1
  SORT
  TEMP
   IIE
ASCENDING
BY MATCH
                                                109

-------
                                                  A3- i-	.
     SORT
     TEMP
_V- -FUE - -.
   ASCENDING
      BY
    '-MAfGH
     CODE
                                                                                                 - A5 - -)-	
•- Kl	1- — -- -
                                                                        r
                                                                          E4- J	
                                                                        I	,	I
                                                                        i-G4- <	
. H4	
                        - JJ —
                                                                                                     ACCUM
                                                                                                    COSTS BYi  |
                                                                                                   TCH  CODE /  I
                                 BY/t
                                 L/  !
                        -ES-4^	1
                           SET NEVJ
                        MATCH CODE TC
                          PREVIOUS
                         MATCH CODE
                                                                                                     ZERO
                                                                                                     COST
                                                                                                    ACCUM.
                                                                                                - G5 — -
                                   ]
                            O
                       r- H5 " -I	1


                       •i               4-

                                      I
                                                     PRINT
                                                     ACCUM.  L
                                                    COSTS BY/,
                                                l/MATCH COD

-------
                                               ADD COSTS
                                                  TO
                                              •REVIOUS  COS!
                                             [ACCUMULATOR
                                                 o
                          o
111

-------
SET COUNT TO
    1  SET
  MAX-COUNT
    TO 3
 EEWIND  TEMP
    FILE
     TO
  BEGINNING
                       112

-------
                                                                            G
                                                                         30 - n	

                                                                        -E4- •.	
                                                                       _ -4	.	

                                                                                                    o
ADD
COSTS
TO COST
ACCUM.
- C4 -
•^

YES !


r
1 1
                                                                                               rB5--. ,	,
•- K I ~ — — -  —

                                                                                               r
                                                                                               I  /  PRINT   /'
                                                                                               1  /  ACCUM.  II
                                                                                                   COSTS BY/ 7
                                                                                                . MATCH CODE/  '

-------
c
START
     OPEN
     FTTF.fi
BUILD MATRIX
ACCUMULATOR
WITH COLUMNS
BEING COST
CENTERS &
ROWS BEING
COST CATEGOR-
IES
                                             /READ COST
                                            MATRIX
                                               NX) CURRENT
                                               VALUE IN CMF
                                               RECORD TO MA-
                                               TRIX ACCUMU-
                                               LATOR AT
                                               FIRST POSI-
                                               TION OF COST
                                               CENTER & COST
                                               CATEGORY
                                                 114

-------
                 CqMPUTE DIFFERENCE
                  IBETWEEN ACTUAL
                      COSTS AND  T
                      BUDGETED
                       COSTS
                   — -&- _.	
                  I	,	
                                          rB5- -I-	1

                                          -E5-
115

-------
 • AI - ->-	,
                        • AZ	1	
                                                -A3 —  H	.
                                                                                             r- A5 - •
 - Bl	'	

                         82-
                                                   START
                                              r- B3-i - -
                                                                      r B4-T	,
 -Cl- -+	,
r-DI	1	
                                                   OPEN
                                                   FILES
                       I	L.	
                                     ,
                        	,	1
                                              j   BUILD A
                                            MATRIX ACCUMULATOR
                                              t    BY COST
                                              !    CENTERS    I
                                              IFIRST POSITION'
                       P-K2-	,
                                                    /READ
                                                   CURRENT
                                                   PERIOD
                                                    DATA
                                              i	J	'_J
                                                                        K4	1-	1
                                                                                             l	|
I               I
T              4
I               I
I               I
                                                                                              -D5 --.	
                                                                                              	,	I
                                                                                              -E5- -i	
                                                                                                          ~1
                                                                                             r- Ho — i	;
                                                                                             r-K5 - *	
                                                                                             I	+	1
                                                  116

-------
                                                                                           - A5 -	
      CMF
r-Ci- 4	
[—01	1	
 •El  - -I-	
I
I
I	j... _

-1 rBZ-i
, ' DIVIDE
-LJ i * CURREN
1 MILL 10
<— o
ACCUM. |
T BY ^ ^
T YEAR
H GALS, ;
. 	 , r-B5- -»- 	 •
J 	 „ f 1 ! i / PRINT A I
| ^/^ ^ / READ /: / CURRENT / j j 1
' * 1 / CM / i T / YEAR UNIT/ ' X ' I
.. u...
1 <
J ._>
--| j-D?--.
p- 	 1 rcJ~ 	 1 r CO-,

X. ! ' 1 DIVIDE ACCUM '
°F\1 JSf. ,,„.,. 	
^T \ , PREVIOUS ' i
^ 1 ' 'MILLION GALS. i I
NO
. 	 1 ,-DJ 	 	 , r- DO -,
	 r-D5 - 	 	 .
1 ADD CURRENT 1 ! 1 • f PRINT / 1
1 COST TO 1 1 ! : / PREVIOUS /: X l 1
| ' MATRIX | t i/ MS? /' ^ 	 ' _l
1 ACCUM. 1 'ill ^^~^>

....

1 ADD PREVIOUS ' ' DIVIDE ACCUM. i
1 ! COST TO ' ' COST BY •
] } MATRIX i CURRENT TOTAL *
1 ACCUM. 1 MILLION GALS. i
-i -F2-,


ADD YTD ! / PRINT / , |
! • ^KT° i ; -/ UN™ r^_j t
ACCUM. i ' i/ COST / . ^**~~^
— , r- &?- -.

-G5-< 	 :
ADD PREVIOUS ' ' | 3IVIDE ACCUM. |
YEAR COST } x ^ COST BY , . i
1 " TO MATRIX | i [PREVIOUS YEAR '
ACCUM. i : I 1TLLION GALS . \
r-H?
• • c
I I

	 - H5 - 	 	 .
' ' ' / PRINT A 	 1
A ' ' /PREVIOUS / ./ f
J " \ ' /YEAR UNIT / " ^ 	 • I
i \ 1 COSTS / ^^^^^"^

- 1 ;- J? - ^H •
+ J i FT
! I 1 | >"
; i 1 i

Tl 4.
/
- -, — K?- 	 1 ---K3--1 	 1 ^K4-* 	 ; p- K5 - -i 	 •
: i < ; ! i : i
-»•+ +-> *+ 4* J-
                                                  117
                                                                                            1	4	1

-------
 . il —I	
I	L	1
 -Bl	1
       	!


            ~l
 •El	!	
-Gl — -» -  - -

                       -a? —i	

                      I-C2--1	
                       -E2	,
                      -F2
i (i
r B3--.
T)
^ — i
| ^ PRINT /
_/ ACCUM. / :
77 COST / '•
\l 1


\ f PRINT f
jl BUDGET 11
I/ VARIANCE / ,
[/ YTD / '
r-03— ,

1 / PRINT /I
j/ TREATED /[
";"7WATER CUR-/"
i/lENT PERIOD/ i
.»-
w — 	 1
' / PRINT /'
!/ RPW /!
T7 CURRENT /]
:/ PERIOD / i
,_„
1 !
1 i
+ 4
1
! 1
1 	 	 _( 	 j
r..C4 	 ,
1
1
4
\
	 1 	 1
|- D4 - H 	 ;
i +
< i
1 I
1 	 _, 	 1
rE4"fc~~]
T t
1
1
1
_4
                                                  PRINT
                                                ERCENTAGE / 1
                                                OF TOTAL
                                                PREVIOUS
                                                   YTD
             li
           E / 1
            /4
            /  |
           /  i
                                             --K3- -
             +
              !

i	*	I


    118
                                                                    --- + ---
                                                                      G4- H
                                                                    r H4 - ------
                                                                    1 ____ , ___ J
                                                                    r- J4 - •>
i              i
I              !
4             4
!              I
I              I
I	+.	1
                                                                                            A5_.
                                                                                            	h	1
                                                                                           rB5-+	1
                                                                                                        1

                                                                                            D5 —	
                                                                                           -E5- H	
                                                                                                       ~l
                                                                                          - G5
                                                                                           • H5 — -i	
                                               	H	I
                         J5 - -i	1
                                     I
                                     I
                                     4.
                                                                                           -K5 - +	
                                                                                           I	+	1

-------
                                                                                               ~ A5	•- - --
I	;
i-81	'	:
_Ci - -4	i
 •El - •+	
                        V   START   J
                          62--,- ---
                             OPEN
                             FILES
                        I-C2 -•
              I	-   ! /READ    7
                  7   ; /   DATE-   /
                  Z	hf    TITLE  / |
                        I/    CARD   / ,
              ,	   !
              	y^  4/   READ   /
                  r     ! /   CURRENT I
                        I/    RPW   /
                    •   I /   READ   /
                  X   ^/   YTD    /
            -I          7    RP"   /
                                                - B3- J	
                                                •C3- 4.	1
                                                •D3 —•
                                                 .	_,	i
                                                -E3 - •<	
    O
                                                                         94-
   CALCULATE'
DOSTS BY ZONE
JSING CURRENT
   RE\'ENUE
 RODUCING WAT
   CALCULATE I
 CURRENT UNIT!
 COST AND PER-J
  CENTAGE BY I
     7.nnF<;   I
   CALCULATE
IOSTS BY ZONE
 USING YTD RE
 VENUE PRODU-
  CING HATER
    I
   CALCULATE
 YTD UNIT
 COST AND PER
  CENTAGE BY
                                                                         	<.	I
                                                                                               1-65-
                                                                                                -C5- -I	
                                                                                                -05 —'	

                                                                                               -E5- -I	,
                                                                             PRINT
                                                                            CURRENT
                                                                         UNIT  COST
                                                                           PERCENTS
                                                                         	J	I

                                                                                               L	.
                                                    119

-------
c
START
/    OPEN   \
(     FILES   t
  I             ,- - 1
 /   DATE-  /   X
 /   TITLE  /     ^
 /    CARD   /
               YES
                            PRINT
                            ERROR
                           MESSAGE
        NO
                           O
                                                                  /WRITE CM
                                                                  /  FILE
                                                                  I RECORD ON
                                                                 /   TAPE
                                                                          O
                                                                          0
                                                  120

-------
121

-------
                      :- J3-	

r- K ?	
                      -K3- -1	
                      1	»	1
                           122
                                             -K4	1-	
                                                                  r-K5 - H	
                                                                  I	+	1

-------
                                                       r- H3 --	
- K 2 -	:

                     123

-------
                                SECTION 5

                             PROGRAM LISTING
     This section includes a source listing of all the computer programs
used in the Cost Analysis System.  The programs are written in American
Standard COBOL within an IBM 370 environment, and thus, each program
listing will provide an identification division, an operating environment
division, a data format division, and a procedures division.
                                   124

-------
    PGMNAME=WUASBCCT
IDENTIFICATION DIVISION.
PRD&RAM-ID. WUA5&CCT.
AUTHOR. ACT SYSTEMS,  INC
        -SUITE 2UO
        807 U MORSE BLVD
        WINTER PARK,  PL   32789.
DATE-WRITTEN. MAY  1977.
DATE-COMPILED.
REMARKS. THIS PROGRAM EDITS  THE  CLST  CENTtR  DESCRIPTION
         CARDS, FLAGS ANY  DISCREPANCIES,  AND BUILDS TriE
         COST CENTER  TABLE  FILE.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER.  IBM-370.
OBJECT-COMPUTER.  IBM-370.
SPECIAL-NAMES.
    C01 IS NEW-PAGE.
INPUT-OUTPUT  SECTION.
FILE-CONTROL.
    SELECT CARD-IN
        ASSIGN TO  UR-2540R-S-CARD1N
        ACCESS MODE IS SEQUENTIAL.
    SELECT PRINT-OUT
        ASSIGN TO  UR-1403-S-PRIMGUI
        ACCESS MODE IS SEQUENTIAL.
    SELECT COST-CNTR-TABF1
        ASSIGN TO  DA-3330-I-CCTABFI
        ACCESS MODE IS SEQUENTIAL
        RECORD *EY  IS CC-NUrtBER.
DATA DIVISION.
FILE SECTION.
FD  CARD-IN
    RECORD CONTAINS 80 CHARACTEkS
    LABtL RECORDS  ARE OMITTED
    DATA RECORD IS  INPUT-CARD.
01  INPUT-CARD.
    05  CC-NO       PIC X(4).
    05  GVFLONl     PIC X.
    05  CC-NAMEi    PIC X113) .
    05  OVFLOW2     PIC X.
    05  CC-NAME2    PIC X(13).
    05  OVFLDW3     PIC X.
    05  FILLER      PIC X(47) .
01  DATE-CARD.
    05  DATE-IN     PIC X(16) .
    05  TITLE-IN    PIC X(2^).
    05  FILLER      PIC X(38).
Fui  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS

                         125

-------
    LABEL RECORD
    DATA RECORD
01  PRINT-LINE
FO  COST-CNFR-TA
    BLOCK CDNTAI
    RECORD CDNTA
    LABEL RECORD
    DATA RECORD
01  CC-kEC.
    05  CC-iMUMBt
    05  CC-NAME1
    05  CC-NAME2
WORKING-STORAGE
77  TITLE-1
77  LINt-CT
77  PAGfc-NO
77  MAX-LINE
77  CC      PIC
77  DD      PIC
77  Lh      PIC
77  1C
77  LAST-2  PIC
77  LAST-3  PIC
01  LAST-CC-NO.
    05  LAST-F
    05  LAST-S
    05  LAST-I
01  FLAGS.
    05  BUF-FLG
01  HEADING-LINE
    05  FILLER
    05  TITLE
    05  FILLER
01  DATE-PAGE-LI
    05  FILLER
    05  FILLER
    05  DATE-1
    05  FILLER
    05  FILLER
    05  FILLER P
    05  FILLER
    05  PAGE-1
    05  FILLER
01  TITLE-LINE.
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
S ARE OMITTED
IS PR I NT-LINE.
    PIC X (133 ) .
BFI
NS d RECORDS
INS 30 CHARACTERS
5 ARE STANDARD
IS CC-REC.

R   PIC 9(4).
    PIC X(13) .
    PIC X (13).
SECTION.
PIC X(24).
PIC 9(4) COHP VALUE 0,
PIC 9(4) COMP VALUE 1-
PIC 99 COMP VALUE 56.
9 CUMP-
9 COMP.
9 COMP.
PIC 9 CQMI-.
99.
999.
PIC 9(4) COMP.
PIC 9(4) COMP.
PIC 9(4) COMP VALUE
                0.
OCCURS 3 TIMES PIC 9-
PIC
PIC
PIC
NE.
PIC
PIC
PIC
PIC
PIC
1C X(58
PIC X(5
Xi
XI
XI

X
X
X
X
X
      51)
      24)
      56)
VALUE SPACES
VALUE SPACES
      VALUE SPACE-
      6) VALUE 'DATE:
      18) .
      3b) VALUE SPACES
      3) VALUE 'FuR'.
         VALUE SPACES.
         VALUE «PAGE  '
PIC
PIC
ZZZ9.
XX VALUE
             SPACES
PIC X(7) VALUE SPACES.
PIC X18J VALUE
PIC X(32) VALUE
PIC X(l'l) VALUE
PIC X(29) VALUE
PIC X(14) VALUE
            FUNCTION'.
            SPACES.
            •SUBFUNCT10N'.
            SPACES.
            •IDENTIFICATION
                         126

-------
    05  FILLER  PIC X(32) VALUE SPACES.
01  DATA-OUT.
02  DATA-LINE OCCURS 2 TIMES.
05
05





05
FILLER PIC X.

DATA-BLOCK OCCURS 3
10 CC-NO
10 FILLER
10 CC-NAME
10 FILLER
10 ERRDR-MSG
FILLER
PIC
PIC
PIC
PIC
PIC
?IC

TIMtS.
X (4) .
XX.
X(13).
X.
X(20>.
X( 12) .
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT CARD-IN.
    OPEiM OUTPUT PRINT-OUT, COST-CNTR-T AB F I .
CLEAR-FIELDS .
    MOVE SPACES TO DATA-QUT.
    MOVE ZEROS TO FLAGS.
READ-CARDIN.
    READ CARD-IN AT END GO TO CLOSE-ROUTINE.
FILL-HEADING.
    MOVt DATE-IN TO DATE-1.
    MOVE TITLE-IN TO TITLE-1.
PRINT-HEADING .
    PERFORM BLANK-LINE.
    WRITE PRINT-LINE BEFORE ADVANCING NEW-PAGE.
    MOVE 'COST CENTER DESCRIPTIONS'  TO  TITLE.
    MOVt HEADING-LINE TO PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE PAGE-NU TO PAGE-1.
    MOVE DATE-PAGE-LINE TO PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE TITLE-1 TO TITLE.
    MOVE HEADING-LINE TO PRINT-LINE.
    PERFORM WRITE-OUT.
    PERFORM BLANK-LINE THRU WRITE-OUT.
    MOVE TITLE-LINE TO PRINT-LINE.
    PERFORM WRITE-OUT.
    PERFORM BLANK-LINE THRU WRITE-OUT.
START-EDIT.
    PERFORM READ-CARDIN.
EDIT-STfcPS.
    MOVE .1 TO LN.
    IF CC-NO  OF INPUT-CARD NOT  NUMERIC
        MOVE  1 TO CC. DD
        PERFORM FULL-BUFFER UNTIL  FLAGS  = ZEROES
        MOVE  'NOT NUMERIC1 TO ERROR-MSG  (LN,  CC)
        MOVE  2 TO LN
        PERFORM CHECK-OVERRUN THRU CHECK-END
        PERFORM FILL-BUFFER THRU WRITE-DISK

                         127

-------
         GO TO START-EDIT.
     MOVE CC-NO OF INPUT-CARD TO LAST-3, CC-NUMBER.
     IF LA5T-3 = 0
         MOVE  1 TO CC,  DO
         PERFORM FULL-BUFFER UNTIL FLAGS = ZEROES
         MOVE  CC-NO OF  INPUT-CARD TO LAST-F
         PERFORM CHECK-SEQ-I THRU CHECK-END
         PERFORM FILL-SUFFER THRU *RITE-DISK
         GO TO START-EDIT.
     MOVE CC-NO OF INPUT-CARD TO LAST-2.
     IF LAST-2 = 0
         MOVE  2 TO CC,  DD
         PERFORM FULL-BUFFER UNTIL FLAGS = ZEROES OR DD > 3
         MOVE  CC-NO OF  INPUT-CARD TO LAST-S
         PERFORM CHECK-SEQ-F THRU CHECK-ENJ
         PERFORM FILL-BUFFER THRU ^RITE-DISK
         GO TO START-EDIT.
 EDIT-END.
     MOVE 3 TO CC , OD.
     PERFORM FULL-BUFFER.
     PERFORM CHECK-SEQ-S THRU CHECK-END.
     PERFORM FILL-BUFFER THRU bRITE-DISK.
     GO TO START-EDIT.
 CHECK-SEQ-S.
     IF CC-NUMBER / 100 * 100 NOT = LAST-S
         MOVE  'NO SUBFUNCTION' TO ERROR-MSG (LN, 2).
 CHECK-SEQ-F.
     IF CC-NUMBER / 1000 * 1000 NOT = LAST-F
         MOVE  'NO FUNCTION' TO ERRLR-MSG (LN, 1).
 CHECK-SEQ-I.
     IF CC-NUMBER NOT > LAST-I
         MOVE  'SEQUENCE ERROR1 TO ERROR-MSG (LN, CC)
         MOVE  2 TO LN.
     MOVE CC-NUMBER TO  LAST-I.
 CHECK-OVERRUN.
     IF QVFLOW1 NOT = SPACE OR OVFLOI*2 NOT = SPACE
         OR OVFLOW3 NOT = SPACE
         MOVE  'FIELD OVERRUN1 TO ERROR-MSG (LN, CC)
         MOVE  2 TO LN.
 CHECK-TEXT.
     IF CC-NAME1 OF INPUT-CARD = SPACES
         AND CC-NAME2 GF INPUT-CARD = SPACES
         MOVE  'NO TEXT1 TO ERROR-MSG (LN, CC)
         MOVE  2 TO LN.
 CHECK-END.
     EXIT.
 FULL-BUFFER.
* BUFFER EMPTY THEN FLAGS=0 BUFFER FULL THEN FLAGS=1
     IF BUF-FLG (DDJ NOT = o
         MOVE  0 TO 1C

                          128

-------
        PERFORM WRITE-DATA 2 TIMES
        MOVE ZEROES TO FLAGS
        PERFORM BLANK-LINE THRU WRITE-OUT
        PERFORM PAGE-OVFLOW.
    AOD 1 TC DD.
WRITE-DATA.
    ADO 1 TO 1C.
    MOVE DATA-LINE (1C) TO PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE SPACES TO DATA-LIME (1C).
FILL-BUFFER.
    MOVE CC-NAME1 OF INPUT-CARD TL CC-NAME  (1, CO.
    MOVt CC-NAME2 OF INPUT-CARD TO CC-NAME  (2, CO.
    MOVE 1 TO BUF-FLG  (CO.
    MOVE CC-NO OF INPuT-CARD TO CC-KO OF DATA-LINE  (1, CO
WRITE-D1SK.
    IF LN NOT > 1
        MOVE CORR INPUT-CARD TO CC-REC
        WRITE CC-REC INVALID KEY
            MOVE INPUT-CARD TO PRINT-LINE
            PERFORM WRITE-OUT
            PERFORM BLANK-LINE THRU WRITE-OUT.
BLANK-LINE.
    MOVE SPACES TO PRINT-LINE.
WRITE-OUT.
    WRITE PRINT-LINE BEFORE ADVANCING 1.
    ADD 1 TL) LINE-CT.
PAGE-OVFLOW.
    IF LINE-CT > MAX-LINE
        ADD 1 TO PAGE-NO
        MOVE 0 TO LINE-CT
        PERFORM PRINT-HEADING.
CLOSE-ROUTINE.
    IF FLAGS > 0
        MOVE 0 TO 1C
        PERFORM WRITE-DATA 2 TIMES.
CLOSE-FILES.
    CLOSE CARD-IN, PRINT-OUT, COST-CNTR-TABFI.
PROGRAM-END.
    STOP RUN.
                         129

-------
    PGMNAME=WUASB5AT
IDENTIFICATION DIVISION .
PROGRAM-ID. WUASBSAT.
AUTHOR. ACT SYSTEMS, INC
        SUITE 200
        807 W MORSE BLVD
        WINTER PARK, FL 32789.
DATE-WRITTEN. JUNE 1977.
DATE-COMPILED.
REMARKS. THIS PROGRAM EDITS THE SPECIAL ACCOUNT  DESCRIPTION
         CARDS,  FLAGS ANY DISCREPANC 115 , ANO BUILDS  THE  SPECIAL
         ACCOUNT SEARCH TABLE FILt.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
SPECIAL-NAMES.
    C01 IS NEH-PAGE.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT CARD-IN
        ASSIGN TO UR-2540R-S-CARDIN
        ACCESS MODE IS SEQUENTIAL.
    SELECT PRINT-GUT
        ASSIGN TO UR-1403-S-PRINTGUT
        ACCESS MODE IS SEQUENTIAL.
    SELECT SPECIAL-ACCT-TABFI
        ASSIGN TO UT-3330-S-SATABF1
        ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD  CARO-IN
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD  IS INPUT-CARD.
01  INPUT-CARD.
    05  SA-NO       PIC XX.
    05  SA-OVFLUW1  PIC X.
    05  SA-NAME      PIC X(20).
    05  SA-OVFLOW2  PIC X.
    05  FILLER      PIC X(56) .
01  DATE-CARD.
    05  DATE-IN      PIC X(18) .
    05  TITLE-IN    PIC X(24) .
    05  FILLER      PIC X (38) .
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD  IS PRINT-LINE.
01  PRINT-LINE      PIC X(133).


                             130

-------
FD  5PECI AL-ACCT-TABFI
    BLOCK  CONTAINS 0 RECORDS
    LABtL  RECORDS ARE STANDARD
    DATA RECORD IS SPEC-ACCT-REC ,
01  SPFC-ACCT-REC.
    05  RECCRD-CDUNT.
        10  NO-OF-RECS  PIC 9(4).
        ID  FILLER      PIC X(ltt ) .
    05  5PEC-ACCT OCCURS 1 TO 99 TIMES
        DEPENDING ON NO-OF-RECS
        ASCENDING KEY IS SA-NO INDEXED 6Y  IA
        10  SA-NO       »IC XX.
        10  SA-NAME     PIC X(2G).
WORKING-STORAGE SECTION.
77
77
77
77
77
01
L
L
P
M
I
H
AST
INE
AGE
AX-
E
EAD
05


01









01



01









01

0
0
D
0
0
0
0
0
0
0
0
0
T
0
0
0
D
0
0
0
0
0
0
0
0
0
E
0
5
5
ATt
5
5
5
5
5
5
5
5
5
-5A
-CT
-NO
LINE

ING-
FILL
FILL
FILL
-LIN
FILL
FILL
DATE
FILL
FILL
FILL
FILL
PAGE
FILL
1TLE-LI
5
5
5
ATA
5
5
5
5
5
5
5
5
5
RR-
5
FILL
TITL
FILL
-OUT
FILL
SA-N
FILL




PIC
LINt
ER
ER
ER
E.
ER
ER
-1
ER
ER
ER
ER
-1
ER
NE .
ER
E
ER
.
ER
0
ER
PIC
PIC
PIC
PIC
9 C
•
PIC
PIC
PIC

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

PIC
PIC
PIC




SA-NAME
FILL
SA-E
FILL
SA-E
FILL
F IEL
ER
R'ROR
ER
RROR
ER
DS.
ERRLiR-FL

1

2


99
9(
9(
99
UMP

X(
X (
X{

X
X(
X(
X(
X (
X (
X(
zz
XX

X t
X(
X (

PI
PI
PI
PI
PI
PI
PI
PI
PI

V
4)
4)
C
•

52
28
53

VA
6 )
18
40
3)
53
5 )
Z9
A


LUE 0
COMP
COMP
OMP VA


)
)
)

L

)
)

)

•
VA

54
24
55

C
C
C
C
C
C
C
C
C


)
)
)

X


VALU
VALU
VALU

UE SP
VALUE
*
VALU
VALUE
VALU
VALUE

LUE 5

VALU
•
VALU

(41 ) .
•
VA
VA
LU


E
E
E

AC
i

E
i
E
i

PA

E

E



LUE 0.
LbE 1 •
E 56.


SPACES.
'SPECIAL
SPACES.

E.
DATE: «.

SPACES.
FOR' .
SPACES.
PAGE '.

CES.

SPACES.

SHACES.


XX .
X
X
X
X
X
X
X

0 OCCURS
(8 ) .
(20) .
(5) .
(20) .
(5) .
(20) .
(12) .









2 TIMES








PIC X( 2
                                         ACCOUNT  DESCRIPTIONS'
PROCEDURE DIVISION.


                             131

-------
OPEN-FILES.
    OPEN INPUT CARD-IN.
    OPE,'* OUTPUT PRINT-OUT, SPECIAL-ACCT-TABFI .
CLEAR-FIELDS.
    MOVE SPACES TO DATA-OUT.
    MOVE SPACES TG ERR-FIELDS.
    MOVE ZERO  TO NO-OF-RECS.
    SET IA TO  1.
READ-CARDIN.
    READ CARD-IN AT END GO TO CLOSE-ROUTINE.
FILL-HEADING.
    MOVE DATE-IN TO DATE-1.
    MOVE TITLE-IN TO TITLE.
PRINT-HEADING.
    PERFORM BLANK-LINE.
    WRITE PRINT-LINE BEFORE ADVANCING NEW-PAGE.
    MOVE HEADING-LINF TG PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE PAGE-NO TO PAGE-1.
    MOVE DATE-LINE TO PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE TITLE-LINE TO PRINT-LINE.
    PERFORM WRITE-OUT.
START-EDIT.
    PERFORM READ-CARDIN.
    IF SA-NO UF INPUT-CARD =  '**'
        PERFORM BLANK-LINE THRU WRITE-OUT
        MOVE 5A-NAME UF INPUT-CARD TO SA-NAME OF DATA-CUT
        MOVE DATA-OUT TO PRINT-LINE
        PERFORM WRITE-OUT
        PERFORM BLANK-LINE THRU WRITE-OUT
        GO TO  START-EDIT.
    MOVE 1 TO  IE.
ERROR-CHECKS.
    IF SA-NO OF INPUT-CARD IS NOT NUMERIC
        MUVE 'NUT NUMERIC1 TO ERROR-FLO  (IE)
        MOVE 2 TO IE.
    IF  SA-NAME OF INPUT-CARD = SPACES
        MUVE 'NO TEXT' TO ERROR-FLD (IE)
        MOVE 2 TO IE.
    IF  SA-OVFLOW1 NOT = SPACE OR SA-OVFLOW2  NOT = SPACE
        MOVE 'FIELD OVERRUN' TO EkRLR-FLD  (IE)
        MOVE 2 TO IE.
    IF SA-NU OF INPUT-CARD NOT > LAST-SA
        AND SA-NO OF INPUT-CARD NOT = ZERUS
        MOVE 'SEQUENCE ERROR' TO ERROR-FLD  (IE)
        MOVE 2 TO IE.
    IF IE < 2
        PERFORM FILL-DATA.
    MOVE SA-NO OF INPUT-CARD TO LAST-SA.


                         132

-------
WR1TE-DATA.
    MOVE CORR INPUT-CARD TO DATA-GUT.
    MOVE ERROR-FLO (1)  TO SA-ERRCR1.
    MOVE ERROR-FLJ (2)  TO SA-ERRCR2.
    MOVE DATA-OUT TO PRINT-LINE.
    PERFORM WRITF-OUT.
    MOVE SPACES TG ERR-FI^LDS, DATA-OUT.
    GO TO START-EDIT.
FILL-DATA.
    MOVE CORR INPUT-CARD TO SPEC-ACCT  (IA).
    ADD 1 TG NO-OF-RECS.
    SET I A UP BY 1.
BLANK-LINE.
    MOVE SPACES TG PRINT-LINE.
WRITE-OUT.
    WRITE PRINT-LINE bEFORE ADVANCING  1.
    ADD 1 TG LINE-CT.
    IF LINE-CT > MAX-LINE
        ADD 1 TG PAGE-NO
        MOVE 0 TO LINE-CT
        PERFORM PRINT-HEADING.
CLOSE-ROUTINE.
    WRITE SPEC-ACCT-REC.
    CLOSE CARD-IN, PRINT-OUT,  SPEC I AL-ACCT-TABFI
PROGRAM-END-
    STOP RUN.
                         133

-------
    PGMNAME=WUASBFAT
IDENTIFICATION DIVISION.
PROGRAM-IU. WUASBFAT.
AUTHOR. ACT SYSTEMS, INC
        SUITE 200
        807 k MCRSE BLVD
        WINTER PARK, FL 32789-
DATE-WRITTEN. JUNE 1977.
DATE-COMPILED-
REMARKS. THIS PROGRAM EDITS THE FINANCIAL ACCOUNT DESCRIPTION
         CARDS,  FLAGS ANY DISCREPANCIES, ANJ BUILDS THE FINANCIAL
         ACCOUNT TABLE FILE.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
SPECIAL-NAMES.
    C01 IS NEW-PAGE.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT CARD-IN
        ASSIGN TO UR-25
-------
SO  FILE-SORT
    RECORD CONTAINS 80 CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    05  SORT-FIRST-iO   PIC  X(10).
    05  FILLER          PIC  X(70).
FD  SORTED-FILE
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-CARD.
01  INPUT-CARD.
    05  FA-NO       PIC X(10).
    05  OVFLOWl     PIC X.
    05  FA-NAME1    PIC X(20).
    05  OVFLOW2     PIC X.
    05  FA-NAME2    PIC X(20).
    05  DVFLOW3     PIC X.
    05  FN-TITLc    PIC XX.
    05  OVFLOW4     PIC X.
    05  GA-TITLE    PIC XX.
    05  QVFLOW5     PIC X.
    05  FA-INTERNAL PIC X14).
    05  GVFLOW6     PIC X.
    05  FILLER      PIC X(16) .
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE      PIC X1133).
FD  FINANCIAL-ACCT-TABF1
    BLOCK CONTAINS 8 RECORDS
    RECURD CONTAINS 58 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS FA-REC .
01  FA-REC.
    05  FA-NUMBER   PIC X(10).
    05  FA-NAME1    PIC X(20).
    05  FA-NAME2    PIC X(20).
    05  FN-TITLE    PIC XX.
    05  GA-TITLE    PIC XX.
    05  FA-INTERNAL PIC X(4).
FD  SPECIAL-ACCT-TABFI
    BLOCK CONTAINS 0 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS SPEC-ACCT-REC .
01  SPEC-ACCT-REC .
    05  RECORD-COUNT.
        10  NO-OF-RECS  PIC  9(4).
        10  FILLER      PIC  X( 18J .
    05  5PFC-ACCT OCCURS  1  TO  99  TIKES
                        135

-------
        DEPENDING ON ND-OF-RECS
        ASCENDING KEY IS SA-NO INDEXED
        10  SA-NO       PIC XX.
        10  SA-NAME     PIC X(20>-
WDRKING-STDRA&E SECTION.
77  IFA     PIC 9 CDMP.
77  ISA     PIC 9 CUMP.
77  I NO     PIC 9 COMP.
77  LAST-FA     PIC X(10) VALUE SPACES
77  LINE-CT     PIC 9(4> CDMP VALUE 0.
77  PA&t-NO     PIC 9(4» COMP VALUE 1.
77  MAX-LINE    PIC 99 COMP VALUE 56.
77  SEARCH-NO   PIC XX.
01  COLUMN-HEADING
                               8Y  IA
    05
    05
    05
    05
    05
    05
    05
    05
    05
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
01  DATt-LINE
    05
    05
    05
    05
    05
    05
    05
    05
    05
FILLER
FILLER
DATE-1
FILLER
FILLER
FILLER
FILLER
PAGE-1
FILLER
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

 PIC
 PIC
 PIC
 PIC
 PIC
 PIC
 PIC
 PIC
 PIC
X(21> VALUE SPACES.
X(9)  VALUE 'ACCOUNT #'.
X(10> VALUE SPACES.
XI121 VALUE 'ACCOUNT NAME
X(34) VALUt SPACES.
X(18) VALUE 'FUNu/ACCOUNT
X(7) VALUE SPACES.
            i
            SPACtS.
                          TITLE '
X VALUE '#'
X(21> VALUE
 X VALUE SPACE.
 X(6> VALUE 'DATE
 X(18) .
 X(40> VALUE
 X(3> VALUE
             SPACES
            'FOR••
 X(53) VALUE SPACES
 X(5) VALUE 'PAGE1 .
 ZZZ9.
 XX VALUE SPACES.
01  HEADING-LINE.
    05  FILLER  PIC
    05  FILLER  PIC
    05  FILLER  PIC
01  TITLE-LINE.
    05  FILLER  PIC
    05  TITLE   PIC
    05  FILLER  PIC
01  DATA-OUT.
            X(51)
            X(30)
            X(52)

            X(54)
            X(24)
            X{55)
           VALUE
           VALUE
           VALUE
             SPACES.
             •FINANCIAL
             SPACES.
                        ACCOUNT DESCRIPTIONS'
           VALUE SPACES.

           VALUE SPACES.
    05  DATA-LINE OCCURS 2 TIMES
                    PIC X(21>.

                    iO-1  PIC XX.
                 ILLER PIC X.
                    ]-2  PIC XX.
                    :R PIC X.
                    ]-3  PIC X{4
10
10





FILLER
FA-NO.
15 FA
15 FI
15 FA
15 FI
15 FA
                               136

-------










PROCE
OPEN-
0
1
1
1
1
1
1
1
1
1
1
1
DURE
FUE
PEN
0
0
0
0
0
0
0
0
0
0
0

s
I
FI
FA
F
F
F
S
F
I
A
I
LLER
-UAME
LLER
-ERk
LLER
A-NAME
I
SA
F
I
SA
F
DIV
.
NPU
I
I

T
LLER
-NO
LLER
-ERR
LLER
S10N.

CARD-
P
P
P
P
P
P
P
P
P
P
P


I
I
I
I
1
I
I
I
I
I
I
I


N
C
C
C
C
C
C
C
C
C
C
C


1
X(
X (
X(
X(
X (
X (
X (
XX
X 1
X (
X (


20 ) .
5
2
5
) .
0) .
) .
20) .
5
•
5
1
5


SPE
) .

) .
0) .
) .


CIAL-ACC1 -TABFI
    OPEN OUTPUT PRINT-OUT, FINAMC1AL-ACCT-TABF I .
READ-CARDIN.
    READ CARD-IN AT END GO TO CLOSE-ROUT INE.
FILL-HEADING.
    MUVE DATE-IN TO DATE-1.
    MOVt TITLE-IN TO TITLE.
SORT-ROUTINt.
    OPEN OUTPUT SORTEU-FILE.
    SORT FILE-SORT ON ASCENDING KEY
        SORT-FIR5T-1C
    INPUT PROCEDURE READ-SORT-INPuT THRU
        RfcAD-SORT-INPUT-ENO
    OUTPUT PROCEDURE WRITE-SORT-OUTPUT  THRU
        WRITE-SURT-OUTPUT-END.
CLOSE-SORT-FILES .
    CLOSE SGRTED-FILE, CARD-IN.
    OPEN INPUT SORTED-FILE.
PRINT-HEADING.
    PERFORM BLANK-LINE.
    WRITE PRINT-LINE BEFORE  ADVANCING  NEW-PAGE.
    MOVE HEADING-LINE TO  PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE PAGE-NO TO PAGE-1.
    MOVE DATE-LINE TO PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVt TITLE-LINE TO PRINT-LINE.
    PERFORM WRITE-OUT.
    PERFORM BLANK-LINE THRU  WRITE-OUT.
    MOVE COLUMN-HEADING TO P'RINT-LlNE.
    PERFORM WRITE-OUT.
    PERFORM BLANK-LINE THRU  WRITE-OUT.
READ-SPtCIAL-ACC TS.
    REAJ SPECIAL-ACCT-TABFI  AT tNU
        MOVE 'SPECIAL-ACCT-TABFI  CONTAINS  NO  DATA'  TO PRINT-LINE
        PERFORM WRITE-OUT
        GO TO CLOSE-ROUTINE.
                               137

-------
START-EJIT.
    READ SOKTED-FILE AT END GO TO CLOSE-ROUT INE .
    MOVE 1 TO IFA, ISA.
    MOVE SPACES TO DATA-OUT.
CHECK-ACCT-NO.
    IF FA-NO UF INPUT-CARD = SPACES
        MOVE 'BLANK ACCOUNT #' TO FA-ERR  (IFA)
        MOVE 2 TO IFA.
    IF FA-NO UF INPUT-CARD NOT > LAST-FA
        MOVE 'SEQUENCE ERROR' TO FA-ERR  (IFA)
        MOVE 2 TO IFA.
    MOVE FA-NO OF INPUT-CARD TO LAST-FA,  FA-NO  OF  DATA-LIME  (1)
        FA-NUMBER.
CHECK-ACCT-NAME.
    IF FA-NAME1 OF INPUT-CARD = SPACES AND
        FA-NAME2  OF INPUT-CARD - SPACES
            MOVE  'ML TEXT' TO FA-ERR  (IFA)
            MOVE  2 TO IFA.
    MOVE FA-NAME1 OF INPUT-CARD TO FA-NAME  (1).
    MOVE FA-NAME2 OF INPUT-CARD TO FA-NAME  (?).
CHECK-OVFLOW.
    IF OVFLOW1 NOT = SPACE OR OVFLOfc2 NOT =  SPACE  OR
        OVFLOK3 NOT = SPACE OR UVFLOW4 NOT  =  SPACE  OR
        OVFLOI"5 NOT = SPACE OR GVFLOW6 NOT  =  SPACE
            MOVE  'FIELD OVERFUN' TO FA-ERR  (IFA)
            MOVE  2 TO IFA,
CHECK-INTERNAL-ACCT.
    EXAMINE FA-INTERNAL OF INPUT-CARD REPLACING  ALL '  '  BY  0.
    IF FA-INTERNAL OF INPUT-CARD NOT  NUMERIC
        MOVE 'NOT NUMERIC' TO FA-ERK  (IFA)
        MOVE 2 TO IFA.
    MOVE FA-INTERNAL OF INPUT-CARD TO FA-NO-3 (2).
SEARCH-SPEC-ACCTS.
    MOVE 1 TO IND.
    MOVE FN-TITLE OF INPUT-CARD TO SEARCH-NO,  FA-MO-1  (2).
    PERFORM SEARCH-ROUTINE.
    MOVE 2 TO IN3.
    MUVt GA-TITLF. OF INPUT-CARD TO SEARCH-NO,  FA-NO-2  (2).
    PERFORM SEARCH-ROUTINE.
CHECK-ERRORS.
    IF IFA < 2 AND ISA <  2
        PERFORM FILL-DATA.
    MOVE 1 TO IND.
    PERFORM ^RITE-DATA 2  TIMES.
    PERFORM BLANK-LINE THRU WRITE-OUT.
    PERFORM PAGE-OVFLOW.
    GO TO START-EDIT.
SEARCH-ROUTINE .
    SET IA TO 1.
    SEARCH ALL SPEC-ACCT  AT END

                               138

-------
        MOVE 'NO TITLE FOUND'  TO  SA-NAME  OF  DATA-LINE (IN0)
        MOVE 2 TO ISA
        MOVE ALL '*' TO  SA-ERR  (INO)
        MUVE SEARCH-NO TO SA-ND  Cf  DATA-LINE  (INO)
    WHEN 5A-NO OF SPEC-ACCT  UA)  =  SEARCH-NU
        MOVE CORR SPEC-ACCT  (IA)  TO DATA-LINE (INO).
WRITE-DATA.
    MOVE DATA-LINE  (HMD)  TO  PRINT-LINE.
    PERFORM kRITE-OUT.
    ADD 1 TO INJ.
FILL-DATA.
    MOVE CORR INPUT-CARD  TO  FA-REC.
    WRITE FA-REC INVALID  KEY
        MOVE 'INVALID KEY1  TO  FA-ERR  (IFA).
BLANK-LINE.
    MOVE SPACES TO  PRINT-LINE.
bRITE-OUT.
    WRITE PRINT-LINE BEFORE  ADVANCING  1.
    ADD 1 TO LINE-CT.
PAGE-OVFLOW.
    IF LINE-CT > MAX-LINE
        ADD 1 TCi PAGE-NO
        MOVE 0 TO LINE-CT
        PERFORM PRINT-HEADING.

    INPUT AND OUTPUT SORT ROUTINES

READ-SORT-INPUT.
    READ CARD-IN AT  END
        GO  TO READ-SORT-INPUT-ENO.
    RELEASE SORT-INPUT FROM  INPUT-RtCS.
    GO TO READ-SDRT-INPUT .
REAO-SORT-INPUT-END.
    EXIT .
WRITE-SORT-OUTPUT.
    RETURN  FILE-SORT RECORD  INTO INPUT-CARD  AT END
        GO  TO WRITE-SURT-OUTPUT-END.
    WRITE  INPUT-CARD.
    GO TO WRITE-SDRT-OUTPUT.
WRITE-SQRT-OUTPUT-END.
    EXIT.

CLOSE-ROUTINE.
    CLOSE CARD-IN,  PRINT-OUT,  SPEC I AL-ACCT-FABF I , SORTED-FILE,
        FINANCIAL-ACCT-TABFI .
PROGRAM-END.
    STOP RUN.
                            139

-------
    PGMNAME=WUASBCRF
       i)0  *
IDENTIFICATION DIVISION.
PROGRAM-ID. WUASSCRF.
AUTHOR. ACT SYSTEMS, INC
        SUITE 200
        807 W MORSE BLVD
        WINTER PARK, FL 32789.
DATE-WRITTEN. SEPTEMBER 1977.
DATE-COMPILED.
REMARKS. THIS PROGRAM BUILDS A CROSS  REFERENCE  FILE  USED TO BUILD
         THE COST MATRIX FILE A,\D  FDR COST  ALLOCATION.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
SPECIAL-NAMES.
    C01 IS NEb-PAGE.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT CARD-IN
        ASSIGN TO UR-2540R-S-CAKDIN
        ACCESS MODE IS SEQUENTIAL.
    SELECT  FILE-SORT
        ASSIGN TO UT-3330-S-FILESORT
        ACCESS MODE IS SEQUENTIAL.
    SELECT SDRTED-FILE
        ASSIGN TO UT-333-S-SORTEDFI
        ACCESS MODE IS SEQUENTIAL.
    SELECT CROSS-REF-FILE
        ASSIGN TO DA-3330-I-CRTA13FI
        ACCESS MODE IS SEQUENTIAL
        RECORD KEY  IS ACCT-NO.
    SELECT PRINT-OUT
        ASSIGN TO UR-1403-S-PRINTOUT
        ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD  CARD-IN
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORDS ARE INPUT-CARD, DATE-CARD.
01  INPUT-CARD.
    05  CODE-NO     PIC X.
    05  FILLER      PIC X(79) .
01  DATE-CARD.
    05  DATE-IN     PIC X(18).
    05  TITLE-IN    PIC X(2<»).
    05  FILLER      PIC X(38> .
SD  FILE-SORT

                               140

-------
    RECURO CONTAINS 80 CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    05  SORT-CODE   PIC X.
    05  FILLER      PIC X.
    05  SORT-FA-NO  PIC X(10).
    05  FILLER      PIC X(68).
FD  SGRTED-FILE
    RECORD CONTAINS 80 CHARACTERS
    BLOCK CONTAINS 5 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORDS ARE INPUT-REC,  INPUT-1, INPUT-2
01  INPUT-REC.
    05  FILLER PIC X(30).
01  INPUT-1.
    05  CODE-NO PIC X.
    05  FILLER  PIC X.
    05  FA-NO   PIC X(10).
    05  C-ALLOC PIC X.
    05  FILLER  PIC X.
    05  C-CAT-BLOCK.
        10  C-CAT OCCURS 2 TIMES PIC XX.
    05  FILLER  PIC XX.
    05  C-CNTR-BLK OCCURS 7 TIMES.
        10  C-CNTR      PIC X(4).
        10  MATCH-NO    PIC X(4).
    05  FILLER  PIC X(4).
01  INPUT-2.
    05  CODE-NO PIC X.
    05  FILLER  PIC X.
    05  FA-NO   PIC X(10) .
    05  C-CNTR-6LK OCCURS 8 TIMES.
        10  C-CNTR      PIC XU).
        10  MATCH-NO    PIC X(^).
FD  CROSS-REF-FILE
    RECORD CONTAINS 265 CHARACTERS
    BLOCK CONTAINS ** RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CR-RE-C .
01  CR-REC.
    05  ACCT-NO PIC X(10) .
    05  C-ALLOC PIC x.
    05  C-CATS.
        10  C-CAT OCCURS 2 TIMES PIC XX.
    05  NO-CC   PIC 99-
    05  C-CNTR-BLK  OCCURS 31 TIMES.
        10  C-CNTR      PIC X(4).
        10  MATCH-NO    PIC X(4).
FD  PRINT-OUT
    RECURO CONTAINS 133 CHARACTERS

                        141

-------
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
                PIC X(133) .
                SECTION.
                PIC 9(4) COMP VALUE
                PIC
                PIC
                PIC
                PIC
                PIC
                PIC
                      COMP.
                      COMP.
01  PRINT-LINE
WORKING-STORAGE
77  LINE-CT
77  PAGE-NO
77  MAX-LINE
77  I
77  1C
77  IR
77  ERR-HOLD
77  J
77  IE
77  CGDt-HGLO
01  ACCT-COUNTERS
    05  STL-ACCTS
    05  TTL-ACCTS
    05  STL-GOOD
    05  TTL-GOOD
01  ACCT-LINE.
                    0.
    9(4) COMP VALUE 1.
    99 COMP VALUE 56.
    9 COMP.
    99 COMP.
    9 COMP.
PIC
PIC
PIC
X,
9
9
9
                      COMP.
                    PIC
                    PIC
                    PIC
                    PIC
        9(6)
        9(6)
        9(6)
        9(6)
         COMP
         CO HP
         COMP
         COMP
VALUE
VALUE
VALUE
VALUE
0,
0.
0,
0,









01





01

05

01









05
05
05
05
05
05
05
05
05
SORT
05
05
05
05
05
HEAD
05
FILL
05
DATE
05
05

05
05
05
05
05
05
FILLER PIC X VALUE SPACE.
TEXT-1 PIC X(4> VALUE 'PAGE'.
FILLER PIC X(ll) VALUE • TOTALS '.
FILLER PIC X(4) VALUE 'ALL '.
ALL-ACCTS PIC Z(5)9.
FILLER PIC XX VALUE SPACES.
FILLER PIC X(5) VALUE 'GOOD '.
GODD-ACCTS PIC Z(5)9.
FILLER PIC X(94> VALUE SPACES.
-ERR-LINE.
FILLER PIC X VALUE SPACE-
CARD-FLU PIC X(80) .
FILLER PIC X(5) VALUE SPACES.
FILLER PIC X(15) VALUE 'SORT CODE ERROR'-
FILLER PIC X(32) VALUE SPACES.
ING-LINE.
FILLER PIC X(54) VALUE SPACES.
ER PIC X(26) VALUE 'CROSS REFERENCE FILE INPUT'
FILLER PIC X(53) VALUE SPACES.
-LINE.
FILLER PIC X VALUE SPACE.
FILLER PIC X(b) VALUE 'DATE: '.
05 DATE-1 PIC X(18).
FILLER PIC x(40) VALUE SPACES.
FILLER PIC X(3> VALUE 'FOR'.
FILLER PIC X(53) VALUE SPACES.
FILLER PIC X(4) VALUE 'PAGE1.
PAGE-1 PIC ZZZ9.
FILLER PIC X(4) VALUE SPACES.
01  TITLE-LINE
                        142

-------
    05  FILLER  PIC X(54) VALUE  SPACES.
    05  TITLE   PIC X(24) .
    05  FILLER  PIC X(55) VALUE  SPACES.
01  COL-HEADING-1.
    05  FILLER  PIC X VALUE SPACE.
    05  FILLER  PIC X(30) VALUE  'FINANCIAL   CATEGORY        COST1
    05  FILLER  PIC X(26) VALUE   '            COST     /  MATCH'.
    05  FILLER  PIC x(76) VALUE  SPACES.
01  COL-HEADING-2.
    05  FILLER  PIC XX VALUE  SPACES.
    05  FILLER  PIC X(22) VALUE  'ACCOUNT   NON-L  LABOR  '.
    05  FILLER  PIC X(26) VALUE  'ALLOCATION    V    CENTERS /'.
    05  FILLER  PIC X(6)  VALUE  '  CODE'.
    05  FILLER  PIC X(71) VALUE  SPACES.
    05  FILLER PIC X(6)  VALUE  'ERRORS'.
01  DATA-OUT.
    05  DATA-LINE OCCURS  4  TIMES.
        10  FILLER  PIC  X.
        10  FA-NO   PIC  XUO).
        10  C-CAT-BLK OCCURS  2  TlhES.

10
10
10
10
10
15 FILLER PIC
15 C-CAT PIC
FILLER PIC X(9]
C-ALLOC PIC X.
FILLER PIC X (7]
NO-CC PIC Z9.
FILLER PIC XX.
XX.
XX.
I •

F •


10 CC-MC-BLK OCCURS 6




10
10
15 FILLER PIC
15 CC-NO PIC
15 DELIM PIC
15 MATCH PIC
FILLFR PIC X.
ERRS .
XX.
X (4) .
X.
X(4) .


                                        TIMES
            15  ERR-NO OCCURS  4  TIMES  PIC  X.
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT CARD-IN.
    OPEiM OUTPUT PRINT-OUT, C ROS S -HE F -F I i_ E ,  SORTED-FILE
READ-CARDIN.
    REAu CARD-IN AT END GD TO  CLOSE-FILES.
FILL-HEADING.
    MOVE DATE-IN TO DATE-1.
    MOVE TITLE-IN TO TITLE.
SORT-ROUTINE.
    SORT FILE-SORT ON ASCENDING  KEY
        SURT-FA-NO
        SORT-CODE
    INPUT PROCEDURE RE AD-SORT-INPUT  THRU
        READ-SORT-INPUT-END

                                143

-------
PRINT-LINE.


THRU WRITE-OUT
TO PRINT-LINE.


TO PRINT-LINE.


THRU WRITE-OUT
      CR-REC
    OUTPUT PROCEDURE WR1TE-SORT-OUTPUT THRU
        WRITE-SORT-OUTPUT-ENO.
CLOSE-SQRT-FILES.
    CLOSE SQRTED-FILE, CARD-IN.
    OPEN INPUT SORTED-FILE.
PRINT-HEADING.
    PERFORM BLANK-LINE.
    WRITE PRINT-LINE BEFORE ADVANCING NEW-PAGE
    MOVE HEADING-LINE TO PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE PAGE-NO TO PAGE-1 .
    MOVE DATE-LINE TD PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE TITLE-LINE TO
    PERFORM WRITE-OUT.
    PERFORM BLANK-LINE
    MOVE COL-HEADIN&-1
    PERFORM WRITE-OUT.
    MOVE COL-HEADING-2
    PERFORM WRITE-OUT.
    PERFORM BLANK-LINE
START-EDIT.
    MOVE SPACES TO DATA-OUT,
    MOVE 0 TO CODE-HOLD.
READ-SORTED-FILE.
    MOVE 0 TO It.
    READ SORTED-FILE AT END
    MOVE CODE-NO OF 1NPUT-1
    IF IR NUT > CODE-HOLD
        PERFORM WRITE-DISK
        PERFORM WRITE-DATA
            UNTIL I > <+ OR
        PERFORM BLANK-LINE
        PERFORM START-EDIT.
    MOVE IR TO CODE-HOLD.
CHECK-INPUTS.
    IF CODE-NO OF INPUT-1 = •!'
        PERFORM CHECK-INPUT-I THRU CHECK-INPUT-1-END
    ELSE PERFORM CHECK-1NPUT-2 THRU CHECK-INPUT-2-END .
    GG TO READ-SORTED-FILE.
CHECK-INPUT-l.
    PERFORM CHECK-FA-NO THRU CHECK-C-ALLDC.
    MOVE FA-NO OF INPUT-1 TO FA-NO OF DATA-LINE 
-------
    PERFORM CHECK-FA-MATCH.
    MOVE 1 TD I.
    PERFORM CHECK-C-CNTRS THRU CHECK-C-CNTRS-ENt).
CHECK-INPUT-2-END.
    EXI T.
CHECK-FA-NO.
    IF FA-NO OF INPUT-1 = SPACES
        MOVE '!' TO ERR-HOLO
        PERFORM ERROR-ROUTINE.
CHECK-C-CAT.
    PERFORM FILL-C-CAT VARYING 1 FRUM 1 BY 1 UNTIL I > 2
    IF C-CAT-BLOCK OF INPUT-1 = SPACES
        MOVE '2' TO ERR-HOLD
        PERFORM ERROR-ROUTINE
        GO TO CriECK-C-CAT-ENO.
    EXAMINE C-CAT-BLOCK OF INPUT-1 REPLACING ALL  ' ' oY  «U'.
    IF C-CAT-BLOCK OF INPUT-1 NOT NUMERIC
        MOVE '2' TO ERR-HOLD
        PERFORM ERROR-ROUTINE.
CHECK-C-CAT-END.
    EXI T.
CHECK-C-ALLOC.
    IF C-ALLDC  uF INPUT-1 = SPACE
        MOVE '3' TO ERR-HOLD
        PERFORM ERROR-ROUTINE.
    MOVE C-ALLOC OF IfoPUT-1 TO C-ALLOC DF DATA-LINE  (1),
        C-ALLOC OF CR-REC.
FILL-C-CAT.
    MOVt C-CAT  OF C-CAT-BLOCK (I) TU C-CAT OF C-CAT-BuK  (1.  I)
        C-CAT OF C-CATS (I).
CHECK-C-CNTRS.
    IF C-CNTR-BLK OF INPUT-2  (I) = SPACES
        GO TO CHECK-C-CNTRS-RCHK.
    IF C-CNTR DF INPUT-2 (I)  = SPACES OR
        MATCH-NO OF INPUT-2 (I) = SPACES
            MOVE '4' TO ERR-HOLO
            PERFORM ERROR-ROUTINE
            GO  TO CHECK-C-CNTR-CONT.
    IF C-CNTR OF INPUT-2 (I) .NOT NUKERIC GR
        MATCH-NO OF IivPUT-2 (I) NOT NUMERIC
            MOVE '4' TO ERR-HOLD
            PERFORM ERROR-ROUTINE.
CHECK-C-CNTR-CONT.
    ADD  1 TO 1C.
    IF 1C > 31  MOVE 'V TO ERR-HOLD
        PERFORM ERROR-ROUTINE
        GO TO CHECK-C-CNTRS-END.
    IF IR = 1 THEN MOVE 1C TO J
    ELSE MOVE I TO J.
    MOVE C-CNTR DF INPUT-2 (I) TO CC-NO (IR, J),

                             145

-------
        C-CNTR UP CR-REC (1C).
    MOVE MATCH-MO OP INPUT-2 (I> TO MATCH  (IR,  J),
        MATCH-NO OF CR-REC   (1C).
    MOVE 1C TO NO-CC OF DATA-LINE  (1), NO-CC  OF  CR-REC.
    MUVE '/' TO DEL1M (IR,  J).
    MOVE 1C TO IMD-CC OF DATA-LIUE  (1), NO-CC  UF  CR-REC.
    ADD 1 TO I
    IF I NOT > B GO TO CHECK-C-CNTR5 .
    &o TO CHECK-C-CNTRS-END .
CHECK-C-CNTRS-RCHK.
    IF IR = 1 AND I = 2 OR   IR > 1  AND  I  =  1
        MDVh '<+' TO ERR-HOLO
        PERFORM ERROR-ROUTINE.
CHECK-C-CNTRS-END.
    EXIT .
CHECK-FA-MATCH.
    IF FA-NO UF INPUT-2 NOT = FA-NO OF DATA-LINE  (1)
        MOVE '!' TD ERR-HOLi)
        PERFORM ERROR-ROUTINE
        MOVE FA-NO OF INPUT-2 TD FA-NO OF  DATA-LINE  (2).
ERROR-ROUTINE.
    IF IE NUT > 3
        ADD 1 TO IE
    ELSE MOVE 1 TO IE.
    IF IE = 1 MOVE ALL '*'   TO ERRS OF  DATA-LINE  (IR).
    MOVE ERR-HOLD TO ERR-NO (IR, IE).
WRITE-DATA.
    MOVE DATA-LINE (I) TO PRINT-LINE.
    PERFORM WRITE-OUT.
WRITE-DISK.
    ADD NO-CC OF CR-REC TO  STL-ACCTS,  TTL-ACCTS.
    IF ERRS OF DATA-LINE (1) = SPACES  AND
        ERRS OF DATA-LINE (2) = SPACES AND
        ERRS OF DATA-LINE (3) = SPACES AND
        ERRS OF DATA-LINE (4) = SPACES
            ADD NO-CC OF CR-REC TO STL-GOOD,  TTL-&OOD
            WRITE CR-REC INVALID KEY
                SUBTRACT NO-CC OF  CK-REC  FROM STL-GOOD,  TTL-GOOU
                MOVE ALL '*' TO ERRS OF  DATA-LINE (1)
                MOVE  'INVLO KEY1 TO CC-MC-BLK (1, 8).
BLANK-LINE.
    MOVE SPACES TO PRINT-LINE.
WRITE-OUT.
    WRITE PRINT-LINE BEFORE ADVANCING  1.
    ADD 1 TO LlrtE-CT.
CHECK-OVFLOw.
    IF LINE-CT > MAX-LINE
        PERFORM FILL-STL-ACCT-LINE
        PERFORM PRINT-ACCT-LINE
        MOVE 0 TO STL-ACCTS, STL-GOOD

                              146

-------
        ADO 1 TU PAGE-NO
        MOVE 0 TD LINE-CT
        PERFORM PRINT-HEADING.
REAQ-SORT-INPUT.
    READ CARD-IN AT END
        GO TD REAO-SORT-IN^UT-ENO.
    IF CODE-NO OF INPUT-CARD =  'I1 CR  '2' OR  '?'  DR  '
        RELEASE SORT-INPUT FRLM  INPUT-CARD
    ELSE MOVE INPUT-CARD TO CARD-FLu UF  5GRT-ERK-LINE
        MOVE PRINT-LINE TO SORT-ERR-LINc
        PERFORM WRITE-OUT.
    GO TO REAO-SORT-IUPUT.
READ-SORT-INPUT-END.
    EXI T .
WRITE-SURT-GUTPUT.
    RETURN FILE-SbRT RECORD INTu  INPUT-kEC AT  END
        GO TO WRITE-SORT-DUTPUT-END.
    WRITE INPUT-REC.
    GO TO WRITE-SORT-OUTPUT.
kRITE-SQRT-DUTPUT-EMD.
    EXIT.
FILL-STL-ACCT-LINE.
    MOVt STL-ACCTS TO ALL-ACCTS.
    MOVE STL-GOOD TO GOCD-ACCTS.
FILL-TTL-ACCT-LINiE.
    MOVE 'CUMM1 TG TEXT-1.
    MOVt TTL-ACCTS TO ALL-ACCTS.
    MOVE TTL-GOOD TO GOOD-ACCTS.
PRINT-ACCT-LINE.
    PERFORM BLANK-LINE THRU WRITE-OUT.
    MOVE ACCT-LINE TO PRINT-LINE.
    PERFORM V-RITE-OUT.
CLOSE-ROUTINE.
    PERFORM WRITE-DISK.
    IF DATA-OUT NOT = SPACES
        PERFORM WRITE-DATA CARVING 1 FROM 1  BY  1
            UNTIL I > *+ OR DATA-LINE  (I)  = SPACtS.
    PERFORM FILL-STL-ACCT-LiNE.
    PERFORM PRI IMT-ACCT-LINE .
    PERFORM FILL-TTL-ACCT-LINE  THRU PR INT-ACCT~LINE.
CLOSE-FILES.
    CLOSE PRINT-OUT, SORTED-FILE, CROSS-REF-FILE .
PROGRAM-FND.
    STOP RUN.
                         147

-------
    PGMNAME=WUASBCMF
IDENTIFICATION DIVISION.
PROGRAM-ID. KUASBCMF.
AUTHOR. ACT SYSTEMS, INC
        SUITE 2UO
        307 W MORSE BLVD
        WINTER PARK, FL 327d9.
DATE-rtRI TTEN. AUGUST 1977.
DATE-COMPILED.
REMARKS. THIS PROGRAM EDITS THE COST MATRIX ACCOUNT  CARDS,  FLAGS
         ANY DISCREPANCIES. AND BUILDS THE COST  ACCOUNT  MATRIX
         FILE .
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SDURCE-COMPUTtR. IBM-370-168 .
OBJECT-COMPUTER. IBM-370-168 .
SPECIAL-NAMES.
    C01 IS NEW-PAGE.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT CARD-IN
        ASSIGN TO UR-2540K-S-CARDIN
        ACCESS MODE IS SEQUENTIAL.
    SELECT CROSS-REF-FILE
        ASSIGN TO DA-3330-I-CRTABFI
        ACCESS MOUE IS SEQUENTIAL
        RECORD KEY IS ACCT-NO.
    SELECT COST-MATRIX-FILE
        ASSIGN TO DA-3330-I-CMFILE
        ACCESS MODE IS SEQUENTIAL
        RECORD KEY IS CM-NUMBER.
    SELECT FINANCIAL-ACCT-TABFI
        ASSIGN TO DA-3330-I-FATABFI
        ACCESS MODE IS RANOOM
        NOMINAL KEY IS FA-N3MINAL
        RECORD KEY IS FA-NUMBER.
    SELECT COST-CNTR-TABFI
        ASSIGN TO DA-3330-I-CCTABFI
        ACCESS MODE IS RANDOM
        NOMINAL KEY IS CC-NOMINAL
        RECORD KEY IS CC-NUMBER.
    SELECT 5PECIAL-ACCT-TABFI
        ASSIGN TO UT-3330-S-SATABFI
        ACCESS MODE IS SEQUENTIAL.
    SELECT FILE-SORT
        ASSIGN TO UT-3330-S-FILESURT
        ACCESS MODE IS SEQUENTIAL.
    SELECT SORTtD-FILE
        ASSIGN TO UT-3330-S-SORTEDFl
        ACCESS MODE IS SEQUENTIAL.

                              148

-------
    SELECT PRINT-OUT
        ASSIGN TO UR-1403-S-PRINTGUT
        ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD  CARD-IN
    RECORD CCNTAliMS 8U CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS DATE-CARD.
01  DATE-CARD.
    05  DATE-IN     PIC X ( 16) .
    05  TITLE-IN    PIC X(2M.
    05  FILLER      PIC X (36) .
FD  CROSS-REF-FILE
    RECORD CONTAINS 265 CHARACTERS
    BLOCK CONTAINS <* RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CR-REC.
01  Ck-REC.
    05  ACCT-NO PIC X(10) .
    05  C-ALLOC PIC X.
    05  C-CATS.
        10  C-CAT OCCURS 2 TIMES PIC XX.
    05  NO-CC   PIC 99.
    05  C-CNTR-bLK  OCCURS 31 TIMES.
        10  C-CNTR      PIC X(4).
        10  MATCH-NO    PIC X(M.
FD  FINANCIAL-ACCT-TAbFl
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 58 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS FA-REC.
01  FA-REC.
    05  FA-NUMBER   PIC X(10).
    05  FA-NAME     PIC X(20) OCCURS 2 TIMES
    05  FILLER      PIC X(8) .
FD  COST-CNTR-TABFI
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 30 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CC-REC .
01  CC-REC.
    05  CC-NUMBER   PIC X{4).
    05  CC-NAME     PIC X(13) OCCURS 2 TIMES
FD  SPECIAL-ACCT-TABFI
    BLOCK CONTAINS 0 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS SPEC-ACCT-REC .
01  SPEC-ACCT-REC.
    05  RECORD-COUNT.

                    149

-------
SD
01
FD
01
FD
01
FD
    10  NO-OF-RECS  PIC 9(4).
    10  FILLER      PIC X116) .
05  SPEC-ACCT OCCURS 1 TO 99 TIMES
    DEPENDING ON NO-OF-RECS
    ASCENDING KEY IS SA-NQ INDEXED
    10  SA-NO       PK XX.
    10  SA-NAME     PIC X(20>.
FILE-SORT
RECURD CONTAINS 21 CHARACTERS
DATA RECORD IS SORT-INPUT.
SORT-INPUT.
05  SORT-FIRST-16   PIC Xllb).
05  FILLER          PIC X(5) .
SORTED-FILE
RECORD CONTAINS 21 CHARACTERS
BLOCK CONTAINS 10 RECURDS
LABEL RECORDS ARE STANDARD
DATA RECORD IS INPUT-REC.
INPUT-REC.
05  FA-NO.
    10  FA-NO-1     PIC X.
    10  FA-ND-2     PIC X(9).
05  CC-NO       PIC X(4).
05  SA-NO       PIC XX.
05  MATCH-NO    PIC X(4).
05  C-ALLOC     PIC X-
COST-MATRIX-FILE
RECURD CONTAINS 8J CHARACTERS
BLOCK CONTAINS 5 RECORDS
LABEL RECORDS ARE STANDARD
DATA RECORD IS CM-REC.
CM-REC.
05  MATCH-NU    PIC X(4).
05  CM-NUMBER.
    10  FA-NO   PIC X(10).
    10  CC-NO
    10  SA-ND
                                       BY IA
    05  AMTS
XX.
9(3)V99
                PIC
                PIC
                PIC
                PIC
PRINT-OUT
RECURD CONTAINS 133 CHARACTERS
LABEL RECORDS ARE OMITTED
DATA RECORD IS PRINT-LINE.
            PIC X(133) .
            SECTION.
            PIC 9(4) COMP VALUE
            PIC 9(4) COMP VALUE
                            OCCURS 6 TIMES
01  PRINT-LINE
WORKING-STORAGE
77  LINE-CT
77  PAGE-NO
77  MAX-LINE
77  IB
77  1C      PIC
77  NF-ERR
                                0.
                                1.
            PIC 99 COMP VALUE 56.
            PIC 9 COMP-
            99 COMP.
            PIC X(20) VALUE  'RECORD NOT FOUND
                     150

-------
77
77
01
01
01
01
01
01
01
FA-NOMINAL P
CC-NOMINAL P
ACCT-COUNTERS
05 STL-ACCTS
05 TTL-ACCTS
05 STL-GOOD
05 TTL-GOOD
ACCT-LINE.
05
05
05
05
05
05
05
05
05
DATA
05
05
05
05
05
HEAD
05
05
05
DATE
05
05
05
05
05
05
05
05
05
FI
TE
FI
FI
LLER
XT-1
LLER
LLER P
P
P
P
I
I
I
I
I
I
C
C
C
C
C
C
X
ALL-ACCTS
FI
FI
LLER
LLER
GDOD-ACC
FI
-6
LLER P
LK.
FA-NO
CC
-NO
SA-NO
P
P
I
I
C
C
TS
I

P
P
P
MATCH-ND
C-
ALLOC

C

I
I
I
P

X

C
C
C
1C

X
X
P
P
P
P
X
X
X
(
P
X
X
P
(

X
X
( 10
(4)
1C
1C
1C
1C
9 6) COMP VALUE 0.
9(6) COMP VALUE 0.
9(6) COMP VALUE 0.
9(6) COMP VALUE 0.
VALUE SPACE.
(4
(1
4)
1C
X
(5
1C
94

(1
( 4
)
1


VALUE
) VALUE
VALUE '
Z(5 )9.
•PAGE
1 TO
ALL •

1 .
TALS ' .
.

VALUE SPACES.
)

)

0
)
VALUE
Z(5)9.
VALUE

) .
.
•GOOD

SPACE



•

S.



XX.

P
X(
1C
t*

) .
X.




ING-LINE.
FI
FI
FI
-L
FI
FI
OA
FI
FI
FI
FI
LLER
LLER
LLER
INE.
LLER
LLER
TE-1
LLER
LLER
LLER
LLER
PAGE-1
FI
TITLE-
05
05
05
FI
TI
FI
COL-HE
05
05
05
05
05
05
05
05
FI
FI
FI
FI
FI
FI
FI
FI
LLER
LINE.
LLER
TLE
LLER
ADING-
LLER
LLER
LLER
LLER
LLER
LLER
LLER
LLER
P
P
P

P
P
P
P
P
P
P
P
P

P
P
P
1
P
P
P
P
P
P
P
P
1C
1C
I

I
I
C

C
C
1C
I
I
I
I
I
I

I
I
I
.
I
C
C
C
C
C
C

C
C
C

C
1C
I
I
I
I
I
C
C
C
C
C
1C
X
X
X

X
X
X
X
X
X
X
(55
(22
(5

6

VA
(6
(1
1
8
(40
(3
(5
(4
)
3
)
) VALUE
) VALUE
) VALUE

SPAC
•cos
SPAC

F.S.
T MATRIX FILE
ES.

LUE SPACE.
VALUE
) .
) VALUE
VALUE
) VALUE
VALUE
•DATE

SPAC
•FDR'
SPAC
•PAGE
• 1
• *

ES.
.
ES.
i
ZZZ9.
X

X
X
X

X
X
X
X
X
X
X
X
(4

(5
)

4
VALUE

) VALUE
SPACE

SPAC
S.

ES.
(24) .
(5

(7
(1
( 1
(1
(2
( 1
(1
(1
5

)
7
7
1
1
3
0
5
) VALUE

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
SPAC

SPACE
ES.

S.
•FINANCIAL ACCOUNT
SPAC
•COS
SPAC
•COS
SPAC
•COS
ES.
T CENTER1 .
ES.
T CATEGORY ' .
ES.
T ALLGCATIDN1.
                                                   INPUT
                         151

-------
01
05
05
05
05
FILLER
FILLER
FILLER
FILLER
            PIC
            PIC
            PIC
            PIC
                    XK» VALUE SPACES.
                    X(10) VALUE  'MATCH CODE1
                    X(3> VALUE SPACES.
                    X(5) VALUE 'ERROR'.
01  COL-HEADING-2.
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
        PIC
                X(6) VALUE
                X VALUE '#'
                X(l^) VALUE
                X(4> VALUE
                X(15) VALUE
                X VALUE '#'
                X(ll) VALUE
                X(4) VALUE
                X(16) VALUE
                X VALUE '#'
                X(10) VALUE
                X(4) VALUE
                X(14) VALUE
                X(6» VALUE
                X(12> VALUE
                X VALUE '#'
                X(9> VALUE
                X(4) VALUE
                               SPACES.
                               .
                                SPACES.
                               »NAMc'.
                                SPACES.
                               .
                                SPACES.
                               'NAME1.
                                SPACES.
                               .
                                SPACES.
                               'NAME'.
                                SPACES.
                               'METHOD1
                                SPACES.
                               .
                               SPACES.
                               'FLAG1.
DATA-OUT.
05  DATA-LINE
                  OCCURS 2 TIMES
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
FILLER
FA-NO
FILLER
FA-NAME
FILLER
CC-NO
FILLER
CC-NAME
FILLER
SA-NO
FILLER
SA-NAME
FILLER
C-ALLOC
FILLER
MATCH-NO
FILLER
CM-ERR
FILLER
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
X.
X(10)
X(3) .
X(20)
X(5) .
X( .
X(20)
X(5) .
XX.
X(3) .
X(2C)
X(7) .
X.
X(l^)
X(4> .
X(7).
XX.
XX.
PROCEDURE DIVISION.
OPEN-FILES.
        OPEN INPUT CARD-IN,
            COST-CNTR-TABFI,
                        FINANCIAL-ACCT-TABFI
                         SPECIAL-ACCT-TABFI.
                                          CR05S-REF-FILE.
        OPEN
READ-CAROIN.
         OUTPUT PRINT-OUT, COST-MATR IX-FILE
                                152

-------
        READ CARD-IN AT  EN3  GO  TC  CLDSE- ROUT I NE .
FILL-HEADING .
        MOVE OATE-IN TO  OATE-1.
        MOVE TITLE-IN  TO  TITLE.
SORT-ROUTINE .
        OPEN OUTPUT SORTEU-FILE.
        SORT FILE-SORT ON  ASCENDING  KEY
            SORT-FIRST-16
        INPUT PROCEDURE  READ-SORT-INPUT  THRU
            READ-SORT-INPUT-END
        OUTPUT PROCEDURE  *RITE-SORT-OUTPUT THRU
            WRITE-SORT-OUTPUT-END.
CLDSE-Sim-FILES.
        CLOSE SORTED-FILE,  CARD-IN.
        OPEN INPUT SORTED-FILE.
-PRINT-HEADING.
    PERFORM BLANK-LINE.
    WRITE PRINT-LINE BEFORE  ADVANCING NEW-PAGE.
    MOVE HEADING-LINE  TO  PRINT-LINE-
    PERFORM WRITE-OUT.
    MOVE PAGE-NO  TO PAGE-1.
    MOVE DATE-LINE TO  PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE TITLE-LINE TO PRINT-LINE.
    PERFORM WRITE-OUT.
    PERFORM BLANK-LINE THRU  WRITE-OUT.
    MOVE COL-HEADING-1 TO  PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE COL-HEADING-2 TO  PRINT-LINE.
    PERFORM WRITE-OUT.
    PERFORM BLANK-LINE THRU  WRITE-OUT.
READ-SPECIAL-ACCTS.
    READ SPECIAL-ACCT-TABFI  AT  bND
        MOVE 'SPECIAL-ACCT-TABF1  CONTAINS NO DATA1 TO PRINT-LINfc
        PERFORM WRITE-OUT
        GO TO CLOSE-ROUTINE.
START-EDIT.
    READ SORTED-FILE AT  END
        GO TO CLOSE-ROUTINE.
    MOVE SPACES TO DATA-OUT.
FIND-FA-INFD.
    MOVE FA-NO OF  INPUT-REC  TO  FA-NOMINAL,
        FA-NO OF  DATA-LINE  (1 ) .
    IF FA-ND-1 =  '-'
        MOVE 'CONTRA ACCOUNT1  TU  FA-NAMt OF DATA-LINE (1)
        GO TO FIND-FA-INFO-CONT.
    READ FINANCIAL-ACCT-TABFI  INVALID KEY
        MOVE NF-ERR TO FA-NAME  OF  DATA-LINE (1)
        MOVE ALL  •*' TO  CM-ERR  OF  DATA-LINE (1)
        GO TO FINU-CC-INFO.

                                153

-------
    MOVE FA-NAME OF FA-REC (1) TO FA-NAME  DP  DATA-LINE  (1).
    MOVE FA-NAME OF FA-REC (2) TJ FA-NAME  OF  DATA-LINE  (2).
FIND-FA-INFC-CONT.
    MOVE FA-NUMbER TO FA-NO OF CM-NUMBER.
FIND-CC-INFO.
    MOVE CC-NO OF INPUT-REC TO CC-NOMINAL,
        CC-NO OF DATA-LINE (1).
    READ COST-CNTR-TA6FI INVALID KEY
        MOVE NF-ERR TO CC-NAME OF DATA-LINE  (1)
        MOVE ALL  '<•' TO CM-ERR OF DATA-LINE  (1)
        GO TO FIND-SA-INFO.
    MOVE CC-NUMBER TO CC-NO OF CM-NUMBER.
    MOVE CC-NAME UF CC-REC (1) TO CC-NAME  OF  DATA-LINE  (1).
    MOVE CC-NAME OF CC-REC (2) TO CC-NAME  OF  DATA-LINE  (2).
FIND-SA-INFO.
    MOVE 1 TO IB.
    PERFORM SEARCH-ROUTINE.
CHECK-COST-ALLCC.
    IF C-ALLDC UF INPUT-REC NOT =• SPACE
        MOVE C-ALLOC OF INPUT-REC TO C-ALLOC  OF  DATA-LINE  (1)
    ELSE MOVE ALL '*• TO CM-ERR OF DATA-LINE  (1),
        C-ALLOC OF DATA-LINE  (1).
CHECK-MATCH-NO.
    IF MATCH-NO DF INPUT-REC NOT = SPACES
        MOVE MATCH-NO OF INPUT-REC TO MATCH-NO  DF  CM-REC,
            MATCH-NO OF DATA-LINE (1)
    ELSE MOVE ALL '*' TO CM-ERR DF DATA-LINE  (1).
        MATCH-NO OF DATA-LINE  (1).
CHECK-ERRORS.
    ADD 1 TO STL-ACCTS, TTL-ACCTS.
    IF CM-ERR OF DATA-LINE (1) * SPACES
        MOVE 1 TO IB
        PERFORM  ZERO-AMTS 6 TIMES
        PERFORM  FILL-DATA.
    MOVE 1 TO IB.
    PERFORM KRITE-DATA 2 TIMES.
    PERFORM BLANK-LINE THRU WRITE-OUT.
    PERFORM PAGE-OVFLOW.
    GO TD START-EDIT.
SEARCH-ROUTINE.
    MOVE SA-NO OF INPUT-REC TO SA-NO OF  DATA-LINE  (IB).
    SET IA TD 1.
    SEARCH ALL SPEC-ACCT AT END
        MOVE NF-ERR TO SA-NAME UF DATA-LINE  (IB)
        MOVE ALL  '*• TO CM-ERR OF DATA-LINE  (IB)
    WHEN SA-NO OF SPEC-ACCT  (IA) = SA-NQ OF  INPJT-REC
        MOVE SA-NAME DF SPEC-ACCT UA)  TO
            SA-NAME OF DATA-LINE  ( IB)
        MOVE SA-NO OF SPEC-ACCT  (IA) TO  SA-NO OF CM-NUMBER.
FILL-DATA.

                             154

-------
     ADO  1  TO  STL-GOOD,  TTL-GOUD.
     WRITE  CM-REC  INVALID KEY
         SUBTRACT  1 FRUM STL-GOOD, TTL-GOOD
         MOVE  ALL  •*'  TO CM-ERk OF DATA-LINE  (1)
         MOVE  'INVALID KEY' TD FA-NAME OF DATA-LINE  (1).
 WRITE-DATA.
     IF  DATA-LINE  (IB) NOT = SPACES
         MOVE  DATA-LINE  (IB) TO PRINT-LINE
         PERFORM WRITE-OUT.
     ADD  1  TO  IB.
 BLANK-LINE .
     MOVE SPACES TO PRINT-LINE.
 WRITE-OUT.
     WRITE  PRINT-LINE  BEFORE ADVANCING 1.
     ADD  1  TU  LINE-CT.
 PAGE-OVFLOW.
     IF  LINE-CT >  MAX-LINE
         PERFORM FILL-STL-ACCT-L1NE
         PERFORM PRINT-ACCT-LINE
         MOVE  0 TD STL-ACCTS, STL-GOUO
         ADD  1 TG  PAGE-NO
         MOVE  0 TO LINE-CT
         PERFORM PRINT-HEADING.
 ZERO-AMTS .
     MOVE ZERO TO  AMTS OF CM-REC  (IB).
     ADD  1  TJ  IB.
*
*    INPUT  AND OUTPUT  SORT ROUTINES
*
 READ-SORT-INPUT.
     READ CROSS-REF-FILE AT END
         GO TD READ-SORT-INPUT-END.
     MOVE SPACES TD DATA-BLK.
     MOVE ACCT-NU  TO FA-NO OF DATA-BLK.
     MOVE C-ALLOC  OF CR-REC TO C-ALLUC OF DATA-BLK.
     MOVE 1 TO Ib, 1C.
     PERFORM  STORF-C-CAT 2 TIMES.
     GO  TO  READ-SORT-INPUT .
 STORE-C-CAT.
     IF  C-CAT  (IB) NUT = SPACES
         MOVE  C-CAT (IB) TU SA-NO OF DATA-BLK
         PERFORM RELEASE-INPUT VARYING 1C FROM  1  BY  1
             UNTIL 1C  > NO-CC.
     ADD  1  TD  IB.
 RELEASE-INPUT.
     MOVc C-CNTR (1C)  TO CC-NO OF DATA-BLK.
     MOVE MATCH-NO OF  C-CNTR-BLK  (1C) TO MATCH-NO  OF  DATA-BLK
     RELEASE  SORT-INPUT FROM DATA-BLK.
 READ-SORT-INPUT-END.
     EXI T.

                             155

-------
 WRITE-SORT-OUTPUT.
     RETURN  FILE-SORT  RECORD INTO INPUT-REC AT END
         GO  TO  WRITE-SORT-OUTPUT-END.
     WRITE  INPUT-REC.
     GO  TO  WRITE-SORT-UUTPUT.
 WRITE-SDRT-OUTPUT-END.
     EXIT.
>
 FILL-STL-ACCT-LINE.
     MOVE  STL-ACCTS  TO ALL-ACCTS.
     MOVE  STL-GOOD  TL)  GOOD-ACCTS.
 FILL-TTL-ACCT-L1NE.
     MOVE  'CUMM'  TO  TEXT-1.
     MOVE  TTL-ACCTS  TO ALL-ACCTS.
     MOVE  TTL-GOOD  TO  GOOD-ACCTS.
 PRINT-ACCT-LINE.
     PERFORM  BLANK-LINE  THRU WRITE-OUT.
     MOVE  ACCT-LINE  TO PRINT-LINE.
     PERFORM  WRITE-OUT.
 CLOSE-ROUTINE.
     PERFORM  FILL-STL-ACCT-LINE.
     PERFORM  PRINT-ACCT-LINE.
     PERFORM  FILL-TTL-ACCT-LINE  THRU PR INT-ACCT-L INE.
     CLOSE  PRINT-OUT,  SPEC IAL-ACCT-TABFI,  SORTED-FILE,
         FINANCIAL-ACCT-TABFI,  COST-CNTR-TABFI,  COST-MATRIX-FILE,
         CROSS-REF-FILE.
 PROGRAM-END.
     STOP  RUN.
                               156

-------
     PGMNAME=WUASBDPT
.SYSIN DO  *
  IDENTIFICATION  DIVISION.
  PROGRAM-ID.  WUASBDPT.
  AUTHOR.  ACT  SYSTEMS,  INC
          SUITE  2C3
          807  W  MORSE  BLVD
          WINTER  PARK,  PL  32789.
  DATE-WRITTEN.  JUNE  1977.
  DATE-COMPILED.
  REMARKS.  THIS  PROGRAM  EDITS THE SPECIAL ACCOUNT DESCRIPTION
           CARDS,  FLAGS  ANY DISCREPANCIES, AND BUILDS THE SPECIAL
           DEPRECIATION  TABLE.
  ENVIRONMENT  DIVISION.
  CONFIGURATION  SECTION.
  SOURCE-COMPUTER.  IBM-370.
  OBJECT-COMPUTER.  IBM-370.
  SPECIAL-NAMES.
     C01  IS  NEW-PAGE.
  INPUT-OUTPUT  SECTION.
  FILE-CONTROL.
     SELECT  CARD-IN
          ASSIGN  TO UR-2540R-S-CARDIN
          ACCESS  MODE  IS SEQUENTIAL.
     SELECT  PRINT-OUT
          ASSIGN  TO UR-1^»03-S-PRINTOUT
          ACCESS  MODE  IS SEQUENTIAL.
     SELECT  SPECIAL-ACCT-TABFI
          ASSIGN  TO UT-3330-S-SATABFI
          ACCESS  MODE  IS SEQUENTIAL.
  DATA  DIVISION.
  FILE  SECTION.
  FD  CARD-IN
     RECORD  CONTAINS  8-J CHARACTERS
     LABEL  RECORDS ARE  CHITTED
     DATA  RECORD  IS  INPUT-CARD.
  01  INPUT-CARD.
     05   CUST-CNTR         PIC  X (<» I .
     05   FILLER            PIC  X.
     05   DEP-AMOUNT        PIC  9(8)V99.
     05   FILLER            PIC  X.
     05   COUNTY-CODE       PIC  X.
     05   FILLER            PIC  X(63) .
  01  SPECIAL-TITLES.
     05   SA-NO             PIC  XX.
     05   FILLER            PIC  X.
     05   SPECIAL-TITLE     PIC  XI24).
     05   FILLER            PIC  X(53) .
  01  DATE-CARD.
     05   DATE-IN      PIC  X( 18) .

                                157

-------
    05  TITLE-IN    PIC X(24) .
    05  DEP-ACCT-1N      PIC X(10) .
    05  FILLER           PIC X(28) .
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RFCORD IS PRINT-LINE.
01  PRINT-LINE      PIC X(133) .
FD  SPECIAL-ACCT-TABFI
    BLOCK CONTAINS 0 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS SPEC-ACCT-REC.
01  SPEC-ACCT-REC.
    05  RECORD-COUNT.
        10  NO-OF-RECS  PIC 9(4).
        10  DEP-ACCT-UUT PIC X(10).
        10  FILLER       PIC X(8) .
    05  SPEC-ACCT OCCURS 1  TO  99  TIMES
        DEPENDING ON NO-OF-RECS
        ASCENDING KEY IS SA-Nu INDEXED
BY IA
10 COST-CNTR PIC X(4>.
10 DEP-AMCUNT PIC 9(8 JV99
10 COUNTY-CODE PIC X.
10 FILLER PIC X(7).
WORKING-STORAGE SECTION.
77 LINE-CT PIC 9(4) COMP VALUE
77 PAGE-NO PIC 9(4) COMP VALUE
77 MAX-LINE PIC 99 COMP VALUE 56
77 AMT-ACCUM PIC 9(8)V99
01



01









01



01


HEADI
05
05
05
F
F
F
DATE-
OS
05
05
05
05
05
05
05
05
TI
05
05
05
DA
05
05
F
F
0.
1.
VALUE 0.
NG-LINE.
ILLER
ILLER
ILLER
LINE .
ILLER
ILLER
DATE-1
F
F
F
F
ILLER
ILLER
ILLER
ILLER
PAGE-1
F
TLE
F
T
F
ILLER
-LINE.
ILLER
ITLE
ILLER
P
P
P

P
P
P
P
P
P
P
P
P

P
P
P
1C
1C
1C

1C
1C
1C
1C
1C
1C
1C
1C
1C

1C
1C
1C
X(
X(
X(

X
X(
X(
X(
X(
X(
X(
52
28
53

)
)
)

VALUE
VALUE
VALUE

SPAC
ES.
•SPECIAL ACCOUNT
SPAC

ES.

VALUE SPACE.
6)
18
40
3)
53
5)
VALUE
) .
)

VALUE
VALUE
)
V
VALUE
ALUE
•DATE

: • .

SPACES.
•FC.R'
SPAC
•PAGE
.
ES.
• .
ZZZ9.
XX

X(
X(
X{
VALUE SPACES.

54
24
55

)
) ,
)

VALUE

VALUE

SPAC

SPAC

ES.

ES.
TA-OUT.
F
C
ILLER




OST-CNTR
P
P
1C X(
1C X(
52).
4) .


                                                  DESCRIPTIONS'
                              158

-------
    05  FILLER            PIC  X(8 ) .
    05  OEP-AMDUNT        PIC  *BZ.(7)9.99.
    05  FILLER            PIC  X(56) .
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT CARD-IN.
    OPEN OUTPUT PRINT-OUT,  SPEC 1 AL-ACCT-TABFI .
CLEAR-FIELDS.
    MOVE SPACES TO DATA-OUT.
    MOVE ZERO TO NO-OF-RECS.
    SET IA TO 1.
READ-CARDIN.
    READ CARD-IN AT  END  GO  TO CLOSE-ROUTINE.
FILL-HEADIN&.
    MOVE DATE-IN TO  DATE-1.
    MOVE TITLE-IN TO  TITLE.
    MOVE DEP-ACCT-IN  TO  9EP-ACCT-OUT.
PRINT-HEADING.
    PERFORM BLANK-LINE.
    WRITE PRINT-LINE  BEFORE  ADVANCING  NEW-PAGE.
    MOVE HEADING-LINE  TO PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE PAGE-NO TO  PA&E-l.
    MOVE DATE-LINE TO  PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE TITLE-uINE  TG PRINT-LINE.
    PERFORM WRITE-OUT.
WRITE-OUT-RECS.
    PERFORM READ-CARDIN.
    IF SA-NO  =  '**'  THEN
        PERFORM BLANK-LINE  THRU  WRITE-OUT
        MOVE  SPECIAL-TITLE  TO TITLE
        MUVE  TITLE-LINE  TO  PRINT-LINE
        PERFORM WRITE-OUT
        PERFORM BLANK-LINE. THRU  WRITE-OUT
        GO TO WRITE-OUT-RECS.
FILL-DATA.
    MOVE CORR INPUT-CARD TO  DATA-OUT,  SPEL-ACCT (IA)
    MOVE DATA-OUT TO  PRINT-LINE.
    PERFORM WRITE-OUT.
    MOVE SPACES TO DATA-OUT.
    ADD DEP-AMOUNT OF  INPUT-CARD  TO  AMT-ACCUM.
    ADD 1 TO  NO-OF-RECS.
    SET IA UP BY 1.
    GO TO WRITE-DUT-PECS.
BLANK-LINE.
    MOVE SPACES TO PRINT-LINE.
WRITE-OUT.
    WRITE PRINT-LINE  BEFORE  ADVANCING  1.
    ADD 1 TO  LlNE-CT.

                   159

-------
    IF LINE-CT > MAX-LINE
        ADD 1 TO PAGE-NO
        MOVE 0 TO LINE-CT
        PERFORM PRINT-HEADING.
CLOSE-ROUTINE.
    WRITE SPEC-ACCT-REC.
    PERFORM BLANK-LINE THRU WRITE-OUT.
    PERFORM WRITE-OUT.
    MOVE AMT-ACCUM TO OEP-AMOUNT OF DATA-OUT.
    MOVE DATA-OUT TU PRINT-LINE.
    PERFORM WRITE-OUT.
    CLOSE CARD-IN, PRINT-OUT, SPECIAL-ACCT-TABFI
PROGRAM-END.
    STOP RUN.
                       160

-------
      PGMNAME=WUASBCDP
,SYS1N     DD    *
  ID  DIVISION.
  PROGRAM-ID.  WUASBCDP.
  AUTHOR.   ACT  SYSTEMS,  INC
           SUITE  200
           807  W  MORSE  BLVD
           WINTER  PARK,  PL  32789-
  DATE-WRITTEN. DECEMBER,  1977.
  DATE-COMPILED.
  REMARKS.     THIS  PROGRAM  READS  ONE  CARD
              AND  BUILDS  THE  CURRENT  DEPRECIATION
              FILE .
  ENVIRONMENT  DIVISION.
  CONFIGURATION SECTION.
  SOURCE-COMPUTER.  IBM-370.
  OBJECT-COMPUTER.  IBM-370.
  SPECIAL-NAMES.
      C01  IS NEW-PAGE.
  INPUT-OUTPUT  SECTION.
  FILE-CONTROL.
      SELECT CARD-IN
          ASSIGN  TO UR-25<+OR-S-CAROIN
          ACCESS  MODE  IS  SEQUENTIAL.
      SELECT PRINT-OUT
          ASSIGN  TO UR-1^03-S-PRINTOUT
          ACCESS  MODE  IS  SEQUENTIAL.
      SELECT DEPREC IATION-TABFI
          ASSIGN  TO UT-3330-S-DPTABFI
          ACCESS  MODE  IS  SEQUENTIAL.
      SELECT COST-CNTR-TABFI
          ASSIGN  TO DA-3330-I-CCTABFI
          ACCESS  MODE  IS  RANDOM
          NOMINAL  KEY  IS  CC-NOMINAL
          RECORD  KEY  IS  CC-NUMBER.
      SELECT FINANCIAL-COST-ALLOCATION
          ASSIGN  TO UT-3330-S-FICALFI
          ACCESS  MODE  IS  SEQUENTIAL.
  DATA  DIVISION.
  FILE  SECTION.
  FD   CARD-IN
      RECORD CONTAINS  80  CHARACTERS
      LABEL RECORDS ARE  OMITTED
      DATA  RECORD  IS  INPUT-CARD.
  01   INPUT-CARD.
      05   DATE-IN           PIC  X(18).
      05   TITLE-IN          PIC  X(24).
      05   PERIOD-IN.
          10   PERIOD1       PIC  X.
          10   FILLER        PIC  X(8>.

                       161

-------
    05  FILLER           PIC X(29).
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    05  FILLER           PIC X.
    05  PRINT-DATA       PIC X(132).
FD  DEPRECIATION-TABFI
    BLOCK CONTAINS 0 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS DEPREC I AT I DN-REC.
01  DEPRECIATION-REC.
    05  RECORD-COUNT.
        10  NO-OF-RECS   PIC 9(M.
        10  ACCT-NO      PIC XUO).
        10  FILLER       PIC X(8>.
    05  DEP-REC   OCCURS 1  TO 99 TIMES
        DEPENDING ON NO-OF-RECS
        ASCENDING KEY IS COST-CNTR INDEXED BY CC.
        10  COST-CNTR    PIC X(^).
        10  AMOUNT       PIC 9(8)V99.
        10  COUNTY-CODE  PIC X.
        10  FILLER       PIC X(7).
FD  FINANCIAL-CUST-ALLOCATION
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS 26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS DISK-OUT.
01  DISK-OUT.
    05  DISK-ACCT-NO.
        10  FILLER       PIC X(9).
        10  DISK-COUNTY-CODE PIC X.
    05  DISK-COST-CNTR   PIC X (<+ ).
    05  DISK-COST-CAT    PIC XX.
    05  DISK-CURRENT-AMT PIC 59{8)V99.
01  FIRST-TWO-RECS.
    05  FILLER           PIC X.
    05  SORT-SEQUENCE    PIC X.
    05  DISK-TITLE.
        10  DISK-DATE    PIC X(13).
        10  FILLER       PIC X{6».
FD  COST-CNTR-TABFI
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 30 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CC-REC.
01  CC-REC.
    02  CC-NUMBER        PIC X ( 
-------
WORKING-STDRA
77 SOURCE-CD
77
77
77
77
77
77
77
77
77
01



01







01



01

LINE
PAGE
PERI
-CT
-CT
DO
CC-NDMINA
NO-0
AMT-
MAX-
F-CDS
HOLD
LINE
YEARLY-UE
CURR
HEAD
05
05
05
HEAL)
05
05
05
05
05
05
05
HEAD
05
05
05
HEAJ
05
ENT-D
-1.
FILLE
FILLE
FILLE
-2.
GE SECTION
DE



L
T-CNTRS


P-TOTAL
EP-TUTAL

R
R
R

FILLER
DATE-
FILLE
FILLE
FILLE
FILLE
PAGE-
'S.
FILLE
TITLE
FILLE
-4.
FILLE
OUT
R
R
R
R
OUT

R
-OUT
R

R
•
P
P
P
P
P
P
P
P
P
P

P
P
P

P
P
P
P
P
P
P

P
P
P

P
I
I
I
I
I
I
I
I
I
I

I
1
I

I
I
I
I
I
I
I

I
I
I

I
C
c
C
c
c
c
c
c
c
c

c
c
c

c
c
c
c
c
c
c

c
c
c

c
X
99
9(
99
X(
99
9(
99
9(
9(

X(
X(
X(

X(
X(
X(
X(
X(
X(
L(

X(
X(
X(

X(
VALUE '6
i
.

CLMP VALUE 0.
4)
CLrtP V
ALUE
1 .
VALUE 12.
4)
•
COMP VAL
3)
V99 .
COMP VAL
8)
6)

56
18
58

15
18
31
3)
55
6)
4)

54
24
54

29

UE 0.

UE 56
V99 VALUE ZE
V99 VAL

) VALUE
) VALUE
) VALUE

) VALUE
) .
) VALUE
VALUE
) VALUE
VALUt
•

) VALUE
) .
) VALUE

) VALUE
UE ZE

SPAC



•
RO.
RO .

ES .
•DEPRECIATION TABLE ' .
SPAC

'PER

SPAC
•FOR
SPAC
•PAG


SPAC

SPAC

ES.

IOD ENDING: ' .

ES.
I
•
ES.
E: • .


ES .

ES.

'DEPRECIATION PERIOD
•ERED: '.





01









01




05
05
05
05
05
HEAD
05
05
05
05
05
05
05
05
05
HEAD
05
05
05
05
FILLE
PERIO
FILLE
CGM1
FILLE
-5.
FILLE
FILLE
FILLE
FILLE
FILLE
FILLE
FILLE
FILLE
FILLE
-b.
FILLE
FILLE
FILLE
FILLE
R
D-OUT
R

R

R
R
R
R
R
R
R
R
R

R
R
R
R
P
P
P
P
P

P
P
P
P
P
P
P
P
P

P
P
P
P
I
I
I
I
I

I
I
I
I
I
I
I
I
I

I
I
I
I
c
c
c
c
c

c
c
c
c
c
c
c
c
c

c
c
c
c
X
X(
X
X(
X(

X(
X(
x<
X(
X(
X(
X(
x<
X(

X (
X(
X(
x<
VA
7)
VA
54
41

10
7 )
10
4)
11
19
14
14
43

10
6)
10
b)
LUE UUO
•
Tt.



LUE QUOTE.
) VALUE
) VALUE

) VALUE
VALUE
) VALUE
VALUE
) VALUE
) VALUE
) VALUE
) VALUE
) VALUE

) VALUE
VALUE
) VALUE
VALUE
SPAC
SPAC

SPAC
•ACC
SPAC
•COS
SPAC
ES.
ES.

ES .
OUNT1 .
ES.
T' .
ES.
•YEARLY DEPRECIATION1
SPAC
•CUR
SPAC

SPAC
ES.
RENT PERIOD1 .
ES.

ES.
•NUMBER1 .
SPAC
•CEN
ES.
TER1 .
                                  ENT
163

-------







01













05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
DATA-LINE .
05 FILLER
05 ACCT-NO-OUT.
10 FILLER
10 COUNTY-CODE
05 FILLER
05 COST-CNTR-OUT
05 FILLER
05 YEARLY-AMT-QUT
05 FILLER
05 CURRENT-AMT-OUT
05 FILLER
05 COMMENT-OUT
05 FILLER
PIC X(16)
PIC X(6)
PIC X( 19)
PIC X(19)
PIC X(21)
PIC X(8)
PIC X(ll )

PIC X( 10}

PIC X(9).
-OUT PIC X.
PIC X(7).
PIC X(^).
PIC X(13)
PIC -(8).
PIC X(20)
PIC -(8 >.
PIC X( 19)
PIC X(25)
PIC XX.
PROCEDURE DIVISION.
OPEN-IO-FILES.

OPEN INPUT CARD-IN,

VALUE SPACES.
VALUE 'AMOUNT'.
VALUE SPACES.
VALUE 'DEPRECIATION
VALUE SPACES.
VALUE 'COMMENTS'.
VALUE SPACES.
                                                       AMOUNT
               OEPRECIATION-TABFI,
               COST-CNTR-TABFI,
        OUTPUT PRINT-OUT,
               FINANCIAL-COST-ALLOCATION.
HOUSE-KEEP.
    MOVE SPACES TO DISK-OUT, DATA-LINE.
    PERFORM MOVE-SPACES.
READ-CARDIN.
    READ CARD-IN AT END MOVE
        •NO DATE CARD **  JOB ABORTED' TO PRINT-DATA,
        PERFORM PRINT-LINE-OUT,
        GO TO CLOSE-IO-FILES.
    MOVE DATE-IN TO DATE-OUT.
    MOVE TITLE-IN TO TITLE-OUT.
TEST-PERIOD.
    IF PERIDD1 = 'M1 THEN
        MOVE • MONTH '    TO PERIOD-OUT
        GO TO WRITE-FIRST-TWO-RECS.
    IF PERIOD1 = »Y' THEN
        MOVE 1 TO PERIOD,
        MOVE ' YEAR  '    TO PERIOD-OUT,
        GO TO WRITE-FIRST-TrtO-RECS.
    IF PERIOD1 = 'Q' THEN
        MOVE 4 TO PERIOD,
        MOVE 'QUARTER1    TO PERIOU-OUT,
        GO TO WRITE-FIRST-THO-RECS.
                              164

-------
    IF  PERI001  =  »W  THEN
        MOVE  52  TU PERIOD,
        MOVE  '  WEEK  '    TO PERIOD-OUT,
        GO TO WRITE-FIRST-TWO-RECS.
INVALID-PER I DO-FALLTHRU.
    MOVE PERIOD-IN TO PERIOO-UUT.
    MOVE ' ****  INVALID PERIOD ENTERED - DEFAULTED TO MDNTH ****'
         TO COM1.
WRITE-FIRST-TWO-RECS.
    MOVE SPACES  TO DISK-OUT.
    MOVE DATE-IN  TO DISK-DATE.
    WRITE DISK-OUT.
    MOVE SPACES  TO DISK-OUT.
    MOVE TITLE-IN  TO  DISK-TITLE.
    MOVE SOURCE-CODE  TO SORT-SEQUENCE.
    WRITE DISK-OUT.
READ-DEPRECIATION-TABLE.
    READ DEPRECIATIUN-TABFI AT END
        MOVE  'DEPRECIATION  TABLE CONTAINS NO DATA1 TO PRINT-DATA
        PERFORM  PRINT-LINE-OUT
        GO TO CLDSE-IO-FILES.
WRITE-HEADINGS.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE  BEFORE NEW-PAGE.
    MOVE PAGE-CT  TO PAGE-CUT.
    ADD 1 TO PAGE-CT.
    MOVE 0 TO LINE-CT.
    MOVE HEAD-1  TO PRINT-DATA.
    PERFORM PRINT-LINE-UUT.
    MOVE HEAD-2  TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-3  TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRiNT-LINE-OUT.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-4  TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR INT-LINE-OUT.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-5  TU PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-6  TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-OUT.
    PERFORM PRINT-LINE-OUT.
SET-POINTERS.
    SET CC TO 0.
    MOVE NO-OF-RECS TO  NO-OF-COST-CNTRS.
START-EDIT.
    SET CC UP BY  1.

                               165

-------
    IF CC  > NO-OF-COST-CNTRS THEN
        GO TO CLOSE-IO-FILES.
    MOVE ACCT-NO TO DI SK-ACCT-NO. ACCT-NO-OUT.
    MOVE COUNTY-CODE (CC)  TO 0ISK-COUNTY-COOE COUNTY-CODE-OUT.
    MOVE COST-CNTR (CC)  TO DISK-CGST-CNTR , COST-CNTR-OUT,
                           CC-NUMINAL.
    MOVE AMOUNT (CC) TO  AMT-HOLO. YEARLY-AMT-OUT.
    ADD AMOUNT (CC) TO  YEARLY-DEP-TOTAL.
    DIVIDE AMT-HOLD BY  PERIOD GIVING DISK-CJRRENT-AMT.
    MOVE DISK-CURRENT-AMT  TO CURRENT-AMT-OUT.
    ADD DlSK-CURRENT-AMT TO  CURRENT-DEP-TOTAL.
    PERFORM CHECK-COST-CNTR.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE SPACES TO COMMENT-OUT.
    WRITE  DISK-OUT.
    IF LINE-CT > MAX-LINE  THEN
        PERFORM WRITE-HEADINGS.
    GO TO  START-EDIT.
CHECK-COST-CNTR.
    READ CDST-CNTR-TAdFI INVALID KEY
        MOVE 'INVALID COST CENTtR *****'  TO COMMENT-OUT.
MOVE-SPACES.
    MOVE SPACES TO PRINT-DATA.
PRINT-LINE-OUT.
    WRITE  PRINT-LINE BEFORE  1.
    ADD 1  TO LINE-CT.
CLOSE-IO-FILES.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT 2 TIMES.
    MOVE SPACES TO DATA-LINE.
    MOVE YEARLY-DEP-TOTAL  TO YEARLY-AMT-OUT.
    MOVE CURRENT-DEP-TOTAL TO CURRENT-AMT-OUT.
    MOVE ' DEPRECIATION  TOTALS'  Tli COMMENT-OUT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    CLOSE  CARD-IN, DEPRECIATIUN-TABF1, COST-CNTR-TABFI,
          PR I NT-OUT, FINANCIAL-COST-ALLOCATION.
E-O-J.
    STOP RUN.
                            166

-------
      PGMNAME=WUASSCER
.SYSIN   DO  *
  IDENTIFICATION  DIVISION.
  PROGRAM-ID.  WUASSCER.
  AUTHOR.  ACT  SYSTEMS, INC
          SUITE  200
          807  W  MORSE  BLVU
          WINTER  PARK, FLA 32789 .
  DATE-WRITTEN.  SEPT 23 1977.
  DATE-COMPILED.  SEPTEMBER 30 1977.
  REMARKS.     THIS  PROGRAM EDITS THE SERVICE CONTRACT  DATA
              CARDS, TOTALS ALL COSTS, FLAGS ANY DISCREPANCIES
  ENVIRONMENT  DIVISION.
  CONFIGURATION  SECTION.
  SOURCE-COMPUTER.  IBM-370.
  OBJECT-COMPUTER.  IBM-370.
  SPECIAL-NAMES.
      C01  IS  NEW-PAGE.
  INPUT-OUTPUT  SECTION.
  FILE-CONTROL.
      SELECT  CARD-IN
        ASSIGN TO UR-2540R-S-CARDIN
        ACCESS MODE IS SEQUENTIAL.
      SELECT  FILE-SORT
        ASSIGN TO UT-3330-S-FILESORT
        ACCESS MODE IS SEQUENTIAL.
      SELECT  SORTED-FILE
        ASSIGN TO UT-3330-S-SORTEDFI
        ACCESS MODE IS SEQUENTIAL.
      SELcCT  FINANCI AL-COST-ALLOCATI ON
        ASSIGN TO UT-3330-S-FICALFI
        ACCESS MODE IS SEQUENTIAL.
      SELECT  PRINT-OUT
        ASSIGN TO UR-1403-S-PRINTOUT
        ACCESS MODE IS SEQUENTIAL.
  DATA DIVISION.
  FILE SECTION.
  FD  CARD-IN
      RECORD  CONTAINS  80 CHARACTERS
      LABEL RECORDS ARE OMITTED
      DATA  RECORD IS INPUT-CARD.
  01  INPUT-CARD.
      02  ID1  PIC X.
      02  ID2  PIC X (79) .
  01  DATE-CARD.
      02  DATE-IN       PIC X(13).
      02  TITLE-IN      PIC X(24).
      02  FILLER        PIC X(38) .
  SO  FILE-SORT
      RECuRD  CONTAINS  80 CHARACTERS

                              167

-------
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    02  S-SOURCE-CODE-NO  PIC X.
    02  FILLER            PIC X.
    02  S-CGNTRACT-NC     PIC X(8).
    02  FILLER            PIC X(70).
FD  SORTED-FILE
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS 1NPUT-RECS.
01  INPUT-RECS.
    02  SOURCE-COOE-NO PIC X.
    02  FILLER         PIC X.
    02  CONTRACT-NO      PIC x(8>.
    02  DATA-ITEMS.
            05   NUMS OCCURS 7 TIMES PIC X(8).
    02  BALANCE          PIC X(8).
    02  FILLER          PIC X(6).
01  INPUT-RECS-NUMERIC.
    02  FILLER           PIC X(10) .
    02  DAT-IN.
        05  NUMS2 OCCURS 7 TIMES PIC S9(6)V99.
    02  BAL-IN           PIC S9(6)V99.
    02  FILLER           PIC X(6 ) .
FD  FINANCIAL-COST-ALLOCATION
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS 26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS DISK-OUT.
01  DISK-OUT.
    05  DISK-ACCT        PIC X(10).
    05  OISK-COST-CNTR   PIC X (<*) .
    05  DISK-COST-CAT    PIC X(2).
    05  DISK-AMOUNT      PIC S9(8)V99.
01  FIRST-TKO-RECS.
    05  FILLER           PIC X.
    05  SORT-SEQUENCE    PIC X.
    05  DISK-TITLE       PIC X(24) .
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE        PIC X1133).
WORKING-STORAGE SECTION.
77  LINE-CT           PIC 99 COMP  VALUE 1.
77  PAGE-CT           PIC 9(4) COMP VALUE 1.
77  SOURCE-CODE          PIC X VALUE '3«.
77  SEARCH-NO            PIC XX VALUE SPACES.
77  ACCT-ND1             PIC X(10) VALUE '680-30
77  ACCT-N02             PIC X{10) VALUE '680-31

                        168

-------
77
77
77
77
77
77
77
77
77
77
77
01

01

01



01









01



01













01


TOTAL-ALL
BALANCE-ALL
CONTRACT-NO-HOLl)
NUMERIC-HOLD
I
J
MAX-LINE
BALANCE-ACCUM
TUTAL-ACCUM
SUB-TOTAL-BALANCE
SUB-TOTAL-TOTAL
ACCUM-ALL-SUBTOTAL.
05 ACCUM OCCURS 7 T
ACCUM-ALL-TUTAL.
05 ACCUM-ALL OCCURS
HEAOING-1 .
02 FILLER PIC X { 54
02 FILLER PIC X(23
02 FILLER PIC X(56
HEAOING-2.
02 FILLER
02 FILLER
02 DATE-OUT
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 PAGE-OUT
02 FILLER
HEADING-3.
02 FILLER
02 HEAD
02 FILLER
HEADING-4.
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
DATA-LINE .
02 FILLER
02 CONTRACT-OUT
PIC S9( 8) V99 COMP VALUE 0.
PIC S9(8)V99 COMP VALUE 0.
PIC X(8 ) VALUE '99999999' .
PIC X(8) .
PIC 9 COMP VALUE 0.
PIC 9 COHP VALUE 0.
PIC 99 CDMP VALUE 5t> .
PIC S9(6)V99 COMP VALUE 0.
PIC S9(MV99 COMP VALUE 0.
PIC S9(6)V99 CDMP VALUE 0.
PIC S9(6)V99 COMP VALUE 0.

IMES PIC S9(6)V99.

7 TIMES PIC S9(6)V99.

) VALUE SPACES.
) VALUE 'SERVICE CONTRACT REPORT'.
) VALUE SPACES.

PIC X VALUE SPACES.
PIC X(13) VALUE 'DATE ENDING: '.
PIC X(18) VALUE SPACES.
PIC X(33) VALUE SPACES.
PIC X(3) VALUE 'FOR'.
PIC X(53) VALUt SPACES.
PIC X(5) VALUE 'PAGE '.
PIC ZZZ9.
PIC X(3) VALUt SPACES.

PIC X(54) VALUE SPACES.
PIC X(2*») VALUE SPACES.
PIC X(55) VALUE SPACES.

PIC X VALUE SPACES.
PIC X(20) VALUE 'CONTRACT # MATERIAL1
PIC X(5) VALUE SPACES.
PIC X(16) VALUE 'LABOR TRACTOR'.
PIC X(.3> VALUE SPACES.
PIC X(20) VALUE 'COMPRESSOR TRUCKS'.
PIC X(5) VALUE SPACES.
PIC.X(17) VALUE 'OTHER OVERHEAD'.
PIC X(5) VALUE SPACES.
PIC X(18) VALUE 'BALANCE TOTAL'.
PIC X(8) VALUE SPACES.
PIC X(8 ) VALUE 'COMMENTS' .
PIC xm VALUE SPACES.

PIC X VALUE SPACES.
PIC X(8) .
169

-------
    02  FILLER
    02  OATA-BLK OCCURS
        05  DAT
        05  FILLER
    02  BALANCE-OUT
    02  TOTAL-OUT
    02  FILLER
    02  COMMENT
    02  FILLER
01  ERROR-LIST.
    02  ERR-LIST-A.
        05  ERR-LIST-1
 PIC XX VALUE SPACES.
7 TIMES.
 PIC -(6).--.
 PIC XX.
 PIC -(8).— .
 PIC -(&>.--.
 PIC XX VALUE SPACES.
 PIC X(20) VALUE SPACES
 PIC X VALUE SPACES.
PIC X(IOO) VALUE
        05  ERR-UST-2  PIC X(IOO) VALUE
                                             • INVALID  CONTRACT  NUM
                                             •MATERIAL  NON  NUMERIC
                                             •LABOR NON NUMERIC
                                             •TRACTOR  NON  NUMERIC
                                           •COMPRESSOR  N-NUMERIC'.
                                             •TRUCKS NON NUMERIC
                                             •OTHER NON NUMERIC
                                             •OVERHEAD  NON  NUMERIC
                                             •BALANCE  NON  NUMERIC
                                           •OUT OF BALANCE       '.
    02  ERR-LIST-B REDEFINES ERR-LIST-A.
            05  ERR-LIST OCCURS 10 TIMES PIC  X(20).
01  ERROR-CODE.
    02  ERR-CDDE OCCURS 10 TIMES PIC 9.
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT CARD-IN.
    OPEN OUTPUT PRINT-OUT,
READ-CARD.
    READ CARD^IN__AT END GO
    MOVE SPACES TO DISK-OUT.
    MOVt DATE-IN TO DATE-OUT,
    WRITE DISK-OUT.
    MOVE SPACES TO DISK-OUT.
    MOVE TITLE-IN TO  HEAO, DISK-TITLE
    MOVE SOURCE-CODE TO SORT-SEGUENCE .
    WRITE DISK-OUT.
WRITE-ERRDR-HEADING.
    MOVE SPACES TO PRINT-LINE.
    MOVE • THE FOLLOWING CARDS HAVE A
                         TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT THRU MOVE-SPACES
SORT-RECORDS.
    OPEN OUTPUT SORTEO-FILE.
    SORT FILE-SORT ON ASCENDING KEY
        S-CONTRACT-NO
    INPUT PROCEDURE REAO-SORT-INPUT THRU
        READ-SORT-INPUT-END
    OUTPUT PROCEDURE WRITE-SDRT-QUTPUT  THRU
                           FINANCIAL-COST-ALLOCATION
                           TO CLOSE-FILES.
                              DISK-TITLE
                                       INVALID  SOURCE  CODE  NUMBER1
                                             2  TIMES
                                 170

-------
        WRITE-SORT-OUTPUT-END.
CLOSE-SORT-FILES .
    CLOSE SORTEO-FILE, CARD-IN.
    OPEN INPUT SORTED-F1LE.
HOUSE-KEEPING.
    PERFORM WRITE-HEADINGS.
    MOVE ZEROS TO ERRQR-COOE,  ACCUM-ALL-5UBTOTAL.
                          ACCUM-ALL-TOTAL .
REAO-INPUT-REC.
    READ SORTED-FILE AT  END  GO  TO  CLOSE-FILES.
DATA-TEST-SECTION.
    IF CONTRACT-NO NOT = TO  CON TRACT-NO-HOLD THtN
        MOVE CONTRACT-NO TO  CONTRACT-OUT
        ELSE MOVE SPACES TO  CONTRACT-OUT .
    MOVE CONTRACT-NO TO  CONTRACT-NO-HOLD.
    EXAMINE INPUT-RECS REPLACING  ALL  '  ' BY '0'.
    IF  (CONTRACT-NO NOT  NUMERIC)   OR   (CONTRACT-NO = ZERO) THEN
                          MOVE  1  Tb ERR-CODE (1).
    PERFORM TEST-FOR-NUMERIC VARYING  I  FROM 1  BY 1 UNTIL  1 =  8.
    MOVE BAL-IN  TLi BALANCE-OUT.
    ADD BAL-IN TO SUB-TUTAL-BALANCE.
    ADD BALANCE-ACCUM  TO TOTAL-ACCUM.
    IF bAL-IN NOT = TO BALAiMCE-ACCUK  THEN
        MOVE 1 TO ERR-CODE  (10).
    MOVE ZEROS TO BALANCE-ACCUM.
READ-NEXT-INPUT-RtC.
    PERFORM REAO-INPUT-REC.
TOTAL-TEST.
    MOVE CONTRACT-NO TO  NUMERIC-HOLD.
    IF NUMERIC-HOLD NOT  EQUAL  TLI  C ON TR ACT-NO-HOL D THEN
    MOVE TOTAL-ACCUM TO  TOTAL-OUT,
    ADD TOTAL-ACCUM TD SUB-TOTAL-TOTAL,
    MOVE ZEROS TO TUTAL-ACCUM,
    ELSE MOVE ZEROS TO TOTAL-OUT.
ERROR-DETECTION.
    MOVE ZEROS TO I.
    IF ERROR-CODE NOT  EQUAL  TO  ZEROS  THEN
        PERFORM  PRINT-ERRORS THRU  PR I NT-ERRORS-tND UNTIL
        ERROR-CODE = ZEROS
    ELSE MOVE SPACES TO  COMMENT,
        MOVE DATA-LINE TO PRINT-LINE,
        PERFORM  PRINT-LINE-OUT  THRU  MOVE-SPACES.
TOTAL-TEST-END.
    IF  TOTAL-OUT NOT = TO ZEROS  PERFORM  PAGE-OVFLOW.
    GO  TO DATA-TEST-SECTION.
PRINT-ERRORS.
    ADD 1 TU I.
    IF ERR-CODE  (I) EQUAL TO 1  THEN
        MOVE ERR-LIST  (I) TO COMMENT
        MOVfc DATA-LINE TO PRINT-LINE,

                              171

-------
        PERFORM PRINT-LINE-OUT THRU MOVE-SPACES,
        MOVE SPACES TO DATA-LINE
        MOVE ZERO TO ERR-CODE ( I >.
PRINT-ERRORS-END.
    EXIT.
TEST-FOR-NUMERIC .
    ADD 1 I  GIVING J.
    MOVE NUMS2 (I) TO DAT ( 1 ) .
        ADD  NUMS2 (I) TO BALANCE-ACCUM , ACCUM  (I).
WRITE-HEADINGS.
    MOVE PAGE-CT TO PAGE-OUT.
    MOVE 0 TO LINE-CT.
    WRITE PRINT-LINE BEFORE ADVANCING  NEW-PAGE.
    MOVE HEADING-1 TO PRINT-LINE.
    PERFORM  PRINT-LINE-OUT THRU MOVfc-SPACES.
    MOVE HEADING-2 TO PRINT-LINE.
    PERFORM  PRINT-LINE-DUT THRU MOVE-SPACES.
    MOVE HEADING-3 TO PRINT-LINE.
    PERFORM  PRINT-LINE-CUT THRU MOVfc-SPACES 2  TIMES.
    MOVE HEADING-^ TO PRINT-LINE.
    PERFORM  PRINT-LINE-OUT THRU MOVE-SPACES 2  TIMES.
    ADD 1 TO PAGE-CT.
PRINT-LINE-OUT.
    WRITE PRINT-LINE BEFORE 1.
    ADD 1 TO LINE-CT.
MOVE-SPACES.
        MOVE SPACES TU PRINT-LINE.
PAGE-GVFLOW.
    IF LINE-CT > MAX-LINE THEN
        PERFORM WRITE-SUB-TOTAL
    PERFORM  WRITE-HEADINGS.
PAGE-OVFLOW-END.
    EXIT.
WRITE-SUB-TOTAL.
    PERFORM  PRINT-LINE-OUT.
    PERFORM  MOVE-OUT-ACCUKS VARYING I  FROM 1 BY  1 UNTIL  I  = 8
    MOVE  'SUBTOTAL' TO CONTRACT-OUT.
    MOVE SUB-TOTAL-BALANCE TO BALANCE-OUT.
    MOVE SUB-TDTAL-TOTAL TO TOTAL-OUT.
    ADD SUB-TOTAL-BALANCE TO BALANCE-ALL.
    ADD SUB-TOTAL-TOTAL TO TOTAL-ALL.
    MOVE ZEROS TO SUB-TOTAL-BALANCE. SUB-TOTAL-TOTAL ,
                         ACCUM-ALL-SUBTUTAL.
    MOVE DATA-LINE TO PRINT-LINE.
    PERFORM  PRINT-LINE-DUT THRU MOVE-SPACES.
MOVE-OUT-ACCUMS.
    MOVE ACCUM (I) TO DAT (I ) .
        ADD  ACCUM (I) TO ACCUM-ALL  (I).
MOVE-OUT-TOTAL-ACCUMS.
    MOVE ACCUM-ALL (I) TO DAT (I).

                             172

-------
*    SORT  ROUTINE
$
 READ-SORT-INPUT.
     READ CARD-IN AT END GO TO READ-SORT-INPUT-END.
     IF ID1 NOT = TO SUURCE-COUE THEN
         WRITE PRINT-LINE FROM INPUT-CARD AFTER ADVANCING  1
     PERFORM MOVE-SPACES
         GO TO READ-SORT-INPUT.
     RELEASE SORT-INPUT FROM IiMPUT-CAR0 .
     GO TO READ-SORT-INPUT.
 READ-SORT-INPUT-END.
     F X!! T .
 WRITE-SORT-OUTPUT.
     RETURN FILE-SORT RECORD INTU INPUT-RECS
         AT END GO TO KRITE-SORT-OUTPUT-END.
     WRITE INPUT-RfcCS.
     GO TO WRITE-SORT-OUTPUT.
 WR I TE-SORT-OUTPUT-END.
     EXIT.
«•
*    END  SURT ROUTINE
it
 CLOSE-FILES.
     MOVE ZEROS TO CONTRACT-NO-HOLD,
     PERFORM TUTAL-TEST THRU ERROR-DETECTION.
     PERFORM WRITE-SUB-TOTAL.
     PERFORM PRINT-LINE-OUT 2 TIMES.
     MOVE  'TOTAL   ' TO CONTRACT-OUT.
     PERFORM MOVE-OUT-TOTAL-ACCUMS  VARYING  I
                          FROM 1 BY  1 UNTIL  I  = 8.
     MOVE BALANCE-ALL TO BALANCE-OUT.
     MOVE TOTAL-ALL TO TOTAL-OUT.
     MOVE DATA-LINE TO PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
 V.RITE-DISK-RECORDS.
     MOVE SPACES TO DISK-OUT.
     MOVE ACCT-N01 TO DISK-ACCT.
     ADD ACCUM-ALL (3)
         ACCUM-ALL (
-------
      PGMNAME=WUASMTER
,SYSIN   DO  *
  IDENTIFICATION  DIVISION.
  PROGRAM-ID.  WUASMTER.
  AUTHOR. ACT  SYSTEMS,  INC
         SUITE  200
         807  W  MORSE  BLVD
         WINTER  PARK,  FLA  32789  .
  DATE-WRITTEN.  DCT  5  1977.
  DATE-COMPILED.   OCT  7  1977.
  REMARKS.     THIS  PROGRAM  EDITS  THE  HISCELLANFDUS TRANSACTIONS
              CARDS,  TOTALS  ALL  COSTS,  FLAGS ANY DISCREPANCIES.
  ENVIRONMENT  DIVISION.
  CONFIGURATION  SECTION.
  SOURCE-COMPUTER.  IBM-370.
  OBJECT-COMPUTER.  IBM-370.
  SPECIAL-NAMES.
      C01 IS NEW-PAGE-
  INPUT-OUTPUT   SECTION.
  FILE-CONTROL.
      SELECT CARD-IN
        ASSIGN  TD UR-25fOR-S-CARDIN
        ACCESS  MODE  IS  SEQUENTIAL.
      SELECT FILE-SORT
        ASSIGN  TO UT-3330-S-FILESURT
        ACCESS  MODE  IS  SEQUENTIAL.
      SELECT SORTL-D-FILE
        ASSIGN  TO UT-3330-S-SORTEDFI
        ACCESS  MODE  IS  SEQUENTIAL.
      SELECT PRINT-OUT
        ASSIGN  TO UR-1403-S-PRINTUUT
        ACCESS  MODE  IS  SEQUENTIAL.
      SELECT FINANCIAL-ACCT-TABFI
         ASSIGN  TO  DA-3330-I-FATABFI
         ACCESS  MODE  IS  RANDOM
         NOMINAL KEY  IS  FA-NOMINAL
         RECORD  KEY  IS  FA-NUMBER.
      SELECT COST-CNTR-TABFI
         ASSIGN  TO  DA-3330-I-CCTABFI
         ACCESS  MODE  IS  RANDOM
         NOMINAL KEY  IS  CC-NOMINAL
         RECORD  KEY  IS  CC-NUMBER.
      SELECT SPECIAL-ACCT-TABFI
         ASSIGN  TO  DA-3330-S-SATABFI
         ACCESS  MODE  IS  SEQUENTIAL.
      SELECT FINANCIAL-COST-ALLOCATION
         ASSIGN  TO  UT-3330-S-FICALFI
         ACCESS  MODE  IS  SEQUENTIAL.
  DATA  DIVISION.
  FILE  SECTION.

                              174

-------
FD  CARD-IN
    RECORD CONTAINS 80 CHARACTERS
    LABtL RECORDS ARE OMITTED
    DATA RECORD IS INPUT-CARD.
01  INPUT-CARD.
    02  ID1 PIC X.
    02  ID2 PIC X(79) .
01  DATE-CARD.
    02  DATE-IN       PIC X(16).
    02  TITLF-IN      PIC x(2^>.
    02  FILLER        PIC X(38).
SD  FILE-SORT
    RECORD CONTAINS so CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    02  S-SUURCE-CODE-ND PIC  X.
    02  FILLER           PIC  X.
    02  S-ENTRY-NO       PIC  X(3>.
    02  FILLER           PIC  X.
    02  S-ACCT-NO        PIC  X(10)•
    02  FILLER           PIC  X(64).
FD  SORTED-FILE
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-RECS.
01  INPUT-RECS.
    02  SOURCE-COOE-NO   PIC  X.
    02  FILLER           PIC  X.
    02  ENTRY-NO         PIC  xm.
    02  FILLER           PIC  x.
    02  ACCT-IN          PIC  X(10).
    02  FILLER           PIC  X.
    02  COST-CTR-IN.
        05  CC-FIRST-2-DI&ITS  PIC XX.
        05  CC-SECOND-2-DIGITS PIC XX.
    02  FILLER           PIC  X.
    02  INPUT-AMTS.
        05  AMOUNT-IN    PIC  X(10).
        05  AMT-1N REDEFINES  AMOUNT-IN  PIC  S9(8)V99.
    02  FILLER           PIC  X(
-------
01  CC-REC.
    02  CC-NUMBER        PIC 9U>.
    02  CC-NAME          PIC X( 13)
FD  FINANCIAL-ACCT-TABFI
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 58 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS FA-RfcC.
01  FA-REC.
    05  FA-NUMBER        PIC X( 10)
    05  FA-NAME          PIC X{20)
    05  FILLER           PIC X(8J.
FD  SPECIAL-ACC T-TABFI
    BLOCK CONTAINS 0 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS COST-CENTERS.
01  COST-CENTERS.
    05  RECORD-COUNT.
        10  NO-OF-RECS   PIC 9K>.
        10  FILLER       PIC X(18) .
    05  COST-CNTRS OCCURS 1 TO 99  TIMES
        DEPENDING ON NO-OF-RECS
        ASCENDING KEY IS CC-SIZE-2
        INDEXED BY CC.
        10  CC-SIZE-2    PIC X(2).
        10  CC-SIZE-4    PIC X(4>.
        10  FILLER       PIC X( 16) .
FD  FINANCIAL-CQST-ALLOCATION
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS 26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS DISK-OUT.
01  DISK-OUT.
    05  01SK-ACCT
    05  DISK-COST-CNTR
    05  DISK-COST-CAT
          OCCURS  2  TIMES.
          OCCURS  2  TIMES
    05  DISK-AMOUNT
01  FIRST-TWD-RECS.
    05  FILLER
    05  SORT-SEQUENCE
    05  DISK-TITLE
WORKING-STORAGE SECTION
77  SOURCE-CODE
77  SEARCH-NO
77  LINE-CT
77  PAGE-CT
77  CR-AMT-ACCUM
77  DB-AMT-ACCUM
77  BALANCE-AMOUNTS
77  CR-TUTAL
PIC
PIC
PIC
PIC
     X(10) .
     XK).
     X(2).
     S9(S)V99.
 PIC  X.
 PIC  X.
 PIC  X(24).

 PIC  X VALUE  «5« .
 PIC  XX  VALUE  SPACES.
 PIC  99  COMP  VALUE  U.
 PIC  9U)  CLMP VALUE  0.
 PIC  S9(8)V99  COMP  VALUE  ZERO
 PIC  S9(8)V99  CQMP  VALUE  ZERO,
 PIC  S9(8)V99  COMP  VALUE  ZERO,
 PIC  S9(8)V99  COMP  VALUE  ZERO,
176

-------
77
77
77
77
77
77
77
01




01









01



01















01







DB-TOTAL
ENTRY-NO-HOLD
ACCT-HOLD
I
MAX-LINE
FA-NOMINAL
CC-NOMINAL
HEAD
02
02

02
HEAD
02
02
02
02
02
02
02
02
02
HEAD
02
02
02
HEAD
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
I
F
F

F
I
F
F
NG-1 .
ILLER
ILLER

ILLER
NG-2.
ILLER
ILLER
DATE-OUT
F
F
F
F
ILLfR
ILLER
ILLER
ILLER
PAGE-OUT
F
I
F
T
F
I
F
ILLER
NG-3.
ILLER
ITLE-OUT
ILLER
NG-4.
ILLER
FILLER
F
F
F
F
F
F
F
F
F
F
F
F
F
DATA-
02
02
02
02
02
02
02
F
ILLER
ILLER
ILLFR
ILLER
ILLER
ILLER
ILLER
ILLER
ILLER
ILLER
ILLER
ILLER
ILLER
LINE.
ILLER
ENTRY-NO-OUT
F
ILLER
ACCT-OUT
F
ILLER
COST-CTR-OUT
F
ILLER
P
P
P
P
P
P
P

P
P

P

P
P
P
P
P
P
P
P
P

P
P
P

P
P
P
P
P
P
P
P
P
P
P
P
P
P
P

P
P
P
P
P
P
P
I
I
1
I
I
I
I

I
I

I

I
I
I
I
I
I
I
I
I

I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
C
C
C
c
c
c
c

c
c

c

c
c
c
c
c
c
c
c
c

c
c
c

c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

c
c
c
c
c
c
c
S9
X(
x<
9
99
X(
XI

X(
X(

X(

X
X(
X(
X(
X(
X(
XI
(8)V99 COMP VALUE ZERO.
3) VALUE ZEROS.
10) VALUE ZERO.
COMP VALUE 0.
COMP VALUE 56.
10) .
4).

49)
33)

51 )


VALUE
i VALUE

> VALUE


SPACE
•M1SC
'ONS
SPACE


S .
ELLANEOUS
RE PORT ' .
S.

VALUE SPACES.
13]
18]
331
3)
53)
5)
I VALUE
1 VALUE
i VALUE
VALUE
VALUE
VALUE
•DATE
SPACE
SPACE
'FOR' .
SPACE
ENDING: '
S .
S.

S.
•PAGE '.
ZZZ9.
X(

X(
X(
X(

X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(

X(
X(
X(
X(
X(
X(
X(
3)

54)
24]
55]

2)
12]
5)
14]
5)
11)
9)
b)
6)
12]
6)
11)
14]
7)
13]

7) ,
3) ,
12)
10)
10]
4),
8),
VALUE

i VALUE
1 VALUE
1 VALUE

VALUE
1 VALUE
VALUE
I VALUE
VALUE
i VALUE
VALUE
VALUE
VALUE
1 VALUE
VALUE
1 VALUE
1 VALUE
VALUE
1 VALUE

i
i
1 .
i .
\ .
I
»
SPACES

SPACE
SPACE
SPACE

SPACE
.

S.
S.
S.

S .
•ENTRY NUMBER'.
SPACE
S.
'ACCOUNT NUMBER
SPACE
'COST
S.
CENTER ' .
SPACES .
•AMOUNT1 .
SPACE
•CRED
SPACE
'DEBI
SPACE
S.
IT TOTAL' .
S.
T TOTAL' .
S.
•COMMENT' .
SPACE








S.








                           TRANSACTI
177

-------
01
01
02  AMOUNT-OUT
02  FILLER
02  CR-TOTAL-OUT
02  FILLER
02  OB-TDTAL-DUT
02  FILLER
02  COMMENT
02  FILLER
ERROR-CODE .
02  ERR-CODE
ERROR-LIST.
02  ERR-LIST-A.
    05  ERR-LIST1
                         PIC Z(8).ZZCR.
                         PIC XX.
                         PIC Z(8 J.ZZCR.
                         PIC X(5).
                         PIC -(8)---.
                         PIC X(7l.
                         PIC X(25) VALUE
                         PIC X(3).
                 OCCURS 3 TIMtS PIC 9
                      PIC X(IOO) VALUE
                                         SPACES
        05  ERR-LIST2 PIC X(100)
                                        •ACCOUNT  NUMBER  foOT  FOUND
                                        •COST CENTER  NOT  NUMERIC
                                        'COST CENTER  NOT  FOUND
                                      'AMOUNT NOT  NUMERIC
                                 VALUE  'TOTAL AMOUNT  NOT  NUMERIC
                                        •CR AMTS  NOT  = TO  CR TOTAL
                                        •DB AMTS  NOT  = TO  DB TOATl
                                      •TOTALS DO  NOT  BALANCE    '.
    02  ERR-LIST-B REDEFINES ERR-LIST-A.
        05  ERR-LIST OCCURS 8 TIMES PIC X(25).
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT CARD-IN.
    OPEN OUTPUT PRINT-OUT, SORTED-FILE,
                FINANCIAL-COST-ALLOCATION.
READ-TITLE-CARD.
    READ CARD-IN AT END GO TO WRITE-FINAL-TOTALS .
    MOVE SPACES TO DISK-OUT.
    MOVE DATE-IN TO DATE-OUT, DISK-TITLE.
    WRITE DISK-OUT.
    MOVE SPACES TU DISK-OUT.
    MOVE TITLE-IN TO TITLE-OUT, DISK-TITLE.
    MOVE SOURCE-CODE TO SORT-SEQUENCE-
    WRITE DISK-OUT.
    PERFORM MOVE-SPACES THRU PR 1 NT-LINE-QUT .
    MOVE  ' THE FOLLOWING CARDS HAVE A INVALID SOURCE  CODE'
        TU PRINT-LINE .
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-OUT.
SORT-RECORDS .
    SORT FILE-SORT ON ASCENDING KEY
        S-ENTRY-NO
        S-ACCT-NO
    INPUT PROCEDURE READ-SORT-INPUT
        THRU READ-SORT-INPUT-END
    OUTPUT PROCEDURE WRITE-SORT-QUTPUT
        THRU WRITE-SORT-OUTPUT-END.
CLOSE-SURT-FILES.
                                178

-------
    CLOSF SGRTED-FILF, CARD-IN.
    OPEN INPUT SORTED-FILE. F]NANCIAL-ACCT-TABFI .
                CGST-CNTR-TABFI, SPECIAL-ACCT-TABFI.
HOUSEKEEPING.
    MOVE ZEROS TO ERROR-CODE.
    READ SPECIAL-ACCT-TABFI AT END
        MOVE  'COST CENTER TABLE CONTAINS NO DATA1 TO
        PRINT-LINE,
        PERFORM PRINT-LIME-OUT
        GO TO CLOSE-FILES.
WRITE-HEADINGS.
    MOVE 0 TO LINE-CT.
    ADD 1 TD PAGE-CT.
    MOVE PAGE-CT TO PAGE-OUT.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE ADVANCING NEW-PAGE.
    MOVE HEADING-1 TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE HEADING-2 TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT .
    MOVE HEADING-3 TO PRINT-LINt.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR INT-LINE-OUT.
    MOVE HEADING-^ TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVt-SPACES THRU PRINT-LINE-OUT.
READ-RECORDS.
    READ SORTED-FILE AT END GO TO WRITE-FINAL-TOTALS .
EDIT-RECORDS.
    EXAMINE INPUT-AMTS REPLACING ALL SPACES BY ZEROS.
    EXAMINE COST-CTR-IN REPLACING ALL SPACES BY ZEROS.
    IF ENTRY-NO NOT = TO ENTRY-UD-HULD THEN
        MOVE ENTRY-NO TO ENTRY-NO-HbLD , ENTRY-NO-OUT
    ELSE MOVE SPACES TO ENTRY-NO-OUT.
    IF ACCT-IN NOT - ACCT-HOLD THEN
        MOVE ACCT-IN TD ACCT-HOLD, ACCT-OUT, FA-NOMINAL,
        READ FINANCIAL-ACCT-TABFI INVALID KEY
            MOVt 1 TO ERR-CODE ( 1) .
    MOVE ACCT-IN TO DISK-ACCT, ACCT-OUT.
    IF COST-CTR-IN NOT NUMERIC
        MOVE 1 TO ERR-COOE (2)
        MOVE SPACES TO COST-CTR-IN,  DISK-COST-CNTR.
    IF COST-CTR-IN = TO ZEROS THEN
        MOVE SPACES TO COST-CTR-IN,  DISK-COST-CNTR
    ELSE PERFORM FIND-COST-CNTR .
    IF AMOUNT-IN > 0 THEN
        ADD AMT-IN TO DB-AMT-ACCUM
    ELSE ADD AMT-IN TO CR-AMT-ACCUM.
    MOVE AMT-IN TO AMOUNT-OUT, DISK-AMOUNT.
WRlyE-LINE-OUT.

                          179

-------
    IF ERROR-CODE NOT = ZERO THEN
        PERFORM hOVfc-IN-ERRORS VARYING  I
            FROM 1 BY 1 UNTIL ERRGR-COOE  =  ZEROS
        ELSE MOVE DATA-LINE TO PRINT-LINE
        PERFORM PRINT-LINE-OUT.
WRITE-DISK.
        WRITE DISK-OUT
        MOVt SPACES TO DISK-OUT.
    PERFORM READ-RECORDS.
    IF ENTRY-NO NOT = ENTRY-NO-HDLD THEN
        PERFORM WRITE-SUBS.
    IF LINE-CT > MAX-LINE THEN
        PERFORM WRITE-HEAOINGS.
    GO TO EDIT-RECORDS.
FIND-COST-CNTR.
    IF CC-FIRST-2-DIGITS NOT = ZEROS THEN
        MOVE COST-CTR-IN TO CC-NOKINAL
        READ COST-CNTR-TABFI INVALID KEY
        MOVE 1 TO ERR-CODE (3)
    ELSE PERFORM SEARCH-CC.
    MOVE COST-CTR-IN TO DISK-COST-CNTR.
MOVE-IN-ERRORS.
    IF ERR-CODE (I) NOT = ZEROS THEN
        MOVE ERR-LIST (I) TO COMMENT
        MOVE DATA-LINE TO PRINT-LINE
        PERFORM PRINT-LINE-OUT
        MOVE SPACES TO DATA-LINE
        MOVE ZERO TO ERR-CODE (I).
PAGE-OVFLDW.
    IF LINE-CT NOT < MAX-LINE THEN
    PERFORM WRITE-SUBS
    PERFORM WRITE-HEADINGS.
PAGE-OVFLOW-END.
    EXIT.
SEARCH-CC.
    MOVE CC-SECQND-2-DIGITS TO SEARCH-NO.
    SET CC TO 1.
    SEARCH ALL COST-CNTRS AT END
        MOVE 1 TO ERR-CODE (3)
    WHEN CC-SIZE-2 (CC) = TO SEARCH-NO
        MOVE CC-SIZE-^ (CC) TO COST-CTR-IN.
WRITE-SUBS.
    MOVE SPACES TO DATA-LINE.
    MOVE CR-AMT-ACCUM TO CR-TOTAL-OUT .
    MOVE DB-AMT-ACCUM TO D3-TOTAL-OUT.
    ADD CR-AMT-ACCUM OB-AMT-ACCUM GIVING  BALANCE-AMOUNTS.
    IF BALANCE-AMOUNTS NOT = 0 THEN
        MOVE ' CREDITS t DEBITS NOT =   '  TO  COMMENT
    ELSE MOVE SPACES TO COMMENT.
    PERFORM WRITE-LINE-OUT.
                          180

-------
     ADD CR-AMT-ACCUM TO CR-TDTAL.
     ADD DB-AMT-ACCUh TO DB-TOTAL.
     MOVE ZEROS TO CR-AMT-ACCUM,
                   DB-AMT-ACCUM.
     MOVE SPACES TU DATA-LINE.
 MOVE-SPACES.
     MOVE SPACES TO PRINT-LINE.
 PRINT-LINE-OUT.
     WRITE PRINT-LINE BEFORE ADVANCING 1.
     ADD 1 TU  LINE-CT.
*    SORT  ROUTINE
tf
 READ-SORT-INPUT.
     READ CARD-IN AT END GO TO READ-SORT-INPUT-END.
     IF 101 NOT = TO SUURCE-CODE THEN
         WRITE PRINT-LINE FROM INPUT-CARD AFTER ADVANCING
     PERFORM MOVE-SPACES
         GO TO READ-SDRT-INPUT.
     RELEASE SORT-INPUT FROM INPUT-CARD.
     GO TO READ-SORT-INPUT.
 READ-SORT-INPUT-END.
     EXIT.
 WRITE-SGRT-OUTPUT.
     RETURN FILE-SURT RECORD INTO INPUT-RECS
         AT END GO TO WRITE-SDRT-OUTPUT-END.
     WRITE INPUT-RECS.
     GO TO WRITE-50RT-OUTPUT.
 WRITE-SORT-OUTPUT-END.
     EXIT.
*
*    END SORT  ROUTINE
*
 WRITE-F1NAL-TUTALS.
     PERFORM WRITE-SUBS.
     PERFORM MOVE-SPACES THRU PRINT-LINE-OUT.
     PERFORM PRINT-LINE-OUT 2 TIMES.
     MOVE SPACES TU DATA-LINE.
     MOVE CR-TOTAL TO CR-TUTAL-OUT.
     MOVE OB-TOTAL TO DB-TOTAL-OUT.
     MOVE DATA-LINE TO PRINT-LINE-
     PERFORM PRINT-LINE-OUT.
 CLOSE-FILES.
     CLOSE SORTED-FILE, FINANCIAL-ACCT-TABFI,
         SPECIAL-ACCT-TABFI, FINANCIAL-COST-ALLOCATION,
         COST-CNTR-TABFI, PRINT-OUT.
 E-O-J.
     STOP RUN.
                           181

-------
     PGMNAME=WUASPAER
SYSIN  DD *
 IDENTIFICATION DIVISION.
 PROGRAM-ID. WUASPAER.
 AUTHOR.  ACT SYSTEMS, INC
         SUITE 200
         807 M MORSE BLVD
         WINTER PARK, FLA 32789 .
 DATE-WRITTEN. OCT 5 1977.
 DATE-COMPILED.  OCT 6 1977.
 REMARKS.    THIS PROGRAM EDITS THE PAYMENT AUTHORIZATION  DATA
             CARDS, TOTALS ALL COSTS, FLAGS ANY DISCREPANCIES.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. 1BM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01  IS NEW-PAGE.
 INPUT-OUTPUT  SECTION.
 FILE-CONTROL.
     SELECT CARD-IN
       ASSIGu TO UR-2540R-S-CARDIN
       ACCESS MODE IS SEQUENTIAL.
     SELECT FILE-SORT
       ASSIGN TO UT-3330-S-FILESORT
       ACCESS MODE IS SEQUENTIAL.
     SELECT SORTED-FILE
       ASSIGN TO UT-3330-S-SORTEDFI
       ACCESS MODE IS SEQUENTIAL.
     SELECT PRINT-OUT
       ASSIGN TO UR-1A03-5-PRINTOUT
       ACCESS MODE IS SEQUENTIAL.
     SELECT FINANCIAL-ACCT-TABFI
         ASSIGN TO DA-3330-I-FATABFI
         ACCESS MODE IS RANDOM
         NOMINAL KEY IS FA-NOMINAL
         RECORD KEY IS FA-NUMBER.
     SELECT COST-CNTR-TABFI
         ASSIGN TO DA-3330-I-CCTABFI
         ACCESS MODE IS RANDOM
         NOMINAL KEY IS CC-NOMINAL
         RECORD KEY IS CC-NUMBER.
     SELECT SPECIAL-ACCT-TABFI
         ASSIGN TO DA-3330-S-SATABFI
         ACCESS MODE IS SEQUENTIAL.
     SELECT FINANCIAL-COST-ALLOCATION
         ASSIGN TO UT-3330-S-FICALFI
         ACCESS MODE IS SEQUENTIAL.
 DATA DIVISION.
 FILE SECTION.

                             182

-------
FD  CARO-IN
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS INPUT-CARD.
01  INPUT-CARD.
    02  101 PIC X.
    02  ID2 PIC X (79 ).
01  DATE-CARD.
    02  DATE-IN       PIC  X( IB) .
    02  TITLF-IN      PIC  X(2<+).
    02  FILLER        PIC  X(3d ) .
SD  FILE-SORT
    RECURD CONTAINS 80 CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    02  S-SOURCE-CODE-NO  PIC X.
    02  FILLER            PIC X.
    02  S-PAY-AUTH        PIC X(10) .
    02  FILLER            PIC x(68>.
FD  SORTED-FILE
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-RECS.
01  INPUT-RECS.
    02  SOURCE-CODE-NO    PIC X.
    02  FILLER            PIC X.
    02  PAY-AUTH-IN       PIC X( 10) .
    02  FILLER            PIC X.
    02  ACCT-IN           PIC X(10).
    02  FILLER            PIC X.
    02  CDST-CTR-IN.
        05  CC-FIkST-2-DIGITS   PIC  XX.
        05  CC-SECOND-2-DIGIT5  PIC  XX.
    02  FILLER            PIC X.
    02  AMOUNT-IN         PIC X(10) .
    02  AMT-IN REDEFINES  AMOUNT-IN  PIC  59(8)V99
    02  FILLER            PIC X.
    02  TUTAL-IN          PIC X( 1Q) .
    02  TOT-IN REDEFINES  TOTAL-IN  PIC  S9(8)V99.
    02  FILLER            PIC X(30) .
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE        PIC  X( 133) .
FD  COST-CNTR-TABFI
    BLOCK CONTAINS 6  RECORDS
    RECORD CONTAINS 30 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CC-REC .

                      183

-------
    X(10)
    X(20)
    X(6).
         TIMES
01  CC-REC.
    02  CC-NUMBER        PIC
    02  CC-NAME          PIC
FD  FINANCIAL-ACCT-TABFI
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 58 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS FA-REC.
01  FA-REC.
    05  FA-NUMBER        PIC
    05  FA-NAME          PIC
    05  FILLER           PIC
FD  SPECIAL-ACCT-TABFI
    BLOCK CONTAINS 0 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS COST-CENTERS.
01  COST-CENTERS.
    05  RECORD-COUNT.
        10  NO-OF-RECS   PIC 9(4).
        10  FILLER       PIC X (18)
    05  COST-CNTRS OCCURS 1 TO 99
        DEPENDING ON NO-OF-RECS
        ASCENDING KEY IS CC-SIZE-2
        INDEXED BY CC.
        10  CC-SIZE-2    PIC X(2>.
        10  CC-SIZE-4    PIC X(4),
        10  FILLER       PIC X( 16) .
FD  FINANCIAL-COST-ALLOCATION
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS 26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS DISK-OUT.
01  DISK-OUT.
    05  DISK-ACCT        PIC X(10) .
    05  DISK-COST-CNTR   PIC X(4).
    05  DISK-COST-CAT    PIC X(2).
    05  DISK-AMOUNT      PIC S9(8)V99
01  FIRST-TwO-RECS.
    05  FILLER           PIC X.
    05  SORT-SEQUENCE    PIC X.
    05  DISK-TITLE       PIC X{24) .
WORKING-STORAGE SECTION.
    X(13) OCCURS 2 TIMES
OCCURS 2 TIMtS.
77  SOURCE-CODE
77  SEARCH-NO
77  LINE-CT
77  PAGE-CT
77  AMT-ACCUM
77  AMT-SUB-TOTAL
77  TOTAL-SUB-TQTAL
77  TOTAL-HOLD
PIC X VALUE '4' .
PIC XX VALUE SPACES.
PIC 99 CCMP VALUE 0.
PIC 9(4) CLMP VALUE 1.
PIC S9(8)V99  COMP VALUE 0.
PIC S9(8)V99  COMP VALUE 0.
PIC S9(8)V99  COMP VALUE 0.
PIC S9OJV99  COMP VALUE 0.
                          184

-------
77
77
77
77
77
77
77
77
77
01
01
01
01
01
TOTAL-ALL
AMT-ALL
PAY-AUTH-HOLD
NUMERIC-HOLD
I
MAX-LINE
FA-NOMINAL
CC-NOMINAL
PRINT-PA Y-AUTH-FLAG
88 FLAG-ON
88 FLAG-OFF
HEAD
02
02

02
HEAD
02
02
02
02
02
02
02
02
02
02
HEAD
02
02
02
HEAD
02
02
02
02
02
02
02
02
02
02
02
02
02
ING-1
FILLE
FILLE

FILLE
ING-2
FILLE
FILLE
DATE-
FILLE
FILLE
FILLE
FILLE
.
R
R

R
.
R
R PIC X(13)
OUT
R
R
R
R
PAGE-OUT
FILLE
FILLE
ING-3
FILLE
TITLE
FILLE
ING- A
FILLE
FILLE
FILLE
R
R
.
R
-OUT
R
.
R
R
R
FILLER
FILLE
FILLE
FILLE
FILLE
FILLE
FILLE
FILLE
FILLE
FILLE
R
R
R
R
R
R
R
R
R
PIC S9
PIC S9
PIC X(
PIC X(
PIC 9
PIC 99
PIC X(
PIC X(
PIC X
VALUE
VALUE

P
P

P

P

I
I

I

I
VA
P
P
P
P
P
P
P
P

P
P
P

P
P
P
P
P
P
P
P
P
P
P
P
P
I
I
I
I
I
I
I
I

I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I

C
C

c

c

X (
X(

X(

X
LUE
C
c
c
c
c
c
c
c

c
c
c

c
c
c
c
c
c
c
c
c
c
c
c
c
X(
X(
X(
X(
X(
zz
X(
X(

X(
X(
X(

X(
X (
X (
X(
X(
X (
X-(
X(
X(
X(
X (
X(
X(
( 10
( 10
10)
10)
COM
CD
10)
4> .
VAL
' 1 '
•0'

51
28

53


)
)

)

)V99 COMP VALUE 0.
)V99 COMP VALUE 0.
VALUE SPACES.
VALUE SPACES.
P VALUE 0.
MP VALUE 50.
UE ' 1 ' .

VALUE
VALUE

VALUE


SPAC
'PA
'R
SPAC


ES.
YMENT AUTHORIZATION
EPURT ' .
ES.

VALUE SPACES.
•DA
18
33
3)
53
5»
Z9
3)
4)

54
24
55

17
15
8)
9 )
5)
11
9)
6)
11
5)
11
8)
18
)
)

)

•



)
)
)

)
)



)


)

)

)
TE END
VALUE
VALUE
VALUE
VALUE
VALUE

VALUE
VALUE

VALUE
VALUE
VALUE

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
ING:
SPAC
SPAC
'FOR'
SPAC
i
ES .
ES.
.
ES.
'PAGE '.

SPACE
SPAC

SPAC
SPAC
SPAC

SPAC

S .
fcS.

ES.
ES.
ES .

ES .
•PAYMENT AUTH. #'.
SPACE
S.
'ACCOUNT #'.
SPACE
•cus
SPACE
S .
T CENTER1 .
S.
'AMOUNT' .
SPAC
•TOTA
SPAC
•COrtM
SPAC
ES.
L ' .
ES.
ENTS' .
ES.
DATA-LINE .
02
02
02
02
FILLE
PAY-A
FILLE
ACCT-
R
UTH-OUT
R
OUT
P
P
P
P
I
I
I
I
c
c
c
c
x(
X(
X(
X(
20
)
VALUE
SPAC
ES.
10) .
10
10
)
)
VALUE
,
SPAC

ES .

                                 185

-------
01
01
02  FILLER
02  CQST-CTR-DUT
02  FILLER
02  AMOUNT-OUT
02  FILLER
02  TOTAL-OUT
02  FILLFR
02  COMMENT
02  FILLER
ERROR-CUDE.
02  ERR-CODE
ERROR-LIST.
02  ERR-LIST-A.
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
X!
XI
XI

XI
-1
XI
X
Xi
[8 }
( 4 }
1 8 f
!8 )
15)
I8>
1 5)
(25
(6)
                                   VALUE SPACES
                                  VALUE SPACES.
                               VALUE SPACES



                              VALUE SPACES.
                              i VALUE SPACES
                               VALUE SPACES
                 OCCURS 7 TIMES PIC 9
        05  ERR-LIST1 PIC X(75) VALUE
        05  ERR-LIST2 PIC X{100)
01
                                    •ACCOUNT  NUMBER  NOT  FOUND
                                    •PAY AUTHORTY  NOT  NUMERIC
                                  •COST CENTER  NOT NUMERIC   ',
                             VALUE  'COST CENTER MOT FOUND
                                    •AMOUNT NOT NUMERIC
                                    •TOTAL NOT  NUMERIC
                                  •AMOUNTS C  TOTAL NOT EQUAL'.
02  ERR-LIST-B REDEFINES ERR-LlST-A.
    05  ERR-LIST OCCURS 7 TIMES PIC X(25).
SUB-LINE.
                         X(5)  VALUE SPACES.
                         X(ll) VALUE SPACES.
                         X(52) VALUE SPACES.
                         -(10).--.
                         X(3)  VALUE SPACES.
                         -( 10) .--.
                         X(36) VALUE SPACES.
02
02
02
02
02
02
02
                     PIC
                     PIC
                     PIC
                     PIC
                     PIC
                     PIC
                     PIC
        FILLER
        S-T-COMMENT
        FILLER
        AMT-ALL-OUT
        FILLER
        TOTAL-ALL-OUT
        FILLER
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT CARD-IN.
    OPEN OUTPUT PRINT-OUT, SORTED-FILE.
                FINANCIAL -COST -ALLOCATION.
READ-TITLE-CARD.
    READ CARD-IN AT END GO TO WR 1 TE-F INAL-TOT ALS .
    MOVE SPACES TO DISK-OUT.
    MOVE DATE-IN TO DATE-OUT, DISK-TITLE.
    WRITE DISK-OUT.
    MOVE SPACES TO DISK-OUT.
    MOVE TITLE-IN TO TITLE-OUT, DISK-TITLE.
    MOVE SOURCE-CODE TO SOR T -SEQ JENC E .
    WRITE DISK-OUT.
    MOVE SPACES TO PRINT-LINE.
    MOVE '  THE FOLLOWING CARDS HAVE A  INVALID  SOURCE
        TO PRINT-LINE .
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-OUT.
SORT-RECORDS.
                                                  CODE
                                186

-------
    SORT FILE-SORT ON ASCENDING KEY
        S-PAY-AUTH
    INPUT PROCEDURE READ-SORT-lNPUT
        THRU READ-SORT-INPUT-END
    OUTPUT PROCEDURE WRITE-SORT-OUTPUT
        THRU WRITE-SORT-OUTPUT-END.
CLOSE-SORT-FILES.
    CLOSE SORTED-FILE, CARD-IN.
    OPEN INPUT SQRTED-F1LE, F INANClAL-ACCT-TAbFI ,
                COST-CNTR-TABFI, SPfcC1AL-MCCT-TABFI.
HOUSEKEEPING.
    MOVE ZEROS TO ERROR-CODE.
    READ SPECIAL-ACCT-TABFI AT END
        MUVE 'COST CENTER TABLE CuNTAINS  tvO  DATA'  TU
        PRINT-LINE,
        PERFORM PRINT-LINE-OUT
        GO TO CLOSE-FILES.
WRITE-HEADINGS.
    MOVE 0 TO LINE-CT.
    MUVE PAGE-CT TO PAGE-OUT.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE ADVANCING NEW-PAGE.
    MOVE HEADING-1 TO PRINT-LINE.
    PERFORM PRINT-LINE-OJT.
    MOVE HEADING-2 TO PRINT-LINE.
    PERFORM PRIhlT-LINE-OUT.
    MOVE HEADING-3 TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU  PR1NT-LINE-OUT.
    MOVE HEADING-4 TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU  PR 1NT-LINE-OUT.
    ADD 1 TU PAGE-CT.
READ-RECORDS.
    READ SORTED-FILE AT END GO TO  WRITE-FINAL-TUTALS .
EDIT-RECORDS.
    MOVE ACCT-IN TO ACCT-OUT, FA-NOMINAL, D1SK-ACCT.
    READ FINANCIAL-ACCT-TABFI INVALID KEY
        MOVE 1 TO ERR-CODt  ( 1 ) .
    MOVE PAY-AUTH-IN TO PAY-AUTH-HOLD.
    IF FLAG-ON MOVE PAY-AUTH-IN TO  PAY-AUTH-OUT
        ELSE MOVE SPACES  TO PAY-AUTH-OUT.
    MOVt COST-CTR-IN TO COST-CTR-QUT.
    EXAMINE INPUT-RECS REPLACING ALL  '  '  BY  '0'.
    IF PAY-AUTH-IN NOT NUMERIC MOVE  1 TG  ERR-CODE  (2>
    IF COST-CTR-IN NOT NUMERIC MOVE  1 TO  ERR-COOE  (3)
        MOVE ZEROS TO CQST-CTR-1N.
    IF COST-CTR-IN NOT = ZEROS THEN
        PERFORM FIND-COST-CNTR.
    MOVE AMT-1N TO AMOUNT-OUT, DISK-AMOUNT.

                          187

-------
        ADD AMT-IN TO AMT-ACCUM* AMT-SUB-TOTAL .
    IF TOT-IN NOT = TU 0  THEN MOVE TOT-IN  TO  TUTAL-HOLD.
        ADD TOTAL-HOLD TO TOTAL-SUB-TOTAL.
    MOVE 0 TO TOTAL-OUT.
READ-NEXT-REC.
    PERFORM READ-RECORDS.
CHECK-NEXT-REC.
    MOVE PAY-AUTH-IN TO NUMERIC-HOLU.
    IF NUMERIC-HOLD = TU PAY-AUTH-HOLD THEN
                         MOVE •()' TIJ PRINT-PAY-AUTH-FLAG
                         GO TO kRlTE-LlNE-OUT.
    MOVE 'I1  TO PRINT-PAY-AUTH-FLAG.
        MOVE  TOTAL-HOLD TO TOTAL-OUT.
        IF TOTAL-HOLD NOT = TO AMT-ACCUM  THEN
                         MOVE 1  TL bRR-COUE  (7).
        MOVE  ZEROS TO AMT-ACCUMt TOTAL-HOLD.
WRITE-LIME-OUT.
    IF ERROR-CODE NOT = TO ZEROS THtN
        PERFORM MOVE-IN-ERRORS VARYING I
            FROM 1 BY 1 UNTIL ERROR-CODE  =  ZEROS
        ELSE  MOVE DATA-LINE TO PRINT-LINE
        PERFORM PRINT-LINE-OUT
        WRITE DISK-OUT
        MOVE  SPACES TO DISK-OUT.
    IF FLAG-ON THEN
        PERFORM PAGE-OVFLOW THRU PAGE-OVFLOW-END .
    GO TO EDIT-RECORDS.
FIND-COST-CNTR.
    IF CC-F1RST-2-DIGITS NOT = ZEROS THEN
        MOVE  COST-CTR-IN TO CC-NOMINAL
        READ  COST-CNTR-TABFI INVALID KEY
            MOVE 1 TO ERR-CODE (
-------
     SEARCH  ALL  CDST-CNTRS  AT END
         MOVE  1  TO  ERR-COOE (4)
     WHEN CC-SIZE-2 (CO  =  TO SEARCH-NO
         MOVt  CC-SIZE-4 (CO  TO  COST-CTR-1N.
 WRITE-SUB-TOTALS .
     PERFORM MOVE-SPACES  THRU PR INT-L I NE-OUT.
     PERFORM PRINT-LINE-OUT.
     MOVE 'SUB TOTAL   '  TO  S-T-COMMEKT.
     MOVE AMT-SUB-TOTAL TO  AMT-ALL-OUT.
     MOVE TOTAL-SUB-TOTAL  TO  TUTAL-ALL-OUT.
     MOVE SUB-LINE  TO  PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
     ADO  AMT-SUB-TOTAL TO  AMT-ALL.
     ADD  TOTAL-SUB-TGTAL  TO TOTAL-ALL.
     MOVE ZEROS  TO  AMT-SUB-TUTAL, TOTAL-SUB-TOTAL.
 MOVE-SPACES.
     MOVE SPACES TO PRINT-LINE.
 PRINT-LINE-OUT.
     WRITE PRINT-LINE  BEFORE  ADVANCING  1.
     ADD  1 TU  LINE-CT.
•
 READ-SORT-INPUT.
     READ CARD-IN  AT  END  GO TO READ-SORT-INPUT-END.
     IF  ini  NOT  =  TO  SOURCE-CODE THEN
         WRITE PRINT-LINE  FROM INPUT-CARD AFTER ADVANCING 1
     PERFORM MOVE-SPACES
     GO  TO READ-SORT-INPUT.
     RELEASE SORT-INPUT FROM  INPUT-CARD.
     GO  TO READ-SORT-INPUT.
 READ-SORT-INPUT-END.
     EXIT.
 WRITE-SORT-OUTPUT.
     RETURN  FILE-SORT  RECORD  INTO INPUT-RECS
         AT  END  GO  TO  *RITE-SORT-OUTPUT-END.
     WRITE INPUT-RECS.
     GO  TO WRITE-SORT-OUTPUT.
 WRITE-SORT-OUTPUT-END.
     EXIT.
<•
*    END  SORT  ROUTINE
<•
 WRITE-FINAL-TDTALS.
     IF  ERROR-CODE  =  TO ZERO  THEN
         WRITE DISK-OUT.
     MOVE TOTAL-HOLD  TO TOTAL-OUT.
     MOVE DATA-LINE TO PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
     PERFORM MOVE-SPACES  THRU PR1NT-LIME-OUT.
     PERFORM WRITE-SUB-TOTALS.
     PERFORM MOVE-SPACES  THRU PR I NT-LINE-OUT.


                            189

-------
    PERFORM PRINT-LINE-OUT.
    MOVE 'GRAND TUTAL'  TO S-T-COMKEMT.
    MDVb TOTAL-ALL TO TOTAL-ALL-OUT.
    MOVE AMT-ALL TO AMT-ALL-OUT.
    MOVE SUB-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
CLOSE-FILES.
    CLOSE SORTEU-FILE,  FINANCIAL-ACCT-TABF I,
        SPECIAL-ACCT-TABFI, FINANCIAL-COST-ALLOCAT ION,
        COST-CNTR-TABFI , PRINT-OUT.
E-O-J.
    STOP RUN.
                          190

-------
     PGMNAME=WUASRSER
SYSIN  DO *
 IDENTIFICATION DIVISION.
 PROGRAM-ID. WUASRSER.
 AUTHOR. ACT SYSTEMS, INC
         SUITE 200
         807 W MORSE BLVD
         WINTER PARK, FLA 32789 .
 DATE-WRITTEN. OCT 3 1977.
 DATE-COMPILED.  OCT 5 1977.
 REMARKS.    THIS PROGRAM EDITS THE REQUISITION FOR STUCK DATA
             CARDSt TOTALS ALL COSTS, FLAGS ANY DISCREPANCIES.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. IBM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01 IS NEW-PAGE.
 INPUT-OUTPUT  SECTION.
 FILE-CONTROL.
     SELECT CARD-IN
       ASSIGN TO UR-2540R-S-CARDIN
       ACCESS MODE IS SEQUENTIAL.
     SELECT FILE-SORT
       ASSIGN TO UT-3330-S-FILESORT
       ACCESS MODE IS SEQUENTIAL.
     SELECT SORTED-FILE
       ASSIGN TO UT-3330-S-SORTEDFI
       ACCESS MODE IS SEQUENTIAL.
     SELECT PRINT-GUT
       ASSIGN TO UR-1403-S-PRINTOUT
       ACCESS MODE IS SEQUENTIAL.
     SELECT FINANCIAL-ACCT-TABFI
         ASSIGN TO DA-3330-I-FATABFI
         ACCESS MODE IS RANDOM
         NOMINAL KEY IS FA-NOMINAL
         RECORD KEY IS FA-NUMBER.
     SELECT COST-CNTR-TABFI
         ASSIGN TO DA-3330-I-CCTABFI
         ACCESS MODE IS RANDOM
         NOMINAL KEY IS CC-NOMINAL
         RECORD KEY IS CC-NUMBER.
     SELECT SPECIAL-ACCT-TABFI
         ASSIGN TO DA-3330-S-SATABFI
         ACCESS MODE IS SEQUENTIAL.
     SELECT FINANCIAL-COST-ALLOCATION
         ASSIGN TO UT-3330-S-FICALFI
         ACCESS MODE IS SEQUENTIAL.
 DATA DIVISION.
 FILE SECTION.
                               191

-------
FD  CARD-IN
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS INPUT-CARD.
01  INPUT-CARD.
    02  ID1 PIC X.
    02  ID2 PIC X(79) .
01  DATE-CARD.
    02  DATE-IN       PIC X(18).
    02  TITLE-IN      PIC X(24).
    02  FILLER        PIC X(38) .
SD  FILE-SORT
    RECORD CONTAINS eo CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    02  S-SOURCE-CODE-NO PIC X.
    02  FILLER           PIC X.
    02  S-REQ-NO         PIC X(lO).
    02  FILLER           PIC X(b8).
FD  SORTED-FILE
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-RECS.
01  INPUT-RECS.
    02  SOURCE-CODE-NO   PIC X.
    02  FILLER           PIC X.
    02  REQ-IN           PIC X(10).
    02  FILLER           PIC X.
    02  ACCT-IN          PIC X(10) .
    02  FILLER           PIC X.
    02  COST-CTR-IN.
        05  CC-FIRST-2-DIGITS   PIC XX.
        05  CC-SECOND-2-DIGITS  PIC XX.
    02  FILLER           PIC X.
    02  AMOUNT-IN        PIC X(10) .
    02  AMT-IN REDEFINES AMOUNT-IN PIC S9(8)V99,
    02  FILLER           PIC X.
    02  TOTAL-IN         PIC X(10).
    02  TUT-IN REDEFINES TOTAL-IN  PIC S9(8)V99.
    02  FILLER           PIC X(30) .
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE        PIC X(133>.
FD  COST-CNTR-TABFI
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 30 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CC-REC.

                       192

-------
    XU3)  LCCURS 2 TIMES
    X(10)
    X(2G)
    X(8).
01  CC-REC.
    02  CC-NUMBER        PIC
    02  CC-NAME          PIC
FD  FINANCIAL-ACCT-TABFI
    BLOCK CONTAINS 3 RECORDS
    RECORD CONTAINS 5d CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS FA-REC.
01  FA-REC.
    05  FA-NUMBER        PIC
    05  FA-NAME          PIC
    05  FILLER           PIC
FD  SPECIAL-ACCT-TABFI
    BLOCK CONTAINS 0 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS COST-CENTERS.
01  COST-CENTERS.
    05  RECORD-COUNT.
        10  NO-OF-RfcCS   PIC 9U).
        10  FILLER       PIC X< 18) .
    05  COST-CNTRS OCCURS i TO 99  TIMES
        DEPENDING ON NO-OF-RECS
        ASCENDING KEY IS CC-SIZE-2
        INDEXED BY CC.
        10  CC-SIZE-2    PIC X(2).
        10  CC-SIZE-4    PIC X(
-------
77
77
77
77
77
77
77
77
77


01




01









01



01














01




AMI-ALL
REQ-HOLD
NUMERIC-HOLD
TOTAL-HOLD
I
MAX-LINfc
FA-NOMINAL
CC-NOMINAL
PRINT-REQ-FLAG
88 FLAG-ON
88 FLAG-OFF
HEADING-1 .
02 FILLER
02 FILLFR

02 FILLER
HEADING-2.
02 FILLER
02 FILLER
02 DATE-OUT
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 PAGE-OUT
02 FILLER
HEAOING-3.
02 FILLER
02 TITLE-OUT
02 FILLER
HEADING-4.
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLFR
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
02 FILLER
DATA-LINE.
02 FILLER
02 REQ-OUT
02 FILLER
02 ACCT-OUT
PIC S9(10)V99 COMP VALUE 0.
PIC X(10) VALUE SPACES.
PIC X(10) VALUE SPACES.
PIC S9(6)V99 COMP VALUE 0«
PIC 9 COhP VALUE 0.
PIC 99 COMP VALUE 50.
PIC X( 10) .
PIC X(O.
PIC X VALUE '1 ' .
VALUE 'I1.
VALUE '0'.

PIC X(i>l) VALUE SPACES.
PIC X(29) VALUE 'REQUISITION
' REPORT1 .
PIC X(53) VALUE SPACES.

PIC X VALUE SPACES.
PIC X(13) VALUE 'DATE ENDING:
PIC X(18) VALUE SPACES.
PIC X(33) VALUE SPACES.
PIC X(3) VALUE 'FOR ' .
PIC X(53) VALUE SPACES.
PIC X(5) VALUE 'PAGE '.
PIC 1119.
PIC X(3> VALUE SPACES.

PIC X(54) VALUE SPACES.
PIC X(24) VALUE SPACES.
PIC X(55) VALUE SPACES.

PIC X VALUE SPACES.
PIC X(10) VALUE SPACES.
PIC X(13) VALUE 'REQUISITION
PIC X(7> VALUE SPACES.
PIC X(9) VALUE 'ACCOUNT »' .
PIC X(6) VALUE SPACES.
PIC X(ll) VALUE 'COST CENTER'
PIC X(8) VALUE SPACES.
PIC X(6) VALUE •AMOUNT1.
PIC X(10) VALUE SPACES.
PIC X(5) VALUE 'TOTAL' .
PIC X(15) VALUE SPACES.
PIC X(8> VALUE 'COMMENTS' .
PIC XU4) VALUE SPACES.

PIC X(10) VALUE SPACES.
PIC X( 10) .
PIC X(10) VALUE SPACES.
PIC X(10) .
                         FROM STOCK
194

-------
01
01
    02   FILLER
    02   COST-CTR-OUT
    02   FILLER
    02   AMOUNT-OUT
    02   FILLER
    02   TUTAL-OUT
    02   FILLER
    02   COMMENT
    02   FILLER
    ERROR-CODE .
    02   ERR-CODE
    ERROR-LIST.
    02   ERR-LIST-A.
        05   ERR-LIST1
                         PIC X(»)  VALUE  S°ACES
                         PIC X(^) .
                         PIC X(8)  VALUE  SPACES
                         PIC -U ).--.
                         PIC X(H) VALUE  SPACES.
                         PIC -(8 ).--.
                         PIC X(9) VALUE  SPACES.
                         PIC X(25) VALUE  SPACES
                         PIC X(13) VALUE  SPACES
                 OCCURS 7 TIMES  PIC  9.
                      PIC X175) VALUE
        35  ERR-LIST2 PIC X(100)
01
                                    'ACCOUNT  NUMBER  NOT  FOUND
                                    'REUUISIriON-NO  NONNUMERIC
                                  •COST  CENTER  NOT  NUMERIC   ' .
                             VALUE  'COST  CENTER  NOT  FOUND
                                    •AMOUNT  NOT NUMERIC
                                    •TOTAL  NOT  NUMERIC
                                  •AMOUNTS  c  TOTAL  NOT
02  ERR-LIST-B REDEFINES ERR-LIST-A.
    35  ERR-LIST OCCURS 7 TIMES  PIC  X(25) .
SUB-LINE .
p
p
p
p
p
p
p
I
I
I
I
1
I
I
c
c
c
c
c
c
c
X
X
X
X
(
{
{
(
(
(
7
1
4*
1
2
1
)
1)
0)
0)
)
0)
VALUE
VALUE
VALUE
• "" ™ •
VALUE
• ~ ""* •
VALUE
SPAC
SPAC
SPAC
SPACE
SP-AC
ES
ES
ES
S.
ES
    02  FILLER
    02  S-T-COMMENT
    02  FILLER
    02  AMT-ALL-OUT
    02  FILLER
    02  TOTAL-ALL-OUT
    02  FILLER
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT CARD-IN.
    OPEN OUTPUT PRINT-OUT, SORTED-FJLE,
                FINANCIAL-COST-ALLOCATION.
READ-TITLE-CARD.
    READ CARD-IN AT END GO TO WRITE-FINAL-TOTALS .
    MOVE SPACES TO DISK-OUT.
    MOVE DATE-IN TO DATE-OUT, DISK-TITLE.
    WRITE DISK-OUT.
    MOVt SPACES TO DISK-OUT.
    MOVE TITLE-IN TO TITLE-OUT,  DISK-TITLE.
    MOVE SOURCE-CODE TO SORT-SEQUENCE .
    WRITE DISK-OUT.
    MOVE SPACES TO PRINT-LINE.
    MOVE '  THE FOLLOWING CARDS HAVE A  INVALID  SOURCE
        TO  PRINT-LINE .
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR INT-LINE-OUT.
SORT-RECORDS .
                                                      CODE
                                195

-------
    SORT FILE-SORT ON ASCENDING KEY
        S-REQ-NO
    INPUT PROCEDURE READ-SORT-INPUT
        THRU READ-SURT-1NPUT-END
    OUTPUT PROCEDURE WR1TE-SORT-OUTPUT
        THRU WRITE-SORT-OUTPUT-ENO.
CLQSE-sQRT-FILFS.
    CLOSE SORTEO-FILE, CARD-IN.
    OPEN INPUT SORTED-FILE, F1NANCIAL-ACCT-TABF I .
                COST-CNTR-TABFI, SPEC IAL-ACCT-TABFI.
HOUSEKEEPING.
    MOVE ZEROS TO ERROR-CODE.
    READ SPECIAL-ACCT-TABFI AT END
        MOVE 'COST CENTER TABLE CONTAINS NO DATA'  TO
        PRINT-LINE,
        PERFORM PRINT-L1NE-OUT
        GO TO CLOSE-FILES.
WRITE-HEADINGS.
    MOVE 0 TO LINE-CT.
    MOVE PAGE-CT TO PAGE-OUT.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE ADVANCING NEW-PAGE.
    MOVE HEADING-1 TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE HEADING-2 TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE HEADING-3 TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR1NT-LINE-OUT.
    MOVE HEADING-^ TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR 1NT-LINE-OUT.
    ADD 1 TO PAGE-CT.
READ-RECORDS.
    READ SORTED-FILE AT END GO TO WRITE-FINAL-TOTALS.
EDIT-RECORDS.
    MOVE ACCT-IN TO ACCT-DUT, FA-NOMINAL. DISK-ACCT.
    READ FINANCIAL-ACCT-TABFI INVALID KtY
        MOVE 1 TO ERR-CODE (1).
    MOVE REQ-IN TO REU-HOLD.
    IF FLAG-ON MOVE REQ-IN TO REQ-OUT
    ELSE MOVE SPACES TO REQ-OUT.
    MOVE COST-CTR-IN TO COST-CTR-OUT.
    EXAMINE INPUT-RECS REPLACING ALL • • BY 'O1.
    IF REQ-IN NOT NUMERIC MOVE 1 TO ERR-CODE  (2).
    IF COST-CTR-IN NOT NUMERIC MOVE 1 TD ERR-CODE  (3)
        MOVE ZEROS TO COST-CTR-IN.
    IF COST-CTR-IN NOT = ZEROS THEN
        PERFORM FIND-COST-CNTR.
    MOVE AMT-IN TO AMOUNT-OUT, DISK-AMOUNT.

                           196

-------
        ADD AMT-IN TO AMT-ACCUM, AMT-SUB-TDTAL .
    IF TOT-IN NOT = TO 0  THEN MOVE TUT-IN TO  TOTAL-HLJLD,
        ADD TUTAL-HOLD TO TOTAL-SUB-TOTAL.
    MOVE 0 TO TOTAL-OUT.
READ-NEXT-REC.
    PERFORM READ-RECORDS.
CHECK-NEXT-REC.
    MOVE REQ-IN TO NUMERIC-HOLD.
    IF NUMERIC-HOLD = TO REQ-HOLD THEN
                         MOVE  'C» TO PRINT-REU-FLAG
                         GO TO WRITE-LINE-OUT.
    MOVE '!' TO PRINT-REO-FLAG.
        MOVE TOTAL-HOLD TO TOTAL-LUT.
        IF TOTAL-HOLD NOT = TO AMT-ACCUM THEN
                         MOVE  1  TO ERR-CODE (7).
        MOVE ZEROS TO AMT-ACCUM, TOTAL-HOLD.
WRITE-LINE-OUT.
    IF ERROR-CODE NOT = ZERO THEN
        PERFORM MQVE-IN-ERRORS VARYING I
            FROM 1 BY 1 UNTIL  ERROR-CODE = ZEROS
        ELSE MOVE DATA-LINE TO PRINT-LINE
        PERFORM PRINT-LINE-OUT
        WRITE DISK-OUT
        MOVE SPACES TO DISK-OUT.
    IF FLAG-ON THEN
        PERFORM PAGE-OVFLON THRU PAGE-OVFLOW-END.
    GO TO EDIT-RECORDS.
FIND-COST-CNTR.
    IF CC-FIRST-2-DIGITS NOT = ZEROS THEN
        MOVE COST-CTR-IN TO CC-NOMINAL
        READ COST-CNTR-TABFI INVALID KEY
        MOVE 1 TO ERR-CODE (4)
    ELSE PERFORM SEARCH-CC.
    MOVE COST-CTR-IN TO 0ISK-COST-CNTR.
MOVE-1N-ERRORS.
    IF ERR-CODE (I) NOT = ZEROS  THEN
        MOVE ERR-LIST (I) TO COMMENT
        MOVE DATA-LINE TO PRINT-LINE
        PERFORM PRINT-LINE-OUT
        MOVE SPACES TO DATA-LINE
        MOVE ZERO TO ERR-COOE  (I).
PAGE-OVFLQW.
    IF LINE-CT NOT < MAX-LINE  THEN
    PERFORM WRITE-SUB-TOTALS
    PERFORM WRITE-HEAOINGS.
PAGE-OVFLOH-END.
    EXIT.
SEARCH-CC.
    MOVE CC-SECOND-2-DIGITS TO SEARCH-NO.
    SET CC TO 1.


                          197

-------
     SEARCH ALL CDST-CNTRS AT END
         MOVE 1 TO ERR-CUDE (4)
     WHEN CC-SIZE-2 (CO = TO SEARCH-NO
         MOVE CC-SIZE-4 (CO TO COST-CTR-IN.
 WRITE-SUB-TOTALS.
     PERFORM MOVE-SPACES THRU PR INT-LINE-OUT.
     PERFORM PRINT-LINE-QUT.
     MOVE 'SUB TOTAL  ' TO S-T-CUMhENT .
     MOVE AMT-SUB-TOTAL TO AMT-ALL-OUT.
     MOVE TOTAL-SUB-TOTAL TO TUTAL-ALL-OUT.
     MOVE SUB-LINE TL> pRlNT-LINE.
     PERFORM PRINT-LINE-OUT.
     ADD AMT-SUB-TOTAL TO AMT-ALL.
     ADD TOTAL-SUB-TOTAL TO TOTAL-ALL.
     MOVE ZEROS TO AMT-SUB-TOTAL, TOTAL-SUB-TOTAL.
 MOVE-SPACES.
     MOVE SPACES TD PRINT-LINE.
 PRINT-LINE-OUT.
     WRITE PRINT-LINE BEFORE ADVANCING  1.
     ADD 1 TO LINE-CT.
*    SORT  ROUTINE
*
 READ-SORT-INPUT.
     READ CARD-IN AT END GO TD READ-SORT-INPUT-END.
     IF ID1 NOT = TO SOURCE-CODE THEN
         WRITE PRINT-LINE FROM INPUT-CARD AFTER ADVANCING
     PERFORM MOVE-SPACES
         GO TO READ-SORT-INPUT.
     RELEASE SORT-INPUT FROM INPUT-CARD.
     GO TO READ-SDRT-INPUT.
 READ-SORT-INPUT-END.
     EXIT.
 WRITE-SORT-OUTPUT.
     RETURN FILE-SORT RECORD INTO 1NPUT-RECS
         AT END GO TO WR1TE-SDRT-OUTPUT-END.
     WRITE INPUT-RECS.
     GO TO WRITE-SORT-OUTPUT.
 WRITE-SORT-OUTPUT-END.
     EXIT.
*
*    END SORT ROUTINE
*
 WRITE-FINAL-TOTALS.
     IF ERROR-CODE = TU ZERO THEN
         WRITE DISK-OUT.
     MOVE TOTAL-HOLD TO TOTAL-OUT.
     MOVE DATA-LINE TO PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
     PERFORM WRITE-SUB-TOTALS.
     PERFORM MOVE-SPACES THRU PR 1NT-LINE-OUT.

                              198

-------
    PERFORM PRINT-LINE-OUT.
    MOVE 'GRAND TOTAL1 TD S-T-COMMENT.
    MOVE TOTAL-ALL TO TOTAL-ALL-OUT.
    MOVE AMT-ALL TO AMT-ALL-OUT.
    MOVE SUB-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
CLOSE-FILES.
    CLOSE SORTED-FILE, FINANCIAL-ACCT-TABF I ,
        SPECIAL-ACCT-TABF1, FINANCIAL-COST-ALLOCATION,
        COST-CNTR-TABFI, PRINT-OUT.
E-O-J.
    STOP RUN.
                          199

-------
      PGMNAME=WUASPRER
•SYSIN  DD  *
  IDENTIFICATION  DIVISION.
  PROGRAM-ID.  WUASPRER.
  AUTHOR. ACT  SYSTEMS,  INC
         SUITE 200
         807  W MORSE  BLVD
         WINTER  PARK,  FLA  32789  .
  DATE-WRITTEN. OCT  8  1977.
  DATE-COMPILED.   OCT  10  1977.
  REMARKS.     THIS PROGRAK  EDITS  THfc  PAYROLL REPORT DATA
              CARDS, TOTALS  ALL  COSTS,  FLAGS ANY DISCREPANCIES,
  ENVIRONMENT  DIVISION.
  CONFIGURATION SECTION.
  SOURCE-COMPUTER. IBrt-370.
  OBJECT-COMPUTER. IBM-370.
  SPECIAL-NAMES.
      C01 IS NEW-PAGE.
  INPUT-OUTPUT  SECTION.
  FILE-CONTROL.
      SELECT CARD-IN
        ASSIGN TO UR-2540R-S-CARD1N
        ACCESS MODE  IS  SEQUENTIAL.
      SELECT SORTED-FILE
        ASSIGN TO UT-3330-S-SORTEDFI
        ACCESS MODE  IS  SEQUENTIAL.
      SELECT PRINT-OUT
        ASSIGN TO UR-1403-S-PRIHTliUT
        ACCESS MODE  IS  SEQUENTIAL.
      SELECT FINANCIAL-ACCT-TABFI
         ASSIGN  TO  DA-3330-I-FATABFI
         ACCESS  MODE  IS  RANDOM
         NOMINAL KEY  IS  FA-NUMINAL
         RECORD  KEY IS  FA-NUMBER.
      SELECT COST-CNTR-TABFI
         ASSIGN  TO  DA-3330-I-CCTABFI
         ACCESS  MODE  IS  RANDOM
         NOMINAL KEY  IS  CC-NOMINAL
         RECORD  KEY IS  CC-NUMBER.
      SELECT SPECIAL-ACCT-TABFI
         ASSIGN  TO  DA-3330-S-SATABFI
         ACCESS  MODE  IS  SEQUENTIAL.
      SELECT FINANCIAL-COST-ALLOCATION
         ASSIGN  TO  UT-3330-S-FICALFI
         ACCESS  MODE  IS  SEQUENTIAL.
  DATA DIVISION.
  FILE SECTION.
  FD   CARD-IN
      RECORD CONTAINS  80  CHARACTERS
      LABEL RECORDS  ARE  OMITTED

                             200

-------
    DATA RECORD IS INPUT-CARD.
01  INPUT-CARD.
    02  ID1              PIC X.
    02  FILLER           PIC X(ll) .
    02  DATE-DATA        PIC X(6).
    02  FILLER           PIC X(b2).
01  DATE-CARD.
    02  DATE-IN       PIC X( 18) .
    02  TITLE-IN      PIC X ( 2<*) .
    02  FILLER        PIC X(38) .
FD  SORTED-FILE
    RECORD CONTAINS 30 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-RECS.
01  INPUT-RECS.
    02  SOURCE-CODE-NO   PIC X.
    02  FILLER           PIC X.
    02  EMPL-NO-IN.
        05  EMP1-IN      PIC X(3).
        05  EMP2-IN      PIC XX.
        05  EMP3-IN      PIC X(
-------
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 58 CHARACTERS
    LABEL RECORUS ARE STANDARD
    DATA RECORD IS FA-REC.
01  FA-REC.
    05  FA-NUMBER        PIC X(10)
    05  FA-NAME          PIC X(20)
    05  FILLER           PIC X(8 I.
FD  SPECIAL-ACCT-TABFI
    BLOCK CONTAINS 0 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS COST-CENTERS.
01  COST-CENTERS.
    05  RECORD-COUNT.
        10  NO-OF-RECS   PIC 9(4>.
        10  FILLER       PIC X( 18) .
    05  COST-CNTRS OCCURS 1 TO  99  TIMES
        DEPENDING ON NO-DF-RECS
        ASCENDING KEY IS CC-SIZE-2
        INDEXED BY CC.
        10  CC-SIZE-2    PIC X12).
        10  CC-SIZE-4    PIC X(4).
        10  FILLER       PIC X(16).
FD  FINANCIAL-COST-ALLOCATION
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS 26 CHARACTERS
    LABEL RECORUS ARE STANDARD
    DATA RECORD IS DISK-OUT.
01  DISK-OUT.
    05  DISK-ACCT
    05  01SK-COST-CNTR
    05  D1SK-CDST-CAT
    05  DISK-AMOUNT
01  FIRST-TWO-RECS.
    05  FILLER
    05  SORT-SEQUENCE
    05  DISK-TITLE
WORKING-STORAGE SECTION
77  SOURCE-CODE
77  SEARCH-NO
77  LINE-CT
77  PAGE-CT
77  TOTAL-ACCUM
77  GRANO-TOTAL-ACCUM
77  TOTAL-SUBTOTAL
77  GROSS-SUB-TOTAL
77  GRAND-SUBTOTAL
77  TOTAL-ALL
77  GROSS-ALL
77  GRAND-ALL
OCCURS 2 TIMtS.
p
p
p
p
p
p
p
p
p
p
p
p
I
I
I
I
I
I
I
I
I
I
I
I
PI
p
p
p
p
p
p
I
I
I
I
I
I
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
X(10) .
X(4>.
X(2) .
S9( 8)V99.
X.
X.
X(24) .
X VALUt '1 ' .
XX VALUE SPACES.
99
9(4
59(
S9(
S9(
591
S9(
S9(
S9(
59 (
COMP VALUE 0.
>
8)
8)
8)
8)
8)
10
10
10
CUMP
V99
V99
V99
V99
V99
)V99
)V99
)V99
VALUt
COMP
CDMP
COMP
COMP
COMP
COMP
COMP
COMP
0.
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

0
0
0
C
0
0
0
0
                         202

-------
77  EMPL-NO-HOLO
77  DATE-HOLD
77  GROSS-HULO
77  I
77  MAX-LINE
77  FA-NOMINAL
77  CC-NOMINAL
77  PRIUT-EMPL-FLAG
    88  FLAG-ON
    38  FLAG-OFF
01  HEADING-l.
    02  FILLER
    02  FILLER
    02  FILLER
01  HEAi)ING-2.
    02  FILLER
    02  FILLER
    02  OATE-OUT
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  PAGE-OUT
    02  FILLER
01  HEAOING-3.
    02  FILLER
    02  TITLE-OUT
    02  FILLER
01  HEADING-^.
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
01  DATA-LINE.
    02  FILLER
    02  EMPL-NO-OUT.
        05  EMP1-OUT
PIC X(9) VALUE SPACES.
PIC X(6) VALUE SPACES.
PIC S9(8)V99' COMP VALUE 0.
PIC 9 COMP VALUE 0.
PIC 99 COMP VALUE 53.
PIC X( 10) .
PIC X(4 ).
PIC X VALUE ' 1 ' .
VALUE ' 1 ' .
VALUE '0'.

PIC X(59) VALUE  SPACES.
PIC X(14) VALUE  'PAYROLL
PIC X(6C) VALUE  SPACES.

PIC X VALUE SPACES.
          REPORT '
PIC X(13) VALUE
PIC X(18) VALUE
PIC X(33) VALUE
PIC X(3J VALUE
PIC X(53) VALUE
PIC X(5)  VALUE
PIC ZZZ9.
PIC X(3) VALUE SPACES.
 'DATE  ENDING
 SPACES.
 SPACES.
'FOR' .
 SPACES.
  'PAGE  '.
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
(54
(24
(5.5
(5)
(15
(6>
(4)
(4>
( 14
(5 )
( 11
(6
(1
(5
(9
(6
(9
(1
(8
(6
)
0
)
J
I
)
0
)
)
) VALUE
) VALUE
) VALUE
VALUE
) VALUE
VALUE
VALUE
VALUE
) VALUE
VALUE
) VALUE
VALUE
) VALUE
VALUE
VALUE
VALUE
VALUE
) VALUE
VALUE
VALUE
SPAC
SPAC
SPAC
SPACE
'EMP
SPACE
'DATE
SPACE
' ACC
SPACE
'CDS
SPACE
•TOT
SPACE
•GRUS
SPACE
•TOTA
SPAC
•COMM
SPACE
ES.
ES.
ES.
S .
LOY
S.
1
S.
OUiM
S.
T C
S
.

AL
S
S
S
L
E
E
S
.

EE NUMBER1
T NUMBER1 .
ENTER' .

COST ' .

PAY ' .
*

S
N
.

P
•
T


AY ' .

S1 .

PIC X(7) VALUE SPACES.
PIC X(3).
                           203

-------


02
02
02
02
02
02
02
02
02
02
02
02
02
02
01 ERR
02
05 DASH1
05 EMP2-OUT
05 DASH2
05 EMP3-OUT
FILLER
DATt-DATA-OUT
FILLER
ACCT-OUT
FILLER
COST-CTR-OUT
FILLER
TOTAL-COST-OUT
FILLER
GROSS-PAY-OUT
FILLER
GRAND-PAY-OUT
FILLER
COMMENT
OR-CODE.
ERR-CODE OCCURS 3
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P


1C
1C
1C
I
I
I
1
I
I
I
I
I
I
C
C
C
C
C
C
C
C
C
C
X
XX
X
X(
X(
X(
X(
X{
XI
X(
X(
-(
X(
1C -(
I
I
I
I

T
C
C
C
C

XJ
- (
X(
X(

1MES
VALUE '-'.
VALUE '-'.
4*
?y
t>\
5)
10
10
4)
8}
8)
4 >
8 >
4)
8)
4 )
20

P
•

•

)
)
•

•

•

•

)

I

VALUE

VALUE
.
VALUE

VALUE
— .
VALUE
-- .
VALUE

VALUE
VALUE

C 9.

SPACE


S.




SPACES.

SPAC

SPAC


ES.

ES.






SPACES.

SPACE

SPACE
SPAC



S.

S.
ES.









01 ERROR-LIST.
02



ERR-LIST-A.
05 ERR-L1ST1 PI



C







X



(80



)




VALUE





i
i
i


ACCOUNT
EMP
COS
•COST



05 ERR-LIST2 PIC





X


(


80)


VA




LUE


i
i
i
LOYE
T CT
CNTR
TOTAL I
GROSS P
GROSS t
•DATE
02
ERR-LIST-B REDEFI
NE
s
05 ERR-LIST OCCURS
01 SUB
02
02
02
02
02
02
02
02
02
-LINE.
FILLER
S-T-COMMENT
FILLER
TOTAL-ALL-OUT
FILLER
GROSS-ALL-OUT
FILLER
GRAND-ALL-OJT
FILLER

P
P
P
P
P
P
P
P
P

I
I

C
C
1C
I
I
I
I
I
I
C
C
C
C
C
C
ERR-L
8 T

X(
X(
X(
- (
X(
-(
XX
-(
X(
IME

5)
11
50
10
2)
10


)
)
)

)
IST-A.
S PIC

VALUE
VALUE
VALUE
. — .
VALUE
m " ^ •

X(20)

SPAC
SPAC

.

ES.
ES.
NOT





SPACES.



SPACES.



VALUE SPACES.
10
24
)
)
. — .
VALUE

SPAC

ES.


                                                      H NOT  FOUND
                                                     E #  N-NUMERIC
                                                     R NOT NUMERIC
                                                      NOT FOUND  '.
                                                     N NOT NUMERIC
                                                     AY NOTNUMERIC
                                                      TOTAL  NOT  =
                                                     NUMERIC     '.
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT CARD-IN.
    OPEN OUTPUT PRINT-OUT, SORTEO-F1LE,
                FINANCIAL-COST-ALLOCATION.
READ-TITLE-CARD.
    READ CARD-IN AT END GO TO WRITE-FINAL-TOTALS
    MOVE SPACES TU DISK-OUT.
                               204

-------
    MOVE DATE-IN TO DATE-OUT, DISK-TITLE.
    WRITE DISK-OUT.
    MOVE SPACES TO DISK-OUT.
    MOVE TITLE-IN TO TITLE-OUT, DISK-TITLE.
    MOVE SOURCE-CODE TO SURT-SEUUENCE.
    WRITE DISK-OUT.
    MOVt SPACES TO PRINT-LINE.
    MOVE '  THE FOLLOWING CARDS HAVE A INVALID SOURCE  CODE1
        TO  PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR1NT-LINE-OUT.
MOVE-INPUT-TO-DISK.
    REAu CARD-IN AT END GG T3 RE-OPkN-FJLfcS.
    IF 101  NOT = SOURCE-CODE THEN
        WRITE PRINT-LINE FROM INPUT-CARD  AFTER 1
        PERFORM MOVE-SPACES
        GO  TO MOVE-INPUT-TO-DISK.
    MOVt INPUT-CARD TO INPUT-RECS.
    WRITE INPUT-RECS.
    GO TO MOVE-INPUT-TO-DISK.
RE-OPEN-FILES.
    CLOSE SORTED-FILE, CARD-IN.
    OPEN INPUT SORTED-FILE, F INANCIAL-ACCT-TABF I ,
                COST-CNTR-TABFI, SPECIAL-ACCT-TABFI.
HOUSEKEEPING.
    MOVE ZEROS TO ERROR-CODE.
    READ SPECIAL-ACCT-TABFI AT END
        MOVE 'COST CENTER TABLE CONTAINS  NO DATA1  TU
        PRINT-LINE,
        PERFORM PRINT-LINE-OUT
        GO  TO CLOSE-FILES.
WRITE-HtADINGS.
    MOVE 0  TO LINE-CT.
    ADD 1 TU PAGE-CT .
    MOVE PAGE-CT TO PAGE-OUT.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE ADVANCING NEW-PAGE.
    MOVE HEADING-1 TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.-
    MOVE HEADING-2 TO PRINT-LINfc.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD1NG-3 TO PRINT-LINE.
    PERFORM PRINT-LINE-CUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-OUT.
    MOVE HEADING-** TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR 1NT-LINE-QUT .
READ-RECORDS.
    READ SORTED-FILE AT END GO TO WRITE-FINAL-TUTALS .
EDIT-RECORDS.

                            205

-------
    MOVE  ACCT-IN  TO  ACCT-OUT,  FA-NOMINAL. OISK-ACCT.
    READ  FINANCIAL-ACCT-TABFI  INVALID KEY
        MOVE  1 TO ERR-CODE  (1) .
    MOVE  COST-CTR-IN TG  CGST-CTR-uUT.
    MOVE  EMPL-NO-IN  TG EMPL-NO-HDLD.
    MOVE  DATE-DATA-IN TD DATE-HOLD.
    EXAMINE INPUT-RECS REPLACING ALL '  '  BY '0'.
    IF EMPL-NO-IN NOT NUMERIC  MOVE 1 TO ERR-CODE (2).
    IF DATE-DATA-IN  NGT  NUMERIC  MOVE 1  TD ERR-CUDE (8).
    IF FLAG-ON THEN
        MOVE  EMP1-IN TO  EMP1-QUT,
        MOVE  EMP2-IN TO  EMP2-QUT,
        MOVE  EMP3-IN TO  EMP3-QUT.
        MOVE  '-'  TO  DASH1,  OASH2,
        MOVE  DATE-DATA-IN  TO  DATE-DATA-OUT.
    ELSE  MOVE SPACES TO  EMPL-ND-OUT, DATE-DATA-OUT.
TEST-COST-CNTR.
    IF COST-CTR-IN NOT NUMERIC  MOVE 1 TO  ERR-CODE (3)
        MOVE  ZEROS TO COST-CTR-IN.
    IF COST-CTR-IN NOT = ZEROS  THEN
        PERFORM FIND-COST-CNTR.
    MOVE  TOT-COST-IN TO  TOTAL-COST'OUT, DISK-AMOUNT.
        ADD TOT-COST-IN  TG  TOTAL-ACCUM.
    IF GRO-PAY-IN >  0 THEN  MOVE  GRO-PAY-1N TO GROSS-HOLD.
    MOVE  ZEROS TO GROSS-PAY-OUT, GRAND-PAY-OUT.
READ-NEXT-REC.
    PERFORM READ-RECORDS.
CHECK-NEXT-REC.
    IF (EMPL-NO-IN = EMPL-NO-HOLD) AND  (DATE-DATA-IN = DATE-HOLD)
        THEN  MOVE '0' TD PRINT-EMPL-FLAG ,
        GO TD WRITE-LINE-OUT.
MDVE-GROSS-OUT.
    MOVE  '!'  TO PRINT-EMPL-FLAG.
    MOVE  GROSS-HOLD  TG GROSS-PAY-OUT.
    IF GROSS-HOLD NOT =  TOTAL-ACCUM THEN
        MOVE  1 TO ERR-CODE  (7).
    ADD TOTAL-ACCUM  TO GRAND-TOTAL-ACCUM, TOTAL-SUBTOTAL.
    ADD GROSS-HOLD TO GROSS-SUB-TOTAL.
    MOVE  ZEROS TO TOTAL-ACCOM,  GROSS-HOLD.
MOVE-GRAND-OUT.
    IF EMPL-ND-IN NOT =  EMPL'NO-HDLD THEN
        MOVE  GRAND-TDTAL-ACCUM TO GRAND-PAY-OUT
        ADD GRAND-TOTAL-ACCUtt  TD GRAND-SUBTOTAL
        MOVE  ZEROS TO GRAND-TOTAL-ACCUM.
WRITE-LINE-OUT.
    IF ERROR-CODE NOT =  ZERO  THEN
        PERFORM MGVE-IN-ERRORS VARYING  I
            FROM 1 BY 1  UNTIL  ERROR-CODE  = ZEROS
        ELSE  MOVE DATA-LINE  TO PRINT-LINE
        PERFORM PRINT-LINE-OUT

                                206

-------
        WRITE DISK-OUT
        MOVE SPACES TO DISK-OUT.
CHECK-FDR-END-OF-PAGE.
    IF FLAG-ON THEN
        PERFORM PAGE-OVFLOW  THRU  PA&E-0V FLOW-END.
    GO TO EDIT-RECORDS.
FIND-COST-CNTR.
    IF CC-FIRST-2-DIGITS NOT  =  ZEROS  THEN
        MOVE COST-CTR-IN TO  CC-NOMINAL
        READ COST-CNTR-TABF1  INVALlu  KEY
        MOVE 1 TO ERR-CQDE  (4)
    ELSE PERFORM SEARCH-CC.
    MOVE COST-CTR-IN  TO 01SK-COST-CNTR .
MOVE-IN-ERRORS.
    IF ERR-CODE (I) NOT = ZEROS  THEN
        MUVE ERR-LIST (I) TO  COMMENT
        MOVE DATA-LINE TO PRINT-LINt
        PERFORM PRINT-LINE-OUT
        MOVE SPACES TO DATA-LINE
        MOVE ZERO TO  ERR-CODE  (I }.
PAGE-OVFLOW.
    IF LINE-CT NOT <  MAX-LINE  THEN
    MOVE '!' TO PRINT-EMPL-FLAG
    PERFORM WRITE-SUB-TQTALS
    PERFORM WRITE-HEADINGS.
PAGE-CVFLOW-END.
    EXIT.
SEARCH-CC .
    MOVE CC-SECONO-2-UIGITS  TO  SEARCH-NO.
    SET CC TO 1.
    SEARCH ALL C05T-CNTRS AT  END
        MOVE 1 TO ERR-CODE  (4)
    WHEN CC-SIZE-2 (CO = TO  SEARCH-NO
        MOVE CC-SIZE-^ (CC)  Td  COST-CTR-IN.
WRITE-SUB-TOTALS.
    PERFORM MOVE-SPACES THRU  PR I NT-LINE-OUT.
    PERFORM PRINT-LINE-OUT.
    MOVE «SUB TOTAL   ' TO 5-T-COMHENT.
    MOVE TOTAL-SUBTOTAL TO  TOTAL-ALL-OUT.
    MOVE GRUSS-SUB-TOTAL TO  GROSS-ALL-OUT .
    MOVE GRAND-SUBTOTAL TO  GRAND-ALL-OUT .
    MOVE SUB-LINE TO  PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    ADD TOTAL-SUBTOTAL TO TOTAL-ALL.
    ADD &ROSS-SUB-TOTAL TO  GROSS-ALL.
    ADD GRAND-SUBTOTAL TO GRAND-ALL.
    MOVE ZEROS TO TOTAL-SUBTOTAL.  GROSS - SUB-TOTAL
                         GRAND-SUBTOTAL .
MOVE-SPACES.
    MOVE SPACES TU PRINT-LINE.

                        207

-------
PRINT-LINE-OUT.
    WRITE PRINT-LINE BEFORE ADVANCING 1.
    ADD 1 TO LINE-CT.
WRITE-F1NAL-TOTALS.
    MOVE ZEROS TO EMPL-NO-HOLD.
    PERFORM MOVE-GROSS-OUT THRU WRITE-LINE-OUT.
    PERFORM WRITE-SUB-TOTALS.
    PERFORM MOVt-SPACES THRU PR INT-LINE-DUT.
    PERFORM PRINT-LINE-OUT.
    MOVE 'GRAND TOTAL' TO S-T-COMHENT.
    MOVE TOTAL-ALL TO TOTAL-ALL-OUT.
    MOVt GROSS-ALL TO GROSS-ALL-OUT.
    MOVE GRAND-ALL TO GRAND-ALL-OUT.
    MOVE SUB-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
CLOSE-FILES.
    CLOSE SORTED-FILE, FINANCIAL-ACCT-TABFI .
        SPECIAL-ACCT-TABFI, FINANCIAL-COST-ALLOCATION.
        COST-CNTR-TABFI, PRINT-OUT.
E-O-J.
    STOP RUN.
                         208

-------
      PGMNAME=WUASCARP
.SYSIN   DO  *
  IDENTIFICATION  DIVISION.
  PROGRAM-ID.  WUASCARP.
  AUTHOR. ACT  SYSTEMS,  INC
         SUITE 200
         807  W MORSE  BLVD
         WINTER  PARK,  FLA  32789.
  DATE-WRITTEN. OCT  24  1977.
  DATE-COMPILED.  OCT  26  1977.
  REMARKS.     THIS  PROGRAM  READS  THE  COST  ALLOCATION
              FILES,  TOTALS THE  COSTS AND  PRODUCES
              A COST  QLLOSQTYON  RUP/RT.
  ENVIRONMENT  DIVISION.
  CONFIGURATION SECTION.
  SOURCE-COMPUTER.  IBM-370.
  OBJECT-COMPUTER.  IBM-370.
  SPECIAL-NAMES.
      C01 IS NEW-PAGE.
  INPUT-OUTPUT SECTION.
  FILE-CONTROL.
      SELECT FILE-SORT
         ASSIGN  TO  UT-3330-S-FILESORT
         ACCESS  MODE  IS  SEQUENTIAL.
      SELECT FINANCIAL-COST-ALLOCATION
         ASSIGN  TO  UT-3330-S-FICALFI
         ACCESS  MODE  IS  SEQUENTIAL.
      SELECT FINANCIAL-ACCT-TABFI
         ASSIGN  TO  DA-3330-I-FATABFI
         ACCESS  MODE  RANDOM
         NOMINAL KEY  IS  FA-NOMINAL
         RECORD  KEY  IS  FA-NUMBER.
      SELECT PRINT-OUT
         ASSIGN  TO  UR-1403-S-PRINTOUT
         ACCESS  MODE  IS  SEQUENTIAL.
  DATA  DIVISION.
  FILE  SECTION.
  FD   PRINT-OUT
      RECORD CONTAINS  81 .CHARACTEkS
      LABEL RECORDS  ARE  OMITTED
      DATA  RECORD IS  PRINT-LINE.
  01   PRINT-LINE.
      02 FILLER            PIC  X.
      02 PRINT-DATA        PIC  X(80).
  FD   FINANCIAL-ACCT-TABFI
         BLOCK CONTAINS  8  RECORDS
         RECORD  CONTAINS  58  CHARACTERS
         LABEL RECORDS  ARE STANDARD
         DATA RECORD  IS  FA-REC.
  01   FA-REC.

                         209

-------
02
02
02
02
FA-NUMB
FA-NAME
FA-NAME
FILLER
ER
1
2

P
P
P
P
I
I
I
I
C
C
C
C
X
X
X
X
(1C
(20
( 20
(8 )
SD  FILE-SORT
    RECORD CONTAINS 26 CHARACTERS
    DATA RECORD IS SORT-DATA.
01  SORT-DATA.
    02  S-ACCT-NO        PIC X(10)
    02  FILLER           PIC X(16)
FD  FINANCIAL-CDST-ALLQCATION
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS 26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-RECS.
01  INPUT-RECS.
02 ACCT-IN P
02 COST-CNTR-IN P
02 COST-CAT-IN P
02 AMOUNT-IN P
01 FIRST-TWD-RECS.
02 FILLER P
02 S-CODE P
02 TITLE-IN.
05 DATE-IN P
05 FILLER P
WORKING-STORAGE SECTION.
77 DEBIT-TOTAL P
77 CREDIT-TOTAL P
77
77
77
77
77
77
77
01





01







FA-NOMINAL
ACCT
ACCT
-TOTA
-HOLD
L

SOURCE-CODE
LINE
-CT

PAGE-CT
MAX-
HEAD
02
02

02
02
HEAD
02
02
02
02
02
02
02
LINE
1 .
FILLE
FILLE

TOP-T


R
R

ITLE
FILLER
2.

FILLER
DATE-
FILLE
FILLE
FILLE
FILLE
OUT
R
R
R
R
PAGE-OUT
P
P
P
P
P
P
P

P
P

P
P

P
P
P
P
P
P
P
I
I
I
I
I
I
I
1
I
I
I
I
I
C
C
C
C
C
C
C
C
C
C
C
C
C
1C
I
I
I

I
I

C
C
C

C
C

1C
I

I
I
I
I
I
I
I
C

C
C
C
C
C
C
C
X(
X(
X(
59
X.
9.
X(
X(
59
59
X(
59
X(
X.
99
9 (
99

X(
X(
i
X(
X(

X(
X(
X(
X(
X(
X(
Z(
10
2 )
(8
13
6)
(8
( 8
10
(8
10

)V99.
)V99 VA
)V99 VA
) VALUE
)V99 VA
) VALUE

CDMP VAL
4 )
CUMP V
CUMP VAL

13
29
FI
29
9)

b)
18
14-
3)
29
b)
4)

) VALUE
) VALUE
NANCIAL
) VALUE
VALUE

VALUE
) .
) VALUE
VALUE
) VALUE
VALUE
.
LUE +0.
LUE +0.
SPAC
LUE Z
SPAC

UE 0.
ALUE
UE 5^

SPAC

COST
SPAC
SPAC

'DATE

SPAC
*FOR '
ES.
ERO.
ES.


1 .
ft

ES.

ALLOCATION
ES.
ES.

: i .

ES.
,
SPACES.
•PAGE

• i .

                                                          OF
                               210

-------
01
01
Cl
01
HEAD
02
02
02
02
02
02
02
02
02
02
02
02
DATA
02
02


02
02
02
02
02
02
02
TCP-
02

3 .
FILLER
TITLE-OUT
FILLER
f.
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
-LINE.
FILLER
COMMENT.
05 FILLER
05 ACCT-OUT
FILLER
FA-NAME-OUT
FILLER
AMOUNT-OUT
FILLER
ACCT-TOTAL-OUT
FILLER
TITLES.
TL1.
05 FILLER PIC

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

PIC

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC


XI 87)

XI
X!
XI
X 1
XI
Xi
X 1
XI
XI
X'
XI
XI

XI

XI
XI
XI
XI
XI
- 1
X i
- 1
XI



[23)
;24)
128)
15)
! 14)
110)
112)
111)
16)
(6 }
I 13)
[3 J

: 6>.

iti.
110)
17)
120)
; i>
[8)9
I 4)
(8 )9
16)


VALUE

VALUE
.
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE




.
VALUE
VALUE
VALUE
.99.
VALUE
.99.
VALUE


•PAYR

SPACES .

SPACES.
SPACES.
•ACCOUNT NUMBER1
SPACES.
•ACCOUNT NAME ' .
SPACES .
•AMOUNT ' .
SPACES.
•ACCOUNT TOTAL ' .
SPACES.





SPACES.
SPACES.
SPACES.

SPACES.

SPACES.


DLL REPORT TRANSA
        05  FILLER PIC X ( 87 )
                                    1  REQUISITIONS  FROM   STOCK
                                  •SERVICE CONTRACT TRANSACTIONS'
                              VALUE  '  PAYMENT  AUTHORIZATIONS
                                    •MISCELLANEOUS TRANSACTIONS
                                  •DEPRECIATION VALUES           •
    02
        TL2 REDEFINES  TLl.
        05  TITLES OCCURS 6  TIMES PIC  X(29)
PROCEDURE DIVISION.
OPEN-SORT-FILES.
    OPEN INPUT  FINANCIAL-ACCT-TAbFI
         OUTPUT PRINT-OUT.
SORT-RECORDS.
    SORT FILE-SORT LN  ASCENDING  KEY
        S-ACCT-NO
        USING  FINANCIAL-C
        GIVING FlNANCIAL-<
OPEN-FCA-FILE .
    OPEN INPUT  FINANCIAL-COST-ALLOCATION.
READ-FIRST-2-REC .
    PERFORM READ-INPUT.
    MOVE DATE-IN TO  DATE-LUT.
                         -COST-ALLOCATION
                         •COST-ALLOCATION.
                                211

-------
    PERFORM READ-INPUT.
    MOVE TITLES (S-CDOE) TO TOP-TITLE.
    MOVE S-CDOE TO SOURCE-CODE.
    MOVE TITLE-IN TO TITLE-OUT.
WRITE-HEADINGS.
    MOVE 0 TO LINt-CT.
    MOVE PA&E-CT TO PAGE-OUT.
    ADD 1 TO PAGE-CT.
    PERFORM KOVt-SPACES.
    WRITE PRINT-LINE bEFQRE NEW-PAGE.
    MOVE HEAD1 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD2 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD3 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRiNT-LINE-OUT.
    MOVE HEAD^ TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-OUT.
HOUSEKEEPING.
    MOVE SPACES TO DATA-LINE.
    PERFORM READ-INPUT.
READ-FA-FILE.
    MOVE ACCT-IN TO ACCT-HOLD, ACCT-OUT, FA-NOMINAL,
    READ FINANCIAL-ACCT-TABFI INVALID KEY
        MOVE 'ACCT tf INVALID ******  TO FA-NAME1
        MOVE SPACES TO FA-NAME2.
    PERFORM MOVE-OUT-AMOUNTS.
    MOVE FA-NAME1 TO FA-NAME-OUT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE SPACES TO DATA-LINE.
    MOVE FA-NAME2 TO FA-NAME-QUT.
    PERFORM READ-INPUT.
    IF ACCT-IN NOT = TO ACCT-HOLD THEN
        PERFORM WRITE-ACCT-TOTAL
        PERFORM CHECK-L1NE-CT
        GO TO READ-FA-FILE.
WRITE-DATA.
    PERFORM MOVE-GUT-AMOUNTS.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE SPACES TO DATA-LINE.
    PERFORM CHECK-LINE-CT.
    PERFORM READ-INPUT.
    IF ACCT-IN NOT = TO ACCT-HTtD THEN
        PERFORM WklTE-ACCT-TOTAL
        PERFORM READ-FA-FILE.
    GO TO WRITE-DATA.

                        212

-------
MOVE-OUT-AMDUNTS.
    MOVt AMOUNT-IN TO AMOUNT-OUT.
    ADD AMOUNT-IN TO ACCT-TOTAL.
    IF AMOUNT-IN < 0 THEN
        ADD AMOUNT-IN TO CREDIT-TOTAL
    ELSE ADD AMOUNT-IN TO DEB I T-TbTAL .
CHECK-LINE-CT.
    IF LINE-CT NOT < MAX-LINE THEN
        MOVE ACCT-HOLD TO ACCT-OUT
        PERFORM  WklTE-HEADIN&S.
WRITE-ACCT-TOTAL.
    MOVE ACCT-TOTAL TO ACCT-TOTAL-OUT.
   'MOVE ZERO TO ACCT-TOTAL.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU  PR 1 NT-LINE-OUT.
    MOVt SPACES  TO DATA-LINE.
READ-INPUT.
    READ FINANCIAL-COST-ALLOCAT I ON AT END
        GO TO WRITE-FINAL-TUTALS.
MOVE-SPACES.
    MOVE SPACES  TO PRINT-DATA.
PRINT-LINE-OUT.
    WRITE PRINT-LINE BEFORE 1.
    ADD 1 TO LINE-CT.
WRITE-FINAL-TOTALS.
    PERFORM WRITE-ACCT-TOTAL.
    MOVE SPACES  TO DATA-LINE.
    MOVE 'DEBIT  TOTAL ' TO COMMENT.
    MOVE DEBIT-TOTAL TO AMOUNT-OUT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-GUT.
    MOVE 'CREDIT TOTAL1 TO COMMENT.
    MOVE CREDIT-TOTAL TO AMOUNT-OUT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
CLOSE-ALL-FILES.
    CLOSE FINANCIAL-COST-ALLOCATILN, PRINT-OUT,
        F1NANCIAL-ACCT-TA&FI.
E-O-J.
    STOP RUN.
                        213

-------
  PGMNAME^WUASPAAC
.SYSIN  DO *
  ID QIVI SIGN.
  PRD&RAM-IO.  WUASPAAC.
  AUTHOR. ACT  SYSTEMS  INC,
         SUITE  200
         807  W  MORSE  BLVD
         WINTER  PARK,  FLA  32789.
  DATE-fcRITTEN.   APRIL  1978.
  DATE-COMPILED.  APRIL  1978.
  REMARKS.     THIS PROGRAM  MERGES  ALL  EDIT  FILES
              INTO ONE  TEMP FILE  tMERGED-FILE)
              THEN SUMS UP  THE COST BY
              ACCOUNT  NUMBERS WITHIN COUNTY CODES
  ENVIRONMENT  DIVISION.
  CONFIGURATION  SECTION.
  SOURCE-COMPUTER. IBM-370.
  OBJECT-COMPUTER. IBM-370.
  SPECIAL-NAMES.
     C01 IS NEW-PAGE.
  INPUT-OUTPUT SECTION.
  FILE-CONTROL.
     SELECT PRINT-OUT
         ASSIGN  TO UT-1403-S-PRINTOUT
         ACCESS  MODE  IS  SEQUENTIAL.
     SELECT MERGED-FILE
         ASSIGN  TO UT-3330-S-MERGEUF1
         ACCESS  MODE  IS  SEQUENTIAL.
     SELECT MERGIN&-FILE
         ASSIGN  TO UT-3330-S-MERGERFI
         ACCESS  MODE  IS  SEQUENTIAL.
     SELECT PAY-ROLL-FILE
         ASSIGN  TO UT-3330-S-PAYROLL
         ACCESS  MODE  IS  SEQUENTIAL.
     SELECT REQ-STOCK-FILE
         ASSIGN  TO UT-3330-S-REQSTOCK
         ACCESS  MODE  IS  SEQUENTIAL.
     SELECT PAY-AUTH-FILE
         ASSIGN  TO UT-3330-S-PAYAUTH
         ACCESS  MODE  IS  SEQUENTIAL.
     SELECT MISC-TRAN5-FILE
         ASSIGN  TO UT-3330-S-MISCTRAN
         ACCESS  MODE  IS  SEQUENTIAL.
     SELECT SERVICE-CONTRACT-FILE
         ASSIGN  TO UT-3330-S-SERVCDNT
         ACCESS  MODE  IS  SEQUENTIAL.
     SELECT DEPRECIATION-FILE
         ASSIGN  TO UT-3330-S-DEPREC
         ACCESS  MODE  IS  SEQUENTIAL.
  DATA  DIVISION.
                        214

-------
FILE SECTION.
FD  PRINT-OUT
    RECORD CONTAINS  133  CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    05  FILLER            PIC  X.
    05  PRINT-DATA        PIC  X(132).
FD  MER&ED-FILE
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS  26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-RFC.
01  INPUT-REC.
    05  ACCT-NO.
        10  DATE-TITLE-CODE PIC  X.
        10  FILLER          PIC  X(8).
        10  COUNTY-CODE     PIC  X.
    05  FILLER              PIC  X(6).
    05  AMOUNT              PIC  S9(8)V99
SD  MERGIN&-FILE
    RECORD CONTAINS  26 CHARACTERS
    DATA RECORD IS MER&E-REC.
01  MER&E-REC.
    05  MERGE-ACCT.
        10  SORT-ACCT     PIC  X(9>.
        10  SORT-COUNTY   PIC  X.
    05  FIL.ER            PIC  X(16>).
FD  PAY-RO  -FILE
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS  26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS PAYRULL-REC.
01  PAYRCLL-REC           PIC  X(26) .
FD  REQ-STOCK-FILE
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS  26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS REG-REC.
01  REQ-REC               PIC  X(26) .
FD  PAY-AUTH-FILE
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS  26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS PAYAUTH-REC.
01  PAYAUTH-REC           PIC  X(26) .
FD  M1SC-TRANS-FILE
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS  26 CHARACTERS
    LABEL RECORDS ARE STANDARD

                     215

-------
    DATA RECORD IS MISC-REC.
01  MISC-REC             PIC XU6).
FD  SERVICE-CONTRACT-FILE
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS 26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS SERVICE-REC.
01  SERVICE-REC          PIC X(26).
FD  DEPRECIATION-FILE
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS 26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS DEPRECI AT ION-REC
01  DEPRECIATION-REC
WORKING-STORAGE SECTION
                         PIC XU6)
77
77
77
77
77
77
77
77
77
01
    LINE-CT
    MAX-LINE
    COUNTY-COOE-HOLO
    DEBIT-SUBTOTAL
    CREDIT-SUBTOTAL
    DEBIT-TOTAL
    CREDIT-TOTAL
    ACCT-TOTAL
    ACCf-HOLD
    HEAD-1.
    05
    05
    05
    05
    05
        FILLER
        FILLER
        FILLER
        FILLER
        FILLER
p
p
p
p
1C
1C
I
I
PI
p
p
p
p
p
p
p
p
p
1
I
I
I
I
I
c
c
c
c
c
c
c
c
c
1C
I
I
c
c
99
99
X
S9
S9
59
S9
59
X(
X(
X(
X(
X(
X(
VALUE 0.
VALUE 56.
VALUt SPACES.
(
{
1
(
(
1
1
1
1
6
9
6)
a)
8)
8)
8)
0)
0)
M
0)
}
2)
V99 VA
V99 VA
V99 VA
V99 VA
V99 VA
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
LUE +0.
LUE +0.
LUE +0.
LUE +0.
LUE +0.
SPACES.
SPACES.
•ACCOUNT NUMdER
SPACES.
•AMOUNT ».
SPACES.
01  DATA-LINE
        FILLER
        ACCT-OUT
        FILLER
        AMOUNT-OUT
        FILLER
PROCEDURE DIVISION.
MERGE-F1LES.
    MERGE MERGIN&-FILE
            MERGE-ACCT
    05
    05
    05
    05
    05
PIC XI12) .
PIC X(10).
PIC xm.
PIC -(8). — .
PIC X(92) VALUE
                       ON ASCENDING KEY
SPACES
        USING   PAY-ROLL-FILE
                REQ-STOCK-FILE
                PAY-AUTH-FILE
                SERVICE-CONTRACT-FILE
                MISC-TRANS-FILE
                DEPRECIATION-FILE
                MERGED-FILE.
        GIVING
SORT-FILES.
    SORT    MERGING-FILE
            SORT-COUNTY
                         ON ASCENDING KEY
                          216

-------
            SQRT-ACCT
    USING   MERGED-FILE
    GIVING  MERGED-FILE.
OPEN-FILES.
    OPEN INPUT  MERGED-FILE
        OUTPUT PRINT-OUT.
WRITE-HEADINGS.
    MOVE 0 TO LINE-CT.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE  NEW-PAGE.
    MOVE HEAD-1 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES  THRU PR 1 NT-LINE-OUT.
    PERFORM PRINT-LINE-OUT  2 TIMES.
    MDVE SPACES TO DATA-LINE.
READ-INPUT.
    READ MERGED-FILE AT  END
        GO TO WRITE-FINAL-TUTALS.
VERIFY-OATA.
    IF GATE-TITLE-CODE  =  SPACES  THEN
        GO TO READ-INPUT.
    IF COUNTY-CODE NOT  =  COUNTY-CODE-HOLD THEN
        PERFORM WRITE-SUBTOTALS  THRU  TOP-NEW-PAGE
START-TOTALING.
    IF ACCT-NO NOT = ACCT-HOLD  THEN
        PERFORM WRITE-DATA-LINE .
    ADD AMOUNT TO ACCT-TQTAL.
    GO TO READ-INPUT.
WRITE-DATA-LINE .
    MOVE ACCT-HOLD TO ACCT-OUT.
    MOVE ACCT-TOTAL TU  AMOUNT-OUT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE ACCT-NO  TO ACCT-HOLD.
    IF ACCT-TOTAL > 0 THEN
        ADD ACCT-TOTAL  TO DEB IT-SUBTOTAL
    ELSE ADD ACCT-TOTAL  TO  CREDIT-SUBTOTAL.
    MOVE ZERO TO  ACCT-TOTAL.
    PERFORM MOVE-SPACES  THRU PRINT-LINE-OUT.
    IF LINE-CT >  MAX-LINE THEN
        PERFORM WRITE-HEADINGS.
WRITE-SUBTOTALS.
    MOVE ZERO TU  LINE-CT.
    PERFORM WRITE-DATA-LINE.
    PERFORM MOVE-SPACES  THRU PR INT-LINE-OUT.
    MOVE 'SUBTOTAL  ' TO  ACCT-OUT.
    MOVE ZERO TO  AMOUNT-OUT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MDVE '    DEBIT ' TO  ACCT-OUT.
                       217

-------
    MOVE  DEBIT-SUBTOTAL  TD AMOUNT-OUT.
    Movt  DATA-LINE  TO  PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE  '     CREDIT'  TO ACCT-OUT.
    MOVE  CREDIT-SUBTOTAL TO AMOUNT-OUT.
    MOVE  DATA-LINE  TO  PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    ADD DEBIT-SUBTOTAL TO DEB I T-TLtTAL .
    ADD CREDIT-SUBTOTAL  TO CREDIT-TOTAL.
    MOVE  ZEROS TO DEBIT-SUBTOTAL,  CREDIT-SUBTOTAL
    MOVE  COUNTY-CODE  TO  COUNTY-CODE-HOLD.
TOP-NEW-PA&E.
    PERFORM WRITE-HEADINGS.
MOVE-SPACES.
    MOVE  SPACES TO  PRINT-LINE.
PRINT-LINE-OUT.
    WRITE PRINT-LINE  BEFORE 1.
    ADD 1 TO LINE-CT.
WRITE-FINAL-TOTALS.
    PERFORM WRITE-SUBTOTALS.
    PERFORM MOVE-SPACES  THRU PR1NT-LINE-OUT.
    MOVE  'GRANDTOTAL1  TO ACCT-OUT.
    MOVE  ZERO  TO AMOUNT-OUT.
    MOVE  DATA-LINE  TO  PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE  '     DEBIT '  TO ACCT-OUT.
    MOVE  DEBIT-TOTAL  TO  AMOUNT-OUT.
    MOVE  DATA-LINE  TO  PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE  '     CREDIT'  TO ACCT-OUT.
    MOVE  CREDIT-TOTAL  TO AMOUNT-OUT.
    MOVE  DATA-LINE  TO  PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
CLOSE-FILES.
    CLOSE   MER&ED-FILE
            PRINT-OUT .
E-O-J.
    STOP  RUN.
                        218

-------
     PGMNAME=WUASCAP1
-SYSIN     DD   *
  ID  DIVISION.
  PRD&RAM-ID.  WUASCAP1.
  AUTHOR.  ACT  SYSTEMS,  INC
          SUITE  200
          807  W  MORSE BLVD
          WINTER PARK,  PL 32789.
  DATE-WRITTEN.  DECEMBER  1977.
  DATE-COMPILED.
  REMARKS.  THIS  PROGRAM READS THE  FINANCIAL COST ALLOCATION
           INTERFACE FILES,  EDITS  DATA  FOR ERRORS AND BUILDS
           TWO FILES ONE  FOR RESOLVED COST CENTERS AND ANOTHER
           FOR UNRESOLVED COST  CENTERS.
  ENVIRONMENT  DIVISION.
  CONFIGURATION  SECTION.
  SOURCE-COMPUTER.  IBM-370.
  OBJECT-COMPUTER.  IBM-370.
  SPECIAL-NAMES.
     C01  IS NEW-PAGE.
  INPUT-OUTPUT SECTION.
  FILE-COUTROL.
     SELECT PRINT-OUT
          ASSIGN TO UR-1403-S-PRINTLUT
          ACCESS MODE IS  SEQUENTIAL.
     SELECT FINANCIAL-COST-ALLOCATION
          ASSIGN TO UT-3330-S-FKALFI
          ACCESS MODE IS  SEQUENTIAL.
     SELECT CROSS-REF-FILE
          ASSIGN TO DA-3330-I-CRTABFI
          ACCESS MODE IS  RANDOM
          RECORD KEY  IS ACCT-NO
          NOMINAL KEY IS  ACCT-NGM1NAL-
     SELECT CDST-ALLOCATION-RESOLVED
          ASSIGN TO UT-3330-S-RESOCAFI
          ACCESS MODE IS  SEQUENTIAL.
     SELECT COST-ALL DCATI ON-UNRESOLVED
          ASSIGN TO UT-3330-S-UNRSCAF1
          ACCESS MODE IS  SEQUENTIAL.
     SELECT CARD-IN
          ASSIGN TO UR-25^0R-S-CARDIN
          ACCESS MODE IS  SEQUENTIAL.
  DATA  DIVISION.
  FILE  SECTION.
  FD  PRIiMT-OUT
     RECORD CONTAINS 133 CHARACTERS
     LABEL RECORDS ARE OMITTED
     DATA RECORD IS  PRINT-LINE.
  01  PRINT-LINE.
     05   FILLER           PIC  X.


                             219

-------
    05  PRINT-DATA       PIC X(132).
FD  FINANCIAL-COST-ALLOCATION
    BLOCK CONTAINS 20 RECORDS
    RECORD CONTAINS 26 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-RECS.
01  INPUT-RECS.
    05  ACCT-NO-IN.
        10  FILLER       PIC X(9).
        10  COUNTY-CODE  PIC X.
    05  COST-CNTR-IN     PIC X(4).
    05  FILLER           PIC X(2>.
    05  AMOUNT-IN        PIC S9(8)V99.
01  FIRST-TWO-RtCS.
    05  FILLER           PIC X.
    05  SOURCE-COUE-IN   PIC 9.
    05  TITLE-IN.
        10  DATE-IN      PIC X(18).
        10  FILLER       PIC X(6).
FO  CROSS-REF-FILE
    BLOCK CONTAINS <• RECORDS
    RECORD CONTAINS 265 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CR-REC.
01  CR-REC.
    05  ACCT-NO          PIC X(10) .
    05  ALLOC-CODE       PIC X.
    05  C-CATS.
        10  C-CAT OCCURS 2 TIMES  PIC XX
    05  NO-OF-CC         PIC 99.
    05  CC-BLK OCCURS 31 TIMES.
        10  COST-CNTR    PIC XU>.
        10  MATCH-CODE   PIC X(M.
01  CR-REC-1.
    05  FILLER           PIC XU7).
    05  CC-BLK-1 OCCURS 31 TIMES.
        10  FILLER       PIC X(^).
        10  PERCENT      PIC V9999.
FD  COST-ALLOCATIUN-RESOLVED
    BLOCK CONTAINS f> RECORDS
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS RES-REC.
01  RES-REC.
    05  RES-REC-DATA     PIC X(30).
    05  FILLER           PIC X(bO).
FD  COST-ALLOCATION-UNRESOLVED
    BLOCK CONTAINS 5 RECORDS
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE STANDARD
                     220

-------
                IS  UNKES-REC.
    DATA RECORD
01  UNRtS-REC.
    05  UNRES-REC-DATA   PIC
    05  FILLER           PIC
FD  CARD-IN
    RECORD CONTAINS 80 CHARAC
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS INPUT-CARD
01  INPUT-CARD.
    05  COUNTY-CODE-IN   PIC
    05  FILLER           PIC
WORKING-STORAGE SECTION.
77  LINE-CT              PIC
77  PAGE-CT              PIC
77  MAX-LINE             PIC
77  SOURCE-CODE          PIC
77  ACCT-NOMINAL         PIC
77  I                    PIC
77  PERCENT-34C1         PIC
77  PERCENT-2101         PIC
77  HOLD-AMT             PIC
77  CQST-CNTR-3401       PIC
77  COST-CNTR-2101       PIC
77  MATCH-3401           PIC
77  MATCH-2101           PIC
77  RES-FLAG             PIC
77  COUNTY-CODE-HOLD     PIC
01  ERROR-LIST.
    05  ERR1
01  FILE-NAMES.
    05  FILENAMESl.
        10  FILLER
                             X(30).
                             X(50).

                             TERS
                             X.
                             X(79) .

                             99   COMP VALUE 0.
                             9(4) COMP VALUE 1.
                             99   CuMP VALUE 56
                             9.
                             X(10) VALUE ZERO.
                             99.
                             V9(4) VALUE ZERO.
                             V9(4) VALUE ZERO.
                             S9(81V99.
                             X(4) VALUE '3401'.
                             X(4) VALUE '2101'.
                             9 VALUE ZERO.
                             X VALUE SPACES.
                         PIC X<20) VALUE  'INVALID COST CENTER
                         PIC X(72) VALUE
    05  FILENAMES REDEFINES I
        10  FILE-NAME OCCURS
01  HEAD-1.
    05  FILLER           PIC
    05  FILLER           PIC

    05  FILE-NAME-OUT    PIC
    05  FILLER           PIC
01  HEAD-2.
    05  FILLER           PIC
    05  DATE-OUT         PIC
    05  FILLER           PIC
    05  FILLER           PIC
  'PAYROLL
  'REU  OF  STOCK
  'SERVICE
  •PAYMENT  AUTH
  •MISC  TRANS
•DEPRECIATION1.
                              ILENAMfcSl.
                              6  TIMES  PIC  X(12)
                              X(44)  VALUE  SPACES.
                              X(34)  VALUE  'INITIAL COST ALLOCATION
                                          '  REPORT OF '.
                              X(12) .
                              X(42)  VALUE  SPACES.

                              X(13)  VALUE  'DATE  ENDINGS '.
                              X(18 ) .
                              X(33)  VALUE  SPACES.
                              X(3)   VALUE  SFOR'.
                                221

-------
01
01
01
01
05
05
05
HEAD
05
05
05
HEAD
05
05
05
05
05
HEAD
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
DATA
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
FILLER
FILLER
PAGE-OUT
-3.
FILLER
TITLE-OUT
FILLER
-4.
FILLER
FILLER
FILLER
FILLER
FILLER
-5.
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
-LINE.
ACCT-NO-OUT
FILLER
COST-CNTR-OUT-1
FILLER
AMOUNT-OUT-1
FILLER
COST-CNTR-OUT-2
FILLER
COST-CAT-OUT
FILLER
MATCH-CODE-OUT
FILLER
AMOUNT-OUT-2
FILLER
RES-OUT
FILLER
COMMENT-GUT
P
P
P

P
P
P

P
P
P
P
P

P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
I
I
I

I
I
I

I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
PI
P
P

P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
I
I

I
I
I
I
I
I
I
c
c
c

c
c
c

c
c
c
c
c

c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

c
c
c
c
c
c
c
1C
I
I
I
I
I
c
c
c
c
c
1C
I
PI
PI
c
c
c
X(
X(
Z(

X(
X(
X(

X(
X(
X(
X(
X(

X(
X(
X(
X(
X(
X(
X(
X(
x(
X(
X(
X(
X(
X(
X(
X(
X(
X(

X(
X(
X(
X(
- (
X(
X(
X(
XX
X(
X(
X(
- (
X(
XX
X(
X(
55
6)
4)

54
24
54

15
10
53
19
35

7)
4)
ID
d)
6)
6}
12
9 >
3)
8)
2)
10
5)
10
8)
10
7)
7)

10
3)
4)
13
b)
14
4)
9>
•
6 )
4)
3>
8)
7)
•
7)
20
) VALUE
VALUE
.

) VALUE
) .
) VALUE

) VALUE
) VALUE
) VALUE
) VALUE
) VALUE

VALUE
VALUE
) VALUE
VALUE
VALUE
VALUE
) VALUE
VALUE
VALUE
VALUE
VALUE
) VALUE
VALUE
) VALUE
VALUE
) VALUE
VALUE
VALUE

) .
.
.
) .
. — — .
) .
.
.

.
.
.
. — .
.

.
) .
SPACES.
'PAGE: '.


SPACES.

SPACES.

SPACES .
'INPUT DATA'.
SPACES.
•RESOLVED INPUT
SPACES.

' ACCT #• .
SPACES.
'CQST/CNTR '.
•COST/CAT ' .
SPACES.
•AMOUNT ' .
SPACES.
•COST-CNTR' .
SPACES.
•COST-CAT1 .
SPACES.
•MATCH/CODE' .
SPACES.
•AMOUNT '.
•RESOLVED' .
SPACES.
'COMMENT1 .
SPACES.


















                                                            DATA
                                222

-------
 01   DISK-RECORD.
     05  OISK-ACCT-NG     PIC X(10).
     05  DISK-CDST-CNTR.
         10  DISK-ALLDC-CDDE PIC X.
         10  FILLER       PIC X(3).
     05  DISK-COST-CAT    PIC XX.
     05  D1SK-MATCH-COOE  PIC XK).
     05  DISK-AMT OCCURS 6 TIMES PIC S9(8JV99.
 PROCEDURE DIVISION.
 OPEN-FILES.
     OPEN OUTPUT PRINT-OUT,
                 COST-ALLOCATIGN-RESLiLVED.
                 COST-ALLOCATION-UNRESOLVED,
          INPUT  FINANCIAL-CDST-ALLOCATION,
                 CARU-IN
                 CROSS-REF-FILE.
 HOUSE-KEEP.
     MOVE SPACES TG RES-REC, UNRES-REC, DATA-LINE.
*
*    INVALID OPTION CARD OR NO OPITION CARD DEFAULTS
*    TO A BLANK COUNTY CODE
*
 READ-OPTION-CARD .
     READ CARD-IN AT END GO TO FILL-HEADINGS.
     IF COUNTY-CODE-IN =  »C' THEN
         MQVE  'C1 TO COUNTY-CODE-HOLD.
 FILL-HEADINGS.
     READ FINANCIAL-CDST-ALLOCATION AT END
         GO TO CLOSE-FILES.
     MOVE DATE-IN TO DATE-OUT.
     READ FINANCIAL-COST-ALLOCATION AT END
         GO TO CLOSE-FILES.
     MOVE TITLE-IN TO TITLE-OUT.
     MOVE SOURCE-CODE-IN TO SOURCE-CODE.
     MOVE FILE-NAME  (SOURCE-CODE)  TO FILE-NAME-OUT .
 WRITE-HEADINGS.
     MOVE PAGE-CT TO PAGE-OUT.
     ADD 1 TU  PAGF-CT.
     MOVE 0 TO LINE-CT.
     PERFORM MOVE-SPACES.
     WRITE PRINT-LINE BEFORE NEW-PAGE.
     MOVE HEAD-1 TO PRINT-DATA.
     PERFORM PRINT-LINE-OUT.
     MOVE HEAD-2 TO PRINT-DATA.
     PERFORM PRINT-LINE-OUT.
     MOVE HEAD-3 TO PRINT-DATA.
     PERFORM PRINT-LINE-OUT.
     PERFORM MOVE-SPACES.
     PERFORM PRINT-LINE-OUT 2 TIMES.
     MOVE HEAD-^t TO PRINT-DATA.

                         223

-------
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT 2 TIMES.
    MOVE HEAD-5 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRiNT-LINE-OUT.
READ-INPUT.
    READ FlNANClAL-CoST-ALLOCATlON AT  END
        GO TO CLOSE-FILES.
    IF AMOUNT-IN = 0 THEN
        GO TO READ-INPUT.
    IF COUNTY-CODE NOT = TO  COUNTY-CODE-HOLD THEN
        GO TO RdAD-INPUT.
START-EDIT.
    MOVE ACCT-NO-IN TO ACCT-NOMI MAL.
    READ CRQSS-REF-FILE INVALID KEY
         MOVE SPACES TO DATA-LINE
         MOVE 'ACCT « NOT FOUND    ' TO COMMENT-OUT
         MOVE ACCT-ND-IN TO  ACCT-NO-OUT
         MOVE DATA-LINE TO PRINT-DATA
         PERFORM  PRINT-LINE-OUT
         MOVE SPACES TO DATA-LINE
        PERFORM PAGE-QVFLOW
         GO TO READ-INPUT .
CHECK-4-VALID-COST-CNTR.
    EXAMINE COST-CNTR-IN REPLACING ALL •  '  BY »o'.
    IF (COST-CNTR-IN NOT = ZERO)  AND (ALLCC-CODE NOT = 'H') THEN
        PERFORM CHECK-COST-CENTERS
    ELSE GO TO CHECK-ALLOC-CODE.
    IF RES-FLAG = 0 THEN
        MOVE !I ' TO ALLOC-COOE
        GO TO RtSOLVED-CC .
CHECK-ALLOC-CODE.
    IF ALLOC-CDDE     = 'A'  OR »H' OR  '!• OR 'J' THEN
        GO TO RESOLVED-CC
    ELSE GO TO UN-RESOLVED-CC.
RESOLVED-CC.
    MOVE ACCT-NO-IN TO DISK-ACCT-NO, ACCT-NO-OUT.
    IF COST-CNTR-IN NOT = ZEROES  THEN
        MOVE COST-CNTR-IN TU COST-CNTR-OUT-1
    ELSE MOVE SPACES TO COST-CNTR-OUT-1 .
    PERFORM CHECK-COST-CAT.
    MOVE AMOUNT-IN TO AMOUNT-OUT-l.
    IF ALLOC-CODE NOT = 'H'  THEN
        GO TO CHECK-A-I-J.
    IF PERCENT-3401 = ZERO THEN
        PERFORM GET-H-PERCENTAGES.
    MULTIPLY AMOUNT-IN BY PERCENT-3401 GIVING HOLD-AMT.
    MOVE HOLD-AMT TO DISK-AMT (1>, AMOUNT-OUT-2.
    MOVE MATCH-3401 TO DISK-MATCH-CLDE, MATCH-CODE-UUT .


                               224

-------
    MOVE  COST-CNTR-3401 TO 0 ISK-COST-CNTR ,  COST-CNTR-OUT-2.
    PERFORM  WRITE-RES-REC .
    MOVE  SPACES  TO ACCT-NO-QUT, COST-CNTR-OUT-1.
    MOVE  ACCT-NO-IN TO DISK-ACCT-NO.
    MOVE  ZEROS  TO AMOUNT-OUT-1.
    MULTIPLY  AMOUNT-IN BY PERCENT-2101 GIVING HOLD-AMT.
    MOVE  HOLD-AMT TO DISK-AMT  (1), AMOUNT-OUT-2.
    MOVE  MATCH-2101 TO DISK-MATCH-CODE, MATCH-CODE-OUT.
    MOVE  COST-CNTR-2101 TQ DISK-COST-CNTR,  COST-CNTR-OUT-2.
    PERFORM  CHECK-COST-CAT.
    PERFORM  WRITE-RES-REC.
    GO TO READ-INPUT.
CHECK-A-I-J.
    IF ULLOC-CODE = 'I') AND  (CDST-CNTR-IN NOT = SPACES OR ZERO)
        THEN  MOVE COST-CNTR-IN TO COST-CNTR (1)
        MOVE  SPACES TO COMMENT-OUT.
    MOVE  AMOUNT-IN TO DISK-AMT (1), AMOUNT-OUT-2.
    MOVE  COST-CNTR (1) TO DISK-COST-CNTR, COST-CNTR-OUT-2.
    MOVE  MATCH-CODE (1) TO D ISK-MATCH-CODt, MATCH-CODE-OUT.
    PERFORM  WRITE-RES-REC.
    GO TO READ-INPUT .
WRITE-RES-REC.
    MOVE  DATA-LINE TO PRINT-OATA.
    PERFORM  PRINT-LINE-OUT.
    MOVE  DISK-RECORD TO RES-REC-DATA.
    WRITE RES-REC.
    MOVE  SPACES  TO DISK-RECORD, DATA-LINE.
    PERFORM  PAGE-OVFLOW.
UN-RESOLVED-CC.
    MOVE  ACCT-NO-IN TO DISK-ACCT-NO,  ACCT-NO-DUT.
    IF COST-CNTR-IN NOT = ZEROES THEN
        MOVE  COST-CNTR-IN TO COST-CNTR-OUT-1
    ELSE  MOVE SPACES TO COST-CNTR-OUT-1.
    PERFORM  CHECK-COST-CAT.
    MOVE  AMOUNT-IN TO AMOUNT-OUT-1, AMOUNT-OUT-2. DISK-AMT (1).
    MOVE  SPACES TO DISK-MATCH-CUDE» MATCH-CODE-QUT.
    MOVE  ALLOC-CODE TO DISK-ALLOC-CODE.
    MOVE  'NO1 TU RES-OUT
    MOVE  DATA-LINE TO PRINT-OATA.
    PERFORM  PRINT-LINE-OUT.
    MOVE  DISK-RECORD TO UNRES-REC-DATA.
    WRITE UNRES-REC.
    MOVE  SPACES TO DISK-RECORD, DATA-LINE.
    PERFORM  PAGE-OVFLOW.
    GO TO READ-INPUT.
PAGE-OVFLOW.
    IF LINE-CT  NOT < MAX-LINE  THEN
        PERFORM WRITE-HEADINGS.
MOVE-SPACES.
    MOVE  SPACES TO PRINT-LINE.

                               225

-------
                            COST-CAT-OUT
                             COST-CAT-OUT.
PRINT-LINE-DUT.
    WRITE PRINT-LINE BEFORE 1.
    ADO 1 TD LINE-CT.
CHECK-COST-CAT.
    IF SOURCE-CODE = 1 THEN
        MOVE C-CAT (2) TO DISK-COST-CAT,
    ELSE MOVE C-CAT (1) TO DISK-COST-CAT,
CHECK-CUST-CENTERS.
    MOVt 0 TO RES-FLAG.
    PERFORM CHECK-C05T-CNTR THRU CHtCK-COST-CNTR-END
        VARYING I FROM 1 BY 1 UNTIL
        I > NO-OF-CC.
CHECK-CQ5T-CNTR.
    IF COST-CNTR (I) = TO COST-CNTR-IN
        ADD NO-OF-CC TO I
        GO TO CHECK-COST-CNTR-END.
    IF I = TO NO-OF-CC THEN
        MOVE 1 TO RES-FLAG.
CHECK-COST-CNTR-END.
    EXIT.
GET-H-PERCENTAGES.
    IF CDST-CNTR (1) - «3401' THEN
        MOVE  MATCH-CODE (1) TO MATCH-3^01
        MOVE PERCENT (2) TO PERCENT-3401
                         (3) TO MATCH-2101
                         TO PERCENT-2101
                          THEN
 MATCH-CODE
PERCENT (4)
        MOVE
        MOVE
    ELSE
        MOVE
        MOVE
        MOVE
        MOVE
CLOSE-FILES.
    CLOSE  FINANCIAL-COST-ALLOCATIDN, CROSS-REF-FILE,
           COST-ALLOCATION-RESOLVED, COST-ALLOCATION-UNRESOLVED,
           CARD-IN, PRINT-OUT.
E-O-J.
    STOP RUN.
 MATCH-CODE
PERCENT (2)
 MATCH-CODE
PERCENT (4>
                         (1) TO MATCH-2101
                         TD PERCENT-2101
                         (3) TO MATCH-3401
                         TO PERCENT-3401.
                  226

-------
     PGMNAME=WUASCAP2
SYSIN    DO  *
 ID DIVISION.
 PROGRAM-ID. WUASCAP2
 AUTHOR. ACT SYSTEMS, INC
         SUITE 200
         307 W MORSE BLVD
         WINTER PARK, FL 32789.
 DATE-WRITTEN.  DEC 14,  1977.
 DATE-COMPILED.
 REMARKS.    THIS PROGRAM READS  THt  RESOLVED FILE
             (RESOCAFI)  AND BUILDS A TABLE  OF COST
             CENTER VALUES TO  BE USED IN CAP3.
 ENVIRONMENT DIVISION.
 CONFIGUkATJDN SECTION.
 SOURCE-COMPUTER. IBM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01 IS NEK-PAGE.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
     SELECT PRINT-OUT
         ASSIGN TO UR-1403-S-PRINTGUT
         ACCESS MODE IS  SEQUENTIAL.
     SELECT COST-ALLOCATION-RBSOLVED
         ASSIGN TO UT-3330-S-RESOCAF1
         ACCESS MODE IS  SEQUENTIAL.
     SELECT COST-ALLOCATION-RESOLVED-COST5
         ASSIGN TC UT-3330-S-RECTABF1
         ACCESS MODE IS  SEQUENTIAL.
     SELECT FILE-SORT
         ASSIGN TO UT-3330-S-FILESURT
         ACCESS MODE IS  SEQUENTIAL.
     SELECT CARD-IN
         ASSIGN TO UR-2540R-S-CARD1N
         ACCESS MODE IS  SEQUENTIAL.
 DATA DIVISION.
 FILE SECTION.
 FD  PRINT-OUT
     RECORD CONTAINS 133 CHARACTERS
     LABEL RECORDS ARE OMITTED
     DATA RECORD IS PRINT-LINE.
 01  PRINT-LINE.
     05  FILLER           PIC  X.
     05  PRINT-DATA       PIC  X(80).
     05  FILLER           PIC  X(52)  .
 FD  COST-ALLOCATION-RESOLVEO
     BLOCK CONTAINS 5 RECORDS
     RECORD CONTAINS 80  CHARACTERS
     LABEL RECORDS ARE STANDARD

                          227

-------
                IS RES-REC
                         PIC X(10).
                         PIC XU> .
                         PIC X(6).
                        TIMES PIC S9(8)V99.
    DATA RECORD
01  RES-REC.
    05  FILLER
    05  COST-CNTR-IN
    05  FILLER
    05  AMOUNT OCCURS 6
FO  COST-ALLOCATION-RESOLVED-COSTS
    BLOCK CONTAINS 0 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS RES-COSTS.
01  RES-COSTS.
    05  RECORD-COUNT.
        10  NO-OF-RECS   PIC 9{2>.
        10  FILLER       PIC X(12) .
    05  RES-CGST-REC OCCURS 1 TD 99 TIMES
        DEPENDING ON NO-OF-RECS
        ASCENDING KEY IS COST-CNTR
        INDEXED BY CC.
        10  COST-CNTR    PIC XK).
        10  CC-AMOUNT    PIC S9(8)V99.
SO  FILE-SORT
    RECORD CONTAINS 80 CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    05  FILLER           PIC X(10) .
    05  S-COST-CNTR      PIC X(4).
    05  FILLER           PIC x«>6).
FO  CARD-IN
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS INPUT-CARD.
01  INPUT-CARD.
    05  DATE-IN
    05  TITLE-IN
    05  FILLER
WORKING-STORAGE SECTION
77  LINE-CT
77  PAGE-CT
77  MAX-LINE
77  COST-CNTR-HOLD
77  AMOUNT-ACCUM
77  COST-CNTR-CT
01  HEAD-1.
    05  FILLER
    05  FILLER
    05  FILLER
01  HEAD-2.
    05  FILLER
    05  DATE-OUT
    05  FILLER
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
X( 18 )
X ( 24 )
X(38)
9(2>
9 (4 }
9(2>
X ( 4 )
S9{8)
99 VA
                    PIC
                                  CDMP  VALUE  0.
                                  COMP  VALUE  0.
                                  COMP  VALUE  56
                                  VALUE  ZERO.
                                  V99 VALUE  0.
                                  LUE 0.
 PIC X(36) VALUE SPACES.
X(26) VALUE 'TOTAL COST BY COST  CENTERS'
 PIC X(18) VALUE SPACES.
                         PIC
                         PIC
                         PIC
     X(13)
     XI 18)
     X(17)
VALUE 'DATE ENDING:  '
VALUE SPACES
                               228

-------
    05
    05
    05
    05
    FILLER
    FILLER
    FILLER
    PAGE-OUT
01
01
HEAO-3.
05  FILLER
05  TITLE-OUT
05  FILLER
HEAD-4.
    05
    05
    05
    05
    05
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
01
DATA-LINE
05
05
05
05
05
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
X (
X(
X(
zz
X (
X{
X(
X(
X(
X(
X(
X(
X(
Z(
X(
Z(
X(
3)
19)
6)
Z9.
37)
24)
19]
23)
11 )
26)
5)
15]
27]
4),
23)
8 ) .
13!
VALUE
i VALUE
VALUE
t
VALUE
.
I VALUE
i VALUE
i VALUE
VALUE
VALUE
1 VALUE
I VALUE
t
I .
.99CR.
* •
 SPACES.


 SPACES.


 SPACES .
 'COST  CENTER1
 SPACES.
•VALUE ' .
 SPACES.


 SPACES.
        FILLER
        COST-CNTR-OUT
        FILLER
        AMOUNT-OUT
        FILLER
PROCEDURE DIVISION.
OPEN-IO-FILES.
    OPEN INPUT  CARD-IN
         OUTPUT PRINT-OUT
                COST-ALLOCATION-RE SOLVED-COSTS .
SORT-RES-FILE.
    SURT FILE-SORT UN ASCENDING KEY
        S-COST-CNTR
    USING   COST-ALLOCATION-RESOLVED
    GIVING  COST-ALLOCATION-RESOLVED.
OPEN-CAR-FILE.
    OPEN INPUT COST-ALLOCATION-RESOLVED.
HOUSE-KEEP.
    PERFORM MOVE-SPACES.
READ-CARD-IN.
    READ CARD-IN AT END
        MOVE  'NO DATE CARD ** JOB ABORTED' TO  PRINT-DATA
        PERFORM PRINT-L1NE-OUT
        GU TO CLOSE-IO-FILES.
    MOVE DATE-IN TO DATE-OUT.
    MOVE TITLE-IN TO TITLE-OUT.
WRITE-HEADINGS.
    ADD 1  TO PAGE-CT.
    MOVE 0 TO LINE-CT.
    MOVE PAGE-CT TO PAGfc-OUT
    WRITE PRINT-LINE BEFORE NEW-PAGE.
    MOVE HEAD-1 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT .
    MOVE HEAD-2 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
                          229

-------
    MOVE HEAD-3 TO PRINT-DATA.
    PERFORM PRINT-LINE-OJT.
    PERFORM MOVt-SPACES.
    PERFORM PRINT-LINE-OUT 2 TIMES.
    MOVE HEAD-4 TO PRINT-DATA.
    PERFORM PRINT-LINE-UUT.
    PERFORM MOVE-SPACES THRU PRiNT-LINE-OUT.
SET-POINTER.
    SET CC TO 1.
READ-INPUT.
    REAJ COST-ALLOCATION-RESOLVED AT END
        GO TO WRITE-COST-TABLE.
START-TUTAL1N&.
    MOVE COST-CNTR-IN TO COST-CNTR  (CC), COST-CNTR-UUT,
    COS r-CNTR-HOLD.
ADO-AMOUNTS.
    ADD AMOUNT  (!) TO AMOUNT-ACCUM
    PERFORM READ-INPUT.
    IF COST-CNTR-IN NOT = COST-CNTR-HDLD THEN
        PERFORM WRITE-COST-CNTR
        GO TD START-TOTALING
    ELSE GO TO ADD-AMOUMTS.
WRITE-CGST-CNTR.
    MOVE AMOUNT-ACCUM TO AMOUNT-OUT, CC-AMOUNT  (CC).
    MOVE IERO TO AMOUNT-ACCUM.
    SET CC UP BY 1.
    ADD 1 TO CDST-CNTR-CT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-DUT.
    IF  LINE-CT NOT < MAX-LINE THEN
        PERFORM WRITE-HEADINGS.
MOVE-SPACES.
    MOVE SPACES TO PRINT-LINE.
PRINT-LiNE-OUT.
    WRITE PRINT-LINE BEFORE 1.
    ADD 1 TU LINE-CT.
WRITE-COST-TABLE.
    MOVE COST-CNTR-CT TO NO-OF-RECS.
    PERFORM WRITE-COST-CNTR.
    WRITE RES-COSTS.
CLOSE-IO-FILES.
    CLOSE   COST-ALLOCATION-RESOLVED
            CDST-ALLOCATION-RESOLVED-COSTS
            CARD-IN
            PRINT-OUT.
E-O-J.
    STOP RUN.
                           230

-------
      PGMNAME=WUASCAP3
.SYSIN     DO   *
  ID  DIVISION.
  PROGRAM-ID.  WUASCAP3.
  AUTHOR.  ACT  SYSTEMS, INC
          SUITE  200
          807  W  MORSE BLVD
          WINTER PARK, FL 32789.
  DATE-WRITTEN.   DEC 15,  1977.
  DATE-COMPILED.
  REMARKS.     THIS PROGRAM READS THE UNRESOLVED FILE
              (UNRSCAFI)  ANO USING THfc TABLE DF COST
              CENTER VALUES, RESOLVES THE FILE AND
              ADDS THE RESOLVED RECORDS TO  THE RESLLVtD
              FILE (RESOCAFI).
  ENVIRONMENT  DIVISION.
  CONFIGURATION  SECTION.
  SOURCE-COMPUTER. IBM-370.
  OBJECT-COMPUTER. I6M-370.
  SPECIAL-NAMES.
      C01  IS  UEw-PAGE.
  INPUT-OUTPUT  SECTION.
  FILE-CONTROL.
      SELECT  CARD-IN
          ASSIGN TO UR-2540R-S-CAKOIN
          ACCESS MODE IS  SEQUENTIAL.
      SELECT  PRINT-OUT
          ASSIGN TO UR-1403-S-PiUUTUUT
          ACCESS MODE IS  SEQUENTIAL.
      SELECT  COST-ALLDCAT10N-RESOLVED
          ASSIGN TO UT-3330-S-RESOCAFI
          ACCESS MODE IS  SEQUENTIAL.
      SELECT  COST-ALLOCATION-UNRESOLVED
          ASSIGN TO UT-3330-S-UNRSCAF1
          ACCESS MODE IS  SEQUENTIAL.
      SELECT  COST-ALLOCAT10N-RESOLVEO-C LISTS
          ASSIGN TO UT-3330-S-RECTAbFI
          ACCESS MODE IS  SEQUENTIAL.
      SELECT  CROSS-REF-FILE
          ASSIGN TO DA-3330-I-CRTABFI
          ACCESS MCUE IS  RANDOM
          RECORD KEY IS CRF-ACCT-KD
          NOMINAL KEY IS  ACCT-NOMINAL .
      SELECT  FILE-SORT
          ASSIGN TO UT-3330-S-FILESORT
          ACCESS MODE IS  SEQUENTIAL.
  DATA  DIVISION.
  FILE  SECTION.
  FD   CARU-IN
      RECORD  CONTAINS 80  CHARACTEKS

                              231

-------
    LABEL RECORDS ARE  OMITTED
    DATA RECORD IS INPUT-CARD.
01  INPUT-CARD.
    05  OATE-IN          PIC X( 18) .
    05  TITLE-IN         PIC X(24).
    05  FILLER           PIC X(38) .
FO  PRINT-OUT
    RECORD CONTAINS  133 CHARACTERS
    LABEL RECORDS ARE  OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    05  FILLER           PIC x.
    05  PRINT-DATA       PIC X(132).
FD  COST-ALLOCATIUN-RESOLVED
    BLOCK CONTAINS 5 RECORDS
    RECORD CONTAINS  80 CHARACTERS
    LABEL RECORDS ARE  STANDARD
    DATA RECORD IS RES-REC.
01  RES-REC.
    05  RES-ACCT-NO       PIC X(1C).
    05  RES-CDST-CNTR     PIC X ( <+ ) .
    05  RES-COST-CAT     PIC XX.
    05  RES-MATCH-CODE   PIC XK).
    05  RES-AMTS OCCURS 6 TIMES  PIC  S9(8)V99
FO  COST-ALLOCATION-UNRESOLVED
    BLOCK CONTAINS 5 RECORDS
    RECORD CONTAINS  80 CHARACTERS
    LABcL RECORDS ARE  STANDARD
    DATA RECORD IS UNRES-REC.
01  UNRES-REC.
    05  ACCT-NO          PIC XUO>.
    05  ALLOC-CUDE       PIC x.
    05  FILLER           PIC X(3).
    05  COST-CAT         PIC XX.
    05  MATCH-CODE       PIC 9(4>.
    05  AMTS OCCURS  6  TIMES PIC  S9(8)V99.
FD  COST-ALLCCATI ON-RESOLVED-COSTS
    BLOCK CONTAINS 0 RECORDS
    LABEL RECORDS ARE  STANDARD
    DATA RECORD IS RES-COST-RECORD.
01  RES-COST-RECORD.
    05  RECORD-COUNT.
        10  NO-OF-RECS   PIC 9(2).
        10  FILLER       PIC XU2).
    05  RES-COSTS    OCCURS 1 TO 99  TIMES
        DEPENDING ON NO-OF-RECS
        ASCENDING KEY  IS COST-CNTR
        INDEXED BY CC.
        10  COST-CNTR     PIC XU).
        10  CC-AMOUNT     PIC S9(8)V99.

                       232

-------
FO
01
CROSS-REF-F1LE
BLOCK CONTAINS 
-------
01
01
05  FILLER
05  TITLF-OUT
05  FILLER
HEAO-4.
05  FILLER
05  FILLER
05  FILLER
05  FILLER
05  FILLER
05  FILLER
05  FILLER
05  FILLER
05  FILLER

05  FILLER
HEAD-5.
                         PIC X(54)
                         PIC X(2<+)
                         PIC X(54)
    05
    05
    05
    05
    05
    05
    05
    05
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
I
I
I
I
I
c
c
c
c
c
1C
I
I
I
I
I
I
I
I
I
I
I
I
c
c
c
c
c
c
c
c
c
c
c
c
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
(8
(5
u
(3
(5
(3
(5
(1
(4
(4
(7
(4
(8
(2
(4
(3
(6
(9
)
)
)
)
>
>
)
1
I
1
)
)
*
)
I
}
}
8
 VALUE  SPACES.
k
 VALUE  SPACES.

 VALUE  '  ACCOUNT'.
 VALUE  SPACES.
 VALUE  'COST'.
 VALUE  SPACES.
 VALUE  'ALLOC'.
 VALUE  SPACES.
 VALUE  'TOTAL'.
 VALUE  SPACES.
 VALUE  'RESOLVED AMOUNT ALLOCAT
       •ED  COST CENTERS(S)•.
 VALUE  SPACES.

 VALUE  '  NUMBER'.
 VALUE  SPACES.
 VALUE  'CATEGORY'.
 VALUE  SPACES.
 VALUE  'CODE'.
 VALUE  SPACES.
 VALUE  'AMOUNT1.
 VALUE  SPACES.
01  DATA-LIME.
    05  ACCT-NC-CUT      PIC X(10)
    05  FILLER           PIC X(4J.
    05  CQST-CAT-OUT     PIC X(2).
    05  FILLER           PIC X(6 >.
    05  ALLOC-CODE-OUT   PIC X.
    05  AMOUNT-OUT       PIC -(7)9
    05  RES-DATA OCCURS 6 TIMES.
        10  AMT-OUT      PIC -(7)9
        10  SLASH-OUT     PIC X.
        10  COST-CNTR-OUT PIC X(4)
01  B-PERCENTAGES.
    05  B-PERCENT OCCURS 15 TIMES
01  C-PERCENTAGES.
    05  C-PERCENT OCCURS 15 TIMES
01  D-PtRCENTAGtS.
    05  D-PERCENT OCCURS 15 TIMES
01  E-PERCENTAGtS.
    05  E-PERCENT OCCURS 15 TIMES
01  F-PiiRCENTAGES.
    05  F-PERCENT OCCURS 15 TIMES
01  G-PtRCEMTAGES.
    05  G-PERCENT OCCURS 15 TIMES
01  COMMON-PERCENTAGES.
    05  COMMON-PERCENT OCCURS 15  T
01  COMMON-AMOUNTS.
                               .99.

                               .99.

                               •

                               PIC 9V99.

                               PIC 9V99.

                               PIC 9V99.

                               PIC 9V99.

                               PIC 9V99-

                               PIC 9V99.

                               IMES  PIC 9V99
                               234

-------
    05  COMMON-AMI OCCURS  13  TIMES  PIC  S9(8)V99.
PROCEDURE DIVISION.
OPEN-IO-FILES.
    OPEN INPUT  CARD-IN,
                COST-ALLOCATION-RESOLVED-COSTS,
                CROS5-REF-FILE,
         OUTPUT COST-ALLOCATIDN-RESOLVED,
                PRINT-OUT .
SORT-UNRES-FILE .
    SORT FILE-SORT ON ASCENDING  KEY
        S-ACCT-NO
    USING  COST-ALLOCATION-UNRESOLVED
    GIVING COST-ALLOCATION-UNRESOLVED.
OPFN-CAU-FILE.
    OPEN INPUT  COST-ALLOCATION-UNRESOLVED.
FILL-HEADING.
    READ CARD-IN AT END MOVE
         '*** NO DATE/TITLE CARD  *<•*  JOB  ABORTED  **•>'
        TO PRINT-DATA,
        PERFORM PRINT-LINE-OUT
        GO TO CLOSE-IO-FILES.
    MOVE DATE-IN TO DATE-GUT.
    MOVE TITLE-IN TO TITLE-OUT.
READ-COSr-TABLE-IN.
    READ COST-ALLOCATION-RESOLVED-COSTS  AT  END  MOVE
         '*<"> COST TABLE CONTAINS NO  DATA  ** JOB  ABORTED
         TO PRINT-DATA
        PERFORM PRINT-LINE-OUT
        GO TO CLOSE-IG-FILES.
WRITE-HEADINGS.
    ADD  1 TO PAGE-CT.
    MOVE PAGE-CT TO PAGE-OUT.
    MLVt ZERO TC LINE-CT.
    PERFORM MOVt-SPACES.
    WRITE PRINT-LINE BEFORE  NEW-PAGE.
    MOVE HEAD-1 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MCVE HEAD-2 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-3 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT 2  TIHFS.
    MCVE HEAD-4 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MLVE HEAD-5 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU  PR I NT-LINE- OUT .
HOU5E-KEFP-
    MGVE SPACES TO DATA-LINE.

                            235

-------
    MOVE ZERO TO COMMON-PERCENTAGES,
        B-PtRCENTAGES,
        C-PERCENTAGFS,
        D-PERCENTAGES,
        E-PERCENTAGES,
        F-PERCENTAGES,
        G-PERCENTAGE5.
READ-INPUT.
    READ COST-ALLOCATION-UNRESOLVED AT END
        GO TD kRITE-SUBTOTAL.
START-RESOLVING.
    MOVE ACCT-NG TO ACCT-HOLD, ACCT-NDMINAL, RES-ACCT-NO.
            ACCT-NO-OUT.
    MOVE ALLOC-CDOE TO ALLOC-CDDE-HULD, ALLOC-CODE-QUT.
    MOVE COST-CAT TO RES-COST-CAT, COST-CAT-OUT.
    MOVE AMTS (1) TD AMOUNT-OUTf AMT-HDLD, AMT-HOLD-OVFLOh.
    ADD AMTS (1) TD SUBTOTAL-
READ-CRF.
    READ CROSS-REF-FILE INVALID KEY
        MOVE DATA-LINE TO PRINT-DATA
        PERFORM PRINT-LINE-OUT
        MOVE '*** ABOVE ACCOUNT NUMBER NOT FOUND ***'  TO
        PRINT-DATA
        PERFORM PRINT-LINE-OUT
        PERFORM MOVE-SPACES THRU PRINT-LINE-OUT
        GO TD READ-INPUT.
    IF ALLOC-CODE = 'B' THEN
        GO TO ALLOCATION-B.
    IF ALLOC-CODE = 'C1 THEN
        GO TO ALLOCATION-C.
    IF ALLOC-CDDE = '0' THEN
        GO TO ALLOCATION-D.
    IF ALLOC-COOE = •£' THEN
        GO TD ALLOCATION-E.
    IF ALLOC-COOE = 'F' THEN
        GO TO ALLOCATION-F.
    IF ALLOC-CODE = «G» THEN
        GO TO ALLOCATION-G.
INVALID-ALLOC-CDDE-FALLTHRU.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRIlMT-LINE-OUT.
    MOVE '*** ABOVE RECORD HAS INVALID ALLOC CODE  ***'
        TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR1NT-LINE-OUT.
    GC TO READ-INPUT.
ALLOCATION-B.
    IF  B-PERCENTAGES = ZERO THEN
        PERFORM GET-B-PERCENTAGES.
    PERFORM MOVE-B-PERCENT-TO-COMMON VARYING I

                            236

-------
        FROM 1 BY 1 UNTIL I > NQ-GF-CC.
ALLOCATIDN-b-1 .
    PERFORM WRITE-RESDLVED-COSTS THRU WR 1 TE-RESOLVED-COSTS-ENO.
    PERFORM REAJ-INPUT.
    IF ACCT-NQ = TO ACCT-HOLD THEN
        PERFORM STAKT-RESOLVING
        GD TO ALLOCATION-B-I
    ELSE GO TO START-kESOLVING.
ALLOCATION-C .
    IF  C-PERCENTAGES = ZERO THEN
        PERFORM GET-C-PERCENTAGES.
    PERFORM MGVE-C-PERCENT-TO-COMMON VARYING I
        ^ROM 1 BY 1 UNTIL I > NO-OF-CC.
ALLOCATiCN-C-1.
    PERFORM WRITE-RESOLVED-CDSTS THRU WR I TE-RESULV ED-COSTS-END.
    PERFORM READ-INPUT.
    IF ACCT-NO = TO ACCT-HOLD THEN
        PERFORM START-RESOLVING
        GD TO ALLOCATION-C-1
    ELSE GO TO START-RESOLVING.
ALLOCATION-D.
    IF  0-PERCENTAGES = ZERO THEN
        PERFORM GET-D-PERCENTAGES.
    PERFORM MOVE-D-PERCENT-TO-COMMON VARYING I
        FROM 1 BY 1 UNTIL I > NO-OF-CC.
ALLOCATION-D-1.
    PERFORM WRITE-RESOLVED-COSTS THRU WR I TE-RE SOLVED-COSTS-END.
    PERFORM READ-INPUT.
    IF ACCT-NO = TO ACCT-HOLO THEN
        PERFORM START-RESOLVING
        GO TO ALLOCATION-D-1
    ELSE GO TO START-RESOLVING.
ALLOCATION-E.
    IF  E-PERCENTAGES = ZERO THEN
        PERFORM GET-E-PERCENTAGES.
    PERFORM MOVE-E-PERCENT-TO-COMMON VARYING I
        FROM 1 BY 1 UNTIL I > ND-OF-CC.
ALLOCATION-E-1.
    PERFORM WRITE-RESOLVED-COSTS THRU WR ] TE-RESOLVED-COSTS-END
    PERFORM READ-INPUT.
    IF ACCT-NO = TO ACCT-HOLD THEN
        PERFORM START-RESOLVING
        GO TO ALLOCATION-E-1
    ELSE GO TO START-RESOLVING.
ALLOCAT10N-F.
    IF  F-PERCENTAGES = ZERO THEN
        PERFORM GET-F-PERCENTAGE5.
    PERFORM MOVE-F-PERCENT-TO-COMMON VARYING I
        FROM 1 BY 1 UNTIL I > NO-OF-CC.
ALLOCAT1CN-F-1.

                              237

-------
    PERFORM WRITE-RESOLVED-COSTS THRU WR ITE-RESOLVED-COSTS-END.
    PERFORM READ-INPUT.
    IF ACCT-ND = ACCT-HDLO THEN
        PERFORM START-RESOLVING
        GO TO ALLOCATION-F-1
    ELSE GO TO START-RESOLVING.
ALLOCATION-&.
    IF  G-PERCENTAGES =  ZERO THEN
        PERFORM GET-G-PERCENTAGES.
    PERFORM MOVE-&-PERCENT-TO-COMMON VARYING I
        FROM 1 BY 1  UNTIL I  > NQ-DF-CC.
ALLOCATION-G-1.
    PERFORM WRITE-RESOLVED-COSTS THRU WRITE-RESGLVED-COSTS-END.
    PERFORM READ-INPUT.
    IF ACCT-NO = ACCT-HOLD THEN
        PERFORM START-RESOLVING
        GD TO ALLOCATION-G-1
    ELSE GO TO START-RESOLVING.
MOVE-SPACES.
    MOVE SPACES TO PRINT-LINE.
PRINT-LINE-OUT.
    WRITE PRINT-LINE BEFORE  1.
    ADD 1 TO LINE-CT.
GET-COMMON-PERCENTAGES.
    MOVE ZEROS TO COMMON-AMOUNTS, COMMON-AMOUNTS-ACCUM.
    PERFORM SEARCH-COST-TABLE VARYING I FROM 1  BY 1
        UNTIL I > NO-OF-CC.
    PERFORM TOTAL-AMTS VARYING I FROM 1 BY 1
        UNTIL I > NO-OF-CC.
    IF COMMON-AMOUNTS-ACCUM  = ZEROS THEN
        PERFORM MOVE-IN-EQUAL-PERCENTAGES VARYING
        I FROM 1 BY  1 UNTIL  I > NO-OF-CC
    ELSE MOVE 1 TO PERCENT-100
        PERFORM M&VE-IN-PERCENTAGES VARYING
        I FROM 1 BY  1 UNTIL  I > NO-OF-CC
SEARCH-CCST-TABLE.
    MOVE CRF-COST-CNTR (I) TO SEARCH-NO.
    SET CC TC 1.
    SEARCH ALL RES-COSTS AT  END
        MOVE ZERO TO COMMON-AMT (I)
    WHEN COST-CNTR  (CC)  = SEARCH-NO
        MOVE CC-AMOUNT (CO  TO COMMON-AMT (I).
TOTAL-AMTS.
    IF CDMMON-AMT (I) <  ZERO THEN
        MOVE ZERO TO COMMON-AMT (I).
    ADD CQMMON-AMT  (I) TO COMMOU-AMUUNTS-ACCUM.
MGVE-IN-EQUAL-PERCENTAGES.
    DIVIDE 1 BY NO-OF-CC GIVING COMMON-PERCENT  (I) ROUNDED.
MDVE-IN-PERCENTAGES.
    DIVIDE COMMON-AMT (I) BY COMMON-AMOUNTS-ACCUM

                              238

-------
        GIVING COMMON-PERCENT (I) ROUNDED.
    SUBTRACT COMMON-PERCENT (I)  FROM PERCtNT-100.
    IF  1  = NO-OF-CC THEN
        ADD PERCENT-100 TO COMMON-PERCENT  (I).
V.RITE-RESOLVED-COSTS.
    MCVE  1 TO I,  J.
FILL-PRINT-LINE .
    MOVE  ACCT-ND  TO RES-ACCT-NO.
    MULTIPLY COMMON-PERCENT (I)  BY AMT-HOLD GIVING RES-AMTS  (1)
    MOVE  RES-AMTS  (1) TO AMT-LiUT DF RES-DATA  (J).
    SUBTRACT RES-AMTS m FROM AMT-HGLD-OVFLOW.
    MOVE  SLASH TO SLASH-OUT OF RES-DATA  (J).
    MOVE  CRF-COST-CNTR OF CC-BLK (I) TO
        COST-CNTR-OUT OF RES-OATA (J),
        RES-COST-CNTR.
    MOVE  COST-CAT TO RES-COST-CAT.
    MOVE  CRF-MATCH-CODE OF CC-BLK (I) TO
        RES-MATCH-CCDE.
3ALANCE-LAST-AMOUNT.
    IF  I  = NO-OF-CC THEN
        ADD RES-AMTS  (1) TO AMT-HULD-OVFLOW
        MuVE AMT-HOLD-OVFLOW TO RES-AMTS  (1)
                         AMT-OUT OF RES-DATA  (J).
WRITE-DISK-REC.
    WRITE RES-REC.
CHECK-NG-OF-CC .
    IF  I  = NO-OF-CC THEN
        GO TO WRITE-PRINT-LINE.
    IF  J  = 6 THEN  PERFORM
        WRITE-PRINT-LINE,
        MOVE 0 TO  J.
    ADD 1 TO I. J.
    GU  TO FILL-PRINT-LINE.
WRITE-PRINT-LINt .
    MOVE  DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE  SPACES TO DATA-LINE.
SKIP-A-LINE.
    PERFORM MOVE-SPACES THRU PR INT-LINE- OUT .
    IF  LINE-CT >  MAX-LINE THEN
        PERFORM WRITE-HEADIN&S.
WRlTE-RcSOLVED-COSTS-END.
    EXIT.
GET-B-PERCENTAGES.
    PERFORM GET-COMMON-PERCENTAGES.
    PERFORM MOVE-COMMON-TO-B-PERCENT VARYING
        I FROM 1  BY 1 UNTIL I > NO-QF-CC.
MOVE-COMMON-TO-6-PERCENT .
    MOVE  COMMON-PERCENT  (I) TO B-PERCENT  (I).
f.ET-C-PEPCENTAGtS.

                                239

-------
    PERFORM GET-COMMDN-PERCENTAGES.
    PERFORM MCVE-COMMON-TC-C-PERCENT VARYING
        I  FROM 1  BY 1 UNTIL I > NO-LF-CC.
MOVE-COMMON-TO-C-PERCENT.
    MOVE COMMON-PERCENT (I) TO C-PERCENT (I)
GET-D-PERCENTAGfcS.
    PERFORM GET-COMMON-PERCENTAGES.
    PERFORM MOVE-COMMUN-TO-D-PEkCENT VARYING
        I  FROM 1  BY 1 UNTIL I > NG-UF-CC.
MOVE-COMMON-TO-U-PERCENT.
    MOVE COMMON-PERCENT m TO D-PERCENT m
GET-E-PERCENTAGES.
    PERFORM GET-COMMON-PERCENTAGES.
    PERFORM MOVE-COMMON-TO-E-PERCENT VARYING
        I  FROM 1  BY 1 UNTIL I > NO-L1F-CC.
MOVE-COMMON-TO-E-PERCENT.
    MOVE COMMON-PERCENT d) TO E-PERCENT m
&ET-F-PERCENTAGtS.
    PERFORM GET-COMMON-PERCENTAGES.
    PERFORM MOVE-COMMON-TO-F-PFRCENT VARYING
        I  FROM 1  BY 1 UNTIL I > NO-OF-CC.
MOVE-COMMON-TO-F-PERCENT.
    MOVE COMMON-PERCENT (I) TO F-PERCENT (I)
r.ET-G-PtRCEfMTAGcS.
    PERFORM GET-COMMON-PERCENTA&ES.
    PERFORM M&VE-COMMON-TQ-G-PERCfcNT VARYING
        I  FROM 1  BY 1 UNTIL I > NO-OF-CC.
MOVt-COMMON-TO-G-PERCENT.
    MOVE COMMON-PERCENT (I) TO &-PERCENT (I),
MOVE-B-PERCENT-TO-COMMON.
    MOVE B-PERCENT (I) TO COMMON-PERCENT (I)
MOVE-C-PERCENT-TO-COMMON.
    MOVE C-PERCENT (I) TO COMMON-PERCENT (I)
MGVE-D-PERCENT-TO-COMMON.
    MOVE D-PERCENT (I) TO COMMON-PERCENT (I)
MOVE-E-PERCENT-TO-COMMON.
    MOVE E-PERCENT (I) TO COMMON-PERCENT (I)
MDVE-F-PERCENT-TO-COMMON.
    MOVE F-PERCENT (I) TO COMMON-PERCENT (I)
MOVE-G-PERCENT-TO-COMMON.
    MOVE &-PERCENT (I) TO COMMON-PERCENT (I)
KRITE-SUBTOTAL.
    MOVE SPACES TO DATA-LINE.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT 2 TIMES.
    MOVE 'SUBTOTAL  ' TO ACCT-NO-OUT.
    MOVE SUBTOTAL TO AMOUNT-OUT.
    MOVE DATA-LINE TD PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
CLOSE-IO-FILES,

                         240

-------
    CLOSE   COST-ALLOCATION-RESQLVED,
            COST-ALLOCAT I ON-UNRESOLVED,
            COST-ALLOCATION-RESOLVED-COSTS,
            CROSS-REF-FILE,
            CARD-IN,
            PRINT-OUT.
E-O-J.
    STOP RUN.
                       241

-------
,SYSIN     DD   *
  ID DIVISION.
  PRD&RAM-ID.  WUASUZFI.
  AUTHOR.  ACT  SYSTEMS,  INC
          SUITE  200
          8o7  W  MORSE  BLVD
          WINTER  PARK,  FL  32789.
  DATE-wRITTEiM.  DEC  1977.
  DATE-COrtPILED.
  REMARKS.     THIS PROGRAM  ZEROS  OUT  THE AMOUNT
              FIELDS  IN  THE COST-MATRIX FILE
              DEPENDING  ON  THE  PARAMETER CARD(S).
  ENVIRONMENT  DIVISION.
  CONFIGURATION  SECTION.
  SOURCE-COMPUTER. IBM-370.
  OBJECT-COMPUTER. IBM-370.
  SPECIAL-NAMES.
     C01  IS NEW-PAGE.
  INPUT-OUTPUT SECTION.
  FILE-CONTROL.
     SELECT CARD-IN
          ASSIGN  TO  UR-25^0R-S-CAROIN
          ACCESS  MODE  IS  SEQUENTIAL.
     SELECT PRINT-OUT
          ASSIGN  TO  UR-1403-S-PRINTOUT
          ACCESS  MODE  IS  SEQUENTIAL.
     SELECT COST-MATRIX-FILE
          ASSIGN  TO  DA-3330-I-CMFILE
          ACCESS  MODE  IS  SEQUENTIAL
          RECORD  KEY  IS  CM-NUMBER.
  DATA  DIVISION.
  FILE  SECTION.
  Fu  CDST-MATRIX-FILE
     RECORD CONTAINS  80  CHARACTERS
     BLOCK  CONTAINS  5  RECORDS
     LABEL  RECORDS  ARE  STANDARD
     DATA RECORD IS  INPUT-REC.
  01  INPUT-REC.
     05   MATCH-CODE        PIC  X(4).
     05   CM-NUMBER         PIC  X(16).
     05   AMOUNTS.
          10   AMTS OCCURS 6 TIMES PIC S9(8IV99.
 *****
 *      THE  ABOVE AMTS  (AMOUNTS)  ARE  AS FOLLOWS
 *        (1)  --  CURRENT  COST  AMOUNT
 *        (2)  --  PREVIOUS MONTH COST  AMOUNT
 *        (3)  --  CURRENT  COST  AMOUNT  YEAR TO DATE  
-------
        (6)  -- PREVIOUS YEAR COST AMOUNT (PYC)
   *
FD  CARD-IN
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS INPUT-CARD.
01  INPUT-CARD.
    05  PARM-CODE        PIC X.
    05  FILLER           PIC X(79) .
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTtRS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    05  FILLER           PIC X.
    05  PRINT-DATA       PIC X(80).
    05  FILLER           PIC X(52) .
PROCEDURE DIVISION.
OPEN-FILF.S.
    OPEN    1-0     COST-MATRIX-FILE,
            INPUT   CARD-IN,
            OUTPUT  PRINT-OUT.
TOP-OF-iMEWPAGE.
    PERFORM  MOVE-SPACES.
    WRITE PRINT-LINE BEFORE NEW-PAGE.
    PERFORM  PRINT-LINt-OUT 10 TIMES.
    MOVE  'THE CUST MATRIX FILE IS BEING  CHANGED   BY THE FQLLOWl
          'NG METHOD' TO PRINT-DATA.
    PERFORM  PRINT-LINE-OUT.
    PERFORM  MOVE-SPACES THRU PR1NT-LINE-OUT.
READ-CARD-IN.
    READ CARD-IN AT END GO TO STANDARD-ZERO-PROCEDURE.
    IF PARM-CODE - 'F' THEN
        GO TO FISCAL-YEAR-CHANGE-PRUCEDURE.
    IF PARM-CODE = 'Z' THEN
        GO TO ZERO-OUT-FILE-PROCEDURE.
INVALID-PARM-COOE-FALLTHRU.
    MOVE  '    THE FOLLOWING PARAMETER CARD WAS  INVALID -- JOB ABO
          'RTEO' TO PRINT-DATA.
    PERFORM  PRINT-LINE-OUT.
    MOVE  INPUT-CARD TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    GO TO CLOSE-FILES.
STANDARD-ZERO-PROCEDURE.
    MCVE  '    NORMAL PERIOD CHANGE OVER' TO PRINT-DATA.
    PERFORM  PRINT-LINE-OUT.
START-ZERO-1 .
    PERFORM RcAD-CM-FILE.
    MOVE  AMTS (1) TG AMTS (2) .
    MGVE  ZEROS TO AMTS ( 1 ) .

                               243

-------
    PERFORM REWRITE-CM-FILE.
    GO TO START-ZERO-1.
FISCAL-YEAR-CHANGE-PROCEDURE.
    MOVE '      FISCAL  YEAR CHANGE OVER •   TU PRINT-DATA.
    PERFORM PRINT-LINE-DUT.
START-ZERO-2.
    PERFORM READ-CM-FILE .
    MOVE AMTS ( 1 )  TO AMTS  ( 2) .
    MOVE AMTS (3)  TO AMTS  (6).
    MOVE ZEROS TO  AMTS  (1), AMTS (3),  AMTS (M. AMTS (5)
    PERFORM REWRITE-CM-FILE.
    GO TO START-ZERO-2.
ZERO-OUT-FILE-PROCEDURE.
    MCVE '      COST  MATRIX FILE IS BEING  ZEKOED OUT' TO
        PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
START-ZERO-3.
    PERFORM READ-CM-FILE.
    MOVE ZEROS TO  AMOUNTS.
    PERFORM REWRITE-CM-FILE.
    GO TO START-ZERO-3.
READ-CM-FILE.
    READ COST-MATRIX-FILE  AT  END
    MOVE  'REVISION  OF CM  FILE  COMPLETED' TO PRINT-DATA
        PERFORM  PRINT-LINE-OUT
        GO  TD CLOSE-FILES.
REWRITE-CK-FILE.
    REWRITE INPUT-REC.
MOVE-SPACES.
    MOVE SPACES  TO PRINT-LINE.
PRINT-LINE-OUT.
    WRITE PRINT-LINE BEFORE 1.
CLOSE-FILES.
    CLOSE   COST-MATRIX-FILE,
            CARD-IN,
            PRINT-OUT.
E-O-J.
    STOP RUN.
                          244

-------
     PGMNAME=WUASCUPD
SYSIN    DO  *
 ID DIVISION.
 PROGRAM-ID. WUASCUPD.
 AUTHOR. ACT SYSTEMS, INC
         SUITE 200
         907 W MORSE Bl_VD
         WINTER PARK, FL 32789.
 DATE-WRITTEN.  OEC 1977.
 DATE-COMPILED.
 REMARKS.    THIS PROGRAM READS THE COST ALLOCATION R.ESOLVED
             FILE (RESOCAFI) AND UPDATES THE COST MATRIX FILE
             (CMFILE) WITH THE CURRENT COSTS.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. IBM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01 IS NEW-PAGE.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
     SELECT COST-ALLOCATION-RESOLVED
         ASSIGN TO UT-3330-S-RESOCAFI
         ACCESS MODE IS SEQUENTIAL.
     SELECT COST-MATRIX-FILE
         ASSIGN TO DA-3330-I-CMFILE
         ACCESS MODE IS RANDOM
         RECORD KEY 15 CM-NUMBER
         NOMINAL KEY IS CM-NOMINAL.
     SELECT PRINT-OUT
         ASSIGN TO UR-1403-S-PRINTOUT
         ACCESS MODE IS SEQUENTIAL.
     SELECT FILE-SORT
         ASSIGN TO UT-3330-S-FILE50RT
         ACCESS MODE IS SEQUENTIAL.
 DATA DIVISION.
 FILE SECTION.
 FD  COST-MATRIX-FILE
     BLOCK CONTAINS 5 RECORDS
     RECORD CONTAINS 80 CHARACTERS
     LABEL RECORDS ARE STANDARD
     DATA RECORD IS CM-REC..
 01  CM-REC.
     05  MATCH-CODE       PIC XU).
     05  CM-NUMBER.
         10  ACCT-NO      PIC X(10).
         10  COST-CNTR    PIC X ( <» > .
         10  COST-CAT     PIC X(2).
     05  AMOUNTS.
         10  AMT OCCURS 6 TIMES PIC S9(8)V99.

                            245

-------
FD  CDSr-ALLOCATIDN-RESDLVED
    BLOCK CONTAINS 5 RECORDS
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS RES-REC.
Cl  RES-REC.
    05  RES-NUM          PIC
    05  RES-MATCH-CGDE   PIC
    05  RES-AMOUNTS.
        1C  RES-AMT OCCURS 6
SD  FILE-SORT
    RECORD CONTAINS 80 CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    05  SORT-FIELD       PIC X(16)
    05  FILLER           PIC X(64)
FD  PRINT-OUT
    RECORD CONTAINS 133 -CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    05  FILLER           PIC
    05  PRINT-DATA       PIC
WORKING-STORAGE SECTION.
                             X(16)
                             TIMES PIC S9(8)V99.
                             X.
                             X(132)
77  CM-NOMINAL
77  REAu-COUNT
77  UPDATE-COUNT
77  GOOD-COUNT
77  BAD-COUNT
01  AMOUNT-HOLD.
    05  AMT-HOLD
01  DATA-LINE.
                         PIC X(16) VALUE
                         PIC 9(7)  VALUE
                         PIC 9(7) VALUE
                         PIC 9(7) VALUE
                         PIC 9(7) VALUE
            SPACES
            ZERO.
           ZERO.
           ZERO.
           ZERO.
                 OCCURS 6 TIMES PIC S9(8)V99
    05
    05
    05
    05
    05
    05
                         PIC
                         PIC
                         PIC
                         PIC
                         PIC
                         PIC
X( 10)
X( 13)
XX
Z(7).
X(80)
X(15)
VALUE
VALUE
VALUE
        FILLER
        COMMENT
        FILLER
        COUNT-OUT
        ERROR-REC
        FILLER
PROCEDURE DIVISION,
SORT-RECORDS.
    SORT FILE-SORT
        SORT-FIELD
    USIMG  COST-ALLOCATION-RESOLVED
    GIVING COST-ALLOCATION-RESOLVED.
OPEN-FILES.
                CQST-MATRIX-FILE.
                COST-ALLOCATION-RE SOLVED
                PRINT-OUT.
SPACES
SPACES
SPACES
                   ON ASCENDING KEY
    OPEN
         1-0
         INPUT
         OUTPUT
HOUSE-KEEP.
    MOVE SPACES
                TO DATA-LINE
                           246

-------
    MOVE ZEROS  TO AMOUNT-HOLD.
TOP-NEW-PAGE .
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE NEW-PAGE.
    MOVE 'UPDATE CM FILE PGM1 TO  COMMENT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-DUT.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT 3 TIMES.
READ-RES-REC.
    READ COST-ALLOCATION-RESOLVED  AT  END
        GO TD WRITE-COUNTS.
    ADD 1 TO READ-COUNT.
MOVE-NOMINAL-KEY.
    MOVE RES-NUM TO CM-NOMINAL.
    READ COST-MATRIX-FILE  INVALID  KEY
        MOVE 'INVALID RECORD KEY'  TO  COMMENT
        MOVE RES-REC TO  ERROR-REC
        MOVE DATA-LINE  TO  PRINT-DATA
        PERFORM PRINT-LINE-OUT
        PERFORM MOVE-SPACES THRU  PRINT-LINE-OUT
        MOVE SPACES TO  DATA-LINE
        ADD 1 TO BAD-COUNT
        GO TO RtAD-RES-REC .
    MOVE AMOUNTS TO AMOUNT-HOLD.
    MOVE ZEROS TC AMT-HOLO (1).
START-UPDATE.
    ADD RES-AMT (1) TO  AMT-HOLD  (1)  AMT-HOLO  (3)
    ADD 1 TO GOOD-COUNT.
CHECK-NEXT-REC.
    PERFORM READ-RES-REC .
    IF RES-NUM - TO CM-NOMINAL  THEN
        GO TO START-UPDATE.
REWRITE-CM-REC.
    MOVE AMUUNT-HOLD TO  AMOUNTS.
    REWRITE CM-kEC.
    ADD 1 TO UPOATE-COUNT .
    MOVE SPACES TO CM-NUMBER.
GO-TO-MOVE-NOMINAL-KEY.
    GO TO MOVE-NOMINAL-KEY.
MOVE-SPACES.
    MDVE SPACES TO PRINT-LINE.
PRINT-LINE-OUT.
    WRITE PRINT-LINE BEFORE  1.
WRITE-COUNTS.
    IF CM-NUMBER NOT =  SPACES  THEN
        PERFORM REWRITE-CM-REC.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT 3  TIMES.
    MOVE  'INPUT RECORD  COUNT1  TO  COMMENT.
                         247

-------
    MOVE READ-COUNT TO COUNT-OUT.
    PERFORM PRINT-LINE-OUT.
    MOVE 'ERROR RECORD COUNT1 TO COMMENT
    MOVE BAD-COUNT TO COUNT-OUT.
    PERFORM PRINT-LINE-OUT.
    MOVE 'GOOD  RECORD COUNT* TO COMMENT
    MOVE GOOD-COUNT TO COUNT-OUT.
    PERFORM PRIiMT-LINE-OUT.
    MOVE 'UPDATED REC  COUNT' TO COMMENT,
    MOVE UPDATE-COUNT TO COUNT-OUT.
    PERFORM PRINT-LINE-DUT.
CLOSE-FILES.
    CLOSE   COST-MATRIX-FILE,
            COST-ALLOCATION-RE SOLVED
            PRINT-OUT.
E-O-J.
    STOP RUN.
                       248

-------
SYSIN    OD  *
 ID DIVISION.
 PROGRAM-ID. WUASLV4<».
 AUTHOR. ACT SYSTEMS INC
         SUITE 200
         807 W MGRSE BLVD
         WINTER PARK, FLA 32789.
 DATE-WRITTEN. JAN 1978.
 DATE-COMPILED.
 REMARKS.    THIS PROGRAM SORTS THE COST MATRIX  FILE  BY
             MATCH CODE AND PRINTS OUT LEVEL  IV
             (SUPPORT SERVICES) REPORT.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. IBM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01 IS NEK-PAGE.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
     SELECT CARD-IN
         ASSIGN TO UR-2540R-S-CARDIN
         ACCESS MODE IS SEQUENTIAL.
     SELECT PRINT-OUT
         ASSIGN TO UR-1403-S-PRINTOUT
         ACCESS MODE IS SEQUENTIAL.
     SELECT COST-MATRIX-FILE
         ASSIGN TO DA-3330-I-CMFILE
         ACCESS MODE IS SEQUENTIAL
         RECLRD KEY  IS CM-NUMBER.
     SELtCT FINANCIAL-ACCT-TABFI
         ASSIGN TO DA-3330-I-FATABFI
         ACCESS MODE IS RANDOM
         NOMINAL KEY IS FA-NOMINAL
         RECORD KEY  IS FA-NUMBER.
     SELECT FILE-SORT
         ASSIGN TO UT-3330-S-FILE5LRT
         ACCESS MODE IS SEQUENTIAL.
     SELECT SORTED-F1LE
         ASSIGN TO UT-3330-S-SORTEDFI
         ACCESS MODE IS SEQUENTIAL.
 DATA DIVISION.
 FILE SECTION.
 FD  CARJ-IN
     RECORD CONTAINS 80 CHARACTERS
     LABEL RECORDS ARE OMITTED
     DATA RECORD IS  INPUT-CARD.
 01  INPUT-CARD.
     05  DATE-IN          PIC X(l8) .

                            249

-------
    05  TITLE-IN         PIC X(24).
    05  FILLER           PIC X<38).
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    05  FILLER           PIC X.
    05  PRINT-DATA       PIC XI132).
FD  CDST-MATRIX-FILE
    RECORD CONTAINS 80 CHARACTERS
    BLOCK CONTAINS 5 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CM-REC.
01  CM-REC.
    05  MATCH-CUDE-POS1  PIC X.
    05  FILLER           PIC X(3».
    05  CM-NUMBER        PIC X( 10) .
    05  FILLER           PIC X(66).
FD  FINANCIAL-ACCT-TABFI
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 58 CHARACTERS
    LABtL RECORDS ARE STANDARD
    DATA RECORD IS FA-REC.
01  FA-RFC.
    05  FA-NUMBER        PIC X(10) .
    05  FA-NAME          PIC X(20) OCCURS  2  TIMES.
    05  FILLER           PIC X(8).
SD  FILE-SORT
    RECORD CONTAINS 80 CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    05  S-MATCH-CODE     PIC X(4).
    05  FILLER           PIC X(16).
    05  FILLER           PIC X(60>.
FD  SORTED-FILE
    RECORD CONTAINS 80 CHARACTERS
    BLOCK CONTAINS 5 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-REC.
01  INPUT-REC.
    05  MATCH-CODE       PIC X (             PIC S9(8)V99  OCCURS 6 TIMES

                        250

-------
*
<•
*
*
if
*
«
THE
(
(
(
(
(
(
ABOVE
1 )
2)
3)
4)
5)
6)
--
—
--
--
--
—
                AMTS ARE AS FOLLOWS
               CURRENT COST AMOUNT
               PREVIOUS MONTH COST AMOUNT
               CURRENT COST AMOUNT YEAR  TO  DATE  
c
1C
1C
1C
1C
1C
1C
9
9
X
9
X
X
9
X
X
X
X
X
X
X
X

X
X
z
X
X
X
X

X
X
:«*
c
X
X
X
X
X
X
(4) VALUE ZERO
(2) VALUE ZERO
(10) VALUE SPAC
(4) VALUE SPAC
VALUE '4» .
(2) COMP VALUE
VALUE 'O1.
(57) VALUE SPAC
(1
(5
(6
( 1
8
7
>
8
(30
(2

6

(42
(6
(4
(5
)
)
5
(24
(5
3
( 26

(2
( 1
*s
S
(2
(3
(8
( 1
(9
(1

)
)
)

)
)
)

)
V
V
V
V
ALUE
ALUE
ALUE
ALUE
VALUE
V
i
ALUE
FOR1
VALUE
VALUE
»
)
)
)
)



V
V
V
V

V
02)
*

)
1
)
3
*


)

)
**
*£
V
V
V
V

ALUE
ALUE
ALUE
ALUE

ALUE
VALU
* S
****
ALUE
ALUE
ALUE
ALUE
) VALUE
2
)
V
ALUE
i
S
i
E
E
E
LEVE
PAC
DAT
SPAC
SPAC
i
.
SUP

SPAC
i

S
E
E
E
E
P

E
P-AGE

PAC
SPAC
S
i
'
PAC
COS
ONS
SPAC
E
U
**
S
S
1
S
1
S
i *«•
P
** *
PAC
PAC
CUS
PAC

E
E
E
T
i
E
c
P
*
E
E
S.
S .
56.
S.
L IV REPORT OF • .
S.
: •.
S .
S.
ORT SERVICES COSTS

S.
» 1
» t

S.
S .
S.
CATEGORY OESCRIPTI
•
S.
**>*«*«**#**»*#*****
ORT S E R V I
#$$$######$$$##£##$
S.
S.
TOMER1 .
E
GENE
PAC
E
S.
RAL t' .
S.
                                252

-------
    05  FILLER
    05
    05
    05
FILLER
FILLER
FILLER
01  HEAD-b
05
05
05
05
05
05
05
05
05
05
05
DATA
05
05
05
FILLER
FILLER
FILLER
FILLER
PILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
-LINE .
FILLER
OESC
AMOUNT
                         PIC  X(34)  VALUE
                         'RVICE  AREAS' .
                                   VALUE
                                   VALUE
                                   VALUE

                                   VALUE
                                   VALUE
                                   VALUE
                                   VALUE
                                   VALUE
                                   VALUE
                                   VALUE
                                   VALUE
                                   VALUE
                                   VALUE
                                   VALUE
01
                OCCURS
        10  FILLER
        10  AMT
        10  FILLER
01  ACCJMS.
    05  ACCUM
01  SUBTOTALS.
    05  SUBS
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT
         INPUT
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
TIME
PIC
PIC
PIC
PIC
PIC
X(
X(
X(
X(
x<
X(
X(
X{
X(
X(
X(
X(
X(
X(
X(
X(
s.
X(
-(
X(
59
S9
12)
7)
b)
30)
10)
9)
14)
10)
11)
11)
12)
9>
14)
2)
2)
20)

b).
8).
5).
(3)
18)
'MAINTANCE OF OUTSIDE SE

SPACfcS.
'COST OF'.
SPACES.

SPACES.
•ACCOUNTING1.
SPACES.
'ADMINISTRATIVE'.
SPACES.
                                 •TAYLOR
                                 SPACES.
                                 •iNDEPEf
                                 SPACES.
                                 •MATERIALS
                                 SPACES.
                                                 MILL'
                                                    SOLD
                                   VALUE SPACES
                          V99 OCCURS 5 TIMES
                          V99 OCCURS 5 TIMES
        CARD-IN,
        CARD-IN,
        COST-MATRIX-FILE ,
        FINANCIAL-ACCT-TAbFI ,
        PRINT-OUT.
                                CARD  ** JOB ABORTED  ***'  TO
         OUTPUT
READ-CARD-IN.
    READ CARD-IN AT END
        MOVE  '*** NO DATE/TITLE
        PRINT-DATA,
        PERFORM PRINT-LINE-OUT,
        GO TO  CLOSE-FILES.
    MOVE DATE-IN TO DATE-OUT.
    MOVE TITLE-IN TO TITLE-OUT.
SORT-CM-FILE.
    OPEN OUTPUT SQRTED-FILE.
    SORT FILE-SORT ON ASCENDING
        S-MATCH-CODE
    INPUT PROCEDURE
        READ-SORT-INPUT THRU  READ-SLRT-INPUT-END
    OUTPUT PROCEDURE
                                KEY
                               252

-------
        WRITE-SCRT-QUTPUT THRU  MR1TE-SCRT-OUTPUT-ENO .
    CLOSE SORTEO-FILE.
    DPE1M INPUT SDRTED-FILE.
WRITE-HEADINGS.
    MOVE ZERO TL) LlNE-CT.
    ADD 1 TO PA&E-CT.
    MOVE PA&E-CT TO PAGE-OUT.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE  NEW-PAGE.
    MQVE HEAD-1 TL PRINT-DATA.
    PERFORM PRlNT-LINE-OUT.
    MOVE HEAD-2 TO PRINT-DATA.
    PERl-URM PRINT-LINE-OUT.
    MOVE HEAD-3 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES  THRU PR I NT-LINE-OUT.
    MOVE HEAD-4 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-5 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-6 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES  THRU PR I NT-LINE-OUT.
ZERO-ACCUMS.
    MOVE ZEROS TO SUBTOTALS.
HOUSE-KEEP.
    MOVE SPACES TO DATA-LINE.
    MOVE ZEROS TO ACCUMS.
READ-SORTED-FILE .
    READ SORTED-FILE AT  END  PERFORM  WR I TE-LINE-OUT ,
    &0  TO WRITE-TUTALS.
NEW-MATCH-CUDE.
    MOVE MATCH-CODE TO MATCH-HOLD.
    IF  (MATCH-CODE =  '^815') AND (SUBTOTAL-FLAG = '0')  THEN
        PERFORM WRITF-SUB-TOTAL
        MOVE  '!' TO SUBTOTAL-FLAG
        &G TO READ-SDRTED-FILE .
    MOVE ACCT-NJ TO FA-NOMINAL.
    READ FINANCIAL-ACCT-TABFI- INVALID KEY
        MOVE  SPACES TO FA-NAME  (1),  FA-NAME  (2).
TOTAL-COST-CNTR5.
    IF  CC-POS2 < 3 THEN
        ADD AMTS (1) TO  ACCUM  (CC-PDS2),  SUBS (CC-PQS2)
        GO TO READ-NBXT-REC .
    IF  CC-POS2 = 4 THEN
        MOVE  5 TO CC-POS2
        ADD AMTS (1) TO  ACCUM  (CC-PDS2),  SUBS (CC-POS2)
        GO TO READ-NEXT-REC .
    IF  CC-POS't = 2 THEN
        MOVE  4 TO CC-POS2

                              253

-------
        ADO AMIS (1) TO ACCUM  (CC-PGS2),  SUBS  (CC-PDS2)
    E|_Sc ADD AMIS (1) TO ACCUM (CC-PDS2),  SUBS  (CC-POS2).
READ-NEXT-REC.
    PERFORM READ-SORTED-FILE.
    IF MATCH-CODE EQUAL TO MATCH-HOLD THEN
        GO TO TOTAL-COST-CNTRS.
URITE-LINE-OUT.
    MOVE FA-NAME (1) TO DESC.
    PERFORM MOVt-ACCUMS VARYING I FROM  1  BY  1 UNTIL  I  -  6.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    IF FA-NAME  (2) NOT EQUAL TO .SPACES  THEN
        MOVE SPACES TO DATA-LINE,
        MOVE FA-NAME (2) TO DtSC.
        MOVE DATA-LINE TO PRINT-DATA,
        PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR 1NT-LINE-OUT .
    PERFORM HOUSE-KEEP.
CHECK-FJR-NEW-HEAUING.
    IF LINE-CT  NOT < MAX-LINE  THEN
        PERFORM WRITE-HEADINGS.
    GO TO NEW-MATCH-CODE.
KRITE-TUTALS.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT 2 TIMES.
    PERFORM HOUSE-KEEP.
    MOVE 'TOTALS' TO DESC.
    PERFORM MOVE-AMOUNTS VARYING I FROM  1  BY 1  UNTIL  I  = 6.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-DUT.
    GO TO CLOSE-FILES.
WRITE-SUB-TOTAL.
    PERFORM MOVE-AMUUNTS VARYING I FROM  3  BY 1  UNTIL  I  = 6.
    MOVE 'EXPENCES COVERED BY' TO DESC.
    MDVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-DUT.
    MOVE SPACES TO DATA-LINE.
    MOVE 'OTHER REVENUE' TO DESC.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR INT-LINE-OUT.
MOVE-SPACES.
    MOVE SPACES TO PRINT-LINE.
PRINT-LINE-OUT.
    WRITE PRINT-LINE BEFORE 1.
    Ai>D 1 TO LINE-CT.
MOVE-ACCUMS.
    MOVE ACCUM (I) TO AMT OF AMOUNTS  (I).
MOVE-AMOUNTS.
    MOVE SUBS (I) TO AMT GF AMOUNTS (I).

                            254

-------
    MOVE ZERO TO SUBS  (I) .
READ-SORT-INPUT.
    READ COST-MATRIX-FILE AT  END
        GO TO READ-SORT-INPUT-END.
    IF MATCH-CDOE-POS1  NOT  =  TO MATCH-POS1
        THEN GO TU READ-SDRT-INPUT.
    RELEASE SORT-INPUT  FRUM CM-REC.
    GO TO READ-SQRT-INPUT .
READ-SOKT-INPUT-END.
    EXI T.
WRITE-SORT-OUTPUT.
    RETURN FILE-SORT  RECORD INTO  INPUT-REG
        AT ENO GO TO  wR ITE-SORT-PUTPUT-ENU
    WRITE INPUT-REC.
    GO TO WRITE-SQRT-OUTPUT.
WRITE-SURT-OUTPUT-END.
    EXI T.
CLOSE-FILES.
    CLOSE   SORTED-FILE.
            CARD-IN,
            COST-MATRiX-FILE,
            FINANCIAL-ACCT-TABFI,
            PRINT-OUT.
E-O-J.
    STOP RUN.
                     255

-------
 PGMNAME=PLV43CCV
SYSIN    DO  *
 ID DIVISION.
 PROGRAM-ID. PLV^SCOV.
 AUTHOR. ACT SYSTEMS INC
         SUITE 200
         807 W MORSE BL.VD
         WINTER PARK, FLA 32789.
 DATE-HRITTEN. JAN 1978.
 DATE-COMPILED.
 REMARKS.    THIS PROGRAM SORTS THE COST MATRIX  FILE  BY
             MATCH CODE AND PRINTS OUT LEVEL  IV  (DELIVERY)
             REPORT.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. IBM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01 IS NEW-PAGE.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
     SELECT CARD-IN
         ASSIGN TO UR-2540R-S-CARDIN
         ACCESS MODE IS SEQUENTIAL.
     SELECT PRINT-OUT
         ASSIGN TO UR-1<+03-S-PRINTOUT
         ACCESS MODE IS SEQUENTIAL.
     SELECT COST-MATRIX-FILE
         ASSIGN TO DA-3330-I-CMFILE
         ACCESS MODE IS SEQUENTIAL
         RECORD KEY IS CM-NUMBER.
     SELECT PRINT-FILE
         ASSIGN TO UT-3330-S-PRINTFI
         ACCESS MODE IS SEQUENTIAL.
     SELECT FINANCIAL-ACCT-TABFI
         ASSIGN TO DA-3330-I-FATABFI
         ACCESS MODE IS RANDOM
         NOMINAL KEY IS FA-NOMINAL
         RECORD KEY IS FA-NUMBER.
     SELECT FILE-SORT
         ASSIGN TO UT-3330-S-FILESORT
         ACCESS MODE IS SEQUENTIAL.
     SELECT SORTED-FILE
         ASSIGN TO UT-3330-S-SORTEDFI
         ACCESS MODE IS SEQUENTIAL.
 DATA DIVISION.
 FILE SECTION.
 FD  CARD-IN
     RECORD CONTAINS 80 CHARACTERS
     LABEL RECORDS ARE OMITTED

                              256

-------
    DATA RFCDRO IS INPUT-CARD.
01  INPUT-CARD.
    05  DATE-IN          PIC X(l8).
    05  TITLE-IN         PIC X ( 24).
    05  FILLER           PIC X(38).
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    05  FILLER           PIC X.
    05  PRINT-DATA       PIC X(132).
FD  COST-MATRIX-FILE
    RECORD CONTAINS so CHARACTERS
    BLOCK CONTAINS 5 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CM-REC .
01  CM-REC.
    05  MATCH-CODE-POS1  PIC X.
    05  FILLER           PIC X(3).
    05  CM-NUMBER        PIC X(10) .
    05  FILLER           PIC X(66).
FD  PRINT-FILE
    BLOCK CONTAINS 6 RECORDS
    RECORD CONTAINS 2<+0 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS PR I NT-LINE-HOLD.
01  PRINT-LINE-HOLD.
    05  DESC-HOLD        PIC X(20) OCCURS 2 TIMES.
    05  AMTS-HOLD        PIC S9(8)V99 OCCURS 20 TIMES
FD  FINANCIAL-ACCT-TABFI
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 58 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS FA-REC.
01  FA-REC.
    05  FA-NUMBER        PIC X( 10) .
    05  FA-NAME          PIC X{20) OCCURS 2 TIMtS.
    05  FILLER           PIC X(8).
SD  FILc-SORT
    RECORD CONTAINS 80 CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    05  S-MATCH-CODE     PIC X(<+).
    05  FILLER           PIC X(16).
    05  FILLER           PIC x<60).
FD  SORTEO-FILE
    RECORD CONTAINS 80 CHARACTERS
    BLOCK CONTAINS 5 RECORDS
    LABEL RECORDS ARE STANDARD

                          257

-------
 01
DATA RECORD
INPUT-REC.
                 IS INPUT-REC
     05
     05
     05
     05
     05
*****
    MATCH-CUDE
    ACCT-NO
    COST-CNTR.
    10  FILLER
    10  CC-POS2
    10  FILLER
    10  CC-POS^
    COST-CAT
    AMTS

  THE ABOVE AMTS
     PIC
     PIC

     PIC
     PIC
     PIC
     PIC
     PIC
     PIC
X(4).
X(10) .

X.
9.
X.
9.
XX.
S9(8)V99
OCCURS 6 TIMES
*
*
*
*****
 WORKING-STORAGE
( 1)
(2)
(3)
m
(5)
(6)
-- CURRE
-- PREVI
-- CURRE
-- BUDGE
-- BUDGE
-- PREVI
 ARE AS FOLLOWS
NT COST AMOUNT
OUS MONTH COST AMOUNT
NT COST AMOUNT YEAR TO DATE  (YTD)
T AMOUNT
T AMOUNT YEAR TO DATE
DUS YEAR COST AMOUNT  (PYC)
            SECTION
77
77
77
77
77
77
77
77
77
77
77
77
77
77
01



01









PAGE-CT
LINE-CT
FA-NOMINAL
I
J
K
L
M
N
0
MATCH-HOLD
MATCH-POS1
MAX-LINE
MINUS-ONE
HEAJ-1.
05 FILLER
05 FILLER
05 FILLER
HEAD-2.
05 FILLER
05 DATE-OUT
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 PAGE-OUT
05 FILLER
05 PAGE-LETTER-
                     OUT
 01  HEAD-3
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
9( .
X(3)
X.
VALUE
VALUE
VALUE







VALUE
VALUE
COMP
V99 VA
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

VALUE

ZERO.
ZERO.
SPACES.







SPACES.
'3« .
VALUE 56
LUE -0.0
SPACES .
'LEVEL
SPACES.
•DATE :
SPACES.
SPACES.












•
1.

IV

t
•


1 DELIVERY
SPACES.
•PAGE :

' - • .


1
•



                                                     REPORT  OF
                                                      COSTS  FOR
                                258

-------
Cl
01
01
01
01
01
05  FILLER
05  TITLE-OUT
05  FILLER
HEAO-4.
05  FILLER
05  FILLER
05  FILLER
HEAU-5.
05  FILLER
05  HEAD-OUT
05  FILLER
DATA-LINE.
05  FILLER
05  DESC
05  FILLER
05
                     PIC  X(55)  VALUE  SPACES.
                     PIC  X(2M  VALUE  SPACES.
                     PIC  X(53)  VALUE  SPACES.

                     PIC  XU9)  VALUE  SPACES.
                     PIC  X(79)  VALUE  '***<«»**<.:
                                DELIVERY
                                                     ***
                                                         * <•<•**
                          PIC  XU)
                                VALUE  SPACES.
                                VALUE  SPACES.
                          PIC  X(<+9)
                          PIC  X(79) .
                          PIC  XU>  VALUE SPACES.
                      PIC  XK>   VALUE  SPACES.
                      PlC  X(20) .
                      PIC  X(19)  VALUE  SPACES.
    AMOUNTS OCCURS  5  TIMES.
    10  FILLER        PIC  X(6).
    10  AMT           PIC  -(8).— .
05  FILLER            PIC  X(4).
ACCUMS.
    05  ACCUM-A OCCURS  4  TIMES.
        10  ACCUM-B OCCURS  5  TIKES.
            15  ACCUM PIC  S9(8)V99.
SUBTOTAL.
05  SUB-A OCCURS <*  TIMES.
    10  SUB-B OCCURS  5  TIMES.
        15  SUBS
HEAU-DATA-HOLD.
05  HEAD-DATA-A.
        FILLER
    10


    10


    10


    10


    10


    10


    10
            FILLER


            FILLER


            FILLFR


            FILLER


            FILLER


            FILLER
                          PIC  S9(8)V99.
PIC X179) VALUE  '	
'	       TRANSMISSION         	
i.	_____ — __ — _i (
PIC X(79) VALUE  '    ZONE  5            ZO
•NE 6            ZONE 7            ZONE  8
1           ZONE  9  '.
PIC X(79) VALUE  '	
•	       DISTRIBUTION         	
• ___	—i
PIC X(79) VALUE  '    ZONE  5            ZO
•NE 6            ZONE 7            ZONE  8
1           ZONE  9  ».
PIC X(79) VALUE  '	
•	          STORAGE           	
i _____________ — —--i
PIC X(79) VALUE  '    BROMLEY         IDA
•SPENCE       OEVOG  PARK

PIC X(79) VALUE  '	

      259

-------
                                    PUMP STATIONS
        10  FILLER       PIC X(79) VALUE  '    COLD  SPRINGS    IDA
                         'SPENCE       DEVOG  PARK         BOONE CN
                         •TY                '•
    05  HEAD-OATA-B REDEFINES HEAD-DATA-A.
        10  HEAD-DATA    PIC X(79) OCCURS  8 TIMES.
01  PAGE-LETTER-HOLD.
    05  PG-LTR-A         PIC XK»  VALUE  'ABCD'.
    05  PG-LTR-B REDEFINES PG-LTR-A.
        10  PAGE-LETTER  PIC X  OCCURS <+  TIMES.
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT  CARD-IN,
                COST-MATRIX-FILE .
                FINANCIAL-ACCT-TABFI ,
        OUTPUT PRINT-OUT,
               PRINT-FILE.
READ-CARD-IN.
    READ CARD-IN AT END
        MOVE  '*** NO DATE/TITLE CARD  **  JOB  ABORTED  *<">' TO
        PRINT-DATA,
        PERFORM PRINT-LINE-OUT,
        GO TO CLOSE-FILES.
    MOVE DATF-IN TO DATE-OUT.
    MOVE TITLE-IN TO TITLE-OUT.
SORT-CM-FILE.
    OPEN OUTPUT SURTEO-FILE.
    SORT FILE-SORT ON ASCENDING KEY
        S-MATCH-CODE
    INPUT PROCEDURE
        READ-SORT-INPUT THRU READ-SLRT-INPUT-END
    OUTPUT PROCEDURE
        WRITE-SORT-OUTPUT THRU kRITE-SORT-OUTPUT-END .
    CLOSE SORTED-FILE.
    OPEN INPUT SORTED-FILE.
ZERO-ACCUMS.
    MOVE 1EROS TO -SUBTOTAL.
       MOVE MINUS-ONE TO SUBS   (3, <* ) SUBS   (3,  5)  SUBS  (4. 1).
HOUSE-KEEP.
    MOVE SPACES TO PRINT-LINE-HOLD.
    MOVE ZEROS TO ACCUMS.
       MOVE MINUS-ONE TO ACCUM  (3, O ACCUM  (3,  5)  ACCUM U, 1).
READ-SORTED-FILt.
    READ SORTED-FILE AT END PERFORM  WRITE-PRI NT-F 1 LE»
    GC TO WklTE-SUBTOTALS.
NEW-MATCH-CODE.
    MOVE MATCH-CODE TO MATCH-HOLD.
    MOVE ACCT-NU TO FA-NOMINAL.
    READ FINANCIAL-ACCT-TABFI  INVALID KEY

                               260

-------
        MOVE SPACES TQ FA-NAME 11), FA-NAME (2).
TOTAL-COST-CNTRS.
    ADD AMIS (1) TO ACCUM (CC-POS2, CC-POS4)
                    SUBS  (CC-POS2, CC-POS4).
    PERFORM READ-SDRTED-FILt.
    IF MATCH-CODE EQUAL TO MATCH-HOLD THEN
        GO TO TUTAL-COST-CNTRS.
WRITE-PRINT-FILE.
    MOVE FA-NAME (1) TO DESC-HOLD  (1).
    MOVE FA-NAME (2) TO DESC-HOLD  (2).
    MOVE 1 TO K.
    PERFORM MOVE-ACCUMS VARYING I  FkDM 1 BY 1 UNTIL I = 5.
    WRITE PRINT-LINE-HOLD.
    PERFORM HOUSE-KEEP.
RETURN-TO-NEW-MATCH-CUDE.
    GO TO NEW-MATCH-CODE.
MOVE-ACCUMS.
    PERFORM MOVE-ACCUMS-A VARYING  L FROM 1 BY 1 UNTIL L = 6,
MOVE-ACCUMS-A.
    MOVE ACCUM  (It L) TO AMTS-HOLD (K).
    ADD 1 TO K.
WRITE-SUBTDTALS.
    WRITE PRINT-LINE-HOLD.
    MOVE 1 TO K.
    PERFORM MOVE-SUBS   VARYING I  FROM 1 BY 1 UNTIL I = 5.
    MOVE 'TOTALS1 TO DESC-HOLO (1).
    MOVE SPACES TO DESC-HOLD  (2).
    WRITE PRINT-LINE-HOLD.
    GO TO HOUSE-KEEP-1.
MOVE-SUBS .
    PERFORM MOVE-SUBS-A VARYING L  FROM 1 BY 1 UNTIL L = 6.
MOVE-SUBS-A.
    MOVE SUBS (I, L) TO AMTS-HOLD  (K).
    ADD 1 TO K.
HOUSE-KEEP-1 .
    MOVE -1 TO  J.
    MOVE 0 TO 0.
    PERFORM START-PRINTING THRU START-PRINTING-END
        VARYING I FROM 1 BY 1- UNTIL I = 5.
    GO TO CLOSE-FILES.
START-PKINTING.
    ADD 2 TO J, 0.
    PERFORM REWIND-PRINT-FILE.
WRITE-HtADINGS.
    ADD 1 TO PAGE-CT.
    MOVE 1 TO LINE-CT.
    MOVE PAGE-CT TO PAGE-OUT.
    MOVE PAGE-LETTFR (I) TO PAGE-LETTER-OUT.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE NEW-PAGE.

                             261

-------
    MOVE HEAD-1 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-2 TO PRINT-DATA.
    PERFORM PRINT-LINE-GUT.
    MOVE HEAD-3 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-OUT.
    MUVE HEAD-4 TO PRINT-DATA.
    PERFORM PRINT-LINE-QUT.
    MOVE HEAD-DATA (J) TO HEAD-OUT.
    MOVE HEAD-5 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-DATA (0) TO HEAD-OUT.
    MOVE HEAD-5 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR 1NT-LINE-OUT.
READ-PRINT-FILE.
    READ PRINT-FILE AT END GO TU START-PRINTING-END
MOVE-VALUES-OUT.
    IF I = 1 THEN
    MOVE 1 TO N.
IF I
IF I
IF I
MOVE
= 2
MOVE
= 3
MOVE
= 4-
MOVE
1 T
THEN
6 TO
THEN
11 TO
THEN
16 TO
0 M.
N
N
N
    PERFORM MOVE-VALUES 5 TIMES.
    MOVE DESC-HOLD (1) TO DESC.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    IF DESC-HOLD (2) NOT = SPACES THEN
        MOVE SPACES TO DATA-LINE
        MUVE DESC-HOLD (2) TO DESC
        MOVE DATA-LINE TO PRINT-DATA
        PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR1NT-LINE-OUT.
    IF LlNE-CT > MAX-LINE THEN
        PERFORM WRITE-HEADINGS .
    PERFORM READ-PRINT-FILE.
    IF PR1NT-LINE-HOLU = SPACES THEN
        PERFORM MOVE-SPACES THRU PR 1 NT-LINE-OUT
        PERFORM READ-PRINT-FILE.
    GO TO MOVE-VALUES-OUT.
START-PRINTING-END.
    EXIT.
MOVE-VALUES.
    IF AMTS-HOLD (N) = MINUS-ONE THEN
        MOVE ZERO TO AMT OF AMOUNTS  (M)

                          262

-------
    ELSE MOVE AMIS-HOLD  (N)  TO  AMI  LF  AMOUNTS  (M)
        ADD 1 TG M.
    ADD 1 TG N.
REWIND-PRINT-FILE .
    MOVE ZERO TO PA&E-CT.
    CLOSE      PRINT-FILE.
    OPEN INPUT PRINT-FILE.
MOVE-SPACES.
    MOVE SPACES TO  PRINT-LINE.
PRINT-LINE-GUT.
    WRITE PRINT-LINE  BEFORE  1.
    ADD 1 TU LINE-CT.
READ-SORT-INPUT.
    REAJ COST-MATRIX-FILE  AT END
        GO  TO REAO-SORT-INPUT-END.
    IF MATCH-CODE-PDS1  NOT  = TO MATCH-POS1
        THEN GO TQ  kEAD-SORT-INPUT.
    RELEASE SORT-INPUT  FRUM  CM-REC.
    GO TO READ-SORT-INPUT.
REAO-SORT-INPUT-END.
    EXI T.
WRITE-SGRT-GUTPUT .
    RETURN  FILE-SORT  RECORD  INTG  INPUT-REC
        AT  END GO  TQ  WRITE-SORT-OUTPUT-END.
    WRITE INPUT-RtC.
    GO TO WRITE-SQRT-OUTPUT.
WRITE-SORT-QUTPUT-END.
    EXI T .
CLOSE-FILES.
    CLOSE   SURIED-FILE,
            CARD-IN,
            CUST-MATRIX-FILE,
            FINANCIAL-ACCT-TABF1.
            PRINT-FILE,
            PRINT-OUT.
E-O-J.
    STOP RUN.
                          263

-------
  PGMNAME=«UASLV43
.SYSIN     00   *
  ID  DIVISION.
  PROGRAM-ID.  WUASLV43.
  AUTHOR.  ACT  SYSTEMS  INC
          SUITE 200
          807  W MORSE  BLVD
          WINTER PARK,  FLA  32789.
  DATE-i«RlTTEN. JAN  1978.
  DATE-COMPILED.
  REMARKS.     THIS  PROGRAM  SORTS THE COST MATRIX FILE BY
              MATCH  CODE  AND PRINTS OUT LEVEL IV (DELIVERY)
              REPORT.
  ENVIRONMENT  DIVISION.
  CONFIGURATION SECTION.
  SOURCE-COMPUTER.  IBM-370.
  OBJECT-COMPUTER.  IBM-370.
  SPECIAL-NAMES.
      C01  IS NEW-PAGE.
  INPUT-OUTPUT  SECTION.
  FILE-CONTROL.
      SELECT CARD-IN
          ASSIGN TO  UR-25^0R-S-CARDIN
          ACCESS MODE  IS  SEQUENTIAL.
      SELECT PRINT-OUT
          ASSIGN TO  UR-1403-S-PRINTDUT
          ACCESS MODE  IS  SEQUENTIAL.
      SELECT COST-MATRIX-FILE
          ASSIGN TO  DA-3330-I-CMFILE
          ACCESS MODE  IS  SEQUENTIAL
          RECORD KEY IS  CM-NUMBER.
      SELECT PRINT-FILE
          ASSIGN TO  UT-3330-S-PRINTFI
          ACCESS MODE  IS  SEQUENTIAL.
      SELECT FINANCIAL-ACCT-TABFI
          ASSIGN TO  DA-3330-I-FATABFI
          ACCESS MODE  IS  RANDOM
          NOMINAL KEY  IS  FA-NOMINAL
          RECORD KEY IS  FA-NUMBER.
      SELECT FILE-SORT
          ASSIGN TO  UT-3330-S-FILfcSORT
          ACCESS MODE  IS  SEQUENTIAL.
      SELECT SDRTED-FILE
          ASSIGN TO  UT-3330-S-SORTEDF1
          ACCESS MODE  IS  SEQUENTIAL.
  DATA  DIVISION.
  FILE  SECTION.
  FD   CARD-IN
      RECORD CONTAINS  80  CHARACTERS
      LABEL RECORDS  ARE  OMITTED

                             264

-------
    DATA RECORD IS  INPUT-CARD.
01  INPUT-CARD.
    05  DATE-IN           PIC  X(18).
    05  TITLE-IN          PIC  X(2M .
    05  FILLER            PIC  X(i8) .
FD  PRINT-OUT
    RECORD CONTAINS  133  CHARACTERS
    LABtL RECORDS ARE OMITTED
    DATA RECORD IS  PRINT-LINE.
01  PRINT-LINE.
    05  FILLER            PIC  X.
    05  PRINT-DATA        PIC  X(132).
FO  COST-MATRIX-FILE
    RECORD CONTAINS  80 CHARACTERS
    BLOCK CONTAINS  5 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS  CM-REC .
01  CM-REC.
    05  MATCH-CODE-POS1   PIC  X.
    05  FILLER            PIC  X(3).
    05  CM-NUMBER         PIC  xiio).
    05  FILLER            PIC  X(66).
FD  PRINT-FILE
    BLOCK CONTAINS  6 RECORDS
    RECORD CONTAINS  220  CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS  PRINT-LINE-HOLD.
01  PRI uT-LINE-HOLD.
    05  DESC-HOLD         PIC  X(20)  OCCURS 2 TIMES.
    05  AMTS-HOLD         PIC  S9(8)V99  OCCURS  18  TIMES
FD  FINANCIAL-ACCT-TABFI
    BLOCK CONTAINS  8 RECORDS
    RECORD CONTAINS  58 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS  FA-REC.
01  FA-REC.
    05  FA-NUMBER         PIC  X(10) .
    05  FA-NAME           PIC  X(20)  OCCURS 2 TIMES.
    05  FILLER            PIC  X(8 ).
SO  FILE-SORT
    RECORD CONTAINS  80 CHARACTERS
    DATA RECORD IS  SORT-INPUT.
01  SORT-INPUT.
    05  S-MATCH-CODE      PIC  XU).
    05  FILLER            PIC  X(16) .
    05  FILLER            PIC  X(oO).
FD  SORTED-FILE
    RECORD CONTAINS  80 CHARACTERS
    BLOCK CONTAINS  5 RECORDS
    LABEL RECORDS ARE STANDARD

                           265

-------
01
DATA RECORD
INPUT-REC.
                IS  INPUT-REC








*
*
*
*
*
*
*
* * * * *
WORK
77
77
77
77
77
77
77
77
77
77
77
77
77
77
01



01









05 MATCH-CODE
05 ACCT-NO
05 COST-CNTR.
10 FILLER
10 CC-PDS2
10 FILLER
10 CC-POS4
05 COST-CAT
05 AMTS
THE ABOVE AMTS ARE
(1) -- CURRENT C
(2) -- PREVIOUS
(3) — CURRENT C
PIC X ( 4 ) •
PIC X( 10) .

PIC X.
PIC 9.
PIC X.
PIC 9.
PIC XX.
PIC S9(8)V99 OCCURS 6 TIMES.
AS FOLLOWS
OST AMOUNT
MONTH COST AMOUNT
OST AMOUNT YEAR TO DATE (YTD)
(4) -- BUDGET AMOUNT
(5) -- BUDGET AMOUNT YEAR TO DATE
(6) -- PREVIOUS

ING-STORAGE SECTION.
PAGE-CT
LINE-CT
FA-NOMINAL
I
J
K
L
M
N
0
MATCH-HLLO
MATCH-POS1
MAX-LINE
MINUS-ONE
HEAU-1.
05 FILLER
05 FILLER
05 FILLER
HEAD-2.
05 FILLER
05 DATE-OUT
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 PAGE-OUT
05 FILLER
05 PAGE-LETTER-OUT
YEAR COST AhDUNT (PYC)


PIC 9(4J VALUE ZERO.
PIC 9(2) VALUE ZERO.
PIC X(10) VALUE SPACES.
PIC 9.
PIC 599.
PIC 99.
PIC 99.
PIC 99.
PIC 99.
PIC 99.
PIC X(4) VALUE SPACES.
PIC X VALUE '3'.
PIC 9(2) COMP VALUE 56.
PIC S9( 8JV99 VALUE -0.01.

PIC X(57) VALUE SPACES.
PIC X(18) VALUE 'LEVEL IV REPORT
PIC X(57) VALUE SPACES.

PIC X(6) VALUE 'DATE: '.
PIC X(18) VALUE SPACES.
PIC X(32) VALUE SPACES.
PIC X(21) VALUE ' DELIVERY COSTS
PIC X(41) VALUE SPACES.
PIC X(6» VALUE 'PAGE! ».
PIC 2(4).
PIC X(3) VALUE ' - • .
PIC X.
                                                            OF
                                                            FOR
01  HEAD-3.
                                266

-------
01
01
01
01
01
 01
05  FILLER
05  TITLE-OUT
05  FILLER
HEAO-4.
05  FILLER
05  FILLER
    05
    05
    FILLER
    FILLER
05  FILLER
HcAD-5.
05  FILLER
05  HEAD-OUT
05  FILLER
DATA-LINE .
05  FILLER
05  OESC
05  FILLER
05  AMOUNTS OCCURS
    10  FILLER
    10  AMT
05  FILLER
ACCUMS.
    05  ACCUM-A  OCCURS
        10  ACCuM-B  OCC
            15   ACCUM  P
SUBTOTAL.
05  SUB-A OCCURS  4  TIME
    10  SUB-B OCCURS  6
P
P
P
P
P

P
P
1
1
P
P
P
P
P
P
P
T
P
P
P
I
I
I
I
I

I
I
*
*
I
I
I
I
I
I
I
I
I
I
I
C
C
C
C
C

C
C
*
*
C
C
C
C
C
C
C
M
C
C
C
X
X
X
X
X

X
X
**
fr*
X
X
X
X
X
X
X
ES
X
-
X
{
(
(
(
{

(
(
*
*
{
(
(
(
(
{
(
•
(
(
(
55
24
53
2)
26

6)
96
& $
£ &
2 >
34
96
2)
4J
20
2)

6)
8)
2 )
)
)
)

)


)
*
*
VA
VA
VA
VA
VA

VA
VA
***
** <•
Lue
LUE
LUE
LUE
LUE

LUE
LUE
**
<• ** !
VALUE
)
)
VA
•
LUt

VALUE
VALUE
)
•

VALUE

•
•
•








SPAC
SPAC
SPAC
SPAC
'CDS
•DNS
SPAC
' <•<• *
D
(•*<•**
SPAC
SPAC

SPAC
SPAC

SPAC




E
E
E
E
T
i
E
S .
S.
S.
S.
CATEGORY DESCRIPTI
•
S.
$$#$$$&$$$$#$$###$£$

*
E
E

E
E

E




E L I V E R Y *
*««r0*»*
-------
                                       DUDLEY  PIKE
05
            •E HWY        KYLES LANE
            •Y FOOT      LAFAYETTE'.
        HEAD-DATA-B REDEFINES HEAD-DATA-A.
            HEAD-DATA    PIC X(96) OCCURS 6 TIMES
                      TURKE
    10
                               VALUE  'ABC1
                            CARD  ** JOB ABORTED  ***•  TO
                            KEY
01  PAGE-LETTER-HOLD.
    05  PG-LTR-A         PIC X(3)
    05  PG-LTR-B REDEFINES PG-LTR-A.
        10  PAGE-LETTER  PIC X  OCCURS 3 TIMES
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT  CARD-IN,
                COST-MATRIX-FILE.
                FINANCIAL-ACCT-TABFI,
        OUTPUT PRINT-OUT.
               PRINT-FILE.
READ-CARD-IN.
    READ CARD-IN AT END
        MOVE '<"** ND DATE/TITLE
        PRINT-DATA,
        PERFORM PRINT-LINE-OUT.
        GO TO CLOSE-FILES.
    MOVE DATE-IN TO DATE-OUT.
    MOVE TITLE-IN TO TITLE-OUT.
SORT-CM-FILE.
    OPEN OUTPUT SQRTEO-FILE.
    SORT FILE-SORT ON ASCENDING
        S-MATCH-CODE
    INPUT PROCEDURE
        READ-SORT-INPUT THRU READ-SORT-INPUT-END
    OUTPUT PROCEDURE
        WRITE-SORT-DUTPUT THRU WRITE-SORT-OUTPUT-END
    CLOSE SDRTEO-FILE.
    OPEN INPUT SORTED-FILE.
ZERCJ-ACCUMS.
    MOVt ZEROS TO SUBTOTAL.
       MOVE MINUS-ONE TO SUBS
                         SUBS
HOUSE-KEEP.
    MOVE SPACES_ TG PR I NT-L I NE-HG LD
    MGVE ZEROS TO ACCUMS.
       MOVE MINUS-ONE TO ACCUM  (1,
                         ACCUM  (?,
READ-SORTED-FILE .
    READ SDRTED-FILE AT END PERFORM WRITE-PRINT-FILE,
    GO TO WRITE-SUBTOTALS .
NEW-MATCH-CODE.
    MOVE MATCH-CODE TO MATCH-HOLD.
    MOVE ACCT-NO TO FA-NOMINAL.
    READ FINANCIAL-ACCT-TABFI  INVALID KEY
        MUVE SPACES TO FA-NAME  11), FA-NAME  (2).
                           (1.
                           U,
                               <*)
SUBS
SUBS
ACCUM
ACCUM
U.
(2.
(1,
(2,
5)
5)
5)
5)
SUBS
SUBS
ACCUM
ACCUM
(1,
(2,
(1,
(2,
6)
6)
6)
6)
                            268

-------
TGTAL-COST-CNTRS .
    ADD AMIS (1) TO ACCUM  (CC-PQS2, CC-POS4)
                    SUBS   (CC-POS2, CC-POS4) .
    PERFORM READ-SDRTED-FILE.
    IF MATCH-CODE EQUAL TO MATCH-HOLD THEN
        GO TO TOTAL-COST-CNTRS.
WRITE-PRINT-FILE .
    MOVE FA-NAME (1) TO DESC-HOLD  (1).
    MOVE FA-NAME (2) TO DESC-HOLD  (2).
    MOVE 1 TO K.
    PERFORM MOVE-ACCUMS VARYING  I  FROM  1 BY  1 UNTIL  I = 5.
    WRITE PRINT-LINE-HOLD.
    PERruRM HOUSE-KEEP.
RETURN-TO-NEK-MATCH-CODE.
    GO TO NEW-MATCH-CODE.
MOVE-ACCUMS.
    PERFORM MOVE-ACCUMS-A  VARYING  L FROM 1 BY 1 UNTIL L =  7
MOVE-ACCUMS-A.
    IF ACCUM (I. L) NOT =  MINUS-ONE THEN
        MOVE ACCUM  (I. L)  TO AMTS-HOLD  (K)
        ADD 1 TLi K.
WRITE-SJRTDTALS.
    WRITE PRINT-LINE-HOLD.
    MOVE 1 TO K.
    PERFORM MOVt-SUBS   VARYING  I  FROM  1 BY  1 UNTIL  I = 5.
    MOVE 'TOTALS' TO OE5C-HOLD  11).
    MOVE SPACES TO  DESC-HOLD  (2).
    WRITE PRINT-LINE-HOLD.
    GO TO HOUSE-KEEP-1.
MOVE-SUBS.
    PERFORM MOVE-SUBS-A VARYING  L  FROM  1 BY  1 UNTIL  L = 7.
MOVE-SUBS-A.
    IF SUBS (I* L)  NOT = MINUS-ONE THEN
        MOVE SUBS  (I. L) TO  AMTS-HOLD  (K)
        ADD 1 TO K.
HOUSE-KEEP-1 .
    MOVE -1 TO  J.
    MOVE 0 TO 0.
    PERFORM START-PRINTING THRU  START-PR INT ING-END
        VARYING I FROM 1 BY  1 UNTIL I  =  4.
    GO TO CLOSE-FILES.
START-PRINTING.
    ADD 2 TU J, 0.
    PERFORM REWINO-PRINT-FILE.
WRITE-HEAUINGS.
    ADD 1 TO PAGE-CT.
    MOVE 1 TO LINE-CT.
    MOVE PAGE-CT TO PAGE-OUT.
    MOVE PAGE-LETTER  (I) TO  PAGE-LETTER-OUT.
    PERFORM MOVE-SPACES.

                             269

-------
    WRITE PRINT-LINE BEFORE NEW-PAGE.
    MOVE HEAO-1 TO PRINT-DATA.
    PERFORM PRINT-LINE-DUT.
    MOVE HEAD-2 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-3 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-L1NE-OUT.
    MOVE HEAD-4 TO PRINT-DATA.
    PERFORM PRINT-LINE-GUT.
    MOVE HEAD-DATA (J) TO HEAD-OUT.
    MOVE HEAD-5 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-DATA (0) TO HEAD-OUT.
    MOVE HEAD-5 TO PRINT-DATA.
    PERFORM PRINT-LINE-DUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-DUT.
READ-PRINT-FILE.
    READ PRINT-FILE AT END GO TO START-PRINTING-END,
MDVE-VALUES-OUT.
    IF I = 1 THEN
    MOVE 1 TO N.
    IF I = 2 THEN
        MOVE 7 TO N.
    IF I = 3 THEN
        MOVE 13 TO N.
    MOVE 1 TO M.
    PERFORM MOVE-VALUES 6 TIMES.
    MOVE DESC-HOLO (1) TO DESC.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    IF DESC-HOLO  (2) NOT - SPACES THEN
        MOVE SPACES TO DATA-LINE
        MOVE DESC-HOLD 12) TO DESC
        MOVE DATA-LINE TO PRINT-DATA
        PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-DUT.
    IF LINE-CT > MAX-LINE THEN
        PERFORM WRITE-HEAUINGS.
    PERFORM READ-PRINT-FILE.
    GO TO MUVE-VALUES-DUT.
START-PRINTING-END.
    EXIT.
MOVE-VALUES.
    MOVE AMTS-HOLD (N) TO AMT OF AMOUNTS  (M>.
    ADD 1 TO N.
    ADD 1 TO M.
REWIND-PRINT-FILE.
    MOVE ZERO TO PAGE-CT.
    CLOSE      PRINT-FILE.

                           270

-------
    OPEN INPUT PRINT-FILE.
MOVE-SPACES.
    MOVt SPACES TO PRINT-LINE.
PRINT-LINE-DUT.
    WRITE PRINT-LINE BEFORE  1.
    ADD 1 TO LINE-CT.
READ-SORT-INPUT.
    READ COST-MATRIX-FILE AT  END
        GO  TO READ-SCRT-INPUT-END.
    IF MATCH-COuE-PDSl NOT  =  TO MATCH-POS1
        THEN GO TO READ-SORT-INPUT.
    RELEASE SORT-INPUT FROM  CM-REC.
    GO TO READ-SORT-INPUT.
READ-SORT-INPUT-FND.
    EXIT.
WRITE-SORT-OUTPUT.
    RETURN  FILE-SORT RECORD  INTL  INPUT-REC
        AT  END GO TO WR1TE-SORT-OUTPUT-END
    WRITE INPUT-REC.
    GO TO WRITE-SORT-OUTPUT.
WRITE-SORT-OUTPUT-END.
    EXIT .
CLOSE-FILES.
    CLOSE   SORTEU-FILE,
            CARD-IN,
            COST-MATRIX-FILE,
            FINANCIAL-ACCT-TABF1
            PRINT-FILE,
            PRINT-OUT.
F-D-J.
    STOP RUN.
                      271

-------
 PGMNAME=WUASLV42
SYSIN    00  *
 ID DIVISION.
 PROGRAM-ID. WUASLV42.
 AUTHOR. ACT SYSTEMS INC
         SUITE 200
         307 W MORSE BLVD
         WINTER PARK, FLA 32789.
 DATE-WRITTEN. JAN 1973.
 DATE-COMPILED.
 REMARKS.    THIS PROGRAM SORTS THE COST  MATRIX  FILE  BY
             MATCH CQDE AND PRINTS OUT LEVEL  IV  (TREATMENT)
             REPORT.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. IBM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01 IS NEW-PAGE.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
     SELECT CARD-IN
         ASSIGN TO UR-2540R-5-CARDIN
         ACCESS MODE IS SEQUENTIAL.
     SELECT PRINT-OUT
         ASSIGN TO UR-1403-S-PRINTOUT
         ACCESS MODE IS SEQUENTIAL.
     SELECT COST-MATRIX-FILE
         ASSIGN TO DA-3330-I-CMF1LE
         ACCESS MODE IS SEQUENTIAL
         RECORD KEY IS CM-NUMBER.
     SELECT FINANCIAL-ACCT-TABFI
         ASSIGN TO DA-3330-I-FATABFI
         ACCESS MODE IS RANDOM
         NOMINAL KEY IS FA-NOMINAL
         RECORD KEY IS FA-NUMBER.
     SELECT FILE-SORT
         ASSIGN TO UT-3330-S-FILESORT
         ACCESS MODE IS SEQUENTIAL.
     SELECT SORTED-F1LE
         ASSIGN TO UT-3330-S-SORTEDF1
         ACCESS MODE IS SEQUENTIAL.
 DATA DIVISION.
 FILE SECTION.
 FD  CARD-IN
     RECORD CONTAINS 80 CHARACTERS
     LABtL RECORDS ARE OMITTED
     DATA RECORD IS INPUT-CARD.
 01  INPUT-CARD.
     05  DATE-IN          PIC X(18) .
                              272

-------
    05  TITLE-IN         PIC X{24) .
    05  FILLER           PIC X(39) .
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    95  FILLER           PIC X.
    05  PRINT-DATA       PIC X(132 ) .
FD  COST-MATRIX-FILE
    RECORD CONTAINS 80 CHARACTERS
    BLOCK CONTAINS 5 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CM-REC .
01  CM-REC.
    05  MATCH-CODfc-POSl  PIC X.
    05  FILLER           PIC X(3).
    05  CM-NUMBER        PIC x(10).
    05  FILLER           PIC X(66) .
FU  FINANCIAL-ACCT-TA6FI
    BLCCK CONTAINS e RECORDS
    RECORD CONTAINS 58 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS FA-REC .
01  FA-REC.
    05  FA-NUMBER        PIC X(10).
    05  FA-NAME          PIC X(20)  LCCURS  2  TIMES.
    05  FILLER           PIC X(8) .
SO  FILE-SORT
    RECORD CONTAINS 80 CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SORT-INPUT.
    05  S-MATCH-CUDE     PIC X(4).
    05  FILLER           PIC X( 16) .
    05  FILLER           PIC X(60).
FD  SORTED-FILE
    RECORD CONTAINS eo CHARACTERS
    BLOCK CONTAINS 5 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-REC.
01  INPUT-REC.
    05  MATCH-CODE       PIC X(4).
    05  ACCT-NO          PIC X-( 10) .
    05  COST-CNTR.
        10  FILLER       PIC X.
        10  CC-POS2      PIC 9.
        10  FILLER       PIC XX.
    05  COST-CAT         PIC XX.
    05  AMTS             PIC S918JV99  OCCURS 6 TIMES
                           273

-------
*
•\f
••'f
*
if
*
*
THE
(
(
(
(
(
(
ABO
1
2
3
4
5
6
)
)
)
)
)
)
-
-
-
-
-
-
VE
-
-
-
-
-
-
                AMIS ARE AS FOLLOWS
               CURRENT COST AMOUNT
               PREVIOUS MONTH COST AMOUNT
               CURRENT COST AMOUNT YEAR  TO  DATE  (YTDJ
               BUDGET AMOUNT
               BUDGET AMOUNT YEAR TC DATE
               PREVIOUS YEAR COST AMOUNT  (PYC)
WORKING-STORAGE SECTION.
77  PAGc-CT
77  LINE-CT
77  FA-NOMINAL
77  I
77  MATCH-HOLD
77  MATCH-POS1
77  MAX-LINE
01  HEAD-1.
    05  FILLER
    05  FILLER
    05  FILLER
01  HEAD-2.
    05  FILLER
    05  DATE-OUT
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  PAGE-OUT
01  HEAD-3.
    05  FILLER
    05  TITLE-OUT
    05  FILLER
01  HEAu-4.
    05  FILLER
    05  FILLER

    05  FILLER
    05  FILLER

    05  FILLER
01  HEAO-5.
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
01  HEAD-6.
    05  FILLER
    05  FILLER
    05  FILLER
P
p
I
I
PI
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p

p
p

p
p
p
p
p
p
p
p
p
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I

c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

c
c

1C
I
I
I
I
I
I
I
I
c
c
c
c
c
c
c
c
91
91
X(
9 ,
XI
X
91
x<
XI
XI
XI
XI
XI
XI
XI
XI
Zl
XI
X
Xi
Xi
X'

X
Xi

Xi
X
X
X
X
X
X
X
X
!4»
[2 )
;io>
k
4)

:2>
57)
: is)
157)
!6)
; is)
132)
!21)
145)
(6)
!4>.
155)
(24)
(53)
127)
(26)

(18)
(39)

(22)
(71)
( 12)
(13)
(14)
(22)
(75)
(5)
(20)
VALUE
VALUE
VALUE

VALUE
VALUE
COMP
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

VALUE
VALUE
VALUE
VALUE
VALUE

VALUE
VALUE
1 N
VALUE
VALUE
VALUE
VALUE
VALUc
VALUE
VALUE
VALUE
VALUE
ZERO.
ZERO.
SPACES.

SPACES.
•2' .
VALUE 56.
SPACES.
•LEVEL IV REPORT OF • .
SPACES.
•DATE: '.
SPACES.
SPACES.
' TREATMENT COSTS FOR '.
SPACES.
•PAGE: ».

SPACES .
SPACES.
SPACES.
SPACES.
•COST CATEGORY DESCRIPTI
•ONS1 .
SPACES.
********* T R E A T M E
T <.<.<•$*$&»*!.
SPACES.
SPACES.
•PURIFICATION1 .
SPACES.
•PLANT OVERHEAD1 .
SPACES.
SPACES.
•RIVER • .
SPACES.
                                274

-------
01
    05  FILLER
    05  FILLER
    DATA-LINE.
PIC
PIC
X(5 )
XI27
                                    VALUE
                                    VALUE
'RIVER1
SPACES .
                          PIC  S9(8)V99  OCCURS  2  TIMES

                          PIC  Sg(3)V99  OCCURS  2  TIMES
                                          JOB  ABORTED  ***'  TO
    05  FILLER           PIC  XCsOi
    05  DESC             PIC  X(20
    05  FILLER           PIC  X(6)
    05  AMOUNTS OCCURS 2 TIMES.
        10  FILLER       PIC  X(1V
        10  AMT          PIC  - (8)
    05  FILLER           PIC  X(26
01  ACCUMS.
    05  ACCUM
01  SUBTOTALS.
    05  SUBS
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT  CARD-IN,
                COST-MATRIX-FILE .
                FINANCIAL-ACCT-TABFI
         OUTPUT PRINT-OUT.
READ-CARD-IN.
    READ CAKD-IN AT END
        MOVE  '*** NO JATE/TITLE  CARD
        PRINT-DATA,
        PERFORM PRINT-LINE-OUT,
        GO TO CLOSE-FILES.
    MOVE DATE-IN TO DATE-OUT.
    MOVt TITLE-IN TO TITLE-OUT.
SORT-CM-FILE.
    OPEN OUTPUT SORTED-FILE.
    SORT FILE-SORT ON  ASCENDING  KEY
        .S-MATCH-CuDE
    INPUT PROCEDURE
        READ-SORT-INPUT  THRU  READ-SORT-INPUT-END
    OUTPUT PROCEDURE
        WRITE-SORT-OUTPUT  THRU  URITE-SORT-OUTPUT-ENO
    CLOSE SURTEO-FILE.
    OPEN  INPUT SORTFO-FILE.
WRITE-HEAOINGS.
    MOVE ZERO TO LINE-CT.
    ADD 1 TO  PA&E-CT.
    MOVE PA&E-CT TO PAGE-GUT.
    PERFORM MQVt-SPACES .
    WRITE PRINT-LINE BEFORE  NEW-PAGE.
    MOVE HEAD-1 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT .
    MOVE HEAD-2 TO PRINT-DATA.
    PERFORM PRINT-LINE-QUT.
    MOVE HEAD-3 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
                            275

-------
    PERFORM MOVE-SPACES THRU PR INT-LINE-OUT.
    MOVE HEAD-4 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-5 TO PRINT-DATA.
    PERFORM PRINT-LINE-DUT.
    MOVE HEAD-6 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR1NT-LINE-DUT.
ZERO-ACCUMS.
    MOVE ZEROS TO SUBTOTALS.
HOUSE-KEEP.
    MOVE SPACES TO DATA-LINE.
    MOVE ZEROS TO ACCUMS.
READ-SORTED-FILE.
    READ SORTED-FILE AT END PERFORM WRITE-LINE-OUT,
    GO TO WRITE-SUBTOTALS.
NEW-MATCH-CODE.
    MOVE MATCH-CODE TO MATCH-HOLD.
    MOVE ACCT-NO TO FA-NOMINAt.
    READ FINANCIAL-ACCT-TABFI INVALID  KEY
        MOVE SPACES TO FA-NAME (1), FA-NAME (2).
TOTAL-COST-CNTRS.
    ADD AMTS (1) TO ACCUM (CC-PCS2), SUBS (CC-PQ52).
    PERFORM READ-SORTED-FILE.
    IF MATCH-CODE EQUAL TO MATCH-HOLD  THEN
        GO TO TOTAL-COST-CNTRS.
WRITE-LIME-DUT.
    MOVE FA-NAME (1) TO DESC.
    PERFORM MOVE-ACCUMS VARYING I FROM 1 BY 1  UNTIL  I  =  3.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    IF FA-NAME  (2) NOT EQUAL TO SPACES THEN
        MOVE SPACES TO DATA-LINE.
        MOVE FA-NAME (2) TO DESC,
        MOVE DATA-LINE TQ PRINT-DATA,
        PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR I NT-LINE-OUT .
    PERFORM HOUSE-KEEP.
CHECK-FOR-NEW-HEADING.
    IF LINE-CT NOT < MAX-LINE THEN
        PERFORM WRITE-HEAOINGS.
    GO TO NEW-MATCH-CODE.
WRITE-SUBTOTALS.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT 2 TIMES.
    PERFORM HOUSE-KEEP.
    MOVE 'TOTALS' TO DESC.
    PERFORM MOVE-AMOUNTS VARYING  I FROM  1 BY  1  UNTIL  I  = 3.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.

                            276

-------
    GO TO CLOSE-FILES.
MOVE-SPACES.
    MOVE SPACES TO PRINT-LINE.
PRINT-LINE-OUT.
    WRITE PRINT-LINE BEFORE 1.
    ADD 1 TD LINE-CT.
MOVE-ACCUMS.
    MOVE ACCUM ( I ) TO ART OF AMOUNTS (I).
MOVE-AMOUNTS.
    MOVE SUBS  (I) TO AMT OF AMOUNTS (I).
READ-SORT-INPUT.
    READ COST-MATRIX-FILE AT END
        GO TO  REAO-SORT-INPUT-END.
    IF MATCH-CODE-POS1 NOT = TO MATCH-POS1
        THEN GO TO RFAD-SORT-INPUT.
    RELEASE SORT-INPUT FROM Cn-REC.
    GO TO READ-SORT-INPUT.
REAO-SORT-INPUT-END.
    EXIT.
WRITE-SURT-OUTPUT.
    RETURN FILE-SORT RECORD INTO INPUT-REC
        AT END GO TO wRITE-SORT-OUTPUT-END.
    WRITE INPUT-REC.
    GO TO WRITE-SORT-OUTPUT.
WR I TE-SORT-OUTPUT-END.
    EXIT.
CLOSE-FILES.
    CLOSE   SURTED-FILE,
            CARD-IN,
            COST-MATRIX-FILE,
            FINANCIAL-ACCT-TABFI.
            PRINT-OUT.
E-O-J.
    STOP RUN.
                        277

-------
  PGMNAME=WUASLV41
.SYSIN     DO   *
  ID  DIVISION.
  PROGRAM-ID.  WUA6LV41.
  AUTHOR.  ACT  SYSTEMS INC
          SUITE  200
          807  W  MORSE BLVD
          WINTER PARK,  FLA 32789.
  DATE-WRITTEN.  JAN 1978.
  DATE-COMPILED-
  REMARKS.    THIS  PROGRAM SORTS THE COST MATRIX FILE  BY
              MATCH CODE AND PRINTS OUT LEVEL IV (ACQUISITION)
              REPORT.
  ENVIRONMENT  DIVISION.
  CONFIGURATION  SECTION.
  SOURCE-COMPUTER.  IBM-370.
  OBJECT-COMPUTER.  IBM-370.
  SPECIAL-NAMES.
      CGI  IS  NEW-PAGE.
  INPUT-OUTPUT  SECTION.
  FILE-CONTROL.
      SELECT  CARD-IN
          ASSIGN TO UR-2540R-S-CARD1N
          ACCESS MODE IS SEQUENTIAL.
      SELECT  PRINT-OUT
          ASSIGN TO UR-K03-S-PRINTDUT
          ACCESS MODE IS SEQUENTIAL.
      SELECT  COST-MATRIX-FILE
          ASSIGN TO DA-3330-I-CMFILE
          ACCESS MODE IS SEQUENTIAL
          RECORD KEY IS  CM-NUMBER.
      SELECT  FINANCIAL-ACCT-TABFI
          ASSIGN TO DA-3330-I-FATABFI
          ACCESS MODE IS RANDOM
          NOMINAL KEY IS FA-NOMINAL
          RECORD KEY IS  FA-NUMBER.
      SELECT  FILE-SORT
          ASSIGN TO UT-3330-S-FILESORT
          ACCESS MODE IS SEQUENTIAL.
      SELECT  SORTED-FILE
          ASSIGN TO UT-3330-S-SORTEDFI
          ACCESS MODE IS SEQUENTIAL.
  DATA DIVISION.
  FILE SECTION.
  FD  CARD-IN
      RECORD  CONTAINS 80 CHARACTERS
      LABEL RECORDS ARE  OMITTED
      DATA RECORD IS INPUT-CARD.
  01   INPUT-CARD.
      05  DATE-IN          PIC X(18) .

                              278

-------
    05  TITLE-IN         PIC X(24).
    05  FILLER           PIC X(38).
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    05  FILLER           PIC X.
    05  PRINT-DATA       PIC X(132).
FD  COST-MATRIX-FILE
    RECORD CONTAINS 80 CHARACTERS
    BLOCK CONTAINS 5 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CM-REC .
01  CM-REC.
    05  MATCH-CQDE-PDS1  PIC X.
    05  FILLER           PIC xi 3) .
    05  CM-NUMBER        PIC X( 10) .
    05  FILLER           PIC X(66) .
FD  FINANCIAL-ACCT-TABFI
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 58 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS FA-REC.
01  FA-REC.
    05  FA-NUMBER        PIC X( 10) .
    05  FA-NAME          PIC X(20) OCCURS  2  TIMES.
    05  FILLER           PIC X(8).
SO  FILE-SORT
    RECORD CONTAINS 80 CHARACTERS
    DATA RECORD IS SORT-INPUT.
01  SGRT-INPUT.
    05  S-MATCH-CODE     PIC X(^).
    05  FILLER           PIC x( i6> .
    05  FILLER           PIC x(eo> .
FD  SORTED-FILE
    RECORD CONTAINS 80 CHARACTERS
    BLOCK CONTAINS 5 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS INPUT-REC.
01  INPUT-REC.
    05  MATCH-CODE       PIC X(4).
    05  ACCT-NO          PIC X{ 10) .
    05  COST-CNTR.
        10   FILLER       PIC X.
        10   CC-POS2      PIC 9.
        10   FILLER       PIC XX.
    05  COST-CAT         PIC XX.
    05  AMTS            PIC S9(8)V99 OCCURS 6 TIMES
                            279

-------
* THE ABOVE AMTS ARE AS FOLLOWS
* (1) -- CURRENT COST AMOUNT
„ (2) -- PREVIOUS MONTH COST AMOUNT
* j3) .. CURRENT COST AMOUNT YEAR TO DATE (YTO)
* (4) -- BUDGET AMOUNT
* (5) -- BUDGET AMOUNT YEAR TO DATE
* (6) -- PREVIOUS YEAR COST AMOUNT (PYC)
WORKING-STORAGE SECTION.
77 PAGE-CT
77 LINE-CT
77 FA-NOMINAL
77 I
77 MATCH-HOLD
77 MATCH-POS1
77 MAX-LINE
01 HEAD-1.
05 FILLER
05 FILLER
05 FILLER
01 HEAD-2.
05 FILLER
05 DATE-OUT
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 PAGE-OUT
01 HEAO-3.
05 FILLER
05 TITLE-OUT
05 FILLER
01 HEAD-4.
05 FILLER
05 FILLER
-
05 FILLER
05 FILLER
—
-
-
05 FILLER
01 HEAD-5.
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
PIC
PIC
PIC
PIC
PIC
PIC
PIC

PIC
PIC
PIC

PIC
PIC
PIC
PIC
PIC
PIC
PIC

PIC
PIC
PIC

PIC
PIC

PIC
PIC



PIC

PIC
PIC
PIC
PIC
PIC
PIC
PIC
9i
91
XI
9,
Xi
X
91

XI
XI
X!

XI
XI
x<
XI
XI
XI
Zl

XI
Xi
XI

XI
Xi

X
XI



X

Xi
Xi
Xi
XI
X
Xi
X
(4)
12)
I 10)
»
[4)

12}

157)
(18)
157)

!6>
: is)
:32)
121)
145)
16)
(4).

[55)
(24)
[53)

15)
126)

(14)
[82)



(5)

(49)
15)
( 14)
[12)
(11)
(12)
(9 )
VALUE
VALUE
VALUE

VALUE
VALUE
COMP

VALUE
VALUE
VALUE

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE


VALUE
VALUE
VALUE

VALUE
VALUE

VALUE
VALUE



VALUE

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
ZERO.
ZERO.
SPACES.

SPACES.
•I1 .
VALUE 56.

SPACES.
•LEVEL IV REPORT OF1.
SPACES.

•DATE: '.
SPACES.
SPACES.
'ACQUISITION COSTS FOR1 .
SPACES.
•PAGE: •.


SPACES.
SPACES.
SPACES.

SPACES.
•COST CATEGORY DESCRIPTI
•ONS« .
SPACES.
i »* ft*** s* ***** ** *»#* <.*<• *
•** A C Q U I S I T
'ION $$$**<.*$**$*«•
I #«###$####$## 1
SPACES.

SPACES.
•RIVER1 .
SPACES.
•TRANSMISSION' .
SPACES.
•PUMP STATION1.
SPACES.
280

-------
    05  FILLER           PIC X(15) VALUE 'PURCHASED WATER'.
    35  FILLER           PIC X(5)  VALUE SPACES.
01  DATA-LINE.
    05  FILLER           Pic X(8).
    05  DfcSC             PIC X(20) .
    05  FILLER           PIC XKJ.
    05  AMOUNTS OCCURS 4 TIMES.
        10  FILLER       PIC X(12).
        10  AMT          PIC -(8).--.
    05  FILLER           PIC X(8).
01  ACCUMS.
    05  ACCUM            PIC S9(8)V99 OCCURS <* TIMES.
01  SUBTOTALS.
    05  SUBS             PIC S9(8)V99 OCCURS 4 TIMES.
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT  CARD-IN,
                COST-MATRIX-FILE ,
                FINANCIAL-ACCT-TABFI,
         OUTPUT PRINT-OUT.
REAO-CARO-IN.
    READ CARD-IN AT END
        MOVE  '<">* NO DATE/TITLE  CARD  ** JOB ABORTED ***' TO
        PRINT-DATA,
        PERFORM PRINT-LINE-OUT,
        GO TO CLOSE-FILES.
    MOVE DATE-IN TO DATE-OUT.
    MOVE TITLE-IN TO TITLE-OUT.
SORT-CM-FILE.
    OPEN OUTPUT SORTED-FILE.
    SORT FILE-SORT ON ASCENDING  KEY
        S-MATCH-CODE
    INPUT PROCEDURE
        READ-SORT-INPUT THRU READ-SORT-INPUT-END
    OUTPUT PROCEDURE
        WRITE-SORT-OUTPUT THRU WRITE-SORT-OUTPUT-END.
    CLOSE SORTED-FILE.
    OPEN INPUT SORTED-FILE.
WRITE-HEADINGS.
    MOVE ZERO TO LlNE-CT.
    ADD 1 TO  PAGE-CT.
    MOVE PAGE-CT TO PAGE-OUT.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE NEW-PAGt.
    MOVE HEAD-1 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-2 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-3 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.

                           281

-------
    PERFORM MOVb-SPACES THRU PR1NT-LINE-OUT.
    MOVE HEAD-4 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAO-5 TQ PRINT-OATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR1NT-LINE-OUT.
ZERO-ACCUMS.
    MOVE ZEROS TO SUBTOTALS.
HOUSE-KfcEP-
    MOVE SPACES TO DATA-LINE.
    MOVE ZEROS TO ACCUMS.
READ-SORTED-FILE.
    READ SORTED-F1LE AT END PERFORM WRITE-LINE-OUT ,
    GO TO WRITE-SUBTOTALS.
NEW-MATCH-CODE.
    MOVfc MATCH-CODE TO MATCH-HOLD.
    MOVE ACCT-NO TO FA-NOMINAL.
    READ FINANCIAL-ACCT-TABFI  INVALID  KEY
        MOVE SPACES TO FA-NAME (1), FA-NAME (2).
TLTAL-COST-CNTRS.
    ADD AMTS (1) TO ACCUM  (CC-POS2), SUBS  (CC-POS2).
    PERFORM REAO-SORTED-FILE.
    IF MATCH-CODE EQUAL TO MATCH-HOLD  THEN
        GO TO TUTAL-COST-CNTRS.
WRITE-LINE-DUT.
    MOVE FA-NAME (1) TO DESC.
    PERFORM MOVE-ACCUMS VARYING I FROM 1 BY 1 UNTIL  I  =  5.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    IF FA-NAME  (2) NOT EQUAL TO SPACES THEN
        MOVE SPACES TO DATA-LINE,
        MOVE FA-NAME (2) TO DESC,
        MOVE DATA-LINE TO  PRINT-DATA,
        PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR 1 NT-LINE-OUT .
    PERFORM HOUSE-KEEP.
CHECK-FOR-NEW-HEADING.
    IF LINE-CT NOT < MAX-LINE  THEN
        PERFORM WRITE-HEADINGS.
    GO TO NEW-MATCH-CODE.
WRITE-SU6TOTALS.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT 2 TIMES.
    PERFORM HOUSE-KEEP.
    MOVE  'TOTALS1 TO DESC.
    PERFORM MOVE-AMOUNTS VARYING  I  FROM  1  BY  1  UNTIL  I = 5
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    GO TO CLOSE-FILES.
MOVE-SPACES.

                           282

-------
    MOVE SPACES TO PRINT-LINE.
PRINT-LINE-OUT .
    WRITE PRINT-LINE BEFORE 1.
    ADD 1 TO LINE-CT.
MGVE-ACCUMS.
    MOVE ACCUM (I) TO AMT OF AMOUNTS  (I).
MOVE-AMOUNTS.
    MOVE SUBS (1) TO AMT OF AMOUNTS  (I).
REAU-SORT-INPUT.
    READ COST-MATRIX-FILE AT END
        GO TO READ-SORT-INPUT-END.
    IF MATCH-COOE-PDS1 NOT = TO MATCH-POSl
        THEN GO TO KEAD-SLRT-INPUT.
    RELEASE SORT-INPUT FROM CM-REC.
    GO  TO READ-SORT-INPUT.
REAO-SORT-INPUT-END.
    EXIT.
WRITE-SORT-OUTPUT.
    RETURN FILE-SORT RECORD INTO  INPUT-REC
        AT END GC TO WRITE-SORT-OUTPUT-ENO
    WRITF INPUT-REC.
    GO  TO WR ITE-SORT-QUTPUT.
^'RITE-SORT-OUTPUT-END.
    EXIT.
CLOSE-FILES.
    CLOSE   SORTED-FILE,
            CARD-IN,
            COST-MATRIX-FILE.
            FINANCIAL-ACCT-TABFI,
            PRINT-OUT.
E-O-J.
    STOP RUN.
                           283

-------
     PGMNAME=fcUASPLV3
.SYS1N     DD   *
  10  DIVISION.
  PROGRAM-ID.  WUASPLV3.
  AUTHOR.  ACT  SYSTEMS,  INC
          SUITE  200
          807  W  MORSE BLVD
          WINTER  PARK,  FL 32789.
  OATE-wRITTEN.   NOV  16,  1977.
  DATE-COHPILED.  NOV  18,  1977.
  REMARKS.     THIS PROGRAM READS  THE COST  MATRIX  FILE,
              SUMS ALL  TOTALS AND  PRODUCES  A  LEVEL  III
              REPORT.
  ENVIRONMENT  DIVISION.
  CONFIGURATION  SECTION.
  SOURCE-COMPUTER. IBM-370.
  OBJECT-COMPUTER. IBM-370.
  SPECIAL-NAMES.
     C01  IS NEW-PAGE.
  INPUT-OUTPUT SECTION.
  FILE-CONTROL.
     SELECT COST-MATRIX-FILE
          ASSIGN  TO DA-3330-I-CMFILE
          ACCESS  MODE IS  SEQUENTIAL
          RECORD  KEY  IS CM-NUMBER.
     SELECT PRINTER
          ASSIGN  TO UR-1403-S-PRINTGUT
          ACCESS  MODE IS  SEQUENTIAL.
     SELECT READER
          ASSIGN  TO UR-2540R-S-CAROIN
          ACCESS  MODE IS  SEQUENTIAL.
  DATA  DIVISION.
  FILE  SECTION.
  FD  COST-MATRIX-FILE
     RECORD CONTAINS 80  CHARACTERS
     BLOCK CONTAINS  5  RECORDS
     LABEL RECORDS ARE STANDARD
     DATA RECORD IS  INPUT-REC.
  01  INPUT-REC.
     05   MATCH-CODE       PIC 9(4).
     05   CM-NUMBER.
          10   ACCT-NO      PIC X<10) .
          10   COST-CNTR.
              15   CC-POSl  PIC 9.
              15   FILLER   PIC 999.
          10   CUST-CAT     PIC 99.
     05   AMTS             PIC S9(8)V99  OCCURS  6  TIMES
  FD  READER
     RECORD CONTAINS 80  CHARACTERS
     LABEL RECORDS ARE OMITTED

                            284

-------
                IS CARD-IN.
    DATA RECORD
01  CARu-IN.
    05  DATE-IN          PIC X( 18) .
    05  TITLE-IN         PIC X(2M.
    05  PERIDD-IN        PIC X(7).
    05  FILLER           PIC X(31) .
FD  PRINTER
    RECORD CONTAINS  133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PR INTER-JATA.
01  PRINTER-DATA.
    02  FILLER           PIC X.
    02  PRINT-LINE       PIC X(132 )
WDRKING-5TORAGE SECTION.
77
77
77
77
77
77
77
77
01
01
01
01
01
01
01
    PER
    CAT
    I
    J
    K
PIC 9 COMP VALUE 0.
PIC 99 COMP VALUE 0,
PIC 9 COMP VALUE 0.
PIC 99 COMP VALUE 0
PIC 99 COMP VALUE 0,
PIC 9  COMP VALUt 0.
PIC X(10).
                         LINE-TOTAL-I PIC S9(8)V99
    LINE-TOTAL-1
    LINE-TOTAL REDEFINES
    ACCUM-MAT.
    05  PERIOD-1 OCCURS 2  TIMES.
        10  CATEGORY-1 OCCURS  12  TIMES.
            15  FUNCTION-1  OCCURS  6  TIMES.
              2C  AMOUNT-1  PIC  XUO).
    ACCUM-MATRIX REDEFINES  ACCUM-MAT.
    05  PERIOD OCCURS 2 TIMES.
        10  CATEGORY  OCCURS  12  TIMES.
            15  FUNCTION   OCCURS  6 TIMES.
              2C  AMOUNT  PIC  S9(8)V99.
    SUBS-1.
    05  SUB-TOTALS-1 OCCURS  2  TIMES.
        10  SUB-TOTAL-1 OCCURS  8  TIMES  PIC
    SUBS REDEFINES SUBS-1.
    05  SUB-TOTALS OCCURS  2  TIMES.
        10  SUB-TOTAL OCCURS  3  TIMES  PIC
    GRAND-1.
    05  GRAND-TOTALS-1 OCCURS  2' TIMES.
        10  GRAND-TOTAL-1  OCCURS  6 TIMES
    GRAND REDEFINES GRAND-1.
    05  GRAND-TOTALS OCCURS  2  TIMES.
        10  GRAND-TOTAL OCCURS  8  TIMES  PIC
    CATEGORY-TITLES.
    05  TITLES1.
        10  TLl           PIC  X(108)  VALUE
                                           X ( 10)
                                         S9(8)V99,
                                         PIC X(10)
                                           S9(8)V99.
                                               1    COST CATEGORY
                                               'PAYROLL COST:
                                               '    MANAGEMENT  AND
                                               '    SUPERVISION
                               285

-------
01
01
01
01
        10  TL2
PIC XU08) VALUE
       OPERATION
     LABOR         '
       MAINTENANCE
       OTHER
       TOTAL
       BENEFITS
       TOTAL PAYROLL
     COST          ',
        10  TL3
PIC XU08) VALUE
        10  TL4
PIC X(72)   VALUE
05
HEAD
02
02
02

02
HEAD
02
02
02
02
02
02
HEAD
02
02
02
HEAD
02
02
02
02
02
02
02
02
02
02
02
02
02
T
I
ITLE
NG-1
S REDEFINES T
PERIOD-UUT
F
F

F
I
F
ILLE
ILLE

ILLE
NG-2
ILLE
OATE-
F
F
F
ILLE
ILLE
ILLE
R
R

R
.
R
OUT
R
R
R
PAGE-OUT
1
F
L
F
I
F
F
F
F
F
F
F
F
F
F
F
F
F
NG-3
ILLE
OCAT
.
R
ION-OUT
ILLER
NG-4
ILLE
ILLE
ILLE
ILLE
ILLE
ILLE
ILLE
ILLE
ILLE
ILLE
ILLE
ILLE
ILLE
.
R
R
R
R
R
R
R
R
R
R
R
R
R
P
P
P

P

P
P
P
P
P
P

P
P
P

P
P
P
P
P
P
P
P
P
P
P
P
P
I
I
I
I

I

I
I
I
I
I
I

I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
TLE
C
C
C

C

C
C
C
C
C
C

C
C
C

C
C
C
C
C
C
C
C
C
C
C
C
C
X
X
X

X

X
X
X
X
X
X

X
X
X

X
X
SI
( 7 y ,
(45)
(26)

(54

(9 J
(20
(34
(3)
(54
(12

(52
( 25
(55

(18
(11
XX
X
X
X
X
X
X
X
X
X
X
(11
(3)
(9
(5
(6
(5
(7
(6
(8
(8
OCCURS

VALUE
VALUE
•LEVE
VALUE

VALUE
VALUE
VALUE
VALUE
1 VALUE
> VALUE

VALUE
( VALUE
) VALUE

) VALUE
> VALUE
VALUE
) VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
22 TIMES PIC

SPACES

L III
SPACES

•ENDING
SPACES
SPACES
•FOR' .
SPACES
•PAGE

SPACES
SPACES
SPACES

SPACES
•FUNCT
SPACES
'ACQUI
SPACES

•

SUMMARY
•

: '.
•
•

•
1 OF 2

•
•
•

•
ION: '
•
SITION'
•
•TREATMENT1 .
SPACES
•
'DELIVERY ' .
SPACES
•SUPPOR
SPACES.
•
T ' .

•INTEREST' .
SPACES
•
       CHEMICALS
       POWER
       MISCELLANEOUS
  •TOTAL  PAYROLL AND
•DEPRECIATION       ».
  'TOTAL
  •INTEREST
  •TAXES
•OTHER  DIRECT  COSTS',
          X( 18) .
                                                       OF COST1
                               286

-------
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
01  HEAOING-5.
    02  FILLER
    02  FILLER
    02  FILLER
    02  FILLER
01  DATA-LINE.
    05  TITLE-OUT
    05  FILLER
    05  PERIODS
    os  AMOUNTS-OUT
PROCEDURE DIVISION.
OPEN-FILES.
    OPEN INPUT COST-MATRIX-FILE,
         OUTPUT PRINTER.
READ-CARD-IN.
    READ READER AT END MOVE
        TO PRINT-LINE
        PERFORM PRINT-LINE-OUT
        GO TO CLOSE-FILES.
    MOVE DATE-IN TO DATE-OUT.
    MOVE TITLE-IN TO LOCATION-OUT
    MOVE PERIOD-IN TO PERIOD-OUT.
CLOSE-READER.
    CLOSE READER.
HOUSEKEEPING.
    MOVE SPACES TO
P
p
p
p
p
p
p
p
p
p
p
p
p
D
I
I
I
I
I
I
I
I
I
I
I
I
I
T
C
c
C
c
c
c
c
c
c
c
c
c
c
r
X
X
X
X
X
(
(
(
(
(
5
6
5
8
5
)
)
XX
X
X
X
X
X
X
X

(
(
{
(
(
(
(

7
8
4
1
1
3
7

2)
>
2)
0)
8)
)
)

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

'TOTA
SPAC
'TAXE
SPACE
L
E
S
S
'TOTAL
SPAC
SPAC
'SERV
SPAC
E
E
I
E
S
1
1
S
S
c
S
'WITH
SPAC
SPAC
SPAC
QO nr
E
E
E
S
S
S
•
•
•
•
•
•
ES' .
•
TAXES '
•
•
•
rllD a Q T
                       TIMES
    READER
      NO DATE CARD
  LlNE-TOTAL-1,  GRAND-1,  SUBS-1
 END
   OR  (CC-POS1  <  1  OR  >  6)  THEN
                   ACCUM-MAT.
                   DATA-LINE.
TGTAL-UP-MATRIX.
    READ COST-MATRIX-FILE AT
        GO TO WRITE-HEADINGS.
    IF  (COST-CAT < 1 OR > 12)
        GO TO TOTAL-UP-MATRIX.
    MOVE 1 TCX I , J.
    PERFORM ADO-AMOUNTS 2 TIMES.
    GO TO TOTAL-UP-MATRIX.
ADO-AMOUNTS.
    IF AMOUNT-1  (I, COST-CAT, CC-POS1) = SPACES THEN
        MOVE ZERO TO AMOUNT (I, COST-CAT, CC-POS1).
    ADD AMTS (J) TO AMOUNT (I, COST-CAT, CC-POS1).
    ADD 1 TO I.
    ADD 2 TG J.
WRITE-HEADINGS.
    PERFORM MOVE-SPACES.
    WRITE PRINTER-DATA BEFORE NEW-PAGE.
287

-------
    MOVE HEADING-1 TD PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE HEADING-2 TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE HEADING-3 TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR1NT-LINE-OUT.
    MOVE HEADING-** TD PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE HEADING'S TO PRINT-LINE.
    PERFORM PRINT-LINE-DUT.
    PERFORM MOVE-SPACES THRU PR1NT-LINE-OUT.
    MOVE TITLES (1) TO TITLE-OUT.
    MOVE OATA-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR INT-LINE-OUT.
WRITE-SUBTITLE.
    MOVE TITLES (2) TO TITLE-OUT.
    MOVE DATA-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-OUT.
WRITE-MANAGEMENT-SUPERVISION.
    MOVE 3 TO I.
    MOVc 4 TO J.
    PERFORM WRITE-CATEGORIES.
WRITE-OPERATION-LABOR.
    MOVE 5 TO I.
    MOVE 6 TO J.
    PERFORM WRITE-CATEGORIES.
WRITE-MAINTENANCE-LABOR.
    MOVE 7 TO I.
    PERFORM WRITE-CATEGORIES.
WRITE-OTHER-LABOR.
    MOVE 8 TD I.
    PERFORM WRITE-CATEGORIES.
WRITE-SUBTOTAL-T1.
    MOVE 9 TO I.
    MOVE 13 TO J.
    PERFORM WRITE-SUBTOTALS.
WRITE-BENIFITS.
    MOVE 10 TO I.
    PERFORM WRITE-CATEGORIES.
KRITE-RUNNING-SUBTOTAL-T2.
    MOVE 11 TO I.
    MOVE 12 TO J.
    PERFORM WRITE-RUNNING-SUBTOTALS.
WRITE-SUBTITLE-ODC.
    PERFORM PRINT-LINE-OUT.
    MOVE 'OTHER DIRECT COST:1 TO TITLE-OUT.
    MOVE OATA-LINE TO PRINT-LINE.

                          288

-------
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-OUT
WRITE-MAINTENANCE.
    MQVt 7  TO I.
    MOVE 13 TO J.
    PERFORM WRITE-CATEGORIES.
V,RITE-CHEMICALS .
    MUVE 14 TO I.
    PERFORM WRITE-CATEGORIES.
WRITE-PQWEP.
    MOVE 15 TO I.
    PERFORM WRITE-CATEGORIES.
WRITE-MISCELLANEOUS.
    MOVE 16 TO I.
    PERFORM WRITE-CATEGORIES.
WRITE-SUBTCTAL-T3.
    MOVE  9 TO I.
    PERFORM WRITE-SUBTOTALS.
WRITE-SECOND-PAGE.
    MOVE 'PAGE Z OF 2  '  TO PAGE-UUT.
    PERFORM WRITE-HEADINGS.
    PERFORM PRINT-LINE-OUT.
WRITE-RUNNING-SUB TOT*L-T4.
    MOVE 17 TO I.
    MOVE 22 TO J.
    PERFORM WRITE-RUNNING-SUBTOTALS.
WRITE-DEPRICIATION.
    MOVE 18 TO I .
    MOVE 13 TO J.
    PERFORM WRITE-CATEGORIES.
WRITE-RUNNING-SUB TOTAL-T5.
    MUVE 19 TO I .
    PERFORM WRITE-RUNNING-SUBTOTALS.
WRITE-INTEREST.
    MOVE 20 TO I .
    PERFORM WRITE-CATEGORIES.
WRITE-TAXES.
    MOVE 21 TO I.
    PERFORM WRITE-CATtGQRIES.
    PERFORM PRINT-LINE-OUT.
WRITE-GRAND-TOTAL-T6.
    MOVE 19 TO I .
    PERFORM WRITE-RUNNING-SUBTOTALS.
    GO TO CLOSE-FILES.
MOVE-SPACES.
    MOVE SPACES  TO PRINT-LINE.
PRINT-LINE-OUT.
    WRITE PRINTER-DATA BEFORE  1.
WRITE-CATEGORIES.
    MOVE 1 TO PfcR.
                         289

-------
    ADD 1 TO CAT.
    PERFORM MOVE-AMOUNTS VARYING FUN FROM 1 BY 1 UNTIL FUN = 6
    PERFORM TOTAL-AMOUNTS.
    MOVE TITLES (I)  TO TITLE-OUT.
    MOVE PERIOD-IN TO PERIODS.
    MOVE DATA-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE SPACES TO DATA-LINE.
    MOVfc 2 TO PER.
    PERFORM MOVE-AMOUNTS VARYING FUN FROM 1 BY 1 UNTIL FUN = 6,
    PERFORM TOTAL-AMOUNTS.
    MOVE TITLES (J)  TO TITLE-OUT.
    MOVE 'YTD     ' TO PERIODS.
    MOVE DATA-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRiNT-LINE-OUT.
    MOVE SPACES TO DATA-LINE.
MOVE-AMOUNTS.
    IF AMOUNT-1 (PER, CAT,  FUN) NOT =  SPACES THEN
        PERFORM CHECK-LINE  THRU ADD-TOTALS.
CHECK-LINE.
    IF LINE-TOTAL-1  = SPACES THEN
        MOVE ZERO TO LINE-TOTAL.
CHECK-SUB.
    IF SUB-TOTAL-1 (PER, FUN) = SPACES THEN
        MOVE ZERO TO SUB-TOTAL (PER, FUN).
CHECK-GRAND.
    IF GRAND-TOTAL-1 (PER,  FUN) = SPACES THEN
        MOVE ZERO TO GRAND-TOTAL (PER, FUN).
ADD-TOTALS.
    MOVE AMOUNT (PER, CAT,  FUN) TO AMOUNTS-OUT (FUN).
    ADD  AMOUNT (PER, CAT,  FUN) TO LINE-TCTAL,
        SUB-TOTAL (PER, FUN), GRAND-TOTAL (PER, FUN).
TOTAL-AMOUNTS.
    MOVE 6 TO FUN.
    PERFORM TOTAL-AMTS-FIX.
    IF AMOUNT-1 (PER, CAT,  FUN) NOT =  SPACES THbN
        MOVE 7 TO FUN
        PERFORM CHECK-LINE  THRU CHECK-GRAND
        MOVE AMOUNT  (PER, CAT, 6) TO AMOUNTS-OUT (7)
    ADD AMOUNT (PER, CAT, 6) TO LINE-TOTAL, SUB-TOTAL  (PER, 7)
            GRAND-TOTAL (PER, 7).
    MOVE 8 TO FUN.
    PERFORM TOTAL-AMTS-FIX.
    MOVE SPACES TO LINE-TOTAL-1.
TOTAL-AMTS-FIX.
    IF LINE-TOTAL-1 NOT = SPACES THEN
        PERFORM CHECK-SUB THRU CHECK-GRAND
    MOVE LINE-TOTAL TO AMOUNTS-OUT  (FUN)
    ADD LINE-TOTAL TO SUB-TOTAL  (PER,  FUN),

                                290

-------
        GRAND-TOTAL (PER, FUN).
WRITE-SJBTCTALS.
    MOVE 1 TO K.
    PERFORM MOVE-SUBTOT-TO-DATALINE VARYING PER
        FROM 1 BY 1 UNTIL PER = 9.
    MOVE TITLES  (I) TO TITLE-OUT.
    MOVE PERIOD-IN TO PERIODS.
    MOVE DATA-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE 2 TO K.
    PERFORM MOVE-SUBTOT-TO-DATALINE VARYING PER
        FROM 1 BY 1 UNTIL PER = 9.
    MOVE TITLES  (J) TO TITLE-OUT.
    MOVE  'YTD     ' TO PERIODS.
    MOVE DATA-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE SPACES  TO DATA-LINE, SUBS-1.
    PERFORM MOVE-SPACES  THRU PR 1NT-LINE-OUT.
    PERFORM PRINT-LINE-OUT.
WRITE-RUNNING-SUBTOTALS.
    MOVE 1 TO K.
    PERFORM MOVE-GRTOT-TO-DATAL1NE  VARYING  PER
        FROM 1 BY 1 UNTIL PER = 9.
    MOVE TITLES  (I) TO TITLE-OUT.
    MOVE PERIOD-IN TO PERIODS.
    MOVE DATA-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-DUT.
    MOVt 2 TO K.
    PERFORM MGVE-GRTOT-TO-DATALINE  VARYING  PER
        FROM 1 BY 1 UNTIL PER = 9.
    MOVE TITLES  (J) TO TITLE-OUT.
    MOVE  'YTD     ' TO PERIODS.
    MOVE DATA-LINE TO PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE SPACES  TO DATA-LINE, SUBS-1.
    PERFORM MOVE-SPACES  THRU PR 1NT-LINE-OUT.
    PERFORM PRINT-LINE-OUT.
M&VE-SUaTLT-TO-DATA LINE.
    IF  SUB-TDTAL-1 (K, PER) NOT =  SPACES  THEN
    MOVE SUB-TOTAL (K, PER) TO  AMOUNTS-OUT  (PER).
MOVE-GRTCT-TO-DATALINE.
    IF  GRAND-TDTAL-1  (K,  PER) NOT  = SPACES  THEN
    MOVE GRAND-TOTAL  (K,  PER) TO AMOUNTS-OUT  (PER)
CLOSE-FILES.
    CLOSE COST-MATRIX-FILE, PRINTER.
E-O-J .
    STOP  RUN.
                           291

-------
     PGMNAME=WUASPLV2
5YSIN    DO    *
 ID DIVISION.
 PROGRAM-ID. WUASPLV2
 AUTHOR. ACT SYSTEMS, INC
         SUITE 200
         807 W MDRSE BLVD
         WINTER PARK, PL 32789.
 DATE-WRITTEN. JAN 1973.
 DATE-COMPILED.
 REMARKS.    THIS PROGRAM READS THE COST MATRIX  FILE
             AND PRINTS THE LEVEL TWO WATER UTILITY
             REPORT CALLED 'COST COMPARISON'.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. lBM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01 IS NEfc-PAGE.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
     SELECT CARD-IN
         ASSIGN TO UR-2540R-S-CARDIN
         ACCESS MODE IS SEQUENTIAL.
     SELECT COST-MATRIX-FILE
         ASSIGN TO DA-3330-I-CMFILfc
         ACCESS MODE IS SEQUENTIAL
         RECORD KEY IS CM-NUMBER.
     SELECT FINANCIAL-ACCT-TABFI
         ASSIGN TO DA-3330-I-FATABFI
         ACCESS MODE IS RANDOM
         NOMINAL KEY IS FA-NOMINAL
         RECORD KEY IS FA-NUMBER.
     SELECT FILE-SORT
         ASSIGN TO UT-3330-S-FILESORT
         ACCESS MODE IS SEQUENTIAL.
     SELECT SORTED-FILE
         ASSIGN TO UT-3330-S-SDRTEDFI
         ACCESS MODE IS SEQUENTIAL.
     SELECT PRINT-OUT
         ASSIGN TO UR-1403-S-PRINTOUT
         ACCESS MODE IS SEQUENTIAL.
 DATA DIVISION.
 FILE SECTION.
 FD  CARD-IN
     RECORD CONTAINS 80 CHARACTERS
     LABEL RECORDS ARE OMITTED
     DATA RECORD IS DATE-CARD.
 01  DATE-CARD.
     05  DATE-IN.

                         292

-------
        10  MO-1N   PIC X(3).
        10  DAY-YR  PIC X (15) .
    05  TITLE-IN    PIC X(24) .
    05  FILLER           PIC  X(8),
    05  FISCAL-YR        PIC  X(24i
    05  FILLER           PIC  X(4),
    05  NO-WKS           PIC  X.
    05  RPT-PERIOD       PIC  X.
FD  COST-MATRIX-FILE
    RECURO CONTAINS 80 CHARACTERS
    BLOCK CONTAINS 5 RECORDS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS CM-REC.
01  CM-REC.
05
05





05
THE






MATCH-NU PIC X(4) .
CM-NUMBER.
10 FA-NU PIC X ( 10) .
10 CC-NU.
15 CC1 PIC X.
15 FILLER PIC X(3).
10 SA-NU PIC XX.
AMT-5 PIC S9(8)V99 OCCURS 6
AbOVE AMOUNTS ARE AS FOLLOWS
(1) -- CURRENT COST AMOUNT
(2) -- PREVIOUS MONTH COST AMOUN
(3) -- CURRENT COST AMOUNT YEAR
(4) -- BUDGET AMOUNT
(5) -- BUDGET AMOUNT YEAR TO DAT
(6) -- PREVIOUS YEAR COST AMOUNT







TIMES.


T
TO DATE

E (YTD)
(PYC)
                                                 (YTU)
FD  FINANCIAL-ACCT-TABFI
    BLOCK CONTAINS 8 RECORDS
    RECORD CONTAINS 58 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD  IS FA-REC.
01  FA-RFC.
    05  FA-NUMBER        PIC  X(10>.
    05  FA-NAME-1        PIC  X(40>.
    05  FILLER           PIC  X(8).
SD  FILE-SORT
    RECORD CONTAINS 80 CHARACTERS
    DATA RECORD  IS SORT-INPUT.
01  SORT-INPUT.
    05  FILLER           PIC  X(4).
    05  FIRST-10         PIC  XllO).
    05  CC-NOS.
        10  CC-1          PIC  X.
        10  CC-3          PIC  X(3).
    05  SA-NOS           PIC  XX.
                           293

-------
FD
01
05  FILLER      PK X(30).
05  BUDGET           PIC 9(8>V99
05  FILLER      PIC X(20) .
SORTEU-FILE
RECORD CONTAINS 80 CHARACTERS
BLOCK CONTAINS 5 RECORDS
LABEL RECORDS ARE STANDARD
DATA RECORD IS INPUT-REC.
INPUT-REC.
FD
01
05  MATCH-NO        PIC X(4).
05  FA-NO.
    10  FA-NO-1     PIC X(2).
    10  FA-NO-2     PIC X(8).
05  CC-ND.
    10  CC-NO-1     PIC X.
    10  CC-NO-2     PIC XXX.
05  SA-NO           PIC XX.
05  AMTS.
    10  AttT-1      PIC S9(8»V99.
    10  AMT-2      PIC S9(8>V99.
    10  AMT-3      PIC S9(8)V99.
    10  AMT-4      PIC S9(8)V99.
    10  AMT-5      PIC S9(8)V99.
    10  AMT-6      PIC S9(8)V99.
PRINT-OUT
RECORD CONTAINS 133 CHARACTERS
LABEL RECORDS ARE OMITTED
DATA RECORD IS PRINT-DATA.
PRINT-DATA.

05
05
WORKING-
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
SCT-
SCT-
LINE
PAGE
MAX-
SUB-
SUB-
FILLER
PRINT-LINE
STORAGE SECTI
ONE
TWO
-CT
-CT
LINE
Tl
T2
FA-iMOMlNAL
P
P
P
P
P
P
P
P
PIC
PIC
X.
X(132)



ON.
I
I
I
I
I
I
I
I
C
C
c
c
c
c
c
c
BUD-ACCT
NEGS
YEAR
YEAR
-IN
-IN
-OUT
MONTH
I
J
K
CC-J
SA-K





P
P
P
P
P
P
P
P
P
I
I
I
I
1
I
I
I
I
c
c
c
c
c
c
c
c
c
9(
9(
9(
9(
99
X<
X(
x(
P
XI
X(
9 (
91
99
9
99
9
99
5)
5 )
4 )
4 )

6)
6)
10
1C
2)
3)
4 )
2)



COMP
COMP
COMP
COMP
COMP
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE





SPACE
'CON
T
> VALUE SPAC
X(10)
VALUE
JUSTI
COMP
COMP
COMP
COMP
CDMP
VALUE
i #» i
FIED
VALUE
VALUE
VALUE
VALUE
VALUE
COMP VALUE
COMP VALUE
,
R





0
0
0.
0.
0.
1.
56.
S.
-0*.
ES.
SPACES

IGHT.
0.
1.
0.
0.
0.
•
.
                         294

-------
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77



77


77


01


01

P-ERRlJR
DEPRE-C
DEPRE-P
INT-C
INT-P
TAX-C
TAX-P
TEMP-1
TEMP-2
TEMP-3
S-TOT-1
S-TOT-2
S-TOT-3
S-TOT-4
S-TQT-5
5-TOT-6
TUT-1
TOT-2
TOT-3
TOT-4
TOT-5
TOT-6
TQT-T3
TQT-T<»
TOT-T5
PRINT-REO-FLAG
88 FLAG-O
88 FLAG-1
88 FLAG-2
RPT-FLAG
88 RPT-A
88 RPT-B
INT-FLAG
88 FLAG-NO
88 FLAG-YES
YEAR-PT5 .
05 YR-A
05 YR-6
MONTH-NAMES.
05 MO-A
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
I
1
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
1
I
I
I
I
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
PI
591
S9(
59(
591
S9(
S9(
S9(
S9(
S9(
591
S9|
S9(
59(
591
591
591
S9 i
59!
S9i
59'
S9i
S9
S9l
59
59
C X
8 )
8 )
8 )
;8)
8)
:si
8)
8)
;s )
;aj
8 )
8)
,8)
[8 ]
1 81
[81
[8 ]
[8 I
is ;
(8!
is :
(8
[8]
(8 ;
(8

V99
V99
V99
V99
V99
iV99
V99
V999
iV999
i V999
iV99
V99
iV99
IV99
IV99
IV99
IV99
IV99
IV99
IV99
IV99
IV99
IV99
IV99
)V99
VALU
CCMP
COMP
CGMP
CGMP
CGMP
COMP
COMP
CDKP
COMP
COMP
CGMP
CGMP
COMP
CGMP
COMP
CGMP
CGMP
CGMP
COMP
COMP
COMP
CGMP
COMP
COMP
COMP
E 'C1
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
.
+ 0
+ 0
+ 0
+ 0
-i-O
-t-0
+ 0
•f
+
•
•
•
•
•
*
•
0
0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0

.
•
•
•
•
•
•
*
•
•
•
•
•
•
•

VALUE '0 ' .
VALUE '!'.



PI

C X


VALU
VALU
E »2'
E '1 '
.
.




VALUE '1 ' .
VALUE '2'.
PI
C X
VALUE '0 ' .
VALUE '0'.
VALUE ' 1 ' .



PI
PI



PI

C X
C X

C X

(2
.


) .


(36)
















VALUE
                      •JANFEBMARAPRMAYJUN
                    ' JULAUGSEPOCTNOVDEC' .
    05  MO-B REDEFINES MO
        10  MO-NAME OCCUR
01  NAME-LIST.
    05  LIST-A.
        10  NAMES-1A    P
-A.
S 12 TIMES PIC X(3).
1C X(12Q)  VALUE                        '
         •SOURCE OF SUPPLY
         •PUMPING
         'fcATER TREATMENT
       'TRANSMISSION  AND  DISTRIBUTION '.
       295

-------
        10  NAMES-2A
01
01
01
01
01
01
05  NAME-A REDEFINES
    10  NAME OCCURS 8 TIMES PIC
LOWER-LIMITS.
05  LIM-LA      PIC X(16) VALUE
05  LIM-LB REDEFINES LIM-LA.
    10  LD-LIM OCCURS 8 TIMES
UPPER-LIMITS.
05  LIM-UA      PIC X(16) VALUE
05  LIM-UB REDEFINES LlM-UA.
    10  HI-LIM OCCURS 8 TIMES
COST-CENTERS.
05  CC-LIST-1   PIC X(120)  VALUE
PIC X(120)  VALUE
          'CUSTOMER ACCOUNTS
          •ADMINISTRATIVE AND
          •NON BUDGETED COSTS
        •TOTAL ACTUAL COSTS TO
 LIST-A.
            X(30).
                                                       GENERAL

                                                        BUDGET
            '6062646690920000

            PIC X(2).

            •61636567909399991

            PIC X(2) .
                                             •ACQUISITION
                                             •TREATMENT
                                             •DELIVERY
                                             •SUPPORT SERVICES
                                             •INTEREST
                                           •TAXES
05  CC-LIST-2 REDEFINES CC-LIST-1.
    10  CC-MAME OCCURS 6 TIMES  PIC
CAT-LIST.
                                        X(20)
    05
    CAT-A.
    10  C-CAT-1
                        PIC X(100)  VALUE
        10  C-CAT-2
                    PIC X(100)  VALUE
05  CAT-B REDEFINES CAT-A.
    10  CAT-NAME OCCURS 10 TIMES
HEADING-1.
05  FILLER
05  FILLER
05  FILLER
HEAOING-2.
05  FILLER
05  DATE-OUT
05  FILLER
05  FILLER
                     •MANAGEMENT  t  SUPRV
                     •OPERATION  LABOR
                     •MAINTENANCE LABOR
                     •OTHER  LABOR
                   •BENEFITS

                     •MAINTENANCE
                     •CHEMICALS
                     •POWER
                     •MISCELLANEOUS
                   'DEPRECIATION
                                         PIC X(2J>
                                                          REPORT
p
p
p
p
p
p
p
1C
1C
1C
1C
1C
1C
1C
XI
XI
XI
XI
XI
XI
XI
!55>
I 22)
[55)
I 12)
[18 )
134)
[3>
VALUE
VALUE
VALUE
VALUE
.
VALUE
VALUE
SPACE
•COST
SPACE
•LAST

SPACE
•FOR'
S.
COMPARI
S.
ENTRY:

s.
.

SON

i



                                296

-------
01
01
05
05
05
HEAD
05
05
05
05
05
05
HEAD
05
05
05
05
05
        FILLER
        FILLER
        PAGE-OUT
        ING-3.
        FILLER
        RPT-PD
        WKS-CUT
        FILLER
        TITLE-DUT
        FILLER
        ING-12.
        FILLER
        FISC-YR
        FILLER
        FILLER
        FILLER
                         PIC  X(55 )
                         PIC  X(6>
                         PIC  Z(4) .
                               VALUE
                               VALUE
SPACES
•PAGE:
                      PIC  X(12)   VALUE 'RPT PERIOD:
                      PIC  X{8 J .
                      PIC  X(6 ) .
                     PIC  X(26)  VALUE SPACES.
                     PIC  X(24 ).
                     PIC  X(54>  VALUE SPACES.

                      PIC  X(12)   VALUE 'YTO  START:
                      PIC  X(24) .
                     PIC  X(24)  VALUE SPACES.
                     PIC  X(12 )  VALUE M LEVFL II ) '
                     PIC  X(60>  VALUE SPACES.
            PART-A  HEADINGS
01
01
01
01
HEADING-4.
05  FILLER

05  SUB-OUT
05  FILLER
HEAOING-5.
05  FILLER
05  FILLER
05  FILLER
05  FILLER
05  FILLER
05  FILLER
05  FILLER
HEAOING-6 „
05  FILLER
05  FILLER
05  FILLER
05  FILLER
    05
    05
    FILLER
    FILLER
05  FILLER
05  FILLER
05  FILLER
HEADING-?.
05  FILLER
05  FILLER
05  FILLER
                         PIC  X(36)  VALUE
                                     •COMPARISON OF
                                     •T TO BUDGET  '
                                                        ACTUAL COS
p
p
p
p
p
p
p
p
p
p
p
p
p

p
p

p
p
p
p
p
p
I
c
1C
I
I
I
I
I
I
I
I
I
I
I

c
c
c
c
c
c
c
c
c
c
c

1C
1C

I
1

c
c
1C
1C
1C
I
c
X
X
X
X
X
X
X
X
X
fc
) .
90)
1
7
42
1
1
1
1
2
5
4
0
22
X(l
X(2
X(l
4)
0)
9 )
X (24)

X(4

)
X(24)

X(4
X(2
X(2
X(2
XU
X(4

)
1)
)
)
& )
>


VALUE
VA
VA
VA
VA
VA
LUE
LUE
LUE
LUE
LUE
VALUE
VALUE
VA
VA
LUE
LUE
VALUE
VA

LUE

VALUE

SPAC

E

S

•
•BUDGET CATEGORIES'
SPAC
E
S
•
'ACTUAL COSTS ' .
SPAC
E
S
•BUDGE
SPAC
'VAR
.
1 <•*<•
SPAC
• «*
1 * ' .
SPAC
E
I

*
E
o

E
S
•
TED CQSTS ' .
•
ANCE YR TO DATE
*
»
S
ft

S
***** ft*..
»0ftftftft»ftftft«ftftftft
•
ft tf * if ^ ^ « ft * ft «. * * ft *

•
VA-LUE i*******************

VA
VA
VA
VA
VA
VA

LUE
LUE
LUE
LUE
LUE
LUE
'*'.
SPAC
»<•*!>
SPAC
SPAC
•ACC

E
*
E
E
T
•NAME

S
»
S
S

1

•
*##»*$*****»»»«
•
•
# ACCOUNT '.
•
                                297

-------
05
05
05
05
05
05
01 BUDG
05
05
01 DATA
05
05
05
05
05
f\ r-
05
05
05
05
05
05
05
FILLER
FILLER P
FILLER
FILLER
FILLER
FILLER
ET-CAT.
NAME-OUT
FILLER
-LINE-A.
HEAD-STRIp-OUT
COL-1A
COL-2A
FILLER
COL-3A
Cr°> i /A
OL-4A
FILLER
COL-5A
FILLER
COL-6A
FILLER
NEG-OUT
P
1C
P
P
P
P

p
P

P
P
P
P
P
P
P
P
P
P
P
1C
X
(
29)
VALUE
X(2M VALUE 'C
1C
1C
1C
1C

1C
1C

1C
1C
1C
1C
1C
I/*
L
1C
1C
1C
1C
1C
1C
X
X
X
X

X
X

X



X


X


X
-
X
X
(
(
(
(

(
(

(




(


(


(
(
(
(
5)
13)
15)
22)

30
102

52)



— • ~
1)


~ t •*
1)

— » ~*
2)
5).
1)
2) .
VALUE
VALUE
VALUE
VALUE

•
) VALUE

.

» — — — « — —

— — • t — — — .
VALUE


——»———.
VALUE


VALUE
™ •
VALUE

SPACES.
URR
SPAC
•YR
PERIOD
ES.
TO JATE
•ANNUAL AMT
i


BALANCE


SPACES.


.

•
SPAC


SPAC

"
SPAC

SPAC





ES.

ES.

ES.

ES.

01 HEAD-STRIP-1A.
05
05
05
05
FILLER
ACCT-ND
FILLER
ACCT-NAME
P
P
P
P
1C
1C
1C
1C
X
X
X
X
{
2)
VALUE
SPAC
ES.
(9).
(
(
1)
40)
VALUE
•
SPAC

ES.

01 HEAJ-STRIP-2A.
05
05
*** **
*
NAME-8
FILLER


P
P


1C
1C


X
X


(
(


3U>
22)


•
VALUE



SPAC



ES.


                                                      YR  TO  DATE'
                                                      PERCENT
            PART-B HEADINGS
01  HEADING-8.
    05  FILLER

    05  SUBS-OUT
    05  FILLER
01  HEAOING-9-
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  CURR-YR
    05  FILLER
    05  FILLER
    05  PREV-YR
    05  FILLER
PIC X(40> VALUE
•COMPARISON
•T  TO  PRIOR
OF ACTUAL
YEAR ».
COS
P
P
P
P
p
P
P
P
P
P
1C
1C
1C
1C
1C
1C
1C
1C
1C
1C
X(
X(
X(
X(
X(
X(
9(
X(
X(
9<
6).
86)
6>
15)
28)
13)
4) .
10)
13)
4) .

VALUE
VALUE
VALUE
VALUE
VALUE

VALUE
VALUE


SPACES
SPACES
•COST
SPACES

•
•
CATEGORIES' .
•
•ACTUAL COSTS '.

SPACES
•ACTUA


•
L COSTS ' .

PIC X(14> VALUE SPACES.
                                298

-------
01
01
01
01
01
01
01
05
05
HEAD
05
05

05
05
05
05
05
05
05
HEAD
05
05
05
05
05
05
05
DATA
05
05
05
05
05
05
05
05
05
05
HEAj
05
05
05
HEAD
05
05
05
05
DATA
05
05
05
DATA
05
05
05
F
F
ILLE
R
ILLER
P
P
1C
1C
X
X
( 19)
(6)
VA
LUE
VALUE
•VAR
SPAC
IANCE YR TO DATE1
ES.
ING-10.
F
F

F
F
F
F
F
F
F
I
F
F
F
F
F
F
F
ILLE
R
ILLER

ILLE
ILLE
ILLE
ILLE
ILLE
ILLE
ILLE
NG-1
ILLE
ILLE
ILLE
ILLE
ILLE
ILLE

R
R
R
R
R
R
R
1.
R
R
R
R
R
R
ILLER
-LINE
HEAD-
C
F
C
F
C
F
C
F
OL-1
ILLE
OL-2
ILLE
OL-5
ILLE
-B .
OUT
B
R
B
R
B
R
OL-6B
ILLE
NEGS-
-
F
C
F
-
F
F
C
F
-
f
C
F
STRI
ILLE
-CAT
ILLE
STRI
ILLE
ILLE
R
OUT
P-1B.
R
-OUT
R
P-2B .
R
R
C-OUTS
ILLE
LINE
ILLE
C-UU
ILLE
-LINE
F
C
£
ILLE
R
-D.
R
T
R
-E.
R
-CAT-SUB
ILLE
R
P
P

P
P
P
P
P
P
P

P
P
P
P
P
P
P

P
P
P
P
P
P
P
P
P
P

P
P
P

P
P
P
P

P
P
P

P
P
P
1C
1C

1C
1C
1C
1C
1C
1C
1C

1C
1C
1C
1C
1C
1C
1C

1C
1C
1C
1C
1C
1C
1C
1C
1C
1C

1C
1C
1C

1C
1C
1C
1C

1C
1C
1C

1C
1C
1C
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X


X


X


X
-
X
X

X
X
X

X
X
X
X

X
X
X

X
X
X
(6)
( 30)

(13 )
( 17)
( 10)
( 17 )
( 11 )
(24)
(41

(53)
( 10)
(17)
( 10)
( 17)
( 19)
(6)

(49)

*
( 13)

1
( 11)

t —
(4)
( 5) -
(4)
( 2) .

( 10)
( 30)
(9)

(6)
(14 )
(20)
(9)

(6)
(20)
( 106

(8)
(20)
( 104
VALUE
VA

VA
VA
LUE

LUE
LUE
VALUE
VALUE
VALUE
VA
VA

LUE
LUE

VALUE
VA
VA
VA
VA
VA
LUE
LUE
LUE
LUE
LUE
VALUE

,


VA


VA

t
VA

VA


VA
.
VA

VA

.
VA

VA
.
) V

VA
.
) V




LUE


LUE

•
LUE

LUE


LUE

LUE

LUE
VALU

LUE

LUE

ALUt

LUE

ALUt
SPAC
• *=**
• *»*
SPAC
» *<•*
SPAC
• *•<•*
SPAC
•<.o
SPAC

SPAC
•YR
SPAC
'YR
SPAC
ES .
»***«*<. * (.*»* * *$**
**<•'.
ES.
$£«£ $$$$$*<•<.$<• 1 .
ES.
«*<.«.$«*»«$$*»» 1 .
ES .
*»<•***<•*<•****<•***
ES.

ES.
TO DATE' .
ES.
TO DATE' .
ES.
' BALANCE PERCENT1
SPAC




SPAC


SPAC

•
ES.



ES.

ES.

SPAC-ES.

SPAC


SPAC

SPAC

SPAC
E 'T

SPAC

SPAC


ES.


ES.

ES.

ES .
OTAL COST OF ' .

ES.

ES.

SPACES.

SPAC


ES.

SPACES .
                                 299

-------
*
*    START OF PROGRAM
 PROCEDURE DIVISION.
 OPEN-FILES.
     OPEN    INPUT   CARD-IN, COST-MATRIX-FILE,
                     FINANCIAL-ACCT-TABFI .
             OUTPUT  PRINT-OUT.
 READ-TITLE-CARD.
     READ CARD-IN AT END GO TO TITLE-PARAGRAPH.
     GD TO READ-TITLE-CARD.
 TITLE-PARAGRAPH.
     PERFORM FILL-HEADINGS.
     PERFORM TOP-NEW-PAGE.
     PERFORM WRITE-PAGE-HEAD1NG.
 SORT-RECORDS.
     OPEN    OUTPUT   SORTED-FILE.
     SORT FILE-SORT ON ASCENDING KEY FIRST-10
                       DESCENDING KEY BUDGET
     INPUT PROCEDURE READ-SORT-INPUT
            THRU READ-SDRT-INPUT-END
     OUTPUT PROCEDURE WR I TE-SORT-OUTPUT
             THRU WRITE-SORT-OUTPUT-END.
 REWIND-FILE.
     CLOSE   SORTED-FILE.
     OPEN    INPUT   SORTED-FILE.
 REPORT-PART-A.
     PERFORM WRITE-SUB-TITLE-A.
     MOVE 'O1 TO PRINT-REQ-FLAG.
     MOVE SPACES TO BUD-ACCT.
     PERFORM NEW-BUDGET-CAT THRU TE ST-ACC T-L1M I T- END VARYING I FRO
     M 1 BY 1 UNTIL I GREATER THAN 7.
     PERFORM WRITE-TOTALS.
     PERFORM WRITE-DEPREC-INT-TAXES.
     MOVE TOT-2 TO TOT-T4
     PERFORM WRITE-TLTALS.
     MOVE ZEROS TO DEPRE-C, DEPRE-P, INT-C, 1NT-P. TAX-C, TAX-P.
     MOVE ZEROS TO SCT-ONE, TEMP-1, TEMP-2.
     MOVE 'O1 TO INT-FLAG.
     MOVE '2' TO RPT-FLAG.
     MOVE SUB-T1 TU SUB-OUT, SUBS-bUT.
 DOUBLE-SORT.
     CLOSE   SORTED-FILE, COS T -M ATR IX -F I LE .
     OPEN INPUT COST-MATRIX-FILE.
     OPEN    OUTPUT   SORTED-FILE.
     SORT FILE-SORT ON ASCENDING KEY
             CC-1
             SA-NOS

                                 300

-------
     INPUT  PROCEDURE  READ-SORT-I NPUT
         THRU  READ-SQRT-1NPUT-ENO
     OUTPUT PRUCEDURE WR1 TE-SORT-OUTPUT
         THRU  WRiTE-SDRT-OUTPUT-END.
 REPORT-PART-B .
     PERFORM TOP-NEW-PAGE .
     PERFORM WRITE-PAGE-HEAOING.
     PERFORM WRITE-SUB-TITLE-B.
     PERFORM ZERO-SUB-TOTALS.
     PERFORM ZERO-TOTALS.
     PERFORM REWIND-FlLE-
     PERFORM WRITE-CGST-CENTER THRU  COST-CENTER-END  VARYING  J  FROM
             i  BY 1  UNTIL  J  GREATER  THAN  4.
     PERFORM WRITE-OP-COSTS.
     PERFORM WRITE-INTEREST.
     PERFORM WRITE-TAXES.
     PERFORM WRITE-LAST-LINE .
     PERFORM TUP-NEW-PAGE.
     PERFORM WRITE-CCUNTERS.
     GO TO  CLOSE-FILES.
     END OF PROGRAM.
*****
*

*        SUBROUTINES FOLLOW,
*            1 .  GENERAL SUBROUTINES
*            2.  ROUTINES FOR PART-A

*            3.  ROUTINES FUR PART-B
$****
*

*            GENERAL SUBROUTINES
*
#*?**

 MOVE-SPACES.
     MOVE SPACES TO PRINT-LINE.
 PRINT-LINE-OUT.
     WRITE PRINT-DATA BEFORE 1.
     ADD 1 TO LINE-CT.
 SKIP-LINE .
     PERFORM MOVE-SPACES.
     PERFORM PRINT-LINE-OUT.
 PAGE-OVFLDW.
     IF LINE-CT NOT < MAX-LINE THEN
         PERFORM TOP-NEW-PAGE
         MOVE SUB-T2 TO SUB-OUT, SUBS-OUT
                                301

-------
        PERFORM WRITE-PAGE-HEAD1NG
        IF kPT-A THEN PERFORM WRITE-SuB-TITLE-A
                 ELSE PERFORM WR ! T E-SUB-T I T|_E-B .
ZERO-SUB-TOTALS.
    MCVE ZEROS TO S-TOT-1, S-TOT-2, S-TOT-3,  S-TOT- 900 THEN
        SUBTRACT 900 FROM YEAR-OUT.
    ADD 1900 YEAR-OUT GIVING CURR-YR
    ADD 1899 YEAR-OUT GIVING PREV-YR
IF
IF
IF
IF
IF
EN MOVE
EN MOVE
EN MOVE
4 WKS)
5 WKS)
13 WKS)
26 WKS)
52 WKS)
•QUARTER '
•HALF YR '
•ANNUAL '
' TD WKS-OUT
• TO WKS-OUT
' TD WKS-OUT
• TO WKS-UUT
• TO WKS-OUT
                                  1 BY 1 UNTIL  I  GREATER
                                •078' TD YEAR-IN.
                        302

-------
 FIND-MONTH.
     IF MO-IN EQUAL MO-NAME  (I) MOVE  I  TO  MONTH.
 WRITE-DATA-LINE-A.
     MOVE UATA-LINE-A TO PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
 URITE-DATA-LINE-B.
     MOVE DATA-L1NE-B TO PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
 VARI-AND-PERCENT .
     MOVE SPACES TO NEG-OUT, NEGS-OUT.
     IF RPT-B AND TEMP-2 = 0 THEN  MOVE  0  TO  TEMP-1.
     SUBTRACT TEMP-1 FROM TEMP-2 GIVING TEMP-3.
     MOVE TEMP-3 TO COL-5A,  COL-5B.
     MULTIPLY 100 BY TEMP-1.
     IF TEMP-2 > 0 DIVIDE TEMP-2 INTO TEMP-1  FL5E
                                 MOVE ZERO TO  TEMP-1.
     IF TEMP-1 > 100    MOVE NEGS-1N  TO NEG-OUT,  NcGS-OUT
     ADD ,C^5 TO TEMP-1.
     MOVE TEMP-1 TO COL-6A,  COL-6B.
Xf
*            SUBROUTINES  FOR  PART-A
 WRITE-SU6-TITLE-A.
     MOVE HEADING-^ TO PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
     PERFORM SKIP-LINE.
     MOVE HEADING-5 TO PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
     MOVE HEADING-6 TO PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
     MOVE HEADING-7 TO PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
     PERFORM SKIP-LINE.
 NEW-BUO&ET-CAT.
     IF  I EQUAL 7  THEN
                   MOVE  '0'  TO  PRINT-REQ-FLAG
                   MOVE SPACES  TO  BUD-ACCT
                   PERFORM  REWIND-FILE.
     PERFORM PAGE-OVFLOW.
     MOVE NAME  (I) TO NAME-OUT.
     PERFORM SKIP-LINE.
     MOVE BUDGET-CAT TO  PRINT-LINE.
     PERFORM PRINT-LINE-OUT.
 READ-SOSTED-FILE .
     READ SORTED-FILE AT END GO  TO  RE AD-F I LE-C DMPLE TE
     IF  AMT-<» > 0  THEN MOVE  FA-NO TO BUD-ACCT.
     IF  1 = 7 THEN GO TO STEP-TWO.
     IF  FA-NO-1 <  LO-LIM (I) GO  TO  RE AD-S ORTE D -F I LE .

                             303

-------
    IF FA-NO EQUAL BUD-ACCT THEM GO TO NEXT-STEP.
    IF AMT-<* = 0 THEN GO TO TEST-ACC T-L IMIT.
    GD TO NtXT-STEP.
STEP-TWO.
    MOVE 'O1 TO INT-FLAG.
    PERFORM DEPREC-INT-TAXES THRU TAXES-END.
    IF FLAG-YES THEN GO TO TEST-ACCT-LIMIT .
    IF FA-NO EQUAL BUD-ACCT THEN GO TO READ- SOP FED-F 1LE .
    IF AMT-4 > 0    GO TO REAU-SORTED-FILE .
    IF AMT-5 > 0    GO TO READ-SOKTED-FILE .
    IF AMT-3 =0    GO TO REAO-SORTED-FILE .
    MOVE ZERO  TO COL-3A, COL-4A, COL-5A, COL-6A.
    MOVE SPACES TO NEG-QUT.
NEXT-STEP.
    IF FLAG-O THEN
        MOVE FA-NO TO FA-NOMINAL, ACCT-NO
        READ FINANCIAL-ACCT-TABFI INVALID KEY
                                    MOVE SPACES TO ACCT-NAME
    IF FLAG-2 THEN
        READ FINANCIAL-ACCT-TABFI INVALID KEY
                                    MOVE SPACES TO ACCT-NAME
    IF FLAG-O OR FLAG-2 THEN
        MOVE FA-NAME-1 TO ACCT-NAME
        MOVE HEAD-STRIP-1A TO HEAD-STRIP-OUT.
    IF FA-NO NOT EQUAL FA-NOMINAL GL TO WRITE-DATA-LINE .
    ADD AMT-1 TO S-TDT-1.
    ADD AMT-3 TO S-TOT-2.
    ADD AMT-5 TO S-TOT-3.
    ADD AMT-4 TO S-TOT-4.
    MOVC '!• TD PRINT-REQ-FLAG.
    GO TO READ-SORTED-FILE.
WRITE-DATA-LINE.
    IF I ^ 7 THEN
             MOVE S-TOT-1 TO COL-1A
             MOVE S-TOT-2 TO COL-2A
             ADO S-TOT-1 TO TQT-1
             ADD S-TOT-2 TO TOT-2
             ELSE PERFORM ADD-SUB-TO-TDTALS.
    PERFORM WRITE-DATA-LINE-A.
    PERFORM PAGE-OVFLOW.
    ADD S-TOT-5 TO TOT-5.
    MOVE AMT-1 TO S-TOT-1.
    MOVE AMT-3 TO S-TOT-2.
    MOVE AMT-5 TO S-TCJT-3.
    MOVc AMT-^t TO S-TQT-4.
    MGVt '2' TO PRINT-REQ-FLAG.
    MOVE FA-NO TO FA-NOMINALt ACCT-NO.
TEST-ACCT-LIMIT.
    IF FA-NO-1 NOT GREATER THAN HI-LIM (I)
                                GO TO READ-SORTED-FILE.

                             304

-------
    IF FLAG-I THFN PERFORM AOD-SUB-TO-TOTALS
                   PERFORM WRITE-DATA-LINE-A
                   PERFORM PAGE-nVFLOK
                   MOVE ZEROS TO S-TOT-1, S-TOT-2, S-TOT-3,
                                 S-TOT-<«. S-TOT-5, S-TOT-6
                   MOVE '0' TO PRINT-REU-FLAG.
    GO TO TEST-ACCT-LIMIT-END.
READ-FILE-COMPLETE.
    IF FLAG-2 THEN
        READ FINANC1AL-ACCT-TABF I  INVALID KEY
                                    MOVE SPACES TO ACCT-NAME.
    IF FLAG-2 THEN
        MOVE FA-NAME-1 TO ACCT-NAME
        MOVE HEAD-STRIP-1A TO HEAD-STRIP-OUT.
    IF FLAG-0 THEN GO TO TEST-ACCT-LIMIT-tNO.
    IF I - 7 THEN
             MOVE S-TOT-1 TO COL-1A
             MOVE S-TOT-2 TO CDL-2A
             ADD S-TOT-1 TO TOT-1
             ADD 5-TOT-2 TO TQT-2
             ELSE PERFORM ADO-SUB-TO-TOTALS.
        PERFORM WRITE-DATA-LINE-A.
        MOVE SPACES TO FA-NOMINAL.
TEST-ACCT-LIMIT-END.
    IF I = 6 PERFORM WRITE-TOTALS .
WRITE-TOTALS.
    PERFORM SKIP-LINE.
    MOVE NAME (8) TO NAME-8.
    IF I = 6 THEN DIVIDE 12 INTO TOT-4 GIVING TOT-3,
        MULTIPLY TOT-3 BY MONTH GIVING TOT-3.
    IF I GREATER THAN 6 MOVE 'TOTAL1 TO NAME-8.
    MOVE HEAD-STRIP-2A TO HEAD-STR IP-OUT .
    MOVE TOT-1 TO COL-1A.
    MOVE TOT-2 TO COL-2A, TEMP-1 .
    MOVE TOT-3 TO COL-3A, TEMP-2.
    MOVE TOT-4 TO COL-4A.
    PERFORM VARI-AND-PERCENT.
    PERFORM WRITE-DATA-LINE-A.
ADD-SUB-TO-TOTALS.
    MULTIPLY MONTH BY S-TQT-4 GIVING TEMP-3.
    DIVIDE 12 INTO TEMP-3.
    ADD .005 TO TEMP-3.
    MOVE TEMP-3 TO S-TOT-3.
    ADD S-TOT-1 TO TOT-1.
    ADD S-TOT-2 TO TOT-2.
    ADD S-TOT-3 TO TOT-3.
    ADO S-TOT-4 TO TOT-4.
    IF ACCT-NO EQUAL  '932-50    ' THEN
               COMPUTE P-ERROR  =  (MONTH  *  TOT-4 /  12) - TOT-3
               ADD P-ERROR TO S-TOT-3.
                             305

-------
    IF MONTH EQUAL 12 THEN MOVE S-TOT-4  TU  5-TOT-3
    MGVc S-TOT-1 TO COL-1A.
    MOVE S-TOT-2 TO COL-2A, TEMP-1.
    MOVE S-TOT-3 TO COL-3A. TEMP-2.
    MOVE S-TOT-4 TO CQL-4A.
    PERFORM VAR1-AND-PERCENT.
DEPREC-INT-TAXE5.
    IF CC-NO-1 EQUAL '5» THEN
        ADD AMT-1 TO INT-C
        ADD AMT-3 TO INT-P
        MOVE '!' TO INT-FLAG
        GO TO TAXES-END.
    IF CC-NO-1 EQUAL '6' THEN
        ADD AMT-1 TO TAX-C
        ADD AMT-3 TO TAX-P
        MOVE 'I1 TO INT-FLAG
        GO TO TAXES-END.
    IF SA-NO EQUAL '10' THEN
        ADD AMT-1 TO DEPRE-C
        MOVE •!' TO INT-FLAG.
TAXES-END.
    EXI T.
WRITE-DEPREC-INT-TAXES.
    MOVE SPACES TO NEG-OUT.
    PERFORM SKIP-LINE.
    MOVE CAT-NAME (10) TO NAME-8.
    MOVE HEAD-STRIP-2A TO HEAD-STRIP-OUT.
    MULTIPLY MONTH BY DEPRE-C GIVING  DEPRE-P.
    MOVE DEPRE-C TO COL-1A.
    MOVE DEPRE-P TO COL-2A.
    MOVE ZEROS TO COL-3A, COL-4A. CDL-5A, COL-6A.
    PERFORM HRITE-DATA-LINE-A.
    PERFORM PAGE-OVFLOW.
    ADD OEPRE-C TO TOT-1.
    ADD DEPRE-P TO TOT-2.
    MOVE TOT-2 TO TOT-T3
    PERFORM WRITE-TOTALS.
    MOVE SPACES TO NEG-OUT.
    MOVE CC-NAME (5) TO NAME-8.
    MOVE HEAD-STRIP-2A TO HEAD-STRIP-OUT.
    MOVE INT-C TO COL-1A.
    MOVE INT-P TO COL-2A.
    MOVE ZEROS TO COL-3A, COL-4A, COL-5A. COL-6A.
    PERFORM WRITE-DATA-LINE-A.
    ADD INT-C TO TOT-1.
    ADD INT-P TO TOT-2.
    MOVE CC-NAME (6) TO NAME-8.
    MOVE HEAD-STRIP-2A TO HEAD-STRIP-OUT.
    MOVE TAX-C TO COL-1A.
    MOVE TAX-P TD COL-2A.

                           306

-------
    PERFORM WRITE-DATA-LINE-A
    ADD TAX-C TD TOT-1.
    ADO TAX-P TC TOT-2.
            SUBROUTINES  FDR  PART-B
KRITE-SUB-TITLE-B .
    MOVE HEADING'S TD PRlNT-LINt.
    PERFORM PRINT-LINE-OUT.
    PERFORM SKIP-LINE.
    MOVE HEAD1N&-9 TD PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    MOVE HEADING-ID  TD  PRINT-LINE.
    PERFORM PRINT-L1NE-UUT.
    MOVE HEADING-11  TG  PRINT-LINE.
    PERFORM PRINT-LINE-OUT.
    PERFORM SKIP-LINE 2  TIMES.
WRITE-COST-CFNTER .
    PERFORM PAGE-OVFLOW.
    MUVE CC-NAME  (J)  TO  CC-OUT,  CC-GUTS.
    MOVE DATA-LINE-D  TD  PRINT-LINE.
    PERFORM PRINT-L1NE-DUT .
    IF J < 5 MOVE  'PAYROLL COSTS:       '  TD C-CAT-SUB,
             MOVE  DATA-LINE-E  TO PRINT-LINE,
             PERFORM  PRINT-LINE-OUT.
    PERFORM OOU6LE-SDRTED-FILE  THRU  0 A TA -L I NE-EX 1 T    VARYING K
            FROM  1 BY  1  UNTIL  K  GREATER THAN  10.
    PERFORM SKIP-LINE  3  TIMES.
COST-CENTER-END.
    EXI F.
DOUBLE-SORTED-FILE.
    MOVt  '0' TD PRINT-REO-FLAG.
READ-DS-FILE .
    READ SORTED-FILE  AT  END  GU  TO DS-'F I LE-COMPLE TE .
    MULTIPLY MONTH BY  AMT-6.
    DIVIDE AMT-t.  BY  12  GIVING  AMT-6.
    IF FLAG-YES THEN  PERFORM I NT -ANU-TAX ES .
    IF FLAG-0  THEN
        MOVE CAT-NAME  (K)  TO C-CAT-OUT
        MGVE HEAD-STRIP-IB  TO  HEAD-OUT.
    MCVt CC-ND-1  TD  CC-J.
    MOVE SA-NO TO  SA-K.
    IF CC-J NOT EQUAL  J  OR  SA-K  NOT  EQUAL  K THEN
                                 GO TO WRITE-DATA-LINES.
    MOVE  'I1 TD PRINT-REO-FLAG.
    ADD AMT-3  TO  S-TOT-1.
    ADD AMT-6  TU  S-TDT-2.
    GO  TO  REAU-DS-FILE .

                               307

-------
WRITE-DATA-LINES.
    AOD S-TUT-1 TO TOT-1. TGT-3, TEMP-1.
    ADD S-TDT-2 TO TOT-2. TOT-4, TEMP-2.
    MOVE S-TDT-1 TD COL-IB.
    MOVE S-TOT-2 TO COL-2B.
    PERFORM VARI-AND-PERCENT.
    MOVE AMT-3 TO S-TOT-1.
    MOVE AMT-6 TO S-TGT-2.
    IF K EQUAL 6 AND J LESS THAN 5 THEN
            MOVfc 'OTHER DIRECT COSTS:  ' TO  C-CAT-SUB
            MOVE  DATA-LINE-E TO PRINT-LINE
            PERFORM PRINT-LINE-OUT .
    PERFORM WRITE-DATA-LINE-B.
    PERFORM WRITE-CC-TOTALS.
    PERFORM PAGE-OVFLOW.
    MOVE '0' TO PRINT-REQ-FLA&.
    IF K EQUAL 10 AND J EQUAL 4 THEN
            MOVE '!' TO INT-FLA&
            GO TO READ-DS-FILE.
OATA-LINE-EXIT.
    EXIT.
WRITE-CC-TOTALS.
    IF K EQUAL 10 AND J LESS THAN  5 THEN
            MOVE TOT-3 TO COL-IB;  TEMP-1
            MOVE TOT-4 TO COL-2B;  TtMP-2
            MOVE HEAO-STRIP-2B TO  HEAD-OUT
            PERFORM VARI-AND-PERCENT
            PERFORM WRITE-OATA-L1NE-B
            MOVE ZEROS TO TOT-3, TOT-4, TOT-5,  TOT-6
DS-FILE-COMPLETE.
    IF FLAG-1 THEN
        ADD S-TOT-1 TO TQT-1, TEMP-1
        ADD S-TOT-2 TO TOT-2, TEMP-2
        MOVE S-TOT-1 TO COL-IB
        MOVE S-TOT-2 TO COL-2B
        PERFORM VARI-AND-PERCENT
        PERFORM WRITE-DATA-LINE-B
        PERFORM WRITE-CC-TOTALS.
    &0 TO DATA-LINE-EXIT.
WRITE-OP-COSTS.
            MOVt 'OPERATING            ' TO  CC-OUTS.
            MOVE TOT-1 TO COL-IB,  TtMP-1.
            MOVE TOT-2 TO COL-2B,  TEMP-2.
            MOVE TOT-1 TO TOT-T5
            PERFORM VARI-AND-PERCENT.
            MOVE HEAD-STRIP-2B TO  HEAD-DUT.
            PERFORM URITE-OATA-LINE-B.
INT-AND-TAXES.
    IF CC-NO-1 EQUAL '5' THEN
            ADD AMT-3 TO INT-C
                          308

-------
            ADD AMT-6 TO INT-P
            GO TO READ-DS-FILE.
    IF CC-NO-1 EQUAL  '6' THEN
            ADD AMT-3 TO TAX-C
            ADD AMT-6 TO TAX-P.
    GO TO READ-US-FILE.
WRITE-INTEREST.
    PERFORM SKIP-LINE.
    ADD 1NT-C TO TOT-1 .
    ADD INT-P TO TOT-2.
    MOVE INT-C TO COL-IB, TEMP-1.
    MOVE INT-P TO COL-2B, TEMP-2.
    PERFORM VARI-AND-PERCENT.
    MOVE CC-NAME (5)  TO C-CAT-OUT.
    MOVE HEAD-STRIP-IB TO HEAD-OUT.
    PERFORM WRITE-DATA-LINE-B.
WRITE-TAXES.
    ADD TAX-C TO TOT-1.
    ADD TAX-P TO TOT-2.
    MOVE TAX-C TO COL-IB, TEMP-1.
    MOVE TAX-P TO COL-2B, TEMP-2.
    PERFORM VARI-AND-PERCENT.
    MOVE CC-NAME (6)  TO C-CAT-OUT.
    MOVE HEAD-STRIP-IB TO HEAD-OUT.
    PERFORM WRITE-DATA-LINE-B.
WRITE-LAST-LINE.
    PERFORM SKIP-LINE.
    MOVE TOT-1 TO COL-IB, TEMP-1.
    MOVE TOT-2 TO COL-2B, TEMP-2.
    PERFORM VARI-AND-PERCENT.
    MOVE 'ALL ITEMS'  TO CC-OUTS.
    MOVE HEAD-STRIP-2B TO HEAD-OUT.
    PERFORM WRITE-DATA-LINE-B.
    PERFORM TOP-NEW-PAGE.
    IF TOT-T3 NOT EQUAL TOT-T5  GO  TO  WRITE-ERROR.
    IF TOT-T4 NOT EQUAL TOT-1   GO  TU  WRITE-ERROR.
WRITE-ERROR.
    PERFORM WRITE-PAGE-HEADING.
    PERFORM SKIP-LINE 5 TIMES.
    MOVE 'ERROR —  PART-A AND  PART-B  TOTALS  DO  NOT  MATCH.  '
            TO PRINT-LINE.
    PERFORM PRIM-LINE-OUT.
    MOVE ZERO TO CDL-6B.
    MOVE TOT-T3 TO  COL-IB.
    MOVE TOT-T5 TO  COL-2B.
    SUBTRACT TOT-T5  FROM TOT-T3  GIVING  COL-5B.
    MOVE 'PART-A, PART-B TOTALS  fc  ERROR.1   TO  C-CAT-OUT.
    MOVE HEAD-STRIP-IB TO HEAD-OUT.
    PERFORM WRITE-DATA-LINE-B.
    MOVE TOT-T4 TO  COL-IB.


                           309

-------
    MOVE TDT-1  TO CDL-2B.
    SUBTRACT TDT-1 FROM TUT-T4 GIVING COL-5B
    PERFORM WRI f E-DATA-L I NE-B .
    PERFORM TOP-NEW-PAGE.
    PERFORM WRITE-COUNTERS.
    GO TO CLOSE-FILES.
            FINI
READ-SORT-INPUT.
    READ COST-MATRIX-FILE AT END
        GG TO READ-SDRT-INPUT-END.
    IF CC-Nu EQUAL '4301' OR ^302' OR
                OR '4321' OR '4322' OR  '4421«
                         GO TO READ-SORT-INPUT.
    IF SA-NU GREATER THAN '12' THEN GO  TO READ-SORT-INPUT
    RELEASE SORT-INPUT FROM CM-REC .
    ADD 1 TO SCT-ONE.
    GO TO READ-SORT-INPUT.
READ-SORT-INPUT-END.
    EXIT.
WRITE-SORT-OUTPUT.
    RETURN FILE-SORT RECORD INTO INPUT-REC
        AT END GO TO WR I T E-SORT-CUTPUT-E ND .
    WRITE INPUT-REC.
    ADD 1 TO SCT-TWO.
    GO TO WRITE-SORT-OUTPUT.
WRITE -SORT-OUTPUT -END.
    EXIT.
WRITE-COUNTERS.
    MOVE  'NUMBER OF ACCOUNTS SORTED' TO HEAD-OUT.
    MOVE SCT-ONE TO COL-IB.
    MOVE SCT-TWO TO COL-2B.
    MOVE OATA-LINE-B TO PRINT-LINE.
    MOVE ZEROS TO COL-5B, COL-6B.
    PERFORM PRINT-LINE-OUT.
    MOVE ZEROS TO SCT-ONE, SCT-TWO.
    MOVE ZEROS TO COL-IB. COL-2B.  CDL-5B.
CLOSE-FILES.
    CLOSE   CARO-IN, COST-MATR I X-F I L E ,
            FINANCIAL-ACCT-TABFI .
            SORTED-FILE, PRINT-OUT.
E-O-J.
    STOP RUN.
                            310

-------
 PGMNAME=WUASPLV1
SYSIN      DD    *
 IDENTIFICATION DIVISION.
 PROGRAM-ID. WUASPLV1.
 AUTHOR. ACT SYSTEMS.  INC
         SUITE 200
         807 W MORSE BLVD
         WINTER PARK,  FLA  32789.
 DATE-hRITTEN. 02/06/78.
 REMARKS.    THIS PROGRAM  READS COST  MATRIX  FILE
             AND BUILDS  THE  LEVEL  1 REPORT.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. IBM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01 IS NEW-PAGE.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
     SELcCT CARD-IN
       ASSIGN TO UR-25
-------
01  INPUT-CARD.
    05 DATE-IN
    05 TITLE-IN
    05 FILLER
01  NUMBER-CARD.
    05 MIL-GALS OCCURS
    05 ACTUAL-TO-BUOGET
    05 FILLER
                                PIC
                                PIC
                                PIC
X118).
X(24).
X(38 ).
                         TIMES PIC 9(7>V999.
                                pIC 9(3)y99.
                                PIC X(35).
    ABOVE MIL-GALS IS AS FOLLOWS
    (1) RPW (REVENUE PRODUCING WATER)
    (2) TREATED WATER MONTH
    (3) RPW YEAR TO DATE
    (4) RPW PREVIOUS YEAR.
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    05 FILLER                   PIC X.
    05 PRINT-DATA               PIC XU32)
WORKING-STORAGE SECTION.
77  MILLION-GAL
77  PREVIOUS-MILLION-GAL
77  ACCUM-ACROSS
77  SAVt-AMT
77  I
77  PAGE-CTR
77  J
77  K
77  PCT-CTR
77  FIN-PCT
01  HEADING-1.
    05 FILLER
    05 FILLER

    05 FILLER
01  HEADING-2.
    05 FILLER
    05 DATE-OUT
    05 FILLER
    05 FILLER
    05 FILLER
    05 FILLER
    05  PAGE-NR
01  HEADING-3.
    05 FILLER       PIC X(53) VALUE
    05 TITLE-OUT    PIC X(2
ES
ES

ES
*
»


•
'.
»
•

•
' .

                                                         INFURMATI
                                     SPACES
                                     SPACES
                                     SPACES
                               312

-------
01
01  HEADING-**.
    05 FILLER
    05 FILLER
    05 FILLER
    05 FILLER
    05 FILLER
01  HEADING-5.
    05  FILLER
    05  FILLER
    05  FILLER
01  HEAUING-6.
    05 FILLER
       FILLER
       FILLER
       FILLER
       FILLER
01  DATA-LINE.
    05 FILLER
    05 DESCRIPTION
       FILLER
       POSIT OCCURS
       10  AMTS
       10  FILLER
       FILLER
    PCT-LINE .
    05 FILLER
    05 DESCRIPTIONI
       FILLER
       PERCENT
       FILLER
01  MATRIX.
    05 FUNCTIONS  OCCURS
       10  SUB-FUNCTIONS
           15 ACCT
01  TITLE-1.
    05 TITLE-ONE.
       10  FILLER
           FILLER
           FILLER
           FILLER
           FILLER
       TITLE-TWO
       10  TITLE  OCCURS
01  TITLE-1-A.
    05 TITLE-ONE-A.
       10  FILLER
       10  FILLER
       10  FILLER
       10  FILLER
       10  FILLER
PIC
PIC
PIC
PIC
PIC
X (26)
X (26)
X (26)
X(26)
X (26)
VALUE
VALUE
VALUE
VALUE
VALUE
1
1
•MENT
•RT
i
                                                 CATEGORY
                                             ACQUISITION
                                              DELIVERY
                                            INTEREST
                                             TAXES       T
                        TREAT '
                        SUPPO'
                        TOTAL'
                       OTAL   '
                         PIC  X(60)
                         PIC  X(12)
                         PIC  X160I
VALUE
VALUE
VALUE
                     SPACES .
                     M LEVEL
                     SPACES.
                           I  )
    05
    05
    05
    05
    05
    05
    05
    05
    05
    05
 PIC
 PIC
 PIC
 PIC
 PIC

 PIC
PIC
 PIC
 8 T
 PIC

 PIC

 PIC
 PIC
 PIC
 PIC
 PIC
 X{26) VALUE '
 X(26) VALUE '
 X(26) VALUE '
 X(26) VALUE '<•<•
 X(26) VALUE '

 X(10) VALUE SPACES.
X(20) VALUE SPACES.
 X(3) VALUE SPACES.
IMES.
 -(8).--.
  PIC X.
 XXX VALUE SPACES.

 X(10) VALUE SPACES.
 X(20) VALUE SPACES.
 X(3) VALUE SPACES.
 -(8)	  OCCURS 8
 XXX VALUE SPACES.
              a* <•
              <><•<>
           Ot>»OC>»4
         TIMES
                         6  TIMES.
                         OCCURS  5  TIMES.
                                 PIC SSM8JV99.
       10
       10
       10
       10
    05
PIC
PIC
PIC
PIC
PIC
REDE
X
X
X
X
X
F
(20)
(20)
(20)
(20)
(20)
INES
VALUE
VALUE
VALUE
VALUE
VALUE
TITLE
'CURRENT
•PREVIOUS
•CURRENT
•CURRENT
'PREVIOUS
-ONE .
PE
P
Pt
YE
Y
RIOD
ERIGD
RIOD
AR (Y
EAR (
T
Y
i
i
i
D) '
TO) '
                        5  TIMES PIC X(20)
P
P
P
P
P
I
I
I
I
I
C
C
C
C
C
X(
X(
X(
X(
X(
20)
20)
20)
20)
20)
VALUE
VALUE
VALUE
VALUE
VALUE
                                  'UNIT COST WMG
                                  •UNIT COST WMG
                                  'PREVIOUS YEAR */MG
                                  'UNIT COST S/MG
                                  'UNIT COST S/MG
                                313

-------
    05 TITLE-TWO-A REDEFINES TITLE-ONE-A.
       10 T1TLE-A OCCURS 5 TIMES PIC X(20).
01  TITLE-3.
    05 TITLE-THREE.
       10 FILLER PIC X(20) VALUE 'CURRENT  PERIOD       '
       19 FILLER PIC X(20> VALUE 'YEAR  TO  DATE         '
    05 TITLE-FOUR REDEFINES TITLE-THREE.
       10 TITLE-B OCCURS 2 TIMES PIC X(20).
01  TITLE-3-A.
    05 TITLE-THREt-A.
       10 FILLER PIC X(20) VALUE 'TOTAL COST           '
       10 FILLER PIC X(20) VALUE 'TOTAL COST           '
    05 TITLE-FOUR-A REDEFINES TITLE'THREE-A.
       10 T1TLE-X OCCURS 2 TIMES PK X<20).
01  TITLE-5.
    05 TITLE-FIVE.
       10 FILLER PIC X(20) VALUE ' % OF  TOTAL           '
       10 FILLER PIC X(20) VALUE '* OF  PREVIOUS        '
    05 TITLE-SIX REDEFINES TITLE-FIVE.
       10 TITLE-C OCCURS 2 TIMES PIC X(20).
01  TITLE-5-A.
    05 TITLE-FIVE-A.
       10 FILLER PIC X(20) VALUE 'YEAR  TO  DATE         '
       10 FILLER PIC X(20) VALUt 'TUTAL  (YTD)          '
    05 TITLE-SIX-A REDEFINES TITLE-FIVE-A.
       10 TITLE-D OCCURS 2 TIMES PIC X(20).
PROCEDURE DIVISION.
OPEN-FILES.
    DREW INPUT CARD-IN, COST-MATRIX-FILE
          OUTPUT PRINT-OUT.
HOUSEKEEPING.
    MOVE ZEROS TO MATRIX, PCT-CTR.
READ-TITLE-CARD.
    READ CARD-IN, AT END GO TO  END-OF-JOB.
    MOVE DATE-IN TO DATE-GUT.
    MOVE TITLE-IN TO TITLE-OUT.
READ-PREVIOUS-DIVISDR-CARD.
    READ CARD-IN AT END GO TO END-OF-JOB.
    EXAMINE NUMBER-CARD REPLACING  ALL  '  >  BY  'O1.
    MOVE MIL-GALS  (1) TO PREV IOUS-MlLLION-GAL .
PEAD-DIVISOR-CARD.
    READ CARD-IN, AT END GO TO  END-DF-JOB.
    EXAMINE NUMBER-CARD REPLACING  ALL  '  '  BY  '0'.
    MOVE MIL-GALS  (1) TO MILLION-GAL.
WRITE-HEADING5.
    ADD  1 TO  PAGE-CTR.
    PERFORM MOVE-SPACES.
    MOVE PAGE-CTR TO PAGE-NR.
    WRITE PRINT-LINE BEFORE ADVANCING  NEW-PAGE.
    MOVE HEADlNG-1 TO PRINT-DATA.
                             314

-------
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD1NG-2 TO PRINT-DATA.
    PERFORM PRIiNT-LINE-OUT.
    MOVE HEAD1N&-3 TO PRINT-DATA.
    PERFORM PRINT-LINE-DUT.
    MOVE HEADING-5 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU  PR 1 NT-LINE-OUT.
    PERFORM PRINT-LINE-DUT.
    MOVE HEADING-^ TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MCVE HEADING-6 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM SKIP-LINE 2 TIMES.
PROCESS-MATRIX.
    READ COST-MATRIX-FILE AT  END GO  TO  PROCESS-TIME.
    IF (COST-CAT < 1 OR > 12)  OR (PQS1  <  1  UR  >  M  THEN
        GO TO PROCESS-MATRIX.
    ADD FIGS  (1) TO ACCT  (POS1,  1 ) .
    ADD FIGS  (2) TO ACCT  IPOS1,  2) .
    ADD FIGS  (3) TO ACCT  (POS1,  <*) .
    ADD FIGS  (6) TO ACCT  (POS1,  3).
    ADD FIGS  (6) TO ACCT  (PQS1,  5).
    GO TO PROCESS-MATRIX.
PROCESS-TIME .
    PERFORM MOVE-AMOUNTS  VARYING J  FROM  1 BY  1  UNTIL  J  >  5.
    MOVE 1 TO J K.
    PERFORM MOVE-AMOUNTS-1  2  TIMES.
    PERFORM GET-PERCENTAGES.
    GO TO END-OF-JOB.
MOVE-AMOUNTS.
    IF J = 2  THEN
        MOVE  PREVIOUS-MILLION-GAL  TL MILLION-GAL.
    IF J = <+  THEN
        MOVE  MIL-GALS  (3)  TO  MILLION-GAL.
    PERFORM MOVE-AMOUNTS-A  VARYING  i  FROM i BY  i JNTIL  I  > 5.
    MOVE ACCUM-ACKOSS TO  AMTS OF POSIT  (6).
    DIVIDE ACCT  (6, J)  BY MILLION-GAL GIVING AKT.S OF  POSIT (7)
    DIVIDE ACCT  (6, J)  BY MILLION-GAL GIVING SAVE-AMT.
    AUD ACCUM-ACROSS, SAVE-AMT GIVING AMTS OF POSIT (8).
    MOVE TITLE  (J) TO DESCRIPTION.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE SPACES  TU DATA-LINE.
    MOVE TITLE-A (J)  TO DESCRIPTION.
    MOVE tJATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU  PR I NT-LINE-OUT.
    MOVE SPACES  TO DATA-LINE.
    MLVE ZEROS  TO ACCUM-ACROSS.

                               315

-------
MOVE-AMOUNTS-l.
    PERFORM MQVE-AMDUNTS-B VARYING I FROM 1 BY 1 UNTIL I > 5.
    MOVE ACCUM-ACRD5S TU AMTS OF POSIT (6).
    MOVE ACCT (6, J) TO AMTS OF POSIT (7).
    ADD ACCT (6, J), ACCUM-ACROSS GIVING AMTS OF POSH (8).
    MOVE TITLE-B (K) TO DESCRIPTION.
    PERFORM DATA-LINE-OUT.
    MOVE SPACES TO DATA-LINE.
    MOVE TITLE-X (K.) TO DESCRIPTION.
    PERFORM DATA-LINE-OUT THRU PR I NT-LINE-OUT.
    MOVE ZEROS TO ACCUM-ACROSS.
    MOVE SPACES TO DATA-LINE.
    ADD 1 TC K.
    ADD 3 TO J.
MOVE-AMOUNTS-A.
    DIVIDE ACCT (I, J) BY MILLION-GAL GIVING AMTS OF POSIT (j)
    DIVIDE ACCT (I, J) BY MILLION-GAL GIVING SAVE-AMT.
    ADD SAVE-AMT TO ACCUM-ACROSS.
MOVE-AMOUNTS-B.
    MOVE ACCT (I, J) TO AMTS OF POSIT (I).
    ADD ACCT (I, J) TO ACCUM-ACROSS.
GET-PERCENTAGES.
    PERFORM MOVE-SPACES THRU PR1NT-LINE-OUT .
    MOVE 'BUDGET VARIANCE     • TO DESCRIPTION.
    MOVE ACTUAL-TO-BUDGET TO AMTS OF POSIT (8).
    PERFORM DATA-LINE-OUT.
    MOVE SPACES TO DATA-LINE.
    MOVE 'YEAR TO DATE        ' TO DESCRIPTION.
    PERFORM DATA-LINE-DUT THRU PR INT-LINE-OUT.
    MOVE 'TREATED WATER       ' TO DESCRIPTION.
    MOVE MIL-GALS (2) TO AMTS OF POSIT (8).
    PERFORM DATA-LINE-OUT.
    MOVE SPACES TO DATA-LINE.
    MOVE 'CURRENT PERIOD      ' TO DESCRIPTION.
    PERFORM DATA-LINE-OUT THRU PR INT-LINE-OUT .
    MOVE 'REVENUE PRODUCING   • TG DESCRIPTION.
    MOVE MIL-GALS (1) TO AMTS OF POSIT (8).
    PERFORM DATA-LINE-OUT.
    MOVE SPACES TG DATA-LINE.
    MOVE 'WATER CURRENT PERIOD1 TO DESCRIPTION.
    PERFORM DATA-LINE-OUT THRU PR I NT-LINE-OUT .
    MOVE 'REVENUE PRODUCING   ' TO DESCRIPTION.
    MOVE MIL-GALS (3) TO AMTS OF POSIT (8).
    PERFORM DATA-LINE-OUT.
    MOVc SPACES TO DATA-LINE.
    MOVE 'WATER (YTD)     '    ' TU DESCRIPTION.
    PERFORM DATA-LINE-OUT THRU PRINT-LINE-OUT.
    MOVE 'REVENUE PRODUCING   ' TG DESCRIPTION.
    MOVE MIL-GALS (4) TO AMTS OF POSIT (8).
    PERFORM DATA-LINE-OUT.
                             316

-------
    MOVE SPACES TO DATA-LINE.
    MOVE 'WATER PREVIOUS YTD   '  TO DESCRIPTION.
    PERFORM DATA-LINE-OUT THRU PRINT-LINE-OUT.
    MOVE 1 TO K .
    MOVE 4 TO J.
    PERFORM PERCENT-ROUTINE 2  TIMES.
PERCENT-ROUTINE.
    MOVE ZEROS TO PCT-CTR.
    PERFORM FIND-PERCENT VARYING  I FROM  1  BY  1 UNTIL  I  >  &.
    ADD ACCT  (6, J) TO ACCUM-ACROSS.
    PERFORM FIND-PERCENT-A VARYING 1 FROM  1 BY 1 UNTIL  1  > 5-
    IF ACCUM-ACROSS > 0 THEN DIVIDE  ACCT (6,  J) BY ACCUM-ACROSS
        GIVING PCT-CTR ROUNDED ELSE  MOVE ZEROS TCI PCT-CTR.
    MULTIPLY  PCT-CTR BY 100 GIVING PERCENT  (7).
    IF ACCUM-ACkOSS > 0 THEN
        MOVE  100 TO PERCENT  (8).
    MOVt TITLE-C (K) TO DESCR IPTI ONI.
    MOVE PCT-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE SPACES TO PCT-LINE.
    MOVE TITLE-D (K) TO DESCR I PT IDN1 .
    MOVE PCT-LliNE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR 1NT-LINE-OUT.
    ADD 1 TO  J K.
FIND-PERCENT.
    ADD ACCT  (I, J) TU ACCUM-ACROSS.
FINO-PERCENT-A.
    IF ACCUM-ACROSS > 0 THEN DIVIDE  ACCT (I,  J) BY ACCUM-ACROSS
        GIVING PCT-CTR ROUNDED ELSE  MOVE ZEROS TO PCT-CTR.
    MULTIPLY  PCT-CTR BY 100 GIVING PERCENT  (I).
DATA-LINE-OUT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
MOVE-SPACES.
    MOVE SPACES TO PRINT-DATA.
PRINT-LINE-OUT.
    WRITE PRINT-LINE BEFORE ADVANCING  1.
SKIP-LINE .
    PERFORM MOVE-SPACES THRU PR 1 NT-LINE-OUT .
END-OF-JOB.
    CLOSE CARD-IN, COST-MATRIX-FILE
          PRINT-OUT.
    STOP RUN.
                                317

-------
     PGMNAME=WUASPWAR
S Y 5 KM    00    *
 ID DIVISION.
 PROGRAM-lL). WUASPWAR.
 AUTHOR. ACT SYSTEMS, INC
         SUITE 200
         807 M MORSE BLVD
         WINTER PARK, FL 32769.
 DATE-WRITTEN. JAN 1978.
 DATE-COMPILED.
 REMARKS.    THIS PROGRAM READS THE COST MATRIX  FILF
             AND PRINTS THE WATER UTILITY REPORT
             CALLED  'WATER SUPPLY DATA ANALYSIS  REPORT'
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. IBM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01 IS NEW-PAGE.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
     SELECT CARD-IN
         ASSIGN TO UR-2540R-S-CARD1N
         ACCESS MODE IS SEQUENTIAL.
     SELECT COST-MATRIX-FILE
         ASSIGN TO DA-3330-I-CMF1LE
         ACCESS MODE IS SEQUENTIAL
         RECORD KEY  IS CM-NUMBER.
     SELECT FILE-SORT
         ASSIGN TO UT-3330-S-FILESORT
         ACCESS MODE IS SEQUENTIAL.
     SELECT SORTED-FILE
         ASSIGN TO UT-3330-S-SORTEDFI
         ACCESS MODE IS SEQUENTIAL.
     SELECT PRINT-OUT
         ASSIGN TO UR-1403-S-PRINTOUT
         ACCESS MODE IS SEQUENTIAL.
 DATA DIVISION.
 FILE SECTION.
 FD  CARD-IN
     RECORD CONTAINS 80 CHARACTERS
     LABEL RECORDS ARE OMITTED
     DATA RECORD IS  DATE-CARD.
 01  DATE-CARD.
05

05
05
05
DATE-IN.
10 MO-IN
10 DAY-YR
TITLE-IN
FILLER
F1SCAL-YR
PIC X ( 3 ) .
PIC X( 15) .
PIC X(24) .
PIC X( 8)
PIC X(24
                           318

-------
     05  FILLER
     05  NG-UKS
     05  RPT-PERIQD
 01   WATER-CARD.
     05  WU-NAME
     05  SYSTEM
     05  SERIES
     05  PARALLEL
     05  SER-PAR
     05  WATtR-SULD       PIC S9(7)V999-
     05 ZQNF-WAThR.
         10  MIL-GAL OCCURS 6 TIMES PIC S9(7)V999
 FD   COST-MATRIX-FILE
     RECORD CONTAINS 80 CHARACTERS
     BLOCK CONTAINS 5 RECORDS
     LABEL RECORDS ARE STANDARD
     DATA RECORD  IS CM-REC.
 01   CM-REC.
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
X(4
X.
X.
XX.
99.
99.
99.
99.
S9(
05
05



05
MATCH-NU
CM-NUMBER .
10 FA-NU
10 CC-NU
10 SA-NU
AMT-S
PIC X (4 ) .

PIC X(10) .
PIC X<4) .
PIC XX.
PIC S9(8)V99
                                 OCCURS b  TIMES
*** **
THE ABOVE AMOUNTS ARE AS FOLLOWS
    (1) -- CURRENT COST AMOUNT
    (2) — PREVIOUS MONTH COST AMOUNT
    (3) — CURRENT COST AMOUNT YEAR Tb
    (4) — BUDGET AMOUNT
    (5) — BUDGET AMOUNT YEAR
    (6) -- PREVIOUS YEAR COST
*
*
*

*****
 SD  FILt-SORT
     RECCJRD CONTAINS  80  CHARACTERS
     DATA RECORD  IS SORT-INPUT.
 01  SORT-INPUT.
     05
     05
                                             DATE  (YTD)
                                   TLJ DATE  (YTD)
                                   AMOUNT  (PYC)
         FILLER           DIC  X(4) .
         FIRST-ID         PIC  X(10)
     05  CC-NOS           PIC  X(4).
     05  5A-NOS           PIC  XX.
     05  FILLER      PIC  X(60) .
 FD  SORTEO-FILE
     BLOCK CONTAINS  5  RECORDS
     RECORD CONTAINS 80 CHARACTERS
     LABfcL RECORDS ARE STANDARD
     DATA RECORD  IS  INPUT-REC.
 01  INPUT-REC.
     05  MATCH-NO         PIC  X(4).
     05  FA-NO.
                           319

-------
        10  FA-NO-1
        10  FA-NO-2
    05  CC-ND.
        10  CC-NO-1
        10  CC-NO-2
        10  CC-NO-3
        10  CC-NO-4
    05  5A-ND
    05  AMIS.
        10  AMT-1
        10  AMT-2
        10  AMT-3
        10  AMT-4
        10  AMT-5
        10  AMT-6
FD  PRINT-OUT
    RECORD CONTAINS
    LABEL RECURDS AR
    DATA RECORD IS P
01  PRINT-DATA.
    05  FILLER
    05  PRINT-LIME
WORKING-STORAGE SECT
77  LINE-CT
77  PAGE-CT
77  MAX-LINE
77  I
77  J
77  K
77  L
77  N
77  ZUNES
77  DOLi
77  TEMP-1
77  TEMP-2
77  RPT-FLAG
    88  RPT-A
    88  RPT-B
01  COST-CENTERS.
    05  CC-LIST.
        10  CC-LIST-
    P1C
    PIC
 X 12)
 X(8)
    PIC X.
    PIC X.
    PIC X.
    PIC X.
    PIC XX
   PIC
   PIC
   PIC
   PIC
   PIC
   PIC
59(8)V99.
59(8)V99.
S9(8)V99.
S9(8 )V99.
S9(8)V99.
59(8 } V99.
133 CHARACTERS
F OMITTED
RINT-UATA.

T









P
P
P



I
P
P
P
P
P
P
P
P
P
I
I
I




PI
PI
C
C
X.
X (132) .
ON.
I
I
I
I
I
I
I
I
I
C
c
C


c
c
c
c
c
c
c
c
c





9(
9{
99
99
99
99
99
99
99
S9(
S9(
S9(
P

4
4
) COM
P
) COUP
COMP


COM
COM
P
P
CDMP


COM
COM
P
P
COMP
8
8
8
I

)V99
JV999
)V999
C X


VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VA




G.
1.
57.







0
0



u.
•
.
u .
1 .
1 .
LUE +0.
VALUE +0.
VALUE +0.
VA
VA
LUE '
LUE '
VALUE '
1
1
2
1
1
1
•
•
•
     PIC X(12U)  VALUE
        10  CC-LI5T-2
     PIC X(120)  VALUE
                  'ACQUISITION
                  •TREATMENT
                  '  TRANSMISSION
                  '  DISTRIBUTION
                  '  STORAGE
                  PUMPING

                  •SUPPORT SERVICES
                  ' INTEREST
                                320

-------
                                             1 TAxEb
                                             1 TOTAL
                                             1   DELIVERY
    05  CC-NAHES  REDEFINES  CC-L1ST.
        10  CC-NAME  OCCURS  12 TIMES   PIC X(20).
01  MATR IX .
    05  FUNCTIONS  OCCURS  10 TIMES.
        10  SUB-FUNCTIONS OCCURS  7  TIMES.
            15  POSIT     PIC  S9(8)V99.
01  SUB-SUB-TOTAL.
    05  SS-TOT            PR  S9(8)V99
01  SUB-TOTAL.
    05  S-TOT             PIC  S9(6)V99
01  COL-TOTAL.
    05  C-TUT             PIC  69(fe)V99
OCCURS 7 TIKES .

UCCUkS 7 TIMES .

OCCURS 7 TIMES .
*
*
*****
01



01







01




H
0
0
0
H
0
0
0
0
0
0
0
EAO
5
5
5
EAD
5
5
5
5
5
5
5
HEAD
0
0
0
0
5
5
5
5
05

01
0
H
5
EAD
05


01





0
0
5
5
HEAD
0
0
0
0
0
5
5
5
5
5
I
F
F
F
I
F
D
F
F
F
F
NG-
I
I
I
LL
LL
LL
NG-
I
A
I
I
I
I
LL
TE
LL
LL
LL
LL
H
1
E
E
E
2
E
EADI
*
R
R
R
.
R
-OU
E
E
E
E
PAGE-
I
F
R
NG-
I
P
WK
F
T
F
I
F
F
F
I
F
F
F
F
F
I
1
1
LL
T-
3
E
P
R
R
R
R






T




OUT
.
R
D



S-OUT
LL
TL
LL
NG-
I
I
I
LL
SC
LL
NG-
I
I
I
1
I
LL
LL
LL
LL
LL
E
E
E
6
E
-
E
4
E
E
E
E
E
R

-OUT
R
.
R
YR
R
.
R
R
R
R
R











                     PIC
P
P
P
P
P
P
P
P
P
P
1
I
I
I
I
I
1
I
I
I
C
C
C
C
C
C
C
C
C
C
X (56
X(20
X (56
X 12
X
X
X
X
X
z
18
34
3)
55
6)
4)
)
)
)
)
)
)

)

„
VALUE
VALUE
VALUE
VALUE
•
VALUE
VALUE
VALUE
VALUE

SPAC
'
COS
SPAC
»

5
«
LAS

PAC
FOR
SPAC
i

PAG

F
T
E
T

E
i
E
E

S.
ANALYb
S.
ENTRY:

S.
.
S.
• 1
• •


IS

i






                                                        REPORT '
                          PIC  X(12)   VALUE 'RPT PERIUO: '
                          PIC  X(8 ) .
                          PIC  X(8 ) .
                         PIC  X(26)  VALUE SPACES.
                         PIC  X(24) .
                         PIC  X(54)  VALUE SPACES.
PI
PI
X (9
PI
PI
PI
PI
PI
C
C
6
C
C
C
C
C
X
X

X
X
X
X
X
(12)
(24) .


(20)
(1
(1
(1
(1
2)
4)
4)
4)
•VALU

VALU
VALU
VALU
VALU
VALU
E

E
E
E
E
E
'Y

1 I
SP
i
i
i
TD START:

TEM DESC
ACES .
zu
ZL
ZLi

RIP

NE
NE
NE
1
•

TI

1
2
3


ON

•
1
•
                                321

-------
     05   Z-4
     05   Z-5
     05   FILLER
     05   Z-OUT
     05   FILLER
 01   HEADING-5.
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
 01   DATA-LINE-A.
     05   LTR-DUT
     05   NAME-OUT
     05   COLS
     05   FILLER
 01   DATA-LIIME-B.
     05   FILLER
     05   PERCENT OCCURS 7
         10  PERC
     05   FILLER
 01   DATA-LINE-C.
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
     05   FILLER
*****
*
*    START OF PROGRAM
*
*****
 PROCEDURE DIVISION.
 OPEN-FILES.
     OPE.M    INPUT   CARO-IN, COST-MATRIX-FILE,
             OUTPUT  PRINT-OUT.
 READ-TITLE-CARD.
     READ CARD-IN AT END GO TO TITLE-PARAGRAPH.
     PERFORM FILL-HEADINGS.
 READ-kATER-CARD.
     READ CARD-IN AT END GO TO TITLE-PARAGRAPH.
 TITLE-PARAGRAPH.
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
T
P
P
P
P
P
P
P
P
P
P
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
1
I
I
I
I
I
I
I
I
I
C
C
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
M
c
c
c
c
c
c
c
c
c
c
Xi
Xi
XI
X!
X I
X 1
Xi
X I
X \
X
X
Xi
Xi
X
X 1
XI
XI


X
Xi
ES,
! 1
( 1
[4
: i
;i
[ i
( i
1 2
( 1
(1
( 1
4 )
4)
I
0)
6)
5)
5)
)
4 )
4)
4)
(14)
( 1
(1
(1
12
4 )
4 )
6)
) .
.
.
VALU
.
VALU
VALU
i VALU
VALU
VALU
i VALU
' VALU
i VALU
VALU
VALU
VALU



E

E
E
E
E
E
E
E
E
E
E
E



SPAC

1
i ***


ES.

TOTA
** **** *** **




LS
*•
t**** ****** i
SPAC
i
i
i
i
i
i
i

ES .
**********
****** * * * *
**********
**********
**********
**********
********


i
•
i
i
.
i
•
i
•
**

(30) .


(2
(3


*



"
) VALUE
1 )

bBB-(
X
X
X
X
x>
X
X
X
X
(3
)
(34]
( 1
(1
(1
4]
4)
4 )
(14]
(1
4]
(141
(1
4]
i VALU

9) .-.
VALU
1 VALU
1 VALU
VALU
> VALU
i VALU
1 VALU
1 VALU
1 VALU
E


E
E
E
E
E
E
E
E
E
n r

SPAC
SPAC


SPAC
SPAC
i
i
i
i
i
i
i
CURS 7 TIME
ES .
ES .


ES .
ES.
•/,
*
%



'4
S.






' .
i
.
1 .
i
' .
i
1 .
                               322

-------
    PERFORM TOP-NEW-PAGE.
    PERFORM WRITE-PAGE-HEADING.
HOUSEKEEPING.
    MCVt ZEROS  TO  MATklX.
    PERFORM ZERU-SUB-TCTALS  THRU ZEkH-TQTALS.
SORT-RECORDS.
    OPEN    OUTPUT    SORTED-FILE.
    SORT FILE-SORT ON  ASCENDING  KEY CC-NOS
    INPUT PROCEDURE  RE AD-SORT-INPUT
           THRU  READ-SORT-INPUT-EKD
    OUTPUT PROCEDURt  WRITh-SORT-DUTPUT
            THRU  kRlTE-50KT-OUTPUT-LNU.
    PERFORM REW1 ND-J-ILE .
TEST-CONFIGURATION.
    IF SYSTEM  =   C THEN  GO TO MITE-MATRIX.
    IF SYSTEM  =   1 THEN  GO TO SER1ES-CONF I G.
    IF SYSTEM  -   2 THEN  GO TO  PAKA-CGNFIG.
    IF SYSTEM  =   3 THEN  GO TO  HAk-SER-CONFIG.
    IF SYSTEM  =   4 THEN  GLJ TO  S ER-P AR-S ER-C ONF I G .
    GO TO WRITE-MATRIX.
SERIFS-CONFIG.
    MOVE ZERO  TO  L.
    MOVE  SERIES   TG  ZONES.
    GU TO READ-SORTED-FILE.
PARA-CONFIG.
    MOVE ZERO  TG  L.
    MUVE PARALLEL  TU  ZONES.
READ-SORTED-FILE.
    RtAD SORTED-FILE  AT  ENO  GO  TO END-5URTED-F  I L F. .
    IF PAGE-CT  EQUAL  2  THEN  MUVE AMT-1 TO-DULS
                        ELSE  MOVE AMT-3 TO DDLS.
    IF DDLS   =  (j  GO  TG  R E AO-SORT E D-F I L E .
    MCVc CC-NO-1  TO  I.
    IF CC-NO-1  NOT EQUAL  '3' THEN GO TO STEP-^.
    MUVE CC-NO-2  TO  L.
    SUBTRACT  1  FROM  L.
STEP-^.
    ADD  L TO  I .
    IF I > 10  THEN MOVE  10 TO I .
    MLVt CC-NO-<+  TO  J.
    IF CC-NU-1  NOT EQUAL   '3' THEN ADD DDLS TO  PLSIT  (I,  6)
                                   ADD DIJLS TO  PuSIT  (10,  6)
    IF WU-NAME  EQUAL  'KE'  PERFORM   KENTON-CO-EXCEPTI DNS
                           THRU KENTON-END.
    IF rtU-NAME  EQUAL  'CO'  PERFORM   COVINGTON-EXCEPT 1UNS
                           THRU CGVlNGTON-tND.
    IF CC-NU-1  -  '3'  THEN  ADD DOLS  TO  POSIT (I, J).
    IF CC-NU-1  =  '3'  THEN  ADD DQLS  TO  POSIT (10, J).
    ADD  DULS   TO  POS IT II, 7) .
    ADD  DDLS   TO  POSIT (1C,  7) .

                              323

-------
    GO TO READ-SQRTED-FILE.
END-SDRTED-FILE.
    ADD DDLS  TO POSIT (10, 7) .
    ADD DULS  TO PCSIT (9, 7) .
    MOVE 3 TO I.
    PERFORM CALCULATE-COSTS THRU END
    IF WU-NAME EQUAL  'CD' THEN GD TD
    MOVE 6 TO I.
    PERFORM CALCULATE-COSTS
STEP-3.
    MOVE 0 TO J.
    PERFORM ADD-DEL-COSTS 5
    PERFORM ZERO-SUB-TOTALS
    GO TO WRITE-MATRIX.
ADD-DEL-COSTS.
                                    -COSTS .
                                     5TEP-3.
                            THRU END-COSTS.
                            T 1M t 5 .
                            THRU ZERO-TOTALS.
ADD
MOVE
ADD

1 TO
POS
POSI

J.
IT
T 1

(3, J)
:<*» J)t

TO
PO


s

POS
IT
TO
I
(
P
T (
5,
OS1
1
J
T
0
)

t
,
(1
                     OR
KENTON-CG-EXCEPTIONS
    IF CC-NO-2 EQUAL
    IF CC-NO-2 EQUAL
    GO TO KENTON-END
STORAGE-CHANGES.
    IF CC-NO-4 -  '5'

    IF CC-NU-4 =  '!'
    GO TO KENTON-END
PUMPING-CHANGES.
    IF CC-NU-4 >  '4'
    IF CC-NO-4 = '1
KENTON-END.
    IF J > 7 THEN MOVE
COVINGTON-EXCEPTIONS
    IF CC-NO-2 EQUAL
    GO TO COVINGTON-END
COV-PUMP-CHANGES.
    IF CC-NO-4 >
    IF CC-NO-4 =
COVINGTON-END.
    IF J > 7 THEN
CALCULATE-COSTS.
    IF WATER-SOLD = 0
    MOVE POSIT (I, 1)
                         THEN
                         THEN
         GU
         GO
TO
TO
   J).
   POSIT (6, J)
   0, J ) .

   STORAGE-CHANGES.
   PUMPIUG-CHANGES.
     i' THEN
       ELSE
THEN MOVE 1
MOV
HOV
TO
   E 3 TO J
   E 2 TO J.
   J.
THEN
ELSE
THEN
E 7
14 »
MOV
MOV
MOV
TO J
THEN
E
E
E
3
2
1
GO
TO
TO
TO
TO
J
J.
J.
CD
                 •2
                 '2
THEN SUBTRACT 1
THEN MOVE 5 TC
                                    CDV-PUMP-CHANGES
    FROM J.
   J.
                  MOVE 7 TO J.
    IF SYSTEM EQUAL 2
    COMPUTE POSIT (I
    MLVE POSIT (I, 2)
                      THEN GO TO END-COSTS.
                      TO 5-TOT (1).
                      THEN MOVE ZERO
                      GO TO CALC-PAK
                      1) = POSIT (I,
                           / WATER-S
                      TO S-TOT (2).
                TO POSIT  ( 1 ,  1)
               A-COSTS.
                1) * MIL-GAL  (1)
               OLD.
                            324

-------
    COMPUTE POSIT  (I, 2)  =  (POSIT  (I,  2)  +  S-TOT  (1)
            - PDSIT  (I,  1))  *  MIL-GAL  (2)  / (WATER-SOLD
            - MIL-GAL (i ) ) .
    SUBTRACT POSIT  (I,  1),  POSIT  (I, 2)  FnOM  POSIT  (I,  7)
                            GIVING  PUSIT  (I,  3).
    GO TO END-CCSTS.
CALC-PAkA-COSTS.
    COMPUTE S-TGT  (N) =  S-TOT  (1)  *  MIL-GAL  (N)  /  WATER-SOLD.
    ADD S-TOT (N )  TO  POSIT  ( I ,  N ) .
    ADD 1 TD N.
    IF N NOT GREATER  THAN  PARALLEL GO  TO  CALC~PARA-COSTS .
    MOVE 1 TO N.
    SUBTRACT POSIT  (I,  2),  POSIT  (I, 3),  POSIT  (I,  H),
             POSIT  (I,  5)   FROM  PLS1T  (1,  7)  GIVING PUSIT  (1,  1)
END-COSTS.
    EXIT .
MEXT-PAGE .
    IF PAGE-CT  > 2  THEN  GO  TO  CLOSE-FILES.
    PERFORM REAU-WATER-CARD  THRU  HOUSEKEEPING.
    MOVE 'I1 TO  RPT-FLAG.
    PERFORM REWIND-FILE.
    GO TCI TEST-CONFIGURATION.
PAR-SbR-CONFIG.
    GO TO WRITE-MATRIX.
SER-PAR-SER-CUNFIG.
    GO TO WRITE-MATRIX.
WRITE-MATRIX.
    PERFORM WRITE-MATRIX-LINE  VARYING  I  FROM  1  BY  1 UNTIL
                                       I  GREATER  THAN  10.
    IF RPT-B THEN  G(j  TO  NEXT-PAGE
             ELSE  PERFORM  SKIP-LINE  2  TIMES.
    GO TO WRITE-COSTS-BY-ZONE.
WRITE-MATRIX-LINE.
    MOVE CC-NAME (I)  TO  NAME-OUT.
    PERFORM MATRIX-COL  VARYING  J  FROM  1  BY  \  UNTIL
                                J  GREATER  THAN  7.
    PERFORM WRITE-DATA-LINE-A.
    IF RPT-B     THEN
                 MOVE  POSIT  ( I , -7 )  TL TEMP-1
                 MOVE  POSIT  (10,  7) TO  TEMP-2
                 MOVE  7  TO  J
                 PERFORM  VARI-AND-PERCENT
                 PERFORM  WRITE-DATA-LINE-C
                 PERFORM  WRITE-DATA-LINE-B
                 PERFORM  WRITE-5UB-TUTALS  THRU  ST-END.
    IF I = 2 THEN  MOVE  CC-NAME  (11)  TO PRINT-LINE
                   PERFORM  PRINT-LlNfc-OUT .
MATRIX-COL .
    MOVE POSIT   (I,  J)  TO  COLS  (J) .
    IF RPT-B PERFORM  PERCENT-LINE.

                                325

-------
PERCENT-LINE.
    MOVE C-TGT (J)     TO TEMP-2.
    MOVE PGSIT (I , J)  TO TEMP-1 .
    PERFORM VARI-AND-PERCENT .
WRITE-SUB-TUTALS.
    IF 1 < 6 OR I  = 7  THEN GO Tu ST-END.
    IF I > 8 ThfcN  GO TO ST-ENO.
    MOVE 'SUB  TOTAL   '  TO NAMt-GUT.
    MOVE 0 TO  J.
    PERFORM LOAU-SUb-TOTALS 7 TIKES.
    PERFORM WRITE-DATA-LINE-A THRU WR I TE -0 AT A-L I NE-6 .
ST-ENO.
    EXIT .
LOAD-SUB-TOTALS.
    ADD 1  TO J.
    MOVE  C-TOT (J) TO TEMP-2.
    IF I = 6 THEN  MOVE SS-TOT (J) TO COLS (J),  TEMP-1
             ELSE  MOVE S-TOT  (J) TO CGLS (J), TEMP-1.
    PERFORM VARI-AND-PERCENT.
WRITE-CUSTS-BY-ZCNE.
    PERFORM ZERO-5UB-TOTALS THRU ZERO-TOTALS.
    MOVE ZEROS TO  TEMP-1, TEMP-2.
    MOVt 'TOTAL COSTS  BY ZONE:' TO PRINT-LINE.
    PERFORM PRIIMT-L1NE-OUT.
    MOVE 'DIRECT'  TO NAME-OUT.
    MOVt 0 TO  J.
    PERFORM DIRECT-COSTS 5 TIMES.
    MOVE ZERO  TO  COLS  (6).
    MOVE C-TOT (7) TO  COLS (7).
    PERFORM WRITE-DATA-LINE-A.
    MOVE 'INDIRECT' TO NAME-OUT.
    MOVE 0 TO  J.
    ADD POSIT  (1,  7),  POSIT (2, 7), POSIT (7, 7), POSIT  (8,  7)
                      POSIT (9, 7) TO TEMP-1.
    MOVE TEMP-1 TO COLS  (7).
    ADD TEMP-1 TO C-TUT  (7).
    PERFORM INDIRECT-COSTS 5  TIMES.
    PERFORM WRITE-DATA-LINE-A.
    MOVE 'TOTAL'  TO NAME-OUT.
    MOVE U TO  J.
    PERFORM LOAD-TOTALS 7 TIMES.
    PERFORM WRITE-DATA-LINE-A.
    MOVE ZERO  TO  K.
    PERFORM SKIP-LINE 2  TIMES.
    GO TO WRITE-WATER-PROLJUCEO.
DIRECT-COSTS.
    ADD 1 TO J.
    MOVE POSIT (10, J) TO COLS (J).
    ADD POSIT  (10, J)  TO C-TOT (J).
    ADD POSIT  (10, J)  TO C-TOT (7).

                              326

-------
INDIRECT-COSTS.
    AOD 1 TO J.
    MOVE POSIT (lUt 6) TO TEMR-i .
    MULTIPLY MIL-GAL  (J) bY TbMP-1.
    IF HATER-SOLD > 0 THElM
                      DIVIDE  TEMP-1 BY  WATER-SOLO GIVING  TEMP-1
                      ADD .005  TD  TEMP-1
                      ELSE MOVE  ZERU TO  TtMP-1 .
    IF TEMP-1 < 0 THEN SUBTRACT  .01 FROM  TEMP-1.
    MOVh TEMP-1 TO CCLS  (J).
    ADD TEMP-1 TO C-TGT  (J) .
    IF J = 1 THEN ADD .01 TO  C-TOT  (1).
    IF WU-NAME =  'KE' AND J = 3  THEN
            COMPUTE S-TOT (2) =  POSIT  (10, b)  -  S-TOT  (1)
            MOVE   S-TOT (2) TO COLS  (3)
            COMPUTE C-TOT (3) -  C-TOT  (7) -  (C-TOT  (1) +
                         C-TOT  (2)).
    ADD TEMP-l TO S-TOT  (1).
LOAD-TOTALS.
    ADD 1 TO J.
    MOVc C-TOT {J) TO COLS (J) .
kRITE-WATER-PRODUCED.
    MUVt 'Rt ' TU  LTR-OUT.
    MOVE   'VENUE PRODUCING WATER  (MG)'  TU NAME-OUT.
    MCVE ZERO TU  J.
    ADD .005 TQ WATER-SOLD.
    MOVE WATER-SOLD TO COLS (?), TEMP-2.
    MOVE 100 TO PERC  (7).
    PERFORM LuAD-wATER 6 TIMES.
    PERFORM WklTE-DATA-LINF-A.
    PERFORM WRITE-DATA-LINE-C.
    PERFORM WR ITE-DATA-LINE-B.
    MOVE '   ' TO  LTR-UUT.
    MOVt ZERO TU  J.
    PERFORM ZtRO-SUB-TOTALS THRU ZERO-TOTALS.
    PERFORM SKIP-LINE 2  TIMES.
    GL TO CALCULATE-UNIT-COSTS.
LUAD-WATER.
    ADD 1 TU J.
    ADD .005 TO MIL-GAL  (J) .
    MLVE MIL-GAL  (J)  TO  COLS  (J).  TEMP-1.
    PERFORM VARI-AND-PERCENT.
CALCULATE-UNIT-COSTS.
    MOVE 'UNIT COSTS  bY  ZONE:'  TO  PRINT-LINE.
    PERFORM PRI,\T-LIN'E-OUT .
    MLVE ZEROS TO POSIT  (1, 6),  PLS1T  (2, 6),  POSIT (7t  6),
                  POSIT  (8, 6),  POSIT  (9, 6),  POSIT (10,  fa).
    IF ZONES > 7  THEN MOVE 7  TO  ZONES.
    PERFORM LOAD-UN IT-COSTS   VARYING  I  FROM  1 bY  1 UNTIL
                                       I  GREATER  THAN 10.

                               327

-------
    MGVt '2' TO RPT-FLAG.
    GO TO WRITE-MATRIX.
LUAD-UNIT-CQSTS.
    IP WATER-SOLD > 0 THEN DIVIDE PUSIT  (I, 7) 6Y WATER-SOLO
                      GIVING TEMP-1
                      ADO .005 TO TEMP-1
                      ELSE MOVE ZERO TO  TEMP-1.
    MOVE TEMP-1 TO POSIT  ( I , 7) .
    IF I < 7 ADD TEMP-1 TO SS-TLiT (7).
    IF I < 9 ADD TEMP-1 TO  S-TOT (7).
    IF I < 10 THEN ADD TEMP-1 TO C-TflT  (7)
              ELSE MOVE C-TOT (7) TO POSIT  (10,  7).
    PERFORM LOAD-COLS THRU LOAO-CCNTD VARYING J  FROM  1  6Y  1 UNTIL
                              j GREATER  THAN  ZONES.
LOAD-COLS.
    IF i < 3 OR > 6 THEN  GO TO LOAD-CONTD.
    IF MIL-GAL  (J) > 0 THEN DIVIDE POSIT  (I,  J)  PY
                       MIL-GAL (J) GIVING TEMP-1
                      ADD .005 TO TEMP-1
                       ELSE MOVE ZERO TO  TEMP-1.
LOAD-CONTD.
    MOVE TEKP-1 TO POSIT  (I, J).
    IF I < 7 THEN ADD TEMP-1 TO SS-TOT  (J).
    IF I < 9 THEN ADD TEMP-1 TO  S-TOT  (J).
    IF I < 10 THEN ADD TEMP-1 TU C-TOT  (J)
              ELSE MOVE C-TOT (J) TO POSIT  (10,  J).
            GENERAL SUBROOTINES
MOVE-SPACES.
    MOVE SPACES TO PRINT-LINE.
PRINT-LINE-GUT.
    WRITE PRINT-DATA BEFORE  1.
    ADD 1 TO LINE-CT.
S K I P - L I N E .
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT.
PAGE-GVFLOW.
    IF LINE-CT NOT < MAX-LINE THFN
        PERFORM TOP-NEW-PAGE.
        PERFORM WRITE-PAGE-HEADING.
ZERQ-SUB-TOTALS.
    MOVE ZEROS TO SUB-SUB-TOTAL.
    MOVE ZEROS TO SUB-TOTAL.
ZERO-TOTALS .
    MOVE ZEROS TO COL-TOTAL.
TOP-NEW-PAGE .
    PERFORM MOVE-SPACES.
                                328

-------
    WRITE PRINT-DATA  dE
    MUVE PAGE-CT  TO PAG
    MOVE o TO LINE-CT.
    ADD 1 TU PAG F~CT .
FILL-HEADINGS .
    MOVE DATE-IN  TO DAT
    MOVE SPACES  TU Z-4,
    MUVE 'ZONES  1..3'  T
    IF WU-NAME EQUAL  'C
            MOVE  '
            MOVc  '
            MOVfc  'ZONES
    MOVE FISCAL-YR TD  F
    MOvt 'MONTHLY  '
    I F RPT-PERIUD    '2'
    IF KPT-PERIOD  =  '3'
    IF RPT-PERIUD  =  '4'
    MUVt SPACES  TU WKS-
    I F NO-WKS =  '1 ' MOV
    IF NO-WKS =  '2' MuV
    IF NO-WKS =  '3' MUV
    IF NO-WKS =  '4' MOV
    IF NO-WKS =  '5' MUV
    MOVE PAGE-CT  TO PAG
    MOVt TITLE-IN  TO  TI
                        FORE  NtW-PAGE.
                        E-OUT .
E-OUT.
 Z-5.
0 Z-OUT.
0'  THEN
  ZONF  <*'
  ZONE  5>
 1 . .5 ' TU
ISC-YR.
 TO  RPT-PO
 THEN MOVE
 THEN MOVE
 THEN MOVE
OUT.
                                   TL  Z--+
                                   TU  1-5
                                  Z-UUT.
                                   '(jUART ER
                                   'HALF  YR
                                   'ANNUAL
                                  TH RPT-PU.
                                  TO RPT-PU.
                                  TO RPT-Pu.
   (  4
   (  5
   (13
   ( 26
   ( 52
E-UUT .
TLE-UUT
                               WKS) '
                               WKS) '
                               WKS) '
                               WKS) '
                               WKS) '
                     TO
                     TO
                     TO
                     TO
                     TO
                WKS-UUT
                WKS-QUT
                WKS-GUT
                WKS-UUT
                WKS-uUT
WRITE-PAGE-HEADIKG.
    MOVE riEADING-1  TC1  P
    PERFORM PRINT-LINE-
    MUVE HEADING-2  TO  P
    PERFORM PRINT-LINE-
    MOVE HEADING-3  TO  P
    PERFORM PRINT-LINE-
    MOVE HEADING-6  TD  P
    PERFORM PRINT-LINE-
    PERFORM SKIP-LINE  2
    MOVE HEADING-^  TD  P
    PERFORM PRINT-L1NE-
    MOVE HEADING-5  TO  P
    PERFORM PRINT-LINE-
    PERFORM SKIP-LINE.
    IF PAGE-CT EQUAL  2
        R 1 N T - L I N t .
        OUT .
        RINT-LINL.
        OUT .
        RINT-LINE.
        OUT .
        RINT-LINE.
        OUT.
         T IMES .
        RINT-L INE .
        OUT.
        RINT-LINE .
        OUT;
    PERFORM PRINT-LINE-
WR ITE-DATA-LINE-A.
    MOVE OATA-L1NE-A  TO
    PERFORM PRINT-LINE-
WRITE-DATA-LINE-C.
    MOVE UATA-LINE-C  TO
        THEN MOVE  'FUNCTION COSTS  FOR  PERIOD
                   TO PRINT-LINE
ELSE MUVE  'FUNCTION COSTS  YEAR  TO  DATE:1
                   TU PRINT-LINE.
        OUT.
         PRINT-LINE.
        OUT .

         PR INT-LINE.
                                329

-------
     WRITE  PRINT-DATA BEFORE 0.
 KRITE-DATA-LINE-B.
     MGVt DATA-LINE-6 TO PRINT-LINfc.
     PERFORM PRINT-LINE-DUT.
 VARI-ANli-PERCENT .
     MULTIPLY 10U BY TEMP-1.
     IF TEMP-2 > 0  DIVIDE TEMP-2 INTO TEMP-1 ELSt
                                 MGVt ZERO TG TEMP-1
     MULTIPLY 1    By TEMP-1 GIVING PhRC (J) ROUNDED.
*            FINI
*
*****
 READ-SORT-INPUT.
     READ COST-MATRIX-FILE AT END
         GO TO RcAD-SORT-INPUT-END.
     IF CC-NU EQUAL '4301' OR '4302' OR
             OR  '4321 '  OR '4322 ' OR  '4421 '
                          GO TU READ-SORT-INPUT
     RELEASE SGRT-INPUT FROM CM-REC.
     GO TO READ-SORT-INPUT.
 READ-SORT-INPUT-END.
     EXIT.
 WRITF-SGRT-OUTPUT .
     RETURN FILE-SLRT  RECORD INTO INPUT-REC
         AT END GO TG  WR I T E-SORT-OUTPUT -E NU .
     WRITE INPUT-REC.
     GO TO WRITE-SORT-OUTPUT .
 WRITE-5GRT-GUTPUT-END.
     EXIT.
 REWIND-FILE.
     CLOSE   SORTED-FILE.
     OPEN    INPUT   SURTED-FILE.
 CLOSE-FILES.
     CLOSE   CARO-IM,  COST -M ATR I X -F I L E ,
             SORTED-FILE, PRINT-OUT.
 E-O-J.
     STOP RUN.
                            330

-------
 PGMNAME=WUA5BUCM
SYS1N    DO *
 ID DIVI SIGN.
 PROGRAM-ID. WUASBUCM.
 AUTHOR. ACT SYSTEMS, INC
         SUITE 200
         807 W MORSE BLVD
         WINTER PARK, PL 32789.
 DATE-WRITTEN. JAN 197tt
 DATE-COMPILED.
 REMARKS.    THIS PROGRAM BACKS UP THE CM FILE
             AND PRODUCES A COPY OF SAME.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SLURCE-COMPUTER. IBM-370.
 OBJECT-COMPUTER. IBM-370.
 SPECIAL-NAMES.
     C01 IS NEW-PAGE.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
     SELECT CARD-IN
         ASSIGN TO UK-2540R-S-CARDIN
         ACCESS MODE IS SEQUENTIAL.
     SELECT PRINT-OUT
         ASSIGN TO UR-1403-S-PRINTGUT
         ACCESS MODE IS SEQUENTIAL.
     SELECT COST-MATRIX-FILE
         ASSIGN TO DA-3330-I-CMFILE
         ACCESS MOUF IS SEQUENTIAL
         RECORD KEY  IS CM-NUMBER.
     SELECT TAPE-OUT
         ASSIGN TO UT-2400-S-TAPEOUT
         ACCESS MODE IS SEQUENTIAL.
 DATA DIVISION.
 FILE SECTION.
 FD  COST-MATRIX-FILE
     BLOCK CONTAINS  5 RECORDS
     RECURU CONTAINS 80 CHARACTERS
     LABEL RECORUS ARE STANDARD
     DATA RECORD IS  INPUT-REC.
 01  INPUT-REC.
     05  MATCH-COOE-IN.
         1.0  DELETE-POS   PIC X.
         10  FILLER       PIC X(3).
     05  CM-NUMBLR.
         10  ACCT-ND-IN   PIC XI10) •
         10  COST-CNTR-IN PIC X(M.
         10  CQST-CAT-IN  PIC X(2).
     05  flMOUNTS-IN  OCCURS h TIMES.
         10  AMT-IN       PIC S9(8)V99.

                          331

-------
FD  TAPE-OUT
    BLOCK CONTAINS 5 RECORDS
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS TAPE-REC.
01  TAPE-REC             PIC X(8C).
FD  PRINT-OUT
    RECORD CONTAINS 133 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS PRINT-LINE.
01  PRINT-LINE.
    05  FILLER           PIC X.
    05  PRINT-DATA       PIC X(132)
FD  CARD-IN
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS INPUT-CARD.
01  INPUT-CARD.
05 DATE-IN.
10 BACKUP-OPTION PIC X(7).
10 FILLER PIC X( 11) .
05 TITLE-IN PIC X(24).
05 FILLER PIC X(38) .
WORKING-STORAGE SECTION.
77 LINE-CT PIC 99 COMP VALUE 0.
77 PAGE-CT PIC 9(4> CDMP VALUE 0.
77 MAX-LINE PIC 99 COMP VALUE 56.
77 I PIC 9.
77
77
77
01




01







01



01


BACKUP-FLAG
ACCT
ACCT
HEAD
05
05

05
-HOLD
-COUN
-1.
FILLE
FILLE

FILLE

T

R
R

R
P
P
P

P
P

P
I
I
I

c
c
c

1C
I

I
c

c
9
XI
VALUE 0.
;io>
VALUE
999 VALUE Z

XI
XI

XI

:53)
127)

152)

VALUE
VALUE

VALUE
SPACE
ERO.

SPACE
•COST
•CKUP
SPACE
S.


S.
ALLOCATION
1
•
S.
HEAD-2.
05
05
05
05
05
05
05
HEAD
05
05
05
FILLER
DATE-
FILLE
FILLF
FILLE
FILLE
OUT
R
R
R
R
PAGE-OUT
-3.

FILLER
TITLE
FILLE
-OUT
R
P
P
P
P
P
P
P

P
P
P
I
I
I
I
I
I
c
c
c
c
c
c
1C

I
I
I

c
c
c
XI
XI
XI
XI
XI
XI
Zl

XI
XI
Xi
113)
118)
134)
!3>
154)
[b»
[4>.

155)
124)
(53)
VALUE
.
VALUE
VALUE
VALUE
VALUE


VALUE
.
VALUE
•DATE

SPACE
•FOR '
SPACE
'PAGE


SPACE

ENDING: ».

s.
.
s.
: • .


S.

SPACES.
HEAD-4.
05

FILLE

R

P

I

c

Xi

[2 )
332
VALUE

SPACES .


                                                           FILE  BA

-------
05  FILLER
    05
    05
    05
    05
    05
    05
    05
    05
    05
    05
    05
    05
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
    FILLER
01  HEAO-5.
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
    05  FILLER
01  DATA-LINE.
    05  FILLER
    05  CM-NUMBER-1.
        10  ACCT-NO
        10  FILLER
        10  COST-CNTR
        10  FILLER
        10  COST-CAT
    05  FILLER
    05  rtATCH-CGDE
    05  FILLER
    05  AMOUNTS OCCURS
        10  AMT
01  ACCOUNT-ACCUM.
    05  ACCT-ACCUM
P

P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
T
P
I

I
I
I
I
I
I
1
r
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
c

c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
1C
i
i
i
i
c
c
c
c
1C
I
I
I
c
X(

X (
X(
X (
XI
X(
X(
X(
X (
X(
X(
X(
X(
XI
XI
X(
X(
X
XI
X
XI
XI
XI
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
35)

28)
7)
4)
6
5
7
5
7
4
7
5
8 )
2)
10)
4 )
9 )
4 )
8)
4 )
10)
16)
4 )
4)
10)
2 >
10)
4)
6)
(2 )
! 12)
(2 )
(9)
(2 ).
(10)
(6).
! 4 ) •
(10)
(2>.
( 10)
(4 ) .
( 12)
VALUE

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE S
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

t


.

.

.
• ***
'L D
SPAC
'CUR
SPAC
'PRE
SPAC
•CUR
SPAC
•YEA
PACE
I* C
*<•*<•<">**
ES.
RENT' .
ES.
VIOUS • .
ES.
RENT' .
ES .
RLY ' .
S.
•CURRENT' .
SPAC
'PRE
SPAC
•ACC
SPAC
ES .
VIOUS ' .
ES .
OUNT NO ' .
ES.
•COST CNTR' .
SPAC
'COS
SPAC
ES.
T CAT ' .
ES.
•MATCH CODE ' .
SPAC
'COS
SPAC
ES.
T ' .
ES.
•MONTH COST ' .
SPAC
•COS
SPAC
ES.
T (YTD) ' .
ES.
•BUDGET ' .
SPAC
ES.
•BUDGET (YTD)
SPAC
•YEA









ES.
R COST' .









MES.
c
-
(9).
— ™ •


                                                           F  I  E
                      PIC  S9(8)V99  OCCURS  6  TIMES
                               333

-------
01  SUBTOTAL.
    05  SUBS             PIC S9OJV99 OCCURS 6 TIMES
PROCEDURE DIVISION.
OPEN-FILES.
    DPErt INPUT  CQST-MATRIX-FILE»
                CARD-IN,
         OUTPUT PRINT-OUT.
FILL-HEADING.
    READ CARD-IN AT END
        PERFORM ERROR-CARD-IN
        GD TO CLOSE-FILES.
    MOVE DATE-IN TO DATE-OUT.
    MOVE TITLE-IN TO TITLE-OUT.
    READ CARD-IN AT END
        GO TO HOUSEKEEP.
    IF BACKUP-OPTION NOT =  'BACK-UP1 THEN
        GD TO HOUSEKEEP.
OPEN-BACKUP-FILE.
    MOVE 1 TO BACKUP-FLAG.
    OPEN   OUTPUT TAPE-OUT.
HOUSEKEEP.
    MDVt ZEROS TO SUBTOTAL. ACCOUNT-ACCUM.
WRITE-HEADINGS.
    ADD 1 TO PAGE-CT.
    MOVE PAGE-CT TO PAGE-OUT.
    MOVE 0 TO LINE-CT.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE NEW-PAGE.
    MOVE HEAD-1 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-2 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-3 TO PRINT-DATA.
    PERFORM PRINT-L1NE-DUT.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-DUT  2 TIMES.
    MOVE HEAD-4 TO PRINT-DATA.
    PERFORM PRINT-LINc-OUT.
    MOVE HEAD-5 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-DUT.
INIT-ACCT-HOLD.
    PERFORM READ-INPUT-REC.
    MOVE ACCT-NO-IN TO ACCT-HOLD.
    GD TO START-BACKUP.
READ-INPUT-REC.
    READ COST-MATRIX-FILE AT END
        GO TO URITE-SUBTOTAL.
START-BACKUP.
    IF ACCT-NO-IN NOT = ACCT-HOLD
                          334

-------
        THEN PERFORM SUB TOTAL-ACCT.
    ADD 1 TO ACCT-COUNT.
    MOVE ACCT-NO-IN TD ACCT-NO.
    MOVE COST-CNTR-IN TO COST-CNTR.
    MOVE COST-CAT-IN TO COST-CAT.
    MOVE MATCH-CODE-IN TO MATCH-CODE.
    PERFORM MOVE-AMOUNTS VARYING I FROM  1 BY  1 UNTIL  I
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    IF LINE-CT > MAX-LINE
        THEN PERFORM WRITE-HEADINGS.
    IF BACKUP-FLAG = 1 THEN
        MOVE INPUT-REC TO TAPE-REC
        WRITE TAPE-REC.
    GO TO READ-INPUT-REC.
MOVE-SPACES.
    MOVE SPACES TO PRINT-LINE.
PRINT-LINE-CUT.
    WRITE PRINT-LINE BEFORE 1.
    ADD 1 TO LINE-CT.
MOVE-AMOUNTS.
    MOVE AMT-IN  (I) TO AHT  (I).
    ADD AMT-IN (I) TO SUBS  (I)  ACCT-ACCUM (I).
MOVE-SUBTOTALS.
    MOVE SUBS (I)  TO AMT  (I).
ERROR-CARD-IN.
    MOVE '*** NU DATE/TITLE CARD fr**  JOB ABORTED'
        TO PRINT-DATA.
        PERFORM PRINT-LINE-OUT.
SUBTOTAL-ACCT.
    MOVE SPACES TO DATA-LINE.
    PERFORM MOVE-ACCT-SUB VARYING  I  FROM  1  BY 1  UNTIL I  =  7.
    IF (ACCT-COJNT > 1) AND (ACCDUNT-ACCUM  HOT  = ZERO)  THEN
        MOVE 'SUB  TOTAL ' TO ACCT-NO,
        MOVE DATA-LINE TO PRINT-OATA,
        PERFORM PRINT-LINE-DUT.
    MOVE 1 TO ACCT-COUNT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-OUT.
    MOVE ZEROS TO  ACCOUNT-ACCUM.
    MOVE ACCT-ND-IN TO ACCT-HOLD.
MOVE-ACCT-5UB.
    MOVE ACCT-ACCUM  (1) TO  AMT  (I).
KRITE-SUBTOTAL.
    PERFORM MOVE-SPACES THRU PR 1NT-LINE-OUT 2 TIMES.
    MOVE SPACES TO DATA-LINE.
    PERFORM MOVE-SUBTOTALS  VARYING I  FROM  1 BY  1 UNTIL I = 7
    MOVE 'TOTAL      ' TO  ACCT-NO.
    MOVE DATA-LINE TD PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
CLOSE-FILES.

                             335

-------
    CLOSE   COST-MATRIX-FILE,
            CARD-IN,
            PRINT-OUT.
CLOSE-TAPE-FILE.
    IF BACKUP-FLAG NOT = 1 THEN
        GO TO E-O-J.
    CLOSE TAPE-OUT.
E-O-J.
    STOP RUN.
                       336

-------
      PGMNAME=WUASUCAD
• SYSIN     00   *
  ID  DIVISION.
  PROGRAM-ID.  WUASUCAD.
  AUTHOR.  ACC  SYSTEMS,  INC
          SUITE  200
          807  W  MORSE  BLVD
          WINTER PARK,  FL  32789.
  DATE-WRITTEN.  MARCH  1978.
  DATE-COMPILtD .
  REMARKS.     THIS  PROGRAM  READS  A  CARD  IMAGE  OF  A
              COST  MATRIX  RECORD  AND  EITHER  CHANGES,
              ADDS  OR  DELETES  THE RECORD.
  ENVIRONMENT  DIVISION.
  CONFIGURATION  SECTION.
  SOURCE-COMPUTER.  IBM-370.
  OBJECT-COMPUTER.  IBM-370.
  SPECIAL-NAMES.
      C01  IS  NEW-PAGE.
  INPUT-OUTPUT  SECTION.
  FILE-CONTROL .
      SELECT  CARD-IN
          ASSIGN TO UR-2540R-S-CARDIN
          ACCESS MODE  IS  SEQUENTIAL.
      SELtCT  PRINT-OUT
          ASSIGN TO UR-1403-S-PRINTOUT
          ACCESS MODE  IS  SEQUENTIAL.
      SELECT  COST-MATRIX-FILE
          ASSIGN TO DA-3330-I-CMF1LE
          ACCESS MODE  IS  RANDOM
          RECORD KEY  IS  CM-NUMBER
          NOMINAL KEY  IS  CM-NOMINAL.
      SELECT  TAPE-IN
          ASSIGN TO UT-2400-S-TAPEIN
          ACCESS MODE  IS  SEQUENTIAL.
  DATA  DIVISION.
  FILE  SECTION.
  FD   COST-MATRIX-FILE
      BLOCK  CONTAINS  5  RECORDS
      RECORD  CONTAINS  80  CHARACTERS
      LABEL  RECORDS ARE  STANDARD
      DATA  RECORD IS  CM-REC.
  01   CM-REC.
      05   MATCH-CODE.
          10   DELETE-PDS    PIC X.
          10   FILLER        PIC X(3).
      05   CM-NUMBER.
          10   ACCT-NO       PIC XI10).
          10   COST-CNTR        PIC X ( <» ) .
          10   COST-CAT         PIC X(2).

                           337

-------
    05  AMOUNTS.
        10  AMTS
FD  TAPE-IN
    BLOCK CONTAINS 5 RECORDS
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE STANDARD
    DATA RECORD IS TAPE-REC.
01  TAPE-REC             PIC XI80)
FD  CARD-IN
    RECORD CONTAINS 80 CHARACTERS
    LABEL RECORDS ARE OMITTED
    DATA RECORD IS INPUT-REC.
01  INPUT-REC.
    05  OATE-IN
    05  TITLE-IN
    05  FILLER
01  INPUT-REC-1.
    05  MATCH-CODE-IN
    05  INPUT-KEY.
        10  ACCT-IN
        10  COST-CNTR-IN
        10  COST-CAT-IN
    05  AMOUNTS-IN
01  INPUT-REC-2.
    05  FILLER
    05  AMTS-IN
FD  PRINT-OUT
    RECORD CONTAINS 133 (
    LABEL RECORDS ARE DM
    DATA RECORD IS PRINT-
01  PRINT-LIME.
    05  FILLER
    05  PRINT-DATA
WORKING-STORAGE SECTION.
77  PAGE-CT
77  LINE-CT
77  MAX-LINE
77  INPUT-CT
77  AOD-CT
77  CHANGE-CT
77  DELETE-CT
77  ERROR-CT
77  CM-NOMINAL
77  I
77  UPDATE-FLAG
77  INPUT-DEVICE
01  HEAD-1.
    05  FILLER
    05  FILLER
PIC S9(8)V99  OCCURS 6 TIMES
PIC X(
PIC X(
PIC XI
PIC X(
PIC X(
PIC X(
PIC X(
PIC X(
PIC X(
PIC 59
HARACT
TTED
LINE.
PIC X.
PIC X(
PIC 9(
PIC 9(
PIC 9(
P
P
P
P
P
P
P
P
P
P
P

I
I
c
c
1C
I
I
I
I
I
I
I
c
c
c
c
c
c
c
1C


9(
9(
9(
9(
9(
X(
99
9
9
X(
X(

18).
24) .
38) .
4).
10) .
4) .
2).
60) .
20) .
(8)V99 DC
ERS
132) .
4> COMP
2) CDMP
2) COMP
4>V99
4)V99
4)V99
4}V99
4>V99
16) V
CURS
VALUE
VALUE
VALUE
VALUE
VALUE
VAL
VAL
VAL
ALUE
COMP
VALUt
VALUE
54) V
0.
0.
ALUE
24) VALUE


UE
UE
UE
0.
0.
0.
0.
0.
SPAC
VALUE


S
i
1


PAC
6 TIMES
0-
0.
56.





ES.
0.


ES.
CHANGES AD
S1 .

                            AND DELETE
                                338

-------
01
01
01
01
01
05
HEA
05
05
05
05
05
05
05
HEA
05
05
05
HEA
05
05
05
HEA
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
HEA
05
05
05
05
05
05
05
05
05
FI
D-2
FI
OA
FI
FI
FI
FI
LLE
.
LLE
TE-
LLE
LLE
LLF
LLE
R

R
OUT
R
R
R
R
PAGE-DUT
0-3
FI
Tl
FI
D-4
FI
FI
FI
0-5
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
FI
0-6
FI
FI
FI
FI
FI
FI
FI
FI
FI
.
LLE
TLE
LLE
.
LLE
LLE
LLE
.
LLE
LLE
LLE
LLE
LLE
LLE
LLF
LLE
LLE
LLE
LLE
LLE
LLE
LLE
LLE
LLE
LLE
LLE
LLE
LLE
LLE
LLE
.
LLE
LLE
LLE
LLE
LLE
LLE
LLE
LLE
LLE

R
-OUT
R

R
R
R

R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R

R
R
R
R
R
R
R
R
R
P

P
P
P
P
P
P
P

P
P
P

P
P
P

P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P

P
P
P
P
P
P
P
P
P
I

I
I
I
I
I
I
I

I
I
I

I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
C

C
c
c
c
c
c
c

c
c
c

c
c
c

c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

c
c
c
c
c
c
c
c
c
X( 54 )

X(6)
X(18 )
XU1 )
X( 2)
X(55)
X(6)
1 ( 4 > .

X ( 54)
X ( 24)
X{ 54)

X(58)
X(16)
XI58)

X(7)
X(6)
X ( 4 )
X(3)
X(<4)
X( 2)
X(5)
X (6 )
X(7)
X(5 )
X(8)
XI Q )
\ * f
X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
3)
8 )
6)
9 )
3)
6)
8 )
7)
8)
8 )

7)
5)
6)
2)
3)
3)
4)
7)
X(6>
VALUE

VALUE

VALUE
VALUE
VALUE
VALUE


VALUE
.
VALUE

VALUE
VALUE
VALUE

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
SPACE

•DATE

SPACE
•ON1 .
SPACE
'PAGE


SPACE

SPACE

SPACE
•COST
SPACE

S.

. i >

S.

S.
; > .


S.

S.

S .
MATRIX
S.

•ACCOUNT' .
SPACE
'COST
SPACE
•COST
SPACE
•MATC
SPACE
'CURR
SPACE
'PREV
SPACE
•YTD '
SPACE
'YEAR
SPACE
•YTD'
SPACE
'PREV
SPACE
S.
1 .
S.
1
S.
H ' .
S.
ENT' .
S.
IDUS' .
S.
.
S .
LY ' .
S.
.
S.
IOUS ' .
S.
•COMMENTS' .
SPACE

S.

• NUMBER' .
SPACE
'CENT
SPACE
'CAT '
SPACE
'CODE
SPACE
S.
ER • .
S .
.
S.
' .
S.
•AMOUNT ' .
                                                       FILE '
                            339

-------
05
05
05>
05
05
05
05
05
05
05
05
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
p
p
p
p
p
p
p
p
p
p
p
I
I
I
I
I
I
I
I
I
I
I
c
c
c
c
c
c
c
c
c
c
c
X
X
X
X
X
X
X
X
X
X
X
(7
(5
(9
(6
(7
(b
(7
(6
(c
(4
)
)
J
>
J
)
)
)
)
J
(24)
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
SPACES
•MONTH
SPACES
.
i
.
•AMOUNT •
SPACES
•BUDGE
SPACES
.
T "
.
•BUDGET '
SPACES
•YEAR1
SPACES
.
.
.


T



UT

CCCUR
E


P
P
P
P
P
P
P
P
S
P
P
P
I
I
I
I
I
I
I
I

I
I
I
PI
C
c
c
c
c
c
c
c
6
C
c
c
c
X
X
X
X
X
X
X
X
T
X
-
X
X
(1
(3
(4
U
(2
(3
( 4
.
IM
(2
(6
(3
(2
0)
) .
) .
) .
) .
) .
) .

ES
) .
) .
1 *
0)
01  DATA-LINE.
    05  ACCT-OUT
    05  FILLER
    05  COST-CNTR-OUT
    05  FILLER
    05  CQST-CAT-UUT
    05  FILLER
    05  MATCH-CODE-OUT
    05  FILLER
    05  AMOUNTS-DUT
        10  CODE-NAME
        10  AMTS-OUT
    05  FILLER
    05  COMMENT
PROCEDURE DIVISION.
OPEN-FILES .
    OPEN I-D    COST-MATRIX-FI
         INPUT  CARD-IN,
         OUTPUT PRINT-OUT.
FILL-HEADING.
    READ CARD-IN AT END GO TO
    MOVE DATE-IN TO DATE-OUT.
    MOVE TITLE-IN TO TITLE-OUT.
WRITE-HEAOINGS.
    AuD 1 TO PAGE-CT.
    MOVE 0 TO LINE-CT.
    MOVE PAGE-CT TO PAGE-OUT.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE NEW-PAGE.
    MOVE HEAD-1 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-2 TO PRINT-DATA.
    PERFORM PR1NT-LINE-DUT.
    MOVE HEAD-3 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE HEAD-4 TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES.
    PERFORM PRINT-LINE-OUT 2 TIMES.
LE
WRITE-RECORD-COUNTS
                          340

-------
     MOVE HEAD-5 TO PRINT-DATA.
     PERFORM PRINT-LINE-OUT.
     MOVE HEAD-6 TO PRINT-DATA.
     PERFORM PRINT-LINE-OUT.
     PERFORM MOVE-SPACES THRU PR 1NT-LINE-OUT.
 HOUSEKEEP.
     MOVE SPACES TO DATA-LINE.
 UPDATE-FILE-YES-OR-NO.
     READ CARD-IN AT END GO  TO WRITE-RECORD-COUNTS .
     IF ACCT-IN NOT =  'UPDATE    • THEN
         AOD 1 TO INPUT-CT
         GO TO START-UPDATE.
     MOVE 1 TO UPDATE-FLAG.
 TEST-FOR-INPUT-DEVICE.
     READ CARD-IN AT END
     MOVE 1 TO INPUT-DEVICE
         PERFORM OPEN-TAPE-FILE
         GO TO READ-INPUT.
*  THE ABOVE CONDITION  IS FOR TAPE  INPUT USED
*  TO RECREATE THE CM FILE FROM THE BACKUP TAPE
   THE FOLLOWING IS FOR CARD  INPUT USED TO
   MAKE CHANGES, ADDS* OR DELETES TO THE CM-FILE.
     ADD 1 TO INPUT-CT.
     GO TO START-UPDATE.
 READ-INPUT.
     IF INPUT-DEVICE  = 0 THEN
         PERFORM READ-CARD-IN
     ELSE PERFORM READ-TAPE-IN.
     ADD 1 TO INPUT-CT.
 START-UPDATE.
     MOVE ACCT-IN TO  ACCT-OUT.
     MOVE COST-CNTR-IN TO COST-CNTR-CUT.
     MOVE COST-CAT-IN TO COST-CAT-OUT.
     IF (MATCH-CUDE-IN = SPACES) AND  (AMDUNTS-1N  = SPACES) THEN
         GO TO DELETE-RECOKD.
     MOVE MATCH-CODE-IN TO MATCH-CODE-OUT.
     EXAMINE AMOUNTS-IN REPLACING  ALL  '  • BY  '0'.
     PERFORM MOVE-AMTS-IN-TO-AMTS-OUT  VARYING  I
         FROM 1 BY 1  UNTIL I = 7.
 VERIFY-KEY.
     IF (ACCT-IN = SPACES) OR  (COST-CNTR-IN =  SPACES)  OR
             (COST-CAT-IN = SPACES) OR  (MATCH-CODE-IN  = SPACES)
         THEN MOVE •*** INVALID KEY ***'  TO COMMENT
             MOVE DATA-LINE TO PRINT-DATA


                              341

-------
            PERFORM  PRINT-LINE-OUT
            PERFORM  MUVE-SPACES THRU PR1NT-LINE-OUT
            ADD 1 TU ERROR-CT
            GO TO READ-INPUT.
READ-CM-FILE.
    MOVE INPUT-KEY TO CM-NOMINAL.
    READ COST-MATRIX-FILE INVALID KEY
        GO TO  ADD-RECORD.
CHANGE-RECORD.
    MOVE '***  NEW RECORD ***' TO COMMENT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    MOVE MATCH-CODE  TO MATCH-CODE-OUT.
    PERFORM MOvE-CM-AMTS-OUT VARYING I
        FROM 1 BY 1  UNTIL I  = 7.
    MUVE '***  OLD RECORD  ***'  TQ COMMENT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PRINT-LINE-OUT.
    PERFORM PAGE-OVFLOW.
    ADD 1 TO CHANGE-CT.
    MOVE MATCH-CODE-IN TO MATCH-CODE.
    PERFORM MOVE-AMTS-IN-TO-DISK-AMTS VARYING  I
        FROM 1 BY 1  UNTIL I  = 7.
    IF UPDATE-FLAG = 1 THEN
        REWRITE CM-REC.
    MOVE SPACES TO DATA-LINE.
    GO TO READ-INPUT.
ADO-RECORD-
    MOVE 'fr**  RECORD ADDED ***' TO COMMENT.
    MOVE DATA-LINE TO PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR 1NT-LINE-OUT.
    MOVE ACCT-Ii* TO  ACCT-NO.
    MOVE CDST-CNTR-IN TO COST-CNTR.
    MOVE COST-CAT-IN TO COST-CAT.
    MOVE MATCH-COOE-1N TO MATCH-CODE.
    PERFORM MOVE-AMTS-IN-TO-DISK-AMTS VARYING  I
        FROM 1 BY 1  UNTIL I  = 7.
    MOVE CM-NUMBER TO CM-NOMINAL.
    IF UPDATE-FLAG = 1 THEN
        WRITE  CM-REC.
    PERFORM PAGE-OVFLOW.
    ADD 1 TO ADD-CT.
    MOVE SPACES TO DATA-LINE.
    GO TO READ-INPUT.
DELETE-RECORD.
    MGVE •**«,  RECORD DELETED *' TO COMMENT.
    MOVE DATA-LINE TO PRINT-DATA.
        PERFORM PRINT-L1NE-QUT.

                           342

-------
    PERFORM MOVE-SPACES THRU PR INT-LINF-OUT.
    ADD 1 TO DELETE-CT.
    PERFORM PAGE-OVFLDW.
    IF UPOATE-FLAG = 0 THEN
        GO TO READ-INPUT.
    HOVE INPUT-KEY TD CM-NOMINAL.
    READ COST-MATRIX-FILE INVALID  KEY
        GO TO READ-INPUT.
    M.UVE ZEROS TO MATCH-CODE,  AMOUNTS.
    MOVE HIGH-VALUE  TO DELETE-POS.
    REWRITE CM-REC.
    GO TO READ-INPUT.
PAGE-OVFLOW.
    IF L1NE-CT NOT < MAX-LINE  THEN
        PERFORM WRITE-HEADIUGS.
MOVE-SPACES.
    MOVE SPACES TO PRINT-LINE.
PRINT-L1NE-GUT.
    WRITE PRINT-LINE BEFORE 1.
    ADD 1 TO LINE-CT.
MOVE-AMTS-IN-TO-AMT5-OUT.
    MOVE AMTS-IN (I) TO AMTS-OUT  OF  AMOUNTS-OUT
MOVE-CM-AMTS-OUT .
    MOVE AMTS (I) TO AMTS-DUT  OF  AMOUNTS-OUT  (I
MOVE-AMTS-IN-TO-D1SK-AMTS.
    MOVE AMTS-IN (I) TO AMTS (I).
READ-CARD-IN.
    READ CARD-IN AT END
        GO TO WRITE-RECORD-COUNTS.
READ-TAPE-IN.
    READ TAPE-IN AT END
        GO TO WRITE-RECORD-COUNTS.
    MOVE TAPE-REC TO INPUT-REC.
OPEN-TAPE-FILE .
    OPEN INPUT   TAPE-IN.
WRITE-RECORD-COUNTS.
    MOVE SPACES TO DATA-LINE.
    PERFORM MOVE-SPACES.
    WRITE PRINT-LINE BEFORE NEW-PAGE.
(I)
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
•I
•A
•C
•D
'E
TO CODE-NAME OF AMOUNTS-OUT (1).
TO CODE-NAME OF AMUUNTS-OUT (2).
TO CODE-NAME OF AMUUNTS-OUT (3).
TO CODE-NAME OF AMOUNTS-OUT (4).
TO CODE-NAME OF AMOUNTS-OUT (5).
INPUT-CT TO AMTS-OUT OF AMOUNTS-OUT
ADD-CT TO AMTS-OUT OF AMOUNTS-OUT
CHANGE-CT TO AMTS-OUT OF AMOUNTS-OUT
DELETE-CT TO AMTS-OUT OF AhOUNTS-DUT
ERROR-CT TO AMT5-OUT OF AMOUNTS-OUT
DATA-LINE TO PRINT-DATA.





(1
(2
(3
K
(5

                        343

-------
    PERFORM PRINT-LINE-OUT.
    PERFORM MOVE-SPACES THRU PR 1NT-LINE-OUT.
    IF UPDATE-FLA& = 1 THEN
        MOVE •*** COST MARTIX FILE UPDATED ***'  TO PRINT-DATA
    ELSE MOVE '*** COST MATRIX FILE NOT UPDATED ***' TO
        PRINT-DATA.
    PERFORM PRINT-LINE-OUT.
CLOSE-TAPE-FILE.
    IF INPUT-DEVICE = 0 THEN
        GO TO CLOSE-FILES.
    CLOSE TAPE-IN.
CLOSE-FILES.
    CLOSE   COST-MATRIX-FILE,
            CARD-IN,
            PRINT-OUT.
E-O-J.
    STOP RUN.
                             344

-------
                                   TECHNICAL REPORT DATA
                            (Please read Instructions on the reverse before completing)
 REPORT NO.
  EPA-60Q/2-80-012b
                                       3. RECIPIENT'S ACCESSION NO.
I. TITLE AND SUBTITLE
  DEVELOPMENT AND APPLICATION  OF A WATER SUPPLY
  COST ANALYSIS SYSTEM
  Volume  II
                                       5. REPORT DATE
                                        July  1980  (Issuing Date)
                                       6. PERFORMING ORGANIZATION CODE
7. AUTHOR(S)
  James  I.  Gillean, Rex D. Osborn, William L. Britton, Jr
  Robert M.  Clark
                                       8. PERFORMING ORGANIZATION REPORT NO.
9. PERFORMING ORGANIZATION NAME AND ADDRESS

  ACT Systems Inc.
  Winter Park, Florida   32789
                                       10. PROGRAM ELEMENT NO.

                                       H61C1C  SOS#1, Task 39
                                       11. CONTRACT/GRANT NO.
                                                                68-03-2506
12. SPONSORING AGENCY NAME AND ADDRESS
  Municipal  Environmental Research Laboratory—Cin. ,OH
  Office of  Research and  Development
  U.S. Environmental Protection Agency
  Cincinnati,  Ohio  45268
                                       13. TYPE OF REPORT AND PERIOD COVERED
                                         Final Report  9/78-9/79
                                       14. SPONSORING AGENCY CODE
                                          EPA/600/14
15. SUPPLEMENTARY NOTES
  See also Volume I
  Project Officer:
(EPA-600/2-80-012a)
Robert M. Clark  (513)
684-7488
16. ABSTRACT
   A cost analysis for system water supply utility management has been developed and
   implemented in Kenton County, Kentucky,  Water District No. 1.  The system descrip-
   tion is contained  in Volume I of the two volume report resulting  from the study.
   This volume (Volume II)  contains the program documentation for the cost analysis
   system.
17.
                                KEY WORDS AND DOCUMENT ANALYSIS
                  DESCRIPTORS
                                               b.IDENTIFIERS/OPEN ENDED TERMS
                                                       COSATI Field/Group
  Accounting
  Computer Program
  Cost Analysis
  Cost Center
  Cost Effectiveness
  Cost Engineering
  Water Supply
                           Product Costing
                                 13B
18. DISTRIBUTION STATEMENT
  Release  to Public
                          19. SECURITY CLASS (This Report)
                            unclassified
                             21. NO. OF PAGES
                                    3 SI
                          20 SECURITY CLASS (This page)
                            unclassified
                                                                          22. PRICE
EPA Form 2220-1 (Rev. 4-77)
                        34;
                                                                <• 7 -1 tj '-> I 00 3 7

-------