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使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 Python
python通过pip更新所有已安装的包实现方法
May 19 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
Python数据可视化之画图
Jan 15 Python
Django重置migrations文件的方法步骤
May 01 Python
面向对象学习之pygame坦克大战
Sep 11 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
python的pip有什么用
Jun 17 Python
python3.4中清屏的处理方法
Jul 06 Python
Python常用数字处理基本操作汇总
Sep 10 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
Jan 24 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
php打开远程文件的方法和风险及解决方法
2013/11/12 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
date.parse在IE和FF中的区别
2010/07/29 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Python读取properties配置文件操作示例
2018/03/29 Python
python实现傅里叶级数展开的实现
2018/07/21 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
医药代表个人求职信范本
2013/12/19 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
卫生标语大全
2014/06/21 职场文书
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
html中两种获取标签内的值的方法
2022/06/16 jQuery