Ich habe ein Stück Fortran-Code, und ich bin mir nicht sicher, welcher Standard es ist - '77, '90 oder '95. Gibt es ein Standardwerkzeug, um zu ermitteln, welchem Standard es unterliegt?Wie erkennt man den Fortran-Standard - '77, '90 oder '95?
Antwort
Es wahrscheinlich Werkzeuge sind automatisiert, aber meine Methoden sind weitgehend Heuristik:
- Sie Kommentare verwenden, um ein
!
überall auf der Linie (F90 +) oder eineC
in der ersten Spalte (F77)? - Verwenden Sie die Schleifen
do
..end do
(F90 +) oderdo
..continue
(F77)? - Werden die Linien mit
&
am Ende der Linie (F90 +) oder in Spalte 6 (f77) fortgesetzt? - Verwendet der Code
module
odertype
Strukturen (F90)? - Wenn der Code Arrays verwendet, handelt es sich bei ihnen um eine einzelne Struktur (F90) oder immer um Schleifen (F77)?
- Wird dynamischer Speicher (entweder
allocatable
oderpointer
Methoden) verwendet (F90)?
Im Allgemeinen sind diese ausreichend, um zwischen F90 und F77 zu unterscheiden. Die Unterschiede zwischen Fortran 90 und FORTRAN 77 sind viel, viel größer als die Unterschiede zwischen Fortran 90 und Fortran 95, also höre ich normalerweise dort auf.
Wenn Sie Zugriff auf GNU Fortran (Gfortran) haben, können Sie versuchen, es mit den verschiedenen Optionen für --std
kompilieren und sehen, welche funktioniert. Sie finden Details zu den Dialektoptionen here.
mir das Hinzufügen von Funktionen in Fortran 2003 und 2008 (die gerade von meinem Kopf)
, wenn das Programm parametriert abgeleiteten Datentypen (Fortran 2003) , wenn das Array-Konstruktor eckige Klammern verwendet [] anstelle von (/ /) (Fortran 2003). Wenn Sie sehen, gibt es die Bereitstellung von Coarrays (Fortran 2008)
Obwohl viele Compiler spezielle Funktionen (wie Bessel-Funktionen) als Teil der Erweiterungen haben, ist es ein Bonafide Fortran 2008 Feature.
(wenn Abweichungen lassen Sie mich wissen, ich werde bearbeiten)
- 1. Wie erkennt man, ob eine Excel-Datei den Spezifikationen von Excel 95 oder Excel 97 entspricht?
- 2. Übergabe echte Arrays von Fortran 90 bis Fortran 77
- 3. Konverter-Software für Fortran 77 bis Fortran 90
- 4. Wie erkennt man den "Besitzer" einer Website?
- 5. Wie erkennt man den Zustand der Stromversorgung?
- 6. JMeter Bericht 95% Linie
- 7. Wie erkennt man den Seitenanfang in WebView?
- 8. Wie erkennt man den STAMINA-Modus?
- 9. Wie erkennt man den Blattwechsel eines Benutzers?
- 10. Wie erkennt man den Zustand von GIF
- 11. einen Rang 2 Array in FORTRAN 95
- 12. Wie erkennt man Anwendungsabstürze?
- 13. Wie erkennt man Geräteausrichtung mit JavaScript?
- 14. Wie erkennt man den Typ eines jQuery-Objekts?
- 15. Framework CSS "Windows 95" wie
- 16. tcpsocket wiederverbinden (oder wie man geschlossenen Socket erkennt)
- 17. Wie erkennt man die Zugangskontrollmaschine?
- 18. Wie erkennt man den Azure Storage-Typ mit SDK?
- 19. Wie erkennt man, ob VideoView Video oder Buffering spielt?
- 20. Wie erkennt man den Typ eines Objekts in einer Liste?
- 21. Wie erkennt man den BackView-Knopf von SearchView?
- 22. Wie erkennt man, ob eine Datei PDF oder TIFF ist?
- 23. Wie man den Benutzer im Kinect SDK 2.0 dynamisch erkennt
- 24. Wie erkennt man den vorherigen Zustand des Textfelds in C#?
- 25. Wie erkennt man eine installierte oder aktualisierte iOS App?
- 26. Wie erkennt man, ob atof oder _wtof fehlschlägt?
- 27. Wie erkennt man, ob Boto SSLv3 oder TLS verwendet?
- 28. Wie erkennt man einen Cookie von Client- oder Server-Seite?
- 29. Wie erkennt man, ob ein Modell neu ist oder nicht?
- 30. Wie erkennt man, ob eine Bibliothek DEBUG oder RELEASE erstellt?
Einige der Punkte, die die festen und freien Quellform unterscheiden, nicht Fortran 77 von Fortran 90. Feste Quelle Form (mit C in der ersten Spalte & in Spalte 6 usw.) ist auch für Fortran 2008 vollkommen legal. –