gtool4/Fortran 90 document

gtool4/Fortran 90 チュートリアル / ツールのプログラム解説

## システムプログラム編

2001年10月10日 豊田英司

## 属性の付加: gtattr

変数には属性を付加したり削除したりすることができます。すべて 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

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)

続き