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 :

Fonctions déclarées en external


Sujet :

Fortran

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 21
    Points : 11
    Points
    11
    Par défaut Fonctions déclarées en external
    Bonjour tout le monde,

    Je voudrais savoir comment fait Fortran pour savoir quelles valeurs affecter aux arguments d'une fonction déclarée en external, et appelée sans paramètres....
    Je m'explique : j'ai un programme qui marche nickel, et qui contient un main, une fonction f1(x,y) et f2(z,f1); f1 étant déclarée en tant que external.
    Dans le main, on appelle f2 directement comme ça
    Ce que je ne comprends pas c'est comment fait le programme pour connaître les valeurs de x et y (les paramètres de f1)?? sachant qu'il n'y a absolument rien dans le main sur f1 ni ses arguments x et y...
    (pour z, il n'y a pas de problème, je veux juste savoir comment fortran sait quels x et y entrer pour calculer f1(x,y)).

    Je ne sais pas si ce que j'ai écrit est clair..
    Merci de votre aide ^^

  2. #2
    Membre averti
    Homme Profil pro
    [SciComp]
    Inscrit en
    Août 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : [SciComp]

    Informations forums :
    Inscription : Août 2013
    Messages : 134
    Points : 323
    Points
    323
    Par défaut
    Bonjour,

    Dans ce contexte, c'est la procédure f1 qui est passée en argument, et non une valeur particulière de la fonction f1.
    Ainsi, c'est dans f2 que seront spécifiés les arguments de f1, un truc du genre
    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
     
    program main
      [...]
      f2(xxx,f1)
      [...]
    end program main
     
    function f1(a1,a2)
      [...]
    end function f1
     
    function f2(zdummy,fdummy)
      [...]
      external fdummy
      [...]
      val=fdummy(arg1,arg2)
      [...]
    end function f2
    dans cet exemple, c'est uniquement à la ligne val=fdummy(arg1,arg2) que seront spécifiés les arguments de f1.

    Mettre une procédure en argument, c'est se permettre de pouvoir interchanger cette procédure.
    Par exemple, une fonction (au sens routine informatique) de recherche de racine ou de minimum de fonctions (au sens mathématiques) permet d'avoir une routine générique applicable à plusieurs problèmes.

    Cordialement,
    xflr6

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par xflr6 Voir le message
    Bonjour,

    Dans ce contexte, c'est la procédure f1 qui est passée en argument, et non une valeur particulière de la fonction f1.
    Ainsi, c'est dans f2 que seront spécifiés les arguments de f1, un truc du genre
    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
     
    program main
      [...]
      f2(xxx,f1)
      [...]
    end program main
     
    function f1(a1,a2)
      [...]
    end function f1
     
    function f2(zdummy,fdummy)
      [...]
      external fdummy
      [...]
      val=fdummy(arg1,arg2)
      [...]
    end function f2
    dans cet exemple, c'est uniquement à la ligne val=fdummy(arg1,arg2) que seront spécifiés les arguments de f1.

    Mettre une procédure en argument, c'est se permettre de pouvoir interchanger cette procédure.
    Par exemple, une fonction (au sens routine informatique) de recherche de racine ou de minimum de fonctions (au sens mathématiques) permet d'avoir une routine générique applicable à plusieurs problèmes.

    Cordialement,
    xflr6
    Bonjour xflr6 et merci beaucoup de votre réponse. Je comprends mieux !

    Cordialement,
    S.B.

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

Discussions similaires

  1. Réponses: 24
    Dernier message: 21/05/2010, 09h05
  2. Conflicting types dans fonction déclarée
    Par Spikeuh dans le forum C
    Réponses: 8
    Dernier message: 22/06/2008, 17h49
  3. [AJAX] Accès fonctions déclarées dans page chargée par Ajax
    Par yagrasdemonde dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 04/02/2008, 15h33
  4. Réponses: 5
    Dernier message: 25/01/2008, 11h15
  5. Réponses: 1
    Dernier message: 22/05/2006, 11h27

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