Я пытаюсь прочитать некоторые файлы smps с помощью python, и нашел реализацию на Фортране, поэтому я подумал, что смогу попробовать f2py. Проблема в том, что у меня нет опыта работы с Fortran.
Я успешно установил gfortran и f2py на свой Linux-компьютер и запустил пример на странице w f2py, но у меня возникли некоторые проблемы при компиляции и запуске большой программы. Есть два файла, один с оберткой для чтения файлов и один со всей логикой. Кажется, они вызывают друг друга, но когда я компилирую и связываю или пробую f2py, я получаю ошибки, которые они как-то не могут найти друг другу:
f95 -c FILEWR~1.F
f95 -c SMPSREAD.F90
f95 -o smpsread SMPSREAD.o FILEWR~1.o
FILEWR~1.o In function `file_wrapper_'
FILEWR~1.F(.text+0x3d) undefined reference to `chopen_'
usrlibgcci486-linux-gnu4.4.1libgfortranbegin.a(fmain.o) In function `main'
(.text+0x27) undefined reference to `MAIN__'
collect2 ld returned 1 exit status
Я также попытался изменить имя на FILE_WRAPPER.F, но это не помогло.
С помощью f2py я узнал, что мне нужно добавить комментарий, чтобы он принял свободный формат, и сохранил его как новый файл, и попытался:
f2py -c -m smpsread smpsread.f90
Я получаю много выводов и предупреждений, но, похоже, ошибка вот в чем:
getctype: No C-type found in "{'typespec': 'type', 'attrspec': ['allocatable'], 'typename': 'node', 'dimension': [':']}", assuming void.
Считыватель fortran 90 spms можно найти здесь .
Любая помощь или предложения приветствуются.