Fortran: Fortran 2003: Intrinsische Funktionen und Subroutinen

<<< zur Fortran-Startseite
<< Fortran 2003 Bibliotheken >>
< Ein- und Ausgabe Intrinsische Module >


Die Fortran 90/95-Funktionen und -Subroutinen sind natürlich auch in Fortran 2003 uneingeschränkt gültig. Einige Unterprogramme wurden neu aufgenommen, andere in ihrer Funktionalität etwas erweitert.

NeuBearbeiten

DatentypfunktionenBearbeiten

Funktion Beschreibung
i = selected_char_kind ( c )

Gibt den kind-Wert des Parameters zurück. Der Rückgabewert ist von Datentyp integer.

Parameter:

  • name

Rückgabewert:

  • name = "DEFAULT": der Default-Wert für Zeichen wird zurückgegeben
  • name = "ASCII": der Wert für ASCII-Zeichen wird zurückgegeben
  • name = "ISO_10646": der Wert für "ISO 10646"-Zeichen wird zurückgegeben
  • -1 ... Zeichentyp wird nicht unterstützt

Beispiel:

i = selected_char_kind( "ASCII" )

i => 1

Kommandozeile und EnvironmentBearbeiten

Funktion Beschreibung
i = command_argument_count ( ) Anzahl der übergebenen Kommandozeilenargumente (der Programmname selbst wird nicht mitgezählt). Der Rückgabewert ist vom Typ integer.

Beispiel:

Programmaufruf mit: ./a.out opt1 opt2
 
i = command_argument_count( )

i => 2
Subroutine Beschreibung
get_command (  [c, i, i] ) Übergebene Kommandozeilenargumente (ohne Programmname)

Parameter:

  1. command: Kommandozeilenargumente als Zeichenkette, intent( out ), optional
  2. length: Länge der Zeichenkette, intent( out ), optional
  3. status: Status, intent( out ), optional
    • 0 ... OK
    • -1 ... command-Argument existiert und ist kürzer als length
    • andere Zahl ... Fehler

Beispiel:

Programmaufruf mit: ./a.out opt1 opt2
 
call get_command( str, len, st )

str => opt1 opt2
len => 9
st => 0
get_command_argument (  i, [c, i, i] ) Ein bestimmtes Kommandozeilenargument (inkl. Programmname)

Parameter:

  1. number: Nummer des gewünschten Kommandozeilenargumentes beginnend bei 0, intent( in )
  2. value: Wert des Kommandozeilenargumentes, intent( out ), optional
  3. length: Länge der Zeichenkette, intent( out ), optional
  4. status: Status, intent( out ), optional
    • 0 ... OK
    • -1 ... Argument existiert und ist kürzer als length
    • andere Zahl ... Fehler

Beispiel:

Programmaufruf mit: ./a.out opt1 opt2
 
call get_command_argument( 1, str, len, st )

str => opt1
len => 4
st => 0
get_environment_variable (  c1, [c2, i, i, l] ) Wert einer bestimmten Umgebungsvariable.

Parameter:

  1. name: Name der Umgebungsvariable, intent( in )
  2. value: Wert der Umgebungsvariablen, intent( out ), optional
  3. length: Länge der Zeichenkette c2, intent( out ), optional
  4. status: Status, intent( out ), optional
  5. trim_name: intent( in ), optional
    • 0 ... OK
    • -1 ... Umgebungsvariable existiert, Wert ist kürzer als length
    • 1 ... Umgebungsvariable existiert nicht
    • 2 ... keine Unterstützung von Umgebungsvariablen
    • andere Zahl ... sonstiger Fehler

Beispiel:

call get_environment_variable( "PWD", str, len, st, .TRUE. )

str => /usr/bin
len => 8
st => 0

ErweitertBearbeiten

  • system_clock(i1, ir, i2) ... Das zweite Argument (count_rate) darf nun vom Datentyp integer oder real sein.
  • max, maxloc, maxval, min, minloc, minval ... Funktionieren nunmehr auch für Werte vom Datentyp character.
  • atan2(r1, r2), log(rx), sqrt(rx) ... Unterscheidung von positiven und negativen Nullen im Argument.



<<< zur Fortran-Startseite
<< Fortran 2003 Bibliotheken >>
< Ein- und Ausgabe Intrinsische Module >