Wie kann gfortran sagen, ob ich f90 oder f95 code kompiliere?

8

Ich verstehe, dass gfortran f90 oder f95 kompilieren kann? Woher weiß es, welchen es kompiliert? Kann es auch F77-Code kompilieren? Hat Ubuntu bereits einen Fortran-Compiler oder muss ich Gfortran herunterladen?

    
imp9 04.06.2012, 15:56
quelle

2 Antworten

18

gfortran kann bestimmte Dinge aus der Dateierweiterung erraten; Wenn die Datei eine Erweiterung von .f, .f90, f95, .f03 oder .f08 hat, wird sie ein festes (.f) oder freies Format mit den entsprechenden Standards annehmen. Aber Sie können es zwingen, (Fortran2003) Code mit der Option -std = f2003 zu kompilieren. ZB aus der Dokumentation ,

  

-std = std

     

Geben Sie den Standard an, dem das Programm entsprechen soll,   Dies kann einer von "F95", "F2003", "F2008", "Gnu" oder "Legacy" sein. Das   Der Standardwert für std ist 'gnu', der eine Obermenge von   Fortran 95-Standard, der alle von unterstützen unterstützt   GNU Fortran, obwohl Warnungen für veraltete Erweiterungen gegeben werden   Nicht für die Verwendung in neuem Code empfohlen. Der "Altwert" ist gleichwertig   aber ohne die Warnungen für veraltete Erweiterungen, und kann nützlich sein   für alte Nicht-Standard-Programme. Die Werte "f95", "f2003" und "f2008"   Spezifizieren Sie die strenge Konformität mit Fortran 95, Fortran 2003 und Fortran   2008 Standards; Fehler werden für alle Erweiterungen angegeben   jenseits des relevanten Sprachstandards und Warnungen für die   Fortran 77 Features, die später erlaubt sind, aber veraltet sind   Standards. '-std = f2008ts' erlaubt den Fortran 2008 Standard inklusive   die Ergänzungen der Technischen Spezifikation (TS) 29113 auf Weitere   Interoperabilität von Fortran mit C.

Beachten Sie, dass die Fortran-Standards bis auf wenige Ausnahmen sehr rückwärtskompatibel sind, so dass viel "netter", standardkonformer Fortran-77-Code auch für den Code von 2003 gilt. Das Hauptproblem dabei ist, dass viel Fortran-Code aus den 80er Jahren und früher weder "nett" noch standardkonform ist.

    
Jonathan Dursi 04.06.2012, 16:10
quelle
10

Ja, gfortran kann FORTRAN 77 und Fortran 90,95 usw. kompilieren. Es hat viele Funktionen von 2003 & amp; 2008 umgesetzt. Für Fortran 90/95/2003/2008 Code eine gute Erweiterung zu verwenden ist .f90. Einige andere Compiler erkennen .f95, .f2003 usw. nicht. Und wollen Sie wirklich Ihre Dateien umbenennen, wenn ein neuer Standard herauskommt? Verwenden Sie .f oder .for für FORTRAN 77. Der Hauptunterschied ist das Quelllayout, das der Compiler erwartet: freie Form für .f90, feste Form für .f oder .for. (Großflächige Dateitypen bewirken, dass der Präprozessor ausgeführt wird.) Sie können das Layout in fester Form mit den Optionen -fixed-form -fixed-line-length-none erzwingen.

    
M. S. B. 04.06.2012 17:45
quelle