Wie bereits unter 4.2.3.2 erwähnt, ist ein dynamisches Feld ein Feld,
deren Feldweiten erst im Laufe eines Programmes festgelegt zu werden brauchen.
Das -Attribut hat also nur Sinn bei einer Variablen, die
zugleich (z.B. mit dem
-Attribut) die Eigenschaften eines Feldes
erhält.
Dabei muß die Anzahl der Dimensionen bereits bei der Deklaration vorgegeben werden.
Eine Deklaration könnte z.B. wie folgt aussehen:
Für ist durch das
-Attribut also die Dimension 2
vorgegeben, wohingegen für das dynamische Feld
3 Dimensionen mittels
direkter Angabe festgelegt wurden. Die Zuweisung, wieviel Elemente die einzelnen Dimensionen
besitzen sollen, braucht erst im Laufe des Programmes erfolgen. Dazu wid die
-Anweisung verwendet:
Der Parameter dient dazu, um die korrekte Abbarbeitung der Anweisung
zu überprüfen. Im Fehlerfall wird der angegebenen INTEGER-Variablen
(hier:
) ein Wert ungleich Null zugewiesen; bei korrekter
Ausführung dagegen gleich Null. Mit
zum Beispiel werden Elemente zugewiesen und
erhält in seiner ersten Dimension Elemente, wobei der
unterste Index bei beginnt, und in seiner zweiten und dritten je und .
Möchte man ein dynamisches Feld erneut zuweisen, muß es zuvor wieder freigegeben
werden. Dazu dient die -Anweisung:
Um den Status eines dynamischen Feldes zu erfragen existiert die vordefinierte Funktion ALLOCATED(feld), die TRUE als Rückgabewert liefert, falls das Feld definiert ist. Anderenfalls liefert sie den Wert FALSE.