我想读与Python一些SMPS文件,并发现了一个FORTRAN实现,所以我想我会给f2py了一枪。问题是,我有FORTRAN没有经验。

我已经成功安装了gfortran和f2py在我的Linux机器就跑thew 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读者可以这里找到。

任何帮助或建议表示赞赏。

有帮助吗?

解决方案

我建议干脆跳过FORTRAN业务。

http://myweb.dal.ca/gassmann/smps2.htm

在MPS记录布局在此描述的,看起来相对简单的在Python挑开。

http://myweb.dal.ca/gassmann/smps2.htm#CoreMPSline

您得反正所有数据的确定适当的Python类(或namedtuples)。

我不认为Fortran的帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top