2008-12-24 668 views

Respuesta

23

Probablemente herramientas automatizadas, pero mis métodos son en gran medida heurística:

  • hacer comentarios utilizan un ! en cualquier lugar de la línea (F90 +) o un C en la primera columna (F77)?
  • Hacer bucles usar do .. end do (F90 +) o do .. 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 type estructuras (F90)?
  • Si el código usa matrices, ¿opera en ellas como una sola estructura (F90) o siempre utilizando bucles (F77)?
  • ¿Se utiliza la memoria dinámica (ya sea usando los métodos allocatable o pointer) (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í.

+0

Varios de los puntos de distinguir la forma fuente fija y libre, no Fortran 77 Fortran 90. forma de código fuente fija (con C en la primera columna, y en la columna 6, etc.) es perfectamente legal incluso para Fortran 2008. –

2

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

2

estoy añadiendo características en FORTRAN 2003 y 2008 (que son simplemente parte posterior de la cabeza)

tipos de datos si el programa ha parametrizado (derivados de fortran 2003) si el constructor de matrices utiliza corchetes [] en lugar de (/ /) (fortran 2003) si usted ve, hay una disposición de utilizar coarrays (fortran 2008)

aunque muchos compiladores tienen funciones especiales (como las funciones de Bessel) como parte de las extensiones, es una buena fe característica de Fortran 2008.

(si cualquier discrepancia que me haga saber Voy a editar)

Cuestiones relacionadas