Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
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: