当前位置: 代码迷 >> 综合 >> f2py::演示Fortran字符串在python中的用法
  详细解决方案

f2py::演示Fortran字符串在python中的用法

热度:22   发布时间:2024-01-04 01:58:31.0

f2py::演示Fortran字符串在python中的用法.

先看示例Fortran文件:

C FILE: STRING.FSUBROUTINE FOO(A,B,C,D)CHARACTER*5 A, BCHARACTER*(*) C,D
Cf2py intent(in) a,c
Cf2py intent(inout) b,dPRINT*, "A=",APRINT*, "B=",BPRINT*, "C=",CPRINT*, "D=",DPRINT*, "CHANGE A,B,C,D"A(1:1) = 'A'B(1:1) = 'B'C(1:1) = 'C'D(1:1) = 'D'PRINT*, "A=",APRINT*, "B=",BPRINT*, "C=",CPRINT*, "D=",DEND
C END OF FILE STRING.F


在dos下编译一下:

f2py -c -m mystring string.f


下面演示在python中如何使用:

>>> import mystring
>>> print mystring.foo.__doc__
foo - Function signature:foo(a,b,c,d)
Required arguments:a : input string(len=5)b : in/output rank-0 array(string(len=5),'c')c : input string(len=-1)d : in/output rank-0 array(string(len=-1),'c')>>> import Numeric
>>> a=Numeric.array('123')
>>> b=Numeric.array('123')
>>> c=Numeric.array('123')
>>> d=Numeric.array('123')
>>> mystring.foo(a,b,c,d)A=123B=123C=123D=123CHANGE A,B,C,DA=A23B=B23C=C23D=D23
>>> a.tostring(),b.tostring(),c.tostring(),d.tostring()
('123', 'B23', '123', 'D23')


更详细的内容请看官方的说明:

http://cens.ioc.ee/projects/f2py2e/