[Numpy-discussion] f2py and string arrays
Mark.Miller
mpmusu at cc.usu.edu
Mon Aug 13 11:04:32 EDT 2007
Quick question...
I have a Fortran function for f2py declared as follows (just an example).
module test1
contains
subroutine manip(length, array, a, b)
integer :: length, a,b
character(length) :: array(0:a-1,0:b-1)
!f2py intent(in) length,a,b
!f2py intent(inout) array
array(0,0) = "1111"
end subroutine manip
end module test1
It compiles using f2py without issue. The f2py-generated docstring
correctly lists the required arguments:
manip - Function signature:
manip(length,array,[a,b])
Required arguments:
length : input int
array : in/output rank-2 array('S') with bounds (a,b)
However, I'm getting some type conversion errors when using the function
in python:
>>> from mymodule import test1
>>> import numpy
>>> a=numpy.empty((3,3,'S4',order='F')
>>> a[:,:]='2222'
>>> test1.manip(4,a,3,3)
Traceback (most recent call last):
File "(stdin)", line 1, in (module)
ValueError: failed to initialize intent(inout) array --expected elsize =
1 but got 4 -- input 'S' not compatible to 'c'
Does f2py not work with numpy string arrays? I have some excellent
alternate implementations for this type of thing, but would prefer an
approach similar to that outlined above.
Thanks,
-Mark
More information about the NumPy-Discussion
mailing list