Fortran子程序可以将另一个子程序作为参数。
subroutine mst(yht)
..
..
call yht(..)
但是python中的一个对象数组怎么样?我该如何发送说明
arr=[yht,yht,yht]
到Fortran。我试了但是失败了。有什么方法可以做到吗?
答案 0 :(得分:1)
这可能是一个延伸的评论而不是答案......
据我了解,f2py
会将Fortran过程(即函数和子程序)签名转换为Python。我不认为f2py
会将Fortran派生类型定义转换为Python对象定义。我好几年没用f2py
所以我可能错了。使用Fortran派生类型的实例识别Python对象的明显路线可能难以实现。
如果您可以说服Python代码创建Fortran编译器识别为C结构并使用Fortran的互操作性和C功能来读取和写入它们,那么您可能会取得更大的成功。 Metcalf, Reid and Cohen州(第304页)
这些限制允许类型与C结构类型互操作 具有相同数量的组件。组件对应 他们的定义中的位置。每个Fortran组件必须是 可与相应的C组件互操作。