LINKAGE SECTION

In dieser Section, deren Aufbau dem der WORKING-STORAGE SECTION entspricht, werden Rechenfelder, Hilfsfelder und Satzstrukturen beschrieben, die von einem Hauptprogramm an das Unterprogramm übergeben wurden - also gemeinsam von beiden Programmen genutzt werden. Sie kommt dabei lediglich im 'gerufenen' Programm vor.
Es werden nur für den Fall, daß in der CALL-Anweisung im 'rufenden' Programm der BY CONTENT-Zusatz verwendet wurde, auch entsprechende Datenfelder im 'gerufenen' Programm erzeugt. Bei Abschluß des Unterprogramms sind also in diesem Fall die, hinter USING im 'rufenden' Programm aufgeführten Datenfeldinhalte nicht verändert worden.
Liegt hingegen die Standardeinstellung BY REFERENCE vor, so sind die hier dargestellten Datenfelder nur Dummys für die tatsächlichen, zum 'rufenden' Programm gehörenden Felder, auf die verwiesen wird. Die in der LINKAGE SECTION definierten Datenfelder beanspruchen folglich auch keinen Speicherplatz.
Auf den Stufennummern 01-49 sowie 77 darf die VALUE-Klausel in der LINKAGE SECTION nicht verwendet werden.
Die Datenstrukturen in der DATA DIVISION des 'rufenden' und der LINKAGE SECTION des 'gerufenen' Programms müssen übereinstimmen.

Beispiel:
'rufendes' Programm:
IDENTIFICATION DIVISION.
PROGRAMM-ID. Haupt.
	:
DATA DIVISION.
01 Wert-1 PIC X(20).
01 Gruppe-1.
   05 Feld-A PIC X(10).
   05 Feld-B PIC X(10).
	:
PROCEDURE DIVISION.
	:
     CALL "Unterprgr" USING Wert-1, Gruppe-1.
	:

'gerufenes' Programm:
IDENTIFICATION DIVISION.
PROGRAMM-ID. Unterprgr.
	:
DATA DIVISION.
LINKAGE SECTION.
01 Feld-1 PIC X(20).
01 Beide.
   05 Name-A PIC X(10).
   05 Name-B PIC X(10).
	:
PROCEDURE DIVISION USING Feld-1, Beide.
	:


...