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.
>To: address@hidden >From: Igor Pesenson <address@hidden> >Subject: Re: 20030203: subject >Organization: Lawrence Berkeley National Laboratory >Keywords: 200302031956.h13Ju0623075 Igor, Here's a reply to your second question: > 2) We are using a rather awkward qc flag that is 15 binary characters > long. For example: 000010000000000. So I'm assuming I have to use string > values since otherwise the leading zeros would be truncated. But I'm > getting confused as to correct notation for this. Currently, my code is: > > //...create file, declare other attributes, etc... > nc_status=nc_def_var(ncid,"warn_flag",NC_CHAR,1,&idimid,&ivarid[31]); > //...some time later... > nc_status=nc_put_var1_text(ncid,ivarid[31],&rh_index,&warn_flag); > > What I'd like to see is: > warn_flag = 00001000000000000, 000000000100000, etc... > > What I get is : > warn_flag = > "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 > > 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 > > 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 > > 00000000000000000000000000000000000000000000000000000000000000000000" ; > > I've tried several different ways of doing this, but can't quite get it. > Any advice would be much appreciated. If you make warn_flag a 2-dimensional variable instead of 1-dimensional, I think you will get what you want. For example, if I use the CDL file: netcdf igor2{ dimensions: nwarnings = 5; warn_len = 15; variables: char warn_flag(nwarnings,warn_len); data: warn_flag = "000010000000000", "000000000100000", "100000000000000", "000000000000001", "000000000010000"; } to generate a netCDF file using "ncgen -b igor2.cdl", then invoke ncdump on the resulting netCDF file, I get: $ ncdump igor2.nc netcdf igor2 { dimensions: nwarnings = 5 ; warn_len = 15 ; variables: char warn_flag(nwarnings, warn_len) ; data: warn_flag = "000010000000000", "000000000100000", "100000000000000", "000000000000001", "000000000010000" ; } --Russ _____________________________________________________________________ Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu