ベータ版が三月ぐらいから提供されていましたが、先日正式版が出ました。
一応 Fortran2003 完全対応となりました。しかし、まだバグが残っているようです。
また Fortran2008 対応も地味に進んでいます。今回は外部実行ファイルの実行コマンド execute_command_line が使えるようになりました。ようやくベンダー依存の拡張に頼らなくて済むようになります。
以前ベンダー依存で書いた、無理やりデータ列と Python のコマンド列を吐き出して絵を描くプログラムをまたやってみます。グラフは少し変えてみます。
本当は Visual Studio 内の iPyhon 窓に出したいのですが、残念ながらまだやり方が分かりません。
実行結果
ソース・プログラム
program Python implicit none integer :: i real, allocatable :: x(:), y0(:), y1(:) open(9, file = 'test.py', status = 'unknown') write(9, '(a)') 'import matplotlib.pyplot as plt' write(9, '(a)') 'import numpy as np' x = [(0.1 * i, i = 0, 200)] y0 = bessel_j0(x) ! Fortran2008 y1 = bessel_j1(x) ! Fortran2008 write(9, '(a, *(g0,","))') 'x =np.array([', x write(9, '(a)') '])' write(9, '(a, *(g0,","))') 'y0=np.array([', y0 write(9, '(a)') '])' write(9, '(a, *(g0,","))') 'y1=np.array([', y1 write(9, '(a)') '])' write(9, '(a)') 'plt.title("Bessel Function", fontsize = 25)' write(9, '(a)') 'plt.xlabel("x", fontsize = 20)' write(9, '(a)') 'plt.ylabel("Bessel J0, J1", fontsize = 20)' write(9, '(a)') 'plt.axhline(0, linewidth= 1, color="black")' write(9, '(a)') 'plt.axis([0, 20, -0.6, 1.0])' write(9, '(a)') 'plt.grid(True)' write(9, '(a)') 'plt.plot(x, y0)' write(9, '(a)') 'plt.plot(x, y1)' write(9, '(a)') 'plt.show()' close(9) ! print *, 'starting matplotlib' call execute_command_line('python test.py', wait = .false.) ! Fortran2008 stop ' normal end' end program Python