24 #define FILE_NAME "pres_temp_4D.nc"
31 #define LAT_NAME "latitude"
32 #define LON_NAME "longitude"
34 #define REC_NAME "time"
35 #define LVL_NAME "level"
39 #define PRES_NAME "pressure"
40 #define TEMP_NAME "temperature"
42 #define DEGREES_EAST "degrees_east"
43 #define DEGREES_NORTH "degrees_north"
46 #define SAMPLE_PRESSURE 900
47 #define SAMPLE_TEMP 9.0
48 #define START_LAT 25.0
49 #define START_LON -125.0
53 #define PRES_UNITS "hPa"
54 #define TEMP_UNITS "celsius"
55 #define LAT_UNITS "degrees_north"
56 #define LON_UNITS "degrees_east"
57 #define MAX_ATT_LEN 80
61 #define ERR(e) {printf("Error: %s\n", nc_strerror(e)); return 2;}
66 int ncid, pres_varid, temp_varid;
67 int lat_varid, lon_varid;
71 size_t start[NDIMS], count[NDIMS];
75 float pres_in[NLVL][NLAT][NLON];
76 float temp_in[NLVL][NLAT][NLON];
79 float lats[NLAT], lons[NLON];
82 int lvl, lat, lon, rec, i = 0;
105 for (lat = 0; lat < NLAT; lat++)
106 if (lats[lat] != START_LAT + 5.*lat)
108 for (lon = 0; lon < NLON; lon++)
109 if (lons[lon] != START_LON + 5.*lon)
114 if ((retval =
nc_inq_varid(ncid, PRES_NAME, &pres_varid)))
116 if ((retval =
nc_inq_varid(ncid, TEMP_NAME, &temp_varid)))
131 for (rec = 0; rec < NREC; rec++)
135 count, &pres_in[0][0][0])))
138 count, &temp_in[0][0][0])))
143 for (lvl = 0; lvl < NLVL; lvl++)
144 for (lat = 0; lat < NLAT; lat++)
145 for (lon = 0; lon < NLON; lon++)
147 if (pres_in[lvl][lat][lon] != SAMPLE_PRESSURE + i)
149 if (temp_in[lvl][lat][lon] != SAMPLE_TEMP + i)
160 printf(
"*** SUCCESS reading example file pres_temp_4D.nc!\n");