1/*! Test program for netcdf issue NCF-330
2 *
3 * This test was provided by Ellen Johnson at Mathworks and
4 * illustrates an issue currently only seen on Windows.
5 *
6 * See https://bugtracking.unidata.ucar.edu/browse/NCF-330
7 */
8
9#include "config.h"
10#ifdef HAVE_STDLIB_H
11#include <stdlib.h>
12#endif
13#ifdef HAVE_STDIO_H
14#include <stdio.h>
15#endif
16#include <netcdf.h>
17
18#ifdef _MSC_VER
19#include <malloc.h>
20#include <crtdbg.h>
21#endif
22
23static char* URL="http://data.nodc.noaa.gov/thredds/dodsC/testdata/pathfinderAgg/pathFinderV5.2_night.ncml";
24
25int
26main()
27{
28     int ncid;
29     int ncstatus;
30     int lat_id;
31     nc_type lat_type;
32     int lat_ndims;
33     int lat_dimids[NC_MAX_VAR_DIMS];
34     int lat_natts;
35     int format_p;
36     float lat_data[4320];
37
38#ifdef _MSC_VER
39  /* See https://msdn.microsoft.com/en-us/library/5at7yxcs(v=vs.120).aspx
40     for more information re: these. */
41  /*int tmpFlag = _CrtSetDbgFlag(_CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_LEAK_CHECK_DF);*/
42#endif
43     printf(" \n");
44     printf("********************\n");
45     printf("open URL %s\n",URL);
46     printf(" \n");
47     ncstatus = nc_open(URLNC_NOWRITE, &ncid);
48     if(ncstatus != NC_NOERR) {
49         printf("Could not open: %s; server may be down; test ignored\n",URL);
50         exit(0);
51     }
52     printf("status after open = %d\n", ncstatus);
53
54     /* get the format */
55     ncstatus = nc_inq_format(ncid, &format_p);
56     printf("lat id = %d\n", format_p);
57
58     /* get varid for latitude */
59     ncstatus = nc_inq_varid(ncid,"lat",&lat_id);
60     printf("status after inq lat id = %d\n", ncstatus);
61     printf("lat id = %d\n", lat_id);
62
63     ncstatus = nc_inq_var(ncidlat_id, 0, &lat_type, &lat_ndimslat_dimids, &lat_natts);
64     printf("status after inq lat var = %d\n", ncstatus);
65     printf("lat type = %d\n", lat_type);
66
67     /* extract the first latitude value */
68     ncstatus = nc_get_var_float(ncidlat_id, &lat_data[0]);
69     printf("status after get = %d\n", ncstatus);
70     printf("my datum = %f\n", lat_data[0]);
71
72     /* This code works okay in Linux and Mac
73        Everything works okay up until here in Windows then an exception occurs
74     */
75     ncstatus = nc_close(ncid);
76     printf("status after close = %d\n", ncstatus);
77     printf("End of test.\n\n");
78
79     return 0;
80}


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