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.

RE: netcdf c++ implementation problem

  • To: "Hanson, Kurt" <khanson@xxxxxxx>
  • Subject: RE: netcdf c++ implementation problem
  • From: Fei Liu <Fei.Liu@xxxxxxxx>
  • Date: Wed, 22 Feb 2006 13:56:16 -0500 (EST)
Kurt, thank you very much, I think you hit the problem right on the head. 
Thanks for your valuable advice about debug build.

Fei
On Wed, 22 Feb 2006, Hanson, Kurt wrote:

> Fei --
> 
> The problem appears to be that "get(&x, 10, 10)" has an error (both times). 
> Those 10's mean you want a 10 by 10 chunk of data, but x only provides space 
> for a single value. 
> 
> If instead of
>     double x,y;
> You had
>     double x[10][10];
> you should be in the clear.
> 
> If you don't actually want a 10 x 10 chunk of data, and instead want the 
> value at indices i=10 and j=10, you'd do:
>     double x;
>     geolon_t->set_cur(10, 10);
>     geolon_t->get(&x, 1, 1)
> 
> Also, here's a general recommendation... The NetCDF library can easily be 
> built with debugging ("-g" for gcc and likely others) and you could then 
> inspect the core dump relatively easily, e.g.
> 
> gdb your_sample_exe core
> 
> and from within gdb issue commands like where, frame, and print.
> 
> Best of luck
> 
> Kurt Hanson
> 
> -----Original Message-----
> From: owner-netcdfgroup@xxxxxxxxxxxxxxxx
> [mailto:owner-netcdfgroup@xxxxxxxxxxxxxxxx]On Behalf Of Fei Liu
> Sent: Wednesday, February 22, 2006 10:18 AM
> To: netcdfgroup@xxxxxxxxxxxxxxxx
> Subject: netcdf c++ implementation problem
> 
> 
> 
> Hi, group, I am replying to a message I sent out a few days ago to another 
> email list:
> 
> >
> >NetCDF C++ library is compiled with:
> >
> >GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-85)
> >
> >Here is the sample code:
> >
> >#include <netcdfcpp.h>
> >#include <iostream>
> >
> >using namespace std;
> >
> >// g++ -o t testnccpp.cpp -lnetcdf_c++ -lnetcdf -L/usr/local/lib
> >
> >int main(void){
> >
> >  NcFile file("grid_spec.nc");
> >
> >  NcVar * geolon_t = file.get_var("geolon_t");
> >
> >  cout << "Type: " << geolon_t->type()<< endl;
> >  for(int i = 0; i < geolon_t->num_dims(); i ++)
> >    cout << i << ": " << geolon_t->get_dim(i)->size() << endl;
> >  double x,y;
> >
> >  if(geolon_t->get(&x, 10, 10))
> >    cout << x << endl;
> >  if(geolon_t->get(&x, 10, 10))
> >    cout << x << endl;
> >  file.close();
> >}
> >
> >The wierd part is the program core dumps after the 2nd call 
> >geolon_t->get(&x..., here is the output:
> >
> >Type: 6
> >0: 200
> >1: 360
> >-279.5
> >-279.5
> >Segmentation fault (core dumped)
> >
> >I am seeking any clue/simiar experience as why the program core 
> >dumps?....
> >
> >-- 
> >Fei Liu, PhD.                    phone: 609-4526551
> >RSIS/GFDL/NOAA                   fax:   609-9875063
> >P.O. Box 308, 201 Forrestal Rd.  http://www.gfdl.noaa.gov/~fil
> >Princeton, NJ 08542-0308         email: Fei.Liu@xxxxxxxx
> >
> >
> >
> 
> 
> 

-- 
Fei Liu, PhD.                    phone: 609-4526551
RSIS/GFDL/NOAA                   fax:   609-9875063
P.O. Box 308, 201 Forrestal Rd.  http://www.gfdl.noaa.gov/~fil
Princeton, NJ 08542-0308         email: Fei.Liu@xxxxxxxx


  • 2006 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: