1
У меня есть следующий код: FORtranКак использовать f2py (передать аргументы)?
SUBROUTINE MMUL(A,B,D,n)
C
INTEGER :: n
REAL, DIMENSION (n, n) :: A, B, D
C
CF2PY INTENT(IN) :: A
CF2PY INTENT(IN) :: B
CF2PY INTENT(IN) :: n
CF2PY INTENT(OUT) :: D
D = MATMUL(A, B)
END
Это говорит этот код занимает два 1D массивов (т.е. векторов) и возвращает скалярное произведение между этими векторами. Мне нужно обернуть его в свой скрипт python. Я использую это как-л:
f2py.compile(fsqrtmatmul.encode(), modulename='fsqrtmatmul', verbose=0)
import fsqrtmatmul
res = fsqrtmatmul.mmul([[1., 2.0]], [[2., 1.]])
Но это не работает:
fsqrtmatmul.error: failed in converting 2nd argument `b' of fsqrtmatmul.mmul to C/Fortran array
Как это исправить?