TOC PREV NEXT INDEX

Put your logo here!


8.2 属性を生成する: NF_PUT_ATT_ type


関数NF_PUT_ATT_ typeは、オープンされたNetCDFファイルの変数属性またはグローバル属性を追加・変更します。新規の属性、または属性を格納するために必要なスペースが前より大きくなる場合には、NetCDFファイルは定義モードでなくてはなりません。

用法

どんな型の属性も生成可能ですが、ほとんどの用途にはテキストや倍精度属性で十分です。

INTEGER FUNCTION NF_PUT_ATT_TEXT (INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME, INTEGER LEN,
CHARACTER*(*) TEXT)
INTEGER FUNCTION NF_PUT_ATT_INT1 (INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME, INTEGER XTYPE,
LEN, INTEGER*1 I1VALS(*))
INTEGER FUNCTION NF_PUT_ATT_INT2 (INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME, INTEGER XTYPE,
LEN, INTEGER*2 I2VALS(*))
INTEGER FUNCTION NF_PUT_ATT_INT (INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME, INTEGER XTYPE,
LEN, INTEGER IVALS(*))
INTEGER FUNCTION NF_PUT_ATT_REAL (INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME, INTEGER XTYPE,
LEN, REAL RVALS(*))
INTEGER FUNCTION NF_PUT_ATT_DOUBLE(INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME, INTEGER XTYPE,
LEN, DOUBLE DVALS(*))
NCID 以前のNF_OPENまたはNF_CREATE呼び出しで返されたNetCDF ID
VARID 変数ID
NAME 属性名。アルファベットの文字で始まり、次にアンダースコア(‘_’)を含む0個以上の英数字が続きます。大文字小文字は区別されます。属性名の規約はいくつかのNetCDFの一般的なアプリケーションで仮定されています。例えば、unitsはNetCDF変数に単位を与える文字列属性の名前です。規約的な属性名の一覧が前出のNetCDFインターフェースについての章にあります。
XTYPE 前もって定義されたNetCDF外部データ型の集合の一つ。有効なNetCDF外部データ型はNF_BYTE, NF_CHAR, NF_SHORT, NF_INT, NF_FLOAT, NF_DOUBLE等です。どんな型の属性も生成できますが、ほとんどの用途にはNF_CHARNF_DOUBLEの属性で十分です。
LEN 属性に与えられた値の数、またはNF_PUT_ATT_TEXTのテキスト属性の長さ
TEXT, I1VALS, I2VALS, IVALS,RVALS, DVALS LEN属性値の配列。データは呼び出し関数に妥当な型でなければなりません。数値属性にCHARACTERデータを書き込んだり、テキスト属性に数値データを書き込むことは出来ません。数値データの場合、データの型が属性の型と異なれば型変換が行なわれます。(詳細については3.3節「型変換」(p.24)を参照して下さい。)

エラー

エラーが発生していなければ、NF_PUT_ATT_ typeNF_NOERRの値を返します。それ以外の場合には、返されたステータスがエラーを示します。エラーの原因として次のようなものが考えられます。

・ 変数 IDが指定されたNetCDFファイルで無効である。
・ 指定されたNetCDF型が無効である。
・ 指定された長さが負の値である。
・ 指定されたオープンされたNetCDFファイルはデータモードにあり、指定された属性が大きくなっている。
・ 指定されたオープンされたNetCDFファイルはデータモードにあり、指定された属性がまだ存在していない。
・ 指定されたNetCDF IDがオープンされたNetCDFファイルを参照していない。
・ この変数の属性の数がNF_MAX_ATTRSを越えている。

この例では、NF_PUT_ATT_DOUBLEを使って、既存のfoo.ncという名前のNetCDFファイルにおいて、rhという名前のNetCDF変数に対してvalid_rangeという属性、及び、titleという名前のグローバル属性を追加しています。

INCLUDE 'netcdf.inc'

INTEGER STATUS, NCID
INTEGER RHID ! 変数 ID
DOUBLE RHRNGE(2)
DATA RHRNGE /0.0D0, 100.0D0/

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

STATUS = NF_REDEF (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)

STATUS = NF_PUT_ATT_DOUBLE (NCID, RHID, 'valid_range', NF_DOUBLE, &
2, RHRNGE)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
STATUS = NF_PUT_ATT_TEXT (NCID, NF_GLOBAL, 'title', 19,
'example NetCDF dataset')
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)

STATUS = NF_ENDDEF (NCID) ! 定義モードを抜ける
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