2009-12-22 9 views
0

J'ai essayé de compiler un programme Fortran pour le modèle sol-atmosphère-plante, mais je ne peux pas le compiler sous Ubuntu, il continue à me donner le message d'erreur comme ceci:Fortran Erreur de compilation

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 

Quelqu'un peut-il aide moi avec ça. Merci. Le code source complet est ici: Source Code

+0

Vous obtiendrez de meilleures réponses si vous publiez au moins les lignes qui génèrent l'erreur. La plupart des gens n'iront pas télécharger tout ce paquet de code source juste pour répondre à votre question. –

+2

Vous avez posé une question très similaire dans http://stackoverflow.com/questions/1947183/intel-visual-fortran-compiling-error où l'instruction de dimension DOES a des limites de tableau. Cela suggère que vous avez modifié le code. Si vous ne comprenez pas une langue, faire des chenges aléatoires est peu susceptible de corriger les bugs. –

Répondre

2

L'instruction DIMENSION est utilisée pour dimensionner des tableaux - vous devez donc spécifier les dimensions du tableau. Par exemple:

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

Vous n'avez pas besoin en fait la déclaration de DIMENSION, cependant, on pourrait dire aussi quelque chose comme:

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

Vous ne dites pas que ce soit votre modifier ou si quelqu'un d'autre a écrit le code. La déclaration de DIMENSION est décrite dans: http://en.wikipedia.org/wiki/Fortran_language_features par exemple:

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

Il attend des limites du tableau après. Il est plutôt obsolète et normalement remplacé par le type (par exemple REAL et les limites de tableau).

Si vous avez hérité du code (et s'il a un long historique), il est possible qu'il ait une syntaxe qui est maintenant non standard mais compile toujours sur certaines machines. Si vous modifiez activement le code, vous devrez apprendre le FORTRAN.

MISE À JOUR À partir d'une question précédente, l'OP semble avoir supprimé les limites de tableau d'une instruction de dimension syntaxiquement correcte.