Python から Fortran のメソッドを呼び出す方法は何ですか?
Pythonはctypesライブラリ使用でFortranメソッドを呼び出せます。
FortranからPythonへインターフェースさせる、簡単なサンプルを以下に示します。
- 最初に、Fortranのプログラムを作成し、共有ライブラリファイル(.soファイル等)にコンパイルします。
- FUNCTION add(a, b) IMPLICIT NONE
INTEGER, INTENT(IN) :: a, b
INTEGER, INTENT(OUT) :: add
add = a + b
END FUNCTION - Fortran プログラムを共有ライブラリ ファイルにコンパイルするには、Fortran コンパイラ (例: gfortran) を使います。
- gfortran -shared -o example.so example.f90
- ctypesライブラリを使ってPythonから共有ライブラリを読み込み、その中のFortranメソッドを呼び出します。
- 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コードを利用できます。