[Numpy-discussion] Right way to build Fortran 90 module using numpy.distutils
Tue Aug 27 14:21:45 CDT 2013
On Tue, Aug 27, 2013 at 1:26 PM, Juan Luis Cano <firstname.lastname@example.org> wrote:
> El 27/08/2013 17:27, "Kyle Mandli" <email@example.com> escribió:
> > On Tue, Aug 27, 2013 at 6:46 AM, Juan Luis Cano <firstname.lastname@example.org>
> >> I'm having some problems to properly build a module written in Fortran
> >> 90 using numpy.distutils. It only contains one subroutine, but:
> >> * If I write a .f90 file with the single subroutine (no module ..
> >> contains), then f2py tries to compile it using a f77 compiler, and
> >> that's not what I want.
> >> * If I put it inside a module definition, then at the final
> >> compilation stage modulef2pywrapper.c is missing the corresponding
> >> .mod file and I have to make the build fail, then copy the .mod from
> >> the temp directory and rebuild. Weird.
> >> On the other hand, with the second approach f2py creates a unnecessary
> >> level of nesting in the corresponding python module and I don't feel
> >> quite ok with that.
> >> What is the right way to do this? I find the documentation on
> >> numpy.distutils a bit lacking, I almost always find the solution by
> >> trial and error. I can push the code, it's a short file (part of the
> >> rewrite of odeint I'm doing in SciPy).
> >> Regards
> >> Juan Luis Cano
> >> _______________________________________________
> >> NumPy-Discussion mailing list
> >> NumPy-Discussion@scipy.org
> >> http://mail.scipy.org/mailman/listinfo/numpy-discussion
> > You should be able to specify the compiler when invoking f2py, something
> > f2py --fcompiler=$COMPILER -m $MODULE_NAME -c $SOURCE_FILE
> That won't work since gfortran is used for both F77 and F90. If you look
> on rules.py in f2py F77 wrappers are generated if the subroutine is not
> inside a module, and then the compilation fails because it contains invalid
> statements for F77. Bug?
> Any other suggestions?
> > Kyle
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion@scipy.org
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> NumPy-Discussion mailing list
Can you post your fortran source code? The other key would be see what
f2py thinks it's doing, for instance in the output of f2py there two lines
Reading fortran codes...
Reading file 'test_file.f90' (format:free)
For the following source code:
subroutine my_func(a, b)
integer, intent(in) :: a
real(kind=8), intent(out) :: b
b = real(a, kind=8) * 5.d0
end subroutine my_func
compiled with `f2py -c test_file.f90 -m my_module`
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion