TOC PREV NEXT INDEX

Put your logo here!


新しいCインターフェース


まず最初にNetCDF-2インターフェースを使ったCコードの例です。

void *bufferp;
nc_type xtype;
ncvarinq(ncid, varid, , &xtype,

/* 次元と型に応じて bufferp を配置 */

if (ncvarget(ncid, varid, start, count, bufferp) == -1) {
fprintf(stderr, "Can’t get data, error code = %d\n",ncerr);
/* 対応する */

}
switch(xtype) {
/* 型別にデータを扱う */

case NC_FLOAT:
fanalyze((float *)bufferp);
break;
case NC_DOUBLE:
danalyze((double *)bufferp);
break;
}

同じことを新しいNetCDF-3のCインターフェースを使って扱うとこのようになります。

/*
* 解析に倍精度を使用したい
*/
double dbuf[NDOUBLES];
int status;

/* よって、データを倍精度として取得する関数を使用する*/
status = nc_get_vara_double(ncid, varid, start, count, dbuf)
if (status != NC_NOERR) {
fprintf(stderr, "Can’t get data: %s\n", nc_strerror(status));
/* 対応する */

}
danalyze(dbuf);

上の例は関数の名前、データ型の変換、エラーの取り扱い等における変更を表わしています。詳細については後述してあります。



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX