Re: [f2py] Wraping Fortran code with allocatable arrays.

Benjamin Kutz <[email protected]>
Newsgroups gmane.comp.python.f2py.user
Message-ID <[email protected]>
Am 16.07.2010 15:30, schrieb Jürgen Wieferink:
> Hi,
>
> module mymod
>    implicit none
>    real, dimension(:), allocatable :: abc
>    real, dimension(:,:), allocatable :: deg
> contains
>    subroutine init
>      implicit none
>      ! do stuff on abc, deg
>    end subroutine init
>    subroutine calc
>      implicit none
>      ! do stuff on abc, deg
>    end subroutine calc
> end module mymod
>
> > From this, you can easily generate the wrapper mymod.pyf from
>
>    $ f2py -m _mymod -h mymod.pyf mymod.f90
>
> As Pearu mentioned, even the allocatable arrays are then exposed to
> python as _mymod.mymod.abc and _mymod.mymod.deg.
>
> Juergen
>
>
>
> Benjamin Kutz wrote (Friday 16 July 2010 14:12:05):
>    
>> Hi,
>>
>> thanks for your fast answer.
>> I still didn`t got the point. I just want to share these allocatable
>> data arrays between the first and the second subroutine.
>> I also knew the example out of the f2py manual, but I couldn`t realise
>> it in my code, due to my limited knowledge in python and wrapping.
>> Do you mean, that I have to write a fortran module for each allocatable?
>> What does this module look like?
>> At the moment I allocate in Fortan at the beginning with:
>>
>>         subroutine init(abc,deg)
>>         integer  max, max2
>>         max= ...
>>         max2=...
>>         real   , dimension (:)  , allocatable  :: abc
>>         real   , dimension (:,:)  , allocatable  :: deg
>>         allocate (abc(max))
>>         allocate (deg(max,max2))
>>         call initialxyz (abc,deg)
>>         end
>>
>>         subroutine calc(abc,deg)
>>         call solve(abc,deg)
>>         if ( allocated( abc ) ) then
>>               deallocate (abc)
>>         ...
>>         endif
>>
>> I wrap both routines and want to call them one after another from python.
>> Maybe you can help me with a little example? What does the foo.pyf have
>> to look like?
>> The problem is, that I have to wrap with f2py -c foo.pyf *.o. I can't
>> wrap it directly from the foo.f90 routine.
>>
>> Greetings
>> Ben
>>
>> _______________________________________________
>> f2py-users mailing list
>> f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]
>> http://cens.ioc.ee/mailman/listinfo/f2py-users
>>
>>      
>
> _______________________________________________
> f2py-users mailing list
> f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]
> http://cens.ioc.ee/mailman/listinfo/f2py-users
>    
Hi,

wonderful! As I can see your example does not differ much from that one 
in the manual.
But I don't know why, now I found out how to do it ;)! Maybe it was the 
heat or the friday afternoon;) or just my "slow" brain :)
Thanks for your quick help and have a nice weekend!

Greetings
Ben
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.