関数 NF_PUT_VAR_ type のファミリーは開かれたNetCDFファイルのNetCDF変数にすべての値を書きこみます。これはスカラー変数に値を書き込んだり多次元変数の値が一度にすべて書き込める場合に使用できるもっとも単純なインターフェースです。書きこまれる値は、 FORTRAN インターフェースにおいて最も早く変化するNetCDF変数が最初 の次元であるという仮定の下にNetCDF変数と関連付けられます。必要に応じて、値は外部データ型に変換されます。
INTEGER FUNCTION NF_PUT_VAR_TEXT (INTEGER NCID, INTEGER VARID,
INTEGER FUNCTION NF_PUT_VAR_INT1 (INTEGER NCID, INTEGER VARID,
INTEGER FUNCTION NF_PUT_VAR_INT2 (INTEGER NCID, INTEGER VARID,
INTEGER FUNCTION NF_PUT_VAR_INT (INTEGER NCID, INTEGER VARID,
INTEGER FUNCTION NF_PUT_VAR_REAL (INTEGER NCID, INTEGER VARID,
INTEGER FUNCTION NF_PUT_VAR_DOUBLE(INTEGER NCID, INTEGER VARID,
書きこまれるデータ値の塊。データは呼び出した関数に対応する型でなくてはならない。文字(CHARACTER) データを数値変数に、又は数値データを文字変数に入れることは出来ません。数値データについては、データ型がNetCDF変数型と異なる場合には型変換が行われます。(詳細については型変換を参照。)最初の次元が最も早く変化する順番で(通常のFORTRAN変換と同様に)、データは指定された変数に書き込まれます。 |
関数 NF_PUT_VAR_ type ファミリーに属する関数は、エラーが発生していない場合には NF_NOERR の値を返します。その他の場合には、返されたステータスがエラーが発生したことを示します。エラーの原因としては:
この 例では NF_PUT_VAR_DOUBLE を使用して既存のNetCDFファイル foo.nc の変数 rh の値全てを0.5にします。簡潔にするためにこの例では変数 rh の次元は lon , lat , と time であり、 lon 値は10個, lat 値は5個, そして time 値が3個である事は既知とします。
INCLUDE 'netcdf.inc'
...
PARAMETER (TIMES=3, LATS=5, LONS=10) ! 次元長
INTEGER STATUS, NCID, TIMES
INTEGER RHID ! 変数 ID
DOUBLE RHVALS(LONS, LATS, TIMES)
...
STATUS = NF_OPEN ('foo.nc', NF_WRITE, NCID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
...
STATUS = NF_INQ_VARID (NCID, 'rh', RHID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
DO 10 ILON = 1, LONS
DO 10 ILAT = 1, LATS
DO 10 ITIME = 1, TIMES
RHVALS(ILON, ILAT, ITIME) = 0.5
10 CONTINUE
STATUS = NF_PUT_var_DOUBLE (NCID, RHID, RHVALS)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)