当前位置: 代码迷 >> 综合 >> f2py::演示Fortran模块功能
  详细解决方案

f2py::演示Fortran模块功能

热度:60   发布时间:2024-01-04 01:59:00.0

 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/