Теперь я использую f2py
для вызова функции Python из кода Fortran. Я пробовал очень простой пример, но это не сработало.callback Python from Fortran
Fortran90 код:
subroutine foo(fun,r)
external fun
integer (kind = 4) i
real (kind = 8) r
r=0.0D+00
do i= 1,5
r=r+fun(i)
enddo
end
используя командную строку:
f2py -c -m callback callback.f90
Python код:
import callback
def f(i):
return i * i
print callback.foo(f)
Ошибка:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: `Required argument 'r' (pos 2) not found`
Я не эксперт питона, но не ошибка предположить, что два аргумента нужен? –
Привет, я решил проблему. То, с чем я столкнулся, не было другим аргументом, который был необходим. Я пытался использовать другой .pyf с использованием строки commend для автоматического создания и определять, какой аргумент должен быть входным значением и который должен быть выходным значением. Тогда проблема заключается в том, что когда я вызываю функцию, типы аргументов не совпадают. Поэтому я фиксировал r как целое число, и проблема была решена. – Xiao