[ Gt4f90io Reference Manual | Gt4f90io Tutorial ]

複数のファイルに出力

ここまでに示した例では 1 つのファイルに全ての変数と属性の出力を行いま した. しかしながら複数のファイルへ出力することもできます.

ここでは 2 次元の熱対流を計算するプログラムを例に解説します. 出力する 変数は 2 つ(流線関数と温度)です. 1 つのファイルに出力を行うプログラム が benard_1.f90, 2 つのファイルに分けて出力を行うプログラムが benard_2.f90 です.

benard_2.f90 では 29 行目で

type(GT_HISTORY) :: hst_psi, hst_temp

とし, それぞれ流線関数と温度を出力するファイルを示す GT_HISTORY 型構造 体変数 hst_psi と hst_temp を宣言します.

次に 72 行目と 90 行目の HistoryCreate で出力ファイル psi.nc と temp.nc を作成します. このとき最後の引数には 29 行目で宣言した hst_psi と hst_temp を代入します.

112 行目から 115 行目までが出力です. HistoryPut の第 3 引数には HistoryCreate で指定したそれぞれの出力先ファイルに対応する GT_HISTORY 型構造体変数を代入します.

では, 実際に nc ファイルを作成してみましょ う. benard_1.f90benard_2.f90 は c2pack モジュールを利用するので c2pack.f90を コンパイルしてモジュールにしておく必 要があります.

また, c2pack は ISPACK のラッパーなので ISPACK もインストールされてい る必要があります.

ISPACK のインストール

ISPACK からソースを ダウンロードしてコンパイルし, できあがった ISPACK のライブラリを適当な 場所にインストールしてください.

ただし, Debian ユーザには .deb ファイルが用意されています. SPMODEL必要なライブラリ のページから, それぞれの Fortran コンパイラ毎の .deb ファイルが 用意されているページへ移動できるので, 適宜インストールしてください.

c2pack のコンパイル

c2pack.f90をダウンロードし, 下記のようにISPACKに リンクをはってコンパイルして下さい. 以下では, (libisp.a が /usr/local/lib 以下にある場合を想定しています).

$ gt4frt -c c2pack.f90 -L/usr/local/lib -lisp

c2pack.o と c2pack.mod が作成されば OK です.

benard_1.f90 のコンパイル

では, benard_1.f90 をコンパイルしてみましょう.

$ gt4frt benard_1.f90 c2pack.o -L/usr/local/lib -lisp

すると, 実行ファイルを a.out が作成されます. そこで,

$ ./a.out

と実行させると, benard_1.nc が作成されます.

benard_2.f90 のコンパイル

では, 今度は benard_2.f90 をコンパイルしてみま しょう. コンパイルの仕方は benard_1.f90 と同様です.

できた実行ファイル a.out を実行してみましょう.

$ ./a.out

すると今度は, 温度と流線関数のデータがそれぞれ, temp.nc と psi.nc に出 力されます.


$Id: gthist_multi.rd,v 1.3 2006/10/25 12:46:20 morikawa Exp $
gtool4 Development Group / GFD Dennou Staff dcstaff@gfd-dennou.org