【发布时间】:2017-04-04 02:11:02
【问题描述】:
我正在使用 Python 调用由 f2py 绑定的 Fortran 函数。当我显式标注数组时,我的 sum 调用返回所需的结果,但是当我使用假定形状时,它返回 0
! foo.f95
function sum_test(arr)
IMPLICIT NONE
integer(8), dimension(:), intent(in) :: arr
integer(8) :: sum_test
sum_test = sum(arr)
end function sum_test
Python 方面:
import foo
foo.sum_test([1,2,3])
0L
如果我在 Fortran 中明确标注:
! foo.f95
function sum_test(arr)
IMPLICIT NONE
integer(8), dimension(3), intent(in) :: arr
integer(8) :: sum_test
sum_test = sum(arr)
end function sum_test
Python 方面:
import foo
foo.sum_test([1,2,3])
6L
请注意,如果我像这样在假定形状的版本上打印出我的值:
write(*,*) arr
我可以看到数组中的值。
我显然在这里遗漏了一些关键部分!
【问题讨论】:
-
您好,欢迎您。尽量保持你的帖子简洁,避免冗长的介绍、感谢和问候。您的名字已经在带有图标的帖子下方,无需重复。使用标签fortran 并添加特定版本,如果您有理由这样做(不在此处)。更多人关注更通用的标签,因此您更有可能得到答案。此外,最好在应该使用大写字母的地方使用(I、Fortran、Python),否则您可能会显得“懒惰”。
-
报告您使用的软件版本和您使用的编译器标志也很好。
标签: python arrays fortran f2py