IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

Problème format de sortie réel


Sujet :

Fortran

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Points : 128
    Points
    128
    Par défaut Problème format de sortie réel
    Bonjour,
    Je rencontre un problème de format d'écriture en manipulant des réels dont l'exposant est à 3 chiffres. Le programme suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    integer(kind=4) :: i
    real(kind=8) :: a
     
    a = 1.0D-99
    do i = 1 , 2
       a = a / 10.0D0
       write(*,"(E15.8)") a
    enddo
    sort :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     0.10000000E-99
     0.10000000-100
    Le signe "E" n'apparait plus ce qui est génant pour la lecture des fichiers par un autre programme.

    Tous les formats explicites que j'ai essayé donnent le même problème.
    Il n'y a que le format libre "*" qui affiche bien "E-100" mais je ne peux pas l'utiliser pour d'autres raisons (le fichier de sortie doit être bien formater pour le post-traitement)

    Quelqu'un connait-il une manière de traiter ce problème ?
    Je travaille sous Linux (RedHat) et compile avec ifort (v10.1)

    Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    As-tu essayé avec la forme étendue Ew.dEe ? Par exemple, E12.6E3 ?

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Points : 128
    Points
    128
    Par défaut
    Merci,
    je ne connaissais pas cette forme étendue, personne ne la présente dans les cours fortran que j'ai vu sur internet

    Mais du coup, quel est l'intérêt du format Dn.p par rapport au En.p ? Les deux affichent la même chose (à la lettre d'exposant près ...). Mais d'après le cours disponible sur le forum, Dn.p est censé être spécifiques aux varibles double précision.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    Citation Envoyé par bobbyboy Voir le message
    ...quel est l'intérêt du format Dn.p par rapport au En.p ? Les deux affichent la même chose (à la lettre d'exposant près ...). Mais d'après le cours disponible sur le forum, Dn.p est censé être spécifiques aux varibles double précision.
    Je ne sais pas. J'utilise Fortran dans des applications financières où il est rare que des quantités monétaires soient exprimées en notation scientifique...

    J'ai déjà lu (de Richard Maine je crois - gourou Fortran) qu'il n'y a pas de différence entre E et D. C'est la variable associée qui dicte la précision et non le format.

    Bon, question de ne pas dire des faussetés, je viens de lire à l'instant les sections pertinentes de 2 manuels. Les seules différences sont :
    • La forme étendue n'est pas disponible avec D.
    • À l'écriture, la forme D produit un "D" plutôt qu'un "E" pour l'exposant, ce qui n'est pas très portable à d'autre langage...

    J'en conclue donc qu'on ne devrait jamais utiliser Dw.d

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Points : 128
    Points
    128
    Par défaut
    Ok merci bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] debutant format de sortie d un fichier
    Par Slumpy dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/05/2006, 21h49
  2. format de sortie commande \pset
    Par Alesk dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 30/01/2006, 14h48
  3. Réponses: 19
    Dernier message: 20/12/2005, 10h03
  4. [oracle][delphi] Problème format de date dans une requete
    Par le_parrain dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/07/2005, 10h12
  5. Réponses: 11
    Dernier message: 13/10/2004, 00h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo