📄 v2i.c
字号:
int ncid, int dimid, const char* name){ const int status = nc_rename_dim(ncid, dimid, name); if(status != NC_NOERR) { nc_advise("ncdimrename", status, "ncid %d", ncid); return -1; } return dimid;}intncvardef( int ncid, const char* name, nc_type datatype, int ndims, const int* dim){ int varid = -1; const int status = nc_def_var(ncid, name, datatype, ndims, dim, &varid); if(status != NC_NOERR) { nc_advise("ncvardef", status, "ncid %d", ncid); return -1; } return varid;}intncvarid( int ncid, const char* name){ int varid = -1; const int status = nc_inq_varid(ncid, name, &varid); if(status != NC_NOERR) { nc_advise("ncvarid", status, "ncid %d", ncid); return -1; } return varid;}intncvarinq( int ncid, int varid, char* name, nc_type* datatype, int* ndims, int* dim, int* natts){ int nd, na; const int status = nc_inq_var(ncid, varid, name, datatype, &nd, dim, &na); if(status != NC_NOERR) { nc_advise("ncvarinq", status, "ncid %d", ncid); return -1; } /* else */ if(ndims != NULL) *ndims = (int) nd; if(natts != NULL) *natts = (int) na; return varid;}intncvarput1( int ncid, int varid, const long* index, const void* value){ NDIMS_DECL A_DECL(coordp, size_t, ndims, index); A_INIT(coordp, size_t, ndims, index); { const int status = nc_put_var1(ncid, varid, coordp, value); A_FREE(coordp); if(status != NC_NOERR) { nc_advise("ncvarput1", status, "ncid %d", ncid); return -1; } } return 0;}intncvarget1( int ncid, int varid, const long* index, void* value){ NDIMS_DECL A_DECL(coordp, size_t, ndims, index); A_INIT(coordp, size_t, ndims, index); { const int status = nc_get_var1(ncid, varid, coordp, value); A_FREE(coordp); if(status != NC_NOERR) { nc_advise("ncdimid", status, "ncid %d", ncid); return -1; } } return 0;}intncvarput( int ncid, int varid, const long* start, const long* count, const void* value){ NDIMS_DECL A_DECL(stp, size_t, ndims, start); A_DECL(cntp, size_t, ndims, count); A_INIT(stp, size_t, ndims, start); A_INIT(cntp, size_t, ndims, count); { const int status = nc_put_vara(ncid, varid, stp, cntp, value); A_FREE(cntp); A_FREE(stp); if(status != NC_NOERR) { nc_advise("ncvarput", status, "ncid %d", ncid); return -1; } } return 0;}intncvarget( int ncid, int varid, const long* start, const long* count, void* value){ NDIMS_DECL A_DECL(stp, size_t, ndims, start); A_DECL(cntp, size_t, ndims, count); A_INIT(stp, size_t, ndims, start); A_INIT(cntp, size_t, ndims, count); { const int status = nc_get_vara(ncid, varid, stp, cntp, value); A_FREE(cntp); A_FREE(stp); if(status != NC_NOERR) { nc_advise("ncvarget", status, "ncid %d; varid %d", ncid, varid); return -1; } } return 0;}intncvarputs( int ncid, int varid, const long* start, const long* count, const long* stride, const void* value){ if(stride == NULL) return ncvarput(ncid, varid, start, count, value); /* else */ { NDIMS_DECL A_DECL(stp, size_t, ndims, start); A_DECL(cntp, size_t, ndims, count); A_DECL(strdp, ptrdiff_t, ndims, stride); A_INIT(stp, size_t, ndims, start); A_INIT(cntp, size_t, ndims, count); A_INIT(strdp, ptrdiff_t, ndims, stride); { const int status = nc_put_vars(ncid, varid, stp, cntp, strdp, value); A_FREE(strdp); A_FREE(cntp); A_FREE(stp); if(status != NC_NOERR) { nc_advise("ncvarputs", status, "ncid %d", ncid); return -1; } } return 0; }}intncvargets( int ncid, int varid, const long* start, const long* count, const long* stride, void* value){ if(stride == NULL) return ncvarget(ncid, varid, start, count, value); /* else */ { NDIMS_DECL A_DECL(stp, size_t, ndims, start); A_DECL(cntp, size_t, ndims, count); A_DECL(strdp, ptrdiff_t, ndims, stride); A_INIT(stp, size_t, ndims, start); A_INIT(cntp, size_t, ndims, count); A_INIT(strdp, ptrdiff_t, ndims, stride); { const int status = nc_get_vars(ncid, varid, stp, cntp, strdp, value); A_FREE(strdp); A_FREE(cntp); A_FREE(stp); if(status != NC_NOERR) { nc_advise("ncvargets", status, "ncid %d", ncid); return -1; } } return 0; }}intncvarputg( int ncid, int varid, const long* start, const long* count, const long* stride, const long* map, const void* value){ if(map == NULL) return ncvarputs(ncid, varid, start, count, stride, value); /* else */ { NDIMS_DECL A_DECL(stp, size_t, ndims, start); A_DECL(cntp, size_t, ndims, count); A_DECL(strdp, ptrdiff_t, ndims, stride); A_DECL(imp, ptrdiff_t, ndims, map); A_INIT(stp, size_t, ndims, start); A_INIT(cntp, size_t, ndims, count); A_INIT(strdp, ptrdiff_t, ndims, stride); A_INIT(imp, ptrdiff_t, ndims, map); { const int status = nc_put_varm(ncid, varid, stp, cntp, strdp, imp, value); A_FREE(imp); A_FREE(strdp); A_FREE(cntp); A_FREE(stp); if(status != NC_NOERR) { nc_advise("ncvarputg", status, "ncid %d", ncid); return -1; } } return 0; }}intncvargetg( int ncid, int varid, const long* start, const long* count, const long* stride, const long* map, void* value){ if(map == NULL) return ncvargets(ncid, varid, start, count, stride, value); /* else */ { NDIMS_DECL A_DECL(stp, size_t, ndims, start); A_DECL(cntp, size_t, ndims, count); A_DECL(strdp, ptrdiff_t, ndims, stride); A_DECL(imp, ptrdiff_t, ndims, map); A_INIT(stp, size_t, ndims, start); A_INIT(cntp, size_t, ndims, count); A_INIT(strdp, ptrdiff_t, ndims, stride); A_INIT(imp, ptrdiff_t, ndims, map); { const int status = nc_get_varm(ncid, varid, stp, cntp, strdp, imp, value); A_FREE(imp); A_FREE(strdp); A_FREE(cntp); A_FREE(stp); if(status != NC_NOERR) { nc_advise("ncvargetg", status, "ncid %d", ncid); return -1; } } return 0; }}intncvarrename( int ncid, int varid, const char* name){ const int status = nc_rename_var(ncid, varid, name); if(status != NC_NOERR) { nc_advise("ncvarrename", status, "ncid %d", ncid); return -1; } return varid;}intncattput( int ncid, int varid, const char* name, nc_type datatype, int len, const void* value){ const int status = nc_put_att(ncid, varid, name, datatype, len, value); if(status != NC_NOERR) { nc_advise("ncattput", status, "ncid %d", ncid); return -1; } return 0;}intncattinq( int ncid, int varid, const char* name, nc_type* datatype, int* len){ size_t ll; const int status = nc_inq_att(ncid, varid, name, datatype, &ll); if(status != NC_NOERR) { nc_advise("ncattinq", status, "ncid %d; varid %d; attname \"%s\"", ncid, varid, name); return -1; } if(len != NULL) *len = (int) ll; return 1;}intncattget( int ncid, int varid, const char* name, void* value){ const int status = nc_get_att(ncid, varid, name, value); if(status != NC_NOERR) { nc_advise("ncattget", status, "ncid %d", ncid); return -1; } return 1;}intncattcopy( int ncid_in, int varid_in, const char* name, int ncid_out, int varid_out){ const int status = nc_copy_att(ncid_in, varid_in, name, ncid_out, varid_out); if(status != NC_NOERR) { nc_advise("ncattcopy", status, "%s", name); return -1; } return 0;}intncattname( int ncid, int varid, int attnum, char* name){ const int status = nc_inq_attname(ncid, varid, attnum, name); if(status != NC_NOERR) { nc_advise("ncattname", status, "ncid %d", ncid); return -1; } return attnum;}intncattrename( int ncid, int varid, const char* name, const char* newname){ const int status = nc_rename_att(ncid, varid, name, newname); if(status != NC_NOERR) { nc_advise("ncattrename", status, "ncid %d", ncid); return -1; } return 1;}intncattdel( int ncid, int varid, const char* name){ const int status = nc_del_att(ncid, varid, name); if(status != NC_NOERR) { nc_advise("ncattdel", status, "ncid %d", ncid); return -1; } return 1;}#endif /* NO_NETCDF_2 */#ifndef NO_NETCDF_2intncsetfill( int ncid, int fillmode){ int oldmode = -1; const int status = nc_set_fill(ncid, fillmode, &oldmode); if(status != NC_NOERR) { nc_advise("ncsetfill", status, "ncid %d", ncid); return -1; } return oldmode;}intncrecinq( int ncid, int* nrecvars, int* recvarids, long* recsizes){ size_t nrv = 0; size_t rs[NC_MAX_VARS]; /* TODO */ const int status = nc_inq_rec(ncid, &nrv, recvarids, rs); if(status != NC_NOERR) { nc_advise("ncrecinq", status, "ncid %d", ncid); return -1; } if(nrecvars != NULL) *nrecvars = (int) nrv; if(recsizes != NULL) { size_t ii; for(ii = 0; ii < nrv; ii++) { recsizes[ii] = (long) rs[ii]; } } return (int) nrv;}intncrecget( int ncid, long recnum, void** datap){ const int status = nc_get_rec(ncid, (size_t)recnum, datap); if(status != NC_NOERR) { nc_advise("ncrecget", status, "ncid %d", ncid); return -1; } return 0;}intncrecput( int ncid, long recnum, void* const* datap){ const int status = nc_put_rec(ncid, (size_t)recnum, datap); if(status != NC_NOERR) { nc_advise("ncrecput", status, "ncid %d", ncid); return -1; } return 0;}#endif /* NO_NETCDF_2 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -