python调用fortran模块

作者:hebedich 时间:2023-12-22 23:36:40 

在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,调用fortran
0
投稿

猜你喜欢

  • 简单学习Python time模块

    2021-04-24 00:18:53
  • mysql实现合并同一ID对应多条数据的方法

    2024-01-15 16:19:34
  • python实现网页自动签到功能

    2024-01-03 00:13:14
  • Golang实现单链表的示例代码

    2024-02-11 15:09:27
  • 详解前端自动化工具gulp自动添加版本号

    2023-08-09 14:48:41
  • Python异步操作MySQL示例【使用aiomysql】

    2024-01-16 20:22:07
  • 《悟透JavaScript》感谢语

    2008-11-12 12:59:00
  • 解决Laravel使用验证时跳转到首页的问题

    2023-07-12 09:02:13
  • python 定时修改数据库的示例代码

    2024-01-25 00:31:40
  • 总结Python图形用户界面和游戏开发知识点

    2022-03-03 18:36:25
  • 星球大战与Python之间的那些事

    2023-05-25 13:49:35
  • python中的argparse基本用法(使用步骤)

    2023-06-12 20:01:36
  • 详解SQL中Group By的用法

    2024-01-28 14:01:32
  • Python的Asyncore异步Socket模块及实现端口转发的例子

    2023-04-23 13:24:38
  • 关于python 的legend图例,参数使用说明

    2022-07-21 10:10:13
  • Pygame代码 制作一个贪吃蛇小游戏

    2022-06-29 03:04:27
  • 详解Python中namedtuple的使用

    2022-05-11 01:29:00
  • vue中v-for通过动态绑定class实现触发效果

    2024-04-09 10:45:21
  • 交互设计实用指南系列(10)—别让我思考

    2010-03-01 12:50:00
  • Python编程入门指南之函数

    2021-05-13 15:45:31
  • asp之家 网络编程 m.aspxhome.com