2

あまり複雑に思えないので、この答えを探してみましたが、成功しませんでした。古い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 を終了し、新しく作成された「テスト」ファイルを開きます。ファイルは空です。画面に問題なく印刷できますが、ファイルに印刷できないようです。任意のガイダンスをいただければ幸いです。f2py のドキュメントでは、WRITE ステートメントについて言及していません。

4

1 に答える 1

2

ここで見ることができます、

Python I/O は、Fortran からの I/O をキャッチしません。

于 2012-12-03T15:25:12.020 に答える