FORTRAN Erro de compilação
-
21-09-2019 - |
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
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.