計算機実験
ソフトウェアの準備
2007/12/20  

シミュレーションをWindows上で実行するには、以下のソフトウェアが必要だ。

1: MinGW
  フリーで入手できるGNUコンパイラ(gcc)のWindows版。
   http://sourceforge.net/projects/mingw/

2: g95
  フリーな Fortran 95 コンパイラ
   http://g95.sourceforge.net/

3: GrWin グラフィクス・ライブラリ
  「Windows プログラミングについての知識や経験が全くない人でも
  Windows (x86) プラットフォーム上でのフリーなグラフィクス・プログラミングを
  手軽に楽しむことができます。」
   http://spdg1.sci.shizuoka.ac.jp/grwinlib/

4: メルセンヌ・ツイスター
  「Mersenne Twister(以下MT)は、松本眞 ・西村拓士(アルファベット順)により
  1996年から1997年に渡って開発された疑似乱数生成アルゴリズムです。」
   http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html
  以下で配布されている "mtfort.f"を、組み込みのために若干の修正を加えて使用している。
  A restorable MT19937 code in fortran 90 by Richard Woloshyn:
   http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/FORTRAN/fortran.html
  修正点:
    ・ファイル名を "mtfort.f" -> "mtfort.f90" に変更
    ・オリジナルに含まれていた program main 以下を無効とした

  コンパイル方法

シミュレーションはFORTRANで書かれている。
実行するには、FORTRANのソースファイルをコンパイルする必要がある。
コンパイル方法は、Windows環境上ではおおむね次のようにして行う。

g95 (ソースファイル).F90 -Wno=165 -Wall -O -o (実行ファイル名) -Wl,--subsystem,console -lGrWin -mwindows
これで、(ソースファイル).F90 から (実行ファイル).exe ができあがる。
(ソースによっては、オプションが若干異なる場合がある。 ソースファイルのコメント中にコンパイル方法が書かれているので、それを参考にしてください。)

もしグラフィクス表示は不要で、結果の数字だけを得たい、というのであれば GrWinグラフィクス・ライブラリは必要ない。 この場合は、コンパイル時に -D=NOGR というオプションを指定すれば、グラフィクス表示無しの実行ファイルができあがる。 グラフィクス無しの実行ファイルは、グラフィクス有りに比べると処理速度が格段に速い。
私は、まずグラフィクス有りの状態で動作を確認し、時間のかかる計算結果はグラフィクス無しの状態で求めた。 グラフィクス無しのコンパイル方法は、次のようになる。

g95 (ソースファイル).F90 -Wno=165 -Wall -O -D=NOGR -o (実行ファイル名) -Wl,--subsystem,console -lGrWin -mwindows

GrWinグラフィクス・ライブラリの動作環境は 「AT 互換機 (いわゆる DOS/V 機) で, Windows Xp/2000/NT/Me/9x (x86) の何れかの OS が動作している環境」 となっている。
なので、グラフィクス有りの動作環境はWindowsに限られる。 グラフィクス無しの状態であれば、g95が動作するほとんどのプラットフォームで動作可能だろう。 (もちろん、その環境に即した g95を用意して、ソースをコンパイルし直す必要がある。)

シミュレーションのソースは、g95 の持つプリプロセッサを利用して書かれている。 (#ifdef 〜 #endif といった記述)  そのため、プリプロセッサの記述が異なる他のFORTRAN処理系ではそのままコンパイルできない。
プリプロセスには、上記の -D=NOGR というオプションの他に、-D=LIMIT というオプションを設けている。 この -D=LIMIT オプションを指定すれば、シミュレーションはある一定の上限回数(1000回、または3000回)で終了する。 -D=LIMIT オプションを指定しなかったなら、シミュレーションは止まることなく動き続ける。

ここで紹介するシミュレーションのプログラムは規模も小さく、手元にパソコンがあれば割と手軽に実行できる。 興味があれば(私の出した結果を鵜呑みにせず)、ぜひご自分で試していただきたい。

ページ先頭に戻る▲