gtoolを読む
はじめに. gtoolというのは気候モデルMIROC関係モデル出力ファイルとして出てくる形式です. 知らないと読むのは難しいので作成しました. ここでは, fortranでgtoolファイルを読むことをやっていきます. gtoolではnetcdfへの変換プログラムがあり, ngtcf [ファイル名] でnetcdfファイルへの変換ができるようになっています(すいません. ngtcfのinstallの仕方は知らないのです).

gtoolファイルの構造

gtoolファイルは, それぞれの時刻ごとに[ヘッダー][データ]の組として格納されています. まずfortranで読むときの結論から言えば, X方向に128, Y方向に64, Z方向に1, T方向に12あるファイルの場合,
real(4) :: var(128,64)
character(16),dimension(64) :: CHEAD
open(10,file="gtool.out",form="unformatted",access="sequential")
do t=1, 12
read(10) CHEAD
read(10) var
end do
のプログラムで読むことができます.

軸情報

gtoolファイル自体には, 時刻tを除いて軸情報(Xの何番目のデータが東経何度に相当するか?)は入っていません. 軸情報は, CHEADの29番目(X), 32番目(Y), 35番目(Z)の文字列を持ちいて, 別に保管しているgtool軸情報ファイルに対応付けて取得します. たとえば, CHEAD(29)がGLON128と表示されていれば, GTAXLOC.GLON128というgtoolファイルに軸情報が入っています.

gtoolが読めない場合

ありそうな原因は, binaryが単精度実数で格納されていない場合です. たとえば, ngtls で表示された数値フォーマットが"URC2"などであれば, 単精度実数を仮定するこの方法では読めません. ngtconvを用いて
ngtconv -f UR4 [gtoolfile]
で単精度実数に変換します.

というように, gtool環境がないとわからないこと多いのですよね... 他の人に渡すときはngtcfで変換したものを渡します.
back