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群发邮件实例代码
Jan 03 Python
Python 时间操作例子和时间格式化参数小结
Apr 24 Python
利用python程序帮大家清理windows垃圾
Jan 15 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
Apr 11 Python
在Pycharm中调试Django项目程序的操作方法
Jul 17 Python
python3+django2开发一个简单的人员管理系统过程详解
Jul 23 Python
python中列表的切片与修改知识点总结
Jul 23 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
pandas中DataFrame重置索引的几种方法
May 24 Python
Python函数对象与闭包函数
Apr 13 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对象Object的概念 介绍
2012/06/14 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
angularJS 入门基础
2015/02/09 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
Python常见数据类型转换操作示例
2019/05/08 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
空指针到底是什么
2012/08/07 面试题
捐书寄语赠言
2014/01/18 职场文书
小学国庆节活动方案
2014/02/11 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
2014年质检工作总结
2014/11/26 职场文书
《包身工》教学反思
2016/02/23 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python