Python调用Fortran的三种形式
Posted 大作家佚名
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python调用Fortran的三种形式相关的知识,希望对你有一定的参考价值。
Python调用Fortran的三种形式
1. 简介
在一些研究领域很多经典算法和工具都由上古语言Fortran编写,而这部分代码又没有对应的C/C++和Python版本。因此,掌握Python语言调用Fortran程序这一技能,在一些研究领域有助于我们站在巨人的肩上看的更远。
Python调用Fortran可以总结为三种:(1)于 F2PY的f2py调用Fortran;(2)使用动态链接库;(3)利用Python的os包调用Fortran
2. Python调用Fortran的三种方法
2.1 计算圆面积的Fortran函数
接下来将用下面的函数进行演示。这里的例子是返回一个参数的,返回多个参数以及修改参数的Fortran用法,可以参考:Fortran - 程序( Procedures)。
function area_of_circle (r)
! function result
implicit none
! dummy arguments
real :: area_of_circle
! local variables
real :: r
real :: pi
pi = 4 * atan (1.0)
area_of_circle = pi * r**2
end function area_of_circle
2.2 基于 F2PY的f2py调用Fortran
新建circle.f90后,在终端中运行如下代码:
python -m numpy.f2py -c circle.f95 -m circle
具体步骤如下图,然后可以看到生成的circle.cpython-36m-x86_64-linux-gnu.so
在Python中,可以直接import上面的函数名
import circle
print(circle.__doc__)
print(circle.area_of_circle(2))
注意上面的__doc __是f2py自动生成的,可以看到fortran模块里面包含几个函数,每个函数里面还可以再调用doc看到接口参数类型。
2.3 使用动态链接库调用Fortran
2.4 利用Python的os包调用Fortran
参考
Python与Fortran混合编程
python调用fortran的3种形式【f2py,动态链接库,os命令】
以上是关于Python调用Fortran的三种形式的主要内容,如果未能解决你的问题,请参考以下文章
怎样从 C 中调用 FORTRAN (C++, BASIC, Pascal, Ada, LISP) 的函数?反之亦然?