Fortran errore di compilazione
-
21-09-2019 - |
Domanda
ho provato a compilare un programma FORTRAN per il modello suolo-pianta-atmosfera, ma non riesco a compilarlo sotto Ubuntu, che continua a darmi il messaggio di errore simile a questo:
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
Qualcuno mi può aiutare con questo. Grazie. codice sorgente completo è qui: Source Code
Soluzione
L'istruzione dimensione è usata per gli array di quota - in modo da avere per specificare le dimensioni di matrice. Ad esempio:
dimension tairgl(100),eairgl(20,50), ...
Non è effettivamente necessario l'istruzione di dimensione, tuttavia, si potrebbe anche dire qualcosa come:
real tairgl(100)
integer eairgl(20,50)
Altri suggerimenti
Non si dice se questo è la tua modifica, o se qualcun altro ha scritto il codice. La dichiarazione DIMENSIONE è descritto in: http://en.wikipedia.org/wiki/Fortran_language_features per esempio:
INTEGER, DIMENSION(0:100, -50:50) :: map
Si aspetta limiti dell'array dopo di esso. È piuttosto datato e normalmente sostituito dal tipo (ad esempio REALE ei limiti dell'array).
Se avete ereditato il codice (e se si ha una lunga storia) è possibile ha una sintassi che ora è non-standard, ma ancora compila su alcune macchine. Se si sta attivamente modificando il codice è necessario imparare alcune FORTRAN.
Aggiorna da una domanda precedente sembra aver cancellato i limiti di matrice da un'istruzione di dimensione sintatticamente corretto l'OP.