f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码
来源:互联网 发布:电脑端手机淘宝模拟器 编辑:程序博客网 时间:2024/05/20 18:49
请看示例F77文件:
C FILE: CALLBACK.F SUBROUTINE FOO(FUN,R) EXTERNAL FUN INTEGER I REAL*8 RCf2py intent(out) r R = 0D0 DO I=-5,5 R = R + FUN(I) ENDDO ENDC END OF FILE CALLBACK.F
在DOS窗口输入:
f2py -c -m callback callback.f
下面是测试:
>>> import callback>>> print callback.foo.__doc__foo - Function signature: r = foo(fun,[fun_extra_args])Required arguments: fun : call-back functionOptional arguments: fun_extra_args := () input tupleReturn objects: r : floatCall-back functions: def fun(i): return r Required arguments: i : input int Return objects: r : float>>> def f(i): return i*i... >>> print callback.foo(f) 110.0>>> print callback.foo(lambda i:1)11.0
更纤细的说明,请看官方网站:
http://cens.ioc.ee/projects/f2py2e/
可以再看下面的例子:
subroutine calculate(x,n)cf2py intent(callback) func external funcc The following lines define the signature of func for F2PY:cf2py real*8 ycf2py y = func(y)ccf2py intent(in,out,copy) x integer n,i real*8 x(n) do i=1,n x(i) = func(x(i)) end do end
在DOS窗口输入:
f2py -c -m foo calculate.f
下面是在Python中测试:
>>> import foo>>> foo.calculate(range(5), lambda x: x*x)array([ 0., 1., 4., 9., 16.])>>> import math>>> foo.calculate(range(5), math.exp)array([ 1. , 2.71828175, 7.38905621, 20.08553696, 54.59814835])
以上都是官方的示例
- f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码
- f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码
- f2py::演示在python中如何使用Fortran代码
- python利用f2py调用Fortran,并移植wrf-python
- f2py::演示Fortran二维数组在python中的使用示例
- f2py::演示Fortran中的公用区在Python中的使用
- f2py::演示Fortran字符串在python中的用法
- fortran中调用C封装的函数
- Fortran调用C语言小计
- Fortran与C混合编程,C调用Fortran函数,Fortran再回调C中的函数
- 在fortran中如何来测试代码运行时间
- f2py::演示Fortran模块功能
- 选择排序 Fortran代码
- 如何在python中调用C语言代码
- 怎样从C 中调用FORTRAN (C++, BASIC, Pascal, Ada,LISP) 的函数?反之亦然?
- fortran 函数的调用标准
- 【转载】Fortran调用C程序
- 在Java中直接调用js或其它解释性语言代码
- struts的工作原理
- C#的String.Split 方法
- UITableView 多选(Multiple Select)列表的实现
- 对Android中的AsyncTask进行函数化的封装,简洁调用
- android自动化测试工具---monkeyrunner工具
- f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码
- 怎么调试Delphi源码
- 中文分词歧义切分:严守一把手机关了
- Java程序员从笨鸟到菜鸟之(序言)+全部链接
- 递归输出全排列和全组合
- 【Android Training - 02】适配不同的屏幕[Lesson 3 - 实现可适配的UI流程]
- 优化游标性能
- 在WPF中,如何得到任何Object对象的XAML代码?
- 设计过程中的点滴思考