Fortran: Unterschied zwischen f und F extension

8

Ich bin ein blutiger Anfänger in Fortran.

Ich frage mich: Was ist der Unterschied zwischen den .f und .F Erweiterungen von Fortran-Dateien. Ich weiß so viel: f ist kostenlos und F ist für fixed.

Was bedeuten "frei" und "fix" eigentlich und warum können sie den Kompilierungsprozess komplett vermasseln? (Ich verwende gfortran und ifort ).

Ich habe Fortran-Unterschied zwischen f und F-Erweiterung gegoogelt. Ich war mit dem Ergebnis nicht zufrieden, weshalb ich Stackoverflow benutze.

Wenn Sie einen guten Hinweis vorschlagen könnten, um dies zu lesen, würde ich mich sehr freuen.

    
seb 02.11.2013, 15:31
quelle

3 Antworten

9

Soweit ich weiß, sind .f und .F beide Erweiterungen, die dem FORTRAN 77 Fixed Format zugeordnet sind. Das feste Format ist auf 72 Spalten begrenzt, wobei die ersten sechs Spalten spezielle Zwecke erfüllen. Z.B. a & an Position 6 zeigt eine Zeilenfortsetzung von der vorherigen Zeile an.

Free-Form wurde mit Fortran 90 eingeführt und wird normalerweise durch .f90 und .F90 angezeigt. Für Freiform können Sie bis zu 132 Spalten verwenden und keine speziellen Spalten existieren. Die Zeilenfortsetzung wird durch ein kaufmännisches Und-Zeichen am Ende der Zeile angezeigt.

Großbuchstaben in der Dateierweiterung schalten normalerweise den Vorprozessor ein.

Beachten Sie, dass dies Konventionen sind, die für die meisten Compiler mit Kompilierungsoptionen überschrieben werden können.

    
Alexander Vogt 02.11.2013, 15:39
quelle
6

Dies ist compilerabhängig und sollte nicht unbedingt verwendet werden. In der Regel weisen Kapitalsuffixe darauf hin, dass eine Vorverarbeitung verwendet werden sollte. Die Unterscheidung zwischen freiem und festem Format erfolgt normalerweise durch .f90 (frei) vs. .f (fest).

Da dies kompilerabhängig ist, wäre eine gute Dokumentation die des Compilers. Wenn Sie gfortran verwenden, können Sie sich die Optionen und den Abschnitt Vorverarbeitung .

    
haraldkl 02.11.2013 15:42
quelle
0

In gfortran wird die freie Form (keine besondere Bedeutung für die Spalten 7, 72) durch den Compiler-Schalter -free-form gesetzt und hat nichts mit .f oder .F zu tun Dateisuffixe. Der Unterschied zwischen .f und .F besteht darin, dass letzterer einen Preprozessor durchläuft, dessen gebräuchlichste Verwendung C-like # define-Anweisungen zulässt. Zum Beispiel:

%Vor%

wird kompiliert, wenn es .F ist, aber nicht, wenn es .f

ist     
Ambar Chatterjee 03.11.2017 05:44
quelle