Кажется, я не могу создать свой модуль с помощью f2py, чтобы сохранить число с двойной точностью, когда оно передается обратно в python. Минимальный пример с файлом fmodules.f90:
subroutine example(output)
implicit none
double precision :: output
cf2py intent(out) :: output
output = 1.3
end subroutine example
Затем я создаю модуль с помощью f2py:
$ f2py -c -m fmodules fmodules.f90
и вызовем его из python:
>>> from fmodules import example
>>> example()
1.2999999523162842
По моим подсчетам, это около 8 знаков точности. У меня сложилось впечатление, что двойная точность должна давать около 16. Я перепробовал все возможные варианты, включая игру с файлом .f2py_f2cmap
. Любые идеи о том, что мне не хватает?