COBOL Manual for TNS/E Programs (H06.08+, J06.03+)
Example 79 Called Program That Calls Another Program
Main Program (source $DATA.MYSUBVOL.MAINSRC, object $DATA.MYSUBVOL.MAINOBJ)
IDENTIFICATION DIVISION.
PROGRAM-ID. COBOLMAIN.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. HP System.
OBJECT-COMPUTER. HP System.
SPECIAL-NAMES.
FILE "$DATA.MYSUBVOL.SUB1OBJ" IS SUB1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DATA-OUT PIC X(80) VALUE "I'M THE MAIN AND I'M ALIVE".
77 PARM1 PIC 99 VALUE 10.
77 PARM2 PIC XX VALUE "AB".
01 MAIN-TABLE.
05 TABLE-DATA PIC X
OCCURS 10 TIMES
INDEXED BY TABLE-INDEX.
01 SAVE-TABLE-INDEX PIC 999.
PROCEDURE DIVISION.
START-PROGRAM.
DISPLAY DATA-OUT
SET TABLE-INDEX TO 5
SET SAVE-TABLE-INDEX TO TABLE-INDEX
DISPLAY "SAVE-TABLE-INDEX = " SAVE-TABLE-INDEX
CALL COBSUB1 OF SUB1 USING PARM1
PARM2
MAIN-TABLE
SAVE-TABLE-INDEX
END-CALL
DISPLAY "PROGRAM END"
STOP RUN.
Level 1 Subprogram (source $DATA.MYSUBVOL.SUB1SRC, object $DATA.MYSUBVOL.SUB1OBJ)
IDENTIFICATION DIVISION.
PROGRAM-ID. COBSUB1.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. HP System.
OBJECT-COMPUTER. HP System.
SPECIAL-NAMES.
FILE "$DATA.MYSUBVOL.SUB2OBJ" IS SUB2.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DATA-OUT PIC X(80) VALUE "I'M COBSUB1 ALIVE AND WELL".
LINKAGE SECTION.
01 PARM1 PIC 99.
01 PARM2 PIC XX.
01 SUBPROGRAM-TABLE.
05 SUB-TABLE-ENTRY, PIC X
OCCURS 10 TIMES INDEXED BY SUB-INDEX.
01 SAVE-SUB-INDEX PIC 999.
PROCEDURE DIVISION USING PARM1,
PARM2,
SUBPROGRAM-TABLE,
SAVE-SUB-INDEX.
START-PROGRAM.
SET SUB-INDEX TO SAVE-SUB-INDEX
DISPLAY DATA-OUT
DISPLAY "SAVE-SUB-INDEX = " SAVE-SUB-INDEX
DISPLAY PARM1
DISPLAY PARM2
CALL "COBSUB2" OF SUB2 USING PARM1, PARM2
DISPLAY "I'M COBSUB1 AND I'M RETURNING TO MAIN NOW".
Level 2 Subprogram (source $DATA.MYSUBVOL.SUB2SRC, object $DATA.MYSUBVOL.SUB2OBJ)
300 Procedure Division Verbs










