1/*! Test added as part of JIRA ticket NCF-326.
2
3  The test was provided by Ellen Johnson at Mathworks.
4
5  See https://bugtracking.unidata.ucar.edu/browse/NCF-326
6  for more information.
7*/
8#include <stdio.h>
9#include <string.h>
10#include <netcdf.h>
11
12#define FILE_NAME "unlim.nc"
13
14/* 3D matrix, 6 x 4 x 3 */
15
16#define NDIMS 3
17#define X_LEN 6
18#define Y_LEN 4
19#define Z_LEN 3
20
21/* Handle errors by printing an error message */
22#define ERR(e) {printf("Error: %s\n", nc_strerror(e)); return 2;}
23int
24main()
25{
26    size_t start[NDIMS] = {0, 0, 0};
27    size_t count[NDIMS] = {X_LENY_LENZ_LEN};
28    ptrdiff_t stride[NDIMS] = {1, 1, 1};
29    float mydata[X_LEN * Y_LEN * Z_LEN];
30    int i;
31    int retval;
32
33    int ncidvarid;
34    int dimids[NDIMS];
35
36    for (i = 0; i < (X_LEN * Y_LEN * Z_LEN); i++)
37        mydata[i] = i;
38
39    /* create the file in NetCDF-4 format */
40    if ((retval = nc_create(FILE_NAMENC_NETCDF4, &ncid)))
41        ERR(retval);
42
43    /* define dimensions */
44    if ((retval = nc_def_dim(ncid, "time", X_LEN, &dimids[0])))
45        ERR(retval);
46    if ((retval = nc_def_dim(ncid, "lat", Y_LEN, &dimids[1])))
47        ERR(retval);
48    if ((retval = nc_def_dim(ncid, "lon", NC_UNLIMITED, &dimids[2])))
49        ERR(retval);
50
51   /* define the variable */
52    if ((retval = nc_def_var(ncid, "data", NC_FLOATNDIMSdimids, &varid)))
53        ERR(retval);
54
55    /* end define mode */
56    if ((retval = nc_enddef(ncid)))
57        ERR(retval);
58
59    /* write data */
60    if ((retval = nc_put_vars_float(ncidvaridstartcountstridemydata)))
61        ERR(retval);
62
63    /* close the file */
64    if ((retval = nc_close(ncid)))
65        ERR(retval);
66
67    printf("\n\n*** SUCCESS writing 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