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 :

g95 contre gfortran


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut g95 contre gfortran
    voilà j'ai un problème tout bête:

    voici un code f95: dans un fichier toto.f90
    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
    module pdscal
    !
    interface operator (.scalt.)
      module procedure ps_t
    end interface
    interface
        function ps_t (x)
          implicit none
          real (kind = 8), intent (in) :: x
          real (kind = 8) :: ps_t
        end function ps_t
    end interface
    end module pdscal
    function ps_t (x)
      implicit none
      real (kind = 8), intent (in) :: x
      real (kind = 8) :: ps_t
          ps_t = x +1.d0
      return
    end function ps_t
    je cherche seulement à le compiler:
    gfortran -c toto.f90 -> pas d'erreur tout se passe bien
    g95 -c toto.f90 me renvoie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    In file toto.f90:8
     
        function ps_t (x)
                 1
    Error: MODULE PROCEDURE 'ps_t' at (1) never appeared in a module
    à noté, si je transforme le bloc interface en un contains, là, pas d'erreur...

    ma question: qu'est ce que j'ai fait de mal????

    je veux dire pourquoi g95 n'en veut pas de ce code (c'est un morceau épuré qui est contenu dans un gros truc, je peux pas tout changer)

    de plus, j'ai un collègue qui m'a dit que sur le compilo ifort cela marchait...

  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
    Par défaut
    À mon avis, le meilleur endroit pour avoir une réponse à ce genre de question est comp.lang.fortran sur Usenet que tu peux également accéder via Google Groups (http://groups.google.com/group/comp.lang.fortran/topics). Tu devras cependant soumettre ta question en anglais...

  3. #3
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    j'ai trouvé ma réponse tout seul:

    ce code là marche, mais c'était juste un test personnel pour voir, je n'ai vu ça nul part ailleurs.. donc si qqun a des idées...

    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
     
    module toto
    implicit none
    interface operator (.ps.)
      real (kind = 8) function ps_phi (x, y)
        implicit none
        real (kind = 8), intent (in) :: x, y
      end function ps_phi
    end interface
    end module toto
    real (kind = 8) function ps_phi (x, y)
      implicit none
      real (kind = 8), intent (in) :: x, y
      !
      ps_phi=x*y
      return
    end function ps_phi
    en gros on utilise pas du tout le traditionnel "module procedure" et on met directement l'entête des la fonction dans le "interface operator" je trouve ça un peu trop simple mais aparament cela marche!!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/06/2010, 17h51
  2. Problèmes avec Gfortran g95 (générateur aléatoire)
    Par genie_civil2006 dans le forum Fortran
    Réponses: 1
    Dernier message: 04/08/2009, 16h03
  3. Réponses: 1
    Dernier message: 08/07/2009, 08h14
  4. [Fortran 95] g95 ou gfortran ?
    Par rud-x dans le forum Fortran
    Réponses: 1
    Dernier message: 24/08/2005, 10h33
  5. Protéger une disquette contre la copie
    Par benzaza dans le forum Assembleur
    Réponses: 20
    Dernier message: 16/01/2005, 10h42

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