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 ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
Jun 10 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
Python实现备份MySQL数据库的方法示例
Jan 11 Python
Python基于辗转相除法求解最大公约数的方法示例
Apr 04 Python
Python编写一个优美的下载器
Apr 15 Python
python requests.post带head和body的实例
Jan 02 Python
python实现飞机大战游戏
Oct 26 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
详解Python中的测试工具
Jun 09 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
Python结合百度语音识别实现实时翻译软件的实现
Jan 18 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文件上传简单实现方法
2015/01/24 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
如何在PHP中读写文件
2020/09/07 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
jquery插件之easing使用
2010/08/19 Javascript
Js实现滚动变色的文字效果
2014/06/16 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
selenium+python实现自动登录脚本
2018/04/22 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
pycharm配置git(图文教程)
2019/08/16 Python
python中的global关键字的使用方法
2019/08/20 Python
python打包成so文件过程解析
2019/09/28 Python
Python any()函数的使用方法
2019/10/28 Python
python3下pygame如何实现显示中文
2020/01/11 Python
Python多进程编程常用方法解析
2020/03/26 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
区优秀教师事迹材料
2014/02/10 职场文书
网络技术专业推荐信
2014/02/20 职场文书
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
创业计划书之废品回收
2019/09/26 职场文书