無料 Jupyter Noteboook での Fortran 利用
Binder では、apt.txt で明示的に指定しないと gfortran がインストールされず、Fortran が使えないのですが、Google や Microsoft の Jupyter サービスには、初めから Fortran がインストールされていてすぐに使えます。Google の Colaboratory には gfortran 7.2.0 が、Microsoft の Azure には gfortran 5.5.0 が入っていました。
特に Micrsoft の Azure は アドレスバーの notebook を lab に変えると、Jupyter Lab になるので、bash コンソールが開けて普通に unix 環境となります。gfortran の version が 5.5.0 と古いのが残念。せめて 6 系を。notebook でも New からターミナルを選べます。
Notebook 環境の場合は、Jupyter notebook の cell の ! コマンドを使うことで、! gfortran fn でコンパイルでき、!./a.out で実行もできます。ソースファイルは %%writefile fn で上書き保存、 %%writefile fn -a でアペンド保存できます。
Google colaboratory
https://colab.research.google.com/notebooks/welcome.ipynb
Google の方は Google Drive との連携や、共同作業の仕組みがあるようですが、notebook の外観がかなりカスタマイズされており、動作もかなりモッサリしています。コンパイラが新しい方なので、新文法を試したいならこちらでしょうか。
[追記] root なので apt 可能です。coarray fortran が install 実行可能です。
Microsoft Azure
https://studio.azureml.net/Home/
Microsoft の Azure は、素の notebook 形式になっていて、サクサク動きます。上述の通り、notebook 形式のまま terminal のタブも開けますし、Jupyter lab 形式にすることもできます。アカウント名を入れさせられるので、MS One Drive に保存できるのではないかと推測されます。
ID 紐づけされているので、あまり無茶な使い方をすると、バンされるかもしれませんw
[追記] julia 及び IJulia instal 可能で、kernel 統合されて使えます。fortran 用 kernel も使えます。下記参照。
fortran66.hatenablog.com
[追記」Julia Box
Julia Box でも Fortran が利用できることが分かりました。バージョンは古くて、5.4.0 でした。Notebook 形式ですが、ダッシュボードのメニューの new からコンソールが開けます。カーネルが完全独自のものになっているのでシェルコマンドは ; が役付き文字です。%%writefile が使えないなど、Cell 内からの利用は面倒です。
[追記] Julia 0.6 の kernel.json を書き換えてやることで、Julia 0.6 を選択することで Python2 のカーネルとの置き換えは、少し見た限りでは、うまくいきました。fortran はうまく行きません。
なお gfortran のバージョンごとの文法対応状況は、以下のまとめ記事が参考になります。
www.scivision.co
元々 Python が動いているので作図はおkです。また Fortran のサブルーチンを Python の関数とする Fortran magic コマンドも、インストールすれば使えます。これは f2py を利用しているので、新しい Fortran 文法への対応が良くないです。が、f2py の後継を狙うようなものも出てきているようなので将来はより便利になるかもしれません。
pypi.org
【メモ帳】
!pip install fortran-magic %load_ext fortranmagic %%fortran subroutine f1(x, y, z) real, intent(in) :: x,y real, intent(out) :: z z = sin(x+y) end subroutine f1 f1(1.0, 2.1415)
ただ Fortran のシンタックスカラーリングなどはないので、教育・学習目的にはイマイチですが、ちょっとした実行にはオンライン・コンパイラよりお手軽かもしれません。
[追記]参考:後付けで、cell magic 付与。
medium.com
MS Azure に Fortran カーネルを突っ込めればうれしいです。
- 作者: Michael Metcalf,John Reid,Malcolm Cohen
- 出版社/メーカー: Oxford Univ Pr
- 発売日: 2018/11/06
- メディア: ハードカバー
- この商品を含むブログを見る
ねんどろいど 邪神ちゃんドロップキック 邪神ちゃん ノンスケール ABS&PVC製 塗装済み可動フィギュア
- 出版社/メーカー: グッドスマイルカンパニー(GOOD SMILE COMPANY)
- 発売日: 2019/02/28
- メディア: おもちゃ&ホビー
- この商品を含むブログ (1件) を見る
邪神ちゃんドロップキック 邪神ちゃん 全高約135mm PVC製 塗装済み 完成品 フィギュア
- 出版社/メーカー: ベルファイン(BellFine)
- 発売日: 2018/10/31
- メディア: おもちゃ&ホビー
- この商品を含むブログ (1件) を見る
実行例
コピペ用
%%writefile eratos.f90 program era implicit none integer, parameter :: n = 10**3 logical :: tab(2:n) integer, allocatable :: ip(:) integer :: i tab = .true. do i = 2, int(sqrt(real(n))) if (tab(i)) tab(i**2::i) = .false. end do ip = pack([(i, i = 2, n)], tab) print '(10i6)', ip do i = 1, size(ip) write(11, *) i, ip(i) end do end program era
import matplotlib.pyplot as plt import numpy as np x, y = np.loadtxt('fort.11', unpack = True) plt.plot(y, x) plt.show()
【Amazon.co.jp限定】邪神ちゃんドロップキック BOX 上巻 (初回限定版)(オリジナル映像特典ディスク付)[DVD]
- 出版社/メーカー: ストロベリー・ミーツ ピクチュアズ
- 発売日: 2018/10/29
- メディア: DVD
- この商品を含むブログを見る
Microsoft
【Amazon.co.jp限定】邪神ちゃんドロップキック BOX 下巻 (初回限定版)(オリジナル映像特典ディスク付)[DVD]
- 出版社/メーカー: ストロベリー・ミーツ ピクチュアズ
- 発売日: 2018/11/26
- メディア: DVD
- この商品を含むブログを見る
【メモ帳】Herok 無料枠
カーネルは付け足せそうですが、Fortran はどうかしらん・・・?
qiita.com
github.com