• 技术文章 >后端开发 >Python教程

    python调用fortran模块

    2016-06-10 15:05:20原创1426
    在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 ]
     | : | * | :
    intent([ in | inout | out | hide | in,out | inout,out | c |
         copy | cache | callback | inplace | aux ])
    dimension()
    common, parameter
    allocatable
    optional, required, external
    depend([])
    check([])
    note()
    usercode, callstatement, callprotoargument, threadsafe, fortranname
    pymethoddef
    entry
    

    以上所述就是本文的全部内容了,希望大家能够喜欢

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:python 调用fortran
    大前端线上培训班

    相关文章推荐

    • 详解Python的迭代器、生成器以及相关的itertools包• 分析在Python中何种情况下需要使用断言• python fabric实现远程操作和部署示例• python数据结构之二叉树的统计与转换实例• Django框架中方法的访问和查找

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网