我在通过 f2py 编译时遇到问题。我有一个 f90 模块,里面有几个子例程。到目前为止,它一直在编译,以便在 python 脚本中使用。但是,现在当我尝试编译它并构建它时,它会抱怨这个错误:
build/src.macosx-10.5-x86_64-2.7/PyCosmology/sims/fort/read_sim-f2pywrappers2.f90:355.17:
allocate(d())
1
Error: Shape specification for allocatable scalar at (1)
它还有另外两个错误,但这些只是由于d()
这里没有正确分配造成的。您可以看到它正在编译的文件是 f2py 包装器。更奇怪的是,当我真正查看它指向的包装文件时,第 355 行实际上是:
allocate(d(s(1),s(2)))
所以我不知道为什么编译器告诉我分配语句中没有形状说明符。正因为如此,我不知道如何解决它!
请注意,自从上次正确编译后,我对模块进行了一些更改,但发生此错误的数组我根本没有触及,我也没有触及它存在的特定子例程。