【问题标题】:Passing an object array to Fortran using f2py使用 f2py 将对象数组传递给 Fortran
【发布时间】:2012-07-11 09:01:23
【问题描述】:

Fortran 子例程可以将另一个子例程作为参数。

subroutine mst(yht)
 ..
 ..
 call yht(..)

但是来自 python 的对象数组呢?我该如何发送说

arr=[yht,yht,yht]

到 Fortran。我试过了,但失败了。有什么办法吗?

【问题讨论】:

    标签: python fortran f2py


    【解决方案1】:

    这可能是一个扩展的评论,而不是一个答案......

    据我了解,f2py 会将 Fortran 过程(即函数和子例程)签名转换为 Python。我认为f2py 不会将 Fortran 派生类型定义转换为 Python 对象定义。我已经好几年没用过f2py了,所以我可能错了。用 Fortran 派生类型的实例识别 Python 对象的明显方法可能难以实现。

    如果您能够说服您的 Python 代码创建 Fortran 编译器识别为 C 结构的东西,并使用 Fortran 的与 C 的互操作性特性来读写它们,那么您可能会取得更大的成功。 Metcalf, Reid and Cohen 状态 (p246)

    这些限制允许类型与 C 结构类型互操作 具有相同数量的组件。组件对应于 在他们的定义中的位置。每个 Fortran 组件必须是 可与相应的 C 组件互操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      • 2013-07-01
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多