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 2003] Erreurs d'exécution


Sujet :

Fortran

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut [Fortran 2003] Erreurs d'exécution
    Bonjour,

    Voici mon programme en Fortran 2003:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    !####################################################################### 
    program model 
     
    real, dimension(:), allocatable :: arr1
    real, dimension(8) :: arr2 = (/ 1., 2., 3., 4., 5., 6., 7., 8. /)
    real, dimension(3) :: arr3 = (/1., -2., 3. /)
     
    arr1 = 2. * arr2
    print *, arr1
     
    end program model 
    !#######################################################################
    C'est un exemple de la page 401 du livre Chapman, S. 2007. Fortran 95/2003 for Scientists And Engineers, McGraw-Hill.

    Je le compile avec l'Intel Fortran Compiler:
    ifort model.f90

    La compilation s'effectue correctement, mais l'execution du programme affiche une ligne vide, et pas le contenu de arr1. Si je remplace par print *, arr2, l'affichage est correct.
    Je ne comprends pas ce que je fais de faux.

    J'ai essayé avec gfortran, en compilant avec
    gfortran model.f90

    et le programme donne une 'Segmentation fault'.
    Je ne comprends pas non plus ce que je fais de faux.

    Merci de votre aide, je débute en Fortran...

    Guillaume

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Bonjour,

    le tableau 'arr1' est déclaré comme 'allouable', mais n'est jamais alloué !!

    D'où les erreurs que tu obtiens à l'exécution ...

    Bonne continuation

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut
    Citation Envoyé par Ehouarn Voir le message
    le tableau 'arr1' est déclaré comme 'allouable', mais n'est jamais alloué !!
    Je croyais qu'en Fortran 2003, on pouvait allouer un tableau a partir d'un autre (des lors qu'ils ont le same rank), sans explicitement ecrire l'etape d'allocation, qui est comprise dans arr1 = 2.*arr2

    Ce n'est donc pas le cas ?

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Je ne sais pas (je ne suis pas très au fait des ajouts du F2003 par rapport au 90/95).
    Si le F2003 permet effectivement cela, il semble bien que tes compilateurs ne le prennent pas en charge...
    Une possible explication: ton programme se nomme 'model.f90' et l'extension 'f90' indique peut-être aux compilateurs qu'il s'agit de Fortran 90 et pas 2003.
    Je te conseille en tous cas de compiler avec le plus d'options de débogage possible (par ex. 'gfortran -O2 -Wall -Wextra') pour voir ce qu'en disent tes compilateurs.

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut
    Citation Envoyé par Ehouarn Voir le message
    Je ne sais pas (je ne suis pas très au fait des ajouts du F2003 par rapport au 90/95).
    Si le F2003 permet effectivement cela, il semble bien que tes compilateurs ne le prennent pas en charge...
    Une possible explication: ton programme se nomme 'model.f90' et l'extension 'f90' indique peut-être aux compilateurs qu'il s'agit de Fortran 90 et pas 2003.
    Je te conseille en tous cas de compiler avec le plus d'options de débogage possible (par ex. 'gfortran -O2 -Wall -Wextra') pour voir ce qu'en disent tes compilateurs.
    J'ai trouvé Pour le compilateur intel, il faut compiler comme ceci, et ca marche:

    ifort model.f90 -assume realloc_lhs

Discussions similaires

  1. [Fortran 77] Erreur lors de l'exécution d'un programme
    Par mehdi_oca dans le forum Fortran
    Réponses: 1
    Dernier message: 06/03/2009, 04h19
  2. Réponses: 1
    Dernier message: 18/12/2008, 13h43
  3. (VBA Excel 2003) Erreur d'exécution 91 !
    Par niavlys26 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/07/2008, 02h46
  4. Une Erreur d'exécution Access 2003
    Par crazy_inf dans le forum IHM
    Réponses: 8
    Dernier message: 09/05/2008, 09h46
  5. erreur d'exécution '48' dans access 2003
    Par SANGLIER dans le forum Access
    Réponses: 1
    Dernier message: 25/01/2007, 19h01

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