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 :

[Fortran 90] Segmentation fault étrange


Sujet :

Fortran

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Fortran 90] Segmentation fault étrange
    Bonjour,

    Je suis en train de développer un code scientifique sur fortran90 et, lors de la compilation, j'ai un "forrtl: sever(174) :SIGSEGV; segmentation fault"
    J'ai beau chercher mais je ne trouve pas de raison pour laquelle mon code plante, surtout là où il plante (cf ci dessous).

    Je travaille sous Lunix (Tao Linux)
    1) j'ai utilisé la compilation : ifort -O3 -CB ,ainsi lors des dépacements de tableau je suis averti (cause principale des segmentation fault),
    2) j'ai également regardé l'évolution de la mémoire vive lorsque que mon code "tourne" et je ne dépasse pas les 50% des ressources.
    En mettant pause après "print *,rate1" afin de bien voir où ça plantait (car entre le temps entre l'affichage sur l'écran de rate1 et le segmentation fault il se peut que le programme aie effectué d'autres opérations).

    J'ai réussi à identifier où mon code plantait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      print *,'6',qvib_TS,qvib,kb,Temp,h,Ediff
      print *,'le calc',1e5*(qvib_TS/qvib)*(kb*Temp/h)*exp(-Ediff/(kb*Temp))
      rate1=1e5*(qvib_TS/qvib)*(kb*Temp/h)*exp(-Ediff/(kb*Temp))
      print *,rate1
    Le programme parvient à faire ces opérations jusqu'à un moment où il plante entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print *,'le calc',1e5*(qvib_TS/qvib)*(kb*Temp/h)*exp(-Ediff/(kb*Temp))
    et
    avec segmentation fault.

    Et je ne sais pas pourquoi.

    Est-ce que quelqu'un a une idée du pourquoi comment.

    Merci de votre aide.
    Nikosnikov

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Etrange en effet. Les variables impliquees dans le calcul sont toutes scalaires (i.e. pas de tableau) ? Il faudrait egalement couper l'optimisation de niveau 3 tant que tu es en mode debug (-CB ou -g), car la semantique du programme est modifiee, ce qui peut faire echouer le bound checking des tableaux.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci DaZumba,

    Dans mon programe il y a beaucoup de tableaux, mais en fait je vien de trouver pourquoi ca ne marchait pas, en fait il y a deux raisons
    En fait le bout de programme que j'ai montré est inclu dans une subroutine.
    Cette subroutine est appellée dans deux subroutines différentes et dans l'une d'elle j'avais oublié implicit none... et de plus dans les arguments d'une de mes deux subroutines étaient diférentes entre l'appel dans le programe principal et la déclaration de la subroutine.
    Sinon merci pour les options de compilations, je t'avouerai que je n'y comprend pas grand chose je ne suis pas pragrameur. Je suivrai ton conseil .

    nikosnikov

Discussions similaires

  1. [Fortran 77] Segmentation fault
    Par vinche dans le forum Fortran
    Réponses: 1
    Dernier message: 29/06/2005, 11h03
  2. [SDL_Image] Img_Load : segmentation fault ....
    Par Mathieu.J dans le forum OpenGL
    Réponses: 6
    Dernier message: 19/10/2004, 23h52
  3. [REDHAT] Segmentation fault systematique
    Par mela dans le forum RedHat / CentOS / Fedora
    Réponses: 2
    Dernier message: 21/09/2004, 06h05
  4. Réponses: 13
    Dernier message: 13/07/2004, 15h41
  5. Comment contrer la "segmentation fault" ?
    Par guillaume_pfr dans le forum C
    Réponses: 15
    Dernier message: 08/08/2003, 13h43

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