f2py::演示Fortran模块功能

来源:互联网 发布:ca备份软件 编辑:程序博客网 时间:2024/05/10 03:25

 f2py::演示Fortran模块功能,首先请看示例Fortran90文件:

module mod  integer i  integer :: x(4)  real, dimension(2,3) :: a  real, allocatable, dimension(:,:) :: b contains  subroutine foo    integer k    print*, "i=",i    print*, "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)+3  end subroutine fooend module mod


在DOS窗口编译一下:

f2py -c -m moddata moddata.f90


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

>>> import moddata>>> print moddata.mod.__doc__i - 'i'-scalarx - '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=           5 x=[           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-contiguousarray([[ 1.,  5.,  3.],       [ 4.,  5.,  6.]],'f')


 

更详细的可以看官方的介绍:

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

原创粉丝点击