15#include "nc4internal.h"
16#include "nc4dispatch.h"
33NC4_inq_unlimdim(
int ncid,
int *unlimdimidp)
35 NC_GRP_INFO_T *grp, *g;
41 LOG((2,
"%s: called", __func__));
43 if ((retval = nc4_find_grp_h5(ncid, &grp, &h5)))
52 for (g = grp; g && !found; g = g->parent)
54 for(
size_t i=0;i<ncindexsize(grp->dim);i++)
56 dim = (NC_DIM_INFO_T*)ncindexith(grp->dim,i);
57 if(dim == NULL)
continue;
60 *unlimdimidp = dim->hdr.id;
85NC4_inq_dimid(
int ncid,
const char *name,
int *idp)
88 NC_GRP_INFO_T *grp = NULL;
89 NC_GRP_INFO_T *g = NULL;
90 NC_FILE_INFO_T *h5 = NULL;
91 NC_DIM_INFO_T *dim = NULL;
96 LOG((2,
"%s: ncid 0x%x name %s", __func__, ncid, name));
105 if (name[0] !=
'/' && strstr(name,
"/"))
109 if ((retval = nc4_find_nc_grp_h5(ncid, &nc, &grp, &h5)))
111 assert(h5 && nc && grp);
114 if ((retval = nc4_normalize_name(name, norm_name)))
120 int rootncid = (grp->nc4_info->root_grp->hdr.id | grp->nc4_info->controller->ext_ncid);
122 char* lastname = strrchr(norm_name,
'/');
123 if(lastname == norm_name)
126 if((retval = NC4_inq_grp_full_ncid(rootncid,norm_name,&parent)))
129 if((retval=nc4_find_nc4_grp(parent,&grp)))
132 dim = (NC_DIM_INFO_T*)ncindexlookup(grp->dim,lastname);
140 for (g = grp; g ; g = g->parent) {
141 dim = (NC_DIM_INFO_T*)ncindexlookup(g->dim,norm_name);
142 if(dim != NULL) {found = 1;
break;}
172NC4_inq_unlimdims(
int ncid,
int *nunlimdimsp,
int *unlimdimidsp)
181 LOG((2,
"%s: ncid 0x%x", __func__, ncid));
184 if ((retval = nc4_find_nc_grp_h5(ncid, &nc, &grp, &h5)))
186 assert(h5 && nc && grp);
191 for(
size_t i=0;i<ncindexsize(grp->dim);i++)
193 dim = (NC_DIM_INFO_T*)ncindexith(grp->dim,i);
194 if(dim == NULL)
continue;
198 unlimdimidsp[num_unlim] = dim->hdr.id;
206 *nunlimdimsp = num_unlim;
#define NC_EBADTYPE
Not a netcdf data type.
#define NC_EINVAL
Invalid Argument.
#define NC_MAX_NAME
Maximum for classic library.
#define NC_NOERR
No Error.
#define NC_EBADDIM
Invalid dimension id or name.