在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
以上所述就是本文的全部内容了,希望大家能够喜欢
Fortran isn't a language the many people write new codes in but it still is in extensive use in the scientific communities. Many, many libraries exist for doing numerical calculation that will never b
本文向大家介绍Fortran 模块语法,包括了Fortran 模块语法的使用技巧和注意事项,需要的朋友参考一下 示例 模块是类型声明,数据声明和过程的集合。基本语法为:
问题内容: 我试图弄清楚如何从一些FORTRAN代码中重定向输出,我已经使用F2PY为它们生成了Python接口。我试过了: 这是在Python中重定向输出的事实上的方法,但是在这种情况下似乎不起作用(即,无论如何都会显示输出)。 我确实找到了2002年的邮件列表帖子,内容是“可以从pts设备读取消息,例如ttysnoop可以做到这一点”。关于ttysnoop的信息似乎很难在网上找到(我认为它已经
本文向大家介绍Fortran 使用其他程序单元中的模块,包括了Fortran 使用其他程序单元中的模块的使用技巧和注意事项,需要的朋友参考一下 示例 要从另一个程序单元(模块,过程或程序)访问模块中声明的实体,该模块必须与语句一起使用use。 该use语句仅支持导入所选名称 也可以使用重命名列表以其他名称访问实体: 此外,可以将重命名与only选项结合使用 这样就只能iarray访问模块实体,但是
本文向大家介绍C#调用Python模块的方法,包括了C#调用Python模块的方法的使用技巧和注意事项,需要的朋友参考一下 当下,C#与Python都是比较热门的计算机编程语言,他们各有优缺点,如果能让他们互相配合工作,那是多么美好的事情,今天我来讲解一下如何利用C#来调用Python。 如果让C#支持调用Python模块,我们首先需要安装一些扩展,这里推荐使用IronPython库。 第
本文向大家介绍Fortran 普通块,包括了Fortran 普通块的使用技巧和注意事项,需要的朋友参考一下 示例 在Fortran的早期形式中,用于创建从子例程和函数可见的全局变量存储的唯一机制是使用COMMON块机制。这允许变量序列成为名称并共享。 除了已命名的公共块之外,还可能有一个空白(未命名)的公共块。 可以声明一个空白的公共块,例如 而命名块variables可以像 作为一个完整的示例,
Fortran Package Manager(fpm)是 Fortran 的包管理器和构建系统。它的主要目标是改善 Fortran 程序员的用户体验。它通过使构建 Fortran 程序或函数库,运行可执行文件、测试和示例以及将其作为依赖项分发到其他 Fortran 项目变得更加容易来实现这一目标。fpm 的用户界面以 Rust 的 Cargo 为蓝本,其长期愿景是培育和发展现代 Fortran
问题内容: 我有一个fortran程序会生成未格式化的文件,并且正在尝试将它们读入Python。 我有源代码,因此我知道第一个“块”是的字符数组,依此类推。所以我开始 并且是一个80长度的元组,由长度为1的字符串组成;其中一些内容是十六进制字符串(例如)。如何将这个变量转换为单个ascii字符串? 问题答案: 大多数Fortran未格式化文件将包含额外的字节来指定记录的长度。记录是用单个Fortr