       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      EW014.
       AUTHOR.          DOE.
      *****************************************************************
      *                     STAFF DATA EDIT                           *
      *****************************************************************
      * DATE CREATED:   05/30/95                                      *
      *****************************************************************
      * CALL #  - MMDDYY - PURPOSE                                    *
      * 9511066 - 113095 - ALLOW FOR RECORDS WITH FROM PERIODS = ZERO.*
      * FIX9713 - 042697 - CORRECT PRINTING OF BLANK PAGE FOR SCHOOLS *
      *                    WITH NO RECORDS IN ERROR                   *
      * FIX9715 - 042797 - CORRECT PRINTING OF BLANK PAGE FOR SCHOOLS *
      *                    WITH NO RECORDS IN ERROR                   *
      * 2002001 - 030702 - ADD WARNING MSG FOR ANY TEACHER RECEIVING  *
      *                    MOD DATA FROM K-12 STUDENT SYS AND WDIS.   *
      * 2002002 - 030702 - ADD WARNING MSG FOR ANY TEACHER WITH 2 OR  *
      *                    MORE MODS WHERE ESOL IS A SEPARATE MOD.    *
      * 2003001 - 053003 - FIX PROBLEM OF STAFF UNITS CALCULATING TOO *
      *                    HIGH FOR A LARGE NUMBER OF STUDENTS.       *
      * 2003001 - 071603 - EXPAND REDEFINES IN ORDER TO ACCOMODATE    *
      *                    THE NUMBER OF STUDENTS FIELDS EXPANSION.   *
      * 2009005 - 080508 - FIX ESOL WARNING
      * 2009006 - 081208 - FIX FALSE K12 WARNING MESSAGE WHEN A TCHR  *
      *                    HAS MULTIPLE JOBS WITH JUST WDIS DATA      *
      *****************************************************************


       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    STH-DISK          ASSIGN       DATABASE-EWSTHI
                                       ORGANIZATION INDEXED
                                       ACCESS       SEQUENTIAL
                                       RECORD KEY   STHDK
                                       FILE STATUS  RETSTH.

           SELECT    STS-DISK          ASSIGN       DATABASE-EWSTSI
                                       ORGANIZATION INDEXED
                                       ACCESS       RANDOM
                                       RECORD KEY   STSDK
                                       FILE STATUS  RETSTS.

           SELECT    SMP-DISK          ASSIGN       DATABASE-EWSMPI
                                       ORGANIZATION INDEXED
                                       ACCESS       SEQUENTIAL
                                       RECORD KEY   SMPDK
                                       FILE STATUS  RETSMP.

           SELECT    SDF-DISK          ASSIGN       DATABASE-EWSDFB
                                       ORGANIZATION INDEXED
                                       ACCESS       DYNAMIC
                                       RECORD KEY   SDFDK
                                       FILE STATUS  RETSDF.


       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(01).
010        05        CRDSEQ            PIC  X(01).
011        05        FILLER            PIC  X(01).
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        CRDSCHL           PIC  X(04).
022        05        FILLER            PIC  X(01).
023        05        CRDTCHR           PIC  X(10).
033        05        FILLER            PIC  X(01).
034        05        CRDERR            PIC  X(01).
035        05        FILLER            PIC  X(01).
036        05        CRDRPT            PIC  X(01).
037        05        CRDPGM            PIC  X(05).
042        05        FILLER            PIC  X(39).

       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  LN3.

       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(10).
011        05        LN1LAST           PIC  X(17).
028        05        FILLER            PIC  X(01).
029        05        LN1FIRST          PIC  X(12).
041        05        FILLER            PIC  X(01).
042        05        LN1MINIT          PIC  X(01).
043        05        FILLER            PIC  X(01).
044        05        LN1SSN            PIC  X(10).
054        05        FILLER            PIC  X(01).
055        05        LN1SCHL           PIC  X(04).
059        05        FILLER            PIC  X(02).
061        05        LN1JOB            PIC  X(02).
063        05        FILLER            PIC  X(01).
           05        LN1TABLE.
064          10      LN1TABLE9         PIC  9(05).
069        05        FILLER            PIC  X(01).
070        05        LN1FUND           PIC  X(01).
071        05        FILLER            PIC  X(01).
072        05        LN1SALARY         PIC  ZZZ,ZZ9.
079        05        FILLER            PIC  X(01).
080        05        LN1HRLY           PIC  ZZZ.ZZZZZ.
089        05        FILLER            PIC  X(03).
092        05        LN1PSCHL          PIC  ZZ9.
095        05        FILLER            PIC  X(11).
106        05        LN1DAYS1          PIC  ZZZ.
109        05        FILLER            PIC  X(01).
110        05        LN1DAYS2          PIC  ZZZ.
113        05        FILLER            PIC  X(01).
114        05        LN1DAYS3          PIC  ZZZ.
117        05        FILLER            PIC  X(01).
118        05        LN1DAYS4          PIC  ZZZ.
121        05        FILLER            PIC  X(02).
123        05        LN1MSG            PIC  X(07).
130        05        FILLER            PIC  X(03).

       01            LN2.
001        05        FILLER            PIC  X(50).
051        05        LN2SURVEY         PIC  X(01).
052        05        FILLER            PIC  X(01).
053        05        LN2MOD            PIC  X(02).
055        05        FILLER            PIC  X(02).
           05        LN2ENTRY   OCCURS   3  TIMES  INDEXED BY LN21.
057*         10      LN2PGM            PIC  X(03).
060*         10      FILLER            PIC  X(01).
061*         10      LN2STDT           PIC  ZZZ.
064*         10      FILLER            PIC  X(01).
065*         10      LN2PCT            PIC  ZZZ.Z.
069*         10      FILLER            PIC  X(02).
102        05        LN2SPACE          PIC  ZZZZ.
106        05        FILLER            PIC  X(02).
108        05        LN2PMOD           PIC  ZZZ.
111        05        FILLER            PIC  X(12).
123        05        LN2MSG            PIC  X(07).
130        05        FILLER            PIC  X(03).

       01            LN3.
001        05        FILLER            PIC  X(67).
068        05        LN3MSG1           PIC  X(08).
076        05        LN3FLD            PIC  X(05).
081        05        LN3MSG2           PIC  X(06).
087        05        LN3CNT1           PIC  ZZZ,ZZZ,ZZ9.
098        05        FILLER            PIC  X(01).
099        05        LN3MSG3           PIC  X(23).
           05        LN3MSGX  REDEFINES     LN3MSG3.
099*         10      LN3MSG4           PIC  X(09).
108*         10      LN3CNT2           PIC  ZZZ,ZZ9.
115*         10      FILLER            PIC  X(01).
116*         10      LN3MSG5           PIC  X(06).
122        05        FILLER            PIC  X(11).

           COPY                        EWCRFD             OF   CPYSRC.
           COPY                        EWSTHD             OF   CPYSRC.
           COPY                        EWSTSD             OF   CPYSRC.
           COPY                        EWSMPD             OF   CPYSRC.
           COPY                        EWSDFD             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      SRTKSCHL1         PIC  X(04).
             10      SRTKNAME          PIC  X(30).
             10      SRTKSSN           PIC  X(10).
             10      SRTKSCHL2         PIC  X(04).
             10      SRTKJOB           PIC  X(02).
             10      SRTKSURV.
               15    SRTKSURV9         PIC  9(01).
             10      SRTKMOD.
               15    SRTKMOD9          PIC  9(02).
             10      SRTKTYPE          PIC  X(01).
           05        SRTDATA.
             10      SRTSTH.
               15    SRTSSN            PIC  X(10).
               15    SRTSCHL           PIC  X(04).
               15    SRTNAME.
                 20  SRTLAST           PIC  X(17).
                 20  SRTFIRST.
                  25 SRTFINIT          PIC  X(01).
                  25 FILLER            PIC  X(11).
                 20  SRTMINIT          PIC  X(01).
               15    SRTTABLE.
                 20  SRTTABLE9         PIC  9(05).
               15    SRTFUND           PIC  X(01).
               15    SRTSALARY         PIC S9(07)         COMP-3.
               15    SRTHRLY           PIC S9(04)V9(05)   COMP-3.
               15    SRTPSCHL          PIC S9(01)V9(02)   COMP-3.
042797*        15    SRTDAYS1          PIC S9(03)         COMP-3.
042797*        15    SRTDAYS2          PIC S9(03)         COMP-3.
042797*        15    SRTDAYS3          PIC S9(03)         COMP-3.
042797*        15    SRTDAYS4          PIC S9(03)         COMP-3.
113095*        15    FILLER            PIC  X(830).
042797         15    SRTDAYS1          PIC S9(03)V9(05)   COMP-3.
042797         15    SRTDAYS2          PIC S9(03)V9(05)   COMP-3.
042797         15    SRTDAYS3          PIC S9(03)V9(05)   COMP-3.
042797         15    SRTDAYS4          PIC S9(03)V9(05)   COMP-3.
113095*        15    FILLER            PIC  X(830).
071603*        15    FILLER            PIC  X(839).
071603         15    FILLER            PIC  X(1139).
             10      SRTDTL  REDEFINES SRTSTH.
               15    SRTTBL.
                 20  SRTENTRY  OCCURS  3    TIMES INDEXED BY SRT1.
                   25  SRTPGM          PIC  X(03).
                   25  SRTSTDT         PIC S9(03)         COMP-3.
                   25  SRTPCT          PIC S9(02)V9(03)   COMP-3.
                 20  SRTPMOD           PIC S9(01)V9(02)   COMP-3.
                 20  SRTSPACE          PIC S9(05)         COMP-3.
113095*          20  SRTFILLER         PIC  X(870).
071603*          20  SRTFILLER         PIC  X(879).
071603           20  SRTFILLER         PIC  X(1179).
             10      SRTEDT  REDEFINES SRTSTH.
113095*        15    FILLER            PIC  X(899).
071603*        15    FILLER            PIC  X(908).
071603         15    FILLER            PIC  X(1208).
             10      SRTERR            PIC  X(01).
             10      SRTPRT            PIC  X(01).
             10      SRTSEQ            PIC  X(01).
             10      SRTRPT            PIC  X(01).

       WORKING-STORAGE SECTION.

       01            RET.
           05        RETCRF            PIC  X(02) VALUE '00'.
           05        RETSTH            PIC  X(02) VALUE '00'.
           05        RETSTS            PIC  X(02) VALUE '00'.
           05        RETSMP            PIC  X(02) VALUE '00'.
           05        RETSDF            PIC  X(02) VALUE '00'.
           05        RETSDFOLD         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(01).
             10      ERRSEQ            PIC  X(01).
             10      FILLER            PIC  X(01).
             10      ERRDIST           PIC  X(02).
             10      FILLER            PIC  X(01).
             10      ERRFY             PIC  X(02).
             10      FILLER            PIC  X(01).
             10      ERRSCHL           PIC  X(04).
             10      FILLER            PIC  X(01).
             10      ERRTCHR           PIC  X(10).
             10      FILLER            PIC  X(01).
             10      ERRERR            PIC  X(01).
             10      FILLER            PIC  X(01).
             10      ERRRPT            PIC  X(01).

       01            WSC.
           05        WSCGEN.
             10      WSCSCHL           PIC  X(04).
             10      WSCSSN            PIC  X(10).
           05        WSCBYTES  REDEFINES    WSCGEN.
             10      WSCBYTE   OCCURS  014  TIMES INDEXED BY WSC1.
               15    FILLER            PIC  X(01).
           05        WSCTIMES          PIC S9(03) COMP-3  VALUE +14.
           05        WSCRPT            PIC  X(01).
           05        WSCHDRFLG         PIC  X(01).
           05        WSCPCTPMOD        PIC S9(03)V9(02).
           05        WSCPCTSTDT        PIC S9(03)V9(03).
           05        WSCSMP.
             10      WSCSMP1           PIC  X(01).
             10      WSCSMP2           PIC  X(01).
             10      WSCSMP3           PIC  X(01).
             10      WSCSMP4           PIC  X(01).
           05        WSCHOURS          PIC S9(04)V9(03).
           05        WSCDAYS           PIC S9(04).
           05        WSCFTE            PIC S9(03)V9(04).
           05        WSCSALARY         PIC S9(08).
           05        WSCSAL            PIC S9(06).
           05        WSCSPC            PIC S9(05).
           05        WSCSTF            PIC S9(01)V9(03).
           05        WSCPCT            PIC S9(01)V9(03).
           05        WSCPMOD           PIC S9(01)V9(02).
           05        WSCNBRSRV         PIC S9(01).
042697     05        WSCSCHLHDR        PIC  X(01).
030702     05        WSCMULMOD         PIC  X(01).
030702     05        WSCSAVMOD         PIC  9(02) VALUE ZEROS.
030702     05        WSCSAVSURV        PIC  9(01) VALUE ZEROS.

       01            RQR.
           05        RQRENTRY   OCCURS 100  TIMES INDEXED BY RQR1.
             10      RQRREQ            PIC  X(03).
             10      RQRID             PIC  X(02).
             10      RQRPRT            PIC  X(01).
             10      RQRSEQ            PIC  X(01).
             10      RQRDIST           PIC  X(02).
             10      RQRFY             PIC  X(02).
             10      RQRGEN.
               15    RQRSCHL           PIC  X(04).
               15    RQRTCHR           PIC  X(10).
             10      RQRBYTES  REDEFINES    RQRGEN.
               15    RQRBYTE   OCCURS  014  TIMES INDEXED BY RQR2.
                 20  FILLER            PIC  X(01).
             10      RQRERR            PIC  X(01).
             10      RQRRPT            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        STRSSN            PIC  X(10) VALUE HIGH-VALUES.
           05        FILLER            PIC  X(06) VALUE HIGH-VALUES.

       01            ENDKEY.
           05        ENDDIST           PIC  X(02) VALUE LOW-VALUES.
           05        ENDFY             PIC  X(02) VALUE LOW-VALUES.
           05        ENDSSN            PIC  X(10) VALUE LOW-VALUES.
           05        FILLER            PIC  X(06) VALUE LOW-VALUES.

       01            EN2KEY.
           05        EN2DIST           PIC  X(02) VALUE HIGH-VALUES.
           05        EN2FY             PIC  X(02) VALUE HIGH-VALUES.
           05        EN2SSN            PIC  X(10) VALUE HIGH-VALUES.
           05        EN2JOB            PIC  X(02) VALUE HIGH-VALUES.
           05        EN2SCHL           PIC  X(04) VALUE HIGH-VALUES.
           05        EN2SURVEY         PIC  X(01) VALUE HIGH-VALUES.
           05        EN2MOD            PIC  X(02) VALUE HIGH-VALUES.
           05        EN2PGM            PIC  X(03) VALUE HIGH-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.
           05        CTRSCHLTOT        PIC S9(07)       COMP-3 VALUE +0.
           05        CTRSCHLERR        PIC S9(07)       COMP-3 VALUE +0.
           05        CTRREQTOT         PIC S9(07)       COMP-3 VALUE +0.
           05        CTRREQERR         PIC S9(07)       COMP-3 VALUE +0.
           05        CTRREQSDF         PIC S9(09)       COMP-3 VALUE +0.

       01            OLD.
           05        OLDKEY.
             10      OLDKDIST          PIC  X(02).
             10      OLDKREQ           PIC  X(03).
             10      OLDKFY            PIC  X(02).
             10      OLDKSCHL1         PIC  X(04).
             10      OLDKNAME          PIC  X(30).
             10      OLDKSSN           PIC  X(10).
             10      OLDKSCHL2         PIC  X(04).
             10      OLDKJOB           PIC  X(02).
           05        OLDSCHL           PIC  X(04).
           05        OLDFUND           PIC  X(01).
           05        OLDTABLE          PIC  X(05).
           05        OLDNAME           PIC  X(30).
           05        OLDPRT            PIC  X(01).
           05        OLDSEQ            PIC  X(01).
           05        OLDRPT            PIC  X(01).

       01            EDTTBL.
           05        EDTENTRY   OCCURS 004  TIMES INDEXED BY EDT1.
             10      EDTPMOD           PIC S9(01)V9(02)   COMP-3.
             10      EDTEMPTY          PIC S9(03)         COMP-3.
             10      EDTLASTMOD        PIC  X(02).
             10      EDTNBRMOD         PIC S9(03)         COMP-3.
113095*      10      EDTENTRY2         OCCURS 99 TIMES INDEXED BY EDT2.
113095       10      EDTENTRY2        OCCURS 100 TIMES INDEXED BY EDT2.
               15    EDTMODUPD         PIC  X(01).
               15    EDTPCT            PIC S9(02)V9(03)   COMP-3.
               15    EDTLASTPGM        PIC  X(03).
053003*        15    EDTSTDT           PIC S9(03)         COMP-3.
053003         15    EDTSTDT           PIC S9(09)         COMP-3.

       01            EMPDATA.
           05        EMPSAL1           PIC S9(06)         COMP-3.
           05        EMPSTF1           PIC S9(01)V9(03)   COMP-3.
           05        EMPSAL2           PIC S9(06)         COMP-3.
           05        EMPSTF2           PIC S9(01)V9(03)   COMP-3.
           05        EMPSAL3           PIC S9(06)         COMP-3.
           05        EMPSTF3           PIC S9(01)V9(03)   COMP-3.
           05        EMPSAL4           PIC S9(06)         COMP-3.
           05        EMPSTF4           PIC S9(02)V9(03)   COMP-3.

       01            PGMTBL.
           05        PGMENTRY   OCCURS 999  TIMES INDEXED BY PGM1      .
             10      PGMPGM            PIC  X(03).
             10      PGMSTF            PIC S9(01)V9(03)   COMP-3.
             10      PGMSAL            PIC S9(06)         COMP-3.
             10      PGMSPC            PIC S9(05)         COMP-3.

           COPY                        EWSCL        OF          CPYSRC.
           COPY                        EWFPG        OF          CPYSRC.
           COPY                        EWIOP        OF          CPYSRC.
           COPY                        EWTBL        OF          CPYSRC.
           COPY                        EWSTH        OF          CPYSRC.
           COPY                        EWSTS        OF          CPYSRC.
           COPY                        EWSMP        OF          CPYSRC.
           COPY                        EWSDF        OF          CPYSRC.

       01            OLDLN             PIC  X(133).

       01            HLDHDRLN          PIC  X(133).

       01            HDREDT.
001        05        FILLER            PIC  X(10).
011        05        HDRLAST           PIC  X(17).
028        05        FILLER            PIC  X(01).
029        05        HDRFIRST          PIC  X(12).
041        05        FILLER            PIC  X(01).
042        05        HDRMINIT          PIC  X(01).
043        05        FILLER            PIC  X(01).
044        05        HDRSSN            PIC  X(10).
054        05        FILLER            PIC  X(01).
055        05        HDRSCHL           PIC  X(04).
059        05        FILLER            PIC  X(02).
061        05        HDRJOB            PIC  X(02).
063        05        FILLER            PIC  X(01).
064        05        HDRTABLE          PIC  X(05).
069        05        FILLER            PIC  X(01).
070        05        HDRFUND           PIC  X(01).
071        05        FILLER            PIC  X(01).
072        05        HDRSALARY         PIC  X(07).
079        05        FILLER            PIC  X(01).
080        05        HDRHRLY           PIC  X(09).
089        05        FILLER            PIC  X(03).
092        05        HDRPSCHL          PIC  X(03).
095        05        FILLER            PIC  X(11).
106        05        HDRDAYS1          PIC  X(03).
109        05        FILLER            PIC  X(01).
110        05        HDRDAYS2          PIC  X(03).
113        05        FILLER            PIC  X(01).
114        05        HDRDAYS3          PIC  X(03).
117        05        FILLER            PIC  X(01).
118        05        HDRDAYS4          PIC  X(03).
121        05        FILLER            PIC  X(02).
123        05        HDRMSG            PIC  X(07).
130        05        FILLER            PIC  X(03).
       01            DTLEDT.
001        05        FILLER            PIC  X(50).
051        05        DTLSURVEY         PIC  X(01).
052        05        FILLER            PIC  X(01).
053        05        DTLMOD            PIC  X(02).
055        05        FILLER            PIC  X(02).
           05        DTLENTRY   OCCURS   3  TIMES  INDEXED BY DTL1.
057*         10      DTLPGM            PIC  X(03).
060*         10      FILLER            PIC  X(01).
061*         10      DTLSTDT           PIC  X(03).
064*         10      FILLER            PIC  X(01).
065*         10      DTLPCT            PIC  X(05).
069*         10      FILLER            PIC  X(02).
102        05        DTLSPACE          PIC  X(04).
106        05        FILLER            PIC  X(02).
108        05        DTLPMOD           PIC  X(03).
030702*    05        FILLER            PIC  X(12).
030702     05        FILLER            PIC  X(01).
030702     05        DTLWRN            PIC  X(13).
030702     05        FILLER            PIC  X(01).
030702*    05        DTLMSG            PIC  X(07).
030702*    05        FILLER            PIC  X(03).
030702     05        DTLMSG            PIC  X(07).

       01      HD1.
001        05  FILLER  PIC X(06) VALUE 'EW014 '.
           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(11) VALUE SPACES.
059        05  FILLER  PIC X(15) VALUE 'STAFF DATA EDIT'.
074        05  FILLER  PIC X(24) 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(06) VALUE 'SCHL-'.
007        05  HD4SCHL PIC X(04) VALUE SPACES.
011        05  FILLER  PIC X(01) VALUE SPACES.
012        05  HD4DESC PIC X(30) VALUE SPACES.
042        05  FILLER  PIC X(91) VALUE SPACES.

       01      HD5.
001        05  FILLER  PIC X(10) VALUE SPACES.
011        05  FILLER  PIC X(28) VALUE 'LAST NAME         FIRST NAME'.
039        05  FILLER  PIC X(25) VALUE '  MI TEACHER ID SCHL JOB '.
064        05  FILLER  PIC X(28) VALUE 'TABLE F  SALARY HRLY RATE %S'.
092        05  FILLER  PIC X(28) VALUE 'CHL SURV DAYS:  1   2   3   '.
110        05  FILLER  PIC X(01) VALUE '4'.

       01      HD6.
001        05  FILLER  PIC X(41) VALUE SPACES.
042        05  FILLER  PIC X(28) VALUE 'ASSIGN:  S M#  PGM STD  STD%'.
070        05  FILLER  PIC X(28) VALUE '  PGM STD  STD%  PGM STD  ST'.
098        05  FILLER  PIC X(28) VALUE 'D%   SPC %TME               '.

       LINKAGE       SECTION.

           COPY                       EWBJR                OF CPYSRC.

       PROCEDURE DIVISION USING BJR.
      ******************************************************************
       DECLARATIVES.
       000-ERROR     SECTION.
           USE AFTER STANDARD ERROR PROCEDURE ON CRD-CARD
                                                 CRF-DISK
                                                 STH-DISK
                                                 STS-DISK
                                                 SMP-DISK
                                                 SDF-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    RETSTH              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    STH-DISK                 NEXT
           IF     (STHDK               >    ENDKEY)                  OR
                  (RETSTH              NOT  =   '00')
             MOVE  '99'                TO   RETSTH
           ELSE
             MOVE  STHD                TO   STH
             SET   RQR1                TO   +1.
       010-EXIT.
           EXIT.

      ******************************************************************
       015-SELECT.
           IF      RQRREQ       (RQR1) =    HIGH-VALUES
             GO                        TO   015-EXIT.
           IF     (RQRDIST      (RQR1) NOT  =  STHDIST)            AND
                  (RQRFY        (RQR1) NOT  =  STHFY)
             SET   RQR1                UP   BY  +1
             GO                        TO   015-SELECT.
           IF      RQRGEN       (RQR1) NOT  =   SPACES
             PERFORM 020-GENERIC       THRU 020-EXIT
             IF      WSCGEN            NOT  =   RQRGEN   (RQR1)
               SET   RQR1              UP   BY  +1
               GO                      TO   015-SELECT.

           MOVE    SPACES              TO   SRT
           INITIALIZE                       EDTTBL

           MOVE    STHDIST             TO   SRTKDIST
           MOVE    RQRREQ       (RQR1) TO   SRTKREQ
           MOVE    STHFY               TO   SRTKFY
           MOVE    STHSSN              TO   SRTKSSN
           IF      RQRSEQ       (RQR1) =    'A'
             MOVE  STHSCHL             TO   SRTKSCHL1
             MOVE  STHNAME             TO   SRTKNAME
             MOVE  STHJOB              TO   SRTKJOB.
           IF      RQRSEQ       (RQR1) =    'B'
             MOVE  STHSCHL             TO   SRTKSCHL1
             MOVE  STHJOB              TO   SRTKJOB.
           IF      RQRSEQ       (RQR1) =    'C'
             MOVE  STHNAME             TO   SRTKNAME
             MOVE  STHSCHL             TO   SRTKSCHL2
             MOVE  STHJOB              TO   SRTKJOB.
           IF      RQRSEQ       (RQR1) =    'D'
             MOVE  STHSCHL             TO   SRTKSCHL2
             MOVE  STHJOB              TO   SRTKJOB.

           MOVE    '5'                 TO   SRTKTYPE
           MOVE    STHNAME             TO   SRTNAME
           MOVE    STHSSN              TO   SRTSSN
           MOVE    STHSCHL             TO   SRTSCHL
           MOVE    STHTABLE            TO   SRTTABLE
           MOVE    STHFUND             TO   SRTFUND
           MOVE    STHSALARY           TO   SRTSALARY
           MOVE    STHHRLY             TO   SRTHRLY
           MOVE    STHPSCHL            TO   SRTPSCHL
           MOVE    STHDAYS1            TO   SRTDAYS1
           MOVE    STHDAYS2            TO   SRTDAYS2
           MOVE    STHDAYS3            TO   SRTDAYS3
           MOVE    STHDAYS4            TO   SRTDAYS4
           MOVE    RQRERR       (RQR1) TO   SRTERR
           MOVE    RQRSEQ       (RQR1) TO   SRTSEQ
           MOVE    RQRPRT       (RQR1) TO   SRTPRT
           MOVE    RQRRPT       (RQR1) TO   SRTRPT
           RELEASE SRT

           MOVE    '6'                 TO   SRTKTYPE
           INITIALIZE                       SRTTBL
           SET     SRT1                TO   +1
           MOVE    LOW-VALUES          TO   STSDK
           MOVE    STHKEY              TO   SMPKEY       EN2KEY
           MOVE    LOW-VALUES          TO   SMPSURVEY    SMPMOD
           MOVE    HIGH-VALUES         TO   EN2SURVEY    EN2MOD
                                            EN2PGM
           MOVE    SMPKEY              TO   SMPDK
           START   SMP-DISK            KEY  >    SMPDK.
       015-READ-LOOP.
           READ    SMP-DISK                 NEXT
           IF      RETSMP              =    '00'                    AND
                   SMPDK               <    EN2KEY
             MOVE  SMPD                TO   SMP
             IF    SRT1                >    +1                      AND
                  (SMPSURVEY           NOT  =  SRTKSURV          OR
                   SMPMOD              NOT  =  SRTKMOD)
               RELEASE SRT
               SET     SRT1            TO   +1
               MOVE    SPACES          TO   SRTKSURV   SRTKMOD
               INITIALIZE                   SRTTBL
             END-IF
             MOVE  SMPSURVEY           TO   SRTKSURV
             MOVE  SMPMOD              TO   SRTKMOD
             MOVE  SMPPGM              TO   SRTPGM        (SRT1)
             MOVE  SMPSTDT             TO   SRTSTDT       (SRT1)
             MOVE  SMPPCT              TO   SRTPCT        (SRT1)
             SET   EDT1                TO   SMPSURVEY9
             SET   EDT2                TO   SMPMOD9
113095       SET   EDT2                UP   BY  +1
             ADD   SMPPCT              TO   EDTPCT        (EDT1  EDT2)
             ADD   SMPSTDT             TO   EDTSTDT       (EDT1  EDT2)
             MOVE  SMPPGM              TO   EDTLASTPGM    (EDT1  EDT2)
             IF    SRT1                =    +1
               MOVE  SMPKEY            TO   STSKEY
               IF    STSKEY            NOT  =  STSDK
                 MOVE  STSKEY          TO   STSDK
                 READ  STS-DISK
                 IF    RETSTS          NOT  =    '00'
                   INITIALIZE             STSDATA
                   MOVE  STS           TO   STSD
                 ELSE
                   MOVE  STSD          TO   STS
                 END-IF
               END-IF
               MOVE  STSSPACE          TO   SRTSPACE
               MOVE  STSPMOD           TO   SRTPMOD
               SET     EDT1            TO   STSSURVEY9
               SET     EDT2            TO   STSMOD9
113095         SET     EDT2            UP   BY  +1
               IF      EDTMODUPD (EDT1 EDT2)  NOT  =  'Y'
                 MOVE  'Y'             TO   EDTMODUPD  (EDT1  EDT2)
                 ADD   +1              TO   EDTNBRMOD  (EDT1)
                 ADD   STSPMOD         TO   EDTPMOD    (EDT1)
                 MOVE  STSMOD          TO   EDTLASTMOD (EDT1)
                 IF    STSPMOD         =    ZERO
                   ADD  +1             TO   EDTEMPTY   (EDT1)
                 END-IF
               END-IF
             END-IF
             IF    SRT1                >    +2
               RELEASE SRT
               SET     SRT1            TO   +1
               MOVE    SPACES          TO   SRTKSURV   SRTKMOD
               INITIALIZE                   SRTTBL
               GO                      TO   015-READ-LOOP
             ELSE
               SET SRT1                UP   BY  +1
               GO                      TO   015-READ-LOOP.
           IF      SRTPGM          (1) NOT  =  SPACES
             RELEASE  SRT.

           MOVE    SPACES              TO   SRTKSURV    SRTKMOD
           IF      EDTNBRMOD       (1) >    ZERO
             MOVE  '1'                 TO   SRTKTYPE
             MOVE  EDTENTRY        (1) TO   SRTEDT
             RELEASE  SRT.
           IF      EDTNBRMOD       (2) >    ZERO
             MOVE  '2'                 TO   SRTKTYPE
             MOVE  EDTENTRY        (2) TO   SRTEDT
             RELEASE  SRT.
           IF      EDTNBRMOD       (3) >    ZERO
             MOVE  '3'                 TO   SRTKTYPE
             MOVE  EDTENTRY        (3) TO   SRTEDT
             RELEASE  SRT.
           IF      EDTNBRMOD       (4) >    ZERO
             MOVE  '4'                 TO   SRTKTYPE
             MOVE  EDTENTRY        (4) TO   SRTEDT
             RELEASE  SRT.

           SET     RQR1                UP   BY  +1
           GO                          TO   015-SELECT.
       015-EXIT.
           EXIT.

       020-GENERIC.
           MOVE    STHSCHL             TO   WSCSCHL
           MOVE    STHSSN              TO   WSCSSN
           SET     WSC1  RQR2          TO   +1.
       020-LOOP.
           IF      RQRBYTE (RQR1 RQR2) =    ' '
             MOVE  ' '                 TO   WSCBYTE      (WSC1).
           IF      WSC1                <    WSCTIMES
             SET   WSC1  RQR2          UP   BY  +1
             GO                        TO   020-LOOP.
       020-EXIT.
           EXIT.

      ******************************************************************
       490-HOUSEKEEPING.
           OPEN    INPUT                    CRD-CARD      CRF-DISK
                                            STH-DISK      STS-DISK
                                            SMP-DISK
                   OUTPUT                   PR1-PRNT
           MOVE    SPACES              TO   LN1           WSCRPT
           MOVE    '1'                 TO   CTLCHAR
           SET     RQR1  RQH1          TO   +1
           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     (CRDSEQ              NOT  =   'A')                AND
                  (CRDSEQ              NOT  =   'B')                AND
                  (CRDSEQ              NOT  =   'C')                AND
                  (CRDSEQ              NOT  =   'D')
             MOVE  ALL '-'             TO   ERRSEQ.
           IF     (CRDDIST             =    SPACES)
             MOVE  ALL '-'             TO   ERRDIST.
           IF     (CRDFY               NOT  NUMERIC)
             MOVE  ALL '-'             TO   ERRFY.
           IF     (CRDERR              NOT  =   ' ')                AND
                  (CRDERR              NOT  =   'Y')
             MOVE  ALL '-'             TO   ERRERR.
           IF     (CRDRPT              NOT  =   'A')                AND
                  (CRDRPT              NOT  =   'B')
             MOVE  ALL '-'             TO   ERRRPT.
           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.
           IF      RQR1                >    +99
             GO                        TO   490-LOAD.
           MOVE    CRDREQ              TO   RQRREQ       (RQR1)
           MOVE    CRDPRT              TO   RQRPRT       (RQR1)
           MOVE    CRDSEQ              TO   RQRSEQ       (RQR1)
           MOVE    CRDDIST             TO   RQRDIST      (RQR1)
           MOVE    CRDFY               TO   RQRFY        (RQR1)
           MOVE    CRDSCHL             TO   RQRSCHL      (RQR1)
           MOVE    CRDTCHR             TO   RQRTCHR      (RQR1)
           MOVE    CRDERR              TO   RQRERR       (RQR1)
           MOVE    CRDRPT              TO   RQRRPT       (RQR1)
           IF      CRDRPT              =    'B'                    AND
                   WSCRPT              NOT  =  'B'
             MOVE  'B'                 TO   WSCRPT
             OPEN  I-O                      SDF-DISK
             PERFORM  493-SDF-PURGE    THRU 493-EXIT.
           MOVE    SPACES              TO   STHKEY
           MOVE    CRDDIST             TO   STHDIST
           MOVE    CRDFY               TO   STHFY
           MOVE    CRDTCHR             TO   STHSSN
           IF     (STHKEY              <    STRKEY)
             MOVE  STHKEY              TO   STRKEY.
           INSPECT STHKEY    REPLACING ALL  ' '         BY HIGH-VALUES
           IF     (STHKEY              >    ENDKEY)
             MOVE  STHKEY              TO   ENDKEY.
           SET     RQR1             UP BY   +1
           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      WSCRPT              NOT  =   'B'
             OPEN  INPUT                    SDF-DISK.
           IF      RQRENTRY       (01) =    HIGH-VALUES
             MOVE    'EW014 NO REQUESTS *'   TO   LNM
             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      RETSTH              NOT  =   '00'
             MOVE    'STH OPEN ERROR'  TO   LNMMSG
             MOVE    RETSTH            TO   LNMVALUE1
             PERFORM 520-PRINT         THRU 520-EXIT.
           IF      RETSTS              NOT  =   '00'
             MOVE    'STS OPEN ERROR'  TO   LNMMSG
             MOVE    RETSTS            TO   LNMVALUE1
             PERFORM 520-PRINT         THRU 520-EXIT.
           IF      RETSMP              NOT  =   '00'
             MOVE    'SMP OPEN ERROR'  TO   LNMMSG
             MOVE    RETSMP            TO   LNMVALUE1
             PERFORM 520-PRINT         THRU 520-EXIT.
           IF      RETSDF              NOT  =   '00'
             MOVE    'SDF OPEN ERROR'  TO   LNMMSG
             MOVE    RETSDF            TO   LNMVALUE1
             PERFORM 520-PRINT         THRU 520-EXIT.
           IF     (RETCRF              NOT  =   '00')                OR
                  (RETSTH              NOT  =   '00')                OR
                  (RETSTS              NOT  =   '00')                OR
                  (RETSMP              NOT  =   '00')                OR
                  (RETSDF              NOT  =   '00')                OR
                  (RQRENTRY       (01) =    HIGH-VALUES)
             GO                        TO   499-EOJ.
           MOVE    STRKEY              TO   STHDK
           START   STH-DISK        KEY >    STHDK
           IF      RETSTH              =    '00'
             PERFORM   010-READ        THRU 010-EXIT.
       490-EXIT.
           EXIT.

      ******************************************************************
       493-SDF-PURGE.
           MOVE    RETSDF              TO   RETSDFOLD
           MOVE    CRDDIST             TO   SDFKEY
           MOVE    CRDFY               TO   SDFFY
           MOVE    SDFKEY              TO   SDFDK
           START   SDF-DISK        KEY >=   SDFDK
           IF      RETSDF              NOT  =  '00'
             MOVE  RETSDFOLD           TO   RETSDF
             GO                        TO   493-EXIT.
       493-LOOP.
           READ    SDF-DISK            NEXT
           IF      RETSDF              =    '00'
             MOVE  SDFD                TO   SDF
             IF    SDFDIST             =    CRDDIST          AND
                   SDFFY               =    CRDFY
               DELETE SDF-DISK
               GO                      TO   493-LOOP.
           MOVE    RETSDFOLD           TO   RETSDF.
       493-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     (CRDSEQ              NOT  =   'A')                AND
                  (CRDSEQ              NOT  =   'B')                AND
                  (CRDSEQ              NOT  =   'C')                AND
                  (CRDSEQ              NOT  =   'D')
             MOVE  ALL '-'             TO   ERRSEQ.
           IF     (CRDDIST             =    SPACES)
             MOVE  ALL '-'             TO   ERRDIST.
           IF     (CRDFY               NOT  NUMERIC)
             MOVE  ALL '-'             TO   ERRFY.
           IF     (CRDERR              NOT  =   ' ')                AND
                  (CRDERR              NOT  =   'Y')
             MOVE  ALL '-'             TO   ERRERR.
           IF     (CRDRPT              NOT  =   'A')                AND
                  (CRDRPT              NOT  =   'B')
             MOVE  ALL '-'             TO   ERRRPT.
           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       (RQR1)
           MOVE    CRDPRT              TO   RQRPRT       (RQR1)
           MOVE    CRDSEQ              TO   RQRSEQ       (RQR1)
           MOVE    CRDDIST             TO   RQRDIST      (RQR1)
           MOVE    CRDFY               TO   RQRFY        (RQR1)
           MOVE    CRDSCHL             TO   RQRSCHL      (RQR1)
           MOVE    CRDTCHR             TO   RQRTCHR      (RQR1)
           MOVE    CRDERR              TO   RQRERR       (RQR1)
           MOVE    CRDRPT              TO   RQRRPT       (RQR1)
           IF      CRDRPT              =    'B'                    AND
                   WSCRPT              NOT  =  'B'
             MOVE  'B'                 TO   WSCRPT
             OPEN  I-O                      SDF-DISK
             PERFORM  493-SDF-PURGE    THRU 493-EXIT.
           MOVE    SPACES              TO   STHKEY
           MOVE    CRDDIST             TO   STHDIST
           MOVE    CRDFY               TO   STHFY
           MOVE    CRDTCHR             TO   STHSSN
           IF     (STHKEY              <    STRKEY)
             MOVE  STHKEY              TO   STRKEY.
           INSPECT STHKEY    REPLACING ALL  ' '         BY HIGH-VALUES
           IF     (STHKEY              >    ENDKEY)
             MOVE  STHKEY              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.
081208*      IF    (SRTKSSN            NOT  =   OLDKSSN)             OR
081208       IF    (SRTKSSN            NOT  =   OLDKSSN)             OR
081208             (SRTKJOB            NOT  =   OLDKJOB)
030702         MOVE     'N'            TO   WSCMULMOD.
             IF    (SRTKDIST           NOT  =   OLDKDIST)            OR
                   (SRTKREQ            NOT  =   OLDKREQ)             OR
                   (SRTKFY             NOT  =   OLDKFY)              OR
                   (SRTKSCHL1          NOT  =   OLDKSCHL1)           OR
                   (SRTKSSN            NOT  =   OLDKSSN)             OR
                   (SRTKSCHL2          NOT  =   OLDKSCHL2)           OR
                   (SRTKJOB            NOT  =   OLDKJOB)
               PERFORM 615-1TOT        THRU 615-EXIT
               IF  (SRTKDIST           NOT  =   OLDKDIST)            OR
                   (SRTKREQ            NOT  =   OLDKREQ)             OR
                   (SRTKSCHL1          NOT  =   OLDKSCHL1)
                 PERFORM 625-2TOT      THRU 625-EXIT
                 IF (SRTKDIST          NOT  =   OLDKDIST)            OR
                    (SRTKREQ           NOT  =   OLDKREQ)
                   PERFORM 635-3TOT    THRU 635-EXIT
                   IF  (SRTKEY         =    HIGH-VALUES)
                     GO                TO   999-EOJ
                   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.
           IF      SRTKTYPE            =    '1'
             MOVE  SRTEDT              TO   EDTENTRY    (1).
           IF      SRTKTYPE            =    '2'
             MOVE  SRTEDT              TO   EDTENTRY    (2).
           IF      SRTKTYPE            =    '3'
             MOVE  SRTEDT              TO   EDTENTRY    (3).
           IF      SRTKTYPE            =    '4'
             MOVE  SRTEDT              TO   EDTENTRY    (4).
           IF      SRTKTYPE            =    '5'
             ADD   +1                  TO   CTRSCHLTOT
             MOVE  SRTLAST             TO   LN1LAST
             MOVE  SRTFIRST            TO   LN1FIRST
             MOVE  SRTMINIT            TO   LN1MINIT
             MOVE  SRTNAME             TO   OLDNAME
             MOVE  SRTSSN              TO   LN1SSN
             MOVE  SRTSCHL             TO   LN1SCHL      OLDSCHL
             MOVE  SRTKJOB             TO   LN1JOB
             MOVE  SRTTABLE            TO   LN1TABLE     OLDTABLE
             MOVE  SRTFUND             TO   LN1FUND      OLDFUND
             MOVE  SRTSALARY           TO   LN1SALARY
             MOVE  SRTHRLY             TO   LN1HRLY
             MOVE  SRTPSCHL            TO   WSCPCTPMOD
             COMPUTE WSCPCTPMOD        =    WSCPCTPMOD  *  100
             MOVE  WSCPCTPMOD          TO   LN1PSCHL
             MOVE  SRTDAYS1            TO   LN1DAYS1
             MOVE  SRTDAYS2            TO   LN1DAYS2
             MOVE  SRTDAYS3            TO   LN1DAYS3
             MOVE  SRTDAYS4            TO   LN1DAYS4
             MOVE  LN1                 TO   HLDHDRLN
             MOVE  SPACES              TO   LN1
             PERFORM  700-HDR          THRU 700-EXIT.

           IF      SRTKTYPE            NOT  =  '6'
             GO                        TO   515-EXIT.
           PERFORM 710-DTL             THRU 710-EXIT
           IF      SRTERR              =    'Y'                    AND
                   DTLEDT              =    SPACES                 AND
                   HDREDT              =    SPACES
080508       MOVE  SRTKSURV            TO   WSCSAVSURV
080508       MOVE  SRTKMOD             TO   WSCSAVMOD
             GO                        TO   515-EXIT.
042697     IF      (WSCSCHLHDR         =    'N')                    AND
042697             (SRTSEQ             =    'A'                  OR
042697              SRTSEQ             =    'B')
042697       MOVE   'Y'                TO   WSCSCHLHDR
042697       MOVE   '    SCL'          TO   SCLKEY
042697       MOVE   SRTKDIST           TO   SCLDIST
042697       MOVE   SRTKFY             TO   SCLFY
042697       MOVE   SRTKSCHL1          TO   SCLSCL
042697       MOVE   SCLKEY             TO   CRFDK
042697       READ   CRF-DISK
042697       IF     RETCRF             NOT  =   '00'
042697         MOVE   'UNKNOWN'        TO   HD4DESC
042697         PERFORM 525-HEADS       THRU 525-EXIT
042697       ELSE
042697         MOVE   CRFD             TO   SCL
042697         MOVE   SCLDESC          TO   HD4DESC
042697         PERFORM 525-HEADS       THRU 525-EXIT.
           IF      CTRLN               >    +59
             MOVE  'N'                 TO   WSCHDRFLG.
           IF      WSCHDRFLG           =    'N'
             IF   (HDREDT              =    SPACES              AND
                   DTLEDT              =    SPACES              AND
                   CTRLN               >    +56)                   OR
                  (HDREDT              NOT  =  SPACES           AND
                   DTLEDT              NOT  =  SPACES           AND
                   CTRLN               >    +54)                   OR
                  (HDREDT              =    SPACES              AND
                   DTLEDT              NOT  =  SPACES           AND
                   CTRLN               >    +55)                   OR
                  (HDREDT              NOT  =  SPACES           AND
                   DTLEDT              =    SPACES              AND
                   CTRLN               >    +55)
               MOVE  +61               TO   CTRLN.
           IF      WSCHDRFLG           =    'N'
             MOVE  'Y'                 TO   WSCHDRFLG
             MOVE  HLDHDRLN            TO   LN1
             MOVE  '0'                 TO   CTLCHAR
             PERFORM 520-PRINT         THRU 520-EXIT
             IF    HDREDT              NOT  =  SPACES
               MOVE  HDREDT            TO   LN1
               PERFORM  520-PRINT      THRU 520-EXIT
               MOVE  HD6               TO   LN1
               MOVE  '0'               TO   CTLCHAR
               PERFORM 520-PRINT       THRU 520-EXIT
               MOVE  '0'               TO   CTLCHAR
             ELSE
               MOVE  HD6               TO   LN1
               MOVE  '0'               TO   CTLCHAR
               PERFORM 520-PRINT       THRU 520-EXIT
               MOVE  '0'               TO   CTLCHAR.
030702*    MOVE    SRTKSURV            TO   LN2SURVEY
030702     MOVE    SRTKSURV            TO   LN2SURVEY      WSCSAVSURV
030702*    MOVE    SRTKMOD             TO   LN2MOD
030702     MOVE    SRTKMOD             TO   LN2MOD         WSCSAVMOD
           MOVE    SRTPGM          (1) TO   LN2PGM      (1)
           MOVE    SRTSTDT         (1) TO   LN2STDT     (1)
           MOVE    SRTPCT          (1) TO   WSCPCTSTDT
           COMPUTE WSCPCTSTDT          =    WSCPCTSTDT  *  100
           MOVE    WSCPCTSTDT          TO   LN2PCT      (1)
           MOVE    SRTPGM          (2) TO   LN2PGM      (2)
           MOVE    SRTSTDT         (2) TO   LN2STDT     (2)
           MOVE    SRTPCT          (2) TO   WSCPCTSTDT
           COMPUTE WSCPCTSTDT          =    WSCPCTSTDT  *  100
           MOVE    WSCPCTSTDT          TO   LN2PCT      (2)
           MOVE    SRTPGM          (3) TO   LN2PGM      (3)
           MOVE    SRTSTDT         (3) TO   LN2STDT     (3)
           MOVE    SRTPCT          (3) TO   WSCPCTSTDT
           COMPUTE WSCPCTSTDT          =    WSCPCTSTDT  *  100
           MOVE    WSCPCTSTDT          TO   LN2PCT      (3)
           MOVE    SRTSPACE            TO   LN2SPACE
           MOVE    SRTPMOD             TO   WSCPCTPMOD
           COMPUTE WSCPCTPMOD          =    WSCPCTPMOD  *  100
           MOVE    WSCPCTPMOD          TO   LN2PMOD
           PERFORM 520-PRINT           THRU 520-EXIT
           IF      DTLEDT              NOT  =  SPACES
             MOVE  DTLEDT              TO   LN2
             PERFORM  520-PRINT        THRU 520-EXIT.
       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
           IF      OLDRPT              =    'A'
             MOVE  '* EDIT *'          TO   HD1MODE
           ELSE
             MOVE  '* POST *'          TO   HD1MODE.
           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.
           IF      OLDSEQ              =    'A'                     OR
                   OLDSEQ              =    'B'
             MOVE  HD4                 TO   LN1
             MOVE  '0'                 TO   CTLCHAR
             PERFORM 520-PRINT         THRU 520-EXIT.
           MOVE    '0'                 TO   CTLCHAR
           MOVE    HD5                 TO   LN1
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    OLDLN               TO   LN1
           MOVE    '0'                 TO   CTLCHAR.
       525-EXIT.
           EXIT.

      ******************************************************************
       610-1CHG.
           MOVE     SRTKSSN            TO   OLDKSSN
           MOVE     SRTKSCHL2          TO   OLDKSCHL2
           MOVE     SRTKJOB            TO   OLDKJOB
           INITIALIZE                       EDTTBL
           MOVE     HIGH-VALUES        TO   PGMTBL
           MOVE     'N'                TO   WSCHDRFLG
030702     MOVE     ZEROS              TO   WSCSAVMOD    WSCSAVSURV
           MOVE     SPACES             TO   OLDSCHL      OLDFUND
                                            OLDTABLE     OLDNAME
                                            HLDHDRLN     HDREDT
                                            DTLEDT.
       610-EXIT.
           EXIT.

       615-1TOT.
           IF     (WSCHDRFLG           =    'N')                   AND
                  (EDTNBRMOD       (1) =    ZEROS)                 AND
                  (EDTNBRMOD       (2) =    ZEROS)                 AND
                  (EDTNBRMOD       (3) =    ZEROS)                 AND
                  (EDTNBRMOD       (4) =    ZEROS)
             IF   (HDREDT              =    SPACES              AND
                   DTLEDT              =    SPACES              AND
                   CTRLN               >    +56)                   OR
                  (HDREDT              NOT  =  SPACES           AND
                   DTLEDT              NOT  =  SPACES           AND
                   CTRLN               >    +54)                   OR
                  (HDREDT              =    SPACES              AND
                   DTLEDT              NOT  =  SPACES           AND
                   CTRLN               >    +55)                   OR
                  (HDREDT              NOT  =  SPACES           AND
                   DTLEDT              =    SPACES              AND
                   CTRLN               >    +55)
               MOVE  +61               TO   CTRLN.
           IF     (WSCHDRFLG           =    'N')                   AND
                  (EDTNBRMOD       (1) =    ZEROS)                 AND
                  (EDTNBRMOD       (2) =    ZEROS)                 AND
                  (EDTNBRMOD       (3) =    ZEROS)                 AND
                  (EDTNBRMOD       (4) =    ZEROS)
             MOVE  'Y'                 TO   WSCHDRFLG
             MOVE  HLDHDRLN            TO   LN1
             MOVE  '0'                 TO   CTLCHAR
             PERFORM 520-PRINT         THRU 520-EXIT
             IF    HDREDT              NOT  =  SPACES
               MOVE  HDREDT            TO   LN1
               PERFORM  520-PRINT      THRU 520-EXIT
               MOVE  HD6               TO   LN1
               MOVE  '0'               TO   CTLCHAR
               PERFORM  520-PRINT      THRU 520-EXIT
               MOVE  '0'               TO   CTLCHAR
               MOVE  ALL '-'           TO   DTLSURVEY     DTLMOD
                                            DTLPGM   (1)  DTLSTDT  (1)
                                            DTLPCT   (1)
               MOVE  '*ERROR*'         TO   DTLMSG
               ADD   +1                TO   CTRSCHLERR
               MOVE  DTLEDT            TO   LN1
               PERFORM  520-PRINT      THRU 520-EXIT
             ELSE
               MOVE  HD6               TO   LN1
               MOVE  '0'               TO   CTLCHAR
               PERFORM  520-PRINT      THRU 520-EXIT
               MOVE  '0'               TO   CTLCHAR
               MOVE  ALL '-'           TO   DTLSURVEY     DTLMOD
                                            DTLPGM   (1)  DTLSTDT  (1)
                                            DTLPCT   (1)
               MOVE  '*ERROR*'         TO   DTLMSG
               ADD   +1                TO   CTRSCHLERR
               MOVE  DTLEDT            TO   LN1
               PERFORM  520-PRINT      THRU 520-EXIT.

           SET     PGM1                TO   +1.
       615-LOOP.
           IF      PGMPGM       (PGM1) =    HIGH-VALUES            OR
                   PGM1                =    +999
             GO                        TO   615-EXIT.
           MOVE    OLDKDIST            TO   SDFDIST
           MOVE    OLDKFY              TO   SDFFY
           MOVE    OLDSCHL             TO   SDFSCHL
           MOVE    OLDFUND             TO   SDFFUND
           MOVE    OLDTABLE            TO   SDFTABLE
           MOVE    PGMPGM       (PGM1) TO   SDFPGM
           MOVE    OLDKSSN             TO   SDFSSN
           MOVE    OLDKJOB             TO   SDFJOB
           MOVE    OLDNAME             TO   SDFNAME
           MOVE    PGMSTF       (PGM1) TO   SDFSTAFF
           MOVE    PGMSPC       (PGM1) TO   SDFSPACE
           MOVE    PGMSAL       (PGM1) TO   SDFSALARY
           MOVE    SDF                 TO   SDFD
           IF      OLDRPT              NOT  =  'B'
             ADD   +1                  TO   CTRREQSDF
           ELSE
             WRITE   SDFD
             IF      RETSDF            =    '00'
               ADD   +1                TO   CTRREQSDF
             ELSE
               MOVE  'SDF WRITE ERR'   TO   LNMMSG
               MOVE  RETSDF            TO   LNMVALUE1
               MOVE  SDFDK             TO   LNMVALUE2
               PERFORM 520-PRINT       THRU 520-EXIT.
           MOVE    '0000'              TO   SDFSCHL
           MOVE    SDF                 TO   SDFD
           IF      OLDRPT              NOT  =  'B'
             ADD   +1                  TO   CTRREQSDF
           ELSE
             WRITE   SDFD
             IF      RETSDF            =    '00'
               ADD   +1                TO   CTRREQSDF
             ELSE
               READ  SDF-DISK
               MOVE  SDFD              TO   SDF
               ADD   PGMSTF     (PGM1) TO   SDFSTAFF
               ADD   PGMSPC     (PGM1) TO   SDFSPACE
               ADD   PGMSAL     (PGM1) TO   SDFSALARY
               MOVE  SDF               TO   SDFD
               REWRITE  SDFD
               IF      RETSDF          =    '00'
                 ADD   +1              TO   CTRREQSDF
               ELSE
                 MOVE  'SDF REWRITE ERR'  TO   LNMMSG
                 MOVE  RETSDF          TO   LNMVALUE1
                 MOVE  SDFDK           TO   LNMVALUE2
                 PERFORM 520-PRINT     THRU 520-EXIT.
           SET     PGM1                UP   BY  +1
           GO                          TO   615-LOOP.
       615-EXIT.
           EXIT.

       620-2CHG.
           MOVE     SRTKSCHL1          TO   OLDKSCHL1     HD4SCHL
           MOVE     ZEROS              TO   CTRSCHLTOT    CTRSCHLERR
042697     MOVE     'N'                TO   WSCSCHLHDR
042697     PERFORM  610-1CHG           THRU 610-EXIT.
042697*    PERFORM  610-1CHG           THRU 610-EXIT
042697*    IF       SRTSEQ             =    'A'                     OR
042697*             SRTSEQ             =    'B'
042697*      MOVE   '    SCL'          TO   SCLKEY
042697*      MOVE   SRTKDIST           TO   SCLDIST
042697*      MOVE   SRTKFY             TO   SCLFY
042697*      MOVE   SRTKSCHL1          TO   SCLSCL
042697*      MOVE   SCLKEY             TO   CRFDK
042697*      READ   CRF-DISK
042697*      IF     RETCRF             NOT  =   '00'
042697*        MOVE   'UNKNOWN'        TO   HD4DESC
042697*        PERFORM 525-HEADS       THRU 525-EXIT
042697*      ELSE
042697*        MOVE   CRFD             TO   SCL
042697*        MOVE   SCLDESC          TO   HD4DESC
042697*        PERFORM 525-HEADS       THRU 525-EXIT.
       620-EXIT.
           EXIT.

       625-2TOT.
           ADD      CTRSCHLTOT         TO   CTRREQTOT
           ADD      CTRSCHLERR         TO   CTRREQERR
042697*    IF       OLDSEQ             =    'A'                     OR
042697*             OLDSEQ             =    'B'
042697     IF      (WSCSCHLHDR         =    'Y')                    AND
042697             (OLDSEQ             =    'A'                  OR
042697              OLDSEQ             =    'B')
             MOVE   SPACES             TO   LN3
             MOVE   'SCHL'             TO   LN3MSG1
             MOVE   OLDKSCHL1          TO   LN3FLD
             MOVE   'TOTAL'            TO   LN3MSG2
             MOVE   CTRSCHLTOT         TO   LN3CNT1
             MOVE   'TEACHERS'         TO   LN3MSG4
             MOVE   CTRSCHLERR         TO   LN3CNT2
             MOVE   'ERRORS'           TO   LN3MSG5
             MOVE   '0'                TO   CTLCHAR
             PERFORM 520-PRINT        THRU 520-EXIT.
       625-EXIT.
           EXIT.

       630-3CHG.
           MOVE     ZEROS              TO   CTRLN         CTRPG
           MOVE     ZEROS              TO   CTRREQTOT     CTRREQERR
                                            CTRREQSDF
           MOVE     SRTKREQ            TO   OLDKREQ
           MOVE     SRTKDIST           TO   OLDKDIST
           MOVE     SRTKFY             TO   OLDKFY
           MOVE     SRTSEQ             TO   OLDSEQ
           MOVE     SRTPRT             TO   OLDPRT
           MOVE     SRTRPT             TO   OLDRPT

           MOVE     '    IOP'          TO   IOPKEY
           MOVE     SRTKDIST           TO   IOPDIST
           MOVE     SRTKFY             TO   IOPFY
           MOVE     IOPKEY             TO   CRFDK
           READ     CRF-DISK
           IF       RETCRF             NOT  =   '00'
             INITIALIZE                     IOPDATA
           ELSE
             MOVE   CRFD               TO   IOP.
           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.
       630-REQ.
           IF      HD1B         (HD11) =    SPACES
             SET   HD11                DOWN BY  +1
             GO                        TO   630-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.
       630-HEAD.
           IF      RQHREQ       (RQH1) NOT  =   HIGH-VALUES
             IF      RQHREQ     (RQH1) NOT  =   SRTKREQ
               SET   RQH1              UP   BY  +1
               GO                      TO   630-HEAD
             ELSE
               IF      RQHID    (RQH1) =    'H1'
                 MOVE  RQHHEAD  (RQH1) TO   HD2HEAD
                 MOVE  RQHUSER  (RQH1) TO   HD1USER
                 SET   RQH1            UP   BY  +1
                 GO                    TO   630-HEAD
               ELSE
                 IF      RQHID  (RQH1) =    'H2'
                   MOVE  RQHHEAD (RQH1) TO  HD3HEAD
                   SET   RQH1          UP   BY  +1
                   GO                  TO   630-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 620-2CHG            THRU 620-EXIT
           IF      SRTSEQ              =    'C'                     OR
                   SRTSEQ              =    'D'
             PERFORM  525-HEADS        THRU 525-EXIT.
       630-EXIT.
           EXIT.

       635-3TOT.
           IF      OLDSEQ              =    'A'                     OR
                   OLDSEQ              =    'B'
             ADD   +1                  TO   CTRPG
             MOVE  CTRPG               TO   HD1PG
             MOVE  HD1                 TO   LN1
             MOVE  '1'                 TO   CTLCHAR
             PERFORM  520-PRINT        THRU 520-EXIT.
           MOVE    '0'                 TO   CTLCHAR
           MOVE    SPACES              TO   LN3
           MOVE    'REQUEST'           TO   LN3MSG1
           MOVE    OLDKREQ             TO   LN3FLD
           MOVE    'TOTAL'             TO   LN3MSG2
           MOVE    CTRREQTOT           TO   LN3CNT1
           MOVE    'TEACHERS'          TO   LN3MSG4
           MOVE    CTRREQERR           TO   LN3CNT2
           MOVE    'ERRORS'            TO   LN3MSG5
           PERFORM 520-PRINT           THRU 520-EXIT
           MOVE    'TOTAL'             TO   LN3MSG2
           MOVE    CTRREQSDF           TO   LN3CNT1
           MOVE    'SDF RECORDS UPDATED' TO LN3MSG3
           PERFORM 520-PRINT           THRU 520-EXIT.
       635-EXIT.
           EXIT.

      ******************************************************************
       700-HDR.
           MOVE    SPACES              TO   HDREDT
      **************************************************************
      ***  TEACHER HEADER (STH) CONTENT EDITS.                   ***
      **************************************************************
           IF      SRTLAST             NOT  >   SPACES
             MOVE  ALL '-'             TO   HDRLAST.
           MOVE    SRTKDIST            TO   TBLKEY
           MOVE    SRTKFY              TO   TBLFY
           MOVE    'TBL'               TO   TBLPREF
           MOVE    SRTTABLE            TO   TBLTBL
           MOVE    TBLKEY              TO   CRFDK
           READ    CRF-DISK
           IF      RETCRF              NOT  =   '00'
             INITIALIZE                     TBLDATA
             MOVE  ALL '-'             TO   HDRTABLE
           ELSE
             MOVE  CRFD                TO   TBL.
           IF      SRTFUND             NOT  =  TBLFTYPE
             MOVE  ALL '-'             TO   HDRFUND.
           IF      SRTSALARY           NOT  >  ZERO
             MOVE  ALL '-'             TO   HDRSALARY.
           IF      SRTPSCHL            <    0.01                   OR
                   SRTPSCHL            >    1.00
             MOVE  ALL '-'             TO   HDRPSCHL.

      **************************************************************
      ***  TEACHER HEADER (STH) RELATIONAL EDITS.                ***
      **************************************************************
           MOVE    SPACES              TO   WSCSMP
           IF      EDTNBRMOD      (01) >    ZERO
             MOVE  'Y'                 TO   WSCSMP1.
           IF      EDTNBRMOD      (02) >    ZERO
             MOVE  'Y'                 TO   WSCSMP2.
           IF      EDTNBRMOD      (03) >    ZERO
             MOVE  'Y'                 TO   WSCSMP3.
           IF      EDTNBRMOD      (04) >    ZERO
             MOVE  'Y'                 TO   WSCSMP4.
           IF      SRTHRLY             >    ZERO
             COMPUTE  WSCHOURS ROUNDED =    SRTSALARY / SRTHRLY
             COMPUTE  WSCDAYS  ROUNDED =    WSCHOURS / IOPSEHRS
             COMPUTE  WSCFTE   ROUNDED =    WSCDAYS / IOPSEHDAYS
           ELSE
             COMPUTE  WSCFTE   ROUNDED =   (SRTDAYS1 + SRTDAYS2 +
                                            SRTDAYS3 + SRTDAYS4) /
                                            IOPSECDAYS.
           IF         WSCFTE           >    ZERO
             COMPUTE  WSCSALARY        =    SRTSALARY / WSCFTE
           ELSE
             MOVE     ZEROS            TO   WSCSALARY.
           IF      WSCSALARY           <    IOPSEFSAL              OR
                   WSCSALARY           >    IOPSETSAL
             MOVE  ALL  '-'            TO   HDRSALARY.
           COMPUTE WSCDAYS             =   (SRTDAYS1 + SRTDAYS2 +
                                            SRTDAYS3 + SRTDAYS4)
           IF      WSCDAYS             >    IOPSEDAYS
             MOVE  ALL  '-'            TO   HDRDAYS1
                                            HDRDAYS2
                                            HDRDAYS3
                                            HDRDAYS4.
           IF      WSCDAYS             =    ZEROS                  AND
                   SRTHRLY             =    ZEROS
             MOVE  ALL  '-'            TO   HDRHRLY
                                            HDRDAYS1
                                            HDRDAYS2
                                            HDRDAYS3
                                            HDRDAYS4.
           IF      WSCDAYS             >    ZEROS                  AND
                   SRTHRLY             >    ZEROS
             MOVE  ALL  '-'            TO   HDRHRLY
             IF    SRTDAYS1            >    ZERO
               MOVE  ALL  '-'          TO   HDRDAYS1.
           IF      WSCDAYS             >    ZEROS                  AND
                   SRTHRLY             >    ZEROS
             IF    SRTDAYS2            >    ZERO
               MOVE  ALL  '-'          TO   HDRDAYS2.
           IF      WSCDAYS             >    ZEROS                  AND
                   SRTHRLY             >    ZEROS
             IF    SRTDAYS3            >    ZERO
               MOVE  ALL  '-'          TO   HDRDAYS3.
           IF      WSCDAYS             >    ZEROS                  AND
                   SRTHRLY             >    ZEROS
             IF    SRTDAYS4            >    ZERO
               MOVE  ALL  '-'          TO   HDRDAYS4.
           IF     (SRTDAYS1            >    ZEROS               AND
                   WSCSMP1             NOT  =  'Y')                OR
                  (SRTDAYS1            =    ZEROS               AND
                   SRTHRLY             =    ZEROS               AND
                   WSCSMP1             =    'Y')
             MOVE  ALL  '-'            TO   HDRDAYS1.
           IF     (SRTDAYS2            >    ZEROS               AND
                   WSCSMP2             NOT  =  'Y')                OR
                  (SRTDAYS2            =    ZEROS               AND
                   SRTHRLY             =    ZEROS               AND
                   WSCSMP2             =    'Y')
             MOVE  ALL  '-'            TO   HDRDAYS2.
           IF     (SRTDAYS3            >    ZEROS               AND
                   WSCSMP3             NOT  =  'Y')                OR
                  (SRTDAYS3            =    ZEROS               AND
                   SRTHRLY             =    ZEROS               AND
                   WSCSMP3             =    'Y')
             MOVE  ALL  '-'            TO   HDRDAYS3.
           IF     (SRTDAYS4            >    ZEROS               AND
                   WSCSMP4             NOT  =  'Y')                OR
                  (SRTDAYS4            =    ZEROS               AND
                   SRTHRLY             =    ZEROS               AND
                   WSCSMP4             =    'Y')
             MOVE  ALL  '-'            TO   HDRDAYS4.
           IF      HDREDT              NOT  =  SPACES
             ADD   +1                  TO   CTRSCHLERR
             MOVE  '*ERROR*'           TO   HDRMSG.

      ****************************************************************
      ***  MAKE CALCULATIONS NEEDED FOR STAFF DATA FILE (SDF).     ***
      ****************************************************************
           MOVE    ZEROS               TO   WSCNBRSRV
           IF      EDTNBRMOD       (1) >    ZERO
             ADD   +1                  TO   WSCNBRSRV.
           IF      EDTNBRMOD       (2) >    ZERO
             ADD   +1                  TO   WSCNBRSRV.
           IF      EDTNBRMOD       (3) >    ZERO
             ADD   +1                  TO   WSCNBRSRV.
           IF      EDTNBRMOD       (4) >    ZERO
             ADD   +1                  TO   WSCNBRSRV.
      ****************************************************************
      ***  DETERMINE STAFF UNITS FOR THIS EMPLOYEE.                ***
      ****************************************************************
           IF      WSCDAYS             >    ZERO
             COMPUTE  WSCSTF   ROUNDED =    WSCDAYS / IOPSECDAYS
           ELSE
             IF    SRTHRLY             >    ZERO
               COMPUTE  WSCSTF ROUNDED =    SRTSALARY / SRTHRLY /
                                            IOPSEHRS / IOPSEHDAYS
             ELSE
               MOVE     ZEROS          TO   WSCSTF.

      ****************************************************************
      ***  DETERMINE STAFF UNITS AND SALARY UNITS ASSOCIATED WITH  ***
      ***  THE EMPLOYEE'S ASSIGNMENT AT THIS SCHOOL.               ***
      ****************************************************************
           IF      SRTPSCHL            =    ZERO
             MOVE  SRTSALARY           TO   WSCSAL
           ELSE
             COMPUTE  WSCSTF   ROUNDED =    WSCSTF * SRTPSCHL
             COMPUTE  WSCSAL   ROUNDED =    SRTSALARY * SRTPSCHL.

      ****************************************************************
      ***  DEVELOP THE STAFF AND SALARY UNITS ASSOCIATED WITH      ***
      ***  EACH SURVEY.                                            ***
      ****************************************************************
           IF      WSCDAYS             >    ZERO
             COMPUTE  EMPSTF1 ROUNDED  =   (SRTDAYS1 / WSCDAYS) *
                                            WSCSTF
             COMPUTE  EMPSAL1 ROUNDED  =   (SRTDAYS1 / WSCDAYS) *
                                            WSCSAL
             COMPUTE  EMPSTF2 ROUNDED  =   (SRTDAYS2 / WSCDAYS) *
                                            WSCSTF
             COMPUTE  EMPSAL2 ROUNDED  =   (SRTDAYS2 / WSCDAYS) *
                                            WSCSAL
             COMPUTE  EMPSTF3 ROUNDED  =   (SRTDAYS3 / WSCDAYS) *
                                            WSCSTF
             COMPUTE  EMPSAL3 ROUNDED  =   (SRTDAYS3 / WSCDAYS) *
                                            WSCSAL
             COMPUTE  EMPSTF4 ROUNDED  =   (SRTDAYS4 / WSCDAYS) *
                                            WSCSTF
             COMPUTE  EMPSAL4 ROUNDED  =   (SRTDAYS4 / WSCDAYS) *
                                            WSCSAL.
           IF         WSCDAYS          =    ZERO                  AND
                      EDTNBRMOD    (1) >    ZERO
             COMPUTE  EMPSTF1 ROUNDED  =    WSCSTF / WSCNBRSRV
             COMPUTE  EMPSAL1 ROUNDED  =    WSCSAL / WSCNBRSRV.
           IF         WSCDAYS          =    ZERO                  AND
                      EDTNBRMOD    (2) >    ZERO
             COMPUTE  EMPSTF2 ROUNDED  =    WSCSTF / WSCNBRSRV
             COMPUTE  EMPSAL2 ROUNDED  =    WSCSAL / WSCNBRSRV.
           IF         WSCDAYS          =    ZERO                  AND
                      EDTNBRMOD    (3) >    ZERO
             COMPUTE  EMPSTF3 ROUNDED  =    WSCSTF / WSCNBRSRV
             COMPUTE  EMPSAL3 ROUNDED  =    WSCSAL / WSCNBRSRV.
           IF         WSCDAYS          =    ZERO                  AND
                      EDTNBRMOD    (4) >    ZERO
             COMPUTE  EMPSTF4 ROUNDED  =    WSCSTF / WSCNBRSRV
             COMPUTE  EMPSAL4 ROUNDED  =    WSCSAL / WSCNBRSRV.
       700-EXIT.
           EXIT.

      ******************************************************************
       710-DTL.
           MOVE    SPACES              TO   DTLEDT
           SET     SRT1   DTL1         TO   +1.
       710-ROW-LOOP.
      **************************************************************
      ***  TIME/SPACE (STS) CONTENT EDITS.                       ***
      **************************************************************
           IF      SRTKSURV            <    '1'                    OR
                   SRTKSURV            >    '4'
             MOVE  ALL  '-'            TO   DTLSURVEY.
           IF      SRTKMOD9            NOT  NUMERIC                OR
                   SRTKMOD9            NOT  >  ZERO
             MOVE  ALL  '-'            TO   DTLMOD.
           IF      DTLEDT              NOT  =  SPACES
             GO                        TO   710-CONT.
           SET     EDT1                TO   SRTKSURV9
           SET     EDT2                TO   SRTKMOD9
113095     SET     EDT2                UP   BY  +1
           IF      SRTPMOD             >    1
             MOVE  ALL  '-'            TO   DTLPMOD.

      **************************************************************
      ***  TIME/SPACE (STS) RELATIONAL EDITS.                    ***
      **************************************************************
           IF      SRTKMOD             =    EDTLASTMOD   (EDT1)    AND
                   EDTNBRMOD  (EDT1)   >    IOPSEMOD
             MOVE  ALL  '-'            TO   DTLMOD.
           IF      SRTKMOD             =    EDTLASTMOD   (EDT1)    AND
                   EDTPMOD    (EDT1)   >    1
             MOVE  ALL  '-'            TO   DTLPMOD.
           IF      SRTKMOD             =    EDTLASTMOD   (EDT1)    AND
                   EDTPMOD    (EDT1)   NOT  =  1                   AND
                   EDTEMPTY   (EDT1)   =    ZERO
             MOVE  ALL  '-'            TO   DTLPMOD.
           IF      SRTKMOD             =    EDTLASTMOD   (EDT1)    AND
                   EDTPMOD    (EDT1)   =    1                      AND
                   EDTEMPTY   (EDT1)   >    ZERO
             MOVE  ALL  '-'            TO   DTLPMOD.

030702     IF      EDTNBRMOD  (EDT1)   >    +1
030702       MOVE  'Y'                 TO   WSCMULMOD.
030702     IF      SRTKMOD9            =    99                     AND
030702             WSCMULMOD           =    'Y'
030702       MOVE    'TCHR K12 DTA '   TO   DTLWRN
030702       MOVE  ALL  '-'            TO   DTLMOD.
030702     IF     (SRTKSURV9           NOT  =  WSCSAVSURV       OR
030702             SRTKMOD9            NOT  =  WSCSAVMOD)          AND
030702             SRTPGM     (01)     =    '130'                  AND
030702             SRTPGM     (02)     =    '   '                  AND
030702             SRTPGM     (03)     =    '   '
030702       MOVE    'ESOL SEP MOD '   TO   DTLWRN
030702       MOVE  ALL  '-'            TO   DTLPGM (01).

       710-COL-LOOP.
           IF      SRTPGM       (SRT1) =    SPACES
             IF    SRT1                <    +3
               SET SRT1  DTL1          UP   BY  +1
               GO                      TO   710-COL-LOOP
             ELSE
               GO                      TO   710-CONT.
      **************************************************************
      ***  MOD/PROGRAM (SMP) CONTENT EDITS.                      ***
      **************************************************************
           MOVE    SRTKDIST            TO   FPGKEY
           MOVE    SRTKFY              TO   FPGFY
           MOVE    'FPG'               TO   FPGPREF
           MOVE    SRTPGM       (SRT1) TO   FPGFPG
           MOVE    FPGKEY              TO   CRFDK
           READ    CRF-DISK
           IF      RETCRF              NOT  =   '00'
             MOVE  ALL  '-'            TO   DTLPGM  (DTL1).

      **************************************************************
      ***  MOD/PROGRAM (SMP) RELATIONAL EDITS.                   ***
      **************************************************************
           IF      SRTSTDT      (SRT1) >    ZERO                   AND
                   SRTPCT       (SRT1) >    ZERO
             MOVE  ALL '-'             TO   DTLSTDT (DTL1)
                                            DTLPCT  (DTL1).
           IF      SRTSTDT      (SRT1) >    ZERO                   AND
                   EDTPCT  (EDT1 EDT2) >    ZERO
             MOVE  ALL '-'             TO   DTLSTDT (DTL1)
                                            DTLPCT  (DTL1).
           IF      SRTPGM       (SRT1) =    EDTLASTPGM (EDT1 EDT2) AND
                   EDTPCT  (EDT1 EDT2) NOT  =  1                   AND
                   EDTPCT  (EDT1 EDT2) NOT  =  ZERO
             MOVE  ALL '-'             TO   DTLSTDT (DTL1)
                                            DTLPCT  (DTL1).

      ****************************************************************
      ***  MAKE CALCULATIONS NEEDED FOR STAFF DATA FILE (SDF).     ***
      ****************************************************************
           IF      SRTKSURV            =    '1'
             MOVE  EMPSTF1             TO   WSCSTF
             MOVE  EMPSAL1             TO   WSCSAL
           ELSE
             IF    SRTKSURV            =    '2'
               MOVE  EMPSTF2           TO   WSCSTF
               MOVE  EMPSAL2           TO   WSCSAL
           ELSE
             IF    SRTKSURV            =    '3'
               MOVE  EMPSTF3           TO   WSCSTF
               MOVE  EMPSAL3           TO   WSCSAL
           ELSE
             IF    SRTKSURV            =    '4'
               MOVE  EMPSTF4           TO   WSCSTF
               MOVE  EMPSAL4           TO   WSCSAL.

      ****************************************************************
      ***  DEVELOP A DEFAULT PERCENTAGE OF TIME FOR THOSE MODULES  ***
      ***  THAT DO NOT HAVE A SPECIFIED PERCENT TIME FIELD.        ***
      ****************************************************************
           IF      SRTPMOD             >    0
             MOVE  SRTPMOD             TO   WSCPMOD
           ELSE
             IF    EDTPMOD      (EDT1) >    1.0
               MOVE  ZERO              TO   WSCPMOD
             ELSE
               IF      EDTEMPTY (EDT1) >   0
               COMPUTE WSCPMOD ROUNDED =   (1 - EDTPMOD (EDT1)) /
                                            EDTEMPTY  (EDT1)
               ELSE
                 MOVE  ZERO            TO  WSCPMOD.

      ****************************************************************
      ***  DEVELOP THE STAFF AND SALARY UNITS ASSOCIATED WITH      ***
      ***  EACH MODULE.                                            ***
      ****************************************************************
           COMPUTE WSCSTF  ROUNDED     =    WSCSTF * WSCPMOD
           COMPUTE WSCSAL  ROUNDED     =    WSCSAL * WSCPMOD

      ****************************************************************
      ***  DEVELOP THE STAFF AND SALARY UNITS ASSOCIATED WITH      ***
      ***  EACH MODULE.                                            ***
      ****************************************************************
           IF      SRTPCT       (SRT1) >    0
             MOVE  SRTPCT       (SRT1) TO   WSCPCT
           ELSE
             COMPUTE WSCPCT ROUNDED    =    SRTSTDT  (SRT1)       /
                                            EDTSTDT  (EDT1  EDT2).

           COMPUTE WSCSTF   ROUNDED    =    WSCSTF * WSCPCT
           COMPUTE WSCSAL   ROUNDED    =    WSCSAL * WSCPCT
           COMPUTE WSCSPC   ROUNDED    =    SRTSPACE * WSCSTF

           SET     PGM1                TO   +1
           SEARCH  PGMENTRY   VARYING       PGM1
             AT    END
               MOVE  'PGM TABLE ERR'   TO   LN1MSG
               PERFORM  520-PRINT      THRU 520-EXIT
             WHEN  PGMPGM       (PGM1) =    SRTPGM  (SRT1)
               ADD   WSCSTF            TO   PGMSTF    (PGM1)
               ADD   WSCSPC            TO   PGMSPC    (PGM1)
               ADD   WSCSAL            TO   PGMSAL    (PGM1)
             WHEN  PGMPGM       (PGM1) =    HIGH-VALUES
               MOVE  SRTPGM     (SRT1) TO   PGMPGM    (PGM1)
               MOVE  WSCSTF            TO   PGMSTF    (PGM1)
               MOVE  WSCSPC            TO   PGMSPC    (PGM1)
               MOVE  WSCSAL            TO   PGMSAL    (PGM1).

           IF      SRT1                <    +3
             SET   SRT1  DTL1          UP   BY  +1
             GO                        TO   710-COL-LOOP.
       710-CONT.
030702*    IF      DTLEDT              NOT  =  SPACES
030702     IF      DTLEDT              NOT  =  SPACES               AND
030702             DTLWRN                   =  SPACES
             ADD   +1                  TO   CTRSCHLERR
030702*      MOVE  '*ERROR*'           TO   DTLMSG.
030702       MOVE  '*ERROR*'           TO   DTLMSG
030702     ELSE
030702      IF     DTLEDT              NOT  =  SPACES               AND
030702             DTLWRN              NOT  =  SPACES
030702       MOVE  '*WARN**'           TO   DTLMSG.
       710-EXIT.
           EXIT.

      ******************************************************************
       990-HOUSEKEEPING.
           PERFORM 510-READ            THRU 510-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  'EW014 NO DATA TO PROCESS'  TO  LNM
             PERFORM 520-PRINT         THRU 520-EXIT
             GO                        TO   999-EOJ.
           PERFORM 630-3CHG            THRU 630-EXIT.
       990-EXIT.
           EXIT.

      ******************************************************************
       999-EOJ.
           CLOSE                       CRD-CARD      CRF-DISK
                                       PR1-PRNT      STH-DISK
                                       STS-DISK      SMP-DISK
                                       SDF-DISK.
       999-EXIT.
           EXIT.
