salto - Fortran: Inicializa todas las variables a un valor predeterminado específico
problemas resueltos de programación en fortran 95 pdf (2)
Estoy trabajando en un código de spaghetti Fortran ~ 40 años con muchas variables que están implícitamente declaradas. Entonces, no hay una manera simple de saber qué variables existen en el código para inicializar sus valores. Ahora, ¿hay alguna manera de decirle al compilador (por ejemplo, Intel Fortran) que inicialice todas las variables en el código a un valor predeterminado específico (p. Ej., -999) distinto de cero o un número muy grande, tal como lo proporciona el compilador Intel?
Probablemente quieras:
ifort -check uninit
Nota por la página de manual esto solo verifica los escalares
Además, según algunas pruebas rápidas, es un control bastante débil. No capta esto simple, por ejemplo:
program test
call f(i)
end
subroutine f(j)
write(*,*)j
end
devuelve 0
..
Supongo que es mejor que nada.
gfortran
proporciona algunas opciones para esto. Los enteros se pueden inicializar con -finit-integer=n
donde n
es un entero. Para números reales, puede usar -finit-real=<zero|inf|-inf|nan|snan>
. Junto con -ffpe-trap=denormal
esto puede ser muy útil, para obtener reales no inicializados.