Programmation en fortran help!!!
Résolu/Fermé
A voir également:
- Programmation en fortran help!!!
- Application de programmation - Guide
- Programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Mettre en veille un programme - Guide
8 réponses
Fee Fay
Messages postés
635
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 mai 2009
377
25 nov. 2008 à 14:46
25 nov. 2008 à 14:46
Bonjour
Essaie comme ceci :
Essaie comme ceci :
data xx(1:8)/.9894009349916499325961541734D0,.2715245941175409485178057245D-1,& &.9445750230732325760779884155D0,.6225352303864789286284383699D-1,& &.8656312023878317438804678977D0,.9515851168249278480992510760D-1,& &.7554044083550030338951011948D0,.1246289712555338720524762821D0/ data aa(1:8)/.6178762444026437484466717640D0,.1495959888165767320815017305D0,& &.4580167776572273863424194429D0,.1691565193950025381893120790D0,& &.2816035507792589132304605014D0,.1826034150449235888667636679D0,& &.9501250983763744018531933542D-1,.1894506104550684962853967232D0/Bonne journée
Merci de ton aide, mais ça ne marche pas, j'ai toujours la même erreur pour les deux balises data maintenant...
Fee Fay
Messages postés
635
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 mai 2009
377
25 nov. 2008 à 15:39
25 nov. 2008 à 15:39
Je viens d'écrire exactement ce code et ça compile...
Quel est ton compilateur ?
Quel est ton compilateur ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
25 nov. 2008 à 15:53
25 nov. 2008 à 15:53
Je ne connais pas l'instruction DATA. Mais je remarque que les nombres fournis contiennent beaucoup de décimales (28), or le type double en gère 15 et le type long double 20, il y a donc des nombres en trop. C'est peut être la cause de l'erreur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'utilise l'IDE force 2.0, le compilateur est G77 il me semble... l'as-tu compilé en fortran 95??
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
25 nov. 2008 à 17:01
25 nov. 2008 à 17:01
ce 'est pas du fortran 77 !
Fee Fay
Messages postés
635
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 mai 2009
377
>
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
25 nov. 2008 à 17:28
25 nov. 2008 à 17:28
:-DDD
Je dois avouer que je n'ai jamais utilisé ce dinosaure du fortran, alors je ne sais même pas à quoi cela ressemble.
Je dois avouer que je n'ai jamais utilisé ce dinosaure du fortran, alors je ne sais même pas à quoi cela ressemble.
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
25 nov. 2008 à 19:15
25 nov. 2008 à 19:15
Bonsoir,
Même chose chez moi Force 2.0 (G77) , Ca ne compile pas !
--
Cordialement.
Cchristian.
Même chose chez moi Force 2.0 (G77) , Ca ne compile pas !
--
Cordialement.
Cchristian.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
26 nov. 2008 à 08:43
26 nov. 2008 à 08:43
pour moi, g77 c'est la compilateur fortran de gcc, à la norme du fortran 77 dans l'ensemble.
Ls caractéristiques du fortran 77, c'est entre autre que les 6 (environ) première colonnes ne doivent pas être utilisé pour le code, la première est pour dire que la ligne est en commantaire et la sixième pour dire que la ligne continue celle du dessus.
à cela il faut ajouter qu'au delà de la colonne 72 (environ) tout ce qui est écrit est aussi ignoré. Ce format viens des cartes perforées il parait.
Donc le code présenté ici ne devrai pas passer du tout.
Ls caractéristiques du fortran 77, c'est entre autre que les 6 (environ) première colonnes ne doivent pas être utilisé pour le code, la première est pour dire que la ligne est en commantaire et la sixième pour dire que la ligne continue celle du dessus.
à cela il faut ajouter qu'au delà de la colonne 72 (environ) tout ce qui est écrit est aussi ignoré. Ce format viens des cartes perforées il parait.
Donc le code présenté ici ne devrai pas passer du tout.
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
>
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
26 nov. 2008 à 11:10
26 nov. 2008 à 11:10
Bonjour,
C'est après recadrage du texte qu'il subsistait malgré tout, des erreurs à la compilatioin :
Le texte ci-dessous passe maintenant à la compilation :
Je viens de refaire les tests, chez moi le problème était lié à un tiret présent dans certaines valeurs,
.9445750230732325760779884-155D0
résultat d'un copier/coller sans doute car je ne les localise pas dans le texte original, une fois éliminés (voir ci-dessus) ça passe en compilation.
Le plus surprenant est qu'en rappatriant (de mon éditeur) la ligne ci-dessus comme je viens de le faire pour illustrer mon propos, le tiret disparait (j'ai du l'ajouter ici)......................... Je pense que cela vient de l'éditeur, je vais voir ça !
Pour information je "travaille" en mode IMPLICIT NONE, j'ai donc déclaré en INTEGER i et j. (j'ai préféré dégagé une variable j)
C'est après recadrage du texte qu'il subsistait malgré tout, des erreurs à la compilatioin :
Le texte ci-dessous passe maintenant à la compilation :
data (xx(i),i=1,8,1) / S .9894009349916499325961541734D0 , S .2715245941175409485178057245D-1, S .9445750230732325760779884155D0, S .6225352303864789286284383699D-1, S .8656312023878317438804678977D0 , S .9515851168249278480992510760D-1, S .7554044083550030338951011948D0 , S .1246289712555338720524762821D0 / data ( aa(j),j=1,8,1) / S .6178762444026437484466717640D0 , S .1495959888165767320815017305D0 , S .4580167776572273863424194429D0 , S .1691565193950025381893120790D0 , S .2816035507792589132304605014D0 , S .1826034150449235888667636679D0 , S .9501250983763744018531933542D-1, S .1894506104550684962853967232D0 /
Je viens de refaire les tests, chez moi le problème était lié à un tiret présent dans certaines valeurs,
.9445750230732325760779884-155D0
résultat d'un copier/coller sans doute car je ne les localise pas dans le texte original, une fois éliminés (voir ci-dessus) ça passe en compilation.
Le plus surprenant est qu'en rappatriant (de mon éditeur) la ligne ci-dessus comme je viens de le faire pour illustrer mon propos, le tiret disparait (j'ai du l'ajouter ici)......................... Je pense que cela vient de l'éditeur, je vais voir ça !
Pour information je "travaille" en mode IMPLICIT NONE, j'ai donc déclaré en INTEGER i et j. (j'ai préféré dégagé une variable j)
Fee Fay
Messages postés
635
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 mai 2009
377
25 nov. 2008 à 16:21
25 nov. 2008 à 16:21
Je l'ai compilé avec gfortran.
Il n'est pas improbable que la syntaxe soit différente pour un compilateur de versions précédentes du fortran.
Dans ce cas essaie :
Il n'est pas improbable que la syntaxe soit différente pour un compilateur de versions précédentes du fortran.
Dans ce cas essaie :
data (xx(i),i=1,8)/.9894009349916499325961541734D0,.2715245941175409485178057245D-1,& &.9445750230732325760779884155D0,.6225352303864789286284383699D-1,& &.8656312023878317438804678977D0,.9515851168249278480992510760D-1,& &.7554044083550030338951011948D0,.1246289712555338720524762821D0/ data (aa(i),i=1,8)/.6178762444026437484466717640D0,.1495959888165767320815017305D0,& &.4580167776572273863424194429D0,.1691565193950025381893120790D0,& &.2816035507792589132304605014D0,.1826034150449235888667636679D0,& &.9501250983763744018531933542D-1,.1894506104550684962853967232D0/Cela compile toujours de cette manière. Mais si vraiment cela ne marche toujours pas, pense à prendre en compte la remarque de Char Snipeur. Je pensais que ça ne posait pas de problème et que les doubles étaient tronqués dans les cas où le nombre de décimales était trop grand, mais peut-être que cela dépend des compilateurs.
J'ai déjà essayé la dernière syntaxe que tu as mis mais j'ai toujours le même problème, j'ai définis ,es xx et aa un par un sans utiliser de de DATA c'est pas très propre mais au moins ça tourne...
Merci pour votre aide ;)
Merci pour votre aide ;)
Fee Fay
Messages postés
635
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 mai 2009
377
25 nov. 2008 à 16:36
25 nov. 2008 à 16:36
Ah bon... :-(
Je ne vois vraiment pas ce qui n'allait pas, désolé de ne pas avoir pu trouver le souci alors.
Bonne soirée
Je ne vois vraiment pas ce qui n'allait pas, désolé de ne pas avoir pu trouver le souci alors.
Bonne soirée