use netcdftype(NC_FILE):: file type(NC_DIMENSION):: dimension type(NC_VARIABLE):: variable
integer:: type character(len = 任意):: name integer:: dim_id(任意) type(NC_DIMENSION):: dim(任意)
! 変数の作成 type(NC_VARIABLE) function Variable(file, name, type) type(NC_VARIABLE) function Variable(file, name, type, dim_id) type(NC_VARIABLE) function Variable(file, name, type, dim) ! 変数の探索 type(NC_VARIABLE) function Variable(file, name)
! 変数に関する情報 type(VARYING_STRING) function Name(variable) type(VARYING_STRING) function Fullname(variable) integer function Id(variable) integer function Type(variable) integer function DimensionsNumber(variable) integer function AttributesNumber(variable)
! 次元のリストの取得 type(NC_DIMENSION), pointer, dimension(:):: dim_pointer dim_pointer => Dimensions(variable)
! 演算子 .error. variable ! 論理型, エラー判定
NC_VARIABLE 構造体は netCDF 変数の抽象化です。
Type(NC_VARIABLE) 型の値は Type(NC_FILE) 型のオブジェクトから Variable 関数を用いて作成されます。 このとき type を与えれば変数が作成されます。 オプショナルな引数で次元 (次元 ID の整数値と NC_DIMENSION 構造体のどちらかの配列) を指定できます。 どちらも与えなければスカラ変数が作成されます。 すでにファイルに存在している変数を探索するには type 引数を与えないで Variable 関数を呼び出します。
変数の作成または探索が失敗した場合は Variable 関数の返した type(NC_VARIABLE) はエラー状態になっています。 このことは .error. 演算子が真を返すことで判定できます。
変数に関する情報を取得する以下のような関数が用意されています; Name 関数は可変長文字列で変数名を返します。 Fullname 関数は可変長文字列でファイル名と変数名を '#' で連結したものを返します。 Id 関数は netCDF ライブラリで用いられるファイル ID を返します。 DimensionsNumber 関数および AttributesNumber 関数はそれぞれ変数が持っている次元と属性の数を返します。
Dimensions 関数は変数が持っている次元すべてを次元構造体として構成し、 allocate 文によって割り付けられた次元構造体の配列へのポインタを返します。 この関数値を配列へのポインタ変数に格納するには「書式」節の例のように ポインタ代入 (=>) を用います。 次元をもたない netCDF 変数に対する Dimensions 関数は空ポインタを返します。 格納されたポインタは不要になり次第 deallocate することを推奨します。
変数値の入出力に関しては netcdf_slice(3f) を参照してください。