python调用fortran模块
在python中调用fortran代码,要用到f2py这个程序。它的项目主页在此。现在该项目已经合并到numpy中了,先安装python再装好numpy,就可以使用f2py。不过对windows平台必须使用gnu的fortran编译器gfortran,在此下载。装完了python,numpy和gfortran这三样东西之后,还必须更改如下几个环境变量:
1.在$PATH中添加gfortran的路径,我的是c:\ProgramFiles\pythonxy\mingw\bin\
2.在$PATH中添加python的路径,我的是c:\Python26\
3.新建环境变量C_INCLUDE_PATH,添加gfortran头文件的路径,我的是c:\ProgramFiles\pythonxy\mingw\include\
好啦现在f2py就可以用了。新建fortran程序foo.f90如下
foo.f90
subroutinehello(a) integera write(*,*)'HellofromFortran90!!!',a endsubroutinehello
编译
f2py-mfoo-cfoo.f90
运行
$python Python2.7.6(default,Jun222015,17:58:13) [GCC4.8.2]onlinux2 Type"help","copyright","credits"or"license"formoreinformation. >>>importfoo >>>foo.hello(15) HellofromFortran90!!!15
另外附上f2py支持的数据类型有
integer[|*1|*2|*4|*8],logical[|*1|*2|*4|*8] integer*([-1|-2|-4|-8]) character[|*(*)|*1|*2|*3|...] real[|*4|*8|*16],doubleprecision complex[|*8|*16|*32] <dim>|<start>:<end>|*|: intent([in|inout|out|hide|in,out|inout,out|c| copy|cache|callback|inplace|aux]) dimension(<dimspec>) common,parameter allocatable optional,required,external depend([<names>]) check([<C-booleanexpr>]) note(<LaTeXtext>) usercode,callstatement,callprotoargument,threadsafe,fortranname pymethoddef entry
以上所述就是本文的全部内容了,希望大家能够喜欢