PDA

Afficher la version complète : programmation fortran



berny
02/01/2010, 23h58
Bonsoir,

J'ai un "petit" problème avec un de mes programmes en Fortran. Le compilateur (Gfortran) me dit ceci:

integer::temp(mt2)
1
Error: Unexpected data declaration statement at (1)


Or, mt2 est bien renseigné comme integer avec une certaine valeur. J'ai l'impression qu'il ne reconnait pas mon tableau (il fait cela pour tous mes autres tableaux d'ailleurs...).

Quelqu'un saurait-il m'aider? Je ne vois pas trop où est le problème...

Merci

Bernard

ahlner
03/01/2010, 00h05
berny,

N'y connaissant rien , je te propose ceci : les déclarations sont(elles globales ou locales. Je ne connais qu'un peu de C. En amont, en aval?

alhner

genome
03/01/2010, 01h25
Salut,

Ça compile avec d'autres versions plus anciennes de gfortran ?

En C/C++, gcc-4.4 introduit des incompatibilités avec les versions plus anciennes au niveau de la déclaration des headers, ce qui produit aussi des erreurs de déclaration ; il y a donc peut-être le même genre de problèmes en Fortran... :unsure:

berny
03/01/2010, 11h10
Les déclarations sont globales et tout est bien mis en amont ;-)

Les déclarations de mes tableaux ont toujours bien fonctionné jusque là. Donc je ne pense pas que ca soit un problème du compilateur.

ahlner
03/01/2010, 19h27
berny,

Désolé de te poser cette question : y a -t-il des fautes d'orthographe, ce qui produit des erreurs de syntaxe.
Je me souviens que la compilation contient les étapes suivantes :
-analyse lexicographique ou lexicale) : recherche de nouveaux "mots"
-analyse syntaxique : vérification dela syntaxe
-analyse sémantique : signification du contenu


integer::temp(mt2)

Je ne connais rien au Fortran, à part que cela sert en calcul scientifique, mais est-ce normal ceci : "::"

alhner

genome
03/01/2010, 19h42
Je suis tombé presque par hasard là-dessus :
http://www.developpez.net/forums/d856227/a...pilation-ligne/ (http://www.developpez.net/forums/d856227/autres-langages/autres-langages/fortran/grain-sable-debutant-erreur-compilation-ligne/)

=> ça se pourrait que ce soit une histoire de fortran77/fortran95

berny
03/01/2010, 21h41
Je ne pense pas que ca soit une faute d'orthographe étant donné que tous mes tableaux ne sont pas reconnus. Pour les "::", c'est normal.

J'utilise fortran90. C'est pour manipuler des données météos.

berny
03/01/2010, 23h46
Je viens d'essayer avec le compilateur ifort sur un autre ordi et il me donne ceci:

validation.f90(15): error #6236: A specification statement cannot appear in the executable section.
integer::temp(mt2)


Ce n'est donc pas une erreur de compilateur :-s

kaj
04/01/2010, 12h00
Salut,

En general en fortran on declare la taille des tableaux dans des constantes symboliques.

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>PROGRAM VALIDATION


! Déclaration des variables
parameter (mt2=100)
INTEGER temp(mt2)

END PROGRAM VALIDATION


</div>PROGRAM VALIDATION

gfortran validation.f90 -o validation

Il faudrait voir un peu plus de ton code pour comprendre d'où vient l'erreur.

kaj

berny
04/01/2010, 12h18
Merci Beaucoup!

Mon erreur est que je n'avais pas mis mt2 en "parameter" mais simplement en integer!