首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于传递给F90 real(8)数据类型的Python ctype数据类型

用于传递给F90 real(8)数据类型的Python ctype数据类型
EN

Stack Overflow用户
提问于 2012-10-15 19:38:42
回答 1查看 319关注 0票数 0

我使用ctype(Phyon3.2)从64位Debian Linux机器上的共享库中调用F90例程。如果F90例程采用和类型的参数,

代码语言:javascript
复制
! We're in fortran (F90) 
subroutine MyFunc(FooF90)   
real(8),intent(in) :: FooF90
! do some stuff...
return

我应该从Python传递什么?我的猜测是

代码语言:javascript
复制
# We're in Python3.2
F90func(ctypes.byref(ctypes.c_double(FooPy)))

这是正确的吗?我很难找到从Python传递real(n)类型的fortran参数的引用。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-15 19:45:26

real(8)不是由标准定义的,所以任何事情都可能发生(您应该通过selected_real_kindiso_c_bindingiso_fortran_env获得种类号)。实际上,对于大多数编译器来说,它等同于c_double。您可能正在使用gfortran,这在默认情况下是有效的。

如果Python解释器在默认情况下希望通过value参数传递,那么可能会有问题。在ctypes中搜索byref()函数。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12894841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档