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 avec select case


Sujet :

Fortran

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Problème avec select case
    Bonjour,

    Dans un programme très lourd, j'ai écrit une partie de code très simple du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select case (ilwr)
    case(1)
    .......
    case(2:4)
    ..........
    end select
    Je me suis rendu compte que le cas 2 ne fonctionne pas quand ilwr.eq.2.
    En regardant la démarche suivie dans le debugeur, je me rend compte qu'après select case le programme exécute une ligne de case 1.

    Je sais ce n'est pas très concret mais le programme est beaucoup trop lourd pour l'exposer ici.

    Ma question est juste : est ce que quelqu'un a déjà été confronté a ce genre de problème et si oui quelle en est la cause ?


    Merci de votre aide

  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
    Je n'ai jamais vu ou entendu quelque chose du genre. Je viens de chercher sur Google dans comp.lang.fortran et je ne trouve rien...

    2 pistes possibles :
    • ton sélecteur (ilwr) provient d'un réel et il est légèrement sous 2
    • il y a un bug plus majeur et la mémoire est corrompue

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    il y a un bug plus majeur et la mémoire est corrompue

    vu la taille du programme, je pense qu'on est dans ce cas la...
    Est ce que tu as une idée de ce qui peux corrompre la mémoire,
    Si tu peux me donner deux trois exemples pour avoir une piste

    Merci pour ton aide

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    as tu verifié que ilwr soit un entier ?? car ce que tu mets ds l'expression scalaire et dans le selecteur doivent etre du meme type ......

  5. #5
    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
    Tu dois effectivement t'assurer que le sélecteur est bien entier (parce que c'est beaucoup plus simple à règler que la corruption de mémoire).

    Corruption de mémoire ? Les causes sont généralement parmi les suivantes :

    • Assignation à un vecteur en dehors de sa définition, par exemple : real A(10); A(-300) = 0.0
    • Appels de fonctions (ou sub) avec un mauvais type ou un mauvais nombre d'arguments. Pour les fonctions dans des modules, ce type d'erreur est plus improbable grace aux interfaces explicites générés par le compilateur (dans le .mod)


    Dans les 2 cas, il est souvent difficile de trouver l'erreur. Les solutions efficaces sont :
    • Activer toutes les « switches » de débogage du compilateur
    • Essayer avec un autre compilateur. L'idée n'est pas de trouver un meilleur compilateur, mais comme le comportement d'un programme « illégal » sera très différent d'un compilateur à l'autre, on augmente beaucoup nos chances de trouver l'erreur en ayant 2 « diagnostiques » différents (J'ai eu besoin personnellement de 3 compilateurs pour trouver un bogue l'an dernier). Un compilateur commercial avec période d'essai 30 jours fait très bien l'affaire pour cette tâche.

Discussions similaires

  1. [XL-2003] Problème avec select case
    Par tioch dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/06/2011, 14h39
  2. problème avec SELECT CASE
    Par skeeler dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/02/2008, 10h51
  3. probléme avec Select Case
    Par polodu84 dans le forum Général VBA
    Réponses: 9
    Dernier message: 01/02/2008, 12h57
  4. [Débutant] Problème avec select case
    Par feynman dans le forum Fortran
    Réponses: 2
    Dernier message: 11/09/2007, 16h35
  5. Problème avec Select case !
    Par kaiser59 dans le forum ASP
    Réponses: 4
    Dernier message: 27/05/2007, 13h55

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