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.

[netcdfgroup] nasty netcdf-4.1 bug


Ed et al: Here's a simple C program that produces an incorrect netcdf file with netcdf-4.1

#include <stdio.h>
#include <string.h>
#include <netcdf.h>
#define FILE_NAME "test.nc"
#define NDIMS 2
#define NLAT 10
#define NLON 20 #define LAT_NAME "lat"
#define LON_NAME "lon"
#define START_LAT 25.0
#define START_LON -125.0
int
main()
{
  int ncid, lon_dimid, lat_dimid;
  int lat_varid, lon_varid;
  int dimids[NDIMS];
  float lats[NLAT], lons[NLON];
  int lat, lon;
  int retval;
  for (lat = 0; lat < NLAT; lat++)
     lats[lat] = START_LAT + 5.*lat;
  for (lon = 0; lon < NLON; lon++)
     lons[lon] = START_LON + 5.*lon;
  retval = nc_create(FILE_NAME, NC_NETCDF4 | NC_CLOBBER, &ncid);
  retval = nc_def_dim(ncid, LAT_NAME, NLAT, &lat_dimid);
  retval = nc_def_dim(ncid, LON_NAME, NLON, &lon_dimid);
  retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, &lon_varid);
  retval = nc_put_var_float(ncid, lon_varid, &lons[0]);
  retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, &lat_varid);
  retval = nc_put_var_float(ncid, lat_varid, &lats[0]);
  retval = nc_close(ncid);
  return 0;
}

An ncdump of the resulting file looks like this:

ncdump test.nc
netcdf test {
dimensions:
       lat = 10 ;
       lat = 10 ;
variables:
       float lon(lat) ;
       float lat(lat) ;
data:

lon = -125, -120, -115, -110, -105, -100, -95, -90, -85, -80 ;

lat = 25, 30, 35, 40, 45, 50, 55, 60, 65, 70 ;
}

which is more than a little weird. Linking the program with either netcdf-4.0.1 or netcdf-4.1-rc1 produces the correct netcdf file

ncdump test.nc
netcdf test {
dimensions:
       lat = 10 ;
       lon = 20 ;
variables:
       float lon(lon) ;
       float lat(lat) ;
data:

lon = -125, -120, -115, -110, -105, -100, -95, -90, -85, -80 ;

lat = 25, 30, 35, 40, 45, 50, 55, 60, 65, 70 ;
}

-Jeff



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