Data Types | |
| type | gt_dimmap |
| type | map_table_entry |
| interface | dimrange |
Functions/Subroutines | |
| subroutine | dimrange_by_dimno (var, dimno, dimlo, dimhi) |
| subroutine | map_dup (var, source_var) |
| subroutine, public | map_create (var, class, cid, ndims, allcount, stat) |
| subroutine, public | maptabadd (mapid, vid) |
| subroutine, public | maptabdelete (var, err) |
| subroutine, public | map_lookup (var, vid, map, ndims) |
| subroutine | map_set (var, map, stat) |
| subroutine, public | var_class (var, class, cid) |
| subroutine | map_set_ndims (var, ndims, stat) |
| subroutine | map_set_rank (var, rank, stat) |
| subroutine, public | map_to_internal_specs (var, specs, ndims) |
| subroutine | map_allocate (map, ndims) |
| subroutine | map_apply (var, map) |
| subroutine | map_resize (var, ndims) |
| subroutine | gtvar_dump (var) |
| integer function | dimord_skip_compact (dimord, map) |
gtool 変数のマップテーブル管理
gtool 変数というのは実はマップ表のキーとなる整数ハンドルである。 マップ表 maptab には実体表のエントリ番号と次元書き換え/イテレータ の表が載っている。
このレベルにおける参照カウントは作らないことにする。つまり、 マップ表と実体表は一対一対応するし、 ユーザがハンドルをコピーするのは勝手である。 もちろんユーザには必ずただ1回 当該ハンドルを close すなわち maptabdelete する義務がある。
| integer function gtdata_internal_map::dimord_skip_compact | ( | integer, intent(in) | dimord, |
| type(gt_dimmap), dimension(:), intent(in) | map ) |
縮約次元番号に対する外部次元番号を検索
次元表の中で非縮退次元だけを数えた次元番号 dimord の次元を 特定し、外部向けの次元番号を返す。
| [in] | dimord | 縮約次元番号 |
| [in] | map | 次元マップ配列 |
Definition at line 826 of file gtdata_internal_map.f90.
References dc_trace::dbgmessage().
| subroutine gtdata_internal_map::dimrange_by_dimno | ( | type(gt_variable), intent(in) | var, |
| integer, intent(in) | dimno, | ||
| integer, intent(out) | dimlo, | ||
| integer, intent(out) | dimhi ) |
指定された次元の内部的添字番号範囲を取得
| [in] | var | 変数ハンドル |
| [in] | dimno | 次元番号 |
| [out] | dimlo | 次元の下限 |
| [out] | dimhi | 次元の上限 |
Definition at line 155 of file gtdata_internal_map.f90.
| subroutine gtdata_internal_map::gtvar_dump | ( | type(gt_variable), intent(in) | var | ) |
デバッグ用変数プロパティのダンプ
| [in] | var | 変数ハンドル |
Definition at line 767 of file gtdata_internal_map.f90.
References dc_trace::dbgmessage(), and gtdata_internal_vartable::vartable_dump().
| subroutine gtdata_internal_map::map_allocate | ( | type(gt_dimmap), dimension(:), pointer | map, |
| integer, intent(in) | ndims ) |
次元マップエントリを割り当て初期化
| [out] | map | 割り当てられたマップ配列へのポインタ |
| [in] | ndims | 割り当てるエントリ数 |
Definition at line 655 of file gtdata_internal_map.f90.
| subroutine gtdata_internal_map::map_apply | ( | type(gt_variable), intent(inout) | var, |
| type(gt_dimmap), dimension(:), pointer | map ) |
変数にマップテーブルを適用
| [in,out] | var | 変数ハンドル |
| [in,out] | map | 適用する次元マップ (解放され置き換えられる) |
Definition at line 687 of file gtdata_internal_map.f90.
| subroutine, public gtdata_internal_map::map_create | ( | type(gt_variable), intent(out) | var, |
| integer, intent(in) | class, | ||
| integer, intent(in) | cid, | ||
| integer, intent(in) | ndims, | ||
| integer, dimension(:), intent(in) | allcount, | ||
| integer, intent(out) | stat ) |
指定されたプロパティで変数を作成
変数 var を作成する。内部種別 class, 内部識別子 cid, 外見的次元数 ndims, 外見的次元長 allcount(:) を与える。 オフセットゼロを仮定して諸元の初期化が行われる。
| [out] | var | 作成された変数ハンドル |
| [in] | class | 内部種別 (VTB_CLASS_NETCDF 等) |
| [in] | cid | 内部識別子 |
| [in] | ndims | 次元数 |
| [in] | allcount | 次元長の配列 |
| [out] | stat | ステータスコード |
Definition at line 246 of file gtdata_internal_map.f90.
References dc_error::dc_noerr, dc_error::gt_enomoredims, map_allocate(), maptabadd(), gtdata_internal_vartable::ndims(), and gtdata_internal_vartable::vartableadd().
| subroutine gtdata_internal_map::map_dup | ( | type(gt_variable), intent(out) | var, |
| type(gt_variable), intent(in) | source_var ) |
変数を複製
| [out] | var | 複製された変数ハンドル |
| [in] | source_var | コピー元の変数ハンドル |
Definition at line 184 of file gtdata_internal_map.f90.
References dc_trace::dbgmessage(), map_lookup(), maptabadd(), gtdata_internal_vartable::vartableadd(), and gtdata_internal_vartable::vartablelookup().
| subroutine, public gtdata_internal_map::map_lookup | ( | type(gt_variable), intent(in) | var, |
| integer, intent(out), optional | vid, | ||
| type(gt_dimmap), dimension(:), intent(out), optional | map, | ||
| integer, intent(out), optional | ndims ) |
マップテーブルエントリを検索
| [in] | var | 変数ハンドル |
| [out] | vid | 変数テーブルエントリID (省略可能) |
| [out] | map | 次元マップ配列 (省略可能) |
| [out] | ndims | 次元数 (省略可能) |
Definition at line 412 of file gtdata_internal_map.f90.
| subroutine gtdata_internal_map::map_resize | ( | type(gt_variable), intent(in) | var, |
| integer, intent(in) | ndims ) |
変数の次元テーブルのサイズを変更
| [in] | var | 変数ハンドル |
| [in] | ndims | 次元テーブルの新しいサイズ |
Definition at line 728 of file gtdata_internal_map.f90.
References map_allocate().
| subroutine gtdata_internal_map::map_set | ( | type(gt_variable), intent(in) | var, |
| type(gt_dimmap), dimension(:), intent(in) | map, | ||
| integer, intent(out) | stat ) |
マップテーブルの値を設定
| [in] | var | 変数ハンドル |
| [in] | map | 設定する次元マップ配列 |
| [out] | stat | ステータスコード |
Definition at line 449 of file gtdata_internal_map.f90.
References dc_error::dc_noerr, and dc_error::gt_enomoredims.
| subroutine gtdata_internal_map::map_set_ndims | ( | type(gt_variable), intent(in) | var, |
| integer, intent(in) | ndims, | ||
| integer, intent(out) | stat ) |
変数の次元数を変更
| [in] | var | 変数ハンドル |
| [in] | ndims | 新しい次元数 |
| [out] | stat | ステータスコード |
Definition at line 509 of file gtdata_internal_map.f90.
References dc_error::dc_noerr, dc_error::gt_enomoredims, and map_lookup().
| subroutine gtdata_internal_map::map_set_rank | ( | type(gt_variable), intent(in) | var, |
| integer, intent(in) | rank, | ||
| integer, intent(out) | stat ) |
変数のランクを指定値に減少
変数 var のランク(非縮退次元数)を rank に減らすように count 値を1に減らす。ランクを増やすことや外見次元数の操作はしない。
| [in] | var | 変数ハンドル |
| [in] | rank | 目標ランク |
| [out] | stat | ステータスコード |
Definition at line 560 of file gtdata_internal_map.f90.
References dc_error::dc_noerr, dc_error::gt_enomoredims, and map_lookup().
| subroutine, public gtdata_internal_map::map_to_internal_specs | ( | type(gt_variable), intent(in) | var, |
| integer, dimension(:, :), pointer | specs, | ||
| integer, intent(out), optional | ndims ) |
マップテーブルをnetCDF内部仕様に変換
マップ表から netCDF の引数にふさわしい start, count, stride, imap を作成する。ただし、stride が負になるばあいは対策されていない。 (暫定的に gdncvarget/gdncvarput が対応している)
| [in] | var | 変数ハンドル |
| [out] | specs | specs配列へのポインタ (内部で割り当て) |
| [out] | ndims | 内部次元数 (省略可能) |
Definition at line 609 of file gtdata_internal_map.f90.
References map_lookup(), and gtdata_internal_vartable::ndims().
| subroutine, public gtdata_internal_map::maptabadd | ( | integer, intent(out) | mapid, |
| integer, intent(in) | vid ) |
マップテーブルにエントリを追加
すでに実体表に追加されたエントリ番号 vid を指定して、 マップ表にエントリを追加する。
| [out] | mapid | マップテーブルエントリID |
| [in] | vid | 変数テーブルエントリID |
Definition at line 317 of file gtdata_internal_map.f90.
| subroutine, public gtdata_internal_map::maptabdelete | ( | type(gt_variable), intent(in) | var, |
| logical, intent(out), optional | err ) |
変数をマップテーブルから削除
変数 var をマップ表から削除する。 実体表には手をつけない。
| [in] | var | 削除する変数ハンドル |
| [out] | err | エラーフラグ (省略可能) |
Definition at line 374 of file gtdata_internal_map.f90.
References dc_trace::dbgmessage(), dc_error::dc_noerr, and dc_error::storeerror().
| subroutine, public gtdata_internal_map::var_class | ( | type(gt_variable), intent(in) | var, |
| integer, intent(out), optional | class, | ||
| integer, intent(out), optional | cid ) |
変数の内部種別と識別子を取得
| [in] | var | 変数ハンドル |
| [out] | class | 内部種別 (省略可能) |
| [out] | cid | 内部識別子 (省略可能) |
Definition at line 484 of file gtdata_internal_map.f90.
References map_lookup(), and gtdata_internal_vartable::vartablelookup().