+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Invité régulier
    Inscrit en
    novembre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : novembre 2008
    Messages : 38
    Points : 9
    Points
    9

    Par défaut [PYTHON/FORTRAN] Problème accés à COMMON Block Python Fortran

    Bonjour tout le monde ,
    J'ai une libraire FORTRAN et j essaie d'utiliser cette librairie via un script python. Pour cela avec f2py, je créer le module Python a partir de "MaLibFortran".

    Code :
    1
    2
     
    f2py -c FichierSourcedelalibFortran -m MalibFortran --fcompiler=gnu95 --f90flags=-O3
    Ma librairie FORTRAN contient un COMMON
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    * INCLUDE ZCTRAN
     
          INTEGER       NMAX
          PARAMETER    (NMAX=50)
     
          REAL*8        PI
          PARAMETER    (PI=3.1415926535D00)
     
          COMPLEX*16    II
          PARAMETER    (II=(0.D00,1.D00))
     
    *
          COMMON /ZCTRAN/ SOMMET,EXC,TC,KC,ZFIX
     
          COMMON /ZCTRAN/ ANG,EX,LONG,LINT,T,XP,YP,ERREL
          COMMON /ZCTRAN/ K,PERIM,PERIMINT,QPUIT,ERRMAX,ERRMOY,ECERRM
          COMMON /ZCTRAN/ DTMIN,DTMAX,LARC,R,LMAXP,PRECG,PRECMI,PRECMA
     
          COMMON /ZCTRAN/ NCOTE,IINF,IFIX1,IFIX2,ICONT,
         .                IZFIX,IPUIT,NLIGNE,IMARQ
     
          COMMON /ZCTRAN/ OUVERT

    J'aimerais donc dans mon code python avoir accés à :
    Code :
    1
    2
    3
    4
    5
    6
    7
    >>> import MalibFortran 
    >>> MalibFortran .f1() #f1 etant une fonction , ca c'est ok ca fonctionne
    >>> print MalibFortran.ZCTRAN.NCOTE # !!!!!!!!!!!!! Ne fonctionne pas : voici le message d erreur : Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    AttributeError: 'module' object has no attribute 'ZCTRAN'
    
    Pouvez vous m'aider s'il vous plait...

  2. #2
    Invité régulier
    Inscrit en
    novembre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : novembre 2008
    Messages : 38
    Points : 9
    Points
    9

    Par défaut

    La solution que j ai trouvé est celle ci ...

    COMMON /ZCTRAN/ SOMMET,EXC,TC,KC,ZFIX,
    . ANG,EX,LONG,LINT,T,XP,YP,ERREL,
    . K,PERIM,PERIMINT,QPUIT,ERRMAX,ERRMOY,ECERRM,
    . DTMIN,DTMAX,LARC,R,LMAXP,PRECG,PRECMI,PRECMA,
    . NCOTE,IINF,IFIX1,IFIX2,ICONT,
    . IZFIX,IPUIT,NLIGNE,IMARQ,
    . OUVERT

    et l appel se fait
    MalibFortran.zctran.ncote # Mettre en minuscule

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •