This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hi Ellen, I just committed a fix for this problem on GitHub, so you could get the latest sources there and build from them. Here's the diffs: https://github.com/Unidata/netcdf-c/commit/67ad8d89a83d13a63a214157b94c2caae9edb7f4 and you'll see your fine test case added to the nc_test directory. If you build with autoconf tools, you'll need to generate the configure script from the GitHub snapshot by running "autoconf -if" first. It turns out that we don't have very good test coverage for writing and reading record variables that have the unlimited dimension in a position other than the first, so you may encounter other similar bugs with mapped access or even strided reads. If so, please let us know! Thanks for reporting the bug! --Russ > address@hidden> wrote: > > > New Client Reply: possible bug in 4.3.3.1 with unlimited dimensions in > > NetCDF-4 format? > > > > Hi Ward, > > Thank you for letting me know the status. I'm trying to figure out a > > workaround, as I'm really hoping to upgrade to your latest NetCDF version > > (the version we currently have is 4.1.3). > > If you know of a workaround, or if you think a patch might be issued, > > please let me know. > > Thank you! > > ellen > > > > -----Original Message----- > > From: Unidata netCDF Support [mailto:address@hidden] > > Sent: Thursday, March 05, 2015 1:26 PM > > To: Ellen Johnson > > Cc: address@hidden > > Subject: [netCDF #QCX-463169]: possible bug in 4.3.3.1 with unlimited > > dimensions in NetCDF-4 format? > > > > Hello Ellen, > > > > Thank you very much for the test program! I've duplicated your error, and > > am currently working on narrowing down when the bug was introduced. I've > > created a ticket in our JIRA system, which can be viewed at > > https://bugtracking.unidata.ucar.edu/browse/NCF-326, if you are > > interested. > > > > I will follow up with you once we know more, thanks again! > > > > -Ward > > > > > > > Hello, > > > > > > I just upgraded from NetCDF 4.1.3 to NetCDF 4.3.3.1 and am seeing a > > > problem in our regression test when writing unlimited dimensions to a > > > NetCDF-4 format file. Specifically, if the unlimited dimension is > > > last instead of the first in the dimension list, or if I declare more > > > than one unlimited dimension, the program errors with the NC_EEDGE error: > > > > > > Error: NetCDF: Start+count exceeds dimension bound > > > > > > This does not occur in our current NetCDF version 4.1.3. > > > > > > To isolate the issue, I built NetCDF 4.3.3.1 outside of our build > > > infrastructure and wrote a standalone C program to write to a NetCDF-4 > > > file, so I am bypassing MATLAB completely. > > > > > > Can you please help me determine if this is a bug in the NetCDF code, > > > specifically in dvarput.c? > > > > > > Below is the standalone C program that will throw the error above when > > > > > > Thank you! > > > > > > Ellen Johnson > > > Software Engineer > > > Image and Scientific File Formats > > > MathWorks > > > > > > > > > > > > #include <stdio.h> > > > #include <string.h> > > > #include <netcdf.h> > > > > > > #define FILE_NAME "unlim.nc" > > > > > > /* 3D matrix, 6 x 4 x 3 */ > > > > > > #define NDIMS 3 > > > #define X_LEN 6 > > > #define Y_LEN 4 > > > #define Z_LEN 3 > > > > > > /* Handle errors by printing an error message */ > > > > > > #define ERR(e) {printf("Error: %s\n", nc_strerror(e)); return 2;} > > > > > > int > > > main() > > > > > > { > > > size_t start[NDIMS] = {0, 0, 0}; > > > size_t count[NDIMS] = {X_LEN, Y_LEN, Z_LEN}; ptrdiff_t stride[NDIMS] = > > > {1, 1, 1}; float mydata[X_LEN * Y_LEN * Z_LEN]; int i; int retval; > > > > > > int ncid, varid; > > > int dimids[NDIMS]; > > > > > > for (i = 0; i < (X_LEN * Y_LEN * Z_LEN); i++) mydata[i] = i; > > > > > > > > > /* create the file in NetCDF-4 format */ if ((retval = > > > nc_create(FILE_NAME, NC_NETCDF4, &ncid))) ERR(retval); > > > > > > > > > /* define dimensions */ > > > if ((retval = nc_def_dim(ncid, "time", X_LEN, &dimids[0]))) > > > ERR(retval); > > > > > > if ((retval = nc_def_dim(ncid, "lat", Y_LEN, &dimids[1]))) > > > ERR(retval); > > > > > > if ((retval = nc_def_dim(ncid, "lon", NC_UNLIMITED, &dimids[2]))) > > > ERR(retval); > > > > > > /* define the variable */ > > > if ((retval = nc_def_var(ncid, "data", NC_FLOAT, NDIMS, dimids, > > > &varid))) ERR(retval); > > > > > > > > > /* end define mode */ > > > if ((retval = nc_enddef(ncid))) > > > ERR(retval); > > > > > > > > > /* write data */ > > > if ((retval = nc_put_vars_float(ncid, varid, start, count, stride, > > > mydata))) > > > ERR(retval); > > > > > > > > > /* close the file */ > > > if ((retval = nc_close(ncid))) > > > ERR(retval); > > > > > > printf("\n\n*** SUCCESS writing example file %s!\n", FILE_NAME); > > > > > > return 0; > > > > > > } > > > > > > > Ticket Details > > =================== > > Ticket ID: QCX-463169 > > Department: Support netCDF > > Priority: Normal > > Status: Closed > > > > > > > > Ticket Details > > =================== > > Ticket ID: QCX-463169 > > Department: Support netCDF > > Priority: Normal > > Status: Open > > Link: > > https://www.unidata.ucar.edu/esupport/staff/index.php?_m=tickets&_a=viewticket&ticketid=25271 > > > > > > Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu Ticket Details =================== Ticket ID: QCX-463169 Department: Support netCDF Priority: Normal Status: Closed