Un sous-programme se distingue d'un programme ordinaire parce qu'il comporte des paramêtres qui sont déclarés dans la LINKAGE SECTION de la DATA DIVISION. L'ordre des paramètres est fixé par la clause USING de PROCEDURE DIVISION.
L'appel d'un sous-programme se fait par CALL. Par défaut c'est un passage par référence qui se produit, mais on peut demander un passage par valeur.
identification division.
program-id. somme.
data division.
working-storage section.
77 I pic 9(3).
77 S pic 9(6).
linkage section.
01 A pic 9(3).
01 B pic 9(3).
01 C pic 9(6).
procedure division using A, B, C.
principale section.
premiere section.
debut.
move 0 to S.
perform varying I from A by 1 until A > B
add I to S
end-perform.
move S to C.
exit program.
end program somme.
identification division.
program-id. essai.
data division.
working-storage section.
01 PREMIER pic 9(3).
01 SECOND pic 9(3).
01 TROISIEME pic 9(6).
procedure division.
premiere section.
debut.
display "Donnez deux nombres"
accept PREMIER, SECOND.
call "SOMME" using
by content PREMIER, SECOND,
by reference TROISIEME.
display TROISIEME.
stop run.
end program essai.
CANCEL sousprogramme
.