Für zusammengesetzte Variablen kann in Zuweisungen „Überschreiben“ oder „Erweitern“ vereinbart werden. „Überschreiben“ bedeutet dann, dass wie bei einfachen Variablen der alte Inhalt der betroffenen Elemente gelöscht wird, bevor ihnen ein neuer Inhalt zugewiesen wird. „Erweitern“ hat keinen Einfluss auf den Inhalt der bestehenden Elemente, sie werden nicht gelöscht.
Beim expliziten Löschen von Variableninhalten mit dem Kommando FREE-VARIABLE müssen die Auswirkungen auf zusammengesetzte Variablen und Variablenbehälter beachtet werden.
Grundsätzlich muss berücksichtigt werden, dass ein FREE-VARIABLE auf ein Array, auf eine Liste oder auf eine dynamische Struktur ein Löschen und Entfernen aller jeweiliger Elemente bewirkt. Dagegen bewirkt ein FREE-VARIABLE auf ein Element eines Arrays, einer Liste oder einer dynamischen Struktur lediglich das Löschen und Entfernen dieses einen Elements.
Mit dem Kommando DECLARE-CONSTANT initialisierte Variablen können mit FREE-VARIABLE nicht freigegeben werden.
Listen
Bezieht sich FREE-VARIABLE auf eine Liste, werden alle Listenelemente gelöscht und entfernt. Die Deklaration bleibt erhalten.
Bezieht sich FREE-VARIABLE auf ein Listenelement oder einen Bereich von Listenelementen, so wird nach dem Löschen und Entfernen die Liste neu durchnummeriert, da in Listen keine Lücken entstehen dürfen.
Arrays
Bezieht sich FREE-VARIABLE auf ein Array, werden alle Arrayelemente gelöscht und entfernt; die Deklaration bleibt erhalten.
Bezieht sich FREE-VARIABLE auf ein Arrayelement, wird dieses Element gelöscht und entfernt.
Sind die Arrayelemente selbst Strukturen, werden die Elemente dieser Strukturen gelöscht, die Strukturdeklaration bleibt jedoch erhalten. Für dynamische Strukturen bedeutet dies, dass die Deklaration TYPE = *STRUCTURE(*DYNAMIC) erhalten bleibt, für statische Strukturen, dass die Deklaration der Elemente erhalten bleibt (dasselbe gilt bei Listen).
Strukturen
Bezieht sich FREE-VARIABLE auf eine statische Struktur, werden die Elemente gelöscht, die Strukturdeklaration, das heißt die Deklaration der Elemente bleibt erhalten. Entsprechend gilt, dass der Inhalt des Elements gelöscht wird, wenn sich FREE-VARIABLE auf das Element einer statischen Struktur bezieht.
Bezieht sich FREE-VARIABLE auf eine dynamische Struktur, werden die Inhalte der Elemente dieser Struktur gelöscht und alle Elemente entfernt. Wenn sich FREE-VARIABLE auf ein Element einer dynamischen Struktur bezieht, wird dieses Element entfernt. Wenn das Strukturelement selbst eine zusammengesetzte Variable ist, werden auch alle Elemente dieser Variablen (und alle weiteren evtl. daran hängenden Unterelemente) entfernt.
Variablenbehälter
Variablen können mit anderen Variablen oder Jobvariablen als Variablenbehälter verknüpft sein. Ist bei dieser Verknüpfung der Variablenbehälter eine Variable, wird der Inhalt der Behältervariablen analog zur Angabe des Kommandos FREE-VARIABLE gelöscht.
Ist der Variablenbehälter eine Jobvariable, kann der Programmierer festlegen, ob die Jobvariable zusammen mit der Variablen bei der Angabe von FREE-VARIABLE gelöscht wird. „Jobvariable löschen“ bedeutet hier, dass der Katalogeintrag der Jobvariablen gelöscht wird.