裏 RjpWiki

文字通り,RjpWiki の裏を行きます
R プログラム コンピュータ・サイエンス 統計学

(Windows) Julia から FORTRAN の関数を呼ぶ

2021年01月09日 | ブログラミング

Julia から FORTRAN の関数を呼ぶ」は Mac の場合であった。

これを Windows でやったらどうなるかの記事である。みんな、Windows が好きだからねえ。
結論から言えば、Mac の場合と全く同じ!!という驚きの事実。

前提は Julia のインストールが終わっていることと、Windows PowerShell が使えるようになっていること。

今回やることは、まず gfortran のインストールである。

以下の 2 つの記事をよく読んでから行動開始。
Windows PCへの gfortranのインストール (2019年 5月)
http://www.compe.media.kyoto-u.ac.jp/syoseki/windows/windows-gfortran.html
TDM GCCからgfortranをインストール
http://www.compe.media.kyoto-u.ac.jp/syoseki/windows/TDM_GCC-install.html

参照ページがなくなったりするといけないので、要約を書いておく。
https://gcc.gnu.org/fortran/ を開いて、
https://gcc.gnu.org/wiki/GFortran を開いて、
https://gcc.gnu.org/wiki/GFortranBinaries を開いて、
http://tdm-gcc.tdragon.net/ のページにある、
(いきなりこのページに行ってもよいけど、最初のページからドキュメントを読みながら進んでいくのが吉)
MinGW-w64 based の
tdm64-gcc-9.2.0.exe, 59.4 MBをダウンロードする。

ブラウザでダウンロードすると、そのあとインストールまでやってくれるはず。
ただし、インストール時の選択で、以下に書いてるように、
New Installation:Choose Components の際に [Components] → [gcc] → [fortran] に必ずチェックをつけることを忘れないように。

インストール終了後に、Windows PowerShell で、gfortran にパスが通っていることだけ確認する。
コマンドプロンプトに対して gfortran とだけ入力して
gfortran.exe: fatal error: no input files
が出ればよい。

さて、Julia から FORTRAN プログラムを呼ぶという実験をやってみよう。

適切なディレクトリを選び(Documents ディレクトリでもよい)、
Julia から FORTRAN の関数を呼ぶ」のページにある test.f と test.jl という名前のファイルを作る。内容は、ページからコピーペーストする。
メモ帳などを使うとよい。保存時の名前の拡張子に .txt がつく場合は、ひとまずそのまま保存し、エクスプローラーで名前を変更すればよい(PowerShell で変更してもよいが)。

続いて、test.f をコンパイルして libtest.so を作る。
PowerShell で、

gfortran test.f -o libtest.so -shared -fPIC

とする。

libtest.so の中身を見るために、

nm libtest.so

とやって、たくさん出力される最後のほうに(アルファベット順になっているので)

0000000061b413d0 T test1_
0000000061b415a8 T test2_


という行があればOK。

いよいよ最終確認。PowerShell で以下の一行を入力する。

julia test.jl

すぐに、以下の結果が表示される。

PS C:\Users\user\Documents> julia test.jl
1.0 2.0 3.0
4.0 5.0 6.0
mean = 3.5
1.0 2.0 3.0
4.0 5.0 6.0
cells = 6 mean = 3.5


以上!!


コメント