[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDF #WLR-457355]: putting in strings in netcdf 4.01
- Subject: [netCDF #WLR-457355]: putting in strings in netcdf 4.01
- Date: Wed, 24 Feb 2010 14:47:55 -0700
> I am using c++
There is a small C++ example in the netCDF sources, in cxx/nctst.cpp,
which has an example of defining a netCDF variable of type ncChar and
writing a string into it, with the statement:
reftime->put(s, strlen(s));
Here reftime is the variable and s is the string, really an array of
char. The netCDF-3 C++ API you are presumably using was written in the
early 90's before exceptions, templates, and STL were made part of the
C++ standard, so those it may seem primitive. It provides no support
for C++ Strings, just C-style char arrays. Because the data also must
be accessible to Fortran-77 programs, fixed-size char arrays are used
rather than real strings, and you have to provide lengths rather than
null termination, as in the call to strlen(s) above.
The netCDF-4 data model and interface, on the other hand, supports an
actual netCDF string type that corresponds to variable-length strings.
But netCDF-4 files written using variable-length strings are not
recognized by netCDF-3 programs, so you would have a compatibility
problem if you chose to use them.
There is a very new and experimental modern C++ interface for netCDF-4
included in the post-4.1 snapshot releases of netCDF, contributed by
Lynton Appel of the Culham Centre for Fusion Energy in the UK. I believe
it also supports creating and writing netCDF-3 files, but I haven't yet
had much chance to work with it and understand all its capabilities.
--Russ
string type
> address@hidden> wrote:
>
> > Hi Richard,
> >
> > > I am trying to put in strings into a netcdf file and I am having
> > problems.
> > > I have download the examples and the documentation and nothing is working
> > at
> > > the moment. I was wondering do you have any coding examples, that can
> > > describe what i need to do. Thank you in advance.
> >
> > Are you using C, Fortran, Java, or some other programming language?
> >
> > --Russ
> >
> > Russ Rew UCAR Unidata Program
> > address@hidden http://www.unidata.ucar.edu
> >
> >
> >
> > Ticket Details
> > ===================
> > Ticket ID: WLR-457355
> > Department: Support netCDF
> > Priority: Normal
> > Status: Closed
> >
> >
>
>
> --
> Richard L. Messick
> NC A&T SU
>
>
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
Ticket Details
===================
Ticket ID: WLR-457355
Department: Support netCDF
Priority: Normal
Status: Closed