「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
以上!!