Fortran - Eigenfunktionen
Intrinsische Funktionen sind einige allgemeine und wichtige Funktionen, die als Teil der Fortran-Sprache bereitgestellt werden. Einige dieser Funktionen haben wir bereits in den Kapiteln Arrays, Characters und String besprochen.
Eigenfunktionen können wie folgt kategorisiert werden:
- Numerische Funktionen
- Mathematische Funktionen
- Numerische Abfragefunktionen
- Gleitkomma-Manipulationsfunktionen
- Bitmanipulationsfunktionen
- Zeichenfunktionen
- Freundliche Funktionen
- Logische Funktionen
- Array-Funktionen.
Wir haben die Array-Funktionen im Kapitel Arrays besprochen. Im folgenden Abschnitt finden Sie kurze Beschreibungen aller dieser Funktionen aus anderen Kategorien.
In der Spalte Funktionsname
- A steht für jede Art von numerischer Variable
- R steht für eine reelle oder ganzzahlige Variable
- X und Y repräsentieren reale Variablen
- Z steht für eine komplexe Variable
- W steht für eine reelle oder komplexe Variable
Numerische Funktionen
Sr.Nr. | Bedienungsanleitung |
---|---|
1 | ABS (A) Es gibt den absoluten Wert von A zurück |
2 | AIMAG (Z) Es gibt den Imaginärteil einer komplexen Zahl Z zurück |
3 | AINT (A [, KIND]) Es schneidet einen Bruchteil von A gegen Null ab und gibt eine reelle ganze Zahl zurück. |
4 | ANINT (A [, KIND]) Es wird ein reeller Wert zurückgegeben, die nächste Ganzzahl oder ganze Zahl. |
5 | CEILING (A [, KIND]) Es wird die kleinste Ganzzahl zurückgegeben, die größer oder gleich der Zahl A ist. |
6 | CMPLX (X [, Y, KIND]) Es konvertiert die reellen Variablen X und Y in eine komplexe Zahl X + iY; Wenn Y fehlt, wird 0 verwendet. |
7 | CONJG (Z) Es gibt das komplexe Konjugat einer beliebigen komplexen Zahl Z zurück. |
8 | DBLE (A) Es wandelt A in eine reelle Zahl mit doppelter Genauigkeit um. |
9 | DIM (X, Y) Es gibt die positive Differenz von X und Y zurück. |
10 | DPROD (X, Y) Es gibt das reale Produkt mit doppelter Genauigkeit von X und Y zurück. |
11 | FLOOR (A [, KIND]) Es liefert die größte ganze Zahl kleiner oder gleich der Zahl A. |
12 | INT (A [, KIND]) Es konvertiert eine Zahl (reell oder ganzzahlig) in eine Ganzzahl und schneidet den Realteil gegen Null ab. |
13 | MAX (A1, A2 [, A3,...]) Es gibt den Maximalwert der Argumente zurück, die alle vom gleichen Typ sind. |
14 | MIN (A1, A2 [, A3,...]) Es gibt den Mindestwert der Argumente zurück, die alle vom gleichen Typ sind. |
15 | MOD (A, P) Es gibt den Rest von A bei Division durch P zurück, wobei beide Argumente vom gleichen Typ sind (A-INT (A / P) * P). |
16 | MODULO (A, P) Es gibt A modulo P zurück: (A-FLOOR (A / P) * P) |
17 | NINT (A [, KIND]) Es gibt die nächste Ganzzahl der Zahl A zurück |
18 | REAL (A [, KIND]) Es wird in echten Typ konvertiert |
19 | SIGN (A, B) Es gibt den absoluten Wert von A multipliziert mit dem Vorzeichen von P zurück. Grundsätzlich überträgt es das Vorzeichen von B auf A. |
Beispiel
program numericFunctions
implicit none
! define constants
! define variables
real :: a, b
complex :: z
! values for a, b
a = 15.2345
b = -20.7689
write(*,*) 'abs(a): ',abs(a),' abs(b): ',abs(b)
write(*,*) 'aint(a): ',aint(a),' aint(b): ',aint(b)
write(*,*) 'ceiling(a): ',ceiling(a),' ceiling(b): ',ceiling(b)
write(*,*) 'floor(a): ',floor(a),' floor(b): ',floor(b)
z = cmplx(a, b)
write(*,*) 'z: ',z
end program numericFunctions
Wenn Sie das obige Programm kompilieren und ausführen, wird das folgende Ergebnis erzielt:
abs(a): 15.2344999 abs(b): 20.7688999
aint(a): 15.0000000 aint(b): -20.0000000
ceiling(a): 16 ceiling(b): -20
floor(a): 15 floor(b): -21
z: (15.2344999, -20.7688999)
Mathematische Funktionen
Sr.Nr. | Bedienungsanleitung |
---|---|
1 | ACOS (X) Es gibt den inversen Kosinus im Bereich (0, π) im Bogenmaß zurück. |
2 | ASIN (X) Es gibt den inversen Sinus im Bereich (-π / 2, π / 2) im Bogenmaß zurück. |
3 | ATAN (X) Es gibt die inverse Tangente im Bereich (-π / 2, π / 2) im Bogenmaß zurück. |
4 | ATAN2 (Y, X) Es gibt die inverse Tangente im Bereich (-π, π) im Bogenmaß zurück. |
5 | COS (X) Es gibt den Argumentationskosinus im Bogenmaß zurück. |
6 | COSH (X) Es gibt den hyperbolischen Argumentationskosinus im Bogenmaß zurück. |
7 | EXP (X) Es gibt den Exponentialwert von X zurück. |
8 | LOG (X) Es gibt den natürlichen logarithmischen Wert von X zurück. |
9 | LOG10 (X) Es gibt den allgemeinen logarithmischen Wert (Basis 10) von X zurück. |
10 | SIN (X) Es gibt den Sinus der Argumentation im Bogenmaß zurück. |
11 | SINH (X) Es gibt den hyperbolischen Argumentationssinus im Bogenmaß zurück. |
12 | SQRT (X) Es gibt die Quadratwurzel von X zurück. |
13 | TAN (X) Es gibt die Tangente des Arguments im Bogenmaß zurück. |
14 | TANH (X) Es gibt den hyperbolischen Tangens der Argumentation im Bogenmaß zurück. |
Beispiel
Das folgende Programm berechnet die horizontale und vertikale Position x bzw. y eines Projektils nach einer Zeit t -
Wobei x = ut cos a und y = ut sin a - g t2 / 2
program projectileMotion
implicit none
! define constants
real, parameter :: g = 9.8
real, parameter :: pi = 3.1415927
!define variables
real :: a, t, u, x, y
!values for a, t, and u
a = 45.0
t = 20.0
u = 10.0
! convert angle to radians
a = a * pi / 180.0
x = u * cos(a) * t
y = u * sin(a) * t - 0.5 * g * t * t
write(*,*) 'x: ',x,' y: ',y
end program projectileMotion
Wenn Sie das obige Programm kompilieren und ausführen, wird das folgende Ergebnis erzielt:
x: 141.421356 y: -1818.57861
Numerische Abfragefunktionen
Diese Funktionen arbeiten mit einem bestimmten Modell der Ganzzahl- und Gleitkomma-Arithmetik. Die Funktionen geben Eigenschaften von Zahlen der gleichen Art wie die Variable X zurück, die real und in einigen Fällen ganzzahlig sein können.
Sr.Nr. | Bedienungsanleitung |
---|---|
1 | DIGITS (X) Es gibt die Anzahl der signifikanten Stellen des Modells zurück. |
2 | EPSILON (X) Es gibt die Zahl zurück, die im Vergleich zu eins fast vernachlässigbar ist. Mit anderen Worten, es wird der kleinste Wert zurückgegeben, sodass REAL (1.0, KIND (X)) + EPSILON (X) nicht gleich REAL (1.0, KIND (X)) ist. |
3 | HUGE (X) Es gibt die größte Anzahl des Modells zurück |
4 | MAXEXPONENT (X) Es gibt den maximalen Exponenten des Modells zurück |
5 | MINEXPONENT (X) Es gibt den minimalen Exponenten des Modells zurück |
6 | PRECISION (X) Es gibt die Dezimalgenauigkeit zurück |
7 | RADIX (X) Es gibt die Basis des Modells zurück |
8 | RANGE (X) Es gibt den dezimalen Exponentenbereich zurück |
9 | TINY (X) Es gibt die kleinste positive Zahl des Modells zurück |
Gleitkomma-Manipulationsfunktionen
Sr.Nr. | Bedienungsanleitung |
---|---|
1 | EXPONENT (X) Es gibt den Exponententeil einer Modellnummer zurück |
2 | FRACTION (X) Es gibt den Bruchteil einer Zahl zurück |
3 | NEAREST (X, S) Es gibt die nächstgelegene unterschiedliche Prozessornummer in der angegebenen Richtung zurück |
4 | RRSPACING (X) Es gibt den Kehrwert des relativen Abstands der Modellnummern in der Nähe der angegebenen Nummer zurück |
5 | SCALE (X, I) Es multipliziert ein Real mit seiner Basis mit einer ganzzahligen Potenz |
6 | SET_EXPONENT (X, I) es gibt den Exponententeil einer Zahl zurück |
7 | SPACING (X) Es gibt den absoluten Abstand der Modellnummern in der Nähe der angegebenen Nummer zurück |
Bitmanipulationsfunktionen
Sr.Nr. | Bedienungsanleitung |
---|---|
1 | BIT_SIZE (I) Es gibt die Anzahl der Bits des Modells zurück |
2 | BTEST (I, POS) Bittest |
3 | IAND (I, J) Logisches UND |
4 | IBCLR (I, POS) Klares Bit |
5 | IBITS (I, POS, LEN) Bitextraktion |
6 | IBSET (I, POS) Bit setzen |
7 | IEOR (I, J) Exklusiv oder |
8 | IOR (I, J) Inklusive ODER |
9 | ISHFT (I, SHIFT) Logische Verschiebung |
10 | ISHFTC (I, SHIFT [, SIZE]) Kreisverschiebung |
11 | NOT (I) Logische Ergänzung |
Zeichenfunktionen
Sr.Nr. | Bedienungsanleitung |
---|---|
1 | ACHAR (I) Es gibt das i-te Zeichen in der ASCII-Sortierfolge zurück. |
2 | ADJUSTL (STRING) Die verbleibende Zeichenfolge wird angepasst, indem führende Leerzeichen entfernt und nachfolgende Leerzeichen eingefügt werden |
3 | ADJUSTR (STRING) Es passt die Zeichenfolge richtig an, indem nachfolgende Leerzeichen entfernt und führende Leerzeichen eingefügt werden. |
4 | CHAR (I [, KIND]) Es gibt das i-te Zeichen in der maschinenspezifischen Sortierfolge zurück |
5 | IACHAR (C) Es gibt die Position des Zeichens in der ASCII-Sortierfolge zurück. |
6 | ICHAR (C) Es gibt die Position des Zeichens in der maschinenspezifischen Sortiersequenz (Prozessor) zurück. |
7 | INDEX (STRING, SUBSTRING [, BACK]) Es wird die Startposition von SUBSTRING innerhalb von STRING ganz links (ganz rechts, wenn BACK .TRUE ist) zurückgegeben. |
8 | LEN (STRING) Es gibt die Länge eines Strings zurück. |
9 | LEN_TRIM (STRING) Es gibt die Länge einer Zeichenfolge ohne nachgestellte Leerzeichen zurück. |
10 | LGE (STRING_A, STRING_B) Lexikalisch größer oder gleich |
11 | LGT (STRING_A, STRING_B) Lexikalisch größer als |
12 | LLE (STRING_A, STRING_B) Lexikalisch kleiner oder gleich |
13 | LLT (STRING_A, STRING_B) Lexikalisch weniger als |
14 | REPEAT (STRING, NCOPIES) Wiederholte Verkettung |
15 | SCAN (STRING, SET [, BACK]) Es gibt den Index des Zeichens STRING ganz links (ganz rechts, wenn BACK .TRUE. Ist) zurück, das zu SET gehört, oder 0, wenn keines dazu gehört. |
16 | TRIM (STRING) Entfernt nachgestellte Leerzeichen |
17 | VERIFY (STRING, SET [, BACK]) Überprüft den Zeichensatz in einer Zeichenfolge |
Freundliche Funktionen
Sr.Nr. | Bedienungsanleitung |
---|---|
1 | KIND (X) Es gibt den Parameterwert vom Typ kind zurück. |
2 | SELECTED_INT_KIND (R) Es gibt eine Art Typparameter für den angegebenen Exponentenbereich zurück. |
3 | SELECTED_REAL_KIND ([P, R]) Parameterwert vom Typ "Real Art" bei gegebener Genauigkeit und Reichweite |
Logische Funktion
Sr.Nr. | Bedienungsanleitung |
---|---|
1 | LOGICAL (L [, KIND]) Konvertieren Sie zwischen Objekten vom Typ logisch mit verschiedenen Typparametern |