       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      EW029.
       AUTHOR.          DOE.
      *****************************************************************
      *                       FUNCTIONAL ACCOUNTING                   *
      *****************************************************************
      * DATE CREATED:   06/21/95                                      *
      *****************************************************************
      * CALL #  - MMDDYY - PURPOSE                                    *
      * FIX0001 - 051100 - SKIP CHARTER SCHOOL RECORDS(FORM 7)        *
      * 2003001 - 071002 - FIX ROUNDING TRUNCATION ERRORS             *
      * 2006001 - 041906 - ADD FUNCTIONS 6500 & 8200.                 *
      * 2009001 - 050709 - ALLOW FUNDS 5,6,7 FOR AARA MONEY           *
      *****************************************************************


       ENVIRONMENT DIVISION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT    CRD-CARD          ASSIGN       DATABASE-EWCRDI.           1
                                                                               0
           SELECT    SRT-SORT          ASSIGN       WORKSTATION-SORT.

           SELECT    PR1-PRNT          ASSIGN       PRINTER-EWPRT01.

           SELECT    CRF-DISK          ASSIGN       DATABASE-EWCRFI
                                       ORGANIZATION INDEXED
                                       ACCESS       RANDOM
                                       RECORD KEY   CRFDK
                                       FILE STATUS  RETCRF.

           SELECT    RWF-DISK          ASSIGN       DATABASE-EWRWFI
                                       ORGANIZATION INDEXED
                                       ACCESS       SEQUENTIAL
                                       RECORD KEY   RWFDK
                                       FILE STATUS  RETRWF.

       DATA DIVISION.
       FILE SECTION.

       FD  CRD-CARD
           RECORD    CONTAINS   80  CHARACTERS
           LABEL     RECORDS   ARE  OMITTED
           DATA      RECORDS   ARE  CRD  CRH.

       01            CRD.
001        05        CRDREQ            PIC  X(03).
004        05        FILLER            PIC  X(01).
005        05        CRDID             PIC  X(02).
007        05        FILLER            PIC  X(01).
008        05        CRDPRT            PIC  X(01).
009        05        FILLER            PIC  X(03).
012        05        CRDDIST           PIC  X(02).
014        05        FILLER            PIC  X(01).
015        05        CRDFY             PIC  X(02).
017        05        FILLER            PIC  X(01).
018        05        CRDFUND           PIC  X(01).
019        05        FILLER            PIC  X(01).
020        05        CRDTBLE           PIC  X(05).
025        05        FILLER            PIC  X(01).
026        05        CRDSCHL           PIC  X(04).
030        05        FILLER            PIC  X(01).
031        05        CRDSUM            PIC  X(01).
032        05        FILLER            PIC  X(01).
033        05        CRDRPT            PIC  X(01).
034        05        CRDPGM            PIC  X(05).
039        05        FILLER            PIC  X(42).

       01            CRH.
001        05        CRHREQ            PIC  X(03).
004        05        FILLER            PIC  X(01).
005        05        CRHID             PIC  X(02).
007        05        FILLER            PIC  X(01).
008        05        CRHUSER           PIC  X(08).
016        05        FILLER            PIC  X(01).
           05        CRHHEAD.
017          10      CRHB       OCCURS 050  TIMES  INDEXED BY CRH1
                                       PIC  X(01).
067        05        FILLER            PIC  X(14).

       FD  PR1-PRNT
           RECORD    CONTAINS  132  CHARACTERS
           LABEL     RECORDS   ARE  OMITTED
           DATA      RECORDS   ARE  LNM  LN1  LN2.

       01  LNM.
001        05        LNMMSG            PIC  X(20).
021        05        FILLER            PIC  X(02).
023        05        LNMVALUE1         PIC  X(02).
025        05        FILLER            PIC  X(01).
026        05        LNMVALUE2         PIC  X(80).
106        05        FILLER            PIC  X(27).

       01            LN1.
001        05        FILLER            PIC  X(11).
012        05        LN1FUNC           PIC  X(04).
016        05        FILLER            PIC  X(01).
017        05        LN1NAME           PIC  X(30).
047        05        FILLER            PIC  X(02).
049        05        LN1AMT1           PIC  ZZZ,ZZZ,ZZZ-.
061        05        LN1PCT1           PIC  ZZZ.ZZ.
067        05        FILLER            PIC  X(03).
070        05        LN1AMT2           PIC  ZZZ,ZZZ,ZZZ-.
082        05        LN1PCT2           PIC  ZZZ.ZZ.
088        05        FILLER            PIC  X(03).
091        05        LN1AMT3           PIC  ZZZ,ZZZ,ZZZ-.
103        05        LN1PCT3           PIC  ZZZ.ZZ.
109        05        FILLER            PIC  X(01).
110        05        LN1TOT            PIC  Z,ZZZ,ZZZ,ZZZ-.
124        05        FILLER            PIC  X(09).

       01            LN2.
001        05        FILLER            PIC  X(36).
037        05        LN2MSG            PIC  X(05).
042        05        LN2FLD            PIC  X(04).
046        05        FILLER            PIC  X(01).
047        05        LN2AMT1           PIC  Z,ZZZ,ZZZ,ZZ9-.
061        05        LN2PCT1           PIC  ZZZ.ZZ.
067        05        FILLER            PIC  X(01).
068        05        LN2AMT2           PIC  Z,ZZZ,ZZZ,ZZ9-.
082        05        LN2PCT2           PIC  ZZZ.ZZ.
088        05        FILLER            PIC  X(01).
089        05        LN2AMT3           PIC  Z,ZZZ,ZZZ,ZZZ-.
103        05        LN2PCT3           PIC  ZZZ.ZZ.
109        05        FILLER            PIC  X(01).
110        05        LN2TOT            PIC  Z,ZZZ,ZZZ,ZZ9-.
124        05        FILLER            PIC  X(09).

           COPY                        EWCRFD             OF   CPYSRC.
           COPY                        EWRWFD             OF   CPYSRC.

       SD  SRT-SORT.

       01            SRT.
           05        SRTKEY.
             10      SRTKDIST          PIC  X(02).
             10      SRTKREQ.
               15    SRTKREQ1          PIC  X(01).
               15    SRTKREQ2          PIC  X(01).
               15    SRTKREQ3          PIC  X(01).
             10      SRTKFY.
               15    SRTKFY1           PIC  X(01).
               15    SRTKFY2           PIC  X(01).
             10      SRTKFUND          PIC  X(01).
             10      SRTKTBLE          PIC  X(05).
             10      SRTKSCHL          PIC  X(04).
           05        SRTDATA.
041906*      10      SRTENTRY          OCCURS 30 TIMES INDEXED BY SRT1.
041906       10      SRTENTRY          OCCURS 34 TIMES INDEXED BY SRT1.
071002*        15    SRTAMT            PIC  S9(09).
071002         15    SRTAMT            PIC  S9(10)V9(07).
             10      SRTPRT            PIC  X(01).
             10      SRTSUM            PIC  X(01).

       WORKING-STORAGE SECTION.

       01            WSC.
           05        WSCLAST           PIC  X(01) VALUE 'N'.
           05        WSCFND            PIC  X(01) VALUE 'N'.
           05        WSCPCT            PIC S9(03)V9(04) VALUE ZEROS.
041906*    05        WSCTABLE          OCCURS 30 TIMES INDEXED BY WSC1.
041906     05        WSCTABLE          OCCURS 34 TIMES INDEXED BY WSC1.
071002*      10      WSCAMT            PIC S9(09).
071002       10      WSCAMT            PIC S9(10)V9(07).
041906*    05        WSCFUND           OCCURS 30 TIMES INDEXED BY WSF1.
041906     05        WSCFUND           OCCURS 34 TIMES INDEXED BY WSF1.
071002*      10      WSFAMT            PIC S9(09).
071002       10      WSFAMT            PIC S9(10)V9(07).

       01            RET.
           05        RETCRF            PIC  X(02) VALUE '00'.
           05        RETRWF            PIC  X(02) VALUE '00'.

       01            SYS.
           05        SYSTIME.
             10      SYSHR             PIC  X(02).
             10      SYSMIN            PIC  X(02).
             10      SYSSEC            PIC  X(02).
           05        SYSDATE.
             10      SYSYY             PIC  9(02).
             10      SYSMM             PIC  X(02).
             10      SYSDD             PIC  X(02).

       01            CTLAREA.
           05        CTLCHAR           PIC  X(01) VALUE ' '.
           05        ERR.
             10      ERRREQ            PIC  X(03).
             10      FILLER            PIC  X(01).
             10      ERRID             PIC  X(02).
             10      FILLER            PIC  X(01).
             10      ERRPRT            PIC  X(01).
             10      FILLER            PIC  X(03).
             10      ERRDIST           PIC  X(02).
             10      FILLER            PIC  X(01).
             10      ERRFY             PIC  X(02).
             10      FILLER            PIC  X(01).
             10      ERRFUND           PIC  X(01).
             10      FILLER            PIC  X(01).
             10      ERRTBLE           PIC  X(05).
             10      FILLER            PIC  X(01).
             10      ERRSCHL           PIC  X(04).
             10      FILLER            PIC  X(01).
             10      ERRSUM            PIC  X(01).
             10      FILLER            PIC  X(01).
             10      ERRRPT            PIC  X(01).

       01            RQR.
           05        RQRREQ            PIC  X(03).
           05        RQRPRT            PIC  X(01).
           05        RQRDIST           PIC  X(02).
           05        RQRFY             PIC  X(02).
           05        RQRSEL.
             10      RQRFUND           PIC  X(01).
             10      RQRTBLE           PIC  X(05).
             10      RQRSCHL           PIC  X(04).
           05        RQRSELR    REDEFINES   RQRSEL.
             10      RQRB       OCCURS 010  TIMES INDEXED BY RQR1
                                       PIC  X(01).
           05        RQRSUM            PIC  X(01).
           05        RQRRPT            PIC  X(01).

       01            SEL.
           05        SELFUND           PIC  X(01).
           05        SELTBLE           PIC  X(05).
           05        SELSCHL           PIC  X(04).
       01            SELR       REDEFINES   SEL.
           05        SELB       OCCURS 010  TIMES INDEXED BY SEL1
                                       PIC  X(01).

       01            RQH.
           05        RQHENTRY   OCCURS 100  TIMES INDEXED BY RQH1.
             10      RQHREQ            PIC  X(03).
             10      RQHID             PIC  X(02).
             10      RQHUSER           PIC  X(08).
             10      RQHHEAD.
               15    RQHB       OCCURS 050  TIMES INDEXED BY RQH2
                                       PIC  X(01).

       01            STRKEY.
           05        STRDIST           PIC  X(02) VALUE HIGH-VALUES.
           05        STRFY             PIC  X(02) VALUE HIGH-VALUES.
           05        STRFUND           PIC  X(01) VALUE HIGH-VALUES.
           05        STRTBLE           PIC  X(05) VALUE HIGH-VALUES.
           05        STRSCHL           PIC  X(04) VALUE HIGH-VALUES.
           05        FILLER            PIC  X(03) VALUE HIGH-VALUES.

       01            ENDKEY.
           05        ENDDIST           PIC  X(02) VALUE LOW-VALUES.
           05        ENDFY             PIC  X(02) VALUE LOW-VALUES.
           05        ENDFUND           PIC  X(01) VALUE LOW-VALUES.
           05        ENDTBLE           PIC  X(05) VALUE LOW-VALUES.
           05        ENDSCHL           PIC  X(04) VALUE LOW-VALUES.
           05        FILLER            PIC  X(03) VALUE LOW-VALUES.

       01            CTR.
           05        CTRLN            PIC S9(03)       COMP-3 VALUE +0.
           05        CTRPG            PIC S9(03)       COMP-3 VALUE +0.
           05        CTRIDX           PIC S9(05)       COMP-3 VALUE +0.
071002*    05        CTRLNTOT         PIC S9(11)       COMP-3 VALUE +0.
071002     05        CTRLNTOT         PIC S9(11)V9(07) COMP-3 VALUE +0.
           05        CTRSCHL.
071002*      10      CTRINST          PIC S9(11)       COMP-3 VALUE +0.
071002*      10      CTRSIND          PIC S9(11)       COMP-3 VALUE +0.
071002*      10      CTRDIND          PIC S9(11)       COMP-3 VALUE +0.
071002*      10      CTRAMT           PIC S9(11)       COMP-3 VALUE +0.
071002       10      CTRINST          PIC S9(11)V9(07) COMP-3 VALUE +0.
071002       10      CTRSIND          PIC S9(11)V9(07) COMP-3 VALUE +0.
071002       10      CTRDIND          PIC S9(11)V9(07) COMP-3 VALUE +0.
071002       10      CTRAMT           PIC S9(11)V9(07) COMP-3 VALUE +0.
             10      CTRPCT1          PIC S9(03)V9(02) COMP-3 VALUE +0.
             10      CTRPCT2          PIC S9(03)V9(02) COMP-3 VALUE +0.
             10      CTRPCT3          PIC S9(03)V9(02) COMP-3 VALUE +0.
           05        CTRFUND.
071002*      10      CTRFNDINST       PIC S9(11)       COMP-3 VALUE +0.
071002*      10      CTRFNDSIND       PIC S9(11)       COMP-3 VALUE +0.
071002*      10      CTRFNDDIND       PIC S9(11)       COMP-3 VALUE +0.
071002*      10      CTRFNDAMT        PIC S9(11)       COMP-3 VALUE +0.
071002       10      CTRFNDINST       PIC S9(11)V9(07) COMP-3 VALUE +0.
071002       10      CTRFNDSIND       PIC S9(11)V9(07) COMP-3 VALUE +0.
071002       10      CTRFNDDIND       PIC S9(11)V9(07) COMP-3 VALUE +0.
071002       10      CTRFNDAMT        PIC S9(11)V9(07) COMP-3 VALUE +0.
             10      CTRFNDPCT1       PIC S9(03)V9(02) COMP-3 VALUE +0.
             10      CTRFNDPCT2       PIC S9(03)V9(02) COMP-3 VALUE +0.
             10      CTRFNDPCT3       PIC S9(03)V9(02) COMP-3 VALUE +0.
           05        CTRREQ.
071002*      10      CTRREQINST       PIC S9(11)       COMP-3 VALUE +0.
071002*      10      CTRREQSIND       PIC S9(11)       COMP-3 VALUE +0.
071002*      10      CTRREQDIND       PIC S9(11)       COMP-3 VALUE +0.
071002*      10      CTRREQAMT        PIC S9(11)       COMP-3 VALUE +0.
071002       10      CTRREQINST       PIC S9(11)V9(07) COMP-3 VALUE +0.
071002       10      CTRREQSIND       PIC S9(11)V9(07) COMP-3 VALUE +0.
071002       10      CTRREQDIND       PIC S9(11)V9(07) COMP-3 VALUE +0.
071002       10      CTRREQAMT        PIC S9(11)V9(07) COMP-3 VALUE +0.
             10      CTRREQPCT1       PIC S9(03)V9(02) COMP-3 VALUE +0.
             10      CTRREQPCT2       PIC S9(03)V9(02) COMP-3 VALUE +0.
             10      CTRREQPCT3       PIC S9(03)V9(02) COMP-3 VALUE +0.

       01            OLD.
           05        OLDKEY.
             10      OLDKDIST          PIC  X(02).
             10      OLDKREQ           PIC  X(03).
             10      OLDKFY            PIC  X(02).
             10      OLDKFUND          PIC  X(01).
             10      OLDKTBLE          PIC  X(05).
             10      OLDKSCHL          PIC  X(04).
             10      OLDKFUNC          PIC  X(04).
           05        OLDPRT            PIC  X(01).
           05        OLDSUM            PIC  X(01).


           COPY                        EWSCL        OF          CPYSRC.
           COPY                        EWTBL        OF          CPYSRC.
           COPY                        EWRWF        OF          CPYSRC.

       01            OLDLN             PIC  X(133).

       01      HD1.
001        05  FILLER  PIC X(06) VALUE 'EW029 '.
           05  HD1ABBR.
007         10 HD1B    OCCURS 22 TIMES INDEXED BY HD11 PIC X(01).
029        05  FILLER  PIC X(11) VALUE SPACES.
040        05  HD1MODE PIC X(08) VALUE SPACES.
048        05  FILLER  PIC X(09) VALUE SPACES.
057        05  FILLER  PIC X(21) VALUE 'FUNCTIONAL ACCOUNTING'.
078        05  FILLER  PIC X(20) VALUE SPACES.
098        05  HD1USER PIC X(09) VALUE SPACES.
107        05  HD1MM   PIC X(02) VALUE SPACES.
109        05  FILLER  PIC X(01) VALUE '/'.
110        05  HD1DD   PIC X(02) VALUE SPACES.
112        05  FILLER  PIC X(01) VALUE '/'.
113        05  HD1YY   PIC X(02) VALUE SPACES.
115        05  FILLER  PIC X(02) VALUE SPACES.
117        05  HD1HR   PIC X(02) VALUE SPACES.
119        05  FILLER  PIC X(01) VALUE ':'.
120        05  HD1MN   PIC X(02) VALUE SPACES.
122        05  FILLER  PIC X(07) VALUE '  PAGE-'.
129        05  HD1PG   PIC ZZZ9.

       01      HD2.
001        05  FILLER  PIC X(41) VALUE SPACES.
           05  HD2HEAD.
042         10 HD2B    OCCURS 50 TIMES INDEXED BY HD21 PIC X(01).
092        05  FILLER  PIC X(41) VALUE SPACES.

       01      HD3.
001        05  FILLER  PIC X(41) VALUE SPACES.
           05  HD3HEAD.
042         10 HD3B    OCCURS 50 TIMES INDEXED BY HD31 PIC X(01).
092        05  FILLER  PIC X(41) VALUE SPACES.

       01      HD4.
001        05  FILLER  PIC X(07) VALUE 'FUND - '.
008        05  HD4FND  PIC X(01) VALUE SPACES.
009        05  FILLER  PIC X(124) VALUE SPACES.

       01      HD5.
001        05  FILLER  PIC X(07) VALUE 'TABLE- '.
008        05  HD5TBL  PIC X(05) VALUE SPACES.
013        05  FILLER  PIC X(01) VALUE SPACES.
014        05  HD5DESC PIC X(30) VALUE SPACES.
044        05  FILLER  PIC X(89) VALUE SPACES.

       01      HD6.
001        05  FILLER  PIC X(07) VALUE 'SCHL-  '.
008        05  HD6SCHL PIC X(04) VALUE SPACES.
013        05  FILLER  PIC X(02) VALUE SPACES.
014        05  HD6DESC PIC X(30) VALUE SPACES.
044        05  FILLER  PIC X(89) VALUE SPACES.

       01      HD7.
001        05  FILLER  PIC X(56) VALUE SPACES.
057        05  FILLER  PIC X(06) VALUE 'DIRECT'.
063        05  FILLER  PIC X(10) VALUE SPACES.
073        05  FILLER  PIC X(15) VALUE 'SCHOOL INDIRECT'.
088        05  FILLER  PIC X(04) VALUE SPACES.
092        05  FILLER  PIC X(17) VALUE 'DISTRICT INDIRECT'.
109        05  FILLER  PIC X(24) VALUE SPACES.

       01      HD8.
001        05  FILLER  PIC X(11) VALUE SPACES.
012        05  FILLER  PIC X(08) VALUE 'FUNCTION'.
020        05  FILLER  PIC X(34) VALUE SPACES.
054        05  FILLER  PIC X(13) VALUE 'AMOUNT    PCT'.
067        05  FILLER  PIC X(08) VALUE SPACES.
075        05  FILLER  PIC X(13) VALUE 'AMOUNT    PCT'.
088        05  FILLER  PIC X(08) VALUE SPACES.
096        05  FILLER  PIC X(13) VALUE 'AMOUNT    PCT'.
109        05  FILLER  PIC X(09) VALUE SPACES.
118        05  FILLER  PIC X(05) VALUE 'TOTAL'.
123        05  FILLER  PIC X(10) VALUE SPACES.

       01      HD9.
001        05  FILLER  PIC X(11) VALUE SPACES.
012        05  FILLER  PIC X(17) VALUE '5000 INSTRUCTION:'.
029        05  FILLER  PIC X(104) VALUE SPACES.

       LINKAGE       SECTION.

           COPY                       EWBJR                OF CPYSRC.

       PROCEDURE DIVISION USING BJR.
      ******************************************************************
       DECLARATIVES.
       000-ERROR     SECTION.
           USE AFTER STANDARD ERROR PROCEDURE ON CRD-CARD
                                                 RWF-DISK
                                                 CRF-DISK.
       000-ENCOUNTERED.
           CONTINUE.
       END DECLARATIVES.

      ******************************************************************
           SORT    SRT-SORT            ASCENDING KEY       SRTKEY
                                       INPUT     PROCEDURE 000-INPUT
                                       OUTPUT    PROCEDURE 500-OUTPUT.
           GOBACK.

      ******************************************************************
       000-INPUT SECTION.
           PERFORM 490-HOUSEKEEPING    THRU 490-EXIT.

       005-LOOP.
           IF      RETRWF              NOT  =  '00'
             GO                        TO   499-EOJ.
           PERFORM 015-SELECT          THRU 015-EXIT
           PERFORM 010-READ            THRU 010-EXIT
           GO                          TO   005-LOOP.

      ******************************************************************
       010-READ.
           READ    RWF-DISK            NEXT
           IF     (RWFDK               >    ENDKEY)                  OR
                  (RETRWF              NOT  =   '00')
             MOVE  '99'                TO   RETRWF
           ELSE
             MOVE  RWFD                TO   RWF.
       010-EXIT.
           EXIT.

      ******************************************************************
       015-SELECT.
           IF     (RQRREQ              =    HIGH-VALUES)
             GO                        TO   015-EXIT.

           MOVE    RWFFUND             TO   SELFUND
           MOVE    RWFTABLE            TO   SELTBLE
           MOVE    RWFSCHL             TO   SELSCHL
           SET     RQR1  SEL1          TO   +1.
       015-MASK.
           IF      RQRB    (RQR1)      =    SPACES
             MOVE  ' '                 TO   SELB         (SEL1).
           IF      RQR1                <    +10
             SET   RQR1  SEL1          UP   BY  +1
             GO                        TO   015-MASK.

           IF     (RQRDIST             NOT  =  RWFDIST)      OR
                  (RQRFY               NOT  =  RWFFY)        OR
                  (RQRSEL              NOT  =  SEL)          OR
051100            (RWFTABLE            =    '99998')         OR
                  (RWFTABLE            =    '99999'       AND
                   RWFSCHL             =    '0000')
             GO                        TO   015-EXIT.

           INITIALIZE    SRT
           MOVE    RQRDIST             TO   SRTKDIST
           MOVE    RQRREQ              TO   SRTKREQ
           MOVE    RWFFY               TO   SRTKFY
           MOVE    RWFFUND             TO   SRTKFUND
           MOVE    RWFTABLE            TO   SRTKTBLE
           MOVE    RQRPRT              TO   SRTPRT
           MOVE    RWFDSAL             TO   SRTAMT   (01)
           MOVE    RWFDBEN             TO   SRTAMT   (02)
           MOVE    RWFDPRCH            TO   SRTAMT   (03)
           MOVE    RWFDMATSUP          TO   SRTAMT   (04)
           MOVE    RWFDOTHER           TO   SRTAMT   (05)
           MOVE    RWFDCAP             TO   SRTAMT   (06)
           MOVE    RWFSI6100           TO   SRTAMT   (07)
           MOVE    RWFSI6200           TO   SRTAMT   (08)
           MOVE    RWFSI6300           TO   SRTAMT   (09)
           MOVE    RWFSI6400           TO   SRTAMT   (10)
           MOVE    RWFSI7300           TO   SRTAMT   (11)
           MOVE    RWFSI7400           TO   SRTAMT   (12)
           MOVE    RWFSI7600           TO   SRTAMT   (13)
           MOVE    RWFSI7700           TO   SRTAMT   (14)
           MOVE    RWFSI7800           TO   SRTAMT   (15)
           MOVE    RWFSI7900           TO   SRTAMT   (16)
           MOVE    RWFSI8100           TO   SRTAMT   (17)
           MOVE    RWFDI6100           TO   SRTAMT   (18)
           MOVE    RWFDI6200           TO   SRTAMT   (19)
           MOVE    RWFDI6300           TO   SRTAMT   (20)
           MOVE    RWFDI6400           TO   SRTAMT   (21)
           MOVE    RWFDI7100           TO   SRTAMT   (22)
           MOVE    RWFDI7200           TO   SRTAMT   (23)
           MOVE    RWFDI7400           TO   SRTAMT   (24)
           MOVE    RWFDI7500           TO   SRTAMT   (25)
           MOVE    RWFDI7600           TO   SRTAMT   (26)
           MOVE    RWFDI7700           TO   SRTAMT   (27)
           MOVE    RWFDI7800           TO   SRTAMT   (28)
           MOVE    RWFDI7900           TO   SRTAMT   (29)
           MOVE    RWFDI8100           TO   SRTAMT   (30)
041906     MOVE    RWFSI8200           TO   SRTAMT   (31)
041906     MOVE    RWFSI6500           TO   SRTAMT   (32)
041906     MOVE    RWFDI8200           TO   SRTAMT   (33)
041906     MOVE    RWFDI6500           TO   SRTAMT   (34)

           IF      RQRSUM              =    'Y'
             MOVE  '0000'              TO   SRTKSCHL
             RELEASE SRT
           ELSE
             MOVE  RWFSCHL             TO   SRTKSCHL
             RELEASE  SRT
             MOVE    '0000'            TO   SRTKSCHL
             RELEASE  SRT.
       015-EXIT.
           EXIT.

      ******************************************************************
       490-HOUSEKEEPING.
           OPEN    INPUT                    CRD-CARD      CRF-DISK
                                            RWF-DISK
                   OUTPUT                   PR1-PRNT
           MOVE    SPACES              TO   LN1
           MOVE    '1'                 TO   CTLCHAR
           MOVE    HIGH-VALUES         TO   RQR           RQH.
           IF      BJR                 >    SPACES
             PERFORM 495-LOAD          THRU 495-EXIT
             GO                        TO   490-TEST.
       490-LOAD.
           READ    CRD-CARD            AT   END
             GO                        TO   490-TEST.
           IF      CRDREQ              NOT  NUMERIC
             MOVE    CRD               TO   LNMVALUE2
             PERFORM 520-PRINT         THRU 520-EXIT
             GO                        TO   490-LOAD.
           MOVE    SPACES              TO   ERR
           IF      CRDID               =    'SL'
             GO                        TO   490-REQ
           ELSE
             IF     (CRDID             =    'H1')                    OR
                    (CRDID             =    'H2')
               GO                      TO   490-HEAD
             ELSE
               GO                      TO   490-LOAD.

       490-REQ.
           IF     (CRDPRT              NOT  =   'U')                 AND
                  (CRDPRT              NOT  =   'T')                 AND
                  (CRDPRT              NOT  =   'B')                 AND
                  (CRDPRT              NOT  =   'N')
             MOVE  ALL '-'             TO   ERRPRT.
           IF     (CRDDIST             =    SPACES)
             MOVE  ALL '-'             TO   ERRDIST.
           IF     (CRDFY               NOT  NUMERIC)
             MOVE  ALL '-'             TO   ERRFY.
           IF     (CRDRPT              NOT  =   'A')               AND
                  (CRDRPT              NOT  =   'B')               AND
                  (CRDRPT              NOT  =   'C')
             MOVE  ALL '-'             TO   ERRRPT.
           IF     (CRDSUM              NOT  =   'Y')               AND
                  (CRDSUM              NOT  =   ' ')
             MOVE  ALL '-'             TO   ERRSUM.
           IF     (CRDFUND             NOT  =   '1')               AND
                  (CRDFUND             NOT  =   '4')               AND
050709            (CRDFUND             NOT  =   '5')               AND
050709            (CRDFUND             NOT  =   '6')               AND
050709            (CRDFUND             NOT  =   '7')               AND
                  (CRDFUND             NOT  =   ' ')
             MOVE  ALL '-'             TO   ERRFUND.
           IF      ERR                 NOT  =   SPACES
             MOVE    'ERROR. BYPASSED' TO   LNMMSG
             MOVE    CRD               TO   LNMVALUE2
             PERFORM 520-PRINT         THRU 520-EXIT
             MOVE    ERR               TO   LNMVALUE2
             PERFORM 520-PRINT         THRU 520-EXIT
             GO                        TO   490-LOAD
           ELSE
             MOVE    'REQUEST LOADED'  TO   LNMMSG
             MOVE    CRD               TO   LNMVALUE2
             PERFORM 520-PRINT         THRU 520-EXIT.
           MOVE    CRDREQ              TO   RQRREQ
           MOVE    CRDPRT              TO   RQRPRT
           MOVE    CRDDIST             TO   RQRDIST
           MOVE    CRDFY               TO   RQRFY
           MOVE    CRDFUND             TO   RQRFUND
           MOVE    CRDTBLE             TO   RQRTBLE
           MOVE    CRDSCHL             TO   RQRSCHL
           MOVE    CRDSUM              TO   RQRSUM
           MOVE    CRDRPT              TO   RQRRPT

           MOVE    CRDDIST             TO   RWFKEY
           MOVE    CRDFY               TO   RWFFY
           MOVE    CRDFUND             TO   RWFFUND
           MOVE    CRDTBLE             TO   RWFTABLE
           MOVE    CRDSCHL             TO   RWFSCHL
           IF     (RWFKEY              <    STRKEY)
             MOVE  RWFKEY              TO   STRKEY.
           INSPECT RWFKEY       REPLACING   ALL  ' ' BY HIGH-VALUES
           IF     (RWFKEY              >    ENDKEY)
             MOVE  RWFKEY              TO   ENDKEY.
           GO                          TO   490-LOAD.
       490-HEAD.
           MOVE    CRD                 TO   LNMVALUE2
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    CRHREQ              TO   RQHREQ       (RQH1)
           MOVE    CRHID               TO   RQHID        (RQH1)
           MOVE    CRHUSER             TO   RQHUSER      (RQH1)
           MOVE    SPACES              TO   RQHHEAD      (RQH1)
           MOVE    +50                 TO   CTRIDX
           SET     CRH1                TO   +50.
       490-HEAD1.
           IF      CRHB         (CRH1) =    SPACES
             IF      CRH1              >    +2
               ADD   -1                TO   CTRIDX
               SET   CRH1              DOWN BY  +1
               GO                      TO   490-HEAD1.
           SUBTRACT +1                 FROM CTRIDX
           COMPUTE CTRIDX      ROUNDED =    (50  - CTRIDX) / 2
           SET     RQH2                TO   CTRIDX
           SET     CRH1                TO   +1.
       490-HEAD2.
           MOVE    CRHB         (CRH1) TO   RQHB         (RQH1 RQH2)
           IF      RQH2                <    +50
             SET   RQH2  CRH1          UP   BY  +1
             GO                        TO   490-HEAD2.
           SET     RQH1             UP BY   +1
           GO                          TO   490-LOAD.

       490-TEST.
           IF      RQR                 =    HIGH-VALUES
             MOVE    'EW029 NO REQUESTS *'   TO   LNMMSG
             PERFORM 520-PRINT         THRU 520-EXIT.
           IF      RETCRF              NOT  =   '00'
             MOVE    'CRF OPEN ERROR'  TO   LNMMSG
             MOVE    RETCRF            TO   LNMVALUE1
             PERFORM 520-PRINT         THRU 520-EXIT.
           IF      RETRWF              NOT  =   '00'
             MOVE    'RWF OPEN ERROR'  TO   LNMMSG
             MOVE    RETRWF            TO   LNMVALUE1
             PERFORM 520-PRINT         THRU 520-EXIT.
           IF     (RETCRF              NOT  =   '00')                OR
                  (RETRWF              NOT  =   '00')
             GO                        TO   499-EOJ.
           MOVE    STRKEY              TO   RWFDK
           START   RWF-DISK        KEY >    RWFDK
           IF      RETRWF              =    '00'
             PERFORM 010-READ          THRU 010-EXIT.
       490-EXIT.
           EXIT.

      ******************************************************************
       495-LOAD.
           MOVE    BJRCARD1            TO   CRD
           MOVE    SPACES              TO   ERR
           IF     (CRDPRT              NOT  =   'U')                 AND
                  (CRDPRT              NOT  =   'T')                 AND
                  (CRDPRT              NOT  =   'B')                 AND
                  (CRDPRT              NOT  =   'N')
             MOVE  ALL '-'             TO   ERRPRT.
           IF     (CRDDIST             =    SPACES)
             MOVE  ALL '-'             TO   ERRDIST.
           IF     (CRDFY               NOT  NUMERIC)
             MOVE  ALL '-'             TO   ERRFY.
           IF     (CRDRPT              NOT  =   'A')               AND
                  (CRDRPT              NOT  =   'B')               AND
                  (CRDRPT              NOT  =   'C')
             MOVE  ALL '-'             TO   ERRRPT.
           IF     (CRDSUM              NOT  =   'Y')               AND
                  (CRDSUM              NOT  =   ' ')
             MOVE  ALL '-'             TO   ERRSUM.
           IF     (CRDFUND             NOT  =   '1')               AND
                  (CRDFUND             NOT  =   '4')               AND
050709            (CRDFUND             NOT  =   '5')               AND
050709            (CRDFUND             NOT  =   '6')               AND
050709            (CRDFUND             NOT  =   '7')               AND
                  (CRDFUND             NOT  =   ' ')
             MOVE  ALL '-'             TO   ERRFUND.
           IF      ERR                 NOT  =   SPACES
             MOVE    'ERROR. BYPASSED' TO   LNMMSG
             MOVE    CRD               TO   LNMVALUE2
             PERFORM 520-PRINT         THRU 520-EXIT
             MOVE    ERR               TO   LNMVALUE2
             PERFORM 520-PRINT         THRU 520-EXIT
             GO                        TO   495-EXIT.
           MOVE    CRDREQ              TO   RQRREQ
           MOVE    CRDPRT              TO   RQRPRT
           MOVE    CRDDIST             TO   RQRDIST
           MOVE    CRDFY               TO   RQRFY
           MOVE    CRDFUND             TO   RQRFUND
           MOVE    CRDTBLE             TO   RQRTBLE
           MOVE    CRDSCHL             TO   RQRSCHL
           MOVE    CRDRPT              TO   RQRRPT
           MOVE    CRDSUM              TO   RQRSUM

           MOVE    CRDDIST             TO   RWFKEY
           MOVE    CRDFY               TO   RWFFY
           MOVE    CRDFUND             TO   RWFFUND
           MOVE    CRDTBLE             TO   RWFTABLE
           MOVE    CRDSCHL             TO   RWFSCHL
           IF     (RWFKEY              <    STRKEY)
             MOVE  RWFKEY              TO   STRKEY.
           INSPECT RWFKEY       REPLACING   ALL  ' ' BY HIGH-VALUES
           IF     (RWFKEY              >    ENDKEY)
             MOVE  RWFKEY              TO   ENDKEY.

           MOVE    BJRREQ1             TO   CRHREQ
           MOVE    BJRID1              TO   CRHID
           MOVE    BJRUSER1            TO   CRHUSER
           MOVE    BJRHEAD1            TO   CRHHEAD.
       495-HEAD.
           MOVE    CRHREQ              TO   RQHREQ       (RQH1)
           MOVE    CRHID               TO   RQHID        (RQH1)
           MOVE    CRHUSER             TO   RQHUSER      (RQH1)
           MOVE    SPACES              TO   RQHHEAD      (RQH1)
           MOVE    +50                 TO   CTRIDX
           SET     CRH1                TO   +50.
       495-HEAD1.
           IF      CRHB         (CRH1) =    SPACES
             IF      CRH1              >    +2
               ADD   -1                TO   CTRIDX
               SET   CRH1              DOWN BY  +1
               GO                      TO   495-HEAD1.
           SUBTRACT +1                 FROM CTRIDX
           COMPUTE CTRIDX      ROUNDED =    (50  - CTRIDX) / 2
           SET     RQH2                TO   CTRIDX
           SET     CRH1                TO   +1.
       495-HEAD2.
           MOVE    CRHB         (CRH1) TO   RQHB         (RQH1 RQH2)
           IF      RQH2                <    +50
             SET   RQH2  CRH1          UP   BY  +1
             GO                        TO   495-HEAD2.
           IF      BJRHEAD2            NOT  =   SPACES              AND
                   RQH1                =    +1
             SET   RQH1                UP   BY  +1
             MOVE  BJRREQ2             TO   CRHREQ
             MOVE  BJRID2              TO   CRHID
             MOVE  BJRUSER2            TO   CRHUSER
             MOVE  BJRHEAD2            TO   CRHHEAD
             GO                        TO   495-HEAD.
       495-EXIT.
           EXIT.
      ******************************************************************
       499-EOJ.
       499-EXIT.
           EXIT.

      ******************************************************************
       500-OUTPUT SECTION.
           PERFORM 990-HOUSEKEEPING    THRU 990-EXIT.
       505-LOOP.
             IF    (SRTKDIST           NOT  =   OLDKDIST)            OR
                   (SRTKREQ            NOT  =   OLDKREQ)             OR
                   (SRTKFY             NOT  =   OLDKFY)              OR
                   (SRTKFUND           NOT  =   OLDKFUND)            OR
                   (SRTKTBLE           NOT  =   OLDKTBLE)            OR
                   (SRTKSCHL           NOT  =   OLDKSCHL)
               PERFORM 615-1TOT        THRU 615-EXIT
               IF  (SRTKDIST           NOT  =   OLDKDIST)            OR
                   (SRTKREQ            NOT  =   OLDKREQ)             OR
                   (SRTKFY             NOT  =   OLDKFY)              OR
                   (SRTKFUND           NOT  =   OLDKFUND)            OR
                   (SRTKTBLE           NOT  =   OLDKTBLE)
                 PERFORM 625-2TOT      THRU 625-EXIT
                 IF  (SRTKDIST         NOT  =   OLDKDIST)            OR
                     (SRTKREQ          NOT  =   OLDKREQ)             OR
                     (SRTKFY           NOT  =   OLDKFY)              OR
                     (SRTKFUND         NOT  =   OLDKFUND)
                   PERFORM 635-3TOT    THRU 635-EXIT
                   IF  (SRTKDIST       NOT  =   OLDKDIST)          OR
                       (SRTKREQ        NOT  =   OLDKREQ)           OR
                       (SRTKFY         NOT  =   OLDKFY)
                     PERFORM 645-4TOT  THRU 645-EXIT
                     IF  (SRTKEY       =    HIGH-VALUES)
                       GO              TO   999-EOJ
                   ELSE
                     PERFORM 640-4CHG  THRU 640-EXIT
                 ELSE
                   PERFORM 630-3CHG    THRU 630-EXIT
               ELSE
                 PERFORM 620-2CHG      THRU 620-EXIT
             ELSE
               PERFORM 610-1CHG        THRU 610-EXIT.

           PERFORM 515-PROCESS         THRU 515-EXIT
           PERFORM 510-READ            THRU 510-EXIT
           GO                          TO   505-LOOP.

      ******************************************************************
       510-READ.
           RETURN  SRT-SORT            AT   END
             MOVE  HIGH-VALUES         TO   SRTKEY.
       510-EXIT.
           EXIT.

      ******************************************************************
       515-PROCESS.
           SET      WSC1               TO   +1
           SET      WSF1               TO   +1
           SET      SRT1               TO   +1.
       515-LOOP.
           ADD      SRTAMT (SRT1)      TO   WSCAMT  (WSC1)
                                            CTRAMT
           IF       SRTKSCHL           =    '0000'
             ADD    SRTAMT (SRT1)      TO   WSFAMT  (WSF1).
041906*    IF       SRT1               <    +30
041906     IF       SRT1               <    +34
             SET    SRT1               UP   BY  +1
             SET    WSC1               UP   BY  +1
             SET    WSF1               UP   BY  +1
             GO                        TO   515-LOOP.
       515-EXIT.
           EXIT.

      ******************************************************************
       520-PRINT.
           IF      CTRLN               >    +60
             PERFORM 525-HEADS         THRU 525-EXIT.
           IF      CTLCHAR             =    '1'
             WRITE LN1             AFTER    ADVANCING PAGE
           ELSE
             IF      CTLCHAR           =    '0'
               WRITE LN1           AFTER    ADVANCING  2  LINES
               ADD   +2                TO   CTRLN
             ELSE
               IF      CTLCHAR         =    ' '
                 WRITE LN1         AFTER    ADVANCING  1  LINES
                 ADD   +1              TO   CTRLN
               ELSE
                 WRITE LN1         AFTER    ADVANCING  0  LINES
                 ADD   +0              TO   CTRLN.
           MOVE    SPACES              TO   LN1           CTLCHAR.
       520-EXIT.
           EXIT.

       525-HEADS.
           MOVE    LN1                 TO   OLDLN
           MOVE    +0                  TO   CTRLN
           ADD     +1                  TO   CTRPG
           MOVE    CTRPG               TO   HD1PG
           MOVE    HD1                 TO   LN1
           MOVE    '1'                 TO   CTLCHAR
           PERFORM 520-PRINT           THRU 520-EXIT
           IF      HD2                 NOT  =   SPACES
             MOVE    HD2               TO   LN1
             PERFORM 520-PRINT         THRU 520-EXIT.
           IF      HD3                 NOT  =   SPACES
             MOVE    HD3               TO   LN1
             PERFORM 520-PRINT         THRU 520-EXIT.
           MOVE    '0'                 TO   CTLCHAR
           IF      WSCLAST             =    'N'
             MOVE    HD4               TO   LN1
             PERFORM 520-PRINT         THRU 520-EXIT
             IF    WSCFND              =    'N'
               MOVE    HD5             TO   LN1
               PERFORM 520-PRINT       THRU 520-EXIT
               MOVE    HD6             TO   LN1
               PERFORM 520-PRINT       THRU 520-EXIT
             ELSE
               MOVE  'N'               TO   WSCFND
           ELSE
             MOVE   'N'                TO   WSCLAST.
           MOVE    '0'                 TO   CTLCHAR
           MOVE    HD7                 TO   LN1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    HD8                 TO   LN1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '0'                 TO   CTLCHAR
           MOVE    HD9                 TO   LN1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    OLDLN               TO   LN1.
       525-EXIT.
           EXIT.

      ******************************************************************
       610-1CHG.
           MOVE    SRTKSCHL            TO   OLDKSCHL  HD6SCHL
           MOVE    SRTKDIST            TO   SCLDIST
           MOVE    SRTKFY              TO   SCLFY
           MOVE    'SCL'               TO   SCLPREF
           MOVE    SRTKSCHL            TO   SCLSCL
           MOVE    SCLKEY              TO   CRFDK
           READ    CRF-DISK
           IF      RETCRF              NOT  =  '00'
             MOVE  'UNKNOWN'           TO   HD6DESC
           ELSE
             MOVE  CRFD                TO   SCL
             MOVE  SCLDESC             TO   HD6DESC.
           MOVE    +61                 TO   CTRLN
           PERFORM 700-TBL-INIT        THRU 700-EXIT
           INITIALIZE                  CTRSCHL.
       610-EXIT.
           EXIT.

       615-1TOT.
           IF      CTRAMT              =    ZEROS
             MOVE '* ERROR - NO EXPENSES *' TO  LN1
             PERFORM 520-PRINT         THRU 520-EXIT
             GO                        TO   615-EXIT.
           MOVE    '  SALARIES'        TO   LN1NAME
           MOVE    WSCAMT (01)         TO   LN1AMT1
           ADD     WSCAMT (01)         TO   CTRINST
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (01) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '  EMPLOYEE BENEFITS' TO   LN1NAME
           MOVE    WSCAMT (02)         TO   LN1AMT1
           ADD     WSCAMT (02)         TO   CTRINST
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (02) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '  PURCHASED SERVICES'   TO   LN1NAME
           MOVE    WSCAMT (03)         TO   LN1AMT1
           ADD     WSCAMT (03)         TO   CTRINST
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (03) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '  MATERIALS AND SUPPLIES'   TO   LN1NAME
           MOVE    WSCAMT (04)         TO   LN1AMT1
           ADD     WSCAMT (04)         TO   CTRINST
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (04) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '  OTHER EXPENSES'  TO   LN1NAME
           MOVE    WSCAMT (05)         TO   LN1AMT1
           ADD     WSCAMT (05)         TO   CTRINST
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (05) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '  CAPITAL OUTLAY'  TO   LN1NAME
           MOVE    WSCAMT (06)         TO   LN1AMT1
           ADD     WSCAMT (06)         TO   CTRINST
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (06) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    'SUBTOTAL INSTRUCTION'   TO   LN1NAME
           MOVE    CTRINST             TO   LN1AMT1  LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '6100'              TO   LN1FUNC
           MOVE    'PUPIL PERSONNEL'   TO   LN1NAME
           MOVE    WSCAMT (07)         TO   LN1AMT2
           ADD     WSCAMT (07)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (07) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           MOVE    WSCAMT (18)         TO   LN1AMT3
           ADD     WSCAMT (18)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (18) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           COMPUTE CTRLNTOT            =    WSCAMT (07) + WSCAMT (18)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '6200'              TO   LN1FUNC
           MOVE    'INSTRUCTIONAL MEDIA'   TO   LN1NAME
           MOVE    WSCAMT (08)         TO   LN1AMT2
           ADD     WSCAMT (08)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (08) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           MOVE    WSCAMT (19)         TO   LN1AMT3
           ADD     WSCAMT (19)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (19) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           COMPUTE CTRLNTOT            =    WSCAMT (08) + WSCAMT (19)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '6300'              TO   LN1FUNC
           MOVE    'INSTRUCTION AND CURRICULM DEV'   TO   LN1NAME
           MOVE    WSCAMT (09)         TO   LN1AMT2
           ADD     WSCAMT (09)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (09) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           MOVE    WSCAMT (20)         TO   LN1AMT3
           ADD     WSCAMT (20)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (20) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           COMPUTE CTRLNTOT            =    WSCAMT (09) + WSCAMT (20)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '6400'              TO   LN1FUNC
           MOVE    'INSTRUCTIONAL STAFF TRAINING'    TO   LN1NAME
           MOVE    WSCAMT (10)         TO   LN1AMT2
           ADD     WSCAMT (10)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (10) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           MOVE    WSCAMT (21)         TO   LN1AMT3
           ADD     WSCAMT (21)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (21) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           COMPUTE CTRLNTOT            =    WSCAMT (10) + WSCAMT (21)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

041906     MOVE    '6500'              TO   LN1FUNC
041906     MOVE    'INSTRUCTION RELATED TECHNOLOGY'  TO   LN1NAME
041906     MOVE    WSCAMT (32)         TO   LN1AMT2
041906     ADD     WSCAMT (32)         TO   CTRSIND
041906     COMPUTE WSCPCT ROUNDED      =    (WSCAMT (32) / CTRAMT)
041906     MULTIPLY  100               BY   WSCPCT
041906     MOVE    WSCPCT              TO   LN1PCT2
041906     ADD     WSCPCT              TO   CTRPCT2
041906     MOVE    WSCAMT (34)         TO   LN1AMT3
041906     ADD     WSCAMT (34)         TO   CTRDIND
041906     COMPUTE WSCPCT ROUNDED      =    (WSCAMT (34) / CTRAMT)
041906     MULTIPLY  100               BY   WSCPCT
041906     MOVE    WSCPCT              TO   LN1PCT3
041906     ADD     WSCPCT              TO   CTRPCT3
041906     COMPUTE CTRLNTOT            =    WSCAMT (32) + WSCAMT (34)
041906     MOVE    CTRLNTOT            TO   LN1TOT
041906     PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7100'              TO   LN1FUNC
           MOVE    'BOARD'             TO   LN1NAME
           MOVE    WSCAMT (22)         TO   LN1AMT3    LN1TOT
           ADD     WSCAMT (22)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (22) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7200'              TO   LN1FUNC
           MOVE    'GENERAL ADMINISTRATION'   TO   LN1NAME
           MOVE    WSCAMT (23)         TO   LN1AMT3    LN1TOT
           ADD     WSCAMT (23)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (23) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7300'              TO   LN1FUNC
           MOVE    'SCHOOL ADMINISTRATION'  TO   LN1NAME
           MOVE    WSCAMT (11)         TO   LN1AMT2    LN1TOT
           ADD     WSCAMT (11)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (11) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7400'              TO   LN1FUNC
           MOVE    'FACILITIES ACQ. AND CONSTR.'    TO   LN1NAME
           MOVE    WSCAMT (12)         TO   LN1AMT2
           ADD     WSCAMT (12)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (12) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           MOVE    WSCAMT (24)         TO   LN1AMT3
           ADD     WSCAMT (24)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (24) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           COMPUTE CTRLNTOT            =    WSCAMT (12) + WSCAMT (24)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7500'              TO   LN1FUNC
           MOVE    'FISCAL SERVICES'   TO   LN1NAME
           MOVE    WSCAMT (25)         TO   LN1AMT3    LN1TOT
           ADD     WSCAMT (25)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (25) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7600'              TO   LN1FUNC
           MOVE    'FOOD SERVICES'     TO   LN1NAME
           MOVE    WSCAMT (13)         TO   LN1AMT2
           ADD     WSCAMT (13)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (13) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           MOVE    WSCAMT (26)         TO   LN1AMT3
           ADD     WSCAMT (26)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (26) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           COMPUTE CTRLNTOT            =    WSCAMT (13) + WSCAMT (26)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7700'              TO   LN1FUNC
           MOVE    'CENTRAL SERVICES'  TO   LN1NAME
           MOVE    WSCAMT (14)         TO   LN1AMT2
           ADD     WSCAMT (14)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (14) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           MOVE    WSCAMT (27)         TO   LN1AMT3
           ADD     WSCAMT (27)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (27) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           COMPUTE CTRLNTOT            =    WSCAMT (14) + WSCAMT (27)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7800'              TO   LN1FUNC
           MOVE    'PUPIL TRANSPORTATION'   TO   LN1NAME
           MOVE    WSCAMT (15)         TO   LN1AMT2
           ADD     WSCAMT (15)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (15) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           MOVE    WSCAMT (28)         TO   LN1AMT3
           ADD     WSCAMT (28)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (28) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           COMPUTE CTRLNTOT            =    WSCAMT (15) + WSCAMT (28)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7900'              TO   LN1FUNC
           MOVE    'OPERATION OF PLANT' TO   LN1NAME
           MOVE    WSCAMT (16)         TO   LN1AMT2
           ADD     WSCAMT (16)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (16) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           MOVE    WSCAMT (29)         TO   LN1AMT3
           ADD     WSCAMT (29)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (29) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           COMPUTE CTRLNTOT            =    WSCAMT (16) + WSCAMT (29)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '8100'              TO   LN1FUNC
           MOVE    'MAINTENANCE OF PLANT'   TO   LN1NAME
           MOVE    WSCAMT (17)         TO   LN1AMT2
           ADD     WSCAMT (17)         TO   CTRSIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (17) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRPCT2
           MOVE    WSCAMT (30)         TO   LN1AMT3
           ADD     WSCAMT (30)         TO   CTRDIND
           COMPUTE WSCPCT ROUNDED      =    (WSCAMT (30) / CTRAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRPCT3
           COMPUTE CTRLNTOT            =    WSCAMT (17) + WSCAMT (30)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

041906     MOVE    '8200'              TO   LN1FUNC
041906     MOVE    'ADMINISTRATIVE TECH SERVICES '   TO   LN1NAME
041906     MOVE    WSCAMT (31)         TO   LN1AMT2
041906     ADD     WSCAMT (31)         TO   CTRSIND
041906     COMPUTE WSCPCT ROUNDED      =    (WSCAMT (31) / CTRAMT)
041906     MULTIPLY  100               BY   WSCPCT
041906     MOVE    WSCPCT              TO   LN1PCT2
041906     ADD     WSCPCT              TO   CTRPCT2
041906     MOVE    WSCAMT (33)         TO   LN1AMT3
041906     ADD     WSCAMT (33)         TO   CTRDIND
041906     COMPUTE WSCPCT ROUNDED      =    (WSCAMT (33) / CTRAMT)
041906     MULTIPLY  100               BY   WSCPCT
041906     MOVE    WSCPCT              TO   LN1PCT3
041906     ADD     WSCPCT              TO   CTRPCT3
041906     COMPUTE CTRLNTOT            =    WSCAMT (31) + WSCAMT (33)
041906     MOVE    CTRLNTOT            TO   LN1TOT
041906     PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    'SCHL  '            TO   LN2MSG
           MOVE    OLDKSCHL            TO   LN2FLD
           MOVE    CTRINST             TO   LN2AMT1
           MOVE    CTRPCT1             TO   LN2PCT1
           MOVE    CTRSIND             TO   LN2AMT2
           MOVE    CTRPCT2             TO   LN2PCT2
           MOVE    CTRDIND             TO   LN2AMT3
           MOVE    CTRPCT3             TO   LN2PCT3
           MOVE    CTRAMT              TO   LN2TOT
           MOVE    '0'                 TO   CTLCHAR
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '0'                 TO   CTLCHAR
           IF      OLDKSCHL            =    '0000'
             ADD   CTRINST             TO   CTRFNDINST
             ADD   CTRSIND             TO   CTRFNDSIND
             ADD   CTRDIND             TO   CTRFNDDIND
             ADD   CTRAMT              TO   CTRFNDAMT.
       615-EXIT.
           EXIT.

       620-2CHG.
           MOVE    SRTKTBLE            TO   OLDKTBLE  HD5TBL
           MOVE    SRTKDIST            TO   TBLDIST
           MOVE    SRTKFY              TO   TBLFY
           MOVE    'TBL'               TO   TBLPREF
           MOVE    SRTKTBLE            TO   TBLTBL
           MOVE    TBLKEY              TO   CRFDK
           READ    CRF-DISK
           IF      RETCRF              NOT  =  '00'
             MOVE  'UNKNOWN'           TO   TBLDESC
           ELSE
             MOVE  CRFD                TO   TBL.
           MOVE    TBLDESC             TO   HD5DESC
           PERFORM 610-1CHG            THRU 610-EXIT.
       620-EXIT.
           EXIT.

       625-2TOT.
       625-EXIT.
           EXIT.

       630-3CHG.
           MOVE    SRTKFUND            TO   OLDKFUND  HD4FND
           INITIALIZE                       CTRFUND
           PERFORM 710-FND-INIT        THRU 710-EXIT
           MOVE    +61                 TO   CTRLN
           PERFORM 620-2CHG            THRU 620-EXIT.
       630-EXIT.
           EXIT.

       635-3TOT.
           MOVE    +61                 TO   CTRLN
           MOVE    'Y'                 TO   WSCFND
           MOVE    '  SALARIES'        TO   LN1NAME
           MOVE    WSFAMT (01)         TO   LN1AMT1
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (01) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRFNDPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '  EMPLOYEE BENEFITS' TO   LN1NAME
           MOVE    WSFAMT (02)         TO   LN1AMT1
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (02) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRFNDPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '  PURCHASED SERVICES'   TO   LN1NAME
           MOVE    WSFAMT (03)         TO   LN1AMT1
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (03) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRFNDPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '  MATERIALS AND SUPPLIES'   TO   LN1NAME
           MOVE    WSFAMT (04)         TO   LN1AMT1
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (04) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRFNDPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '  OTHER EXPENSES'  TO   LN1NAME
           MOVE    WSFAMT (05)         TO   LN1AMT1
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (05) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRFNDPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    '  CAPITAL OUTLAY'  TO   LN1NAME
           MOVE    WSFAMT (06)         TO   LN1AMT1
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (06) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT1
           ADD     WSCPCT              TO   CTRFNDPCT1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    'SUBTOTAL INSTRUCTION'   TO   LN1NAME
           MOVE    CTRFNDINST             TO   LN1AMT1  LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '6100'              TO   LN1FUNC
           MOVE    'PUPIL PERSONNEL'   TO   LN1NAME
           MOVE    WSFAMT (07)         TO   LN1AMT2
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (07) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           MOVE    WSFAMT (18)         TO   LN1AMT3
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (18) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           COMPUTE CTRLNTOT            =    WSFAMT (07) + WSFAMT (18)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '6200'              TO   LN1FUNC
           MOVE    'INSTRUCTIONAL MEDIA'   TO   LN1NAME
           MOVE    WSFAMT (08)         TO   LN1AMT2
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (08) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           MOVE    WSFAMT (19)         TO   LN1AMT3
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (19) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           COMPUTE CTRLNTOT            =    WSFAMT (08) + WSFAMT (19)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '6300'              TO   LN1FUNC
           MOVE    'INSTRUCTION AND CURRICULM DEV'   TO   LN1NAME
           MOVE    WSFAMT (09)         TO   LN1AMT2
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (09) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           MOVE    WSFAMT (20)         TO   LN1AMT3
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (20) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           COMPUTE CTRLNTOT            =    WSFAMT (09) + WSFAMT (20)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '6400'              TO   LN1FUNC
           MOVE    'INSTRUCTIONAL STAFF TRAINING'    TO   LN1NAME
           MOVE    WSFAMT (10)         TO   LN1AMT2
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (10) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           MOVE    WSFAMT (21)         TO   LN1AMT3
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (21) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           COMPUTE CTRLNTOT            =    WSFAMT (10) + WSFAMT (21)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

041906     MOVE    '6500'              TO   LN1FUNC
041906     MOVE    'INSTRUCTION RELATED TECHNOLOGY'  TO   LN1NAME
041906     MOVE    WSFAMT (32)         TO   LN1AMT2
041906     COMPUTE WSCPCT ROUNDED =    (WSFAMT (32) / CTRFNDAMT)
041906     MULTIPLY  100               BY   WSCPCT
041906     MOVE    WSCPCT              TO   LN1PCT2
041906     ADD     WSCPCT              TO   CTRFNDPCT2
041906     MOVE    WSFAMT (34)         TO   LN1AMT3
041906     COMPUTE WSCPCT ROUNDED =    (WSFAMT (34) / CTRFNDAMT)
041906     MULTIPLY  100               BY   WSCPCT
041906     MOVE    WSCPCT              TO   LN1PCT3
041906     ADD     WSCPCT              TO   CTRFNDPCT3
041906     COMPUTE CTRLNTOT            =    WSFAMT (32) + WSFAMT (34)
041906     MOVE    CTRLNTOT            TO   LN1TOT
041906     PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7100'              TO   LN1FUNC
           MOVE    'BOARD'             TO   LN1NAME
           MOVE    WSFAMT (22)         TO   LN1AMT3    LN1TOT
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (22) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7200'              TO   LN1FUNC
           MOVE    'GENERAL ADMINISTRATION'   TO   LN1NAME
           MOVE    WSFAMT (23)         TO   LN1AMT3    LN1TOT
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (23) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7300'              TO   LN1FUNC
           MOVE    'SCHOOL ADMINISTRATION'  TO   LN1NAME
           MOVE    WSFAMT (11)         TO   LN1AMT2    LN1TOT
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (11) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7400'              TO   LN1FUNC
           MOVE    'FACILITIES ACQ. AND CONSTR.'    TO   LN1NAME
           MOVE    WSFAMT (12)         TO   LN1AMT2
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (12) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           MOVE    WSFAMT (24)         TO   LN1AMT3
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (24) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           COMPUTE CTRLNTOT            =    WSFAMT (12) + WSFAMT (24)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7500'              TO   LN1FUNC
           MOVE    'FISCAL SERVICES'   TO   LN1NAME
           MOVE    WSFAMT (25)         TO   LN1AMT3    LN1TOT
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (25) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7600'              TO   LN1FUNC
           MOVE    'FOOD SERVICES'     TO   LN1NAME
           MOVE    WSFAMT (13)         TO   LN1AMT2
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (13) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           MOVE    WSFAMT (26)         TO   LN1AMT3
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (26) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           COMPUTE CTRLNTOT       =    WSFAMT (13) + WSFAMT (26)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7700'              TO   LN1FUNC
           MOVE    'CENTRAL SERVICES'  TO   LN1NAME
           MOVE    WSFAMT (14)         TO   LN1AMT2
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (14) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           MOVE    WSFAMT (27)         TO   LN1AMT3
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (27) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           COMPUTE CTRLNTOT            =    WSFAMT (14) + WSFAMT (27)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7800'              TO   LN1FUNC
           MOVE    'PUPIL TRANSPORTATION'   TO   LN1NAME
           MOVE    WSFAMT (15)         TO   LN1AMT2
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (15) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           MOVE    WSFAMT (28)         TO   LN1AMT3
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (28) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           COMPUTE CTRLNTOT            =    WSFAMT (15) + WSFAMT (28)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '7900'              TO   LN1FUNC
           MOVE    'OPERATION OF PLANT' TO   LN1NAME
           MOVE    WSFAMT (16)         TO   LN1AMT2
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (16) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           MOVE    WSFAMT (29)         TO   LN1AMT3
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (29) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           COMPUTE CTRLNTOT            =    WSFAMT (16) + WSFAMT (29)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

           MOVE    '8100'              TO   LN1FUNC
           MOVE    'MAINTENANCE OF PLANT'   TO   LN1NAME
           MOVE    WSFAMT (17)         TO   LN1AMT2
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (17) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT2
           ADD     WSCPCT              TO   CTRFNDPCT2
           MOVE    WSFAMT (30)         TO   LN1AMT3
           COMPUTE WSCPCT ROUNDED =    (WSFAMT (30) / CTRFNDAMT)
           MULTIPLY  100               BY   WSCPCT
           MOVE    WSCPCT              TO   LN1PCT3
           ADD     WSCPCT              TO   CTRFNDPCT3
           COMPUTE CTRLNTOT            =    WSFAMT (17) + WSFAMT (30)
           MOVE    CTRLNTOT            TO   LN1TOT
           PERFORM 520-PRINT           THRU 520-EXIT

041906     MOVE    '8200'              TO   LN1FUNC
041906     MOVE    'ADMINISTRATIVE TECH SERVICES '   TO   LN1NAME
041906     MOVE    WSFAMT (31)         TO   LN1AMT2
041906     COMPUTE WSCPCT ROUNDED =    (WSFAMT (31) / CTRFNDAMT)
041906     MULTIPLY  100               BY   WSCPCT
041906     MOVE    WSCPCT              TO   LN1PCT2
041906     ADD     WSCPCT              TO   CTRFNDPCT2
041906     MOVE    WSFAMT (33)         TO   LN1AMT3
041906     COMPUTE WSCPCT ROUNDED =    (WSFAMT (33) / CTRFNDAMT)
041906     MULTIPLY  100               BY   WSCPCT
041906     MOVE    WSCPCT              TO   LN1PCT3
041906     ADD     WSCPCT              TO   CTRFNDPCT3
041906     COMPUTE CTRLNTOT            =    WSFAMT (31) + WSFAMT (33)
041906     MOVE    CTRLNTOT            TO   LN1TOT
041906     PERFORM 520-PRINT           THRU 520-EXIT


           MOVE    'FUND '             TO   LN2MSG
           MOVE    OLDKFUND            TO   LN2FLD
           MOVE    CTRFNDINST          TO   LN2AMT1
           MOVE    CTRFNDPCT1          TO   LN2PCT1
           MOVE    CTRFNDSIND          TO   LN2AMT2
           MOVE    CTRFNDPCT2          TO   LN2PCT2
           MOVE    CTRFNDDIND          TO   LN2AMT3
           MOVE    CTRFNDPCT3          TO   LN2PCT3
           MOVE    CTRFNDAMT           TO   LN2TOT
           MOVE    '0'                 TO   CTLCHAR
           PERFORM 520-PRINT           THRU 520-EXIT
           ADD    CTRFNDINST           TO   CTRREQINST
           ADD    CTRFNDSIND           TO   CTRREQSIND
           ADD    CTRFNDDIND           TO   CTRREQDIND
           ADD    CTRFNDAMT            TO   CTRREQAMT.
       635-EXIT.
           EXIT.

       640-4CHG.
           MOVE     ZEROS              TO   CTRLN         CTRPG
           INITIALIZE                  CTRREQ
           MOVE     'N'                TO   WSCLAST
           MOVE     SRTKREQ            TO   OLDKREQ
           MOVE     SRTKDIST           TO   OLDKDIST
           MOVE     SRTKFY             TO   OLDKFY
           MOVE     SRTPRT             TO   OLDPRT

           MOVE     '    SCL0000'      TO   SCLKEY
           MOVE     SRTKDIST           TO   SCLDIST
           MOVE     SRTKFY             TO   SCLFY
           MOVE     SCLKEY             TO   CRFDK
           READ     CRF-DISK
           IF       RETCRF             NOT  =   '00'
             MOVE   'UNKNOWN'          TO   HD1ABBR
           ELSE
             MOVE   CRFD               TO   SCL
             MOVE   SCLABBR            TO   HD1ABBR.
           SET     HD11                TO   +15.
       640-REQ.
           IF      HD1B         (HD11) =    SPACES
             SET   HD11                DOWN BY  +1
             GO                        TO   640-REQ.
           SET     HD11                UP   BY  +1
           MOVE    '-'                 TO   HD1B         (HD11)
           SET     HD11                UP   BY  +1
           MOVE    SRTKREQ1            TO   HD1B         (HD11)
           SET     HD11                UP   BY  +1
           MOVE    SRTKREQ2            TO   HD1B         (HD11)
           SET     HD11                UP   BY  +1
           MOVE    SRTKREQ3            TO   HD1B         (HD11)
           SET     HD11                UP   BY  +1
           MOVE    '-'                 TO   HD1B         (HD11)
           SET     HD11                UP   BY  +1
           MOVE    SRTKFY1             TO   HD1B         (HD11)
           SET     HD11                UP   BY  +1
           MOVE    SRTKFY2             TO   HD1B         (HD11).

           SET     RQH1                TO   +1.
       640-HEAD.
           IF      RQHREQ       (RQH1) NOT  =   HIGH-VALUES
             IF      RQHREQ     (RQH1) NOT  =   SRTKREQ
               SET   RQH1              UP   BY  +1
               GO                      TO   640-HEAD
             ELSE
               IF      RQHID    (RQH1) =    'H1'
                 MOVE  RQHHEAD  (RQH1) TO   HD2HEAD
                 MOVE  RQHUSER  (RQH1) TO   HD1USER
                 SET   RQH1            UP   BY  +1
                 GO                    TO   640-HEAD
               ELSE
                 IF      RQHID  (RQH1) =    'H2'
                   MOVE  RQHHEAD (RQH1) TO  HD3HEAD
                   SET   RQH1          UP   BY  +1
                   GO                  TO   640-HEAD.
           IF        OLDPRT            =    'N'
             MOVE    SPACES            TO   HD2HEAD       HD1USER
             MOVE    SPACES            TO   HD3HEAD
           ELSE
             IF      OLDPRT            =    'U'
               MOVE  SPACES            TO   HD2HEAD       HD3HEAD
             ELSE
               IF    OLDPRT            =    'T'
                 MOVE  SPACES          TO   HD1USER.

           PERFORM 630-3CHG            THRU 630-EXIT
           PERFORM 525-HEADS           THRU 525-EXIT.
       640-EXIT.
           EXIT.

       645-4TOT.
           MOVE    'Y'                 TO   WSCLAST
           MOVE    'REQ'               TO   LN2MSG
           MOVE    OLDKREQ             TO   LN2FLD
           MOVE    CTRREQINST          TO   LN2AMT1
           COMPUTE WSCPCT ROUNDED   =  (CTRREQINST / CTRREQAMT)
           MULTIPLY 100                BY   WSCPCT
           MOVE    WSCPCT              TO   LN2PCT1
           MOVE    CTRREQSIND          TO   LN2AMT2
           COMPUTE WSCPCT ROUNDED   =  (CTRREQSIND / CTRREQAMT)
           MULTIPLY 100                BY   WSCPCT
           MOVE    WSCPCT              TO   LN2PCT2
           MOVE    CTRREQDIND          TO   LN2AMT3
           COMPUTE WSCPCT ROUNDED   =  (CTRREQDIND / CTRREQAMT)
           MULTIPLY 100                BY   WSCPCT
           MOVE    WSCPCT              TO   LN2PCT3
           MOVE    CTRREQAMT           TO   LN2TOT
           MOVE    +61                 TO   CTRLN
           PERFORM 520-PRINT           THRU 520-EXIT.
       645-EXIT.
           EXIT.

      ******************************************************************
       700-TBL-INIT.
           SET   WSC1                  TO   +1.
       700-LOOP.
           MOVE  ZEROS                 TO   WSCAMT (WSC1)
041906*    IF    WSC1                  <    +30
041906     IF    WSC1                  <    +34
             SET WSC1                  UP   BY   +1
             GO                        TO   700-LOOP.
       700-EXIT.
           EXIT.

      ******************************************************************
       710-FND-INIT.
           SET   WSF1                  TO   +1.
       710-LOOP.
           MOVE  ZEROS                 TO   WSFAMT (WSF1)
041906*    IF    WSF1                  <    +30
041906     IF    WSF1                  <    +34
             SET WSF1                  UP   BY   +1
             GO                        TO   710-LOOP.
       710-EXIT.
           EXIT.

      ******************************************************************
       990-HOUSEKEEPING.
           PERFORM 510-READ            THRU 510-EXIT
           PERFORM 700-TBL-INIT        THRU 700-EXIT
           PERFORM 710-FND-INIT        THRU 710-EXIT
           ACCEPT  SYSDATE             FROM DATE
           MOVE    SYSYY               TO   HD1YY
           MOVE    SYSMM               TO   HD1MM
           MOVE    SYSDD               TO   HD1DD
           ACCEPT  SYSTIME             FROM TIME
           MOVE    SYSHR               TO   HD1HR
           MOVE    SYSMIN              TO   HD1MN
           IF      SRTKEY              =    HIGH-VALUES
             MOVE  'EW029 NO DATA TO PROCESS'  TO  LNM
             PERFORM 520-PRINT         THRU 520-EXIT
             GO                        TO   999-EOJ.
           PERFORM 640-4CHG            THRU 640-EXIT.
       990-EXIT.
           EXIT.

      ******************************************************************
       999-EOJ.
           CLOSE                       CRD-CARD      CRF-DISK
                                       RWF-DISK      PR1-PRNT.
       999-EXIT.
           EXIT.
