Comstackr módulo fortran con f2py

Tengo un módulo Fortran que estoy tratando de comstackr con f2py (que se detalla a continuación). Cuando elimino la statement del módulo y dejo la subrutina en el archivo, todo funciona bien. Sin embargo, si el módulo se declara como se muestra a continuación, obtengo los siguientes resultados:

> f2py.py -c -m its --compiler=mingw itimes-s2.f ... Reading fortran codes... Reading file 'itimes-s2.f' (format:fix,strict) crackline: groupcounter=1 groupname={0: '', 1: 'module', 2: 'interface', 3: 'subroutine'} crackline: Mismatch of blocks encountered. Trying to fix it by assuming "end" statement. ... c:\users\astay13\appdata\local\temp\tmpgh5ag8\Release\users\astay13\appdata\local\temp\tmpgh5ag8\src.win32-3.2\itsmodule.o:itsmodule.c:(.data+0xec): undefined reference to `itimes_' collect2: ld returned 1 exit status 

¿Qué tiene de diferente comstackr un módulo o subrutina en f2py? ¿He dejado algo importante en el módulo que hace que f2py tenga problemas? Tenga en cuenta que el módulo se comstack bien cuando uso gfortran solo.

Software: Windows 7; gcc, gfortran 4.6.1 (MinGW); python 3.2.2; f2py v2

itimes-s2.f:

  module its contains subroutine itimes(infile,outfile) implicit none ! Constants integer, parameter :: dp = selected_real_kind(15) ! Subroutine Inputs character(*), intent(in) :: infile character(*), intent(in) :: outfile ! Internal variables real(dp) :: num integer :: inu integer :: outu integer :: ios inu = 11 outu = 22 open(inu,file=infile,action='read') open(outu,file=outfile,action='write',access='append') do read(inu,*,IOSTAT=ios) num if (ios < 0) exit write(outu,*) num**2 end do end subroutine itimes end module its 

    Estás intentando tener un módulo de Fortran en un módulo de Python. Si quieres eso, los nombres deben ser diferentes, por ejemplo

      f2py.py -c -m SOMEDIFFERENTNAME itimes-s2.f 

    El resultado se llamará como pythonmodule.fortranmodule.yourfunction() .

    De lo contrario funcionó en mi máquina.

    Para que f2py funcione, necesita tener un archivo de firma para dirigir la creación de la interfaz o modificar su código fuente con comentarios f2py para ayudar con la interfaz. Consulte http://cens.ioc.ee/projects/f2py2e/usersguide/#signature-file para obtener más información.

    Desde ese sitio:

     C FILE: FIB3.F SUBROUTINE FIB(A,N) C C CALCULATE FIRST N FIBONACCI NUMBERS C INTEGER N REAL*8 A(N) Cf2py intent(in) n Cf2py intent(out) a Cf2py depend(n) a DO I=1,N IF (I.EQ.1) THEN A(I) = 0.0D0 ELSEIF (I.EQ.2) THEN A(I) = 1.0D0 ELSE A(I) = A(I-1) + A(I-2) ENDIF ENDDO END C END FILE FIB3.F 

    La construcción del módulo de extensión se puede llevar a cabo ahora en un comando:

     f2py -c -m fib3 fib3.f