地球および惑星大気科学実習レポート 2

数値計算ライブラリインストール

名前:東川利恵

担当情報実験機:joho03



今回の課題では階層的地球流体スペクトルモデル集SPMODELの「プログラム集」の中から適当なプログラムを選んでダウンロードし、可視化ユーティリティGAVEを使用して図を描くことが目的である

0、準備作業

sudoコマンドでrootになる
・$ sudo -s

(1)APTの設定

apt-keyによって鍵を登録する
・# gpg --keyserver subkeys.pgp.net --recv-keys AEE995F4
・# gpg --armor --export AEE995F4 | apt-key add -
/etc/apt/sources.listに以下の行を追加する
deb http://www.gfd-dennou.org/library/cc-env/Linux/debian-dennou etch/
deb-src http://www.gfd-dennou.org/library/cc-env/Linux/debian-dennou etch/
APTのパッケージリストの更新をする
・# apt-get update

(2)Fortran 90 コンパイラのインストール

G95 Fortran コンパイラをインストールする
・# apt-get install g95 libc6-dev
g95というコマンドでG95 Fortranが使用可能になる

(3)可視化ユーティリティGAVEのインストール

可視化ユーティリティGAVEをインストールする
・# apt-get install gave
gaveというコマンドでNetCDF形式のデータの可視化を行うことが可能になる

1、SPMODELライブラリのインストール

情報実験機の個々人の領域(/home/<アカウント名>ディレクトリ以下)へ、下記のライブラリをインストールする

今後アカウント名はgahirieと表記するが、実際に作業を行う場合は個人のアカウント名を使用する


workとlibとbinというディレクトリを個人ディレクトリの中に作る
・$ mkdir ~/work
・$ mkdir ~/lib
・$ mkdir ~/bin

workディレクトリに移動する
・$ cd work/

(1)ISPACKのインストール

ispack.tar.gzをダウンロードする
・$ wget http://www.gfd-dennou.org/library/ispack/ispack.tar.gz
ダウンロードした圧縮ファイルを展開する
・$ tar zxf ispack.tar.gz
ispack-0.71に移動
・$ cd ispack-0.71
Mkincludeを書き換える
・$ vi Mkinclude
★FC=g95に書き換える
★DESTDIR=/home/gahirie/libに書き換える
★DIRSという項目からmpiがついているものを全部消す
コンパイルをする
・$ make
・$ make static
fepack/src/fepack.fの143行目がおかしいと表示される→fepack.fの中身を書き換える
・$ cd fepack/src/
・$ vi fepack.f
「PUT REAL TRANSFORMING TO DOUBLE PRECISION(LENG THENING)」という項目のなかの「DD(I)=RD」を上のCALLの位置にそろえる
ispack-0.71ディレクトリに戻って再度コンパイルをする
・$ cd ../../
・$ make
・$ make static
/home/gahirie/lib/にlibisp.aが生成されたらISPACKのインストールが完了

workディレクトリに戻る

(2)NetCDFのインストール

netcdf-3.6.1.tar.gzをダウンロードする
・$wget http://www.gfd-dennou.org/library/netcdf/unidata-mirror/netcdf-3.6.1.tar.gz
ダウンロードした圧縮ファイルを展開する
・$ tar zxf netcdf-3.6.1.tar.gz
GNUのCコンパイラをインストール
・$ sudo apt-get install gcc
netcdf-3.6.1のsrcディレクトリに移動する
・$ cd netcdf-3.6.1/src/
ソースをコンパイルする
・$ ./configure --prefix=/home/gahirie
srcディレクトリの中にmacros.makeが生成される
・$ make
・$ make check
・$ make install
/home/gahirie/lib/にlibnetcdf.a、/home/gahirie/bin/にncdump、ncgenが生成されたらインストール完了

workディレクトリに戻る

(3)gt4f90ioのインストール

gt4f90io_current.tgzをダウンロード
・$ wget http://www.gfd-dennou.org/library/gtool4/gt4f90io/gt4f90io_current.tgz
ダウンロードした圧縮ファイルを展開する
・$ tar zxf gt4f90io_current.tgz
gt4f90io_20080605に移動
・$ cd gt4f90io_20080605
環境変数FCに使用するFortranコンパイラを指定
・$ FC=g95 ; export FC
Config.mkファイルを生成する
・$ ./configure --with-netcdf=/home/gahirie/lib/libnetcdf.a --prefix=/home/gahirie
gt4f90io_20080605ディレクトリの中にConfig.mkが生成される
・$ make
・$ make test
・$ make install
/home/gahirie/lib/にlibgt4f90io.a、/home/gahirie/bin/にgt4configとgt4frtが生成されたらインストール完了

workディレクトリに戻る

(4)spmlのダウンロード

spml.tar.gzをダウンロード
・$ wget http://www.gfd-dennou.org/library/spmodel/spml.tar.gz
ダウンロードした圧縮ファイルを展開する
・$ tar zxf spml.tar.gz
spmlディレクトリに移動
・$ cd spml/
configureを実行する
・$ ./configure --with-netcdf=/home/gahirie/lib/libnetcdf.a --with-ispack=/home/gahirie/lib/libisp.a --with-gt4f90io=/home/gahirie/lib/libgt4f90io.a --prefix=/home/gahirie
インストールを行う
・$ make
・$ make install
/home/gahirieにspmodelが生成されたらインストール完了

(5)サンプルを動かしてみる

spmlディレクトリの中のdemoディレクトリに移動
・$ cd demo/
at_diff.outファイルを生成する
・$ make at_diff.out
at_diff.outファイルを実行する
・$ ./at_diff.out
拡散方程式の図をだす
・$ gpview at_diff.nc@zeta

2、階層的地球流体スペクトルモデル集SPMODELのプログラム集からプログラムをダウンロード

プログラム集より「移流拡散方程式 (1 次元周期境界領域) : サンプルプログラムその 1」をダウンロードする
・$ wget http://www.gfd-dennou.org/library/spmodel/1d-cyclic-e/advection-diffusion/sample/f90/advdiff1.f90
環境変数を書き換える
・$ vi ~/.bashrc
★export PATH=$PATH:/home/gahirie/spmodel/binを追加で書き加える
bashrcを読み込んで実行する
・$ spmfrt advdiff1.90
・$ ./a.out

3、可視化ユーティリティGAVEを使用し、図を作成する

移流拡散方程式の図を出す
・$ gpview advdiff1.nc@zeta
図:移流拡散方程式 (1 次元周期境界領域) : サンプルプログラムその 1




参考資料

・2007年度の地球および惑星大気科学実習の作業メモ joho03(伊藤さん、佐冶さん)

・2007年度の地球および惑星大気科学実習の作業メモ joho04(康さん、八杉さん)

上記のページからはISPACKのインストールの仕方と可視化ユーティリティGAVEの使い方を参考にした

・gt4f90io インストールガイド(地球流体電脳倶楽部)

gt4f90ioのインストールの仕方を参考にした

・SPMODELのインストールガイド(SPMODELプロジェクト)

spmlのインストールの仕方を参考にした

・GPhysコマンドチュートリアル(中野満寿男)

画像をwebページにはりつける際に参考にした

・ispack-0.71ディレクトリの中のREADME

ispackのインストールの仕方を参考にした

・netcdf-3.6.1のsrcディレクトリの中のINSTALL

NetCDFのインストールの仕方を参考にした


共同作業者

辻野智紀 下田真基子



作業で工夫したこと

・表示された図をwebページにはりつけるときに"$ gpview --wsn 4 advdiff1.nc@zeta"コマンドを使いpngファイルを生成した点。

(はじめはpngファイルはwebページにはりつけられないものだと勘違いしていたので拡張子をpngからjpgに変えてしまっている。)

・図を表示する際にgpviewコマンドを使用した点。

移流拡散方程式 (1 次元周期境界領域) : サンプルプログラムその 2の図も作成した。



コメント

・課題の1(SPMODELライブラリのインストール)をなかなか理解できなくて苦労した。特にNetCDFのインストールに時間がかかった。

・NetCDFについてwebで検索していたときに去年の作業メモを発見してしまった。もし発見できていなければ 課題を終わらすのに

さらに時間がかかってしまっていただろう。本当にラッキーだった。

・森川さんにアドバイスをたくさんいただきました。ありがとうございました。