python调用fortran模块


Posted in Python onApril 08, 2016

在python中调用fortran代码,要用到f2py这个程序。它的项目主页在此。现在该项目已经合并到numpy中了,先安装python再装好numpy,就可以使用f2py。不过对windows平台必须使用gnu的fortran编译器gfortran,在此下载。装完了python,numpy和gfortran这三样东西之后,还必须更改如下几个环境变量:

    1.在$PATH中添加gfortran的路径,我的是c:\Program Files\pythonxy\mingw\bin\

    2.在$PATH中添加python的路径,我的是c:\Python26\

    3.新建环境变量C_INCLUDE_PATH,添加gfortran头文件的路径,我的是c:\Program Files\pythonxy\mingw\include\

好啦现在f2py就可以用了。新建fortran程序foo.f90如下

foo.f90

subroutine hello (a)
 
integer a
 
  write(*,*)'Hello from Fortran90!!!',a
 
end subroutine hello

编译

f2py -m foo -c foo.f90

运行

$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo
>>> foo.hello(15)
 Hello from Fortran90!!!     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 ], double precision
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(<LaTeX text>)
usercode, callstatement, callprotoargument, threadsafe, fortranname
pymethoddef
entry

以上所述就是本文的全部内容了,希望大家能够喜欢

Python 相关文章推荐
python中使用urllib2伪造HTTP报头的2个方法
Jul 07 Python
Python查找函数f(x)=0根的解决方法
May 07 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
windows下numpy下载与安装图文教程
Apr 02 Python
python3人脸识别的两种方法
Apr 25 Python
python实现各种插值法(数值分析)
Jul 30 Python
pandas分组聚合详解
Apr 10 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
Python中openpyxl实现vlookup函数的实例
Oct 28 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 Python
Python实现的扫码工具居然这么好用!
Jun 07 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 Python
python3使用urllib模块制作网络爬虫
Apr 08 #Python
Python抓取电影天堂电影信息的代码
Apr 07 #Python
Python Requests安装与简单运用
Apr 07 #Python
Python Requests 基础入门
Apr 07 #Python
Python检测网站链接是否已存在
Apr 07 #Python
python多进程共享变量
Apr 06 #Python
python socket多线程通讯实例分析(聊天室)
Apr 06 #Python
You might like
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
yii分页组件用法实例分析
2015/12/28 PHP
php格式化时间戳
2016/12/17 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
js判断是否为空和typeof的用法(详解)
2016/10/07 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
python正则表达式抓取成语网站
2013/11/20 Python
python中执行shell命令的几个方法小结
2014/09/18 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
党校学习自我鉴定
2014/02/24 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
中考学习决心书
2015/02/04 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
你知道Java Spring的两种事务吗
2022/03/16 Java/Android