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:

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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow