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 :

Comportement d'argument optionnel étrange selon option de compil


Sujet :

Fortran

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Points : 128
    Points
    128
    Par défaut Comportement d'argument optionnel étrange selon option de compil
    Bonjour,

    Je travaille sur machine Linux 64b et j'utilise le compilateur Intel v10.1 (ifort).

    J'ai constaté des petits "problèmes" de comportement en fonction des options de compilations lorsque j'utilise plusieurs arguments optionnels.

    Sur l'exemple suivant, je teste seulement si les arguments optionnels sont actifs ou pas. D'après l'appel de la routine, ils devraient être inactifs tous les deux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    program test
    implicit none
    integer(kind=8) :: a
    a = 99
    call sub_test (a)
    end
     
     
    subroutine sub_test ( arg_fixe , arg_opt1 , arg_opt2 )
    implicit none
    integer(kind=8) :: arg_fixe
    integer(kind=8),optional :: arg_opt1
    integer(kind=8),optional :: arg_opt2
     
    write(*,*) present(arg_opt1)
    write(*,*) present(arg_opt2)
    write(*,*) arg_fixe
     
    return
    end subroutine
    Voici les résultats de l'execution pour 2 types d'options de compilations :

    sans options :
    ifort -o test test.f90
    Ce qui est le comportement souhaité.


    option debug :
    ifort -ftrapuv -o test test.f90
    ...

    L'option "-ftrapuv" est cencée détecter les variables non initialisées. Mais là je ne comprend pas ce qui se passe.

    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
    En général, quand le résultat / comportement est affecté par une option d'optimisation, c'est qu'il y a un bug dans le programme...

    Dans ton cas, le code présenté est illégal parce que les arguments optionnels requièrent une interface explicite, donc un bloc interface, un module, ou placer la routine dans une section « contains ».

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Points : 128
    Points
    128
    Par défaut
    Ok merci

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

Discussions similaires

  1. Argument optionnel d'une fonction
    Par Xunil dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/02/2007, 22h33
  2. [URLRewriting] rewriterule argument optionnel
    Par damjal dans le forum Apache
    Réponses: 3
    Dernier message: 23/02/2007, 14h17
  3. Réponses: 4
    Dernier message: 16/02/2007, 11h51
  4. comportement d'une page étrange
    Par Agrumes dans le forum Langage
    Réponses: 3
    Dernier message: 27/07/2006, 09h58
  5. Arguments optionnels fonction PL/SQL
    Par Sparal dans le forum PL/SQL
    Réponses: 4
    Dernier message: 23/06/2006, 11h32

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