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 :

exporter un module


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut exporter un module
    Bonjour,

    j'ai un fichier structures.f90 qui contient le module suivant :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    module BIBIndQualStructures
     
    !*****************************************************************************
    !                                                                            *
    !                        Definition des types derives                        *
    !                                                                            *
    !*****************************************************************************
     
    type IndQual
      double precision :: Smin 
      double precision :: Smax
      double precision :: val 
      integer          :: color
    end type IndQual
     
    type Bruit
      double precision :: bm
      double precision :: di
    end type Bruit
     
    type Quality
      type(IndQual)    :: iq
      double precision :: ETR, TED, TEG, EM
    end type Quality
     
    contains
     
    !*****************************************************************************
    !                                                                            *
    !                        Definition des "constructeurs"                      *
    !                                                                            *
    !*****************************************************************************
     
    ! creation d'une structure IndQual
    subroutine createIndQual(Smin,Smax,val,color,iq)
      implicit none
      double precision, intent(in)  :: Smin, Smax, val
      integer,          intent(in)  :: color
      type(IndQual),    intent(out) :: iq
     
      iq%Smin  = Smin
      iq%Smax  = Smax
      iq%val   = val
      iq%color = color
    end subroutine createIndQual
     
    ! creation d'une structure Bruit
    subroutine createBruit(bm,di,b)
      implicit none
      double precision, intent(in)  :: bm, di
      type(Bruit),      intent(out) :: b
     
      b%bm = bm
      b%di = di
    end subroutine createBruit
     
    ! creation d'une structure Quality
    subroutine createQuality(ETR,TED,TEG,EM,iq,qual)
      implicit none
      double precision, intent(in)  :: ETR, TED, TEG, EM
      type(IndQual),    intent(in)  :: iq
      type(Quality),    intent(out) :: qual
     
      qual%iq%Smin  = iq%Smin
      qual%iq%Smax  = iq%Smax
      qual%iq%val   = iq%val
      qual%iq%color = iq%color
      qual%ETR      = ETR
      qual%TED      = TED
      qual%TEG      = TEG
      qual%EM       = EM
    end subroutine createQuality
     
    end module BIBIndQualStructures
    J'utilise ce module dans différents programmes. Je désire donc en faire une librairie (statique ou dynamique, peu m'importe) afin d'éviter une duplication de fichier source. Sous visual 2005 tout se passe bien. Mais le problème vient lors de l'appel à cette librairie. J'ai les erreurs suivantes :

    Error: Error in opening the compiled module file. Check INCLUDE paths. [BIBINDQUALSTRUCTURES]

    Error: This derived type name has not been declared. [BRUIT]

    Error: This derived type name has not been declared. [INDQUAL]

    Error: This name does not have a type, and must have an explicit type. [NOISE]

    Error: This is not a field name that is defined in the encompassing structure. [BM]

    Error: This is not a field name that is defined in the encompassing structure. [DI]

    Error: This name does not have a type, and must have an explicit type. [IQ]
    Le début du fichier en question est le suivant :

    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
     
          subroutine BIBVeI0IndQual(val_par,var_expli,var_a_expli,compteur,
         +noise,iq)
     
          use BIBIndQualStructures
     
          include 'BIBVeI0Header.f'
     
    c     Declarations
          type(Bruit)   noise
          integer       compteur
          real*8        val_par(*), var_expli(NbMaxEl,3), var_a_expli(*)
          integer       i, color, ier
          real*8        bm, di, Smin, Smax, valiq
          real*8        temps(NbMaxEl), temperature(NbMaxEl), 
         +              var_mod(NbMaxEl), vitesse(NbMaxEl)
     
    c     structure contenant les seuils et valeur de l'indicateur qualite
          type(IndQual) iq
    Savez-vous comment faire pour exporter un module ?

    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    Bonjour

    Error: Error in opening the compiled module file. Check INCLUDE paths. [BIBINDQUALSTRUCTURES]
    tu as un problème de compilation. tu dois spécifier à quel endroit tu vas chercher le .a crée à partir de ton module (si tu as généré une librairie statique) ainsi que le .mod qui est indispensable pour les interfaces.

    je ne connais pas visual studio mais il faut que tu rajoutes un chemin explicite vers le .a et le .mod de ton module dans les options de compilation.

    sur certains compilateurs que j'utilise, cette option est -I et sur un autre c'est -M (pour le .mod juste).

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Citation Envoyé par kango Voir le message
    Bonjour



    tu as un problème de compilation. tu dois spécifier à quel endroit tu vas chercher le .a crée à partir de ton module (si tu as généré une librairie statique) ainsi que le .mod qui est indispensable pour les interfaces.

    je ne connais pas visual studio mais il faut que tu rajoutes un chemin explicite vers le .a et le .mod de ton module dans les options de compilation.

    sur certains compilateurs que j'utilise, cette option est -I et sur un autre c'est -M (pour le .mod juste).
    Bonjour,

    oui j'ai bien compris que le compilo ne trouve pas mon module. Pourtant je linke bien avec mon .lib (librairie statique). Mais il ne trouve pas la "définition" de mes structures. Je ne sais pas trop comment le lui faire comprendre. L'idée étant de ne pas rajouter dans les sources mon fichier structures.f90 qui contient mon module...

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    linker avec la librairie statique ne suffit pas, le .mod est aussi requis.

    comme je te l'ai dit, spécifier un chemin au compilateur pour les .mod dépend du compilateur.

    tu auras peut être une piste ici:

    http://www.developpez.net/forums/d74...intel-fortran/

Discussions similaires

  1. [XL-2013] Exportation de module
    Par stum32 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/11/2014, 15h29
  2. [VBA-E]Exporter / importer tous les modules et frm d'un projet
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 6
    Dernier message: 16/03/2013, 18h37
  3. [AC-2003] Comment exporter un module dans une feuille Excel?
    Par SunRay dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/10/2009, 16h23
  4. Erreur lors de l'exportation des module par macro
    Par ckrikri dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2009, 14h02
  5. Réponses: 2
    Dernier message: 11/04/2006, 19h09

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