f2py和WRITE语句

时间:2012-05-16 22:54:16

标签: fortran f2py

我试过寻找这个答案,因为它似乎并不太复杂,但我没有成功。我正在尝试使用一些旧的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语句。

1 个答案:

答案 0 :(得分:2)

您可以看到here

  

Python I / O不会捕获Fortran的I / O.