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的chardet库获得文件编码并修改编码
Jan 22 Python
简单解决Python文件中文编码问题
Nov 22 Python
简单学习Python time模块
Apr 29 Python
Python实现树莓派WiFi断线自动重连的实例代码
Mar 16 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 Python
Django contenttypes 框架详解(小结)
Aug 13 Python
Django 中间键和上下文处理器的使用
Mar 17 Python
python 判断文件还是文件夹的简单实例
Jun 10 Python
django认证系统 Authentication使用详解
Jul 22 Python
如何基于python生成list的所有的子集
Nov 11 Python
python如何提升爬虫效率
Sep 27 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读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
关于跨站脚本攻击问题
2011/12/22 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
个人求职简历中英文自我评价
2013/12/16 职场文书
个人党性剖析材料
2014/02/03 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
六一儿童节标语
2014/10/08 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
《所见》教学反思
2016/02/23 职场文书