f2py::演示Fortran模块功能,首先请看示例Fortran90文件:
module modinteger iinteger :: x(4)real, dimension(2,3) :: areal, allocatable, dimension(:,:) :: b
containssubroutine foointeger kprint*, "i=",iprint*, "x=[",x,"]"print*, "a=["print*, "[",a(1,1),",",a(1,2),",",a(1,3),"]"print*, "[",a(2,1),",",a(2,2),",",a(2,3),"]"print*, "]"print*, "Setting a(1,2)=a(1,2)+3"a(1,2) = a(1,2)+3end subroutine foo
end module mod
在DOS窗口编译一下:
f2py -c -m moddata moddata.f90
下面演示如何在python中使用fortran模块:
>>> import moddata
>>> print moddata.mod.__doc__
i - 'i'-scalar
x - 'i'-array(4)
a - 'f'-array(2,3)
foo - Function signature:foo()>>> moddata.mod.i = 5
>>> moddata.mod.x[:2] = [1,2]
>>> moddata.mod.a = [[1,2,3],[4,5,6]]
>>> moddata.mod.foo() i= 5x=[ 1 2 0 0 ]a=[[ 1.000000 , 2.000000 , 3.000000 ][ 4.000000 , 5.000000 , 6.000000 ]]Setting a(1,2)=a(1,2)+3
>>> moddata.mod.a # a is Fortran-contiguous
array([[ 1., 5., 3.],[ 4., 5., 6.]],'f')
更详细的可以看官方的介绍:
http://cens.ioc.ee/projects/f2py2e/