A COBOL program can initiate separate programs as processes, but cannot initiate internal sections, paragraphs, or nested programs.
Separate object code files are initiated by statements that have the following general form:
<verb> <task variable> WITH <section name> [USING <parameter list>]
The verb in this statement can be CALL, which initiates a synchronous, dependent process; PROCESS, which initiates an asynchronous, dependent processor; or RUN, which initiates an independent process. EXECUTE is a synonym for RUN.
The task variable in this statement is a data item declared with a usage of TASK, CONTROL-POINT, or CP.
The section name in this statement must have been previously defined in the DECLARATIVES portion of the PROCEDURE DIVISION. The section name definition in the DECLARATIVES must be followed by a USE EXTERNAL statement.
The COBOL program must also associate an object code file title with a <section name> by one of the following methods:
-
Using a mnemonic name in the SPECIAL-NAMES paragraph. This is the preferred method.
-
Using a MOVE statement to assign the object code file title to the identifier specified in the USE EXTERNAL statement in the DECLARATIVES.
-
Assigning the NAME task attribute to the task variable before task initiation. The title assigned must be a string enclosed in quotes and terminated with a period.
The USING <parameter list> clause passes parameters to the initiated program. If no parameters are to be passed, you can omit this clause.

