我正在使用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)是很好的,否則對某些人來說可能會顯得「懶惰」。 –
也可以報告您使用的軟件版本和您使用的編譯器標誌。 –