Pregunta

Aparentemente, existe un límite en el número de líneas de continuación permitidas en compiladores de Fortran. Tengo un caso patológico temporal (hecho para realizar pruebas rápidas), donde se me requiere para inicializar una enorme variedad sin necesidad de abrir archivos o realizar cualquier truco, simplemente una palmada de datos en tan literales. La matriz es bastante grande (360000 entradas).

¿Cómo puedo establecer el límite del compilador para ilimitado, o qué estrategia alternativa que se puede utilizar para alojar esta matriz de inicialización?

¿Fue útil?

Solución

No sé acerca de cualquier configuración del compilador para un número ilimitado de líneas de continuación, pero sugeriría que estas alternativas:

  • asignar cada valor en una sola línea
  • poner los valores en un archivo y lo leyó:)
  • llamar a una función C para llenar la matriz FORTRAN

Otros consejos

Se puede asignarlos en lotes utilizando bucles DO implícitas, hasta el límite impuesto por la continuación su compilador:

REAL :: xarray(360000)

DATA (xarray(i) i=1,100) /1.0, 2.0, 3.0, 4.0, 5.0, 6.0, &
    7.0, 8.0, &
...
    98.0, 99.0, 100.0 /

 DATA (xarray(i) i=101,200) /101.0, 102.0, 103.0, 104.0, 105.0, 106.0, &
    107.0, 108.0, &
...
    198.0, 199.0, 200.0 /

he visto esto en una gran cantidad de código Fortran científica.

escribir código para crear los archivos de origen con datos de un archivo de texto. Dividir las tareas por fila o algo para ayudar a evitar crear una declaración enorme para inicializar la matriz de un solo golpe. Recuerde código que genera código puede ser bastante flexible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top