我正在尝试使用 python 读取一些 smps 文件,并找到了一个 fortran 实现,所以我想我会给 f2py 一个机会。问题是我没有使用fortran的经验。
我已经在我的 Linux 机器上成功安装了 gfortran 和 f2py,并在 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.
任何帮助或建议表示赞赏。