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


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