Up|<<Prev|Next>>


7.4 IDから変数の情報を取得する: NF_INQ_VAR ファミリー

この 関数のファミリーは変数のIDを与えるとそのNetCDF変数に関する情報を返します。 変数にに関する情報にはその名前・型・次元の数・変数の形を表す変数IDのリスト・変数に割り当てられている変数属性の数等です。

関数 NF_INQ_VAR はある変数のIDを与えるとNetCDF関数に関する情報をすべて返します。その他の関数はある変数に関する一つの情報を返します。

このほかの関数とは NF_INQ_VARNAME , NF_INQ_VARTYPE , NF_INQ_VARNDIMS , NF_INQ_VARDIMID , NF_INQ_VARNATTS 等です。

 

INTEGER FUNCTION NF_INQ_VAR (INTEGER NCID, INTEGER VARID,

CHARACTER*(*) name, INTEGER xtype,

INTEGER ndims, INTEGER dimids(*),

INTEGER natts)

INTEGER FUNCTION NF_INQ_VARNAME (INTEGER NCID, INTEGER VARID,

CHARACTER*(*) name)

INTEGER FUNCTION NF_INQ_VARTYPE (INTEGER NCID, INTEGER VARID,

INTEGER xtype)

INTEGER FUNCTION NF_INQ_VARNDIMS (INTEGER NCID, INTEGER VARID,

INTEGER ndims)

INTEGER FUNCTION NF_INQ_VARDIMID (INTEGER NCID, INTEGER VARID,

INTEGER dimids(*))

INTEGER FUNCTION NF_INQ_VARNATTS (INTEGER NCID, INTEGER VARID,

INTEGER natts)

 

NCID

以前の NF_OPEN 又は NF_CREATE 呼び出しで返されたNetCDF ID。

VARID

変数ID。

name

返された 変数名。予め返される名前のためのスペースを確保しておく必要がある。変数名の最大文字数は予め定義された定数 NF_MAX_NAME で表される。

xtype

返された変数の外部型で、予め定義されたNetCDF外部データ型の集合の一つ。有効なNetCDF外部データ型は NF_BYTE , NF_CHAR , NF_SHORT , NF_INT , NF_FLOAT , と NF_DOUBLE である。

ndims

この変数に対して返された次元の数。例えば、2は行列、1はベクトル、ゼロはその変数が無次元のスカラーであることを示す。

dimids

返された 変数の次元に対応する次元ID NDIMS のベクトル。予め NDIMS 整数のベクトル用のスペースを確保する必要がある。変数が取れる最大の次元数は予め定義された定数 NF_MAX_VAR_DIMS によって表される。

natts

返されたこの変数に割り当てられた変数属性の数。

 

これらの関数はエラーが発生していない場合には NF_NOERR 値を返します。それ以外の場合は、返されたステータスがエラーの発生を示します。エラーの原因としては:

 

これは NF_INQ_VAR を使用してNetCDFファイル foo.nc の中の rh という変数に関しての情報を探す例です。

INCLUDE 'netcdf.inc'
   ... 
INTEGER  STATUS, NCID
INTEGER  RHID               ! 変数 ID
CHARACTER*31 RHNAME         ! 変数名
INTEGER  RHTYPE             ! 変数型
INTEGER  RHN                ! 次元の数
INTEGER  RHDIMS(NF_MAX_VAR_DIMS)   ! 変数の形
INTEGER  RHNATT                    ! 属性の数
   ... 
STATUS = NF_OPEN ('foo.nc', NF_NOWRITE, NCID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
   ... 
STATUS = NF_INQ_VARID (NCID, 'rh', RHID)  ! get ID
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
STATUS = NF_INQ_VAR (NCID, RHID, RHNAME, RHTYPE, RHN, RHDIMS, RHNATT)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)

Up|<<Prev|Next>>