Up|<<Prev|Next>>


6.3 次元について問い合わせる: NF_INQ_DIM ファミリー

この関数のファミリーはNetCDF次元についての情報を返します。次元に関するの情報には次元名と次元長があります。無制限長の次元の長さは、存在していれば、その段階までに書かれた記録の数です。

このファミリーに属する関数は NF_INQ_DIM , NF_INQ_DIMNAME , そして NF_INQ_DIMLEN があります。関数 NF_INQ_DIM はその次元についての全ての情報を返します。他の機能はその次元についてある一つの情報を返します。

 

INTEGER FUNCTION NF_INQ_DIM (INTEGER NCID, INTEGER DIMID,

CHARACTER*(*) name, INTEGER len)

INTEGER FUNCTION NF_INQ_DIMNAME (INTEGER NCID, INTEGER DIMID,

CHARACTER*(*) name)

INTEGER FUNCTION NF_INQ_DIMLEN (INTEGER NCID, INTEGER DIMID,

INTEGER len)

 

NCID

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

DIMID

以前の NF_INQ_DIMID もしくは NF_DEF_DIM 等への呼び出しからの次元ID。

name

返された 次元名。呼び出すには予めスペースを割り当てておく必要がある。次元名の文字数の最大長は、事前に定義した定数 NF_MAX_NAME によって決まる。

len

返された次元長。無制限次元においてこれは、この次元を使用して書かれた変数が使用している最大値、即ち、最大の記録数である。

 

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

 

この 例では NF_INQ_DIM を使用して既存のNetCDFファイル foo.nc lat と名づけられた次元の長さと無限長次元の現在の長さをを求めます:

INCLUDE 'netcdf.inc'
   ... 
INTEGER STATUS, NCID, LATID, LATLEN, RECID, NRECS
CHARACTER*(NF_MAX_NAME) LATNAM, RECNAM
   ... 
STATUS = NF_OPEN('foo.nc', NF_NOWRITE, NCID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
! 無制限次元のID取得
STATUS = NF_INQ_UNLIMDIM(NCID, RECID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
   ... 
STATUS = NF_INQ_DIMID(NCID, 'lat', LATID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
! lat の長さ取得
STATUS = NF_INQ_DIMLEN(NCID, LATID, LATLEN)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
! 無制限次元の名前と現在の長さ取得
STATUS = NF_INQ_DIM(NCID, RECID, RECNAME, NRECS)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)

Up|<<Prev|Next>>