>>DEFINE CONSTANT log-level AS 2 
      *> RUN WITH:
      *>   dd_optfdein=src/data/optfraw dd_optfdeou=src/data/optfdsort /
      *>       optfde01
      *> JCL equivalent is src/jcl/optfde01.jcl (I hope)
      
       IDENTIFICATION DIVISION. 
       PROGRAM-ID. optfde01. 
      
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT pgm-input ASSIGN TO "dd_input"
              ORGANIZATION IS LINE SEQUENTIAL.
           SELECT pgm-output ASSIGN TO "dd_output"
              ORGANIZATION IS LINE SEQUENTIAL.
      * *| Logging uses SYSPRING |*
      *    SELECT log-output ASSIGN TO "dd_sysprint"
      *       ORGANIZATION IS LINE SEQUENTIAL.
      
       DATA DIVISION.
       FILE SECTION.
       FD pgm-input.
           01 input-record PIC X(118).
       FD pgm-output.
           01 output-record PIC X(118).
      *FD log-output.
      *    01 output-record PIC X(118).
      
       WORKING-STORAGE SECTION.
       01  file-status         PICTURE x  VALUE space.
           88 END-OF-FILE             VALUE high-value
              WHEN SET TO false is          low-value.
       01 working-data.
          05 pgm-name      pic x(9)   VALUE "optfde01".
          05 old-date      pic 9(8)   VALUE ZERO.
      *> Gratuitous redefines for cbl-gdb demo
          05 old-dat1 REDEFINES old-date.
             10 datmo      PIC 9(2).
             10 datda      PIC 9(2).
             10 datyr      PIC 9(4).
          05 new-date      pic 9(8)   VALUE ZERO.
      *> Gratuitous redefines for cbl-gdb demo
          05 new-dat1 REDEFINES new-date.
             10 datyr      PIC 9(4).
             10 datmo      PIC 9(2).
             10 datda      PIC 9(2).
          05 my-counters.
             10 FILLER       PIC X(18) VALUE "Records modified: ".
             10 custmas-ctr  PIC 9(5) VALUE ZERO.
      
       LOCAL-STORAGE SECTION.
         copy ordent.
             
      *> ***************************************************************
       PROCEDURE DIVISION.
       main section.   
       00-main. 
          DISPLAY "Program name: " pgm-name.

          open input pgm-input.
          open output pgm-output.
          INITIALIZE working-data.
          PERFORM 01-read.
          PERFORM until end-of-file
             PERFORM 02-process 
             PERFORM 01-read
             END-PERFORM.
          DISPLAY my-counters.
          MOVE 0 to RETURN-CODE.
          PERFORM 59-close. 
          goback.
      
       support section.
       01-read.
          READ pgm-input 
             AT END SET END-OF-FILE TO TRUE.
      
       02-process.
          MOVE input-record TO oeit.
          PERFORM 50-fix-date.
          MOVE oeit TO output-record.
          WRITE output-record.
          ADD 1 TO custmas-ctr.
      
       50-fix-date.  *> Gratuitous sub paragraph
          MOVE oeit-orddate IN oeit to old-date.
          STRING old-date(5:4) old-date(1:4)
             INTO new-date.
          MOVE new-date TO oeit-orddate in oeit.

       59-close. 
          CLOSE pgm-input.
          CLOSE pgm-output.

       END PROGRAM optfde01.