Oki,merci je vais essayer de bosser la dessus,je te dirais lundi si ca fonctionne,merci encore pour ton aide
Oki,merci je vais essayer de bosser la dessus,je te dirais lundi si ca fonctionne,merci encore pour ton aide
Bonjour à nouveau
Je remonte le post car j'ai un petit souci,j'arrive à lire les données dans le fichier mais il ne prend pas en compte l'exposant après plusieurs tests je ne sais pas d'ou ça vient donc si quelqu'un avait une petite idée ce serait sympa de m'aider.
Merci d'avance
Edit:En fait apres test si je mets simplement ######E## ca marche par contre si je mets ######E+## il ne prends pas en compte l'exposant.
Il n'y aurait un pas un moyen pour qu'il le prenne en compte?
Ou est ce un probleme de lecture de fichier quand on insere les valeurs dans D?
Le Fortran est penible sur les specificateurs de format. Pour ton histoire d'exposant, assure toi de d'avoir le specificateur a El.d (et pas Fl.d), avec les valeurs de l et de d bien choisies.
En regle generale, on lit un fichier comme on l'a ecrit, donc si tu as le code du programme qui a cree le fichier, il suffit de reprendre le specificateur du WRITE et mettre le meme dans ton READ.
Le souci c est que quand je teste de la façon suivante il emet une erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DO I= 1,50 WRITE(6,'E12.6')D(I) ENDDOLe souci c'est que j'ai l'impression que le programme lit mal les données lui aussi car les resultats finaux sont altérés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 startio: error in format apparent state: unit 6 (unnamed) last format: E12.6 lately writing sequential formatted external IO abnormal program termination
Merci pour ton aide.
Le bon format est '(E12.6)', ou alors FORMAT( E12.6 ), cela te debarrassera de l'erreur dans le format.
Ok,merci,apres pas mal de tests je suis arrivée a une conclusion bizzare:
Pour les 0 je dois coder sous la forme 000000E+00
Et pour les autres nombres la forme ######E00
Dans un cas il faut laisser le + et dans l autre faut l enlever j ai pas tout compris mais ca a l air de marcher(il prend en compte les exposants) comme cela donc on verra par la suite si ca marche pour tout
Merci encore pour ton aide.
*jeune padawan des subtilites du Fortran*
Ok,merci,apres pas mal de tests je suis arrivée a une conclusion bizzare:
Pour les 0 je dois coder sous la forme 000000E+00
Et pour les autres nombres la forme ######E00
Dans un cas il faut laisser le + et dans l autre faut l enlever j ai pas tout compris mais ca a l air de marcher(il prend en compte les exposants) comme cela donc on verra par la suite si ca marche pour tout
Merci encore pour ton aide.
*jeune padawan des subtilites du Fortran*
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager