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
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üfungenWeitere 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 halloAusgabe:
Hallo Fortran!
Name: Mia, Alter: 17
Alter nächstes Jahr: 18- Ein Programm beginnt mit
program nameund endet mitend program name implicit nonegehört immer an den Anfang: Ohne es gelten alte Regeln, nach denen Namen mitibisnautomatisch Ganzzahlen sind- Kommentare beginnen mit
! - Groß-/Kleinschreibung ist egal (
PROGRAM=program) print *, ...undwrite(*, 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 rechnenAusgabe:
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-07Merke
- Fortran ist die älteste Hochsprache und bis heute Standard im Hochleistungsrechnen
- Struktur:
program ... end program;implicit nonenicht vergessen - Kommentare mit
!, Ausgabe mitprint *,undwrite - 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
Wofür wurde Fortran entwickelt?
- Für numerisches und wissenschaftliches Rechnen (richtig)
- Für Webseiten
- Für Spiele
- Für Datenbanken
Was bewirkt implicit none?
- Alle Variablen müssen deklariert werden (richtig)
- Es gibt keine Variablen
- Alle Variablen sind Ganzzahlen
- Es schaltet Warnungen ab
Wie beginnt ein Kommentar in Fortran 90?
- Mit ! (richtig)
- Mit //
- Mit #
- Mit C in Spalte 1 (nur FORTRAN 77)
Weiter im Kurs
Weiter: Datentypen und formatierte Ausgabe
Alle Kapitel: Fortran im Überblick