Data Types | |
| interface | dimrange |
Functions/Subroutines | |
| subroutine, public | vartable_dump (vid) |
| subroutine, public | vartableadd (vid, class, cid) |
| subroutine, public | vartabledelete (vid, action, err) |
| subroutine, public | vartablelookup (vid, class, cid) |
| subroutine, public | vartablemore (vid, err) |
| integer function, public | ndims (vid) |
| subroutine, public | query_growable (vid, result) |
Variables | |
| integer, parameter, public | vid_invalid = -1 |
| integer, parameter, public | vtb_class_unused = 0 |
| integer, parameter, public | vtb_class_netcdf = 1 |
| integer, parameter, public | classes_max = 2 |
| type(gd_nc_variable_search), save, public | gdnc_search |
gtool 変数表管理
このモジュールは gtool モジュールから直接には引用されないため、 相当むちゃな名前の使い方をしている。ユーザは呼んではならない。
gtool 変数というのは実は単なるハンドルと多次元イテレータであり、 ハンドルは小さな整数値である。 実体にアクセスするためには、ハンドル値をキーにしてまずマップ表を引き、 そこで得られた vid をキーにして変数表を引いて、 種別と種別ごとの変数番号を得る。これらはたかだかポインタ+オフセット 参照程度のコストである。 gtool 変数は実体変数からイテレータが必要なだけ作成されるが、 この変数表は実体変数につき1エントリしか作成しないので、参照数を持つ。 このため、実体変数は変数に付いて参照数管理をしなくてもよくなる。
| integer function, public gtdata_internal_vartable::ndims | ( | integer, intent(in) | vid | ) |
変数の次元数を取得
| [in] | vid | 変数ID |
Definition at line 356 of file gtdata_internal_vartable.f90.
References ndims(), dc_error::storeerror(), vartablelookup(), and vtb_class_netcdf.
| subroutine, public gtdata_internal_vartable::query_growable | ( | integer, intent(in) | vid, |
| logical, intent(out) | result ) |
変数が無制限次元を持つか問い合わせ
| [in] | vid | 変数ID |
| [out] | result | 無制限次元を持つ場合 .true. |
Definition at line 384 of file gtdata_internal_vartable.f90.
References dc_error::storeerror(), vartablelookup(), and vtb_class_netcdf.
| subroutine, public gtdata_internal_vartable::vartable_dump | ( | integer, intent(in) | vid | ) |
デバッグ用変数テーブルエントリのダンプ
| [in] | vid | ダンプする変数ID |
Definition at line 106 of file gtdata_internal_vartable.f90.
References dc_trace::dbgmessage(), vtb_class_netcdf, and vtb_class_unused.
| subroutine, public gtdata_internal_vartable::vartableadd | ( | integer, intent(out) | vid, |
| integer, intent(in) | class, | ||
| integer, intent(in) | cid ) |
変数テーブルにエントリを追加
同じ class と cid を持つエントリが既に存在する場合、 その参照カウントを増加します。そうでなければ新しいエントリを作成します。
| [out] | vid | 割り当てられた変数ID |
| [in] | class | 変数クラス (VTB_CLASS_NETCDF 等) |
| [in] | cid | クラス固有のID |
Definition at line 168 of file gtdata_internal_vartable.f90.
References dc_trace::dbgmessage(), vid_invalid, and vtb_class_unused.
| subroutine, public gtdata_internal_vartable::vartabledelete | ( | integer, intent(in) | vid, |
| logical, intent(out) | action, | ||
| logical, intent(out), optional | err ) |
変数テーブルからエントリを削除
参照カウントを減少させます。ゼロになった場合、 実際の削除を行うべきことを示すために action に .true. が設定されます。
| [in] | vid | 削除する変数ID |
| [out] | action | 実際の削除を行うべきかどうか |
| [out] | err | エラーフラグ (省略可能) |
Definition at line 234 of file gtdata_internal_vartable.f90.
References classes_max, and vtb_class_unused.
| subroutine, public gtdata_internal_vartable::vartablelookup | ( | integer, intent(in) | vid, |
| integer, intent(out), optional | class, | ||
| integer, intent(out), optional | cid ) |
変数テーブルエントリを検索
指定された vid を持つエントリの class と cid を返します。
| [in] | vid | 検索する変数ID |
| [out] | class | 変数クラス (省略可能) |
| [out] | cid | クラス固有のID (省略可能) |
Definition at line 270 of file gtdata_internal_vartable.f90.
References classes_max, and vtb_class_unused.
| subroutine, public gtdata_internal_vartable::vartablemore | ( | integer, intent(in) | vid, |
| logical, intent(out), optional | err ) |
変数テーブルエントリの参照カウントを増加
| [in] | vid | 変数ID |
| [out] | err | エラーフラグ (省略可能) |
Definition at line 297 of file gtdata_internal_vartable.f90.
References classes_max, and vtb_class_unused.
| integer, parameter, public gtdata_internal_vartable::classes_max = 2 |
Definition at line 70 of file gtdata_internal_vartable.f90.
| type(gd_nc_variable_search), save, public gtdata_internal_vartable::gdnc_search |
Definition at line 81 of file gtdata_internal_vartable.f90.
| integer, parameter, public gtdata_internal_vartable::vid_invalid = -1 |
Definition at line 66 of file gtdata_internal_vartable.f90.
| integer, parameter, public gtdata_internal_vartable::vtb_class_netcdf = 1 |
Definition at line 69 of file gtdata_internal_vartable.f90.
| integer, parameter, public gtdata_internal_vartable::vtb_class_unused = 0 |
Definition at line 68 of file gtdata_internal_vartable.f90.