f2py функции с массивом значений

Поддерживают ли последние версии f2py перенос функций fortran, возвращающих значения массива? В некоторых древних документах это не поддерживалось. Как насчет этого сейчас?

Давайте, например, сохраним следующую функцию как func.f95.

function func(x)
    implicit none
    double precision :: x(:),func(size(x))
    integer :: i
    do i=1,size(x)
        func(i) = i*x(i)
    end do
end function

Я компилирую это с помощью f2py --fcompiler=gnu95 -c -m func func.f95

Затем пусть следующий код Python будет test_func.py

import func
from numpy import array

x = array(xrange(1,10),dtype='float64')
print 'x=',x

y = func.func(x)
print 'func(x)=',y

Вывод из
python test_func.py is

x= [ 1.  2.  3.  4.  5.  6.  7.  8.  9.]
Segmentation fault
6
задан Saullo G. P. Castro 13 August 2013 в 04:46
поделиться