NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hello all, I am trying to write a large file by combining multiple files. When I try to write data (type short) greater than 4GB to a file, I get the following error *"ncx.c:1810: ncx_put_size_t: Assertion `*ulp <= 4294967295U' failed." *I was wondering if this is an issue with my code or if it is a known and resolved issue or even if there is a workaround? Appreciate any help! Cheers. Code : ........... short data[1490][1636][1720]; int NX=1720, NY=1636, NZ=1490; for (k=1; k<=2; k++) { sprintf(name,"test%d.nc",k); nc_open(name, NC_NOWRITE, &ncid); if (nc_inq_ndims(ncid,&ndims) != NC_NOERR) printf("Another error"); size_t dim_siz[ndims]; printf("The file has %d dimensions\n",ndims); for (dim =0; dim < ndims; dim++) { nc_inq_dim(ncid, dim, dim_name, &dim_siz[dim]); printf("Name of dimension %d is %s\n",dim, dim_name); printf("Size of dimension %d is %d\n",dim, dim_siz[dim]); } int varid; if (nc_inq_varid(ncid, "segmented", &varid) != NC_NOERR) printf("Error 1"); if (nc_get_var_short(ncid, varid, &data[745*(k-1)) != NC_NOERR) printf("Error 2"); nc_close(ncid); } printf("Done reading data\n"); if(retval=nc_create(FILE_NAME, NC_CLOBBER | NC_64BIT_OFFSET, &ncid2)) ERR(retval); if ((retval = nc_def_dim(ncid, "x", NX, &x_dimid))) ERR(retval); if ((retval = nc_def_dim(ncid, "y", NY, &y_dimid))) ERR(retval); if ((retval = nc_def_dim(ncid, "z", NZ, &z_dimid))) ERR(retval); dimids[0] = x_dimid; dimids[1] = y_dimid; dimids[2] = z_dimid; if ((retval = nc_def_var(ncid, "segmented", NC_SHORT, 3, dimids, &varid))) ERR(retval); if ((retval = nc_enddef(ncid))) ERR(retval); if ((retval = nc_put_var_short(ncid, varid, &data[0][0][0]))) ERR(retval); if ((retval = nc_close(ncid))) ERR(retval); printf("*** SUCCESS writing example file simple_xy.nc!\n"); return 0; }
netcdfgroup
archives: