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 :

Initialisation à NaN et compilation en mode de débogage


Sujet :

Fortran

  1. #1
    Membre régulier Avatar de rogue-spectre
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 104
    Points : 122
    Points
    122
    Par défaut Initialisation à NaN et compilation en mode de débogage
    Bonjour à tous,

    Je cherche un bug dans un code de calcul. J'espère pouvoir le trouver en forçant l'initialisation de tableaux allocatable à des NaN via

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      x = ieee_value(x, ieee_signaling_nan)
    et en compilant le reste du code avec les options permettant un crash du programme lors de l'utilisation d'une telle valeur.

    J'ai juste deux soucis lors de mes compilations :
    - Avec ifort j'utilise le flag "-fpe0" pour tous mes fichiers sauf celui contenant ma routine d'initialisation à NaN. Je peux lancer mon programme, mais celui-ci plante "seulement" si j'effectue une opération avec ma variable et non lorsque
    j'effectue une assignation simple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      b = x     ! pas d'erreur
      b = x*1  ! plantage du programme
    Savez vous comment faire planter mon programme pour le premier cas sauf dans le cas de la routine d'initialisation.

    - Avec gfortran j'utilise "-ffpe-trap=invalid,zero,overflow,underflow,inexact,denormal" sauf sur la routine d'initialisation. Le programme plante cette fois ci dans la routine d'initialisation, ce que je veux éviter. Savez s'il est possible et si oui comment faire pour que le programme ne plante pas à l'initialisation.



    Bonne rentrée à tous
    Libérez vos documents http://fr.libreoffice.org/ et vos doigts en tapant en BÉPO http://bepo.fr/wiki/Accueil:, rangez les cartes perforées dans une armoire et GOTO work

  2. #2
    Membre régulier Avatar de rogue-spectre
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 104
    Points : 122
    Points
    122
    Par défaut
    Avec gfortran il faut semble-t-il plutôt privilégier la solution d'initialisation forcée à NaN via les options du compilateur plutôt que d'utiliser ieee_value. On a donc une routine d'initialisation du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        real :: x
         real, dimension(:), allocatable :: t
     
         allocate(t(10))
         t=x
    à compiler avec -finit-real=snan et/ou -finit-real=snan. Cependant dans le reste du code on peut toujours faire du var1=var2 avec var2 à NaN.
    Libérez vos documents http://fr.libreoffice.org/ et vos doigts en tapant en BÉPO http://bepo.fr/wiki/Accueil:, rangez les cartes perforées dans une armoire et GOTO work

Discussions similaires

  1. Compiler en mode "light", sans objets etc.
    Par coyotte507 dans le forum Caml
    Réponses: 20
    Dernier message: 03/10/2008, 13h13
  2. Réponses: 1
    Dernier message: 08/04/2008, 13h46
  3. Problème de compilation en mode console
    Par fredonouille dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 18/03/2008, 10h10
  4. Réponses: 12
    Dernier message: 05/04/2007, 15h18
  5. Réponses: 1
    Dernier message: 02/02/2006, 11h10

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