next up previous contents
Nächste Seite: Speicherung von Feldern Aufwärts: Vereinbarungsanweisungen Vorherige Seite: Explizite Typvereinbarungen   Inhalt


Felder

Ein Feld (indizierte Variable, Array) ist, wie in Abschnitt 4.2.3.2 bereits angesprochen, eine spezielle Datenstruktur, bei der alle Elemente der Struktur durch einen einzigen symbolischen Namen gekennzeichnet sind. Ein einzelnes Feldelement wird durch Angabe dieses Namens und eines Indexes angesprochen. Alle Feldelemente sind von gleichen Datentyp wie das Feld. Er wird wie bei Konstanten und Variablen über den Namen bestimmt. Feldname und Felddimension müssen in einer Typ- oder COMMON-Anweisung entweder direkt, mit Hilfe des DIMENSION-Attributes oder der DIMENSION-Anweisung vereinbart werden. Jedes Feld darf nur einmal in jeder Programmeinheit vereinbart werden.

Die Dimensionierung von Feldern in einer expliziten Typvereinbarung hat die allgemeine Form


				$<typ>$

bzw.
$<typ>$

Darin ist arrayj der Name des j-ten Feldes und $dj_i$ gibt die Grenzen der i-ten Dimension des j-ten Feldes an, die in der Form $l_i :u_i$ geschrieben werden kann. Dabei ist $u_i$ die obere Grenze der i-ten Dimension und $l_i$ ist deren untere Grenze. Wird $l_i$ weggelassen, gilt $l_i = 1$.

Neben den in 4.2.3.2 bespielhaft gezeigten Dimensionsvereinbarungen sind auch andere ganzzahlige konstante Ausdrücke4.1 für die Indexgrenzen erlaubt, z.B. (siehe auch Abschnitt 4.2.2):


				INTEGER, PARAMETER ::  N = 11, N2 = 2*N, N5P1 = 5*N + 1&

REAL :: XFELD(N2, (N+1)/2), YFELD(N2+3:N5P1)&

Zur flexiblen Verwendung von Unterprogrammen können übergebene Felder dort auch mit variablen Dimensionen deklariert werden, sofern die Dimension als Variable übergeben wurde. Man achte dabei darauf, daß Felder in allen Unterprogrammen stets gleich dimensioniert sind, da sonst insbesondere bei mehrdimensionalen Feldern schwer zu findende Fehler durch Zugriffe auf falsche Speicherplätze auftreten können (siehe Abschnitt 4.2.21 ,,Kommunikation zwischen Programmeinheiten``).


next up previous contents
Nächste Seite: Speicherung von Feldern Aufwärts: Vereinbarungsanweisungen Vorherige Seite: Explizite Typvereinbarungen   Inhalt
Lars Tornow 2003-03-31