Re: [f2py] Character Arrays FROM Common Block
Kevin Manross <[email protected]> Fri, 07 Sep 2012 10:57:02 -0600
| Newsgroups | gmane.comp.python.f2py.user |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --===============0616971707822881695== Content-Type: multipart/alternative; boundary="------------050808080408000201090409" This is a multi-part message in MIME format. --------------050808080408000201090409 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Thanks for the reply Tim! I've written one myself, though I'm still testing it for "generic-ness". I'll post it if/when I get it hammered out and tested fairly well. I was hoping there might be a more fundamental way of handling character arrays from FORTRAN into python. Thanks again! -kevin. On 9/7/12 10:45 AM, Tim-DRS wrote: > I had to write my own parser. > Don't have it handy at the moment. > I didn't write generically enough to drop immediately into your code, > but it was flexible. > > Tim > > Sent from my iPod > > On Sep 6, 2012, at 2:15 PM, Kevin Manross <[email protected] > <mailto:[email protected]>> wrote: > >> >> Greetings! >> >> I have been enjoying learning to use f2py as a relative novice in >> both Python and FORTRAN. >> >> I have been working on wrapping the NOAA NCEP BUFRLIB library >> <http://www.nco.ncep.noaa.gov/sib/decoders/BUFRLIB/> to make the I/O >> more user friendly, to take advantage of the many efficient packages >> available in Python, and to translate the data into other data >> formats (such as netCDF). >> >> I have been successful in wrapping the library in order to use the >> subroutines, but to have greater flexibility I need to access the >> common block data. I can access it, and am trying to work through >> the FORTRAN column-order issues between the respective arrays. The >> one area that I'm really stuck on is trying to extract character >> arrays in proper order. >> >> I have an example of the issue I'm running into: >> >> ============= FORTRAN File =============== >> >> C FILE: CHARTEST.F >> SUBROUTINE FOO() >> C >> C ABSTRACT: Test character arrays when using with F2PY. Problem >> is in >> C FORTRAN column-order, character arrays get all messed >> up. >> C Hope to learn a way around this >> C >> C INPUTS: None >> C OUTPUTS: STROUT - character array >> C >> C >> COMMON /TEST/ STROUT(20) >> CHARACTER*3 STROUT >> >> STROUT(1) = 'ABC' >> STROUT(2) = 'DEF' >> STROUT(3) = 'GHI' >> STROUT(4) = 'JKL' >> STROUT(5) = 'MNO' >> STROUT(6) = 'PQR' >> STROUT(7) = 'STU' >> STROUT(8) = 'VWX' >> STROUT(9) = 'YZ' >> >> END >> >> >> >> ========== Python Script ================= >> >> #!/usr/bin/env python >> >> import chartest >> >> chartest.foo() >> print chartest.test.strout >> >> >> >> >> So while I need to get the array elements back out in the order that >> they are entered (I.e., 'ABC') the output I get is: >> >> % ./test_chartest.py >> [['A' 'U' ''] >> ['B' 'V' ''] >> ['C' 'W' ''] >> ['D' 'X' ''] >> ['E' 'Y' ''] >> ['F' 'Z' ''] >> ['G' ' ' ''] >> ['H' '' ''] >> ['I' '' ''] >> ['J' '' ''] >> ['K' '' ''] >> ['L' '' ''] >> ['M' '' ''] >> ['N' '' ''] >> ['O' '' ''] >> ['P' '' ''] >> ['Q' '' ''] >> ['R' '' ''] >> ['S' '' ''] >> ['T' '' '']] >> >> I've been playing with Numpy's myriad of array manipulation, but with >> no success thus far. >> >> Is there a "built-in" way around this reordering of character arrays, >> or will I need to create my own parser for this? >> >> Many thanks for any input! >> >> -kevin. >> >> >> -- >> Kevin Manross >> NCAR/CISL/Data Support Section >> Phone: (303)-497-1218 >> Email:[email protected] <mailto:[email protected]> >> Web:http://dss.ucar.edu >> _______________________________________________ >> f2py-users mailing list >> f2py-users-Y4l6ocDipWCuvFJfX82//[email protected] <mailto: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 -- Kevin Manross NCAR/CISL/Data Support Section Phone: (303)-497-1218 Email:[email protected] <mailto:[email protected]> Web:http://rda.ucar.edu --------------050808080408000201090409 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"> </head> <body bgcolor="#FFFFFF" text="#000000"> <br> Thanks for the reply Tim!<br> <br> I've written one myself, though I'm still testing it for "generic-ness". I'll post it if/when I get it hammered out and tested fairly well.<br> <br> I was hoping there might be a more fundamental way of handling character arrays from FORTRAN into python.<br> <br> Thanks again!<br> <br> -kevin.<br> <br> <br> <div class="moz-cite-prefix">On 9/7/12 10:45 AM, Tim-DRS wrote:<br> </div> <blockquote cite="mid:599ED85F-F9D7-477E-9951-40FD2436FDEF-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org" type="cite"> <div>I had to write my own parser.</div> <div>Don't have it handy at the moment.</div> <div>I didn't write generically enough to drop immediately into your code, but it was flexible.</div> <div><br> </div> <div>Tim<br> <br> Sent from my iPod</div> <div><br> On Sep 6, 2012, at 2:15 PM, Kevin Manross <<a moz-do-not-send="true" href="mailto:[email protected]">[email protected]</a>> wrote:<br> <br> </div> <blockquote type="cite"> <div> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <br> Greetings!<br> <br> I have been enjoying learning to use f2py as a relative novice in both Python and FORTRAN.<br> <br> I have been working on wrapping the NOAA NCEP BUFRLIB library <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="http://www.nco.ncep.noaa.gov/sib/decoders/BUFRLIB/"><http://www.nco.ncep.noaa.gov/sib/decoders/BUFRLIB/></a> to make the I/O more user friendly, to take advantage of the many efficient packages available in Python, and to translate the data into other data formats (such as netCDF).<br> <br> I have been successful in wrapping the library in order to use the subroutines, but to have greater flexibility I need to access the common block data. I can access it, and am trying to work through the FORTRAN column-order issues between the respective arrays. The one area that I'm really stuck on is trying to extract character arrays in proper order.<br> <br> I have an example of the issue I'm running into:<br> <br> ============= FORTRAN File ===============<br> <br> C FILE: CHARTEST.F<br> SUBROUTINE FOO()<br> C<br> C ABSTRACT: Test character arrays when using with F2PY. Problem is in <br> C FORTRAN column-order, character arrays get all messed up. <br> C Hope to learn a way around this<br> C<br> C INPUTS: None<br> C OUTPUTS: STROUT - character array<br> C<br> C<br> COMMON /TEST/ STROUT(20)<br> CHARACTER*3 STROUT<br> <br> STROUT(1) = 'ABC'<br> STROUT(2) = 'DEF'<br> STROUT(3) = 'GHI'<br> STROUT(4) = 'JKL'<br> STROUT(5) = 'MNO'<br> STROUT(6) = 'PQR'<br> STROUT(7) = 'STU'<br> STROUT(8) = 'VWX'<br> STROUT(9) = 'YZ'<br> <br> END<br> <br> <br> <br> ========== Python Script =================<br> <br> #!/usr/bin/env python<br> <br> import chartest<br> <br> chartest.foo()<br> print chartest.test.strout<br> <br> <br> <br> <br> So while I need to get the array elements back out in the order that they are entered (I.e., 'ABC') the output I get is:<br> <br> % ./test_chartest.py<br> [['A' 'U' '']<br> ['B' 'V' '']<br> ['C' 'W' '']<br> ['D' 'X' '']<br> ['E' 'Y' '']<br> ['F' 'Z' '']<br> ['G' ' ' '']<br> ['H' '' '']<br> ['I' '' '']<br> ['J' '' '']<br> ['K' '' '']<br> ['L' '' '']<br> ['M' '' '']<br> ['N' '' '']<br> ['O' '' '']<br> ['P' '' '']<br> ['Q' '' '']<br> ['R' '' '']<br> ['S' '' '']<br> ['T' '' '']]<br> <br> I've been playing with Numpy's myriad of array manipulation, but with no success thus far.<br> <br> Is there a "built-in" way around this reordering of character arrays, or will I need to create my own parser for this?<br> <br> Many thanks for any input!<br> <br> -kevin.<br> <br> <br> <div class="moz-signature">-- <br> Kevin Manross<br> NCAR/CISL/Data Support Section<br> Phone: (303)-497-1218<br> Email:<a moz-do-not-send="true" href="mailto:[email protected]">[email protected]</a><br> Web:<a moz-do-not-send="true" href="http://dss.ucar.edu">http://dss.ucar.edu</a><br> </div> </div> </blockquote> <blockquote type="cite"> <div><span>_______________________________________________</span><br> <span>f2py-users mailing list</span><br> <span><a moz-do-not-send="true" href="mailto:f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]">f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]</a></span><br> <span><a moz-do-not-send="true" href="http://cens.ioc.ee/mailman/listinfo/f2py-users">http://cens.ioc.ee/mailman/listinfo/f2py-users</a></span><br> </div> </blockquote> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <br> <pre wrap="">_______________________________________________ f2py-users mailing list <a class="moz-txt-link-abbreviated" href="mailto:f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]">f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]</a> <a class="moz-txt-link-freetext" href="http://cens.ioc.ee/mailman/listinfo/f2py-users">http://cens.ioc.ee/mailman/listinfo/f2py-users</a> </pre> </blockquote> <br> <div class="moz-signature">-- <br> Kevin Manross<br> NCAR/CISL/Data Support Section<br> Phone: (303)-497-1218<br> Email:<a href="mailto:[email protected]">[email protected]</a><br> Web:<a href="http://rda.ucar.edu">http://rda.ucar.edu</a><br> </div> </body> </html> --------------050808080408000201090409-- --===============0616971707822881695== 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 --===============0616971707822881695==--