1/* This is part of the netCDF package.
2   Copyright 2005 University Corporation for Atmospheric Research/Unidata
3   See COPYRIGHT file for conditions of use.
4
5   Test netcdf-4 variables.
6   $Id$
7*/
8
9#include <nc_tests.h>
10#include "err_macros.h"
11
12#define FILE_NAME "tst_vars4.nc"
13
14int
15main(int argc, char **argv)
16{
17   printf("\n*** Testing netcdf-4 variable functions, even more.\n");
18   printf("**** testing Jeff's dimension problem...");
19   {
20#define NDIMS2 2
21#define NUM_VARS 1
22#define Y_NAME "y"
23#define X_NAME "x"
24#define VAR_NAME Y_NAME
25#define XDIM_LEN 2
26#define YDIM_LEN 5
27
28      int varidnciddims[NDIMS2], dims_in[NDIMS2];
29      int ndimsnvarsngattsunlimdimidnatts;
30      char name_in[NC_MAX_NAME + 1];
31      nc_type type_in;
32      size_t len_in;
33
34      if (nc_create(FILE_NAMENC_NETCDF4 | NC_CLOBBER, &ncid)) ERR;
35      if (nc_def_dim(ncidX_NAMEXDIM_LEN, &dims[0])) ERR;
36      if (nc_def_dim(ncidY_NAMEYDIM_LEN, &dims[1])) ERR;
37      if (nc_def_var(ncidVAR_NAMENC_FLOAT, 2, dims, &varid)) ERR;
38      if (nc_inq(ncid, &ndims, &nvars, &ngatts, &unlimdimid)) ERR;
39      if (nvars != NUM_VARS || ndims != NDIMS2 || ngatts != 0 || unlimdimid != -1) ERR;
40      if (nc_inq_var(ncid, 0, name_in, &type_in, &ndimsdims_in, &natts)) ERR;
41      if (strcmp(name_inVAR_NAME) || type_in != NC_FLOAT || ndims != NDIMS2 ||
42   dims_in[0] != dims[0] || dims_in[1] != dims[1] || natts != 0) ERR;
43      if (nc_inq_dim(ncid, 0, name_in, &len_in)) ERR;
44      if (strcmp(name_inX_NAME) || len_in != XDIM_LENERR;
45      if (nc_inq_dim(ncid, 1, name_in, &len_in)) ERR;
46      if (strcmp(name_inY_NAME)) ERR;
47      if (len_in != YDIM_LENERR;
48      if (nc_close(ncid)) ERR;
49
50      /* Open the file and check. */
51      if (nc_open(FILE_NAMENC_WRITE, &ncid)) ERR;
52      if (nc_inq(ncid, &ndims, &nvars, &ngatts, &unlimdimid)) ERR;
53      if (nvars != NUM_VARS || ndims != NDIMS2 || ngatts != 0 || unlimdimid != -1) ERR;
54      if (nc_inq_var(ncid, 0, name_in, &type_in, &ndimsdims_in, &natts)) ERR;
55      if (strcmp(name_inVAR_NAME) || type_in != NC_FLOAT || ndims != NDIMS2 ||
56   dims_in[0] != dims[0] || dims_in[1] != dims[1] || natts != 0) ERR;
57      if (nc_inq_dim(ncid, 0, name_in, &len_in)) ERR;
58      if (strcmp(name_inX_NAME) || len_in != XDIM_LENERR;
59      if (nc_inq_dim(ncid, 1, name_in, &len_in)) ERR;
60      if (strcmp(name_inY_NAME)) ERR;
61      if (len_in != YDIM_LENERR;
62      if (nc_close(ncid)) ERR;
63   }
64   SUMMARIZE_ERR;
65   FINAL_RESULTS;
66}


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