Lisandro Dalcin <[EMAIL PROTECTED]> kirjoitti: 
> Im trying to use f2py to wrap some fortran functions wich receive as
> argument PETSc objects. The usual way to implement this with
> PETSc+fortran is to do something like this
> 
> soubrutine matvec(A,x,y)
>  Mat A
>  Vec x
>  Vec y
> end soubrutine
> 
> The 'Mat' and 'Vec' types are actually integers of appropriate kind,
> PETSc uses a #define to
> define them. I there any way I can teach/hack f2py to translate
> Mat/Vec/etc. to a normal fortran type?

You can tell f2py to use a different type for the argument as follows:

    subroutine foo(a)
        !f2py integer, dimension(10), intent(inout) :: a
        Mat a
    end subroutine foo

This way, f2py will treat the parameter as a chunk of memory of size 
10*sizeof(integer), and disregard any following definitions for it. Using a 
hack like this, it's also possible to pass derived type object pointers,  
"type(Typename), pointer", from the Python side to the Fortran side, as opaque 
handles.

-- 
Pauli Virtanen
_______________________________________________
Numpy-discussion mailing list
[email protected]
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to