TOC PREV NEXT INDEX

Put your logo here!


7.5 単一のデータ値を書きこむ: NF_PUT_VAR1_ type


関数NF_PUT_VAR1_ typeは指定された (type)の単一のデータ値をオープンされたステータスでデータモードにあるNetCDFファイルの変数に書きこみます。入力はNetCDF ID・変数ID・書き加えまたは変更するインデックス・データ値です。必要な場合には、その値は変数の外部データ型に変換されます。

用法
INTEGER FUNCTION NF_PUT_VAR1_TEXT(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), CHARACTER CHVAL)
INTEGER FUNCTION NF_PUT_VAR1_INT1(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), INTEGER*1 I1VAL)
INTEGER FUNCTION NF_PUT_VAR1_INT2(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), INTEGER*2 I2VAL)
INTEGER FUNCTION NF_PUT_VAR1_INT (INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), INTEGER IVAL)
INTEGER FUNCTION NF_PUT_VAR1_REAL(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), REAL RVAL)
INTEGER FUNCTION NF_PUT_VAR1_DOUBLE(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), DOUBLE DVAL)
NCID 以前のNF_OPEN または NF_CREATE呼び出しで返されたNetCDF ID
VARID 変数ID
INDEX 書きこまれるデータ値のインデックス。インデックスは1に相対的なものであり、例えば2次元の変数の最初のデータ値のインデックスは(1,1)になります。インデックスの要素は変数の次元に対応しなければなりません。よって、変数が記録変数であれば、最後のインデックスは記録数に対応します。
CHVAL, I1VAL, I2VAL, IVAL, RVAL, DVAL 書きこまれるデータ値。データ値は呼び出し関数に対応した型でなければなりません。文字(CHARACTER)データ値を数値変数に書き込んだり、数値データを文字変数書きこむことは出来ません。数値データがNetCDF変数型と異なる場合には型(type)変換が行われます。 詳細については3.3節「型変換」(p.24)を参照してください。

エラー

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

・ 変数IDが指定されたNetCDFファイルでは有効ではない。
・ 指定されたインデックスが指定された変数のランクの範囲外である。例えば、負のインデックスや対応する次元長より大きなインデックスを与えるとエラーを発生させる。
・ 指定された値が変数の外部データ型で表現できる範囲外である。。
・ 指定されたNetCDFファイルがデータモードではなく定義モードにある。
・ 指定されたNetCDF IDはオープンされたNetCDFファイルを参照していない。

この例ではNF_PUT_VAR1_DOUBLEを使用して既存のNetCDFファイルfoo.ncの変数 rh(4,3,2) 要素を0.5にします。簡潔にするためにこの例では変数rhの次元がlon, lat, timeであることを既知とします。よって、書きこむ変数rhの値は4番目のlon値・3番目のlat値・2番目のtime値に対応します。

INCLUDE 'netcdf.inc'

INTEGER STATUS ! エラーステータス
INTEGER NCID
INTEGER RHID ! 変数ID
INTEGER RHINDX(3) ! 値の格納場所
DATA RHINDX /4, 3, 2/

STATUS = NF_OPEN ('foo.nc', NF_WRITE, NCID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)

STATUS = NF_INQ_VARID (NCID, 'rh', RHID) ! get ID
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
STATUS = NF_PUT_VAR1_DOUBLE (NCID, RHID, RHINDX, 0.5)
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
TOC PREV NEXT INDEX