FortranのためのNetCDFユーザーのガイド
通常、その変数が最初に定義されるとき、名前、タイプ、及び、形は、決定される。その名前は、変えられるかもしれない。しかし、変数のタイプ、及び、形は、変えられることができない。しかしながら、無制限の次元に関して定義された変数は、その次元における限度なしで増大し得る。
AオープンnetCDF datasetにおけるnetCDF変数は、変数IDと呼ばれる小さい整数によって参照される。
変数IDは、変数がnetCDF datasetの中で定義されたオーダを反映する。変数ID、である、1 ,2 ,3、それらの変数が定義されたオーダにおける...。ファンクションは、変数名、及び、vice-versaから変数IDを得ることに利用可能である。
属性 ( 第8章「属性」、81ページを 見る ) は、ユニットのようなプロパティを指定するために、変数と関連しているかもしれない。
変数に関してサポートされたオペレーションは、以下である。
netCDF/CDLデータは、タイプする | FORTRAN APIニーモニック | ビット |
---|---|---|
バイト
| NF_BYTE
| 8 |
木炭
| NF_CHAR
| 8 |
短い
| NF_SHORT
| 16 |
int
| NF_INT
| 32 |
フロート
| NF_FLOAT
| 32 |
ダブル
| NF_DOUBLE
| 64 |
最初のカラムは、外部のデータタイプ ( CDLデータタイプと同じである ) をnetCDFに与える。次のカラムは、一致を与えるnetCDFファンクションにおける使用のためのFORTRANパラメータ( それらのパラメータがnetCDF
FORTRAN含む‐ファイルnetcdf.inc
において定義される )
。最後のカラムは、一致するタイプの値の外部の表現に使われるビットの数を示す。
64ビット整数、もしくは、netCDFライブラリの現在のバージョンにおける8ビットより広いキャラクタと一致するnetCDFタイプがないことに注目しなさい。
NF_DEF_VAR
NF_DEF_VAR
は、オープンnetCDF
datasetへの新しい変数を加える、モードを定義する。それは、変数IDを返す ( 引数として ) ( netCDF
ID、変数名前、変数タイプ、次元の数、及び、次元IDのリストを与えられて ) 。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
名前
| この変数のための名前。英文学 ( ゼロ、または、更に文字数字両用のキャラクタを従えている、含む、下線を引く ( _
) ) で始まらなければならない。ケースは、有意である。
|
XTYPE
| この変数のための外部のタイプ、前‐定義されたnetCDFの外部のデータタイプのセットのうちの1つ:NF_BYTE 、NF_CHAR 、NF_SHORT 、NF_INT 、NF_FLOAT 、または、NF_DOUBLE 。
|
NVDIMS
| この変数のための次元の数。例えば、2 は、マトリックスを指定し、1 は、ベクトルを指定し、そして、0 は、その変数が次元なしのスカラであることを意味する。前‐定義された一定のNF_MAX_VAR_DIMS より負であってはいけない、及び、更に大きくてはいけない。
|
VDIMS
| この変数の次元と一致するNVDIMS 次元IDのベクトル。無制限の次元のIDが含まれるならば、それは、最後でなければならない。NVDIMS が0 であるならば、この引数は、無視される。
|
varid
| 変数IDを返した |
NF_DEF_VAR
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
NF_MAX_VAR_DIMS
次元の最大の数は、netCDF変数のために許可した。
NF_MAX_VARS
変数の最大の数は、netCDF datasetにおいて許可した。
NF_DEF_VAR
変数を作成することは、3つの次元、時間
、lat
、及び、foo.nc
と指定された新しいnetCDF
datasetにおけるlon
によってダブル
とタイプのrh
を指定した:
'netcdf.inc'を含む
...
.
整数状態、NCID整数LATDIM、LONDIM、TIMDIM、次元ID整数RHID、変数ID整数RHDIMS ( 3 ) 、変数形、
...
.
状態= NF_CREATE、 ( 'foo.nc'、NF_NOCLOBBER、NCID ) かどうか ( 状態.NE. NF_NOERR )
HANDLE_ERR ( STATUS ) を呼ぶ、
... .
次元状態= NF_DEF_DIM ( NCIDを定義する、` lat
'、5、LATDIM ) 、かどうか ( STATUS .NE. NF_NOERR ) 、コールHANDLE_ERR ( STATUS ) 状態=
NF_DEF_DIM ( NCID、` lon '、10、LONDIM ) 、コールHANDLE_ERR ( STATUS ) 状態= NF_DEF_DIM (
NCID、`時間'がNF_UNLIMITEDしたならば ( STATUS .NE. NF_NOERR ) 、TIMDIM ) 、かどうか ( STATUS
.NE. NF_NOERR ) 、コールHANDLE_ERR ( STATUS ) 、
... .
!変数RHDIMS ( 1 ) = LONDIM
RHDIMS ( 2 ) = LATDIM RHDIMS ( 3 ) = TIMDIM状態= NF_DEF_VAR ( NCID、` rh
'、NF_DOUBLE、3、RHDIMS、RHID ) を定義する、かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS )
を呼ぶ、
NF_INQ_VARID
NF_INQ_VARID
は、netCDF変数のIDを返す (
その名前を与えられて ) 。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
名前
| IDが望まれる変数名。 |
varid
| 返された変数ID。 |
NF_INQ_VARID
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
NF_INQ_VARID
変数のIDを発見することは、foo.nc
と指定されたdatasetと現存するnetCDFにおけるrh
を指定した:
'netcdf.inc'を含む
...
.
整数状態、NCID、RHID
... .
状態= NF_OPEN、 ( 'foo.nc'、NF_NOWRITE、NCID ) かどうか (
状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態= NF_INQ_VARID、 (
NCID、` rh '、RHID ) かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS ) を呼ぶ、
NF_INQ_VAR
ファミリーファンクションNF_INQ_VAR
は、netCDF変数に関する情報全てを返す (
そのIDを与えられて ) 。それぞれ他のファンクションは、ほんの1つの変数に関する情報のアイテムを返す。
これらの他のファンクション、含む、NF_INQ_VARNAME
NF_INQ_VARTYPE
NF_INQ_VARNDIMS
NF_INQ_VARDIMID
そして、NF_INQ_VARNATTS
。
これらのファンクションは、値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
NF_INQ_VAR
変数について知ることは、foo.nc
と指定されたdatasetと現存するnetCDFにおけるrh
を指定した:
'netcdf.inc'を含む
...
.
整数状態、NCID整数RHID、変数ID CHARACTER*31 RHNAME、変数名前整数RHTYPE、変数タイプ整数RHN、次元整数RHDIMS
( NF_MAX_VAR_DIMS ) の数、変数形整数RHNATT、属性の数、
... .
状態= NF_OPEN、 (
'foo.nc'、NF_NOWRITE、NCID ) かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS )
を呼ぶ、
... .
状態= NF_INQ_VARID ( NCID、` rh '、RHID ) IDを得る、かどうか ( 状態.NE.
NF_NOERR ) コールHANDLE_ERR ( STATUS ) 状態= NF_INQ_VAR (
NCID、RHID、RHNAME、RHTYPE、RHN、RHDIMS、RHNATT ) かどうか ( 状態.NE. NF_NOERR )
コールHANDLE_ERR ( STATUS ) 、
NF_PUT_VAR1_タイプ
NF_PUT_VAR1_タイプ
は、データモードにあるオープンnetCDF
datasetの変数に、指定されたタイプの1つのデータ値を置いた。入力は、netCDF
ID、変数ID、どちらの値を加えるか、もしくは変更するかを指定するインデックス、及び、データ値である。もし必要ならば、その値は、外部のデータタイプの変数に変換される。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
インデックス
| 書かれるためのデータ値のインデックス。それらのインデックスは、1に関係がある。従って、例えば、二次元の変数の最初のデータ値は、インデックス
( 1,1 )
を持っているであろう。インデックス のエレメントは、変数の次元と一致しなければならない。従って、その変数がレコード変数であるならば、最後のインデックスは、レコード番号と一致するであろう。
|
CHVAL、I1VAL、I2VAL、IVALな、RVALな 、もしくは、DVALな 、
| 書かれるためのデータ値。データは、呼ばれたファンクションに適したタイプであるべきである。あなたは、CHARACTERデータを数値変数、及び、数値データにテキスト変数に入れ得ない。数値データのために、データのタイプがnetCDF変数タイプと異なるならば、タイプ変換は、発生するであろう。詳細のためにセクション3.3の「タイプ変換」、24ページを見なさい。 |
NF_PUT_VAR1_タイプ
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
foo.nc
と指定された現存するnetCDF
datasetにおいて0.5
までのrh
と指定された変数の ( 4,3,2 )
エレメントをセットするためにNF_PUT_VAR1_DOUBLE
を使う例である。この例における簡素性のために、我々は、我々がrh
がlon
、lat
、及び、時間
によって次元‐される、従って、我々が第4のlon
値、第3のlat
値、及び、第2の時間
値と一致するrh
の値を設定することを望むということを知っていると推測する:
'netcdf.inc'を含む
... .
整数状態、エラー状態整数NCID整数RHID、変数ID整数RHINDX ( 3 )
、値データRHINDX /4をどこに置くか、3、2/、
... .
状態= NF_OPEN、 ( 'foo.nc'、NF_WRITE、NCID )
かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態= NF_INQ_VARID
( NCID、` rh '、RHID ) IDを得る、かどうか ( 状態.NE. NF_NOERR ) コールHANDLE_ERR ( STATUS ) 状態=
NF_PUT_VAR1_DOUBLE ( NCID、RHID、RHINDX、0.5 ) かどうか ( 状態.NE. NF_NOERR )
コールHANDLE_ERR ( STATUS ) 、
NF_PUT_VAR_タイプ
NF_PUT_VAR_タイプ
ファミリーは、オープンnetCDF
datasetのnetCDF変数に変数の全ての値を書く。これは、段階状の変数で値を書くために使用するために、最もシンプルなインタフェースである、〜もしくは、いつ〜ても、マルチ‐寸法の変数の全ての値は、ただちに書かれ得る。推測することによってnetCDF変数と関連しているということを手紙で知らせられるための値、それ、netCDF変数の最初の寸法は、最も速く異なる、で、FORTRANインタフェース。もし必要ならば、それらの値は、外部のデータタイプの変数に変換される。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
テキスト、I1VALS、I2VALS、IVALS、RVALS、または、DVALS
| 書かれるためのデータ値のブロック。データは、呼ばれたファンクションに適したタイプであるべきである。あなたは、CHARACTERデータを数値変数、及び、数値データにテキスト変数に入れ得ない。数値データのために、データのタイプがnetCDF変数タイプと異なるならば、タイプ変換は、発生するであろう ( 詳細のためにSection 3.3「タイプConversion」、24ページを見なさい ) 。データが指定された変数に書かれるであろうオーダは、最も速く変化する最初の次元を持っている ( 普通のFORTRAN規定を好みなさい ) 。 |
メンバー、の、NF_PUT_VAR_タイプ
ファミリーは、値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
foo.nc
と指定された現存するnetCDF
datasetにrh
と指定された変数の全ての値を加える、もしくは変えるためにNF_PUT_VAR_DOUBLE
を使う例が0.5
まである。この例における簡素性のために、我々は、我々がrh
がlon
、lat
、及び、時間
によって次元‐されるということを知っているということ、そして、10
lon
値、5 lat
値、及び、3つの時間
値があるということを推測する。
'netcdf.inc'を含む
... .
パラメータ、 ( TIMES=3 , LATS=5 , LONS=10 )
、次元長さ整数状態、NCID、掛ける整数RHID、変数IDの二重のRHVALS ( LONS、LATS、掛ける ) 、
... .
状態=
NF_OPEN、 ( 'foo.nc'、NF_WRITE、NCID ) かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS
) を呼ぶ、
... .
状態= NF_INQ_VARID ( NCID , rh , RHID ) 、コールHANDLE_ERR ( STATUS
) が行うならば ( STATUS .NE. NF_NOERR ) 、10不オン= 1、LONSは、10 ILAT = 1をする、LATSは、10 ITIME
= 1、掛けるRHVALS ( ILONをする、ILAT、ITIME ) = 0.5 10、状態= NF_PUT_var_DOUBLE ( NCID ,
RHID , RHVALS ) を続ける、かどうか ( STATUS .NE. NF_NOERR ) 、コールHANDLE_ERR ( STATUS )
、
NF_PUT_VARA
_
NF_PUT_VARA_タイプ
は、オープンnetCDF
datasetのnetCDF変数に値を書く。書くためのnetCDF変数の部分は、コーナー、及び、エッジ長さ ( netCDF変数のアレイセクションを参照する )
のベクトルを与えることによって指定される。推測することによってnetCDF変数と関連しているということを手紙で知らせられるための値、それ、netCDF変数の最初の寸法は、最も速く異なる、で、FORTRANインタフェース。netCDF datasetは、データモードになければならない。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
スタート
| データ値の第1が書かれるであろう変数においてインデックスを指定する整数のベクトル。それらのインデックスは、1に関係がある。従って、例えば、変数の最初のデータ値は、インデックス
( 1、1、...、1 )
を持っているであろう。START の長さは、指定された変数の次元の数と同じでなければならない。START のエレメントは、順番に変数の次元と一致しなければならない。従って、その変数がレコード変数であるならば、最後のインデックスは、データ値を書くために起動レコード番号と一致するであろう。
|
カウント
| データ値のブロックの各次元に沿ってエッジ長さを指定する整数のベクトル、に、書かれる。1つの値を書くために、例えば指定する 、〜同じくらい
( 1、1、...、1 )
。COUNT の長さは、指定された変数の次元の数である。COUNT のエレメントは、変数の次元と一致する。従って、その変数がレコード変数であるならば、COUNT の最後のエレメントは、書くために、レコードの数のカウントと一致する。
|
テキスト、I1VALS、I2VALS、IVALS、RVALS、または、DVALS
| 書かれるためのデータ値のブロック。データは、呼ばれたファンクションに適したタイプであるべきである。あなたは、CHARACTERデータを数値変数、及び、数値データにテキスト変数に入れ得ない。数値データのために、データのタイプがnetCDF変数タイプと異なるならば、タイプ変換は、発生するであろう ( 詳細のためにSection 3.3「タイプConversion」、24ページを見なさい ) 。 |
NF_PUT_VARA_タイプ
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
NF_PUT_VARA_DOUBLE
を使う例である、もしくは、foo.nc
と指定された現存するnetCDF
datasetにおいて0.5
までのrh
と指定された変数の全ての値を変える。この例における簡素性のために、我々は、我々がrh
がlon
、lat
、及び、時間
によって次元‐されるということを知っているということ、そして、10
lon
値、5 lat
値、及び、3つの時間
値があるということを推測する。
'netcdf.inc'を含む
... .
パラメータ ( NDIMS=3 ) 、次元パラメータ ( TIMES=3 ,
LATS=5 , LONS=10 ) の数、次元長さ整数状態、NCID、掛ける整数RHID、変数ID整数START ( NDIMS ) 、COUNT (
NDIMS ) の二重のRHVALS ( LONS、LATS、掛ける )
データスタート/1、1、1/、最初の値データカウント/LONS、LATS、TIMES/でスタートする、
... .
状態= NF_OPEN、 (
'foo.nc'、NF_WRITE、NCID ) かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS )
を呼ぶ、
... .
状態= NF_INQ_VARID ( NCID , rh , RHID ) 、かどうか、 ( 状態.NE。NF_NOERR )
コールHANDLE_ERR ( STATUS ) は、10不オン= 1をする、LONSは、10 ILAT = 1をする、LATSは、10 ITIME =
1、掛けるRHVALS ( ILONをする、ILAT、ITIME ) = 0.5 10は、状態= NF_PUT_VARA_DOUBLE (
NCID、RHID、スタート、カウント、RHVALS ) を続ける、かどうか ( 状態.NE. NF_NOERR ) コールHANDLE_ERR (
STATUS ) 、
NF_PUT_VARS_タイプ
NF_PUT_VARS_タイプ
は、オープンnetCDF
datasetのnetCDF変数に値のセクションをサブ‐見本をとられた ( stridedされる )
アレイに書く。サブ‐見本をとられたアレイセクションは、コーナー、カウントのベクトル、及び、ストライドベクトルを与えることによって指定される。netCDF
datasetは、データモードになければならない。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
スタート
| データ値の第1が書かれるであろう変数においてインデックスを指定する整数のベクトル。それらのインデックスは、1に関係がある。従って、例えば、変数の最初のデータ値は、インデックス
( 1、1、...、1 ) を持っているであろう。START のエレメントは、変数の次元と一致する ( 順番に
) 。従って、その変数がレコード変数であるならば、最後のインデックスは、データ値を書くために起動レコード番号と一致するであろう。
|
カウント
| 各次元に沿って選択されたインデックスの数を指定する整数のベクトル。1つの値を書くために、例えば指定する 、〜同じくらい
( 1、1、...、1 ) 。COUNT のエレメントは、変数の次元と一致する ( 順番に )
。従って、その変数がレコード変数であるならば、COUNT の最後のエレメントは、書くために、レコードの数のカウントと一致する。
|
ストライド
| netCDF変数の各次元に沿って抽出間隔を指定する整数のベクトル。ストライドベクトルのエレメントは、変数の次元 ( STRIDE ( 1 ) がnetCDF変数 ) の最も急速に変化している次元に沿って抽出間隔に与えるnetCDFと一致する ( 順番に ) 。抽出間隔は、エレメントのタイプ‐非依存のユニットにおいて指定される ( 1の値が一致する次元に沿ってnetCDF変数の連続したエレメントを選択する、2の値が他の全てのエレメントを選択する、等 ) 。 |
テキスト、I1VALS、I2VALS、IVALS、RVALS、または、DVALS
| 書かれるためのデータ値のブロック。データは、呼ばれたファンクションに適したタイプであるべきである。あなたは、CHARACTERデータを数値変数、及び、数値データにテキスト変数に入れ得ない。数値データのために、データのタイプがnetCDF変数タイプと異なるならば、タイプ変換は、発生するであろう ( 詳細のためにSection 3.3「タイプConversion」、24ページを見なさい ) 。 |
NF_PUT_VARS_タイプ
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
rh
と指定されたnetCDF変数の他の全てのポイントを書く--内部のアレイから--ためのNF_PUT_VARS_REAL
、FORTRAN宣言REAL RH ( 6,4 ) (
次元の
サイズに注目する ) :
'netcdf.inc'を含む
... .
PARAMETER、 (
NDIM=2 ) netCDF変数INTEGER NCIDのランク、netCDF dataset ID INTEGER STATUS、コードINTEGER
RHIDを返す、変数ID INTEGER START ( NDIM ) 、netCDF変数スタートポイントINTEGER COUNT ( NDIM )
、内部のアレイINTEGER STRIDE ( NDIM ) のサイズ、netCDF変数二段抽出間隔REAL RH ( 3,2 )
、!ノートは、netCDF変数のためにサイズのサブ‐見本をとった、次元DATA START /1、1/、最初のnetCDF変数値DATA COUNT
/3でスタートする、2/、内部のアレイのサイズ:無傷の ( サブ‐見本をとられる ) netCDF変数DATA STRIDE
/2、2/、他の全てのnetCDFエレメントにアクセスする、
... .
状態= NF_OPEN ( 'foo.nc'、NF_WRITE、NCID
) 、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態=
NF_INQ_VARID ( NCID、` rh '、RHID ) 、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR (
STATUS ) を呼ぶ、
... .
状態= NF_PUT_VARS_REAL (
NCID、RHIDは、スタートする、カウントする、大またで歩く、RH ) 、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR
( STATUS ) を呼ぶ、
NF_PUT_VARM_type
NF_PUT_VARM_タイプ
ファンクションのファミリーは、オープンnetCDF
datasetのnetCDF変数に値のセクションをマップされたアレイに書く。マップされたアレイセクションは、コーナー、カウントのベクトル、ストライドベクトル、及び、ベクトルをマップするインデックスを与えることによって指定される。ベクトルをマップするインデックスは、netCDF変数の次元、及び、内部のデータアレイの不メモリ構造の間のマッピングを指定する整数のベクトルである。データアレイの次元の注文、及び、長さについて仮定が行われない。netCDF
datasetは、データモードになければならない。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
スタート
| データ値の第1が書かれるであろう変数においてインデックスを指定する整数のベクトル。それらのインデックスは、1に関係がある。従って、例えば、変数の最初のデータ値は、インデックス
( 1、1、...、1 ) を持っているであろう。START のエレメントは、変数の次元と一致する ( 順番に
) 。従って、その変数がレコード変数であるならば、最後のインデックスは、データ値を書くために起動レコード番号と一致するであろう。
|
カウント
| 各次元に沿って選択されたインデックスの数を指定する整数のベクトル。1つの値を書くために、例えば指定する 、〜同じくらい
( 1、1、...、1 ) 。COUNT のエレメントは、変数の次元と一致する ( 順番に )
。従って、その変数がレコード変数であるならば、COUNT の最後のエレメントは、書くために、レコードの数のカウントと一致する。
|
ストライド
| netCDF変数の各次元に沿って抽出間隔を指定する整数のベクトル。ストライドベクトルのエレメントは、変数の次元 ( STRIDE ( 1 ) がnetCDF変数 ) の最も急速に変化している次元に沿って抽出間隔に与えるnetCDFと一致する ( 順番に ) 。抽出間隔は、エレメントのタイプ‐非依存のユニットにおいて指定される ( 1の値が一致する次元に沿ってnetCDF変数の連続したエレメントを選択する、2の値が他の全てのエレメントを選択する、等 ) 。 |
IMAP
| netCDF変数の次元、及び、内部のデータアレイの不メモリ構造の間のマッピングを指定する整数のベクトル。ベクトルをマップするインデックスのエレメントは、変数の次元 ( IMAP ( 1 ) がnetCDF変数 ) の最も急速に変化している次元と一致する内部のアレイのエレメントの間で距離に与えるnetCDFと一致する ( 順番に ) 。エレメントの間の距離は、エレメントのユニットにおいて指定される ( 隣接のメモリロケーションを占める内部のエレメントの間の距離がnetCDF 2と同様にエレメントのバイト‐長さではなく1である ) 。 |
テキスト、I1VALS、I2VALS、IVALS、RVALS、または、DVALS
| 書かれるためのデータ値。データは、呼ばれたファンクションに適したタイプであるべきである。あなたは、CHARACTERデータを数値変数、及び、数値データにテキスト変数に入れ得ない。数値データのために、データのタイプがnetCDF変数タイプと異なるならば、タイプ変換は、発生するであろう ( 詳細のためにSection 3.3「タイプConversion」、24ページを見なさい ) 。 |
NF_PUT_VARM_タイプ
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
スタート
カウント
、そして、STRIDE
は、範囲が無い指数を生成する。エラーチェックが可能ではない注意事項、IMAP
ベクトル。
IMAP
ベクトルマップ2x3x4 netCDF変数、及び、内部の一連の同じ形:
REAL A ( 2,3,4 ) 、netCDF変数INTEGER IMAP ( 3
) DATA IMAP /1、2と同じ形、6/、netCDF次元インター‐エレメント距離、
----------------
----------------------、
1最も急速に変化する、中間の、2 ( =IMAP*2 ) 6 ( =IMAP*3 )
最もゆっくりと変化する、
使用する、IMAP
ベクトル、上で、に関して、NF_PUT_VARM_REAL
は、簡単に使用すると同じ結果を獲得するNF_PUT_VAR_REALな
。
ここに使用することの例がある示されるrh
と指定されたnetCDF変数を書く--置き換えられた内部のアレイから--ためのNF_PUT_VARM_REAL
、FORTRAN宣言REAL RH ( 4,6 )
(
次元のサイズ、及び、
オーダに
注目する ) :
'netcdf.inc'を含む
... .
PARAMETER (
NDIM=2 ) netCDF変数INTEGER NCIDのランク、netCDF ID INTEGER STATUS、コードINTEGER
RHIDを返す、変数ID INTEGER START ( NDIM ) 、netCDF変数スタートポイントINTEGER COUNT ( NDIM )
、内部のアレイINTEGER STRIDE ( NDIM ) のサイズ、netCDF変数二段抽出間隔INTEGER IMAP ( NDIM )
、内部のアレイインター‐エレメント距離REAL RH ( 6,4 ) 、! netCDF変数次元DATA START
/1の転位に注目する、1/、最初のnetCDF変数エレメントDATA COUNT
/4でスタートする、6/、全体のnetCDF変数;オーダは、一致する、netCDF変数に、--、ない、内部のアレイDATA STRIDE
/1、1/、全てのnetCDFエレメントDATA IMAP /6の見本をとる、1/、/1であろう、4/、もしそうでなければ、置き換える、
状態=
NF_OPEN ( 'foo.nc'、NF_WRITE、NCID ) 、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR (
STATUS ) を呼ぶ、
... .
状態= NF_INQ_VARID ( NCID、` rh '、RHID ) 、かどうか ( STATUS
.NE. NF_NOERR ) 、HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態= NF_PUT_VARM_REAL (
NCID、RHIDは、スタートする、カウントする、ストライド、IMAP、RH ) 、かどうか ( STATUS .NE. NF_NOERR )
、HANDLE_ERR ( STATUS ) を呼ぶ、
ここに使用することの他の例があるnetCDF変数の他の全てのポイントを書くことによる変数を同じnetCDFのサブ‐サンプルに書く--置き換えられた内部のアレイから--ためのNF_PUT_VARM_REAL
:
'netcdf.inc'を含む
...
.
PARAMETER位置づけるのnetCDF変わりやすいINTEGER NCID netCDF dataset ID INTEGER
STATUS戻るコードINTEGER RHID変わりやすいID INTEGER START ( NDIM )
netCDF変わりやすいスタートするポイントINTEGER COUNT ( NDIM ) サイズの内部のアレイINTEGER STRIDE ( NDIM )
netCDF変わりやすい二段抽出間隔INTEGER IMAP ( NDIM ) 内部のアレイエレメント距離REAL RH ( 3,2 )
注目する転位の次元DATA START /1 1/スタートする最初はnetCDF変わりやすい値DATA COUNT /2
3/オーダの次元一致するnetCDF変わりやすい--内部のアレイDATA STRIDE /2 2/サンプル他の全てのnetCDFエレメントDATA IMAP
/3 1/である`1 2'もしそうでなければ置き換える
... .
状態= NF_OPEN ( 'foo.nc'、NF_WRITE、NCID )
、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態=
NF_INQ_VARID ( NCID、` rh '、RHID ) 、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR (
STATUS ) を呼ぶ、
... .
状態= NF_PUT_VARM_REAL (
NCID、RHIDは、スタートする、カウントする、ストライド、IMAP、RH ) 、かどうか ( STATUS .NE. NF_NOERR )
、HANDLE_ERR ( STATUS ) を呼ぶ、
NF_GET_VAR1_タイプ
NF_GET_VAR1_タイプ
、データモードにあるオープンnetCDF
datasetの変数から1つのデータ値を得る。入力は、netCDF
ID、変数ID、どちらの値を得るかを指定するマルチ‐寸法のインデックス、及び、データ値が読み取られるであろうロケーションのアドレスである。もし必要ならば、その値は、外部のデータタイプの変数から変換される。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
インデックス
| そうであるためのデータ値のインデックスは、解釈された。それらのインデックスは、1に関係がある。従って、例えば、二次元の変数の最初のデータ値は、インデックス
( 1,1 )
を持っている。インデックス のエレメントは、変数の次元と一致する。従って、その変数がレコード変数であるならば、最後のインデックスは、レコード番号である。
|
chvalなi1val、i2val、ivalな、rvalな 、もしくは、dvalな 、
| データ値が読み取られるであろうロケーション。あなたは、数値変数からのCHARACTERデータ、及び、キャラクタ変数からの数値データを得ることができない。数値データのために、データのタイプがnetCDF変数タイプと異なるならば、タイプ変換は、発生するであろう。詳細のためにセクション3.3の「タイプ変換」、24ページを見なさい。 |
NF_GET_VAR1_タイプ
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
foo.nc
と指定された現存するnetCDF
datasetにおいてrh
と指定された変数の ( 4,3,2 )
エレメントを得るためにNF_GET_VAR1_DOUBLE
を使う例である。この例における簡素性のために、我々は、我々がrh
がlon
、lat
、及び、時間
によって次元‐される、従って、我々が第4のlon
値、第3のlat
値、及び、第2の時間
値と一致するrh
の値を得ることを望むということを知っていると推測する:
'netcdf.inc'を含む
... .
整数状態、NCID整数RHID、変数ID整数RHINDX ( 3 )
、どこで、値倍精度をRHVALにするか、それをここに置いた、データRHINDX /4、3、2/、
... .
状態= NF_OPEN、 (
'foo.nc'、NF_NOWRITE、NCID ) かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS )
を呼ぶ、
... .
状態= NF_INQ_VARID、 ( NCID、` rh '、RHID ) かどうか ( 状態.NE. NF_NOERR )
HANDLE_ERR ( STATUS ) を状態= NF_GET_VAR1_DOUBLE ( NCID、RHID、RHINDX、RHVAL )
と呼ぶ、かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS ) を呼ぶ、
NF_GET_VAR_タイプ
NF_GET_VAR_タイプ
ファミリーは、オープンnetCDF
datasetのnetCDF変数から全ての値を読み取った。これは、段階状の変数の値を読むために使用するために、最もシンプルなインタフェースである、もしくは、マルチ‐寸法の変数の全ての値がいつあることができるかは、ただちに解釈された。それらの値は、連続したロケーションの中に読み取られる、に関して、最も速く変化する最初の次元。netCDF datasetは、データモードになければならない。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
テキスト、i1vals、i2vals、ivals、rvals、または、dvals
| そうであるためのデータ値のブロックは、読んだ。データは、呼ばれたファンクションに適したタイプであるべきである。あなたは、数値変数からのCHARACTERデータ、及び、テキスト変数からの数値データを読むことができない。数値データのために、データのタイプがnetCDF変数タイプと異なるならば、タイプ変換は、発生するであろう ( 詳細のためにSection 3.3「タイプConversion」、24ページを見なさい ) 。 |
エラー
NF_GET_VAR_タイプ
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
foo.nc
と指定された現存するnetCDF
datasetからrh
と指定された変数の全ての値を読むためにNF_GET_VAR_DOUBLE
を使う例がある。この例における簡素性のために、我々は、我々がrh
がlon
、lat
、及び、時間
によって次元‐されるということを知っているということ、そして、10
lon
値、5 lat
値、及び、3つの時間
値があるということを推測する。
'netcdf.inc'を含む
... .
パラメータ、 ( TIMES=3 , LATS=5 , LONS=10 )
、次元長さ整数状態、NCID整数RHID、変数IDの二重のRHVALS ( LONS、LATS、掛ける ) 、
... .
状態= NF_OPEN、
( 'foo.nc'、NF_NOWRITE、NCID ) かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS )
を呼ぶ、
... .
状態= NF_INQ_VARID、 ( NCID、` rh '、RHID ) かどうか ( 状態.NE. NF_NOERR )
HANDLE_ERR ( STATUS ) を状態= NF_GET_VAR_DOUBLE ( NCID、RHID、RHVALS ) と呼ぶ、かどうか (
状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS ) を呼ぶ、
NF_GET_VARA_タイプ
NF_GET_VARA_タイプ
ファミリーは、オープンnetCDF
datasetのnetCDF変数から一連の値を読み取った。そのアレイは、コーナー、及び、エッジの長さのベクトルを与えることによって指定される。それらの値は、連続したロケーションの中に読み取られる、に関して、最も速く変化する最初の次元。netCDF datasetは、データモードになければならない。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
スタート
| データ値の第1が読まれるであろう変数においてインデックスを指定する整数のベクトル。それらのインデックスは、1に関係がある。従って、例えば、変数の最初のデータ値は、インデックス
( 1、1、...、1 )
を持っているであろう。START の長さは、指定された変数の次元の数と同じでなければならない。START のエレメントは、変数の次元と一致する
( 順番に ) 。従って、その変数がレコード変数であるならば、最後のインデックスは、データ値を読むために起動レコード番号と一致するであろう。
|
カウント
| そうであるためのデータ値のブロックの各次元に沿ってエッジ長さを指定する整数のベクトルは、解釈された。1つの値を読むために、例えば指定する 、〜同じくらい
( 1、1、...、1 )
。COUNT の長さは、指定された変数の次元の数である。COUNT のエレメントは、変数の次元と一致する
( 順番に )
。従って、その変数がレコード変数であるならば、COUNT の最後のエレメントは、読むために、レコードの数のカウントと一致する。
|
テキスト、i1vals、i2vals、ivals、rvals、または、dvals
| そうであるためのデータ値のブロックは、読んだ。データは、呼ばれたファンクションに適したタイプであるべきである。あなたは、数値変数からのCHARACTERデータ、及び、テキスト変数からの数値データを読むことができない。数値データのために、データのタイプがnetCDF変数タイプと異なるならば、タイプ変換は、発生するであろう ( 詳細のためにSection 3.3「タイプConversion」、24ページを見なさい ) 。 |
エラー
NF_GET_VARA_タイプ
値を返すNF_NOERR
エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
NF_GET_VARA_DOUBLE
変数の全ての値を読むことは、foo.nc
と指定された現存するnetCDF
datasetにちなんでrh
を命名した。この例における簡素性のために、我々は、我々がrh
がlon
、lat
、及び、時間
によって次元‐されるということを知っているということ、そして、10
lon
値、5 lat
値、及び、3つの時間
値があるということを推測する。
'netcdf.inc'を含む
... .
パラメータ (
番号をつけるの次元パラメータ次元長さ整数状態NCID整数RHID変わりやすいID整数START ( NDIMS ) COUNT ( NDIMS )
二重のRHVALS ( LONS LATS 〜掛ける〜 ) データスタートする/1 1 1/スタートする最初は値データカウントする/LONS LATS
TIMES/得る〜全て値
... .
状態= NF_OPEN、 ( 'foo.nc'、NF_NOWRITE、NCID ) かどうか ( 状態.NE.
NF_NOERR ) HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態= NF_INQ_VARID、 ( NCID、` rh
'、RHID ) かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS ) を状態= NF_GET_VARA_DOUBLE
( NCID、RHID、スタート、カウント、RHVALS ) と呼ぶ、かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS
) を呼ぶ、
NF_GET_VARS_タイプ
NF_GET_VARS_タイプ
ファミリーは、オープンnetCDF
datasetのnetCDF変数から値のサブ‐見本をとられた ( stridedされる )
アレイセクションを読み取った。サブ‐見本をとられたアレイセクションは、コーナー、エッジの長さのベクトル、及び、ストライドベクトルを与えることによって指定される。それらの値は、読まれる、に関して、最も速く変化するnetCDF変数の最初の次元。netCDF datasetは、データモードになければならない。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
スタート
| データ値の第1がどちらであろうかから変数におけるインデックスを指定する整数のベクトルは、解釈された。それらのインデックスは、1に関係がある。従って、例えば、変数の最初のデータ値は、インデックス
( 1、1、...、1 ) を持っているであろう。START のエレメントは、変数の次元と一致する ( 順番に
) 。従って、その変数がレコード変数であるならば、最後のインデックスは、データ値を読むために起動レコード番号と一致するであろう。
|
カウント
| 各次元に沿って選択されたインデックスの数を指定する整数のベクトル。1つの値を読むために、例えば指定する 、〜同じくらい
( 1、1、...、1 ) 。COUNT のエレメントは、変数の次元と一致する ( 順番に )
。従って、その変数がレコード変数であるならば、COUNT の最後のエレメントは、読むために、レコードの数のカウントと一致する。
|
ストライド
| 各次元のために選択されたインデックス、または、値0 の間で間隔を指定する整数のベクトル。ベクトルのエレメントは、変数の次元と一致する
( 順番に )
。1の値は、一致する寸法でnetCDF変数の隣接の値にアクセスする;2の値は、一致する寸法でnetCDF変数の他の全ての値にアクセスする;従って、オン。0 引数は、扱われる、〜同じくらい
( 1、1、...、1 ) 。
|
テキスト、i1vals、i2vals、ivals、rvals、または、dvals
| そうであるためのデータ値のブロックは、読んだ。データは、呼ばれたファンクションに適したタイプであるべきである。あなたは、数値変数からのCHARACTERデータ、及び、テキスト変数からの数値データを読むことができない。数値データのために、データのタイプがnetCDF変数タイプと異なるならば、タイプ変換は、発生するであろう ( 詳細のためにSection 3.3「タイプConversion」、24ページを見なさい ) 。 |
NF_GET_VARS_タイプ
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
NF_GET_VARS_DOUBLE
変数の各寸法で他の全ての値を読むことは、foo.nc
と指定された現存するnetCDF
datasetにちなんでrh
を命名した。2‐パラメータアレイに、同じ寸法のストライドを使って、値は、割り当てられる。この例における簡素性のために、我々は、我々がrh
がlon
、lat
、及び、時間
によって次元‐されるということを知っているということ、そして、10
lon
値、5 lat
値、及び、3つの時間
値があるということを推測する。
'netcdf.inc'を含む
... .
パラメータ (
番号をつけるの次元パラメータ次元長さ整数状態NCID整数RHID変わりやすいID整数START ( NDIMS ) COUNT ( NDIMS ) STRIDE
( NDIMS ) 二重のDATA ( LONS LATS 〜掛ける〜 ) データスタートする/1 1 1/スタートする最初は値データカウントする/LONS
LATS TIMES/データ大またで歩く/2 2 2/
... .
状態= NF_OPEN、 ( 'foo.nc'、NF_NOWRITE、NCID
) かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態=
NF_INQ_VARID、 ( NCID、` rh '、RHID ) コールHANDLE_ERR ( STATUS ) 状態=
NF_GET_VARS_DOUBLE ( NCID、RHIDがスタートするならば ( 状態.NE. NF_NOERR ) 、カウントする、大またで歩く、DATA
( 1,1,1 ) ) 、かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS ) を呼ぶ、
NF_GET_VARM _
NF_GET_VARM_タイプ
ファミリーは、オープンnetCDF
datasetのnetCDF変数から値のマップされたアレイセクションを読み取る。マップされたアレイセクションは、コーナー、エッジ長さ、aのベクトルを与えることによって指定されるベクトル、及び、ベクトルをマップするインデックスを大またで歩きなさい。ベクトルをマップするインデックスは、netCDF変数の次元、及び、内部のデータアレイの不メモリ構造の間のマッピングを指定する整数のベクトルである。データアレイの次元の注文、及び、長さについて仮定が行われない。netCDF
datasetは、データモードになければならない。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
スタート
| データ値の第1がどちらであろうかから変数におけるインデックスを指定する整数のベクトルは、解釈された。それらのインデックスは、1に関係がある。従って、例えば、変数の最初のデータ値は、インデックス
( 1、1、...、1 ) を持っているであろう。START のエレメントは、変数の次元と一致する ( 順番に
) 。従って、その変数がレコード変数であるならば、最後のインデックスは、データ値を読むために起動レコード番号と一致するであろう。
|
カウント
| 各次元に沿って選択されたインデックスの数を指定する整数のベクトル。1つの値を読むために、例えば指定する 、〜同じくらい
( 1、1、...、1 ) 。COUNT のエレメントは、変数の次元と一致する ( 順番に )
。従って、その変数がレコード変数であるならば、COUNT の最後のエレメントは、読むために、レコードの数のカウントと一致する。
|
ストライド
| 各次元のために選択されたインデックス、または、値0 の間で間隔を指定する整数のベクトル。ベクトルのエレメントは、変数の次元と一致する
( 順番に )
。1の値は、一致する寸法でnetCDF変数の隣接の値にアクセスする;2の値は、一致する寸法でnetCDF変数の他の全ての値にアクセスする;従って、オン。0 引数は、扱われる、〜同じくらい
( 1、1、...、1 ) 。
|
IMAP
| netCDF変数の次元、及び、内部のデータアレイの不メモリ構造の間のマッピングを指定する整数のベクトル。IMAP ( 1 ) は、netCDF変数の最も急速に変化している次元と一致する内部のアレイのエレメントの間で距離を与える。IMAP ( N ) ( どこでNがnetCDF変数のランクであるか ) は、netCDF変数の最もゆっくりと変化している次元と一致する内部のアレイのエレメントの間で距離を与える。介在しているIMAPエレメントは、明白な方法におけるnetCDF変数の他の次元と一致する。エレメントの間の距離は、エレメントのユニットにおいて指定される ( 隣接のメモリロケーションを占める内部のエレメントの間の距離がnetCDF 2と同様にエレメントのバイト‐長さではなく1である ) 。 |
テキスト、i1vals、i2vals、ivals、rvals、または、dvals
| そうであるためのデータ値のブロックは、読んだ。データは、呼ばれたファンクションに適したタイプであるべきである。あなたは、数値変数からのCHARACTERデータ、及び、テキスト変数からの数値データを読むことができない。数値データのために、データのタイプがnetCDF変数タイプと異なるならば、タイプ変換は、発生するであろう ( 詳細のためにSection 3.3「タイプConversion」、24ページを見なさい ) 。 |
NF_GET_VARM_タイプ
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
スタート
カウント
、そして、STRIDE
は、範囲が無い指数を生成する。エラーチェックが可能ではない注意事項、IMAP
ベクトル。
IMAP
ベクトルマップ2x3x4 netCDF変数、及び、内部の一連の同じ形:
REAL A ( 2,3,4 ) 、netCDF変数INTEGER IMAP ( 3
) DATA IMAP /1、2と同じ形、6/、netCDF次元インター‐エレメント距離、
----------------
----------------------、
1最も急速に変化する、中間の、2 ( =IMAP*2 ) 6 ( =IMAP*3 )
最もゆっくりと変化する、
使用する、IMAP
ベクトル、上で、に関して、NF_GET_VARM_REALは、簡単に使用すると同じ結果を獲得するNF_GET_VAR_REALな。
ここに使用することの例がある示されるrh
と指定されたnetCDF変数を置き換えるためのNF_GET_VARM_REAL
、FORTRAN宣言REAL RH ( 4,6 )
(
次元のサイズ、及び、
オーダに
注目する ) :
'netcdf.inc'を含む
... .
PARAMETER (
NDIM=2 ) netCDF変数INTEGER NCIDのランク、netCDF dataset ID INTEGER STATUS、コードINTEGER
RHIDを返す、変数ID INTEGER START ( NDIM ) 、netCDF変数スタートポイントINTEGER COUNT ( NDIM )
、内部のアレイINTEGER STRIDE ( NDIM ) のサイズ、netCDF変数二段抽出間隔INTEGER IMAP ( NDIM )
、内部のアレイインター‐エレメント距離REAL RH ( 6,4 ) 、! netCDF変数次元DATA START
/1の転位に注目する、1/、最初のnetCDF変数エレメントDATA COUNT
/4でスタートする、6/、全体のnetCDF変数;オーダは、一致する、netCDF変数に、--、ない、内部のアレイDATA STRIDE
/1、1/、全てのnetCDFエレメントDATA IMAP /6の見本をとる、1/、/1であろう、4/、もしそうでなければ、置き換える、
...
.
状態= NF_OPEN ( 'foo.nc'、NF_NOWRITE、NCID ) 、かどうか ( STATUS .NE. NF_NOERR )
、HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態= NF_INQ_VARID ( NCID、` rh '、RHID )
、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態=
NF_GET_VARM_REAL ( NCID、RHIDは、スタートする、カウントする、ストライド、IMAP、RH ) 、かどうか ( STATUS .NE.
NF_NOERR ) 、HANDLE_ERR ( STATUS ) を呼ぶ、
ここに使用することの他の例がある同時にnetCDF変数の他の全てのポイントにアクセスすることによる同じnetCDF変数を置き換えて、サブ‐見本をとるためのNF_GET_VARM_REAL
:
'netcdf.inc'を含む
...
.
PARAMETER位置づけるのnetCDF変わりやすいINTEGER NCID netCDF dataset ID INTEGER
STATUS戻るコードINTEGER RHID変わりやすいID INTEGER START ( NDIM )
netCDF変わりやすいスタートするポイントINTEGER COUNT ( NDIM ) サイズの内部のアレイINTEGER STRIDE ( NDIM )
netCDF変わりやすい二段抽出間隔INTEGER IMAP ( NDIM ) 内部のアレイエレメント距離REAL RH ( 3,2 )
注目する転位の次元DATA START /1 1/スタートする最初はnetCDF変わりやすい値DATA COUNT /2
3/オーダの次元一致するnetCDF変わりやすい--内部のアレイDATA STRIDE /2 2/サンプル他の全てのnetCDFエレメントDATA IMAP
/3 1/である`1 2'もしそうでなければ置き換える
... .
状態= NF_OPEN ( 'foo.nc'、NF_NOWRITE、NCID )
、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態=
NF_INQ_VARID ( NCID、` rh '、RHID ) 、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR (
STATUS ) を呼ぶ、
... .
状態= NF_GET_VARM_REAL (
NCID、RHIDは、スタートする、カウントする、ストライド、IMAP、RH ) 、かどうか ( STATUS .NE. NF_NOERR )
、HANDLE_ERR ( STATUS ) を呼ぶ、
それらのストリングがアクセスのための1つのユニットのように扱われるので、属性の値としてのキャラクタストリングは、更に使い易い。しかしながら、キャラクタ‐ストリング属性の値は、まだ一連のその属性が定義されるとき、指定されなければならない明白な長さを持つキャラクタである。
あなたがキャラクタ‐ストリングを持つであろう変数を定義するとき、値は、変数 ( のためにキャラクタ‐ポジション次元を最も迅速に変化している次元として使う、変数のための最初の次元、で、FORTRAN ) .キャラクタ‐ポジション次元の長さは、キャラクタ‐ストリング変数に格納されるために、あらゆる値の最大のストリング長さであろう。あなたがスペースを使うか否かに拘らず、最大‐長さストリングのためのスペースは、キャラクタ‐ストリング変数のディスク表現に割当てられるであろう。2以上の変数が同じ最大の長さを持っているならば、同じキャラクタ‐ポジション次元は、変数形を定義する際使われるかもしれない。
キャラクタ‐ストリング変数にキャラクタ‐ストリング値を書くために、全体の変数アクセスかアレイアクセスのいずれかを使いなさい。後者は、あなたがコーナー及びエッジの長さのベクトルを指定することを必要とする。コーナーのキャラクタ‐ポジション次元は、そうであるべきである1つ、のために、FORTRAN
.書かれるためのストリングの長さがn
であるならば、それから、エッジの長さのベクトルは、キャラクタ‐ポジション次元、及び、他の全ての次元のためのものにおいてn
を指定するであろう: ( n、1、1、...、1 )
。
スペースをセーブするために、FORTRANにおいて、固定長ストリングは、終了しているキャラクタなしのnetCDF datasetに書かれるかもしれない。可変長ストリングは、それがCかFORTRANプログラムのいずれかによって後で読まれるとき、ストリングの意図した長さが決定され得るように、終了しているゼロのバイトによってストリングを書くことのC因習を理解するべきである。
ストリングを読んで、書くためのFORTRANインタフェースは、ストリング値、及び、数値にアクセスするために異なるファンクションの使用を必要とする。なぜなら、標準のFORTRANによって同じ正式のパラメータはキャラクタ値と、数値の両方のために使われることが可能にならないからだ。値として通されたキャラクタストリングの宣言した長さを指定する追加の引数がNF_PUT_VARA_TEXT
、及び、NF_GET_VARA_TEXT
のために必要とされる。ストリングの現実の長さは、キャラクタ‐ポジション次元と一致するエッジ‐長さベクトルの値として指定される。
ここにキャラクタストリングのためにレコード変数、tx
を定義し、そして、キャラクタ‐ストリング値をNF_PUT_VARA_TEXT
を使う第3のレコードに格納する例がある。この例において、我々は、ストリングを変数であるとみなし、そして、データは、既に無制限のレコード次元時
を過ごすfoo.nc
と指定された現存するnetCDF
datasetに加えられるべきである。
'netcdf.inc'を含む
... .
整数TDIMS
TXLENパラメータ番号をつけるのTX次元パラメータ長さの例ストリング整数NCID整数叱る焦がすポジション次元ID整数TIMEIDレコード次元ID整数TXID変わりやすいID整数TXDIMS
( TDIMS ) 変わりやすい形整数TSTART ( TDIMS ) TCOUNT ( TDIMS ) CHARACTER0 TXVAL
max長さ40データTXVAL /'example string'/
... .
TXVAL ( TXLEN:TXLEN ) = CHAR ( 0
) 、ヌル、終了する、
... .
状態= NF_OPEN ( 'foo.nc'、NF_WRITE、NCID ) 、かどうか ( STATUS
.NE. NF_NOERR ) 、HANDLE_ERR ( STATUS ) を状態= NF_REDEF ( NCID )
と呼ぶ、入る、モードを定義する、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR ( STATUS ) を呼ぶ、
...
.
!「叱られた」max長さ40 STATUS = NF_DEF_DIM (
NCIDのストリング、40のためにキャラクタ‐ポジション次元を定義する、CHID ) IF ( STATUS .NE. NF_NOERR ) CALL
HANDLE_ERR ( STATUS ) 、
... .
!叱られたキャラクタ‐ストリング変数TXDIMS ( 1 )
=を定義する、キャラクタ‐ポジション次元最初のTXDIMS ( 2 ) = TIMEID状態= NF_DEF_VAR (
NCID、「tx」、NF_CHAR、TDIMS、TXDIMS、TXID ) 、かどうか ( STATUS .NE. NF_NOERR ) 、HANDLE_ERR
( STATUS ) を呼ぶ、
... .
状態= NF_ENDDEF ( NCID ) 、離れる、モードを定義する、かどうか ( 状態.NE.
NF_NOERR ) HANDLE_ERR ( STATUS ) を呼ぶ、
... .
!書く、レコードにおけるtx
netCDF変数にtxvalな、3 TSTART ( 1 ) = 0、変数TSTART ( 2 ) =
3の初めにスタートする、書くための数を記録する、TCOUNT ( 1 ) = TXLEN、書くための木炭の数、TCOUNT ( 2 ) =
1、ただ1レコードSTATUS =を書く、NF_PUT_VARA_TEXT、 (
NCID、TXID、TSTART、TCOUNT、TXVAL、40 ) かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS
) を呼ぶ、
あなた、無視する、値を満たす、そして、全体の範囲のnetCDFを使う、外部のデータは、タイプする。しかし、この場合、あなたは、あなたが前のそれらを読む全てのデータ値を書くことを確認するべきである。あなたがそれを読む前にデータ全てを書いているであろうということを知っているならば、あなたは、フィル値を持つ変数の前‐充填が呼出しによって発生しないであろうことを明示し得るNF_SET_FILL
記述の前に。これは、netCDFのための有意のパフォーマンス利得が書くことを規定するかもしれない。
変数属性の_FillValue
は、変数のためにフィル値を指定するために使われるかもしれない。それらの、である、定義されて、各タイプのためにフィル値を履行しない、で、ファイルを含む、netcdf.inc
:NF_FILL_CHAR
NF_FILL_INT1
( 同じである、〜同じくらい、NF_FILL_BYTE
) ,NF_FILL_INT2
( 同じである、〜同じくらい、NF_FILL_SHORT
) ,NF_FILL_INT
NF_FILL_REALな
( 同じである、〜同じくらい、NF_FILL_FLOAT
) 、そして、NF_FILL_DOUBLE
。
netCDFバイト、そして、キャラクタタイプは、異なるデフォルトを持っている、値を満たす。キャラクタのためのデフォルトフィル値は、ゼロのバイト、可変長Cキャラクタストリングのエンドを検出するための有益な値である。あなたが1バイト変数のためにフィル値を必要とするならば、ncdump
のような一般的なユーティリティがバイト変数のためにデフォルトフィルを値であるとみなさないであろうので、あなたが適切な_FillValue
属性を明白に定義するということが勧められている。
フィル値のためのタイプ変換は、他の値のために変換をタイプするために、同じである:1つのタイプから値を表すことができない他のタイプまで値を変換しようと試みることは、範囲エラーに帰着する。そのようなエラーは、更に大きいタイプ ( ダブルのような ) から更に小さいタイプ ( フロートのような ) まで値を書く、もしくは読むと発生するかもしれない、かどうか、いっぱいになる、更に大きいタイプのための値は、更に小さいタイプの代表を務め得ない。
NF_RENAME_VAR
NF_RENAME_VAR
オープンnetCDF
datasetにおいてnetCDF変数の名前を変える。新しい名前が古い名前より長いならば、netCDF
datasetは、中になければならない、モードを定義する。あなたは、あらゆる現存する変数の名前を持つために、変数を改名し得ない。
NCID
| 前のコールからNF_OPEN 、または、NF_CREATE までのNetCDF ID。
|
VARID
| 変数ID。 |
NEWNAM
| 指定された変数のための新しい名前。 |
NF_RENAME_VAR
値を返すNF_NOERR
、エラーが発生しなかったならば。他の場合は、返された状態は、エラーを示す。エラーの可能な原因は、以下を含む。
NF_RENAME_VAR
変数rh
を改名するために、現存するnetCDFにおけるrel_hum
に、datasetは、foo.nc
を指定した:
'netcdf.inc'を含む
...
.
整数状態、NCID整数RHID、変数ID、
... .
状態= NF_OPEN、 ( 'foo.nc'、NF_WRITE、NCID )
かどうか ( 状態.NE. NF_NOERR ) HANDLE_ERR ( STATUS ) を呼ぶ、
... .
状態= NF_REDEF (
NCID ) 、定義モードを入力する、かどうか、 ( 状態.NE。NF_NOERR ) は、HANDLE_ERR ( STATUS ) を状態=
NF_INQ_VARID ( NCID , rh , RHID ) と呼ぶ、かどうか ( STATUS .NE. NF_NOERR )
、コールHANDLE_ERR ( STATUS ) 状態= NF_RENAME_VAR ( NCID , RHID , 'rel_hum' ) 、かどうか (
STATUS .NE. NF_NOERR ) 、コールHANDLE_ERR ( STATUS ) 状態= NF_ENDDEF ( NCID )
、モードを定義に残す、かどうか ( STATUS .NE. NF_NOERR ) 、コールHANDLE_ERR ( STATUS ) 、