2001年10月10日 豊田英司
変数には属性を付加したり削除したりすることができます。すべて gtattr コマンドがやってくれますが、以下に若干のコード例を示します。
use gtool type(gt_variable):: var character(len = string):: buffer real:: rmiss integer:: imiss call Put_Attr(var, "units", "kg.m/s2") call Put_Attr(var, "_FillValue", -999.0) call Get_Attr(var, "institute", buffer, default="") call Get_Attr(var, "_FillValue", imiss, default=-999) call Del_Attr(var, "_FillValue")
gtlist コマンドには変数または属性のリストを得る機能があります。どちらも、指定された条件のもとで名前のリストを取得するということに変わりありません。そのため、実現方式も多少似ています。
! 変数一覧の取得 use gtool character(len = string):: varname logical:: end call GTVarSearch(ファイル名) do call GTVarSearch(varname, end) if (end) exit write(*, *) trim(varname) enddo
ファイルから変数のリストを得ようとするときには、まずファイル名だけを引数とする GTVarSearch で初期化を行い、ついで文字列と論理型の引数をとる GTVarSearch を繰り返し呼び出します。論理型引数 end が偽になっている間は変数名が返されています。
! 属性一覧の取得 use gtool type(gt_variable):: var character(len = string):: attrname logical:: end call Attr_Rewind(var) do call Attr_Next(attrname, end) if (end) exit write(*, *) trim(attrname) enddo
変数から属性のリストを得ようとするときは、まず Attr_Rewind で初期化を行い、ついで Attr_Next を繰り返し呼び出します。論理型引数 end が偽になっているあいだは属性名が返されています。
変数の削除はこのようにやります。
! 属性一覧の取得 use gtool logical:: err call GTVarDel(変数名, err)