前のページはありません

次のページ


gtool4/Fortran 90 リファレンス

gtool4 の変数 - 歴史的説明

2000年11月30日 豊田英司


本稿では gtool4 の変数というものが現実のデータをどのようにモデル化したものなのかについて議論を試みます。

netCDF の復習

gtool4 は netCDF に依存しているわけではありませんが、netCDF ファイル形式を使うことを前提として設計され、またその設計にあたっては netCDF に深い影響を受けました。では、netCDF のデータはどういうものでしょうか。

ということがいえます。

次元は属性も格子点の位置情報も持つことができませんが、次元と同名の変数を作って格納する慣用が広く行われています。これを次元変数といいます。

データ型の変換はライブラリが担当します。つまり、データセットにおける型と異なるアプリケーションの内部的な変数に入出力しようとするときには、数値によって正しく変換が行われます。ただし文字型と数値型は相互に変換できません。

gtool 変数における界面簡素化

gtool の変数は netCDF の変数にほぼ対応するものですが、以下のような整理が行なわれています。これは最初はアプリケーションプログラムとの界面を簡素化するためでしたが、結果的に論理モデルの抽出に寄与していると考えています。

ファイルの消去

構造のフラット化のために、ファイルという概念が消去されました。変数は変数名だけではなく、その前にファイル名(ネットワークへの拡張を考慮し URL を用いるのを本則とする)を連結した変数URL という文字列で識別されます。

NetCDF ユーザはファイルを開き、そのファイルから変数名を検索して変数を参照しますが、gtool ユーザは変数 URL を使って変数を開き、直接これを参照します。

ファイルの消去にともない、大域属性という概念も消去されます。実際にはデータ互換性のため大域属性を設けることがあるのですが、この属性は gtool では配下の変数すべてに共有されているものとみなします。

次元と変数の統合

NetCDF 次元を作るたびに必ず同名の次元変数を作成するという表現は無駄です。そこで、次元と次元変数を同一視することにしました。

NetCDF では変数は次元を持つといいましたが、gtool では「ある変数は他の変数の次元である」という関係としてとらえます。

属性の型を統合

属性は型を持たないことにしました。netCDF では文字型属性と数値型属性の自動変換がなく、たとえば任意の型の属性を文字列として解釈しようとすると(解釈は一義的に定まり運用上も要請があるものと思われるにもかかわらず)大変なコードを書かなければなりません。それはライブラリでやろうというわけです。

gtool4 では属性には型がないものとみなします。実際の外部表現では書き込みを行なったときに最適な型を選択し、入力時はあらゆる外部表現を目的の型に自動的に変換します。


前のページはありません

次のページ