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.
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.