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简单格式化时间的方法【strftime函数】
Sep 18 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
python处理两种分隔符的数据集方法
Dec 12 Python
Falsk 与 Django 过滤器的使用与区别详解
Jun 04 Python
Python 的AES加密与解密实现
Jul 09 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
Python 炫技操作之合并字典的七种方法
Apr 10 Python
python 模块导入问题汇总
Feb 01 Python
教你怎么用python爬取爱奇艺热门电影
May 20 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 07 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 Python
Python代码实现双链表
May 25 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
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
PHP网络操作函数汇总
2015/05/18 PHP
php操作access数据库的方法详解
2017/02/22 PHP
如何在PHP中使用数组
2020/06/09 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
分厂厂长岗位职责
2013/12/29 职场文书
公司合作意向书范文
2014/07/30 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server