проблема импорта f2py при использовании нескольких модулей Fortran

Мне нужно запустить существующую модель, которая включает в себя несколько файлов Fortran и файл Python.

Чтобы запустить файл Python, я пытаюсь преобразовать коды Fotran в модули Python с помощью f2py. У меня не было проблем с более простыми файлами Fortran, но в случае, когда файл Fortran использует другой модуль Fortran (second.mod), это не удалось. F2py отлично работает при создании файла .so, но при импорте выдает ошибку:

>>> import first
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: ./firstmod.so: undefined symbol: __second_MOD_secondr

Чтобы решить эту проблему, я использовал приведенную ниже команду, которая также предлагается в другой теме (F2PY не находит модуль):

f2py -c --fcompiler=gfortran -I"~/Documents" --fcompiler=gfortran -I"~/Documents" -lsecond -m first first.f90 -m first first.f90

Но на этот раз я получаю эту ошибку:

error: unknown file type '' (from '-m')

В этот момент я не знаю, что делать. Поскольку модель написана не мной, я не могу ею поделиться. Я использую Ubuntu 16.04 LTS.

Чтобы уточнить, на самом деле есть 4 модуля фортрана, но теперь у меня возникли проблемы с подключением только двух из них (первого и второго). В первом есть такие строки:

use second(...)
call secondr(...)

И я думаю, мне нужно найти правильный способ включения этого второго файла .mod в создание моего модуля Python. Команда, которую я предоставил, включает дубликаты, но, поскольку я новичок в этом, я просто скопировала ее из другой темы без вопросов.

Спасибо за помощь.


person Kadir    schedule 05.10.2017    source источник
comment
-m first first.f90 -> unknown file type '' (from '-m') — Нет ли опечатки? Вы только что имели в виду -m first.f90?   -  person 9000    schedule 05.10.2017
comment
На самом деле я просто скопировал и изменил команду, которую получил из другой темы. Поэтому я не знаю, опечатка ли это, но в обоих случаях я получил одну и ту же ошибку.   -  person Kadir    schedule 05.10.2017
comment
Кроме того, -m first first.f90 дублируется.   -  person Pierre de Buyl    schedule 05.10.2017
comment
Есть ли два модуля Fortran.in first.f90 или где другой модуль Fortran?   -  person Vladimir F    schedule 06.10.2017
comment
Попробуйте заменить -lsecond на secondmod.o в конце команды build f2py. Связывая, вы оставляете задачу загрузки общего объекта после сборки. Должна быть возможность исправить это, но я бы попробовал вместо этого метод сборки файла .o (файл .o получается путем прямой компиляции, т.е. gfortran -c secondmod.f90).   -  person Pierre de Buyl    schedule 06.10.2017
comment
Спасибо за совет. Я пробовал, но все равно выдает ту же ошибку неизвестного типа файла.   -  person Kadir    schedule 06.10.2017