関数 NF_DEF_VAR は定義モードにある開かれたNetCDFファイルに新たに変数を追加します。NetCDFID・変数名・変数型・次元数・次元IDのリストを与えると、(引数として)変数IDを返します。
INTEGER FUNCTION NF_DEF_VAR(INTEGER NCID, CHARACTER*(*) NAME,
INTEGER XTYPE, INTEGER NVDIMS,
INTEGER VDIMS(*), INTEGER varid)
この例では NF_DEF_VAR を使用して、新しい foo.nc という名前のNetCDFファイル中に、 time , lat , and 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)