programacion lenguaje ejemplos descargar caracteristicas fortran fortran77 intel-fortran fortran95

lenguaje - Los datos del bloque FORTRAN parecen no estar funcionando



fortran iv (1)

Estoy trabajando en algún código heredado que dependa en gran medida de bloques comunes que se inicializan con BLOCK DATA similar al código siguiente.

BLOCK DATA filename PARAMETER (size=100) CHARACTER*8 somearray(size) COMMON /block1/ somearray DATA(somearray(i), i=100)/ *''string1'', ''string2'', ... , ''string100''/ END

En algún punto del programa, una subrutina usa este bloque común como se muestra en el siguiente código.

SUBROUTINE SUB(array) IMPLICIT DOUBLE PRECISION (A-H,O-Z) CHARACTER*8 array(*), somearray(100) COMMON /block1/ somearray DO 100 I=1, iterations array(I)=somearray(I) ... 100 CONTINUE END

Aquí somearray tiene un par de espacios en cada cadena en lugar de los valores reales especificados en BLOCK DATA . ¿Cuál podría ser la causa de esto?

Nota : el código está compilado con Intel Fortran


Encontré una solución a este problema agregando una declaración SAVE antes de la instrucción END de cualquier BLOCK DATA como se ve a continuación.

BLOCK DATA filename PARAMETER (size=100) CHARACTER*8 somearray(size) COMMON /block1/ somearray DATA(somearray(i), i=100)/ *''string1'', ''string2'', ... , ''string100''/ SAVE END