使用F2PY作为包装器,是否可以将子例程与子例程调用一起使用?如果是这样,怎么办?
如果我不清楚,我的意思是这样的:
SUBROUTINE average(a, b, out)
real a, b, out
cf2py intent(in) a, b
cf2py intent(out) out
call add(a, b, out)
out=out/2
END
add子例程如下:
subroutine add(a, b, out)
real a, b, out
out = a + b
return
end
尝试f2py -c -m average average.f并导入到python我得到:
ImportError:./average.so:未定义的符号:add_
此外,将意图添加到第二个子例程中也不能解决问题。
您需要add
在编译命令中包含包含的文件,例如
f2py -c -m average average.f add.f
您导入的共享库需要在导入时解析其引用,这意味着它们必须包含在库中或链接到该库。您可以像下面这样将功能保存在单独的库中:
gfortran -shared -fPIC -o add.so add.f
f2py -c -m average average.f add.so
它将产生一个本身不包含add
但会add.so
对该函数具有运行时链接依赖关系的python模块。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句