index
・まずは、spmodelライブラリのダウンロード・解凍し、その後解凍されたディレクトリ"spml"に移動する。なお、このライブラリのソースはこのページの"最新tar+gzipパッケージ"から入手可能である。
$ wget http://www.gfd-dennou.org/library/spmodel/spml.tar.gz・ここで、"configure"というコマンドを以下のようなオプションつきで実行する。
$ ./configure --with-ispack=/home/tyamada/lib/libisp.a \ --with-netcdf=/home/tyamada/lib/libnetcdf.a \ --with-gt4f90io=/home/tyamada/lib/libgt4f90io.a \ --prefix=/home/tyamada
オプションの"--with"以下は、今までインストールした3つのライブラリそれぞれの位置を絶対パスで指定している。"--prefix="以下にはspmodelライブラリをインストールするディレクトリのパスを指定している。
・あとは、以下のコマンドでmakeした後にインストールを行う。
$ makeこれにて、SPMODELライブラリのインストールはめでたく完了したかと思われます。
・インストールの完了を確認するために、ディレクトリ"demo"内のサンプルプログラムをテストとして動かしてみるとよいかと思われます。
まず、カレントディレクトリ"spml"内にあるディレクトリ"demo"に移る。
・そして、"demo"内のサンプルプログラムのうち1つをためしにコンパイル・実行してみる。ここでは"wt_diff3.f90"をコンパイル・実行する。
$ make wt_diff3.out・うまくいけば、"wt_diff3.nc"というNetCDFファイルが生成されるので、適当なソフトを用いてNetCDFファイルを描画してみる。適当なソフトには"gave"、"gpview"等があるが、ここでは"gave"を使ってみた。
$ gave wt_diff3.ncすると、このような図が描かれる。
これは、"gave"ウィンドウ内の"X-Axis"と"Y-Axis"のパラメータをそれぞれ"t"と"lat"に変更し、"draw"ボタンを押して描いた画像で、それを"File"から"Save Image"を選択してファイル名を"wt_diff3.png"に変更して保存したものである。
うまく描けていれば、SPMODELライブラリのインストールの完了が確認できたかと思われる。
ちなみに、描画ソフト"gpview"を用いた描画を行うには、以下のコマンドを実行すればよい。
$ gpview wt_diff3.nc@zeta以下のコマンドで階層的地球流体スペクトルモデル集「SPMODEL」から適当にプログラムを選んでダウンロード・コンパイルする。ここでは、2次元水路領域モデル:フーリエ展開+sin cos展開の中のブシネスク流体モデル(2 次元水路領域):重力流サンプルプログラムその1 竹広真一 (2002/09/26)というプログラムを使ってみる。
$ wget http://www.gfd-dennou.org/library/spmodel/2d-channel-esc/boussinesq/gravcurrent/f90/gravcurrent1.f90・そうすると、"spmfrt?そんなコマンドはないわ!"と怒られるので、環境変数をviコマンドで次の太字部分の文字列を書き加える。
$ vi ~/.bashrc・それから、再びファイルをコンパイルし、実行する。実行ファイル名は"a.out"になる。
$ spmfrt gravcurrent1.f90ファイルの実行にはけっこう時間がかかった。今回選んだプログラムはだいたい40分ぐらいはかかった。中にはもっと時間のかかるものや、もっと速く実行できるものもある。次元が低いプログラムのほうが実行する時間は速い傾向があるかと思われる。
・そして、生成されたファイル"gravcurrent1.nc"を先ほどと同様に"gave"、"gpview"等で描画してみる。ここでは、先ほどと同様"gave"を使って描画してみた。
$ gave gravcurrent1.nc・そして"gave"というウィンドウが出てくるので、"Tools"から"Movie"を選び、さらに出てきたウィンドウ"Movie"の中央の再生ボタンを押し、再生してみる。t=16のときの画像が気に入ったので、その瞬間に同ウィンドウの右のある赤い○のボタンを押せば画像が"png"形式で保存される。ただし、停止ボタンを押さないと次々に画像が保存されるので、必要なければ停止ボタンを押すかウィンドウ"gave"の右上の×ボタンを押して"gave"を強制終了させるとよいかと思われる。
そして、実際に描いた画像はこちら
今回は描いた画像の意味を調べる余裕がなく申し訳ないです。
これにて、今回の課題は終了しました。お疲れさまでした。
最後まで御精読頂きありがとうございました。