[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.f90 と benard_2.f90 は c2pack モジュールを利用するので c2pack.f90を コンパイルしてモジュールにしておく必 要があります.
また, c2pack は ISPACK のラッパーなので ISPACK もインストールされてい る必要があります.
ISPACK からソースを ダウンロードしてコンパイルし, できあがった ISPACK のライブラリを適当な 場所にインストールしてください.
ただし, Debian ユーザには .deb ファイルが用意されています. SPMODELの 必要なライブラリ のページから, それぞれの Fortran コンパイラ毎の .deb ファイルが 用意されているページへ移動できるので, 適宜インストールしてください.
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 をコンパイルしてみましょう.
$ gt4frt benard_1.f90 c2pack.o -L/usr/local/lib -lisp
すると, 実行ファイルを a.out が作成されます. そこで,
$ ./a.out
と実行させると, benard_1.nc が作成されます.
では, 今度は benard_2.f90 をコンパイルしてみま しょう. コンパイルの仕方は benard_1.f90 と同様です.
できた実行ファイル a.out を実行してみましょう.
$ ./a.out
すると今度は, 温度と流線関数のデータがそれぞれ, temp.nc と psi.nc に出 力されます.