#include <netcdf.h>#include <nc4internal.h>#include <nc_tests.h>Include dependency graph for tst_vars.c:

Go to the source code of this file.
Defines | |
| #define | FILE_NAME "tst_vars.nc" |
| #define | VAR_BYTE_NAME "Portrait_of_Maria_Trip" |
| #define | VAR_CHAR_NAME "Landscape_wth_stone_bridge" |
| #define | VAR_SHORT_NAME "Self-portrait_as_a_young_man" |
| #define | VAR_INT_NAME "Jeremiah_lamenting_the_destruction_of_Jerusalem" |
| #define | VAR_FLOAT_NAME "The_Syndics_of_the_Drapers_Guild" |
| #define | VAR_DOUBLE_NAME "Self-portrait_as_the_apstle_Paul" |
| #define | VAR_UBYTE_NAME "Tobias_and_Anna_with_the_kid" |
| #define | VAR_USHORT_NAME "The_Jewish_Bride" |
| #define | VAR_UINT_NAME "The_prophetess_Anna" |
| #define | VAR_INT64_NAME "Titus_as_a_Monk" |
| #define | VAR_UINT64_NAME "The_Night_Watch" |
| #define | DIM1_NAME "x" |
| #define | DIM1_LEN 2 |
| #define | DIM2_NAME "y" |
| #define | DIM2_LEN 3 |
| #define | DIM3_NAME "strlen" |
| #define | DIM3_LEN 25 |
Functions | |
| int | main (int argc, char **argv) |
|
|
Definition at line 26 of file tst_vars.c. |
|
|
Definition at line 25 of file tst_vars.c. |
|
|
Definition at line 28 of file tst_vars.c. |
|
|
Definition at line 27 of file tst_vars.c. |
|
|
Definition at line 30 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 29 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 13 of file tst_vars.c. |
|
|
Definition at line 14 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 15 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 19 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 18 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 23 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 17 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 16 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 20 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 24 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 22 of file tst_vars.c. Referenced by main(). |
|
|
Definition at line 21 of file tst_vars.c. Referenced by main(). |
|
||||||||||||
|
Definition at line 34 of file tst_vars.c. References nc_var_options::deflate, nc_var_options::deflate_level, DIM1_LEN, DIM1_NAME, DIM2_LEN, DIM2_NAME, DIM3_LEN, DIM3_NAME, ERR, FILE_NAME, FINAL_RESULTS, NC_BYTE, NC_CHAR, nc_close, nc_create, nc_def_dim, nc_def_var, nc_def_var_full(), NC_DOUBLE, NC_ERANGE, NC_FLOAT, nc_get_var_double, nc_get_var_float, nc_get_var_int, nc_get_var_longlong(), nc_get_var_schar, nc_get_var_short, nc_get_var_uint(), nc_get_var_ulonglong(), nc_inq_var, nc_inq_varid, nc_inq_varname, nc_inq_vartype, NC_INT, NC_INT64, NC_MAX_NAME, NC_NETCDF4, nc_open, nc_put_var_double, nc_put_var_float, nc_put_var_int, nc_put_var_longlong(), nc_put_var_schar, nc_put_var_short, nc_put_var_text, nc_put_var_ubyte(), nc_put_var_uint(), nc_put_var_ulonglong(), nc_put_var_ushort(), NC_SHORT, NC_UBYTE, NC_UINT, NC_UINT64, NC_USHORT, ncid, SUMMARIZE_ERR, VAR_BYTE_NAME, VAR_CHAR_NAME, VAR_DOUBLE_NAME, VAR_FLOAT_NAME, VAR_INT64_NAME, VAR_INT_NAME, VAR_SHORT_NAME, VAR_UBYTE_NAME, VAR_UINT64_NAME, VAR_UINT_NAME, and VAR_USHORT_NAME. 00035 { 00036 int ncid, dimids[3]; 00037 int char_varid, byte_varid, ubyte_varid, short_varid, int_varid, float_varid, double_varid; 00038 int ushort_varid, uint_varid, int64_varid, uint64_varid; 00039 int i, j; 00040 00041 unsigned char ubyte_out[DIM1_LEN][DIM2_LEN] = {{1, 128, 255},{1, 128, 255}}; 00042 signed char byte_in[DIM1_LEN][DIM2_LEN], byte_out[DIM1_LEN][DIM2_LEN] = {{-127, 1, 127},{-127, 1, 127}}; 00043 unsigned short ushort_out[DIM1_LEN][DIM2_LEN] = {{110, 128, 255},{110, 128, 255}}; 00044 short short_in[DIM1_LEN][DIM2_LEN], short_out[DIM1_LEN][DIM2_LEN] = {{-110, -128, 255},{-110, -128, 255}}; 00045 int int_in[DIM1_LEN][DIM2_LEN], int_out[DIM1_LEN][DIM2_LEN] = {{0, 128, 255},{0, 128, 255}}; 00046 float float_in[DIM1_LEN][DIM2_LEN], float_out[DIM1_LEN][DIM2_LEN] = {{-.1, 9999.99, 100.001},{-.1, 9999.99, 100.001}}; 00047 double double_in[DIM1_LEN][DIM2_LEN], double_out[DIM1_LEN][DIM2_LEN] = {{0.02, .1128, 1090.1},{0.02, .1128, 1090.1}}; 00048 unsigned int uint_in[DIM1_LEN][DIM2_LEN], uint_out[DIM1_LEN][DIM2_LEN] = {{0, 128, 255},{0, 128, 255}}; 00049 long long int64_in[DIM1_LEN][DIM2_LEN], int64_out[DIM1_LEN][DIM2_LEN] = {{-111, 777, 100},{-111, 777, 100}}; 00050 unsigned long long uint64_in[DIM1_LEN][DIM2_LEN]; 00051 unsigned long long uint64_out[DIM1_LEN][DIM2_LEN] = {{0, 10101, 9999999},{0, 10101, 9999999}}; 00052 char char_out[DIM1_LEN][DIM2_LEN][DIM3_LEN] = {{"lalala", "lololo", "lelele"}, {"lalala", "lololo", "lelele"}}; 00053 00054 /*nc_set_log_level(4);*/ 00055 00056 printf("\n*** Testing netcdf-4 variable functions.\n"); 00057 printf("*** testing simple variables..."); 00058 00059 /* Create a file with a variable of each type. */ 00060 if (nc_create(FILE_NAME, NC_NETCDF4, &ncid)) ERR; 00061 if (nc_def_dim(ncid, DIM1_NAME, DIM1_LEN, &dimids[0])) ERR; 00062 if (nc_def_dim(ncid, DIM2_NAME, DIM2_LEN, &dimids[1])) ERR; 00063 if (nc_def_dim(ncid, DIM3_NAME, DIM3_LEN, &dimids[2])) ERR; 00064 if (nc_def_var(ncid, VAR_BYTE_NAME, NC_BYTE, 2, dimids, &byte_varid)) ERR; 00065 if (nc_def_var(ncid, VAR_CHAR_NAME, NC_CHAR, 3, dimids, &char_varid)) ERR; 00066 if (nc_def_var(ncid, VAR_SHORT_NAME, NC_SHORT, 2, dimids, &short_varid)) ERR; 00067 if (nc_def_var(ncid, VAR_INT_NAME, NC_INT, 2, dimids, &int_varid)) ERR; 00068 if (nc_def_var(ncid, VAR_FLOAT_NAME, NC_FLOAT, 2, dimids, &float_varid)) ERR; 00069 if (nc_def_var(ncid, VAR_DOUBLE_NAME, NC_DOUBLE, 2, dimids, &double_varid)) ERR; 00070 if (nc_def_var(ncid, VAR_UBYTE_NAME, NC_UBYTE, 2, dimids, &ubyte_varid)) ERR; 00071 if (nc_def_var(ncid, VAR_USHORT_NAME, NC_USHORT, 2, dimids, &ushort_varid)) ERR; 00072 if (nc_def_var(ncid, VAR_UINT_NAME, NC_UINT, 2, dimids, &uint_varid)) ERR; 00073 if (nc_def_var(ncid, VAR_INT64_NAME, NC_INT64, 2, dimids, &int64_varid)) ERR; 00074 if (nc_def_var(ncid, VAR_UINT64_NAME, NC_UINT64, 2, dimids, &uint64_varid)) ERR; 00075 if (nc_put_var_schar(ncid, byte_varid, (signed char *)byte_out)) ERR; 00076 if (nc_put_var_text(ncid, char_varid, (char *)char_out)) ERR; 00077 if (nc_put_var_short(ncid, short_varid, (short *)short_out)) ERR; 00078 if (nc_put_var_int(ncid, int_varid, (int *)int_out)) ERR; 00079 if (nc_put_var_float(ncid, float_varid, (float *)float_out)) ERR; 00080 if (nc_put_var_double(ncid, double_varid, (double *)double_out)) ERR; 00081 if (nc_put_var_ubyte(ncid, ubyte_varid, (unsigned char *)ubyte_out)) ERR; 00082 if (nc_put_var_ushort(ncid, ushort_varid, (unsigned short *)ushort_out)) ERR; 00083 if (nc_put_var_uint(ncid, uint_varid, (unsigned int *)uint_out)) ERR; 00084 if (nc_put_var_longlong(ncid, int64_varid, (long long *)int64_out)) ERR; 00085 if (nc_put_var_ulonglong(ncid, uint64_varid, (unsigned long long *)uint64_out)) ERR; 00086 if (nc_close(ncid)) ERR; 00087 00088 /* Open the file and check metadata. */ 00089 { 00090 nc_type xtype_in; 00091 int ndims_in, dimids_in[10], natts_in, varid_in; 00092 char name_in[NC_MAX_NAME+1]; 00093 00094 if (nc_open(FILE_NAME, 0, &ncid)) ERR; 00095 if (nc_inq_var(ncid, 0, name_in, &xtype_in, &ndims_in, dimids_in, 00096 &natts_in)) ERR; 00097 if (strcmp(name_in, VAR_BYTE_NAME) || xtype_in != NC_BYTE || 00098 ndims_in != 2 || natts_in != 0 || dimids_in[0] != dimids[0] || 00099 dimids_in[1] != dimids[1]) ERR; 00100 if (nc_inq_varid(ncid, VAR_BYTE_NAME, &varid_in)) ERR; 00101 if (varid_in != 0) ERR; 00102 if (nc_inq_varid(ncid, VAR_CHAR_NAME, &varid_in)) ERR; 00103 if (varid_in != 1) ERR; 00104 if (nc_inq_varid(ncid, VAR_SHORT_NAME, &varid_in)) ERR; 00105 if (varid_in != 2) ERR; 00106 if (nc_inq_varname(ncid, 0, name_in)) ERR; 00107 if (strcmp(name_in, VAR_BYTE_NAME)) ERR; 00108 if (nc_inq_varname(ncid, 1, name_in)) ERR; 00109 if (strcmp(name_in, VAR_CHAR_NAME)) ERR; 00110 if (nc_inq_varname(ncid, 2, name_in)) ERR; 00111 if (strcmp(name_in, VAR_SHORT_NAME)) ERR; 00112 if (nc_inq_vartype(ncid, 0, &xtype_in)) ERR; 00113 if (xtype_in != NC_BYTE) ERR; 00114 if (nc_inq_vartype(ncid, 1, &xtype_in)) ERR; 00115 if (xtype_in != NC_CHAR) ERR; 00116 if (nc_inq_vartype(ncid, 2, &xtype_in)) ERR; 00117 if (xtype_in != NC_SHORT) ERR; 00118 if (nc_close(ncid)) ERR; 00119 } 00120 00121 /* Open the file and check data. */ 00122 if (nc_open(FILE_NAME, 0, &ncid)) ERR; 00123 if (nc_get_var_schar(ncid, byte_varid, (signed char *)byte_in)) ERR; 00124 for (i = 0; i < DIM1_LEN; i++) 00125 for (j = 0; j < DIM2_LEN; j++) 00126 if (byte_in[i][j] != byte_out[i][j]) ERR; 00127 if (nc_get_var_short(ncid, short_varid, (short *)short_in)) ERR; 00128 for (i = 0; i < DIM1_LEN; i++) 00129 for (j = 0; j < DIM2_LEN; j++) 00130 if (short_in[i][j] != short_out[i][j]) ERR; 00131 if (nc_get_var_int(ncid, int_varid, (int *)int_in)) ERR; 00132 for (i = 0; i < DIM1_LEN; i++) 00133 for (j = 0; j < DIM2_LEN; j++) 00134 if (int_in[i][j] != int_out[i][j]) ERR; 00135 if (nc_get_var_float(ncid, float_varid, (float *)float_in)) ERR; 00136 for (i = 0; i < DIM1_LEN; i++) 00137 for (j = 0; j < DIM2_LEN; j++) 00138 if (float_in[i][j] != float_out[i][j]) ERR; 00139 if (nc_get_var_double(ncid, double_varid, (double *)double_in)) ERR; 00140 for (i = 0; i < DIM1_LEN; i++) 00141 for (j = 0; j < DIM2_LEN; j++) 00142 if (double_in[i][j] != double_out[i][j]) ERR; 00143 if (nc_get_var_double(ncid, double_varid, (double *)double_in)) ERR; 00144 for (i = 0; i < DIM1_LEN; i++) 00145 for (j = 0; j < DIM2_LEN; j++) 00146 if (double_in[i][j] != double_out[i][j]) ERR; 00147 if (nc_get_var_double(ncid, double_varid, (double *)double_in)) ERR; 00148 for (i = 0; i < DIM1_LEN; i++) 00149 for (j = 0; j < DIM2_LEN; j++) 00150 if (double_in[i][j] != double_out[i][j]) ERR; 00151 if (nc_get_var_uint(ncid, uint_varid, (unsigned int *)uint_in)) ERR; 00152 for (i = 0; i < DIM1_LEN; i++) 00153 for (j = 0; j < DIM2_LEN; j++) 00154 if (uint_in[i][j] != uint_out[i][j]) ERR; 00155 if (nc_get_var_longlong(ncid, int64_varid, (long long *)int64_in)) ERR; 00156 for (i = 0; i < DIM1_LEN; i++) 00157 for (j = 0; j < DIM2_LEN; j++) 00158 if (int64_in[i][j] != int64_out[i][j]) ERR; 00159 if (nc_get_var_ulonglong(ncid, uint64_varid, (unsigned long long *)uint64_in)) ERR; 00160 for (i = 0; i < DIM1_LEN; i++) 00161 for (j = 0; j < DIM2_LEN; j++) 00162 if (uint64_in[i][j] != uint64_out[i][j]) ERR; 00163 if (nc_close(ncid)) ERR; 00164 00165 /* Open the file and read everything as double. */ 00166 if (nc_open(FILE_NAME, 0, &ncid)) ERR; 00167 if (nc_get_var_double(ncid, byte_varid, (double *)double_in)) ERR; 00168 for (i = 0; i < DIM1_LEN; i++) 00169 for (j = 0; j < DIM2_LEN; j++) 00170 if (double_in[i][j] != (double)byte_out[i][j]) ERR; 00171 if (nc_get_var_double(ncid, ubyte_varid, (double *)double_in)) ERR; 00172 for (i = 0; i < DIM1_LEN; i++) 00173 for (j = 0; j < DIM2_LEN; j++) 00174 if (double_in[i][j] != (double)ubyte_out[i][j]) ERR; 00175 if (nc_get_var_double(ncid, short_varid, (double *)double_in)) ERR; 00176 for (i = 0; i < DIM1_LEN; i++) 00177 for (j = 0; j < DIM2_LEN; j++) 00178 if (double_in[i][j] != (double)short_out[i][j]) ERR; 00179 if (nc_get_var_double(ncid, ushort_varid, (double *)double_in)) ERR; 00180 for (i = 0; i < DIM1_LEN; i++) 00181 for (j = 0; j < DIM2_LEN; j++) 00182 if (double_in[i][j] != (double)ushort_out[i][j]) ERR; 00183 if (nc_get_var_double(ncid, int_varid, (double *)double_in)) ERR; 00184 for (i = 0; i < DIM1_LEN; i++) 00185 for (j = 0; j < DIM2_LEN; j++) 00186 if (double_in[i][j] != (double)int_out[i][j]) ERR; 00187 if (nc_get_var_double(ncid, uint_varid, (double *)double_in)) ERR; 00188 for (i = 0; i < DIM1_LEN; i++) 00189 for (j = 0; j < DIM2_LEN; j++) 00190 if (double_in[i][j] != (double)uint_out[i][j]) ERR; 00191 if (nc_get_var_double(ncid, float_varid, (double *)double_in)) ERR; 00192 for (i = 0; i < DIM1_LEN; i++) 00193 for (j = 0; j < DIM2_LEN; j++) 00194 if (double_in[i][j] != (double)float_out[i][j]) ERR; 00195 if (nc_get_var_double(ncid, int64_varid, (double *)double_in)) ERR; 00196 for (i = 0; i < DIM1_LEN; i++) 00197 for (j = 0; j < DIM2_LEN; j++) 00198 if (double_in[i][j] != (double)int64_out[i][j]) ERR; 00199 if (nc_get_var_double(ncid, uint64_varid, (double *)double_in)) ERR; 00200 for (i = 0; i < DIM1_LEN; i++) 00201 for (j = 0; j < DIM2_LEN; j++) 00202 if (double_in[i][j] != (double)uint64_out[i][j]) ERR; 00203 if (nc_close(ncid)) ERR; 00204 00205 /* Open the file and read everything as NC_BYTE. */ 00206 if (nc_open(FILE_NAME, 0, &ncid)) ERR; 00207 if (nc_get_var_schar(ncid, byte_varid, (signed char *)byte_in)) ERR; 00208 for (i = 0; i < DIM1_LEN; i++) 00209 for (j = 0; j < DIM2_LEN; j++) 00210 if (byte_in[i][j] != (signed char)byte_out[i][j]) ERR; 00211 if (nc_get_var_schar(ncid, ubyte_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00212 for (i = 0; i < DIM1_LEN; i++) 00213 for (j = 0; j < DIM2_LEN; j++) 00214 if (byte_in[i][j] != (signed char)ubyte_out[i][j]) ERR; 00215 if (nc_get_var_schar(ncid, short_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00216 for (i = 0; i < DIM1_LEN; i++) 00217 for (j = 0; j < DIM2_LEN; j++) 00218 if (byte_in[i][j] != (signed char)short_out[i][j]) ERR; 00219 if (nc_get_var_schar(ncid, ushort_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00220 for (i = 0; i < DIM1_LEN; i++) 00221 for (j = 0; j < DIM2_LEN; j++) 00222 if (byte_in[i][j] != (signed char)ushort_out[i][j]) ERR; 00223 if (nc_get_var_schar(ncid, int_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00224 for (i = 0; i < DIM1_LEN; i++) 00225 for (j = 0; j < DIM2_LEN; j++) 00226 if (byte_in[i][j] != (signed char)int_out[i][j]) ERR; 00227 if (nc_get_var_schar(ncid, uint_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00228 for (i = 0; i < DIM1_LEN; i++) 00229 for (j = 0; j < DIM2_LEN; j++) 00230 if (byte_in[i][j] != (signed char)uint_out[i][j]) ERR; 00231 if (nc_get_var_schar(ncid, float_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00232 for (i = 0; i < DIM1_LEN; i++) 00233 for (j = 0; j < DIM2_LEN; j++) 00234 if (byte_in[i][j] != (signed char)float_out[i][j]) ERR; 00235 if (nc_get_var_schar(ncid, int64_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00236 for (i = 0; i < DIM1_LEN; i++) 00237 for (j = 0; j < DIM2_LEN; j++) 00238 if (byte_in[i][j] != (signed char)int64_out[i][j]) ERR; 00239 if (nc_get_var_schar(ncid, uint64_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00240 for (i = 0; i < DIM1_LEN; i++) 00241 for (j = 0; j < DIM2_LEN; j++) 00242 if (byte_in[i][j] != (signed char)uint64_out[i][j]) ERR; 00243 if (nc_close(ncid)) ERR; 00244 00245 SUMMARIZE_ERR; 00246 00247 printf("*** testing simple variables with deflation..."); 00248 { 00249 struct nc_var_options *vo; 00250 00251 /* Calloc the sturct to hold variable creation options. */ 00252 if (!(vo = calloc(1, sizeof(struct nc_var_options)))) ERR; 00253 vo->deflate = 1; 00254 vo->deflate_level = 4; 00255 00256 /* Create a file with a variable of each type. */ 00257 if (nc_create(FILE_NAME, NC_NETCDF4, &ncid)) ERR; 00258 if (nc_def_dim(ncid, DIM1_NAME, DIM1_LEN, &dimids[0])) ERR; 00259 if (nc_def_dim(ncid, DIM2_NAME, DIM2_LEN, &dimids[1])) ERR; 00260 if (nc_def_dim(ncid, DIM3_NAME, DIM3_LEN, &dimids[2])) ERR; 00261 if (nc_def_var_full(ncid, VAR_BYTE_NAME, NC_BYTE, 2, dimids, &byte_varid, vo)) ERR; 00262 if (nc_def_var_full(ncid, VAR_CHAR_NAME, NC_CHAR, 3, dimids, &char_varid, vo)) ERR; 00263 if (nc_def_var_full(ncid, VAR_SHORT_NAME, NC_SHORT, 2, dimids, &short_varid, vo)) ERR; 00264 if (nc_def_var_full(ncid, VAR_INT_NAME, NC_INT, 2, dimids, &int_varid, vo)) ERR; 00265 if (nc_def_var_full(ncid, VAR_FLOAT_NAME, NC_FLOAT, 2, dimids, &float_varid, vo)) ERR; 00266 if (nc_def_var_full(ncid, VAR_DOUBLE_NAME, NC_DOUBLE, 2, dimids, &double_varid, vo)) ERR; 00267 if (nc_def_var_full(ncid, VAR_UBYTE_NAME, NC_UBYTE, 2, dimids, &ubyte_varid, vo)) ERR; 00268 if (nc_def_var_full(ncid, VAR_USHORT_NAME, NC_USHORT, 2, dimids, &ushort_varid, vo)) ERR; 00269 if (nc_def_var_full(ncid, VAR_UINT_NAME, NC_UINT, 2, dimids, &uint_varid, vo)) ERR; 00270 if (nc_def_var_full(ncid, VAR_INT64_NAME, NC_INT64, 2, dimids, &int64_varid, vo)) ERR; 00271 if (nc_def_var_full(ncid, VAR_UINT64_NAME, NC_UINT64, 2, dimids, &uint64_varid, vo)) ERR; 00272 if (nc_put_var_schar(ncid, byte_varid, (signed char *)byte_out)) ERR; 00273 if (nc_put_var_text(ncid, char_varid, (char *)char_out)) ERR; 00274 if (nc_put_var_short(ncid, short_varid, (short *)short_out)) ERR; 00275 if (nc_put_var_int(ncid, int_varid, (int *)int_out)) ERR; 00276 if (nc_put_var_float(ncid, float_varid, (float *)float_out)) ERR; 00277 if (nc_put_var_double(ncid, double_varid, (double *)double_out)) ERR; 00278 if (nc_put_var_ubyte(ncid, ubyte_varid, (unsigned char *)ubyte_out)) ERR; 00279 if (nc_put_var_ushort(ncid, ushort_varid, (unsigned short *)ushort_out)) ERR; 00280 if (nc_put_var_uint(ncid, uint_varid, (unsigned int *)uint_out)) ERR; 00281 if (nc_put_var_longlong(ncid, int64_varid, (long long *)int64_out)) ERR; 00282 if (nc_put_var_ulonglong(ncid, uint64_varid, (unsigned long long *)uint64_out)) ERR; 00283 if (nc_close(ncid)) ERR; 00284 00285 /* Open the file and check metadata. */ 00286 { 00287 nc_type xtype_in; 00288 int ndims_in, dimids_in[10], natts_in, varid_in; 00289 char name_in[NC_MAX_NAME+1]; 00290 00291 if (nc_open(FILE_NAME, 0, &ncid)) ERR; 00292 if (nc_inq_var(ncid, 0, name_in, &xtype_in, &ndims_in, dimids_in, 00293 &natts_in)) ERR; 00294 if (strcmp(name_in, VAR_BYTE_NAME) || xtype_in != NC_BYTE || 00295 ndims_in != 2 || natts_in != 0 || dimids_in[0] != dimids[0] || 00296 dimids_in[1] != dimids[1]) ERR; 00297 if (nc_inq_varid(ncid, VAR_BYTE_NAME, &varid_in)) ERR; 00298 if (varid_in != 0) ERR; 00299 if (nc_inq_varid(ncid, VAR_CHAR_NAME, &varid_in)) ERR; 00300 if (varid_in != 1) ERR; 00301 if (nc_inq_varid(ncid, VAR_SHORT_NAME, &varid_in)) ERR; 00302 if (varid_in != 2) ERR; 00303 if (nc_inq_varname(ncid, 0, name_in)) ERR; 00304 if (strcmp(name_in, VAR_BYTE_NAME)) ERR; 00305 if (nc_inq_varname(ncid, 1, name_in)) ERR; 00306 if (strcmp(name_in, VAR_CHAR_NAME)) ERR; 00307 if (nc_inq_varname(ncid, 2, name_in)) ERR; 00308 if (strcmp(name_in, VAR_SHORT_NAME)) ERR; 00309 if (nc_inq_vartype(ncid, 0, &xtype_in)) ERR; 00310 if (xtype_in != NC_BYTE) ERR; 00311 if (nc_inq_vartype(ncid, 1, &xtype_in)) ERR; 00312 if (xtype_in != NC_CHAR) ERR; 00313 if (nc_inq_vartype(ncid, 2, &xtype_in)) ERR; 00314 if (xtype_in != NC_SHORT) ERR; 00315 if (nc_close(ncid)) ERR; 00316 } 00317 00318 /* Open the file and check data. */ 00319 if (nc_open(FILE_NAME, 0, &ncid)) ERR; 00320 if (nc_get_var_schar(ncid, byte_varid, (signed char *)byte_in)) ERR; 00321 for (i = 0; i < DIM1_LEN; i++) 00322 for (j = 0; j < DIM2_LEN; j++) 00323 if (byte_in[i][j] != byte_out[i][j]) ERR; 00324 if (nc_get_var_short(ncid, short_varid, (short *)short_in)) ERR; 00325 for (i = 0; i < DIM1_LEN; i++) 00326 for (j = 0; j < DIM2_LEN; j++) 00327 if (short_in[i][j] != short_out[i][j]) ERR; 00328 if (nc_get_var_int(ncid, int_varid, (int *)int_in)) ERR; 00329 for (i = 0; i < DIM1_LEN; i++) 00330 for (j = 0; j < DIM2_LEN; j++) 00331 if (int_in[i][j] != int_out[i][j]) ERR; 00332 if (nc_get_var_float(ncid, float_varid, (float *)float_in)) ERR; 00333 for (i = 0; i < DIM1_LEN; i++) 00334 for (j = 0; j < DIM2_LEN; j++) 00335 if (float_in[i][j] != float_out[i][j]) ERR; 00336 if (nc_get_var_double(ncid, double_varid, (double *)double_in)) ERR; 00337 for (i = 0; i < DIM1_LEN; i++) 00338 for (j = 0; j < DIM2_LEN; j++) 00339 if (double_in[i][j] != double_out[i][j]) ERR; 00340 if (nc_get_var_double(ncid, double_varid, (double *)double_in)) ERR; 00341 for (i = 0; i < DIM1_LEN; i++) 00342 for (j = 0; j < DIM2_LEN; j++) 00343 if (double_in[i][j] != double_out[i][j]) ERR; 00344 if (nc_get_var_double(ncid, double_varid, (double *)double_in)) ERR; 00345 for (i = 0; i < DIM1_LEN; i++) 00346 for (j = 0; j < DIM2_LEN; j++) 00347 if (double_in[i][j] != double_out[i][j]) ERR; 00348 if (nc_get_var_uint(ncid, uint_varid, (unsigned int *)uint_in)) ERR; 00349 for (i = 0; i < DIM1_LEN; i++) 00350 for (j = 0; j < DIM2_LEN; j++) 00351 if (uint_in[i][j] != uint_out[i][j]) ERR; 00352 if (nc_get_var_longlong(ncid, int64_varid, (long long *)int64_in)) ERR; 00353 for (i = 0; i < DIM1_LEN; i++) 00354 for (j = 0; j < DIM2_LEN; j++) 00355 if (int64_in[i][j] != int64_out[i][j]) ERR; 00356 if (nc_get_var_ulonglong(ncid, uint64_varid, (unsigned long long *)uint64_in)) ERR; 00357 for (i = 0; i < DIM1_LEN; i++) 00358 for (j = 0; j < DIM2_LEN; j++) 00359 if (uint64_in[i][j] != uint64_out[i][j]) ERR; 00360 if (nc_close(ncid)) ERR; 00361 00362 /* Open the file and read everything as double. */ 00363 if (nc_open(FILE_NAME, 0, &ncid)) ERR; 00364 if (nc_get_var_double(ncid, byte_varid, (double *)double_in)) ERR; 00365 for (i = 0; i < DIM1_LEN; i++) 00366 for (j = 0; j < DIM2_LEN; j++) 00367 if (double_in[i][j] != (double)byte_out[i][j]) ERR; 00368 if (nc_get_var_double(ncid, ubyte_varid, (double *)double_in)) ERR; 00369 for (i = 0; i < DIM1_LEN; i++) 00370 for (j = 0; j < DIM2_LEN; j++) 00371 if (double_in[i][j] != (double)ubyte_out[i][j]) ERR; 00372 if (nc_get_var_double(ncid, short_varid, (double *)double_in)) ERR; 00373 for (i = 0; i < DIM1_LEN; i++) 00374 for (j = 0; j < DIM2_LEN; j++) 00375 if (double_in[i][j] != (double)short_out[i][j]) ERR; 00376 if (nc_get_var_double(ncid, ushort_varid, (double *)double_in)) ERR; 00377 for (i = 0; i < DIM1_LEN; i++) 00378 for (j = 0; j < DIM2_LEN; j++) 00379 if (double_in[i][j] != (double)ushort_out[i][j]) ERR; 00380 if (nc_get_var_double(ncid, int_varid, (double *)double_in)) ERR; 00381 for (i = 0; i < DIM1_LEN; i++) 00382 for (j = 0; j < DIM2_LEN; j++) 00383 if (double_in[i][j] != (double)int_out[i][j]) ERR; 00384 if (nc_get_var_double(ncid, uint_varid, (double *)double_in)) ERR; 00385 for (i = 0; i < DIM1_LEN; i++) 00386 for (j = 0; j < DIM2_LEN; j++) 00387 if (double_in[i][j] != (double)uint_out[i][j]) ERR; 00388 if (nc_get_var_double(ncid, float_varid, (double *)double_in)) ERR; 00389 for (i = 0; i < DIM1_LEN; i++) 00390 for (j = 0; j < DIM2_LEN; j++) 00391 if (double_in[i][j] != (double)float_out[i][j]) ERR; 00392 if (nc_get_var_double(ncid, int64_varid, (double *)double_in)) ERR; 00393 for (i = 0; i < DIM1_LEN; i++) 00394 for (j = 0; j < DIM2_LEN; j++) 00395 if (double_in[i][j] != (double)int64_out[i][j]) ERR; 00396 if (nc_get_var_double(ncid, uint64_varid, (double *)double_in)) ERR; 00397 for (i = 0; i < DIM1_LEN; i++) 00398 for (j = 0; j < DIM2_LEN; j++) 00399 if (double_in[i][j] != (double)uint64_out[i][j]) ERR; 00400 if (nc_close(ncid)) ERR; 00401 00402 /* Open the file and read everything as NC_BYTE. */ 00403 if (nc_open(FILE_NAME, 0, &ncid)) ERR; 00404 if (nc_get_var_schar(ncid, byte_varid, (signed char *)byte_in)) ERR; 00405 for (i = 0; i < DIM1_LEN; i++) 00406 for (j = 0; j < DIM2_LEN; j++) 00407 if (byte_in[i][j] != (signed char)byte_out[i][j]) ERR; 00408 if (nc_get_var_schar(ncid, ubyte_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00409 for (i = 0; i < DIM1_LEN; i++) 00410 for (j = 0; j < DIM2_LEN; j++) 00411 if (byte_in[i][j] != (signed char)ubyte_out[i][j]) ERR; 00412 if (nc_get_var_schar(ncid, short_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00413 for (i = 0; i < DIM1_LEN; i++) 00414 for (j = 0; j < DIM2_LEN; j++) 00415 if (byte_in[i][j] != (signed char)short_out[i][j]) ERR; 00416 if (nc_get_var_schar(ncid, ushort_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00417 for (i = 0; i < DIM1_LEN; i++) 00418 for (j = 0; j < DIM2_LEN; j++) 00419 if (byte_in[i][j] != (signed char)ushort_out[i][j]) ERR; 00420 if (nc_get_var_schar(ncid, int_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00421 for (i = 0; i < DIM1_LEN; i++) 00422 for (j = 0; j < DIM2_LEN; j++) 00423 if (byte_in[i][j] != (signed char)int_out[i][j]) ERR; 00424 if (nc_get_var_schar(ncid, uint_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00425 for (i = 0; i < DIM1_LEN; i++) 00426 for (j = 0; j < DIM2_LEN; j++) 00427 if (byte_in[i][j] != (signed char)uint_out[i][j]) ERR; 00428 if (nc_get_var_schar(ncid, float_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00429 for (i = 0; i < DIM1_LEN; i++) 00430 for (j = 0; j < DIM2_LEN; j++) 00431 if (byte_in[i][j] != (signed char)float_out[i][j]) ERR; 00432 if (nc_get_var_schar(ncid, int64_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00433 for (i = 0; i < DIM1_LEN; i++) 00434 for (j = 0; j < DIM2_LEN; j++) 00435 if (byte_in[i][j] != (signed char)int64_out[i][j]) ERR; 00436 if (nc_get_var_schar(ncid, uint64_varid, (signed char *)byte_in) != NC_ERANGE) ERR; 00437 for (i = 0; i < DIM1_LEN; i++) 00438 for (j = 0; j < DIM2_LEN; j++) 00439 if (byte_in[i][j] != (signed char)uint64_out[i][j]) ERR; 00440 if (nc_close(ncid)) ERR; 00441 00442 } 00443 SUMMARIZE_ERR; 00444 00445 FINAL_RESULTS; 00446 }
|
1.4.4