2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AndroidスマホでFORTRAN IV

Last updated at Posted at 2019-10-01

概要

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から構文エラーで怒られます。

test.f
      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プログラミングをやるのもなかなか楽しいものです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?