7.2 変数を生成する: NF_DEF_VAR
関数NF_DEF_VAR は定義モードにあるオープンされたNetCDFファイルに新たに変数を追加します。NetCDF ID・変数名・変数型・次元数・次元IDのリストを与えると、(引数として)変数IDを返します。
用法
INTEGER FUNCTION NF_DEF_VAR(INTEGER NCID, CHARACTER*(*) NAME,
INTEGER XTYPE, INTEGER NVDIMS,
INTEGER VDIMS(*), INTEGER varid)
エラー
エラーが発生していなければ NF_DEF_VAR 関数は NF_NOERR の値を返します。それ以外の場合は、返されたステータスがエラーを示します。エラーの原因としては:
・ NetCDF ファイルが定義モードになっていない。
・ 指定された変数名は既存の別な変数の名前である。
・ 指定された型が有効なNetCDF型ではない。
・ 指定された次元の数が負、もしくはNetCDF変数に許された最大の次元の数を表す定数 NF_MAX_VAR_DIMS より大きい。
・ 次元のリストの中の 次元IDのひとつ、もしくはそれ以上がNetCDFファイル中で有効ではない次元IDである。
・ 変数の数がNetCDF変数に許された最大の次元の数を表す定数NF_MAX_VARS より大きい。
・ 指定されたNetCDF IDが開いているNetCDFファイルを参照していない。
例
この例では NF_DEF_VAR を使用して、新しいfoo.ncという名前のNetCDFファイル中に、time, lat, lonの3つの次元を持つ、変数名rhの倍精度型の変数を生成します:
INCLUDE 'netcdf.inc'
…
INTEGER STATUS, NCID
INTEGER LATDIM, LONDIM, TIMDIM ! 次元 IDs
INTEGER RHID ! 変数 ID
INTEGER RHDIMS(3) ! 変数の形
…
STATUS = NF_CREATE ('foo.nc', NF_NOCLOBBER, NCID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
…
! 次元を定義
STATUS = NF_DEF_DIM(NCID, 'lat', 5, LATDIM)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
STATUS = NF_DEF_DIM(NCID, 'lon', 10, LONDIM)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
STATUS = NF_DEF_DIM(NCID, 'time', NF_UNLIMITED, TIMDIM)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
…
! 変数を定義
RHDIMS(1) = LONDIM
RHDIMS(2) = LATDIM
RHDIMS(3) = TIMDIM
STATUS = NF_DEF_VAR (NCID, 'rh', NF_DOUBLE, 3, RHDIMS, RHID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
Quadralay Corporation http://www.webworks.com Voice: (512) 719-3399 Fax: (512) 719-3606 sales@webworks.com |