John Backus
FORTRAN, kurz für "Formula Translation," wurde 1957 von John Backus bei IBM entwickelt und ist eine der ältesten Programmiersprachen. Sie wurde ursprünglich für wissenschaftliche und technische Anwendungen entwickelt und wird heute noch in diesen Bereichen eingesetzt. Fortran ist eine imperative Programmiersprache, die speziell für numerische Berechnungen optimiert ist. Sie bietet eine Vielzahl von Funktionen und Bibliotheken für mathematische und wissenschaftliche Berechnungen.
FORTRAN wurde vor allem in Bereichen eingesetzt, die intensive numerische Berechnungen erfordern, wie zum Beispiel in der Wettervorhersage, der numerischen Strömungsmechanik und der linearen Algebra. Ein bekanntes Softwareprojekt, das FORTRAN verwenden, ist das Weather Research and Forecasting (WRF) Model, das zur Wettervorhersage und Klimaforschung eingesetzt wird. FORTRAN wird auch in der Hochenergiephysik, der Astronomie und der Chemie eingesetzt.
Fortran-Programme werden in Textdateien mit der Endung .f90
geschrieben. Diese Dateien werden anschließend von einem Compiler in ausführbare Dateien übersetzt, die auf deinem Computer direkt ausgeführt werden können. Es gibt eine Vielzahl von Compilern, die du verwenden kannst, aber wir werden hier den freien »GNU Fortran Compiler« gfortran
verwenden, der auf den meisten Systemen verfügbar ist.
Stelle zuerst sicher, dass du keinen Ordner geöffnet hast. Um sicherzugehen, drücke einfach den Shortcut für »Ordner schließen«: StrgK und dann F. Dein Workspace sollte jetzt ungefähr so aussehen:
Klicke auf »New File« und wähle als Dateityp »Text File«.
Schreibe nun den folgenden Code in die Datei:
1 2 3 |
program HelloWorld print *, "Hello, World!" end program HelloWorld |
Da Visual Studio Code noch nicht weiß, dass es sich um Fortran-Quelltext handelt, ist dein Programm momentan noch einfarbig, aber das wird sich gleich ändern. An dem weißen Punkt erkennst du, dass deine Änderungen noch nicht gespeichert sind.
Drücke nun StrgS, um die Datei zu speichern. Gib hello.f90
ein – der vollständige Pfad zu deiner Datei lautet dann /workspace/hello.f90
.
Da Fortran standardmäßig nicht von Visual Studio Code unterstützt wird, müssen wir noch eine passende Erweiterung installieren. Klicke dazu auf das Erweiterungs-Symbol in der Seitenleiste oder drücke StrgShiftX. Suche nach der Erweiterung »Photran« und installiere sie.
Alternativ kannst du auch StrgP drücken und ext install fiuba.photran-lsp-client-vscode
eingeben, um die Erweiterung zu installieren.
Anschließend solltest du dein Fortran-Programm farbig sehen:
Bevor wir das Programm ausführen können, müssen wir es kompilieren. Dadurch wird der Quelltext in Maschinencode übersetzt, den dein Computer ausführen kann.
Öffne dazu ein Terminal, indem du entweder StrgJ drückst oder das Panel-Symbol rechts oben drückst. Dein Fenster sollte jetzt ungefähr so aussehen:
Um das Programm zu kompilieren, gib folgenden Befehl ein:
gfortran hello.f90 -o hello
gfortran he
und drücke Tab, um den Dateinamen automatisch zu hello.f90
vervollständigen zu lassen. Du kannst danach ganz normal weiterschreiben.
Wenn du keinen Fehler gemacht hast, wird das Programm erfolgreich kompiliert und die ausführbare Datei hello
wird im selben Verzeichnis erstellt. Du kannst dies überprüfen, indem du dir die Dateien im aktuellen Verzeichnis mit ls
oder ls -l
anzeigen lässt:
Die grüne Datei hello
ist die ausführbare Datei – im Unterschied zu Windows, wo ausführbare Dateien die Endung .exe
haben, haben ausführbare Dateien unter Linux keine Endung. Um das Programm auszuführen, gib folgenden Befehl ein:
./hello
Das Programm sollte die Nachricht Hello, World!
im Terminal ausgeben. Du kannst beide Schritte auch in einem Befehl kombinieren:
gfortran hello.f90 -o hello && ./hello
&&
sorgt dafür, dass der zweite Befehl nur ausgeführt wird, wenn der erste erfolgreich war.
Wenn du einen Fehler im Code machst, wird der Compiler eine Fehlermeldung ausgeben. Versuche zum Beispiel, statt print
das Wort prin
zu schreiben:
prin *, "Hello, World!"
Speichere die Datei und führe den Compiler erneut aus:
gfortran hello.f90 -o hello
Der Compiler sollte eine Fehlermeldung ausgeben, die dir hilft, den Fehler zu finden:
Es lohnt sich, die Fehlermeldungen genau zu lesen, um den Fehler zu finden und zu beheben. Achte auf die Zeilennummer (in diesem Beispiel 2) und den Text, der dir sagt, was falsch ist. Denke daran, den Fehler wieder zu beheben, bevor du das nächste Beispiel ausprobierst.
Im zweiten Beispiel wollen wir eine Zahl in ihre Primfaktoren zerlegen. An diesem Beispiel kannst du sehen, wie man in C Benutzereingaben verarbeitet und Schleifen verwendet. Erstelle eine neue Datei mit StrgAltN und schreibe den folgenden Code hinein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
program prime_factors implicit none integer :: n, i ! Read the number from the user write(*, *) "Enter a number:" read(*, *) n ! Find and print the prime factors write(*, *) "Prime factors of", n, ":" do i = 2, n if (mod(n, i) == 0) then write(*, *) i n = n / i end if end do stop end program prime_factors |
Speichere die Datei unter dem Namen factor.f90
. Kompiliere das Programm:
gfortran factor.f90 -o factor
Falls du keine Fehlermeldung erhältst, kannst du das Programm ausführen und testen:
Das Programm hat die Zahl 123 in ihre Primfaktoren zerlegt und ausgegeben. Probiere aus, was passiert, wenn du die Zahl 3000000000 eingibst. Was könnte der Grund dafür sein?
Im dritten Beispiel wollen wir eine Liste von 10 Zufallszahlen sortieren. Dafür verwenden wir den Bubblesort-Algorithmus, der zwar nicht besonders effizient ist, aber sehr einfach zu verstehen und zu implementieren. Der Bubblesort-Algorithmus funktioniert, indem er die Liste mehrmals durchläuft und benachbarte Elemente vertauscht, wenn sie in der falschen Reihenfolge sind.
An diesem Beispiel kannst du sehen, wie man in Fortran Arrays verwendet und Schleifen verschachtelt.
Erstelle eine neue Datei und schreibe den folgenden Code hinein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
program bubblesort implicit none integer, parameter :: n = 10 integer :: array(n) real :: realarray(n) integer :: i, j, temp ! Initialize the array with random integers call random_seed() call random_number(realarray) array = floor(realarray * 100) ! Print the original array print *, "Original array:" do i = 1, n write(*, '(I3)', advance='no') array(i) end do print * ! Bubble sort algorithm do i = 1, n-1 do j = 1, n-i if (array(j) > array(j+1)) then temp = array(j) array(j) = array(j+1) array(j+1) = temp end if end do end do ! Print the sorted array print *, "Sorted array:" do i = 1, n write(*, '(I3)', advance='no') array(i) end do print * end program bubblesort |
Speichere die Datei unter dem Namen bubblesort.f90
. Kompiliere das Programm:
gfortran bubblesort.f90 -o bubblesort
Falls du keine Fehlermeldung erhältst, kannst du das Programm ausführen und testen:
Das Programm hat eine Liste von 10 Zufallszahlen sortiert. Versuche, den Quelltext so zu verändern, dass statt 10 Zahlen 100 oder mehr Zahlen sortiert werden.
In diesem Kapitel hast du an drei Beispielen gesehen, wie man ein einfaches Fortran-Programm schreiben, kompilieren und ausführen kann. Das ist natürlich nur ein erster Eindruck. Um Fortran wirklich zu beherrschen, musst du noch viel mehr lernen – am besten, indem du eigene Programme schreibst und ausprobierst. Die Buchhandlungen, Bibliotheken und Youtube sind voll von Material für dich. Viel Spaß beim Programmieren!