Le programme principal et le sous-programme COBOL étant compilés séparément, il est nécessaire que la description des zones de données communes apparaisse dans les DATA DIVISION respectives des programmes.
Mais il est exclu de réserver 2 fois ces zones en mémoire centrale, c’est pourquoi une LINKAGE SECTION a été créée en DATA DIVISION.
Une zone de données commune “TRANSFERT” sera donc décrite normalement dans le programme principal soit en FILE SECTION soit en WORKING-STORAGE SECTION, et sa correspondance dans le sous-programme en LINKAGE SECTION.
L’ordre d’appel de sous-programmes CALL, aura donc pour effet d’attribuer les mêmes adresses mémoire à ces deux zones de données.
Remarque : rien n’oblige le programmeur à utiliser des descriptions de zones rigoureusement identiques entre le programme principal et le sous-programme. Les noms ne doivent pas être les mêmes ainsi que les descriptions de données.
La terminaison d’un sous-programme :
Dans un sous-programme, la terminaison est réalisée par GOBACK.