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