Pregunta

Me trató de compilar un programa Fortran para el modelo suelo-planta-atmósfera, pero no puedo compilarlo bajo Ubuntu, me mantiene dando el mensaje de error como este:

f77 -c -o o/cupin2.o  src/cupin2.f
src/cupin2.f: In subroutine `reflt':
src/cupin2.f:742: 
         dimension tairgl,eairgl,windgl,psisgl,hsoil,ecpy,hcpy
                         ^
Invalid form for DIMENSION statement at (^)
make: *** 
[o/cupin2.o] Error 1

Puede alguien ayudarme con esto. Gracias. El código fuente completo está aquí: Fuente Código

¿Fue útil?

Solución

La declaración dimensión se utiliza para matrices de dimensiones - por lo que tiene que especificar las dimensiones de la matriz. Por ejemplo:

dimension tairgl(100),eairgl(20,50), ...

En realidad no necesita la declaración DIMENSIÓN, sin embargo, se podría también decir algo como:

real tairgl(100)
integer eairgl(20,50)

Otros consejos

No se dice si esta es tu edición o si otra persona ha escrito el código. La declaración dimensión se describe en: http://en.wikipedia.org/wiki/Fortran_language_features por ejemplo:

INTEGER, DIMENSION(0:100, -50:50) :: map

Se espera límites de la matriz después de ella. Es bastante anticuado y normalmente reemplazado por el tipo (por ejemplo REAL y los límites de la matriz).

Si usted ha heredado el código (y si es que tiene una larga historia) es posible que tiene una sintaxis que ahora no es estándar, pero todavía compila en algunas máquinas. Si está editando de forma activa el código que tendrá que aprender un poco de FORTRAN.

Actualizar a partir de una pregunta anterior parece haber borrado los límites de la matriz de una declaración dimensión sintácticamente correcta el OP.

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