Entiendo que gfortran puede compilar f90 o f95? ¿Cómo sabe cuál está compilando? ¿También puede compilar el código f77? ¿Ubuntu ya tiene un compilador fortran o necesito descargar gfortran?¿Cómo puede saber Gfortran si estoy compilando el código f90 o f95?
Respuesta
gfortran puede adivinar ciertas cosas desde la extensión del archivo; si el archivo tiene una extensión de .f, .f90, f95, .f03 o .f08 asumirá un formato fijo (.f) o libre con los estándares apropiados. Pero puede obligarlo a compilar (decir) código fortran2003 con la opción -std = f2003. Por ejemplo, de la documentation,
-std = std
Especificar la norma a la que se espera que el programa de ajustarse, que puede ser uno de `f95' ,` F2003' , `F2008' , `gnu ', o` legado'. El valor predeterminado para std es `gnu ', que especifica un superconjunto del estándar Fortran 95 que incluye todas las extensiones admitidas por GNU Fortran, aunque se darán advertencias para las extensiones obsoletas no recomendadas para su uso en el nuevo código. El valor 'heredado' es equivalente a pero sin las advertencias de extensiones obsoletas, y puede ser útil para programas antiguos no estándar. Los valores `f95 ',` f2003' y `f2008 ' especifican una estricta conformidad con los estándares Fortran 95, Fortran 2003 y Fortran 2008, respectivamente; se dan errores para todas las extensiones más allá del estándar de idioma relevante, y se dan advertencias para las características Fortran 77 que están permitidas pero obsoletas en las posteriores normas . `-std = f2008ts' permite el estándar Fortran 2008 incluyendo las adiciones de la Especificación Técnica (TS) 29.113 sobre el ulterior Interoperabilidad de Fortran con C.
Tenga en cuenta que, con unas pocas excepciones, las normas FORTRAN son muy comparables hacia atrás, de modo que mucho código "agradable", estándar, fortran-77 también es válido para el código 2003. El problema principal con eso es que gran parte del código de los años 80 y anteriores no es "agradable" ni cumple con las normas.
¿Se puede persuadir a gfortran de que un archivo .f es Fortran 95 o superior? '-std = f95' no es suficiente. – hertzsprung
@hertzsprung 'gcc -x f95 file.f' puede funcionar –
Sí, gfortran puede compilar FORTRAN 77 y Fortran 90,95 etc. Tiene muchas características de 2003 & 2008 implementado. Para el código Fortran 90/95/2003/2008 una buena extensión para usar es .f90. Algunos otros compiladores no reconocen .f95, .f2003, etc. ¿Y realmente quiere cambiar el nombre de sus archivos cuando aparece un nuevo estándar? Utilice .f o .for para FORTRAN 77. La principal diferencia es el diseño de fuente que esperará el compilador: forma libre para .f90, forma fija para .f o .for. (Los tipos de archivo en mayúsculas provocarán que se ejecute el preprocesador). Puede forzar el diseño de forma fija con las opciones -fixed-form -ffixed-line-length-none.
- 1. Cómo detectar si estoy compilando código con Visual Studio 2008?
- 2. Cómo saber qué compilador se utilizó: g77 o gfortran
- 3. ¿Puede un sitio web saber si estoy ejecutando un UserScript?
- 4. ¿Cómo puedo saber si estoy en el depurador en Android?
- 5. ¿Detecto en el proyecto Xcode iPhone si estoy compilando para simulador o dispositivo?
- 6. Learning Git. Necesito saber si estoy en el camino correcto
- 7. ¿Cómo puedo saber si estoy huyendo de JRuby vs. Ruby?
- 8. ¿Cómo puedo escribir una función to_upper() o to_lower() en F90?
- 9. ¿Cómo puedo detectar si estoy compilando para una arquitectura de 64 bits en C++
- 10. ¿Cómo puede saber la página? Lo estoy analizando con firebug
- 11. ¿Cómo saber si estoy en una devolución de datos?
- 12. ¿Cómo se puede saber si el iPhone se bloquea?
- 13. ¿Cómo saber si el dispositivo Cocoa Touch puede hacer llamadas?
- 14. ¿Cómo puedo saber si estoy antes de guardar desde una edición o una creación? CakePHP
- 15. ¿Cómo saber si el código está dentro de TransactionScope?
- 16. En Linux, ¿cómo puedo saber si estoy enlazando a una biblioteca estática o dinámica?
- 17. En Silverlight, ¿cómo se puede saber si el código se ejecuta en el hilo de UI o no?
- 18. ¿Cómo puedo saber si estoy en x64 o x86 usando .NET?
- 19. ¿Cómo saber si el iPad es negro o blanco mediante el código?
- 20. ¿Cómo puedo saber en qué subrutina estoy?
- 21. ¿Cómo puedo saber si el código de Rails se está ejecutando mediante rake o script/generate?
- 22. ¿Cómo saber si el usuario prefiere millas o kilómetros?
- 23. Compilando el código .NET en .NET 4?
- 24. saber si .lib es estático o importar
- 25. compilando código VB6 en entorno .NET
- 26. ¿Cómo se puede saber si dos comodines se superponen?
- 27. ¿Cómo comprobar si estoy en tiempo de ejecución o diseño?
- 28. ¿Cómo se puede saber si una entidad EF4 es nueva o un registro existente?
- 29. ¿Cómo puede saber mi programa si Delphi se está ejecutando?
- 30. Cómo saber si el dispositivo está durmiendo
También vea [¿Cómo puede saber gfortran si estoy compilando código f90 o f95?] (Https://stackoverflow.com/q/10884260/608639), [Makefile con diferentes tipos de fuente] (https: // stackoverflow. com/q/8940552/608639), [cmake, fortran 2008 y extensión de archivo .f08] (https://stackoverflow.com/q/25005017/608639), [Sufijo correcto para el archivo fuente Fortran 2003 - compilador Intel Fortran] (https://stackoverflow.com/q/20269076/608639), etc. – jww