Fortran Tutorial
Erste Schritte mit Fortran
Suche…
Bemerkungen
Fortran ist eine Sprache, die aufgrund ihrer Eignung für numerische Berechnungen in der wissenschaftlichen Gemeinschaft weit verbreitet ist. Besonders attraktiv ist die intuitive Array-Notation, die das Schreiben schneller vektorisierter Berechnungen vereinfacht.
Trotz seines Alters ist Fortran mit zahlreichen Implementierungen, darunter GNU, Intel, PGI und Cray, immer noch aktiv entwickelt.
Versionen
Ausführung | Hinweis | Veröffentlichung |
---|---|---|
Fortran 66 | Erste Standardisierung durch ASA (jetzt ANSI) | 1966-03-07 |
Fortran 77 | Feste Form, historisch | 1978-04-15 |
Fortran 90 | Freiform-, ISO-Standard- und Array-Operationen | 1991-06-15 |
Fortran 95 | Reine und elementare Verfahren | 1997-06-15 |
Fortran 2003 | Objekt orientierte Programmierung | 2004-04-04 |
Fortran 2008 | Co-Arrays | 2010-09-10 |
Installation oder Setup
Fortran ist eine Sprache, die mit Compilern vieler Hersteller zusammengestellt werden kann. Für verschiedene Hardwareplattformen und Betriebssysteme stehen verschiedene Compiler zur Verfügung. Einige Compiler sind freie Software, andere können kostenlos verwendet werden und andere erfordern den Kauf einer Lizenz.
Der gebräuchlichste freie Fortran-Compiler ist GNU Fortran oder Gfortran. Der Quellcode ist von GNU als Teil von GCC, der GNU-Compiler-Collection, verfügbar. Binaries für viele Betriebssysteme sind verfügbar unter https://gcc.gnu.org/wiki/GFortranBinaries . Linux-Distributionen enthalten häufig gfortran in ihrem Paketmanager.
Weitere Compiler stehen zum Beispiel zur Verfügung:
- EKOPath von PathScale
- LLVM (Backend über DragonEgg)
- Oracle Developer Studio
Auf HPC-Systemen stehen vom Systemanbieter häufig spezialisierte Compiler zur Verfügung, wie z. B. die Compiler von IBM oder Cray .
Alle diese Compiler unterstützen den Fortran 95-Standard. Einen Überblick über den Fortran 2003-Status und den Fortran 2008-Status verschiedener Compiler bietet das ACM Fortran Forum und ist im Fortran-Wiki verfügbar.
Hallo Welt
Jedes Fortran-Programm muss als letzte Anweisung end
. Daher sieht das einfachste Fortran-Programm so aus:
end
Hier einige Beispiele von "Hallo Welt" -Programmen:
print *, "Hello, world"
end
Mit write
:
write(*,*) "Hello, world"
end
Aus Gründen der Übersichtlichkeit ist es jetzt üblich, mit der program
ein Programm zu starten und ihm einen Namen zu geben. Die end
Anweisung kann dann auf diesen Namen verweisen, um zu verdeutlichen, worauf sie sich bezieht, und den Compiler den Code auf Richtigkeit prüfen lassen. Außerdem sollten alle Fortran-Programme eine implicit none
Anweisung enthalten. Ein minimales Fortran-Programm sollte also wie folgt aussehen:
program hello
implicit none
write(*,*) 'Hello world!'
end program hello
Der nächste logische Schritt von diesem Punkt ist, wie Sie das Ergebnis des Hallo-Welt-Programms sehen können. Dieser Abschnitt zeigt, wie Sie dies in einer Linux-ähnlichen Umgebung erreichen. Wir gehen davon aus, dass Sie einige grundlegende Vorstellungen von Shell-Befehlen haben , hauptsächlich wissen Sie, wie Sie zum Shell-Terminal gelangen. Wir gehen außerdem davon aus, dass Sie Ihre fortran
Umgebung bereits fortran
haben . Speichern Sie mit einem bevorzugten Texteditor (Notepad, Notepad ++, vi, vim, emacs, gedit, kate usw.) das obige Programm (Kopieren und Einfügen) in einer Datei mit dem Namen hello.f90
in Ihrem Home-Verzeichnis. hello.f90
ist deine Quelldatei. Gehen Sie dann zur Befehlszeile und navigieren Sie zu dem Verzeichnis (Ausgangsverzeichnis?), In dem Sie Ihre Quelldatei gespeichert haben. Geben Sie dann den folgenden Befehl ein:
>gfortran -o hello hello.f90
Sie haben gerade Ihr Programm "Hallo Welt" erstellt. In technischer Hinsicht haben Sie gerade Ihr Programm zusammengestellt. Um es auszuführen, geben Sie den folgenden Befehl ein:
>./hello
Sie sollten die folgende Zeile auf Ihrem Shell-Terminal sehen.
> Hello world!
Glückwunsch, Sie haben gerade das Programm "Hello World" geschrieben, kompiliert und ausgeführt.
Quadratische Gleichung
Heute wird Fortran hauptsächlich für numerische Berechnungen verwendet. Dieses sehr einfache Beispiel veranschaulicht die grundlegende Programmstruktur zum Lösen quadratischer Gleichungen:
program quadratic
!a comment
!should be present in every separate program unit
implicit none
real :: a, b, c
real :: discriminant
real :: x1, x2
print *, "Enter the quadratic equation coefficients a, b and c:"
read *, a, b, c
discriminant = b**2 - 4*a*c
if ( discriminant>0 ) then
x1 = ( -b + sqrt(discriminant)) / (2 * a)
x2 = ( -b - sqrt(discriminant)) / (2 * a)
print *, "Real roots:"
print *, x1, x2
! Comparison of floating point numbers for equality is often not recommended.
! Here, it serves the purpose of illustrating the "else if" construct.
else if ( discriminant==0 ) then
x1 = - b / (2 * a)
print *, "Real root:"
print *, x1
else
print *, "No real roots."
end if
end program quadratic
Fallunempfindlichkeit
Groß- und Kleinbuchstaben des Alphabets sind im Fortran-Zeichensatz gleichwertig. Mit anderen Worten, Fortran unterscheidet nicht zwischen Groß- und Kleinschreibung . Dieses Verhalten steht im Gegensatz zu Sprachen, bei denen die Groß- und Kleinschreibung beachtet wird, wie beispielsweise C ++ und viele andere.
Folglich sind die Variablen a
und A
die gleiche Variable. Grundsätzlich könnte man ein Programm wie folgt schreiben
pROgrAm MYproGRaM
..
enD mYPrOgrAM
Es ist an den guten Programmierer, solche hässlichen Entscheidungen zu vermeiden.