Windows10でFORTRANを動かさねばならない(上)


2017年 06月 06日

今回は、ちょっと別の昔話、ではなくて今年の話。

色々なことをやっていると、突然変な仕事が降ってくることがある。
FORTRANという、たぶん最近の人は見たことも聞いたこともないプログラムの話だ。

昔々、COBOLとFORTRANというプログラミング言語が主に使われていた。
COBOLが事務処理用で、FORTRANが技術計算用である。
当時は、もちろんネットもないし、WEBなど全然ない時代である。
以下、コンピュータ考古学の話である。

さて、今回、ずいぶん昔にFORTRANで書かれたプログラムを、Windows10で動くようにして欲しいというので持ち込まれた。
いや、泣きつかれたというほうが正しい。
平成ではなく、昭和の時代に書かれたもので、80年代に開発が行われ、当時、大企業のコンピュータセンターの大型コンピュータで動いていたものだ。
といっても、当時のコンピュータは呆れるほど非力で、今のパソコンはもちろん、Raspberry Pi にも劣る能力である。
でも、そこで計算していたものは、今でも高価な機械に関するシミュレーションプログラムで、30年以上使い続けられていて、今後も使う予定のものだ。

まあ、諸般の事情で逃げられないので引き受けたのだが、FORTRANを最後に使ったのは確か1982年だと思う。
その後は、C, C++, Java, Python などなど言語放浪を続けている。
なので、覚えているか全然自信がなかったのだが…..

それで、まずはWindows上で動くFORTRANを探した。
持ち込まれたFORTRANのプログラムが、非常に古い書き方をされたもので、まだパンチカード時代を偲ばせるものだ。
要するに古文書である。
FORTRANも長い間に仕様が色々変遷してきたのだが、1970年代の FORTRAN JIS 7000 という仕様で書き始められ、手を入れた部分だけがやや最近の書き方になっていた。
こういうプログラムでもちゃんとコンパイルできるものを探さないと修正作業が面倒になる。
とくに古いプログラムを扱うとき、まるで国宝を扱うように、可能な限り原型のままで動くようにしないといけない。
ちょっとでも手を入れると、何が起きるか怖いのである。
そのため、古い書き方でも対応してくれ、Windows10も対応しているFORTRANを探した。


その結果見つけたのが、GNUのFORTRANであり、gfortran(gfortran — the GNU Fortran compiler, part of GCC)と呼ばれるものだ。
実際にWindows環境にインストールする方法はいくつかあるようだが、MinGWを使った。
これだと、古い書き方から最新の書き方まで混在しても大丈夫なようだった。
とりあえずコンパイルできることは分かったが、それだけでは動かないようだった。

また、デバッグにgdbを使うので、Cのデバッグと同じ感覚でデバッグでき、便利であった。
このデバッガが1980年頃に使えたらどんなに便利だったかと思う。

さて、実際の移植作業がどうだったかについては、次回紹介しよう。