概要
AndroidスマートフォンにLinux環境を構築し、FORTRANプログラムを走らせるためのセットアップについて説明します。
Android OSのバージョンは9ですが、たぶんtermuxが動作してその上でCコンパイラが動けばほかのバージョンでもOKのはずです。
はじめに
長年のガラケーユーザだった私のところにもスマホがやってきました。
さあ何しよう....
そうだ、プログラム書こう!!
今時の人だったらPythonとかそうしたものをやると思いますが、CとBASICとFORTRANとアセンブラしか知らないのでどうしたものか....
そうだ、FORTRANで書こう!!
FortranじゃなくてFORTRAN。古のあのFORTRAN IVのプログラムを最新Androidスマホでやろう....
かくして悪戦苦闘の結果何とかFORTRAN IVのプログラムを動かすことに成功したので次の通り報告します。
FORTRAN 貴方のお家は何処?
私のお家はFACOMなのよ やさしいコンパイラのひとつなのよ
(FACOM FORTRANのマニュアルより)
手順
termuxのインストール
まずはAndroidスマホ上にLinux環境を構築します。最初はCCToolsにしようと思っていたのですが、いつの間にかGoogle Playストアから消えてなくなっていたので、課金なしで使えるtermuxをインストールしました。
Google Playストアで探すとすぐ見つかり、ワンタッチでインストールできます。
すまほ、べんり!! (ガラケーユーザなのでとても感動する)
Cコンパイラなどのインストール
インストールしたtermux上でCコンパイラをインストールします。
Linux上のCコンパイラといえばgcc、FORTRANコンパイラといえばgfortranなのですが、NDKが最近全面的にclangベースに切り替わってしまったらしくgcc系が動かないみたいなので、clangをインストールします。
termux $ pkg install clang
termux $ pkg install make
必要かどうかわかりませんがits-pointlessもインストールしてみました。
termux $ wget https://its-pointless.github.io/setup-pointless-repo.sh
termux $ bash ./setup-pointless-repo.sh
f2cのソースをダウンロード
gfortranがtermux上でインストールできないみたいなので、昔懐かしのf2cをインストールすることにします。
FORTRAN(77まで)のソースをCコンパイラが食べられるソースに変換するプログラムです。ソースおよびマニュアル類は
以下にあります。
必要なのはf2cのソース(tgz)とlibf2cのソース(zip)です。下記のとおりダウンロードして展開します。
termux $ wget http://netlib.org/f2c/src.tgz
termux $ wget http://netlib.org/f2c/libf2c.zip
termux $ tar zxvf src.tgz
termux $ unzip libf2c.zip
f2cのソースをコンパイル
展開したらmakefile.uファイルをMakefileにコピーします。あとはmake一発でコンパイルできます。
コンパイルできたらtermuxのusr以下にファイルをコピーします。
f2c -> usr/bin
xsum -> usr/bin
f2c.h -> usr/include
libf2cのソースをコンパイル
こちらも展開したらmakefile.uファイルをMakefileにコピーします。
コピーしたらMakefileのCFLAGSのところに次の定義を追加します。
-DNON_UNIX_STDIO
次に、uninit.cファイルの中から"__linux__"を探して、次のinclude文をコメントアウトします。
// #include "fpu_control.h"
この1文をコメントアウトしておかないとコンパイル時にエラーになります。
準備ができたらmakeでコンパイルし、出来上がったlibf2c.aをtermuxの usr/lib 以下にコピーしておきます。
いざコンパイル
次のプログラムを書きました。なお、昔ながらのFORTRANですので固定書式じゃないとf2cから構文エラーで怒られます。
WRITE(6,100)
100 FORMAT(12H HELLO,WORLD)
END
コンパイル実行は次のとおり行います。
termux $ f2c -T. test.f
termux $ cc test.c -lf2c -lm
termux $ ./a.out
HELLO WORLD
まとめ
Androidスマホ上でFORTRAN IVプログラムを動かす方法について報告しました。
これでいつでもどこでもFORTRANプログラミングが楽しめます。最新スマホで大昔のFORTRAN IVプログラミングをやるのもなかなか楽しいものです。