descargar - ¿Cómo identificar el estándar fortran-''77, ''90 o ''95?
fortran pdf (3)
Tengo un código de Fortran, y no estoy seguro de qué estándar es: ''77, ''90 o ''95. ¿Existe una herramienta estándar para identificar a qué norma está sujeta?
Probablemente haya herramientas automatizadas, pero mis métodos son en gran medida heurísticos:
- ¿Los comentarios usan a
!
en cualquier lugar de la línea (F90 +) o unaC
en la primera columna (F77)? - ¿Los bucles usan
do
..end do
(F90 +) odo
..continue
(F77)? - ¿Las líneas continúan usando
&
al final de la línea (F90 +) o en la columna 6 (f77)? - ¿El código usa
module
o estructurastype
(F90)? - Si el código usa arreglos, ¿opera sobre ellos como una sola estructura (F90) o siempre utilizando bucles (F77)?
- ¿Se utiliza la memoria dinámica (ya sea utilizando métodos
allocatable
opointer
) (F90)?
En general, estos son suficientes para discriminar entre F90 y F77. Las diferencias entre Fortran 90 y FORTRAN 77 son mucho, mucho más grandes que las diferencias entre Fortran 90 y Fortran 95, por lo que generalmente me detengo allí.
Si tiene acceso a GNU Fortran (gfortran) puede intentar compilarlo con las diferentes opciones para --std
y ver cuál funciona. Puede encontrar detalles sobre las opciones de dialecto aquí .
Estoy agregando funciones en Fortran 2003 y 2008 (que están justo detrás de mi cabeza)
si el programa tiene tipos de datos derivados parametrizados (fortran 2003.) si el constructor de la matriz usa corchetes [] en lugar de (/ /) (fortran 2003.) si lo ve, hay una disposición de usar coarrays (fortran 2008)
aunque muchos compiladores tienen funciones especiales (como funciones de Bessel) como parte de las extensiones, es una característica fortran de 2008.
(si hay discrepancias, déjenme saber que lo editaré)