COBOL - 10 Alternate Index

      *ALTERNATE INDEX FOR KSDS*
       IDENTIFICATION DIVISION.
       PROGRAM-ID.    ALTRINDX.
       AUTHOR.        SRIBLOG.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
                 SELECT KSDS ASSIGN TO DD1
                 ORGANIZATION IS INDEXED
                 ACCESS IS DYNAMIC
                 FILE STATUS IS WS-KSDS
                 RECORD KEY KSDS-REG
                 ALTERNATE RECORD KEY KSDS-STATE WITH DUPLICATES.
       DATA DIVISION.
       FILE SECTION.
       FD KSDS.
       01 KSDS-REC.
          05 KSDS-REG                           PIC 9(4).
          05 FILLER                             PIC X.
          05 KSDS-NAME                          PIC X(17).
          05 FILLER                             PIC X(2).
          05 KSDS-COUNTRY                       PIC X(5).
          05 FILLER                             PIC X.
          05 KSDS-STATE                         PIC X(13).
          05 FILLER                             PIC X(2).
          05 KSDS-SALARY                        PIC 9(4).
          05 FILLER                             PIC X(31).
       WORKING-STORAGE SECTION.
          01 VARIABLES.
             05 WS-KSDS                         PIC 9(2).
                88 SUCCESS-KSDS                 VALUE 00.
                88 EOF-KSDS                     VALUE 10.
                88 KNF-KSDS                     VALUE 23.
              05 STARTING               PIC X(13) VALUE 'KGIR'.
       PROCEDURE DIVISION.
       0000-MAIN-PARA.
                PERFORM 1000-INITIALIZATION-PARA
                THRU    1000-INITIALIZATION-PARA-EXIT
                PERFORM 2000-PROCESS-PARA
                THRU    2000-PROCESS-PARA-EXIT
                PERFORM 9000-TERMINATION-PARA
                THRU    9000-TERMINATION-PARA-EXIT
           .
       0000-MAIN-PARA-EXIT.
                EXIT
           .
       1000-INITIALIZATION-PARA.
           .
       1000-INITIALIZATION-PARA-EXIT.
                EXIT
           .
       2000-PROCESS-PARA.
               PERFORM 2100-OPEN-PARA
               THRU    2100-OPEN-PARA-EXIT
               PERFORM 2100-READ-PARA
               THRU    2100-READ-PARA-EXIT
               PERFORM 2100-CLOSE-PARA
               THRU    2100-CLOSE-PARA-EXIT
           .
       2000-PROCESS-PARA-EXIT.
               EXIT
           .
       2100-OPEN-PARA.
               OPEN INPUT KSDS
               EVALUATE TRUE
               WHEN SUCCESS-KSDS
               CONTINUE
               WHEN OTHER
               DISPLAY 'OPEN ERROR' WS-KSDS
               PERFORM 9000-TERMINATION-PARA
               THRU  9000-TERMINATION-PARA-EXIT
               END-EVALUATE
           .
       2100-OPEN-PARA-EXIT.
               EXIT
           .
       2100-READ-PARA.
               MOVE STARTING TO KSDS-STATE
               DISPLAY KSDS-STATE
               START KSDS KEY IS EQUAL TO KSDS-STATE
               EVALUATE TRUE
               WHEN SUCCESS-KSDS
                   PERFORM 2200-WRITE-PARA
                   THRU 2200-WRITE-PARA-EXIT
                   UNTIL  EOF-KSDS
               WHEN KNF-KSDS
                  DISPLAY 'KNF'
               WHEN OTHER
                  DISPLAY 'WRITE ERROR' WS-KSDS
               END-EVALUATE
           .
       2100-READ-PARA-EXIT.
               EXIT
           .
       2100-CLOSE-PARA.
               CLOSE KSDS
           .
       2100-CLOSE-PARA-EXIT.
               EXIT
           .
       9000-TERMINATION-PARA.
               STOP RUN
           .
       9000-TERMINATION-PARA-EXIT.
               EXIT
           .
       2200-WRITE-PARA.
              READ KSDS NEXT RECORD
              IF KSDS-STATE=STARTING THEN
              DISPLAY KSDS-REC
              ELSE
              PERFORM 9000-TERMINATION-PARA
              THRU 9000-TERMINATION-PARA-EXIT
           .
       2200-WRITE-PARA-EXIT.
              EXIT
           .