Python から Fortran のメソッドを呼び出す方法は何ですか?

Pythonはctypesライブラリ使用でFortranメソッドを呼び出せます。

FortranからPythonへインターフェースさせる、簡単なサンプルを以下に示します。

  1. 最初に、Fortranのプログラムを作成し、共有ライブラリファイル(.soファイル等)にコンパイルします。
  2. FUNCTION add(a, b) IMPLICIT NONE
    INTEGER, INTENT(IN) :: a, b
    INTEGER, INTENT(OUT) :: add
    add = a + b
    END FUNCTION
  3. Fortran プログラムを共有ライブラリ ファイルにコンパイルするには、Fortran コンパイラ (例: gfortran) を使います。
  4. gfortran -shared -o example.so example.f90
  5. ctypesライブラリを使ってPythonから共有ライブラリを読み込み、その中のFortranメソッドを呼び出します。
  6. import ctypes
    # 共有ライブラリのロード
    example = ctypes.CDLL(‘./example.so’)# Fortran関数の引数と戻り値の型を定義
    example.add.argtypes = (ctypes.c_int, ctypes.c_int, ctypes.POINTER(ctypes.c_int))
    example.add.restype = None

    # Fortran関数の呼び出し
    a = 2
    b = 3
    c = ctypes.c_int()
    example.add(a, b, ctypes.byref(c))
    print(c.value) # 結果は5が出力される

ctypesライブラリにより、FortranメソッドをPython関数として宣言でき、それらの関数を呼び出すことで、Fortranコードを利用できます。

bannerAds