Pergunta

Tentei compilar um programa fortran para o modelo de solo-planta-atmosfera, mas não posso compilá-lo no Ubuntu, ele continua me dando a mensagem de erro como esta:

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

Alguém pode me ajudar com isso. Obrigado. O código -fonte completo está aqui:Código fonte

Foi útil?

Solução

A instrução de dimensão é usada para dimensionar matrizes - portanto, você deve especificar as dimensões da matriz. Por exemplo:

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

Na verdade, você não precisa da declaração de dimensão, no entanto, também pode dizer algo como:

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

Outras dicas

Você não diz se esta é sua edição ou se alguém escreveu o código. A declaração de dimensão é descrita em:http://en.wikipedia.org/wiki/fortran_language_featurespor exemplo:

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

Ele espera limites de matriz depois dele. É bastante desatualizado e normalmente substituído pelo tipo (por exemplo, nos limites da matriz).

Se você herdou o código (e se tiver uma longa história), é possível, ele possui alguma sintaxe que agora não é padrão, mas ainda compila em algumas máquinas. Se você estiver editando ativamente o código, precisará aprender alguns fortran.

ATUALIZAR De uma pergunta anterior, o OP parece ter excluído os limites da matriz de uma instrução de dimensão sintaticamente correta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top