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 :

Structures dans des modules


Sujet :

Fortran

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Structures dans des modules
    Bonjour, j'ai un problème avec fortran.
    Je souhaite utiliser une structure dans plusieurs modules.
    voila ce que j'ai fait :

    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
     
    MODULE blabla
    IMPLICIT NONE
     
    CONTAINS
     
    SUBROUTINE sub1(A)
    TYPE(matCSR), INTENT(IN) :: A
    ...
    END SUBROUTINE sub1
     
    SUBROUTINE sub2(A)
    TYPE(matCSR), INTENT(INOUT)
    ...
    END SUBROUTINE sub2
    END MODULE blabla
     
    PROGRAM projet
    USE blabla
     
    IMPLICIT NONE
    TYPE matCSR
    integer...
    ...
    END TYPE matCSR
     
    TYPE(matCSR) :: A
     
    ....
    CALL sub1(A)
    ...
    END PROGRAM projet
    Voila seulement lorsque je compile, l'erreur suivante s'affiche:
    "Derived type 'matCSR' is being used before it is defined"

    Quelqu'un pourrait m'aider à corriger mon ou mes erreurs s'il vous plaît ?

    Merci!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 152
    Points : 191
    Points
    191
    Par défaut
    Salut,

    Pourquoi ne pas avoir déclaré ton type dérivé dans le module ?

    Là, sauf erreur de ma part, tu as un problème d'ordre de compilation : le module blabla est compilé avant le programme. Or le module blabla ne connait pas le type dérivé
    matCSR, d'où l'erreur je pense.

    Si tu déclarais ton type dérivé juste après la déclaration du module avec une syntaxe du type :

    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
     
    MODULE BLABLA
    IMPLICIT NONE
    TYPE matCSR
    [...]
    END TYPE matCSR
     
    CONTAINS
    [...]
    END MODULE BLABLA
     
    PROGRAM
    USE BLABLA
    TYPE(matCSR), ... :: VAR1
    [...]
    END PROGRAM
    cela devrait résoudre le problème.

    EDIT : je te rajoutes un petit code exemple :
    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
     
    module MON_MOD
    implicit none
     
    	TYPE BLABLA
    		integer :: ITEST
    	end TYPE BLABLA
     
    	contains
    	subroutine TESTALPHA(I)
    	implicit none
    		TYPE(BLABLA),intent(in) :: I
    		print*,I%ITEST
    	end subroutine TESTALPHA
     
    end module MON_MOD
     
    program TEST
    use MON_MOD
    implicit none
    	type(BLABLA) :: A
     
    	A%ITEST=1
     
    	print*,A%ITEST
     
    	call TESTALPHA(A)
     
    end program TEST
    En espérant avoir répondu à ta question,

    Marlan

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Bonjour,
    Désolé pour ma réponse tardive mais merci pour la réponse qui a réglé mon souci

    HydroFire.

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

Discussions similaires

  1. [Python 3.X] Import dans des modules? Comment faire et quelles sont les bonnes pratiques?
    Par Davjack dans le forum Général Python
    Réponses: 2
    Dernier message: 03/07/2014, 12h13
  2. Réponses: 19
    Dernier message: 15/03/2010, 10h45
  3. Réponses: 2
    Dernier message: 13/04/2007, 13h03
  4. [VB6] Modification des propriétés d'un objet de form dans un module
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 09/06/2006, 09h46
  5. Réponses: 9
    Dernier message: 06/06/2006, 22h05

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