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 :

[Débutant] Run-time error M6203 : MATH -exp OVERFLOW error


Sujet :

Fortran

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 11
    Points
    11
    Par défaut [Débutant] Run-time error M6203 : MATH -exp OVERFLOW error
    Bonjour,
    je débute en programmation fortran, et je trouve quelques difficultés.
    ma question est la suivante: j'utilise un programme en fortran utilisant l'expressio exp(T), avec T prenant des valeurs importantes, par exp T=1273K
    le probleme c'est que Fortran me renvoi un message d'erreur:
    run-time error M6203 : MATH
    -exp OVERFLOW error

    Merci de me répondre

  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 : 83
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Ton problème ne provient pas du Fortran, mais de ton processeur, avec lequel il est impossible de traiter des valeurs au-dessus d'une certaine limite. En fait, c'est un problème qui est mal posé: une fonction transcendante ne peut être appliquée qu'à une grandeur sans dimension et exp T=1273K n'a aucun sens.
    Jean-Marc Blanc

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci pour ta réponse. la valeur que je rentre est T=1273. j'ai juste mentionner l'unité (Kelvin)... Alors comment puis-je corriger mon problème?
    Merci
    Cordialement

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    exp(1273), c'est énorme ..., et ça dépasse les capacités usuelles de représentations des variables.
    En simple précision le plus grand réel représentable est de l'ordre de 10**38 (** pour puissance). En passant en double précision on arrive à 10**308.

    Pour info, la fonction huge() te permets de connaitre ces limites (il y a aussi tiny() pour connaitre les plus petites valeurs représentables):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ! afficher la plus grande valeur possible
    ! pour un reel simple precision:
    write(*,*) "huge(1.0)=",huge(1.0)
    ! afficher la plus grande valeur possible
    ! pour un réel double précision:
    write(*,*) "huge(1.d0)=",huge(1.d0)
    Bonne continuation.

  5. #5
    Membre éclairé Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Points : 825
    Points
    825
    Par défaut
    même avec des astuce style stocké un entier sur plusieur integer, je suis pas sûr qu'on puisse stocker un si grand nombre que exp(1273)

    t'es sûr de ta formule??? il y a pas moyen de la contourner??? genre si tu as exp(T)/exp(T2) tu rassemble le tout et tu a un plus petit nombre dans ton exp.....

    parce que là y a pas trop d'autre solution... je pense le plus simple est de revoir la formule

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

Discussions similaires

  1. run time error 6 : overflow
    Par Elcocco dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/02/2012, 10h22
  2. Run-time error 6 Overflow
    Par askan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2009, 20h22
  3. Run-time error M6201: MATH - log: DOMAIN error
    Par rihab1509 dans le forum Fortran
    Réponses: 4
    Dernier message: 09/04/2009, 14h11
  4. Réponses: 4
    Dernier message: 26/04/2008, 00h34
  5. Run Time Error 6 Overflow VBA du à appel C++(dll)
    Par mamok dans le forum Général VBA
    Réponses: 1
    Dernier message: 15/06/2007, 14h27

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