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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top