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.

[netcdfgroup] crash with netCDF4.1.3 using nc_get_vara_float reading from opendap url

Hi,
I have a crash to report. This piece of code reads the first timestep of a dataset. It works correctly when linked with netCDF4.1.2, but segfaults when linked with 4.1.3. If I have it read the second timestep, it works correctly, linked with either version of netcdf.

/* vara_test_8 */
/* ansley.b.manke@xxxxxxxx  8/2011 */

/*linked with:
cc vara_test_8.c -g -o vara_test_8 /usr/local/netcdf_413/lib/libnetcdf.a /usr/local/hdf5_187/lib/libhdf5_hl.a /usr/local/hdf5_187/lib/libhdf5.a -lz -lc -lm -lcurl
  cc vara_test_8.c -g -o vara_test_8  
/usr/local/netcdf_412/lib/libnetcdf.a 
/usr/local/hdf5_186/lib/libhdf5_hl.a /usr/local/hdf5_186/lib/libhdf5.a 
-lz -lc -lm -lcurl
When linked with netCDF4.1.3, reading the first timestep, the code 
segfaults
*/

#include<stdio.h>
#include "netcdf.h"

main()
{

  int ncid;
  int varid;
  int i;
  int status;
  size_t start[3], count[3];
  float dat[16200];

status = nc_open("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf";, NC_NOWRITE, &ncid);
  status = nc_inq_varid(ncid, "SST", &varid);

/* Read one timestep */

  start[0] = 0;  /* crashes if this is 0; success if it's 1 */
  start[1] = 0;
  start[2] = 0;
  count[0] = 1;
  count[1] = 90;
  count[2] = 180;

  status = nc_get_vara_float (ncid, varid, start, count, (float*) dat);

  printf(" \n");
  printf("********************\n");
  printf("Print  values read\n");
  printf(" \n");
  for (i=1000; i<1008; i++)
       {
        printf("i = %d, dat, %f,\n",i,dat[i]);
        dat[i] = 0;
       }

   status = nc_close(ncid);
}



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