我正在使用Python调用由f2py绑定的Fortran函数。当我明确维度数组我的总和调用返回所希望的结果,但是当我使用假定形状返回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)是很好的,否则对某些人来说可能会显得“懒惰”。 –
也可以报告您使用的软件版本和您使用的编译器标志。 –