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 相关文章推荐
python3批量删除豆瓣分组下的好友的实现代码
Jun 07 Python
python字典多键值及重复键值的使用方法(详解)
Oct 31 Python
PyCharm在win10的64位系统安装实例
Nov 26 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
python+opencv实现摄像头调用的方法
Jun 22 Python
详解Python利用random生成一个列表内的随机数
Aug 21 Python
简单了解python数组的基本操作
Nov 26 Python
关于Python中定制类的比较运算实例
Dec 19 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
python非标准时间的转换
Jul 25 Python
python游戏开发之pygame实现接球小游戏
Apr 22 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二维数组矩形转置实例
2016/07/20 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
改写一个简单的菜单 弹性大小
2010/12/02 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
Vue.js组件高级特性实例详解
2018/12/24 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
如何管理Vue中的缓存页面
2021/02/06 Vue.js
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
跟老齐学Python之编写类之三子类
2014/10/11 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python生成密码库功能示例
2017/05/23 Python
python 全局变量的import机制介绍
2017/09/07 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
python安装scipy的方法步骤
2019/06/26 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
2020/08/19 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
python中pyplot基础图标函数整理
2020/11/10 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
工地材料员岗位职责
2015/04/11 职场文书
家长通知书家长意见
2015/06/03 职场文书
走近毛泽东观后感
2015/06/04 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python