EMZETT.
Login

Kurz: Fortran (Formula Translation) wurde 1957 bei IBM entwickelt und ist damit die älteste noch aktiv genutzte Hochsprache. Sie ist von Anfang an für numerisches Rechnen gemacht.

Teil des Kurses Fortran

Kapitel 1 von 8 im Kurs Fortran. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Was ist Fortran?

Fortran (Formula Translation) wurde 1957 bei IBM entwickelt und ist damit die älteste noch aktiv genutzte Hochsprache. Sie ist von Anfang an für numerisches Rechnen gemacht: Wettervorhersage, Klimamodelle, Strömungsmechanik, Astrophysik und Supercomputer-Rechnungen laufen noch heute in Fortran, weil Compiler damit extrem schnellen Code erzeugen und Arrays erstklassige Bürger sind.

Moderne Fortran-Standards (90, 95, 2003, 2008, 2018) haben mit dem alten, kryptischen FORTRAN 77 wenig gemeinsam: freie Formatierung, Module, Datentypen, Rekursion, objektorientierte Elemente und parallele Konstrukte (Coarrays, do concurrent).

Compiler und Ausführen

gfortran hallo.f90 -o hallo     # übersetzen (GNU Fortran)
./hallo                         # starten
gfortran -O2 -Wall -fcheck=all -std=f2018 hallo.f90   # Warnungen, Laufzeitprüfungen

Weitere Compiler: Intel ifx, NVIDIA nvfortran, LLVM flang. Moderne Hilfen: fpm (Fortran Package Manager), fortran-lang.org (Community und Tutorials).

Das erste Programm

hallo.f90

program hallo
  implicit none                       ! alle Variablen müssen deklariert werden
  character(len=20) :: name
  integer :: alter
 
  name = "Mia"
  alter = 17
  print *, "Hallo Fortran!"
  print *, "Name: ", trim(name), ", Alter: ", alter
  write(*, "(a, i0)") "Alter nächstes Jahr: ", alter + 1
end program hallo

Ausgabe:

Hallo Fortran!
 Name: Mia, Alter:           17
Alter nächstes Jahr: 18
  • Ein Programm beginnt mit program name und endet mit end program name
  • implicit none gehört immer an den Anfang: Ohne es gelten alte Regeln, nach denen Namen mit i bis n automatisch Ganzzahlen sind
  • Kommentare beginnen mit !
  • Groß-/Kleinschreibung ist egal (PROGRAM = program)
  • print *, ... und write(*, format) geben aus (* = Standard)
  • Der Zuweisungsoperator ist =, Vergleiche sind ==, /=, <, >

Rechnen

program rechnen
  implicit none
  integer :: a, b
  real :: x
  a = 17
  b = 5
  x = 2.5
  print *, a + b, a - b, a * b
  print *, a / b             ! Ganzzahldivision
  print *, mod(a, b)         ! Rest
  print *, real(a) / real(b) ! Gleitkomma
  print *, 2 ** 10           ! Potenz
  print *, x ** 2, sqrt(x), exp(1.0), sin(0.0), abs(-3)
  print *, max(3, 9, 5), min(3, 9, 5)
  print *, int(3.99), nint(3.5), floor(-2.5), ceiling(2.1)
  print *, huge(a), epsilon(x)
end program rechnen

Ausgabe:

22          12          85
           3
           2
   3.40000010
        1024
   6.25000000       1.58113885       2.71828175       0.00000000               3
           9           3
           3           4          -3           3
  2147483647   1.19209290E-07

Merke

  • Fortran ist die älteste Hochsprache und bis heute Standard im Hochleistungsrechnen
  • Struktur: program ... end program; implicit none nicht vergessen
  • Kommentare mit !, Ausgabe mit print *, und write
  • Ganzzahldivision 17 / 5 = 3, Potenz mit **
  • Moderne Standards (90 bis 2018) haben mit FORTRAN 77 wenig zu tun

Übungsaufgabe

Berechne die Fläche und den Umfang eines Kreises mit Radius 2,5 und gib beides mit print aus.

Quiz zur Selbstkontrolle

Weiter im Kurs

Weiter: Datentypen und formatierte Ausgabe

Alle Kapitel: Fortran im Überblick