Fortran: Fortran 95: Standardfunktionen: Feldfunktionen
Konstruktion und Umgestaltung von Feldern
[Bearbeiten]Funktion | Beschreibung | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
arr = reshape ( arr1, arr2, [arr3, arr4] ) | Ein gegebenes Feld in ein Feld anderer Form umwandeln.
Der Rückgabewert ist ein Feld, dessen Feldelemente vom gleichen Datentyp und kind-Wert sind wie bei arr1. Die genaue Form dieses Feldes wird durch die Parameter arr2 bestimmt.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
arr = merge ( arr1, arr2, arr3 ) | Fusioniert die Felder arr1 und arr2 entsprechend der Maske arr3 zu einem neuen Feld.
Werte in arr3:
Beispiel:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
arr = pack ( arr1, arr2 [, arr3] ) | Packt ein Feld arr1 unter Beachtung der Werte einer Maske arr2 in einen Vektor. Die Feldelemente der Maske arr2 müssen logischen Datentyp aufweisen. Optional kann ein Vektor arr3 angegeben werden. Die in der Maske arr2 als .true. gekennzeichneten Feldwerte aus arr1 werden mit diesem Vektor verschmolzen. Das Ergebnis wird zurückgegeben. arr3 soll mindestens soviele Feldelemente aufweisen, wie .true. -Werte in arr2 sind.
Beispiel:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
arr = unpack ( arr1, arr2 , arr3 ) | Entpackt den Vektor arr1 unter Beachtung der Werte einer Maske arr2 in ein Feld. Das Ergebnis wird zurückgegeben und weist die Form von arr2 auf, der Datentyp ist der gleiche wie bei arr1.
Beispiel:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
arr = spread ( arr, i1, i2 ) | Vervielfältigung der Feldinhalte in eine zusätzliche Felddimension (i1 ... dim, i2 ... ncopies).
Beispiel:
|
Abfragen von Feldstatus, Felddaten und Feldmetadaten
[Bearbeiten]Funktion | Beschreibung |
---|---|
l = allocated ( arr ) | Prüft den Allokationsstatus eines Feldes.
Beispiel:
Ist Speicherplatz für das abgefragte Feld alloziert, so ist der Rückgabewert |
i = lbound ( arr [,i] ) | Untere Feldgrenzen. i gibt optional die Felddimension vor, die abgefragt werden soll.
Beispiel:
|
i = ubound ( arr [,i] ) . | Obere Feldgrenzen. i gibt optional die Felddimension vor, die abgefragt werden soll.
Beispiel:
|
l = all ( arr [, i] ) | Prüft, ob alle Feldelemente .true. sind. Das erste Argument steht für die Abfragemaske (bzw. das Feld mit den Feldelementen vom Datentyp logical ), das optionale zweite für die Dimension.
Beispiele:
Der Rückgabewert kann ein Skalar oder ein Feld sein. |
l = any ( arr [, i] ) | Prüft, ob irgend ein Feldelemente .true. ist. Das erste Argument steht für die Abfragemaske (bzw. das Feld mit den Feldelementen vom Datentyp logical ), das optionale zweite für die Dimension.
Beispiele:
Der Rückgabewert kann ein Skalar oder ein Feld sein. |
i = count ( arr [, i] ) | Zählt die .true. -Elemente in einem Feld. Das erste Argument steht für die Abfragemaske (bzw. das Feld mit den Feldelementen vom Datentyp logical ), das optionale zweite für die Dimension.
Beispiel:
Der Rückgabewert kann ein Skalar oder ein Feld sein. |
i = size ( arr [, i] ) | Anzahl der Elemente in einem Feld oder einer spezifizierten Dimension. i gibt optional die Felddimension vor, die abgefragt werden soll.
Beispiel:
|
arr = shape ( arr ) | Form der Feldes arr.
Beispiel:
|
ir = minval ( arr [, i] [, l] ) | Kleinster Wert im Feld (i ... dim, l ... mask). Die Feldelemente müssen vom Datentyp real oder integer sein.
|
ir = maxval ( arr [, i] [, l] ) | Größter Wert im Feld (i ... dim, l ... mask). Die Feldelemente müssen vom Datentyp real oder integer sein.
|
i = minloc ( arr [, i] [, l] ) | Position des kleinsten Wertes im Feld (i ... dim, l ... mask). Die Feldelemente müssen vom Datentyp real oder integer sein.
|
i = maxloc ( arr [, i] [, l] ) | Position des größten Wertes im Feld (i ... dim, l ... mask). Die Feldelemente müssen vom Datentyp real oder integer sein.
|
Funktionen für Vektoren und Matrizen
[Bearbeiten]Funktion | Beschreibung |
---|---|
arr = dot_product ( arr1, arr2 ) | Bildet das Skalarprodukt der beiden Vektoren arr1 und arr2. arr1 und arr2 können Vektoren mit Feldelementen von numerischen oder logischen Datentyp sein.
|
arr = matmul ( arr1, arr2 ) | Matrizenmultiplikation. arr1 und arr2 können Vektoren mit Feldelementen von numerischen oder logischen Datentyp sein. |
arr = transpose ( arr1 ) | Transponierte Matrix arr1T. |
Sonstige
[Bearbeiten]Funktion | Beschreibung | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
arr = cshift ( arr, i1 [, i2] ) | Circular shift (i1: shift, i2: dim).
Beispiel:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
arr = eoshift ( arr1, i1 [, zlc, i2] ) | End-off shift (i1 ... shift, zlc ... boundary, i2 ... dim)
Beispiel:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
any = sum ( arr [, i] [, l] ) | Summe der Feldelemente, bzw. Summe der Feldelemente bei denen die Maskenwerte .true. sind (i ... dim, l ...mask)
Beispiel:
Der Rückgabewert kann ein Skalar oder ein Feld sein. Datentyp und kind-Wert sind wie bei arr. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
any = product ( arr [, i] [, l] ) | Produkt der Feldelemente, bzw. Produkt der Feldelemente bei denen die Maskenwerte .true. sind (i ... dim, l ...mask)
Beispiel:
Der Rückgabewert kann ein Skalar oder ein Feld sein. Datentyp und kind-Wert sind wie bei arr. |