003556 01 CTL-COUNTERS COMP-3.
003557 03 CTL1-CTRS.
003558 05 CTL1-AMT-CTRS.
003559 07 CTL1-DR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
003560 07 CTL1-CR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
003561 05 CTL1-NO-CTRS.
003562 07 CTL1-DR-NO PIC S9(5) OCCURS 100 TIMES.
003563 07 CTL1-CR-NO PIC S9(5) OCCURS 100 TIMES.
003564 03 CTL2-CTRS.
003700 05 CTL2-AMT-CTRS.
003800 07 CTL2-DR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
003850 07 CTL2-CR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
004000 05 CTL2-NO-CTRS.
004100 07 CTL2-DR-NO PIC S9(5) OCCURS 100 TIMES.
004150 07 CTL2-CR-NO PIC S9(5) OCCURS 100 TIMES.
004300 03 CTL3-CTRS.
004400 05 CTL3-AMT-CTRS.
004500 07 CTL3-DR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
004550 07 CTL3-CR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
004700 05 CTL3-NO-CTRS.
004800 07 CTL3-DR-NO PIC S9(5) OCCURS 100 TIMES.
004850 07 CTL3-CR-NO PIC S9(5) OCCURS 100 TIMES.
003557 03 CTL1-CTRS.
003558 05 CTL1-AMT-CTRS.
003559 07 CTL1-DR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
003560 07 CTL1-CR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
003561 05 CTL1-NO-CTRS.
003562 07 CTL1-DR-NO PIC S9(5) OCCURS 100 TIMES.
003563 07 CTL1-CR-NO PIC S9(5) OCCURS 100 TIMES.
003564 03 CTL2-CTRS.
003700 05 CTL2-AMT-CTRS.
003800 07 CTL2-DR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
003850 07 CTL2-CR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
004000 05 CTL2-NO-CTRS.
004100 07 CTL2-DR-NO PIC S9(5) OCCURS 100 TIMES.
004150 07 CTL2-CR-NO PIC S9(5) OCCURS 100 TIMES.
004300 03 CTL3-CTRS.
004400 05 CTL3-AMT-CTRS.
004500 07 CTL3-DR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
004550 07 CTL3-CR-AMT PIC S9(13)V99 OCCURS 100 TIMES.
004700 05 CTL3-NO-CTRS.
004800 07 CTL3-DR-NO PIC S9(5) OCCURS 100 TIMES.
004850 07 CTL3-CR-NO PIC S9(5) OCCURS 100 TIMES.
Of course, the program abended because the one of these fields did not have valid C-3 data. But there is an initialization paragraph to set these all to 0 at the beginning of the program. But it would loop through 105 times, and update occurance 101 through 105 even though the table is defined occurs 100 times. The abend did not occur when initializing the fields to 0. It happened later when trying to use these fields.
Here's my question for the audience - Maybe I'm wrong, I remember a day when if you were trying to reference an occurance of a COBOL table greater than the number of occurrences defined, you would get an 0C7 or other abend code. If so, when and why did this change? I saw another instance a couple of weeks ago where a subscript got set to 0 and the that worked as well. Just curious.
Thanks,
Douglas