[英]Passing an object array to Fortran using f2py
Fortran子例程可以将另一个子例程作为参数。
subroutine mst(yht)
..
..
call yht(..)
但是python中的对象数组怎么样? 我该如何发话
arr=[yht,yht,yht]
到Fortran。 我尝试过但失败了,有什么办法吗?
这可能是扩展的评论,而不是答案...
据我了解, f2py
会将Fortran过程(即函数和子例程)签名转换为Python。 我认为f2py
不会将Fortran派生类型定义转换为Python对象定义。 我已经好几年没有使用f2py
了,所以我对此可能是错的。 用Fortran派生类型的实例标识Python对象的明显方法可能难以实现。
如果可以说服Python代码创建Fortran编译器可以识别为C结构的东西,并使用Fortran与C的互操作性功能来读写它们,则可能会获得更大的成功。 梅特卡夫,里德和科恩 (p246)
这些限制允许该类型与具有相同数量组件的C结构类型进行互操作。 组件在其定义中按位置对应。 每个Fortran组件必须与相应的C组件可互操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.