次のコードを使用して、Fortran で既存の netCDF ファイルに新しい次元を追加しました -
retval = nf_open(cfn,NF_WRITE,ncid)
if (retval .ne. nf_noerr) call handle_err(retval)
retval = nf_redef(ncid)
if (retval .ne. nf_noerr) call handle_err(retval)
retval = nf_def_dim(ncid,"xyz",len,dimid_xyz)
if (retval .ne. nf_noerr) call handle_err(retval)
retval = nf_enddef(ncid)
ここで、このディメンションをゼロの値で埋められるようにしたいと考えています。このセットのカーディナリティは、私の場合のジオポテンシャルの高さの変数のカーディナリティと同じです。さらに、時間 (無制限)、緯度、経度、レベルの 3 つの次元があります。
fortran で netCDF API を調べたのですが、どの API を呼び出すべきかわかりません。次の API を使用すると、
retval = nf_put_var_real(ncid,dimid_xyz,xyzArray)
if (retval .ne. nf_noerr) call handle_err(retval)
ジオポテンシャルの高さの値を 0.0 で上書きしてしまいます (これは私の netCDF ファイルの唯一の変数です)。
これを行うにはどうすればよいですか?