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.
Dear netCDF group To be more precise the following code #include <string> #include <netcdf> #include <vector> using namespace::std; using namespace netCDF; int main (int nbarg, char** argv) { netCDF::NcFile ncFile("test.nc", netCDF::NcFile::replace); NcType ncFloat = ncFile.getType("float",netCDF::NcGroup::ParentsAndCurrent); //NcType ncFloat=NC_FLOAT; std::vector<float> myFloats = { 1., 2., 3., 4., 5. }; NcDim ncDim = ncFile.addDim("myFloatsDim", myFloats.size()); NcVar ncVar = ncFile.addVar("myFloats", ncFloat, ncDim); ncVar.putVar(myFloats.data()); NcType typeString = ncFile.getType("string",netCDF::NcGroup::ParentsAndCurrent); //NcType typeString = NC_STRING; //NcType typeString =ncString; std::vector<std::string> myStrings = { "a", "bb", "ccc", "dddd" }; ncDim = ncFile.addDim("myStringsDim", myStrings.size()); ncVar = ncFile.addVar("myStrings", typeString,ncDim); ncVar.putVar(myStrings.data()); } Compiles with this command: g++ -g -std=c++11 testnetcdf.cc -lnetcdf_c++4 -lnetcdf -lhdf5_hl -lhdf5 -lz Gives thess results: With libnecdf 4.4.0 and libnetcdfcxx4 4.2.1 (library given by ubuntu 16.04) this throws an exception at the line ncVar.putVar(myStrings.data()). If you add a try catch block it fails silently With libnecdf 4.6.1 and libnetcdfcxx4 4.3.0 this cause a core dump. Nothing change is you use several definition of NcType. But if you use char* in place of string: std::vector<const char *> myChars; for (const auto& it : myStrings) { myChars.push_back( it.c_str() ); } ncVar.putVar(myChars.data()); It compiles, run and the file test.nc is correct with the last version of the library. With libnecdf 4.4.0 and libnetcdfcxx4 4.2.1 it throws the exception or failed as with the string. Thanks for your attention Virginie Trinité -----Message d'origine----- De : netcdfgroup-bounces@xxxxxxxxxxxxxxxx [mailto:netcdfgroup-bounces@xxxxxxxxxxxxxxxx] De la part de TRINITE Virginie Envoyé : jeudi 16 août 2018 17:38 À : 'netcdfgroup@xxxxxxxxxxxxxxxx List' Objet : [netcdfgroup] Issue with netcdf_cxx4 Nctype Dear netCDF group I have the same problem that was related by Daniel Potter in this message https://www.unidata.ucar.edu/mailing_lists/archives/netcdfgroup/2016/msg00320.html Further googling this problem, I see that it seems to come from this issue: https://github.com/Unidata/netcdf-cxx4/issues/30. I do not understand exactly what the problem come from but I see that the last version of netcdf-cxx4 (v4.3.0) speaks to fix it. So I compile the last version of netcdf-cxx4 and the last version of netcdf (4.6.1). The problem is still their (impossible to add a variable of type string) but now it fails with a core dump that arrive in the HDF5 library and no more throw an exception. I try the suggestion of Elizabeth A. Fischer but it seems that no type is associated with my NcFile. Have you any suggestion? Thanks for your attention Virginie Trinité _______________________________________________ NOTE: All exchanges posted to Unidata maintained email lists are recorded in the Unidata inquiry tracking system and made publicly available through the web. Users who post to any of the lists we maintain are reminded to remove any personal information that they do not want to be made public. netcdfgroup mailing list netcdfgroup@xxxxxxxxxxxxxxxx For list information or to unsubscribe, visit: http://www.unidata.ucar.edu/mailing_lists/
netcdfgroup
archives: