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分割文件的常用方法
Nov 01 Python
Python模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
在Django中限制已登录用户的访问的方法
Jul 23 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
Sep 18 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
解决pycharm的Python console不能调试当前程序的问题
Jan 20 Python
python中时间、日期、时间戳的转换的实现方法
Jul 06 Python
Python标准库itertools的使用方法
Jan 17 Python
Python气泡提示与标签的实现
Apr 01 Python
对python pandas中 inplace 参数的理解
Jun 27 Python
Python 爬虫的原理
Jul 30 Python
方法汇总:Python 安装第三方库常用
Apr 26 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中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
2017/08/10 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
Vue多系统切换实现方案
2018/06/05 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
Python创建日历实例
2014/08/21 Python
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
Python导入oracle数据的方法
2015/07/10 Python
浅谈五大Python Web框架
2017/03/20 Python
python中的set实现不重复的排序原理
2018/01/24 Python
Python自动登录QQ的实现示例
2020/08/28 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
日期和时间问题
2015/01/04 面试题
大学毕业生通用自我评价
2014/01/05 职场文书
培训演讲稿范文
2014/01/12 职场文书
酒店营销策划方案
2014/02/07 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
公司周年庆寄语
2019/06/21 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript