我正在尝试学习f2py
,并且具有以下Fortran代码
subroutine fibonacci(a, n)
implicit none
integer :: i, n
double precision :: a(n)
do i = 1, n
if (i .eq. 1) then
a(i) = 0d0
elseif (i .eq. 2) then
a(i) = 1d0
else
a(i) = a(i - 1) + a(i - 2)
endif
enddo
end subroutine fibonacci
[用f2py -c fibonacci.f -m fibonacci
编译,后来在Python中调用
import numpy
import fibonacci
a = numpy.zeros(13)
fibonacci.fibonacci(a)
print a
在Python中调用的子例程fibonacci
没有得到足够多的参数,但是代码神秘地起作用了。顺便说一句,用fibonacci
调用子程序fibonacci.fibonacci(a, len(a))
也可以!
有人可以解释一下吗?谢谢!
f2py
从声明中知道a
和n
是函数参数