Natürlich geht auch das !
Jedes Modul in eine eigene Quelle.

PROCEDURE DIVISION [using Parm1 parm2 ...] [returning Value].

Durch das "Returning" wird die Funktion deklariert.
Der Aufruf ist in COBOL leider etwas anders, da es keine Funktionsdeklaration so gibt:

CALL "Program" [using Parm1 Parm2 ...] [returning Value].

Auf gleichem Wege sind übrigens alle C-Funktionen aus COBOL aufrufbar.

Durch

IDENTIFICAION DIVISION.
PROGRAM-ID. MYPROG is recursive.

kann zum 1. Mal auch COBOL rekursiv aufgerufen werden !!!

Man Kann sowohl Variablen exportieren als auch auf exportierte zugreifen.
usw.
usw.

Nachzulesen in:
http://publib.boulder.ibm.com/iserie...s/c0925403.pdf
http://publib.boulder.ibm.com/iserie...s/c0925393.pdf
http://publib.boulder.ibm.com/iserie...s/x0913173.pdf