Re: [f2py] f2py-users Digest, Vol 82, Issue 2
Gaetan Kenway <kenway-kBRAJjP0/PtSpjfjxSPG1fd9D2ou9A/[email protected]> Fri, 2 Dec 2011 09:15:11 -0500
| Newsgroups | gmane.comp.python.f2py.user |
|---|---|
| Message-ID | <CAA3=JrMxrs=PGU3B601kgS1JFk8vxFp23_=Z0rOVidbZN6+LeQ@mail.gmail.com> |
--===============2503902268508639181==
Content-Type: multipart/alternative; boundary=90e6ba2121bddcf02f04b31c9862
--90e6ba2121bddcf02f04b31c9862
Content-Type: text/plain; charset=ISO-8859-1
Hi Everyone
First of all, I'd like thank Pearu on his excellent work with f2py. We
still use it quite heavily at the MDO lab at the University of Toronto (Dr.
Martins Lab). We had run into this issue as well, when dealing with our
parallel codes. There was actually a post on this mailing list from 2004,
that deals with importing multiple copies.
http://cens.ioc.ee/pipermail/f2py-users/2004-September/000921.html
We've used this quite extensively, and while it is still a hack, it is
possible to make it entirely transparent to the user. We've used this for
creating 25 unique copies of a parallel flow solver simultaneously with no
issues. Specifically the way we use it, is we use a "python wrapper
interface" to the particular fortran code we're using. This file (pySUmb)
contains a class that one would like to make multiple instances of. In the
class we use the following instead of "import module":
class SUMB(object)
def __init__(self, *args, **kwargs):
sumb_mod = MExt('sumb_parallel')
self.sumb = sumb_mod._module
Then in our main python script we can simply do:
import pySUmb
solver1 = pySUmb.SUMB()
solver2 = pySUmb.SUMB()
solver3 = pySUmb.SUMB()
Each solver object acts as its own python object with no references to
others. This is the best solution I've found, and we've had no reason to
try to come up with a better solution.
Hope this helps
Gaetan
On Fri, Dec 2, 2011 at 5:00 AM, <f2py-users-request-Y4l6ocDipWCuvFJfX82//[email protected]> wrote:
> Send f2py-users mailing list submissions to
> f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://cens.ioc.ee/mailman/listinfo/f2py-users
> or, via email, send a message with subject or body 'help' to
> f2py-users-request-Y4l6ocDipWCuvFJfX82//[email protected]
>
> You can reach the person managing the list at
> f2py-users-owner-Y4l6ocDipWCuvFJfX82//[email protected]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of f2py-users digest..."
>
>
> Today's Topics:
>
> 1. - Multiple instance from a single so file (Cedric TAVE)
> 2. Re: - Multiple instance from a single so file (Pearu Peterson)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 1 Dec 2011 14:03:09 +0100
> From: Cedric TAVE <[email protected]>
> Subject: [f2py] - Multiple instance from a single so file
> To: f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]
> Message-ID:
> <
> OFB64429CC.D882D1CC-ONC1257959.0037191C-C1257959.0047B31D-BEfGjZrKC4tLRzs+Zy4jjg@public.gmane.org>
>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Hello,
>
>
> first of all, I would like to thank you from the great work you have done
> on f2py. It is of prime interest for me and the software I currently
> developping.
> However, it has a limitative behavior that I can't solve or bypass. I hope
> you could help me...
>
> I use f2py to build a python-API to a huge F90 scientific software.
> The tests I a am running now produce good results and I really want to
> propose this API to my users.
>
>
> --------------------- Description ---------------------
>
> But for the needs of the end-users, I need to create multiple instances of
> the program in the same python script (allowing sensitivity studies for
> example).
>
> The expected behavior could be :
>
> >> import program as program1 # I know this can't be the final
> solution, but I found it useful
> >> import program as program2 # to write it like that (--> to
> improve understanding)
>
> >> program1.init( 10 )
> >> program2.init( 1000 )
>
> >> program1.run()
> >> program2.run()
>
> where program1 and program2 defines 2 different instances from the same
> .so file.
>
>
> --------------------- Investigation ---------------------
>
> I found a thread on your mailing list (from 2003 !) which seems to deal
> with this ( thread = " [f2py] multiple instances of same pyd file " ).
> But I understand from it that no good solution had been identified (I may
> be wrong). I'm wondering if, 8 years after, some new developpement (on
> f2py or Python itself) could help doing this.
>
>
> Thank you in advance if you can help me. I can give more information if
> needed.
>
> Regards,
>
> C?dric TAVE.
>
>
>
>
> Ce message et toutes les pi?ces jointes (ci-apr?s le 'Message') sont
> ?tablis ? l'intention exclusive des destinataires et les informations qui y
> figurent sont strictement confidentielles. Toute utilisation de ce Message
> non conforme ? sa destination, toute diffusion ou toute publication totale
> ou partielle, est interdite sauf autorisation expresse.
>
> Si vous n'?tes pas le destinataire de ce Message, il vous est interdit de
> le copier, de le faire suivre, de le divulguer ou d'en utiliser tout ou
> partie. Si vous avez re?u ce Message par erreur, merci de le supprimer de
> votre syst?me, ainsi que toutes ses copies, et de n'en garder aucune trace
> sur quelque support que ce soit. Nous vous remercions ?galement d'en
> avertir imm?diatement l'exp?diteur par retour du message.
>
> Il est impossible de garantir que les communications par messagerie
> ?lectronique arrivent en temps utile, sont s?curis?es ou d?nu?es de toute
> erreur ou virus.
> ____________________________________________________
>
> This message and any attachments (the 'Message') are intended solely for
> the addressees. The information contained in this Message is confidential.
> Any use of information contained in this Message not in accord with its
> purpose, any dissemination or disclosure, either whole or partial, is
> prohibited except formal approval.
>
> If you are not the addressee, you may not copy, forward, disclose or use
> any part of it. If you have received this message in error, please delete
> it and all copies from your system and notify the sender immediately by
> return message.
>
> E-mail communication cannot be guaranteed to be timely secure, error or
> virus-free.
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:
> http://cens.ioc.ee/pipermail/f2py-users/attachments/20111201/1cd64b94/attachment.html
>
> ------------------------------
>
> Message: 2
> Date: Thu, 1 Dec 2011 16:07:01 +0200
> From: Pearu Peterson <[email protected]>
> Subject: Re: [f2py] - Multiple instance from a single so file
> To: For users of the f2py program <f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]>
> Message-ID:
> <CAPpwKcxZjpPkP=0-0OMLi-Cvy649caa8-hR2DkXuLZEZwiqv2Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org
> >
> Content-Type: text/plain; charset="iso-8859-1"
>
> Hi,
>
> On Thu, Dec 1, 2011 at 3:03 PM, Cedric TAVE <[email protected]> wrote:
>
> >
> >
> > Hello,
> >
> >
> > first of all, I would like to thank you from the great work you have done
> > on f2py. It is of prime interest for me and the software I currently
> > developping.
> > However, it has a limitative behavior that I can't solve or bypass. I
> hope
> > you could help me...
> >
> > I use f2py to build a python-API to a huge F90 scientific software.
> > The tests I a am running now produce good results and I really want to
> > propose this API to my users.
> >
> >
> > --------------------- Description ---------------------
> >
> > But for the needs of the end-users, I need to create multiple instances
> of
> > the program in the same python script (allowing sensitivity studies for
> > example).
> >
> >
> Just to be sure, this need is raised because the program is using global
> data (module data or common blocks) that will create interference in
> between the two simultaneous runs of the program Right?
>
>
> > The expected behavior could be :
> >
> > >> import program as program1 # I know this can't be the final
> > solution, but I found it useful
> > >> import program as program2 # to write it like that (--> to
> > improve understanding)
> >
> > >> program1.init( 10 )
> > >> program2.init( 1000 )
> >
> > >> program1.run()
> > >> program2.run()
> >
> > where program1 and program2 defines 2 different instances from the same
> > .so file.
> >
> >
> > --------------------- Investigation ---------------------
> >
> > I found a thread on your mailing list (from 2003 !) which seems to deal
> > with this ( thread = " [f2py] multiple instances of same pyd file " ).
> > But I understand from it that no good solution had been identified (I may
> > be wrong). I'm wondering if, 8 years after, some new developpement (on
> f2py
> > or Python itself) could help doing this.
> >
> >
> I have used the approach where two (or more) extension modules are
> generated via f2py having different names but exactly the same source
> content.
> For example,
>
> f2py -c -m program1 source.f90
> f2py -c -m program2 source.f90
>
> and in Python you can do what you indented to do:
> >>> import program1
> >>> import program2
> >>> program1.init( 10 )
> >>> program2.init( 1000 )
> >>> program1.run()
> >>> program2.run()
>
> If you are using signature file approach then you need to reorganize the
> pyf file as illustrated below:
>
> # File routines.pyf
> subroutine init(n)
> ! f2py specs
> end subroutine init
> subroutine run()
> ! f2py specs
> end subroutine run
> # EOF routines.pyf
>
> # File program1.pyf
> python module program1
> interface
> include "routines.pyf"
> end interface
> end python module program1
> # EOF program1.pyf
>
> # File program2.pyf
> python module program2
> interface
> include "routines.pyf"
> end interface
> end python module program2
> # EOF program2.pyf
>
> and then build the extension modules:
>
> f2py -c program1.pyf source.f90
> f2py -c program2.pyf source.f90
>
> and use them from Python as above.
>
> HTH,
> Pearu
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:
> http://cens.ioc.ee/pipermail/f2py-users/attachments/20111201/7b277418/attachment-0001.htm
>
> ------------------------------
>
> _______________________________________________
> f2py-users mailing list
> f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]
> http://cens.ioc.ee/mailman/listinfo/f2py-users
>
>
> End of f2py-users Digest, Vol 82, Issue 2
> *****************************************
>
>
--90e6ba2121bddcf02f04b31c9862
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Hi Everyone<div><br></div><div>First of all, I'd like thank=A0<span sty=
le=3D"background-color: rgba(255, 255, 255, 0.917969); "><font color=3D"#22=
2222" face=3D"arial, sans-serif">Pearu on his excellent work with f2py. We =
still use it quite heavily at the MDO lab at the University of Toronto (Dr.=
Martins Lab). We had run into this issue as well, when dealing with our pa=
rallel codes. There was actually a post on this mailing list from 2004, tha=
t deals with importing=A0multiple=A0copies.</font></span></div>
<div><font color=3D"#222222" face=3D"arial, sans-serif"><br></font></div><d=
iv><a href=3D"http://cens.ioc.ee/pipermail/f2py-users/2004-September/000921=
.html">http://cens.ioc.ee/pipermail/f2py-users/2004-September/000921.html</=
a></div>
<div><br></div><div>We've used this quite extensively, and while it is =
still a hack, it is possible to make it entirely=A0transparent=A0to the use=
r. We've used this for creating 25 unique copies of a parallel flow sol=
ver=A0simultaneously with no issues.=A0Specifically=A0the way we use it, is=
we use a "python wrapper interface" to the particular fortran co=
de we're using. =A0This file (pySUmb) contains a class that one would l=
ike to make multiple instances of. In the class we use the following instea=
d of "import module":</div>
<div><br></div><div><div>class SUMB(object)</div><div>=A0=A0 =A0def __init_=
_(self, *args, **kwargs):</div></div><div>=A0 =A0 =A0 =A0 sumb_mod =3D MExt=
('sumb_parallel')</div><div><div>=A0 =A0 =A0 =A0 self.sumb =3D sumb=
_mod._module</div><div>
<br></div><div>Then in our main python script we can simply do:</div><div><=
br></div><div>import pySUmb</div><div>solver1 =3D pySUmb.SUMB()</div><div>s=
olver2 =3D pySUmb.SUMB()</div>solver3 =3D pySUmb.SUMB()</div><div><br></div=
><div>
Each solver object acts as its own python object with no references to othe=
rs. This is the best solution I've found, and we've had no reason t=
o try to come up with a better solution.=A0</div><div><br></div><div>Hope t=
his helps</div>
<div><br></div><div>Gaetan</div><div><br></div><div><br></div><div><br><div=
class=3D"gmail_quote">On Fri, Dec 2, 2011 at 5:00 AM, <span dir=3D"ltr">&=
lt;<a href=3D"mailto:f2py-users-request-Y4l6ocDipWCuvFJfX82//[email protected]">f2py-users-request@cen=
s.ioc.ee</a>></span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex;">Send f2py-users mailing list submissions to=
<br>
=A0 =A0 =A0 =A0<a href=3D"mailto:f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]">[email protected]=
oc.ee</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
=A0 =A0 =A0 =A0<a href=3D"http://cens.ioc.ee/mailman/listinfo/f2py-users" =
target=3D"_blank">http://cens.ioc.ee/mailman/listinfo/f2py-users</a><br>
or, via email, send a message with subject or body 'help' to<br>
=A0 =A0 =A0 =A0<a href=3D"mailto:f2py-users-request-Y4l6ocDipWCuvFJfX82//[email protected]">f2py-user=
s-request-Y4l6ocDipWCuvFJfX82//[email protected]</a><br>
<br>
You can reach the person managing the list at<br>
=A0 =A0 =A0 =A0<a href=3D"mailto:f2py-users-owner-Y4l6ocDipWCuvFJfX82//[email protected]">f2py-users-=
owner-Y4l6ocDipWCuvFJfX82//[email protected]</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of f2py-users digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
=A0 1. =A0 - =A0Multiple instance from a single so file (Cedric TAVE)<br>
=A0 2. Re: - Multiple instance from a single so file (Pearu Peterson)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Thu, 1 Dec 2011 14:03:09 +0100<br>
From: Cedric TAVE <<a href=3D"mailto:[email protected]">cedric.tave@edf=
.fr</a>><br>
Subject: [f2py] =A0 - =A0Multiple instance from a single so file<br>
To: <a href=3D"mailto:f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]">f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]</a><br=
>
Message-ID:<br>
=A0 =A0 =A0 =A0<<a href=3D"mailto:OFB64429CC.D882D1CC-ONC1257959.003719=
[email protected]">OFB64429CC.D882D1CC-ONC1257959.003719=
[email protected]</a>><br>
<br>
Content-Type: text/plain; charset=3D"iso-8859-1"<br>
<br>
Hello,<br>
<br>
<br>
first of all, I would like to thank you from the great work you have done<b=
r>
on f2py. It =A0is of prime interest for me and the software I currently<br>
developping.<br>
However, it has a limitative behavior that I can't solve or bypass. I h=
ope<br>
you could help me...<br>
<br>
I use f2py to build a python-API to a huge F90 scientific software.<br>
The tests I a am running now produce good results and I really want to<br>
propose this API to my users.<br>
<br>
<br>
--------------------- Description ---------------------<br>
<br>
But for the needs of the end-users, I need to create multiple instances of<=
br>
the program in the same python script (allowing sensitivity studies for<br>
example).<br>
<br>
The expected behavior could be :<br>
<br>
>> import program as program1 =A0 =A0 =A0 # I know this can't be =
the final<br>
solution, but I found it useful<br>
>> import program as program2 =A0 =A0 =A0 # to write it like that (--=
> to<br>
improve understanding)<br>
<br>
>> program1.init( 10 )<br>
>> program2.init( 1000 )<br>
<br>
>> program1.run()<br>
>> program2.run()<br>
<br>
where program1 and program2 defines 2 different instances from the same<br>
.so file.<br>
<br>
<br>
--------------------- Investigation ---------------------<br>
<br>
I found a thread on your mailing list (from 2003 !) which seems to deal<br>
with this ( thread =3D " [f2py] multiple instances of same pyd file &q=
uot; ).<br>
But I understand from it that no good solution had been identified (I may<b=
r>
be wrong). I'm wondering if, 8 years after, some new developpement (on<=
br>
f2py or Python itself) could help doing this.<br>
<br>
<br>
Thank you in advance if you can help me. I can give more information if<br>
needed.<br>
<br>
Regards,<br>
<br>
C?dric TAVE.<br>
<br>
<br>
<br>
<br>
Ce message et toutes les pi?ces jointes (ci-apr?s le 'Message') son=
t ?tablis ? l'intention exclusive des destinataires et les informations=
qui y figurent sont strictement confidentielles. Toute utilisation de ce M=
essage non conforme ? sa destination, toute diffusion ou toute publication =
totale ou partielle, est interdite sauf autorisation expresse.<br>
<br>
Si vous n'?tes pas le destinataire de ce Message, il vous est interdit =
de le copier, de le faire suivre, de le divulguer ou d'en utiliser tout=
ou partie. Si vous avez re?u ce Message par erreur, merci de le supprimer =
de votre syst?me, ainsi que toutes ses copies, et de n'en garder aucune=
trace sur quelque support que ce soit. Nous vous remercions ?galement d=
9;en avertir imm?diatement l'exp?diteur par retour du message.<br>
<br>
Il est impossible de garantir que les communications par messagerie ?lectro=
nique arrivent en temps utile, sont s?curis?es ou d?nu?es de toute erreur o=
u virus.<br>
____________________________________________________<br>
<br>
This message and any attachments (the 'Message') are intended solel=
y for the addressees. The information contained in this Message is confiden=
tial. Any use of information contained in this Message not in accord with i=
ts purpose, any dissemination or disclosure, either whole or partial, is pr=
ohibited except formal approval.<br>
<br>
If you are not the addressee, you may not copy, forward, disclose or use an=
y part of it. If you have received this message in error, please delete it =
and all copies from your system and notify the sender immediately by return=
message.<br>
<br>
E-mail communication cannot be guaranteed to be timely secure, error or vir=
us-free.<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <a href=3D"http://cens.ioc.ee/pipermail/f2py-users/attachments/2011120=
1/1cd64b94/attachment.html" target=3D"_blank">http://cens.ioc.ee/pipermail/=
f2py-users/attachments/20111201/1cd64b94/attachment.html</a><br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Thu, 1 Dec 2011 16:07:01 +0200<br>
From: Pearu Peterson <<a href=3D"mailto:[email protected]">[email protected]</=
a>><br>
Subject: Re: [f2py] - Multiple instance from a single so file<br>
To: For users of the f2py program <<a href=3D"mailto:[email protected]=
.ee">f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]</a>><br>
Message-ID:<br>
=A0 =A0 =A0 =A0<CAPpwKcxZjpPkP=3D<a href=3D"mailto:0-0OMLi-Cvy649caa8-h=
[email protected]">0-0OMLi-Cvy649caa8-hR2DkXuLZEZwiqv2Q@mail.=
gmail.com</a>><br>
Content-Type: text/plain; charset=3D"iso-8859-1"<br>
<br>
Hi,<br>
<br>
On Thu, Dec 1, 2011 at 3:03 PM, Cedric TAVE <<a href=3D"mailto:cedric.ta=
[email protected]">[email protected]</a>> wrote:<br>
<br>
><br>
><br>
> Hello,<br>
><br>
><br>
> first of all, I would like to thank you from the great work you have d=
one<br>
> on f2py. It =A0is of prime interest for me and the software I currentl=
y<br>
> developping.<br>
> However, it has a limitative behavior that I can't solve or bypass=
. I hope<br>
> you could help me...<br>
><br>
> I use f2py to build a python-API to a huge F90 scientific software.<br=
>
> The tests I a am running now produce good results and I really want to=
<br>
> propose this API to my users.<br>
><br>
><br>
> --------------------- Description ---------------------<br>
><br>
> But for the needs of the end-users, I need to create multiple instance=
s of<br>
> the program in the same python script (allowing sensitivity studies fo=
r<br>
> example).<br>
><br>
><br>
Just to be sure, this need is raised because the program is using global<br=
>
data (module data or common blocks) that will create interference in<br>
between the two simultaneous runs of the program =A0Right?<br>
<br>
<br>
> The expected behavior could be :<br>
><br>
> >> import program as program1 =A0 =A0 =A0 # I know this can'=
t be the final<br>
> solution, but I found it useful<br>
> >> import program as program2 =A0 =A0 =A0 # to write it like tha=
t (--> to<br>
> improve understanding)<br>
><br>
> >> program1.init( 10 )<br>
> >> program2.init( 1000 )<br>
><br>
> >> program1.run()<br>
> >> program2.run()<br>
><br>
> where program1 and program2 defines 2 different instances from the sam=
e<br>
> .so file.<br>
><br>
><br>
> --------------------- Investigation ---------------------<br>
><br>
> I found a thread on your mailing list (from 2003 !) which seems to dea=
l<br>
> with this ( thread =3D " [f2py] multiple instances of same pyd fi=
le " ).<br>
> But I understand from it that no good solution had been identified (I =
may<br>
> be wrong). I'm wondering if, 8 years after, some new developpement=
(on f2py<br>
> or Python itself) could help doing this.<br>
><br>
><br>
I have used the approach where two (or more) extension modules are<br>
generated via f2py having different names but exactly the same source<br>
content.<br>
For example,<br>
<br>
f2py -c -m program1 source.f90<br>
f2py -c -m program2 source.f90<br>
<br>
and in Python you can do what you indented to do:<br>
>>> import program1<br>
>>> import program2<br>
>>> program1.init( 10 )<br>
>>> program2.init( 1000 )<br>
>>> program1.run()<br>
>>> program2.run()<br>
<br>
If you are using signature file approach then you need to reorganize the<br=
>
pyf file as illustrated below:<br>
<br>
# File routines.pyf<br>
subroutine init(n)<br>
=A0! f2py specs<br>
end subroutine init<br>
subroutine run()<br>
=A0! f2py specs<br>
end subroutine run<br>
# EOF routines.pyf<br>
<br>
# File program1.pyf<br>
python module program1<br>
interface<br>
include "routines.pyf"<br>
end interface<br>
end python module program1<br>
# EOF program1.pyf<br>
<br>
# File program2.pyf<br>
python module program2<br>
interface<br>
include "routines.pyf"<br>
end interface<br>
end python module program2<br>
# EOF program2.pyf<br>
<br>
and then build the extension modules:<br>
<br>
f2py -c program1.pyf source.f90<br>
f2py -c program2.pyf source.f90<br>
<br>
and use them from Python as above.<br>
<br>
HTH,<br>
Pearu<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <a href=3D"http://cens.ioc.ee/pipermail/f2py-users/attachments/2011120=
1/7b277418/attachment-0001.htm" target=3D"_blank">http://cens.ioc.ee/piperm=
ail/f2py-users/attachments/20111201/7b277418/attachment-0001.htm</a><br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
f2py-users mailing list<br>
<a href=3D"mailto:f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]">f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]</a><br>
<a href=3D"http://cens.ioc.ee/mailman/listinfo/f2py-users" target=3D"_blank=
">http://cens.ioc.ee/mailman/listinfo/f2py-users</a><br>
<br>
<br>
End of f2py-users Digest, Vol 82, Issue 2<br>
*****************************************<br>
<br>
</blockquote></div><br></div>
--90e6ba2121bddcf02f04b31c9862--
--===============2503902268508639181==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
f2py-users mailing list
f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]
http://cens.ioc.ee/mailman/listinfo/f2py-users
--===============2503902268508639181==--