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的三目运算符和not in运算符使用示例
Mar 03 Python
Python中实现常量(Const)功能
Jan 28 Python
利用Python中的mock库对Python代码进行模拟测试
Apr 16 Python
详解Python编程中time模块的使用
Nov 20 Python
Python下实现的RSA加密/解密及签名/验证功能示例
Jul 17 Python
用pandas中的DataFrame时选取行或列的方法
Jul 11 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 Python
对Python之gzip文件读写的方法详解
Feb 08 Python
面向对象学习之pygame坦克大战
Sep 11 Python
pytorch 批次遍历数据集打印数据的例子
Dec 30 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
Jun 22 Python
聊聊python在linux下与windows下导入模块的区别说明
Mar 03 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定时计划任务的实现方法详解
2013/06/06 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
php中socket的用法详解
2014/10/24 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
js截取函数(indexOf,join等)
2010/09/01 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
javascript canvas检测小球碰撞
2020/04/17 Javascript
JS实现纸牌发牌动画
2021/01/19 Javascript
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
英国在线花园中心:You Garden
2018/06/03 全球购物
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
上班玩手机检讨书
2014/02/17 职场文书
教研活动总结
2014/04/28 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
低碳生活的宣传标语
2014/06/23 职场文书
毕业生实习证明
2014/09/19 职场文书