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实现读取并显示图片的两种方法
Jan 13 Python
在python3.5中使用OpenCV的实例讲解
Apr 02 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
python并发爬虫实用工具tomorrow实用解析
Sep 25 Python
Python实现图片添加文字
Nov 26 Python
TensorFlow内存管理bfc算法实例
Feb 03 Python
python代码如何实现余弦相似性计算
Feb 09 Python
通过python连接Linux命令行代码实例
Feb 18 Python
Python requests设置代理的方法步骤
Feb 23 Python
Python如何将装饰器定义为类
Jul 30 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 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
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
checkbox选中与未选中判断示例
2014/08/04 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
从零学Python之入门(四)运算
2014/05/27 Python
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
django中forms组件的使用与注意
2019/07/08 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
Python新手学习标准库模块命名
2020/05/29 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
行政工作个人的自我评价
2014/02/13 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
合作经营协议书范本
2014/04/17 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android