1/** \file
2Read the simple_xy file, with some of the features of netCDF-4.
3
4This is a very simple example which is based on the simple_xy example,
5but whch uses netCDF-4 features, such as compression. Please see the
6simple_xy example to learn more about the netCDF-3 API.
7
8Like simple_xy_rd.c, this example reads a small dummy array, which was
9written by simple_xy_wr.c, and is compressed. This is intended to
10illustrate the use of the netCDF C API.
11
12Full documentation for netCDF can be found at:
13http://www.unidata.ucar.edu/netcdf/docs
14*/
15
16#include <config.h>
17#include <stdlib.h>
18#include <stdio.h>
19#include <netcdf.h>
20
21/* This is the name of the data file we will read. */
22#define FILE_NAME "simple_xy_nc4.nc"
23
24/* We are reading 2D data, a 6 x 12 grid. */
25#define NX 6
26#define NY 12
27
28/* Handle errors by printing an error message and exiting with a
29 * non-zero status. */
30#define ERRCODE 2
31#define ERR(e) {printf("Error: %s\n", nc_strerror(e)); exit(ERRCODE);}
32
33int
34main()
35{
36   /* This will be the netCDF ID for the file and data variable. */
37   int ncidvarid;
38
39   int data_in[NX][NY];
40
41   /* Loop indexes, and error handling. */
42   int xyretval;
43
44   /* Open the file. NC_NOWRITE tells netCDF we want read-only access
45    * to the file.*/
46   if ((retval = nc_open(FILE_NAMENC_NOWRITE, &ncid)))
47      ERR(retval);
48
49   /* Get the varid of the data variable, based on its name. */
50   if ((retval = nc_inq_varid(ncid, "data", &varid)))
51      ERR(retval);
52
53   /* Read the data. */
54   if ((retval = nc_get_var_int(ncidvarid, &data_in[0][0])))
55      ERR(retval);
56
57   /* Check the data. */
58   for (x = 0; x < NXx++)
59      for (y = 0; y < NYy++)
60  if (data_in[x][y] != x * NY + y)
61     return ERRCODE;
62
63   /* Close the file, freeing all resources. */
64   if ((retval = nc_close(ncid)))
65      ERR(retval);
66
67   printf("*** SUCCESS reading example file %s!\n", FILE_NAME);
68   return 0;
69}


HyperKWIC - Version 7.20DA executed at 11:37 on 27 Oct 2017 | Polyhedron Solutions - INTERNAL USE | COMMERCIAL (Any O/S) SN 4AKIed