Re: [f2py] F2PY: Unable to prevent Fortran ordered array copy

Robin <[email protected]>
Newsgroups gmane.comp.python.f2py.user
Message-ID <[email protected]>
On Thu, Nov 19, 2009 at 2:50 PM, Ravi Kanda <[email protected]> wrote:
> I have been using Numpy+f2py for a couple of years, and the combination
>  has worked well for me for many types of problems.  However, I have
> never been able to prevent F2PY from copying arrays even though I
> initialize them as Fortran ordered in the calling python script.  I have
> spent a considerable time looking in the archives (both F2PY & NUMPY)
> and found several leads to diagnosing array-copy problems (see results
> below), but none of them seem to work for me.

I didn't have time yet to read through the details of what you've
tried - but thought I'd point out Fortran vs C order is only one of
the things that will trigger and f2py copy. A copy is also created if
a cast is required between the dtype of the numpy array and the
fortran type. (I found this out the hard way moving integer code
between 32 bit and 64 bit platforms - I couldn't understand why it was
slower on 64 bit, but it was because the cast was causing a copy).

In your code it looks like you are using real(kind=4) whereas numpy
default is 64 bit double I think (real(kind=8)) so I suspect this is
where the copies are coming from. Try passing numpy arrays with
float32 dtype, or change fortran types...

Cheers

Robin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.