ncdf4a13/libsrc4/tst_vars.c File Reference

#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)


Define Documentation

#define DIM1_LEN   2
 

Definition at line 26 of file tst_vars.c.

#define DIM1_NAME   "x"
 

Definition at line 25 of file tst_vars.c.

#define DIM2_LEN   3
 

Definition at line 28 of file tst_vars.c.

#define DIM2_NAME   "y"
 

Definition at line 27 of file tst_vars.c.

#define DIM3_LEN   25
 

Definition at line 30 of file tst_vars.c.

Referenced by main().

#define DIM3_NAME   "strlen"
 

Definition at line 29 of file tst_vars.c.

Referenced by main().

#define FILE_NAME   "tst_vars.nc"
 

Definition at line 13 of file tst_vars.c.

#define VAR_BYTE_NAME   "Portrait_of_Maria_Trip"
 

Definition at line 14 of file tst_vars.c.

Referenced by main().

#define VAR_CHAR_NAME   "Landscape_wth_stone_bridge"
 

Definition at line 15 of file tst_vars.c.

Referenced by main().

#define VAR_DOUBLE_NAME   "Self-portrait_as_the_apstle_Paul"
 

Definition at line 19 of file tst_vars.c.

Referenced by main().

#define VAR_FLOAT_NAME   "The_Syndics_of_the_Drapers_Guild"
 

Definition at line 18 of file tst_vars.c.

Referenced by main().

#define VAR_INT64_NAME   "Titus_as_a_Monk"
 

Definition at line 23 of file tst_vars.c.

Referenced by main().

#define VAR_INT_NAME   "Jeremiah_lamenting_the_destruction_of_Jerusalem"
 

Definition at line 17 of file tst_vars.c.

Referenced by main().

#define VAR_SHORT_NAME   "Self-portrait_as_a_young_man"
 

Definition at line 16 of file tst_vars.c.

Referenced by main().

#define VAR_UBYTE_NAME   "Tobias_and_Anna_with_the_kid"
 

Definition at line 20 of file tst_vars.c.

Referenced by main().

#define VAR_UINT64_NAME   "The_Night_Watch"
 

Definition at line 24 of file tst_vars.c.

Referenced by main().

#define VAR_UINT_NAME   "The_prophetess_Anna"
 

Definition at line 22 of file tst_vars.c.

Referenced by main().

#define VAR_USHORT_NAME   "The_Jewish_Bride"
 

Definition at line 21 of file tst_vars.c.

Referenced by main().


Function Documentation

int main int  argc,
char **  argv
 

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 }


Generated on Thu Mar 16 18:11:55 2006 for nco by  doxygen 1.4.4