f2py and the WRITE statement



我尝试搜索这个答案,因为它看起来不太复杂,但我没有成功。 我正在尝试使用一些旧的FORTRAN代码并将其引入Python中,以便我可以使用它。 在这个过程中,我遇到了文件 I/O 的一些问题,我试图了解 f2py 如何处理这个问题。 我正在使用gfortran开发Ubuntu 11.10。 例如,我尝试使用以下子例程:

C     FILE INOUT.F
      SUBROUTINE INOUT
     i     (NAME, STUFF)
Cf2py Intent(in,out) NAME, STUFF
      CHARACTER*6 NAME, STUFF
      OPEN(unit=1,file=NAME)
      WRITE(1,100) STUFF
 100  FORMAT(A8) 
      RETURN
      END

然后我使用 gfortran 和 f2py 进行编译:

f2py -c -m inout inout.f

这将创建 inout.so 共享库。 然后在 Python 中,我尝试一个简单的测试:

python
>>> import inout
>>> inout.inout('test','hello')
('test', 'hello ')

然后退出 Python 并打开新创建的"test"文件,它是空的。 我可以打印到屏幕上没有问题,但是打印到文件似乎不起作用。 任何指导将不胜感激。 f2py 文档没有提到 WRITE 语句。

你可以在这里看到,

Python I/O

不会从 Fortran 捕获 I/O。

最新更新