title: Compile Fortran module with f2py
body: <p>I have a Fortran module which I am trying to compile with f2py (listed below).  When I remove the module declaration and leave the subroutine in the file by itself, everything works fine.  However, if the module is declared as shown below, I get the following results:</p>
  
  <pre><code>&gt; 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
  </code></pre>
  
  <p>What is different about compiling a module or subroutine in f2py?  Have I left something important out in the module that causes f2py to have trouble?  Note that the module compiles fine when I use gfortran alone.</p>
  
  <p>Software:  Windows 7; gcc, gfortran 4.6.1 (MinGW); python 3.2.2; f2py v2</p>
  
  <p>itimes-s2.f:</p>
  
  <pre><code>  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 &lt; 0) exit
  
        write(outu,*) num**2
      end do
  
    end subroutine itimes
  
    end module its
  </code></pre>