Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / F2py failed with exit status 1

F2py failed with exit status 1

Remonter à Forum général Python
  • F2py failed with exit status 1

    Envoyé par Dreyliciouss le 19 Juillet 2010 à 06:55
    Bonjour à tous,

    J'ai écris une routine en Fortran qui a pour but de récupérer les valeurs d'un tableau passé en paramètre et de les écrire dans un fichier binaire.
    Voici le code :

    C Subroutine simple pour récupérer les valeurs d'un tableau et
    C les écrire dans un fichier

    SUBROUTINE ecriproj(TAB,d,nAng,largCha)


    REAL :: largColTot
    REAL, INTENT(IN) :: d,nAng
    INTEGER, INTENT(IN) :: largCha
    INTEGER :: NENRG
    INTEGER :: nl
    REAL, DIMENSION(nAng*d,largCha) :: TAB
    REAL, DIMENSION(nAng*d,largCha) :: RECU
    CHARACTER*150 FICPRJ

    largeur = largCha
    FICPRJ= 'im.proj'
    NENRG = 0
    nl = nAng*d

    C Récupération des données du tableau

    DO m = 1, nl
    DO n = 1, largeur
    RECU(m,n) = TAB(m,n)
    WRITE (*,*) RECU(m,n)
    END DO
    END DO


    largColTot=d

    C Création du fichier de sortie

    OPEN ( UNIT=1, FILE=FICPRJ , STATUS='NEW' , IOSTAT=IO )
    DO J = 1 , largeur ! largeur de trou
    DO I = 1, nl
    NENRG = NENRG + 1
    !on écrit les résultats des projections dans le fichier de sortie
    WRITE (IUREP,REC=NENRG2) TAB(I,J)
    END DO
    END DO
    CLOSE(1)
    RETURN
    END SUBROUTINE

    Je souhaite l'utiliser avec python en utilisant le module f2py.
    J'exécute la commande f2py -c -m petit petit.f et j'obtiens l'erreur suivante:

    error: Command "/usr/bin/g77 -g -Wall -fno-second-underscore -fPIC -O3 -funroll-loops -I/tmp/tmpw41Mch/src.linux-i686-2.6 -I/usr/lib/python2.5/site-packages/numpy/core/include -I/usr/local/include/python2.6 -c -c petit.f -o /tmp/tmpw41Mch/petit.o" failed with exit status 1


    Auriez-vous une idée d'où cela peut-il provenir?
    Merci d'avance!
    • Re: F2py failed with exit status 1

      Envoyé par troisseize le 19 Juillet 2010 à 08:10
      Bonjour,

      Avant de créer un module Python avec f2py, il faut déjà que le code Fortran ne contiennent pas d'erreurs. As tu essayer de compiler simplement avec gfortran?

      gfortran -c petit.f


      J'ai testé et obtenu quelques erreurs:
      - Il y a un mélange de commentaire au format Fortran77 (lignes commençant par un C) et format Fortran90 (lignes commencancant par un !). J'ai carrément enlever tous les commentaires pour le test.
      - Les tableaux TAB et RECU ont pour première dimension: nAng*d. nAng et d doivent donc être de type INTEGER et non REAL.
      - (ne pas oublier les 6 caractères espaces au début de chaque ligne pour le Fortran77, ça n'a pas du passer dans la mise en forme du post).

      Avec ça, la commande

      gfortran -c peti.f


      a fonctionnée, et la commande f2py a marchée également:

       f2py -c -m petit petit.f 


      J'espère que ça marchera chez toi aussi, f2py est vraiment génial.
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 20 Juillet 2010 à 09:50
      Merci beaucoup pour ton aide!
      Erreur résolue =)
      Vraiment merci!
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 20 Juillet 2010 à 09:53
      Peut-êtrep pourra tu m'aider de nouveau car j'ai l'impression que tu t'y connais bien en interfaçage python/fortran. Mon problème est le suivant:

      J'ai donc écrit une routine en fortran qui récupère en paramètre un tableau et ses dimensions entre autres. Je souhaite l'utiliser pour lire les valeurs de ce tableau écrit dans un programme python en utilisant la routine fortran dans mon fichier python.

      Cependant, en affichant les dimensions récupérées en paramètre dans la routine fortran, je m'aperçois que les valeurs sont modifiées.

      Je lui passe exactement un tableau et 5 entiers. Je récupère bien les valeurs du tableau mais les valeurs des entiers sont affectées aléatoirement parmis les 5 entiers. Pour être plus claire, je définie les paramètres dans mon fichier python a=5, b=32 et c=20. Une fois passées en paramètres en fortran, je me rend compte que a = 20, b=5 et c=32.

      Aurais-tu une idée pour transmettre correctement ces varariables à la routine?
    • Re: F2py failed with exit status 1

      Envoyé par troisseize le 20 Juillet 2010 à 11:15
      Normalement il n'y a pas de problème à ce niveau.

      Peut etre cela vient du fait que f2py permet d'appeler les subroutines Fortran de façon plus "Pythonic", lorsque le fichier source Fortran contient assez d'informations (intent(out),... ):
      - les variables "out" sont passées à gauche du signe égal,
      - les dimensions des tableaux sont des arguements optionels, et deviennent donc les derniers arguements.

      Par example:


      !file: foo.f90

      subroutine foo(output,array,nx,ny,i1,i2,i3)

      implicit none

      integer,intent(in):: nx,ny,i1,i2,i3
      real,dimension(nx,ny),intent(in):: array
      real,intent(out):: output

      write(*,*) 'Fortran: array(1,1)', array(1,1)
      write(*,*) 'Fortran: array(1,2)', array(1,2)
      write(*,*) 'Fortran: array(2,1)', array(2,1)
      write(*,*) 'Fortran: array(2,2)', array(2,2)
      write(*,*) 'Fortran: sum(array)', sum(array)

      write(*,*) 'Fortran: i1',i1
      write(*,*) 'Fortran: i2',i2
      write(*,*) 'Fortran: i3',i3

      output = sum(array) / (i1+i2+i3)

      write(*,*) 'Fortran: output=',output

      end subroutine foo



      #file: prog.py

      import numpy as np
      import foo

      i1,i2,i3 = 1,2,3

      nx,ny = 5,6

      array = np.arange(30.).reshape(nx,ny)

      print 'Python: array[0,0]', array[0,0]
      print 'Python: array[0,1]', array[0,1]
      print 'Python: array[1,0]', array[1,0]
      print 'Python: array[1,1]', array[1,1]
      print 'Python: array.sum()', array.sum()
      print 'Python: output', array.sum() / (i1+i2+i3)

      #ok
      output = foo.foo(array,i1,i2,i3,nx,ny)

      #ok
      output = foo.foo(array,i1,i2,i3)

      #erreur
      output = foo.foo(array,nx,ny,i1,i2,i3)

      print 'Python: output', output



      f2py -m foo -c foo.f90
      python prog.py



      Python: array[0,0] 0.0
      Python: array[0,1] 1.0
      Python: array[1,0] 6.0
      Python: array[1,1] 7.0
      Python: array.sum() 435.0
      Python: output 72.5
      Fortran: array(1,1) 0.0000000
      Fortran: array(1,2) 1.00000000
      Fortran: array(2,1) 6.0000000
      Fortran: array(2,2) 7.0000000
      Fortran: sum(array) 435.00000
      Fortran: i1 1
      Fortran: i2 2
      Fortran: i3 3
      Fortran: output= 72.500000
      Fortran: array(1,1) 0.0000000
      Fortran: array(1,2) 1.00000000
      Fortran: array(2,1) 6.0000000
      Fortran: array(2,2) 7.0000000
      Fortran: sum(array) 435.00000
      Fortran: i1 1
      Fortran: i2 2
      Fortran: i3 3
      Fortran: output= 72.500000
      foo:nx=2
      Traceback (most recent call last):
      File "prog.py", line 24, in
      output = foo.foo(array,nx,ny,i1,i2,i3)
      foo.error: (shape(array,0)==nx) failed for 1st keyword nx



      Est-ce que ton problème pourrait venir de là?
    • Re: F2py failed with exit status 1

      Envoyé par troisseize le 20 Juillet 2010 à 11:27
      ps: avant d'écrire le "prog.py", je te conseille de tester dans l'interpréteur python (ou mieux, ipython):


      ipython


      dans ipython:


      import foo
      pdoc foo # Print Documenation



      This module 'foo' is auto-generated with f2py (version:2_5585).
      Functions:
      output = foo(array,i1,i2,i3,nx=shape(array,0),ny=shape(array,1))


      et ensuite, toujours dans ipython, tester un appel à la subroutine pour voir si tout est ok.
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 20 Juillet 2010 à 14:40
      Oui cela marche très bien en mettant les dimensions du tableaux en derniers paramètres. Merci encore une fois.
      J'aurais une autre petite question concernant f2py.
      Lorsque je génère le .pyf que je peux modifier, ai-je besoin de repréciser dans le .pyf l'inclusion d'un fichier si je le fais dans mon programme fortran?
      Car j'essai de le faire quand je veux construire le module avec la commande f2py -c fib2.pyf fib1.f par exemple, j'obtiens une erreur disant qu'il ne peut pas ouvrir le fichier inclus.
      J'ai regardé mon fichier.pyf et aucune inclusion n'est déclaré. Penses-tu que cette erreur peut venir de ça?
      Merci, ô guru du f2py!!
    • Re: F2py failed with exit status 1

      Envoyé par troisseize le 20 Juillet 2010 à 15:12
      De rien!

      En fait je n'ai jamais eus besoin de modifier un fichier signature.pyf pour utiliser f2py. Je n'ai utilisé f2py que sur mes propres codes Fortran, je modifie donc mes fichiers sources Fortran directement au besoin. Par contre, quand on ne peut pas modifier les codes Fortran (library, etc...), on peut modifier les fichiers de signatures à la place. Je ne peux pas t'aider beaucoup concernant les fichiers de signatures...

      Est ce que tu as vraiment besoin de travailler sur les fichiers signatures?
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 21 Juillet 2010 à 08:39
      Lorsque je compile mon programme fortran à l'aide de makefile, il n'y a pas de problèmes. Dès lors que j'utilise f2py, il est impossible pour le terminal d'ouvrir le fichier que j'inclus dans ma routine fortran à l'aide de l'instruction "Include".

      Je suis pas obligée de travailler sur les fichiers signatures. C'était juste une idée. Tu n'as jamais utilisé f2py avec des fichiers à inclure dans ton programme fortran?
      C'est ce qui me pose problème.
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 21 Juillet 2010 à 10:47
      J'ai trouvé l'option -I qui permet d'inclure un répertoire je pense que ça fonctionne.
    • Re: F2py failed with exit status 1

      Envoyé par troisseize le 21 Juillet 2010 à 11:03
      Je n'utilise pas "include", mais plutôt "use", plus puissant, qui sert à utiliser des modules Fortran90.

      Je n'ai pas réussi à reproduire le problème entre f2py et "include", ci joint l'exemple testé qui ne pose pas problème.


      !file: foo.f90
      subroutine foo

      implicit none

      include 'file.inc'

      write(*,*) a

      end subroutine foo



      !file: file.inc
      real:: a

      a = 1



      f2py -m foo -c foo.f90


      dans ipython:


      import foo
      foo.foo()



      1.00000000


      Tu as sûrement quelques de plus compliqué? des fichiers dans des répertoires différents? autre chose?
    • Re: F2py failed with exit status 1

      Envoyé par troisseize le 21 Juillet 2010 à 11:07
      ah tu as été plus rapide je n'avais pas vu le dernier message... :)
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 21 Juillet 2010 à 11:14
      f2py permet-il d'avoir plusieurs routines dans un même fichier fortran?
      Mon fichier fortran en comporte deux et on dirait qu'il ne reconnait pas la dernière car lors de la création du fichier signature, il la renomme "unknown_subroutine".
    • Re: F2py failed with exit status 1

      Envoyé par troisseize le 21 Juillet 2010 à 12:12
      On peut mettre plusieurs plusieurs subroutine/function dans un même fichiers, pas de problèmes pour f2py
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 21 Juillet 2010 à 12:44
      Aurais-tu une idée alors pourquoi il ne veut pas nommer les routines correctement?
    • Re: F2py failed with exit status 1

      Envoyé par troisseize le 21 Juillet 2010 à 13:01
      aucune idée... tu aurais un exemple simple à montrer?
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 21 Juillet 2010 à 13:18
      En fait, si je modifie le fichier signature, je peux facilement utiliser ensuite les deux routines. L'une fait appel à l'autre dans le programme fortran.
      Cependant c'est assez lourd puisque f2py ne reconnait pas la dernière sous routine correctement, je dois la définir manuellement dans le fichier signature. Ca fonctionne mais vu que je dois le faire moi même cela signifie qu'il y a quand meme un soucis quelque part.

      Le code est le suivant:

      ! -*- f90 -*-

      !=====================================================================
      ! ECRIPROJ.F version 07/2010
      ! Ecriture des projections dans un fichier binaire
      !
      !========-=========-=========-=========-=========-=========-=========-=
      !========-=========-=========-=========-=========-=========-=========-=
      INTEGER FUNCTION ERREUR()
      !========-=========-=========-=========-=========-=========-=========-=
      ! message d'erreur de proto.c si aucun parametres C
      !========-=========-=========-=========-=========-=========-=========-=
      CALL SYSTEM('cat $HOME/help/proj3dpoint.help')
      ERREUR=0
      RETURN
      END

      SUBROUTINE EXECUTABLE(a,b,c,d,e,f,g,h,i)

      INTEGER, INTENT(IN) :: e,i,d,b,h,g
      INTEGER, INTENT(IN) :: c,f
      INTEGER :: NENRG,TailleEnreg,largColTot

      CALL ECRIPROJ(a,b,c,d,e,f,g,h,i)

      RETURN
      END SUBROUTINE EXECUTABLE

      !========================================================================
      SUBROUTINE ECRIPROJ(TAB,nPixCol,rayGir,nAng,larCha,
      & rayCach,prof,nbLig,nbCol)
      !========================================================================
      ! Fichier contenant l'ensemble des parametres principaux ================
      INCLUDE "param2D.f"

      ! TYPE (ParamFichier) :: ParamFic
      ! TYPE (collimateur) :: ParamCol
      ! type (geomacquis) :: ParamAcq
      CHARACTER*150 FICPRJ
      ! CHARACTER*150 IMAPRJ,FICCOL,FICACQ
      ! Integer*4,Dimension(10) :: ICOL,IACQ
      ! integer,dimension(8) ::values
      ! character ::date,time,zone
      INTEGER, INTENT(IN) :: larCha,nbCol,nAng,nPixCol,nbLig,prof
      INTEGER, INTENT(IN) :: rayGir,rayCach
      INTEGER :: NENRG,TailleEnreg
      INTEGER :: r,q,m,n,I,J
      ! INTEGER :: occ
      INTEGER, DIMENSION(nbLig,nbCol) :: TAB
      INTEGER, DIMENSION(nbLig,nbCol) :: RECU

      print* ,'rayon giration = ', rayGir
      print* ,'rayon de cache = ',rayCach
      print* ,'Pixel du collimateur = ', nPixCol
      print* ,'profondeur = ', prof
      print* ,'nb angle = ',nAng
      !================== initialisation des données ===============================
      ! call date_and_time(date,time,zone,values)
      ! Call InitEntete(ParamFic,ParamCol,ParamAcq,ParamDec)
      TailleEnreg = 4*larCha
      !~~~~~~~~~~~~~~~~ Lecture des donnees entieres ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ! WRITE(*,*)FICCOL
      ! OPEN ( UNIT=1, FILE=FICCOL , STATUS='OLD' , IOSTAT=IO )
      ! IF(IO.NE.0) THEN
      ! WRITE(*,*)'ERREUR DANS LE FICHIER COLLIMATEUR'
      ! STOP
      ! ENDIF
      !
      ! COUNT=1
      ! DO WHILE (.TRUE.)
      ! READ (1,*,END=8) ICOL(COUNT)
      ! print *,ICOL(COUNT)
      ! COUNT=COUNT+1
      ! END DO
      ! 8 CONTINUE
      ! CLOSE(1)
      ! INQUIRE(IOLENGTH=lgecol) ICOL
      !
      !
      ! WRITE(*,*)FICACQ
      ! OPEN ( UNIT=1, FILE=FICACQ , STATUS='OLD' , IOSTAT=IO )
      ! IF(IO.NE.0) THEN
      ! WRITE(*,*)'ERREUR DANS LE FICHIER Acquisition'
      ! STOP
      ! ENDIF
      !
      ! COUNT=1
      ! DO WHILE (.TRUE.)
      ! READ (1,*,END=9) IACQ(COUNT)
      ! print *,IACQ(COUNT)
      ! COUNT=COUNT+1
      ! END DO
      ! 9 CONTINUE
      ! CLOSE(1)
      ! INQUIRE(IOLENGTH=lgeacq) IACQ

      ! ==============================================================================
      ! Initialisation de l'entete collimateur ------------------------------------------------
      ! ParamCol%NB_TYPE_TROU = ICOL(1)
      ! ParamCol%LAR1 = ICOL(2)
      ! ParamCol%LAR2 = ICOL(3)
      ! ParamCol%LAR3 = ICOL(4)
      ! ParamCol%PROF1 = ICOL(5)
      ! ParamCol%PROF2 = ICOL(6)
      ! ParamCol%PROF3 = ICOL(7)
      ! Initialisation de l'entete Geometrie acquisition--------------------------------------
      ! ParamAcq%NB_ANG = IACQ(1)
      ! ParamAcq%INC_ANG = IACQ(2)
      ! ParamAcq%NSTART = IACQ(3)
      ! ParamAcq%IRAYORBI = IACQ(5)
      ! ParamAcq%IRayon = IACQ(4)
      ! ParamAcq%LARCHA = IACQ(6)
      ! ParamAcq%IPRCHA = IACQ(7)
      ! ==============================================================================
      ! ParamFic%Dimension = 3
      ! ParamFic%IncPas(1) = 1
      ! ParamFic%IncPas(2) = 1
      ! ParamFic%IncPas(3) = ParamAcq%INC_ANG
      ! ParamFic%DebPas(1) = 1
      ! ParamFic%DebPas(2) = 1
      ! ParamFic%DebPas(3) = ParamAcq%NSTART
      ! ParamFic%Var(1) = 'X'
      ! ParamFic%Var(2) = 'Y'
      ! ParamFic%Var(3) = 'A'
      ! ParamFic%NbrPas(1) = ParamAcq%LARCHA
      ! ParamFic%NbrPas(2) = ParamCol%LAR1+ParamCol%LAR2+ParamCol%LAR3
      ! ParamFic%NbrPas(3) = ParamAcq%NB_ANG
      ! ParamFic%NbrEnrEnt = 4
      ! ParamFic%TailleEnreg = TailleEnreg


      ! ================== Construction du nom de fichier ============================

      FICPRJ= 'image.proja'

      ! ================== Ouverture du fichier de sortie proja =======================

      ! ~~~~~~~~~~~~~ Preparation de l'entete General ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      ! ParamAcq%SUJET = ParamFic%FicBin
      ! ParamFic%FormatEnreg = "R4" ! Format des donnees(I4,I8,R4,R8,C8,C16,..).
      ! ParamFic%DrapeauEnt = "ENT2004" ! nom de la version de l entete
      ! ParamFic%Drapeau = "cacao-proj" ! Mot Magique (cacao-proj,cacao-psd,...)
      ! ParamFic%Date = values
      ! ParamFic%NbrEnrEnt = 4 ! Nombre d'enregistrements de l'entete.
      ! ParamFic%NbrEnrTot = ParamFic%NbrEnrEnt + LargColTot
      ! -*ParamAcq%NB_ANG ! Nombre Total d'enregistrements.
      ! ParamFic%Dimension = 3 ! Nombre de dimensions.
      ! ParamFic%FicBin = FICPRJ




      OPEN(UNIT=5,FILE=FICPRJ,FORM='UNFORMATTED',RECL=TailleEnreg,
      & STATUS='NEW',ACCESS='DIRECT', IOSTAT=IO)

      NENRG=0

      ! ~~~~~~~~~~~ Ecriture de l'entete dans le fichier de sortie proj ~~~~~~~~~~~~~~
      ! print *,'************'
      ! CALL affichEntete(ParamFic,ParamCol,ParamAcq,ParamDec)
      !
      ! WRITE (IUREP,REC = 1) ParamFic
      ! WRITE (IUREP,REC = 2) ParamCol
      ! WRITE (IUREP,REC = 3) ParamAcq
      ! WRITE (IUREP,REC = 4) ParamDec

      ! NENRG = 4

      ! ~~~~~~~~~~ Récupération des projections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      ! ~~~~~~~~ Ecriture des projections dans le fichier de sortie proj ~~~~~~~~~~~~~


      ! Initialisation du tableau RECU

      DO r= 1 , nbLig
      DO q = 1 , nbCol
      RECU(r,q) = 0
      END DO
      END DO

      ! Récupération des données du tableau de appelProj
      DO m = 1, nbLig
      DO n = 1, nbCol
      RECU(m,n) = TAB(m,n)
      ! WRITE (*,*) RECU(m,n)
      END DO
      END DO


      print* ,'yep'

      DO J = 1 , nbLig
      DO I = 1, nbCol
      NENRG = NENRG + 1
      !on écrit les résultats des projections dans le fichier de sortie
      WRITE (5, REC=NENRG) RECU(J,I)
      ! WRITE (*,*) RECU(J,I)
      END DO
      END DO
      ! ================== Fermeture du fichier de sortie proja ======================
      CLOSE(IUREP)
      RETURN
      END SUBROUTINE ECRIPROJ


      Je suis désolée s'il y a beaucoup de lignes commentées.
      Lors que je créé le fichier signature il m'indique:

      "Reading fortran codes...
      Reading file 'EcriProj.f' (format:free)
      Line #30 in EcriProj.f:" SUBROUTINE ECRIPROJ(TAB,nPixCol,rayGir,nAng,larCha,"
      analyzeline: No name/args pattern found for line.
      Line #38 in EcriProj.f:" INCLUDE "param2D.f""
      readfortrancode: could not find include file 'param2D.f'. Ignoring.
      Post-processing...
      Block: EcriProj
      Block: erreur
      Block: executable
      Block: unknown_subroutine
      Post-processing (stage 2)...
      Saving signatures to file "./EcriProj.pyf"
      C'est donc la dernière routine qui est désignée comme "unkown_subroutine"
    • Re: F2py failed with exit status 1

      Envoyé par troisseize le 21 Juillet 2010 à 13:44
      il y aurait peut etre une confusion entre format libre et format fixe (pour lequel le & doit etre sur la 5ième colonne).

      Les indentations ne sont pas passées dans le code précédents donc ce n'est pas facile à dire... Mais les & sont au début de ligne, donc le format doit être fixe. Or f2py le détecte en format libre. Est ce chaque ligne commence par 6 blancs?

      Dans ce cas, ce serait la ligne:

      SUBROUTINE ECRIPROJ(TAB,nPixCol,rayGir,nAng,larCha,
      & rayCach,prof,nbLig,nbCol)

      qui poserait problème.

      Block: EcriProj => fichier EcriProj, ok
      Block: erreur => function erreur, ok
      Block: executable => subroutine executable, ok
      Block: unknown_subroutine => subroutine EcriProj, erreur
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 21 Juillet 2010 à 14:12
      Chaque ligne commence bien par 6 blancs.
      Oui ca doit être cette ligne là qui pose problème, néanmois je ne vois vraiment pourquoi... J'ai bien mis le "&" sur la 5ième colonne.
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 23 Juillet 2010 à 07:06
      Sais-tu ce que signifie "undefined symbol: G77_date_and_time_0" lorsque j'utilise la fonction fortran date_and_time?
    • Re: F2py failed with exit status 1

      Envoyé par troisseize le 23 Juillet 2010 à 14:40
      ça veut dire qu'il ne connait pas la "function" date_and_time, qui est une fonction "intrinsic" à Fortran, pour employer des termes anglais... Je n'ai pas vérifier, mais sûrement que cette fonction doit être apparue avec Fortran90 et que les compilateur Fortran77 ne la connaissent pas, d'où l'erreur.

      Tu as résolu ton problème de unknown_subroutine?
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 28 Juillet 2010 à 10:10
      Est ce que tu sais si f2py créé un symbol pour chaque routine fortran?
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 28 Juillet 2010 à 10:36
      J'ai résolu le problème de G77_date_and_time_0 mais il m'affiche une nouvelle erreur dans laquelle il dit qu'il ne trouve pas le symbole initentetepy_ utilisé par une routine que j'ai écrite.
      Je n'ai toujours pas résolu le problème de unknown_subroutine, je fais avec...
    • Re: F2py failed with exit status 1

      Envoyé par Dreyliciouss le 28 Juillet 2010 à 10:40
      En fait, lorsque j'importe le module généré grâce à f2py, le fichier.so créé ne connait pas le symbol utilisé par la routine initentetepy utilisée par le fichier.f mais qui se trouve dans un autre fichier (entete.f).
      C'est compliqué. Pourtant, lorsque je fais nm entete.o, le symbol initentetepy_ est bien défini.
      Je ne sais pas si je me suis bien expliqué...
Rendu par Ploneboard