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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
Django框架实现的简单分页功能示例
Dec 04 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
Django 大文件下载实现过程解析
Aug 01 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
Pycharm配置PyQt5环境的教程
Apr 02 Python
python列表的逆序遍历实现
Apr 20 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 Python
Python 视频画质增强
Apr 28 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对象相互引用的内存溢出实例分析
2014/08/28 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
js no-repeat写法 背景不重复
2009/03/18 Javascript
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
js快速排序的实现代码
2013/12/08 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
django框架中间件原理与用法详解
2019/12/10 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python
KVM基础命令详解
2022/04/30 Servers