8.6 属性名を変更する: NF_RENAME_ATT
関数NF_RENAME_ATTは属性の名前を変更します。新しい名前が元の名前より長い場合には、NetCDFファイルは定義モードになっている必要があります。同じ変数の他の属性名と同じ名前になってしまうような属性名の変更はできません。
INTEGER FUNCTION NF_RENAME_ATT (INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME,
CHARACTER*(*) NEWNAME)
NCID 以前のNF_OPENまたはNF_CREATE呼び出しで返されたNetCDF ID VARID 属性の変数のID、またはグローバル属性のNF_GLOBAL NAME 現行の属性名 NEWNAME 指定された属性に割り当てられる新しい名前。新しい名前が現行の名前よりも長い場合には、NetCDFファイルは定義モードになっていなければなりません。
エラー
エラーが発生していなければ、NF_RENAME_ATTはNF_NOERRの値を返します。それ以外の場合には、返されたステータスがエラーを示します。エラーの原因として次のようなものが考えられます。
・ 変数IDが無効である。
・ 新しい属性名は指定された変数の他の属性が既に使用している。
・ 指定されたNetCDFファイルはデータモードになっていて、新しい名前は元の名前より長い。
・ 指定された属性が存在しない。
・ 指定されたNetCDF IDがオープンされたNetCDFファイルを参照していない。
例
この例では、NF_RENAME_ATTを使って、既存のfoo.ncというNetCDFファイルにおける変数rhの変数属性の名前をunitsからUnitsに変更します。
INCLUDE "netcdf.inc"
…
INTEGER STATUS ! エラーステータス
INTEGER NCID ! NetCDF ID
INTEGER RHID ! 変数 ID
…
STATUS = NF_OPEN ("foo.nc", NF_NOWRITE, 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_RENAME_ATT (NCID, RHID, "units", "Units")
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 |