Zum Inhalt springen

Fortran: FORTRAN 77: Standardfunktionen

Aus Wikibooks
<<< zur Fortran-Startseite
<< FORTRAN 77 Fortran 90/95 >>
< Verzweigungen und Schleifen Unterprogramme >

In diesem Kapitel werden für die Funktionsargumente und Rückgabewerte nachfolgende Kürzel verwendet, die Aufschluss über die möglichen Datentypen geben.

Kürzel Datentypen
i INTEGER
r REAL
d DOUBLE PRECISION
x COMPLEX
c CHARACTER*n
l LOGICAL

Datentypumwandlung

[Bearbeiten]

Umwandlung in INTEGER

[Bearbeiten]
  • i = INT(i)

Abschneiden des Nachkommaanteils:

  • i = INT(r)
  • i = IFIX(r)
  • i = IDINT(d)
  • i = INT(x)

ASCII-Wert des Zeichens c:

  • i = ICHAR(c)

Umwandlung in REAL

[Bearbeiten]
  • r = REAL(i)
  • r = FLOAT(i)
  • r = REAL(r)
  • r = SNGL(d)
  • r = REAL(x)

Umwandlung in DOUBLE

[Bearbeiten]
  • d = DBLE(i)
  • d = DBLE(r)
  • d = DBLE(d)
  • d = DBLE(x)

Umwandlung in COMPLEX

[Bearbeiten]
  • x = CMPLX(i)
  • x = CMPLX(r)
  • x = CMPLX(d)
  • x = CMPLX(x)

Umwandlung in CHARACTER

[Bearbeiten]

Gibt das Zeichen zum ASCII-Wert i zurück.

  • c = CHAR(i)

Mathematische Funktionen

[Bearbeiten]

Abschneiden des Nachkommaanteils

[Bearbeiten]

Ist das Argument größer Null, wird die nächstkleinere ganze Zahl zurückgegeben. Ist das Argument kleiner Null, wird die nächstgrößere ganze Zahl zurückgegeben.

  • r = AINT(r)
  • d = DINT(d)

Runden

[Bearbeiten]

Ist das Argument größer oder gleich Null, ist der Rückgabewert INT(X+0.5). Ist das Argument kleiner Null, ist der Rückgabewert INT(X-0.5)

  • r = ANINT(r)
  • d = DNINT(d)
  • i = NINT(r)
  • i = IDNINT(d)

Absolutwert

[Bearbeiten]
  • i = IABS(i)
  • r = ABS(r)
  • d = DABS(d)
  • r = CABS(x)

Double Precision-Produkt

[Bearbeiten]

Rückgabewert ist r1 × r2 mit Datentyp DOUBLE PRECISION

  • d = DPROD(r1, r2)

Modulo

[Bearbeiten]

Rückgabewert ist zahl1 - INT(zahl1 /zahl2)*zahl2

  • i = MOD(i1, i2)
  • r = AMOD(r1, r2)
  • d = DMOD(d1, d2)

Vorzeichentransfer

[Bearbeiten]

Wenn die zahl2 >= 0 ist, dann wird |zahl1| zurückgegeben. Wenn die zahl2 < 0 ist, dann wird -|zahl1| zurückgegeben.

  • i = ISIGN(i1, i2)
  • r = SIGN(r1, r2)
  • d = DSIGN(d1, d2)

Positive Differenz

[Bearbeiten]

Für zahl1 > zahl2 ist der Rückgabewert zahl1 - zahl2. Für zahl1 <= zahl2 wird Null zurückgegeben.

  • i = IDIM(i1, i2)
  • r = DIM(r1, r2)
  • d = DDIM(d1, d2)

Maximum

[Bearbeiten]

Gibt den größten Argumentwert zurück.

  • i = MAX0(i1, i2, ...)
  • r = AMAX1(r1, r2, ...)
  • d = DMAX1(d1, d2, ...)
  • r = AMAX0(i1, i2, ...)
  • i = MAX1(r1, r2, ...)

Minimum

[Bearbeiten]

Gibt den kleinsten Argumentwert zurück.

  • i = MIN0(i1, i2, ...)
  • r = AMIN1(r1, r2, ...)
  • d = DMIN1(d1, d2, ...)
  • r = AMIN0(i1, i2, ...)
  • i = MIN1(r1, r2, ...)

Komplexe Zahlen

[Bearbeiten]

Gibt den Imaginärteil zurück:

  • r = AIMAG(x)

Gibt die konjugiert komplexe Zahl zurück:

  • x = CONJG(x)

Quadratwurzel

[Bearbeiten]

Gibt die Quadratwurzel zurück:

  • r = SQRT(r)
  • d = DSQRT(d)
  • x = CSQRT(x)

Exponentialfunktion

[Bearbeiten]

Gibt natürliche Exponentialfunktion zurück:

  • r = EXP(r)
  • d = DEXP(d)
  • x = CEXP(x)

Logarithmus naturalis

[Bearbeiten]

Gibt den natürlichen Logarithmus zurück:

  • r = ALOG(r)
  • d = DLOG(d)
  • x = CLOG(x)

Dekadischer Logarithmus

[Bearbeiten]

Gibt den dekadischen Logarithmus zurück:

  • r = ALOG10(r)
  • d = DLOG10(d)

Winkelfunktionen

[Bearbeiten]
  • r = SIN(r)
  • d = DSIN(d)
  • x = CSIN(x)
  • r = COS(r)
  • d = DCOS(d)
  • x = CCOS(x)
  • r = TAN(r)
  • d = DTAN(d)

Arkusfunktionen

[Bearbeiten]
  • r = ASIN(r)
  • d = DASIN(d)
  • r = ACOS(r)
  • d = DACOS(d)
  • r = ATAN(r)
  • d = DATAN(d)

Gibt zurück:

  • r = ATAN2(r1, r2)
  • d = DATAN2(d1, d2)

Diese Funktionen sind für ähnliche Werte der beiden Argumente erheblich genauer.

Hyperbelfunktionen

[Bearbeiten]
  • r = SINH(r)
  • d = DSINH(d)
  • r = COSH(r)
  • d = DCOSH(d)
  • r = TANH(r)
  • d = DTANH(d)

Zeichenketten-Funktionen

[Bearbeiten]

Länge

[Bearbeiten]
  • i = LEN(c)

Index eines Teilstrings

[Bearbeiten]

Gibt die erste Position des Auftretens eines Teilstrings c2 in c1 zurück. c2 muss eine (benannte) Konstante sein.

  • i = INDEX(c1, c2)

Lexikalische Funktionen

[Bearbeiten]

Hier wird unabhängig von der Plattform immer der ASCII-Zeichensatz als Grundlage verwendet.

Lexikalisch größer oder gleich (Rückgabewert ist .TRUE. wenn c1 >= c2):

  • l = LGE(c1, c2)

Lexikalisch größer als (Rückgabewert ist .TRUE. wenn c1 > c2):

  • l = LGT(c1, c2)

Lexikalisch kleiner oder gleich (Rückgabewert ist .TRUE. wenn c1 <= c2):

  • l = LLE(c1, c2)

Lexikalisch kleiner als (Rückgabewert ist .TRUE. wenn c1 < c2):

  • l = LLT(c1, c2)

Obige Funktionenauflistung basiert auf dem Fortran 77 Sprachstandard X3J3/90.4, Kap.15: Functions and Subroutines.


<<< zur Fortran-Startseite
<< FORTRAN 77 Fortran 90/95 >>
< Verzweigungen und Schleifen Unterprogramme >