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 :

Constantes en double précision


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut Constantes en double précision
    Bonjour,

    J'ai des calculs très volumineux à réaliser avec une extrême précision (11 ième chiffre après la virgule). Ces développements sont importables (sans resaisie) sous la forme :

    Q = Q + 0.40989414976 * Cos(1.48302034194 + 26087.9031415742 * T)
    Q = Q + 0.05046294199 * Cos(4.47785489540 + 52175.8062831484 * T)
    Q = Q + 0.00855346843 * Cos(1.16520322351 + 78263.7094247226 * T)
    Q = Q + 0.00165590362 * Cos(4.11969163181 + 104351.612566297 * T) etc..

    Malheureusement je viens de me rendre compte que les constantes ne sont pas gérées en double précision !!!

    Double précision :: a

    a = 4.40250710144

    print *, a

    a qui est affiché : 4.40250730514

    si cette fois je déclare a = 440250.710144d-5

    a qui est affiché devient 4.40250710144000 ce qui est bon.

    J'ESPERE QUE JE NE VAIS PAS DEVOIR RE-ECRIRE EN PUISSANCE DE 10 LES 10800 CONSTANTES DE MES CALCULS !!!!

    Y-a-t-il une solution simple pour obtenir des calculs justes avec mes développements importés ?

    Merci d'avance.

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    print *, a
    Pourquoi n'utilises-tu pas des formats pour la lecture et l'affichage de tes valeurs?
    Jean-Marc Blanc

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Salut!

    Pourquoi n'utilises-tu pas des formats pour la lecture et l'affichage de tes valeurs?
    Jean-Marc Blanc
    Bonjour,

    Le formatage de sortie n'a pas de lien avec mon problème, car seuls les 6 permiers chiffres après la virgule sont pris en compte sur les constantes écrites sous le format standard. Il semble qu'il faille ré-écrire toutes les constantes sous la la forme xxxxx.yyyyyyd-z pour obtenir tous les chiffres significatifs !!! Même si je formate le format de sortie, le résultat reste le même et les calculs sont faux !

  4. #4
    Membre éprouvé
    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
    Par défaut
    Bonjour,

    Quel compilateur utilisez-vous? Il faut forcer le compilateur à utiliser par défaut des réels double précision via ces options :

    sous ifort "-r8"
    sous gfortran "-fdefault-real-8"

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut
    Citation Envoyé par bobbyboy Voir le message
    Bonjour,

    Quel compilateur utilisez-vous? Il faut forcer le compilateur à utiliser par défaut des réels double précision via ces options :

    sous ifort "-r8"
    sous gfortran "-fdefault-real-8"
    j'utilise INTEL VISUAL FORTRAN sous environnement VISUAL STUDIO 2008.
    je vais regarder si il y a des options de compilation dans ce sens ... Merci.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut
    Une constante double précision doit finalemnt obligatoirement être écrite en virgule flottante, le e étant remplacé par un d.


    Exemples :

    0d0
    0.d0
    1.d0
    1d0
    3.1415d0
    31415d-4
    1.6d-19
    1d12
    -36.d0

    eh oui il va falloir ajouter un d0 à toutes les constantes .... !!!

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/10/2008, 11h20
  2. Programme avec double précision
    Par feynman dans le forum Fortran
    Réponses: 17
    Dernier message: 22/02/2008, 14h06
  3. [Forth] Entrée double précision ?
    Par chemugle dans le forum Autres langages
    Réponses: 1
    Dernier message: 09/01/2007, 00h12
  4. Simple et double Précision en C
    Par r-o-m-z dans le forum C
    Réponses: 4
    Dernier message: 22/10/2006, 13h16
  5. Réponses: 3
    Dernier message: 12/11/2005, 07h32

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