首页 > 解决方案 > f2py 是否支持类型仅作为 intent(inout) 的函数?

问题描述

我正在将纯 F90 宇宙学库连接到 python 代码,以便通过在 F90 中编写互连函数来绘制一些图,该函数使用上述库中的多个函数,例如,

使用 cosmology_functions

其中 cosmology_functions 是一个模块,包括一些带有下划线的函数,例如“init_cosmology”。我成功编译了这个互连,但是当我尝试在我的 python 脚本中导入它时,我发现了这个问题:

ImportError:$PATH$/Interconnection.cpython-38-x86_64-linux-gnu.so:未定义符号:__cosmology_functions_MOD_init_cosmology

奇怪的是,在“init_cosmology”之前调用了几个函数并且我没有收到任何错误报告。所以我怀疑是不是函数本身导致的错误是和f2py一起使用的。这个函数的输入和输出很简单:

子程序 init_cosmology(cosm)

类型(宇宙学),意图(输入)::宇宙

其中参数被添加到该函数内部的 cosm 中,使得输入维度和输出维度彼此不同。这是 f2py 的内在问题吗?还是我猜错了?

编译器是 GNU fortran 9.3.0,python 版本是 3.8.5。

提前谢谢了。

标签: fortrangfortranf2py

解决方案


推荐阅读