f2py是numpy自带的一个工具,只要安装了numpy,一般都会安装f2py.exe和f2py.py两个文件.
f2py.exe适合在命令行中使用,而f2py.py则一般在python代码中使用.
废话少说, 先建立一个testfortran.f90的文件如下:
!SUBROUTINE
SUBROUTINE ADDSUB(A,B,C,D)
IMPLICIT NONE
DOUBLE PRECISION A,B,C,D
!f2py intent(in) :: A,B
!f2py intent(out) :: C,D
C = A + B
D = A - B
print*, "ADDSUB From Fortran!"
print*, "ADD=",C
print*, "SUB=",D
RETURN
注意这两行的代码:
!f2py intent(in) :: A,B
!f2py intent(out) :: C,D
对于Fortran只是注释,但对于f2py却很重要,相当于"签名".
注意签名的注释前面不能有空格!
当然也可以写成如下的形式:
Cf2py intent(in) :: A,B
Cf2py intent(out) :: C,D
下面开始编译Fortran代码为python模块,打开CMD窗口,输入如下命令:
f2py -m testfortran -c testfortran.f90
会在当前目录下生成testfortran.pyd的文件.
下面就可以再python中使用这个模块了:
In [1]: import testfortran
In [2]: print testfortran.__doc__
This module 'testfortran' is auto-generated with f2py (version:2).
Functions:
c,d = addsub(a,b)
In [3]: x=testfortran.addsub(4,9)
ADDSUB From Fortran!
ADD= 13.000
SUB= -5.000
In [4]: x
Out[4]: (13.0, -5.0)
In [5]:
numpy和f2py的主页也详细的说明,大家可以自己去看看:
http://www.scipy.org/F2py
f2py是numpy自带的一个工具,只要安装了numpy,一般都会安装f2py.exe和f2py.py两个文件.f2py.exe适合在命令行中使用,而f2py.py则一般在python代码中使用.废话少说, 先建立一个testfortran.f90的文件如下: !SUBROUTINE SUBROUTINE ADDSUB(A,B,C,D) IM
在 Python 中通过import引入动态库
"""======================1.fortran程序========================="""
function foo(a) result(b)
implicit none
real(kind=8), intent(in)
https://blog.csdn.net/rumswell/article/details/7377339
https://blog.csdn.net/bluelilyfly/article/details/80155296
http://bbs.06climate.com/forum.php?mod=viewthread&tid=6468
http://bbs.06cl...
由于历史缘故,很多成熟的计算代码都是用fortran写成的。在python中调用fortran代码,要用到f2py这个程序。现在该项目已经合并到numpy中了,先安装python再装好numpy,就可以使用f2py。
一个简单的例子:
foo.f90
subroutine hello (a)
integer a
write(*,*)'Hello from Fortran90!!!', a
nuistsy:
NCL中绘制中国任意省份的精确地图
丽-丽_Lily: