Le branchement du traitement depuis le programme principal COBOL vers les sous-programmes est réalisé par l’instruction CALL.
CALL 'Nom du sous programme' USING nom de donnée1 …
CALL 'Nom du point d'entrée' USING nom de donnée1 …
‘Nom du sous programme’ : désigne le nom du sous-programme appelé, nom doit être de maximum 8 caractères de long.
‘Nom du point d’entrée’ : désigne une adresse d’entrée dans un sous-programme, son nom doit être différent de celui du sous-programme et doit correspondre à un ENTRY.
Exemple : CALL "SOUSPROG" USING ZON1 ZON2.
CALL "ENTREE" USING ZON1
LE SOUS-PROGRAMME COBOL
Le sous-programme en COBOL est construit comme tout programme COBOL avec ses 4 Divisions.
La différence avec le programme principal réside dans l’introduction de clauses USING et de la LINKAGE SECTION nécessaire à l’établissement d’une liaison entre les variables du programme principal et du sous-programme.
Cette correspondance est établie au moyen du USING (sous-programme) et du CALL (programme).
La clause USING dans le sous-programme :
PROCEDURE DIVISION USING nom-de-donnée-1 nom-de-donnée-2 …
Au moment de l’appel du sous-programme la correspondance entre les nom-de-donnée-1, nom-dedonnée-2 … est établie et le sous-programme démarre en utilisant les valeurs transférées par le programme principal.
Si l’entièreté du sous-programme ne doit pas être utilisée, nous disposons d’une option ENTRY pour indiquer au sous-programme l’endroit ou le sous-programme doit débuter.
Format : ENTRY "nom-symbolique" USING nom-donnée-1 nom-donnée-2
…
Le même système opératoire sera activé et les nom-donnée-1 nom-donnée-2… seront mis en correspondance.