@@ -2067,20 +2067,34 @@ int test_cdf5_new_data_types(int iosysid, int num_flavors, int *flavor, int my_r
20672067 int ncid ;
20682068 int ret ;
20692069
2070- int varid_ubyte ;
2071- int varid_ushort ;
2072- int varid_uint ;
2073- int varid_int64 ;
2074- int varid_uint64 ;
2070+ const int ARR_SZ = 10 ;
20752071
2076- unsigned char ubyte_data_in ;
2077- unsigned short ushort_data_in ;
2078- unsigned int uint_data_in ;
2079- long long int64_data_in ;
2080- unsigned long long uint64_data_in ;
2072+ int dimid_arr ;
2073+
2074+ int varid_ubyte , varid_ubyte_arr ;
2075+ int varid_ushort , varid_ushort_arr ;
2076+ int varid_uint , varid_uint_arr ;
2077+ int varid_int64 , varid_int64_arr ;
2078+ int varid_uint64 , varid_uint64_arr ;
2079+
2080+ unsigned char ubyte_data_in , ubyte_arr [ARR_SZ ];
2081+ unsigned short ushort_data_in , ushort_arr [ARR_SZ ];
2082+ unsigned int uint_data_in , uint_arr [ARR_SZ ];
2083+ long long int64_data_in , int64_arr [ARR_SZ ];
2084+ unsigned long long uint64_data_in , uint64_arr [ARR_SZ ];
2085+
2086+ PIO_Offset start = 0 , count = ARR_SZ ;
20812087
20822088 char filename [PIO_MAX_NAME ];
20832089
2090+ for (int i = 0 ; i < ARR_SZ ; i ++ ){
2091+ ubyte_arr [i ] = ubyte_data ;
2092+ ushort_arr [i ] = ushort_data ;
2093+ uint_arr [i ] = uint_data ;
2094+ int64_arr [i ] = int64_data ;
2095+ uint64_arr [i ] = uint64_data ;
2096+ }
2097+
20842098 for (int fmt = 0 ; fmt < num_flavors ; fmt ++ )
20852099 {
20862100 snprintf (filename , PIO_MAX_NAME , "%s_cdf5_new_data_types_fmt_%d.nc" , TEST_NAME , fmt );
@@ -2106,42 +2120,83 @@ int test_cdf5_new_data_types(int iosysid, int num_flavors, int *flavor, int my_r
21062120 if ((ret = PIOc_put_att_ulonglong (ncid , PIO_GLOBAL , "att_uint64" , PIO_UINT64 , 1 , & uint64_data )))
21072121 ERR (ret );
21082122
2123+ if ((ret = PIOc_def_dim (ncid , "test_dim_sz_10" , ((PIO_Offset ) ARR_SZ ), & dimid_arr )))
2124+ ERR (ret );
2125+
21092126 if ((ret = PIOc_def_var (ncid , "var_ubyte" , PIO_UBYTE , 0 , NULL , & varid_ubyte )))
21102127 ERR (ret );
21112128
2129+ if ((ret = PIOc_def_var (ncid , "var_ubyte_arr" , PIO_UBYTE , 1 , & dimid_arr , & varid_ubyte_arr )))
2130+ ERR (ret );
2131+
21122132 if ((ret = PIOc_def_var (ncid , "var_ushort" , PIO_USHORT , 0 , NULL , & varid_ushort )))
21132133 ERR (ret );
21142134
2135+ if ((ret = PIOc_def_var (ncid , "var_ushort_arr" , PIO_USHORT , 1 , & dimid_arr , & varid_ushort_arr )))
2136+ ERR (ret );
2137+
21152138 if ((ret = PIOc_def_var (ncid , "var_uint" , PIO_UINT , 0 , NULL , & varid_uint )))
21162139 ERR (ret );
21172140
2141+ if ((ret = PIOc_def_var (ncid , "var_uint_arr" , PIO_UINT , 1 , & dimid_arr , & varid_uint_arr )))
2142+ ERR (ret );
2143+
21182144 if ((ret = PIOc_def_var (ncid , "var_int64" , PIO_INT64 , 0 , NULL , & varid_int64 )))
21192145 ERR (ret );
21202146
2147+ if ((ret = PIOc_def_var (ncid , "var_int64_arr" , PIO_INT64 , 1 , & dimid_arr , & varid_int64_arr )))
2148+ ERR (ret );
2149+
21212150 if ((ret = PIOc_def_var (ncid , "var_uint64" , PIO_UINT64 , 0 , NULL , & varid_uint64 )))
21222151 ERR (ret );
21232152
2153+ if ((ret = PIOc_def_var (ncid , "var_uint64_arr" , PIO_UINT64 , 1 , & dimid_arr , & varid_uint64_arr )))
2154+ ERR (ret );
2155+
21242156 if ((ret = PIOc_enddef (ncid )))
21252157 ERR (ret );
21262158
21272159 if ((ret = PIOc_put_var_uchar (ncid , varid_ubyte , & ubyte_data )))
21282160 ERR (ret );
21292161
2162+ if ((ret = PIOc_put_vars_uchar (ncid , varid_ubyte_arr , & start , & count , NULL , ubyte_arr )))
2163+ ERR (ret );
2164+
21302165 if ((ret = PIOc_put_var_ushort (ncid , varid_ushort , & ushort_data )))
21312166 ERR (ret );
21322167
2168+ if ((ret = PIOc_put_vars_ushort (ncid , varid_ushort_arr , & start , & count , NULL , ushort_arr )))
2169+ ERR (ret );
2170+
21332171 if ((ret = PIOc_put_var_uint (ncid , varid_uint , & uint_data )))
21342172 ERR (ret );
21352173
2174+ if ((ret = PIOc_put_vars_uint (ncid , varid_uint_arr , & start , & count , NULL , uint_arr )))
2175+ ERR (ret );
2176+
21362177 if ((ret = PIOc_put_var_longlong (ncid , varid_int64 , & int64_data )))
21372178 ERR (ret );
21382179
2180+ if ((ret = PIOc_put_vars_longlong (ncid , varid_int64_arr , & start , & count , NULL , int64_arr )))
2181+ ERR (ret );
2182+
21392183 if ((ret = PIOc_put_var_ulonglong (ncid , varid_uint64 , & uint64_data )))
21402184 ERR (ret );
21412185
2186+ if ((ret = PIOc_put_vars_ulonglong (ncid , varid_uint64_arr , & start , & count , NULL , uint64_arr )))
2187+ ERR (ret );
2188+
21422189 if ((ret = PIOc_closefile (ncid )))
21432190 ERR (ret );
21442191
2192+ for (int i = 0 ; i < ARR_SZ ; i ++ ){
2193+ ubyte_arr [i ] = 0 ;
2194+ ushort_arr [i ] = 0 ;
2195+ uint_arr [i ] = 0 ;
2196+ int64_arr [i ] = 0 ;
2197+ uint64_arr [i ] = 0 ;
2198+ }
2199+
21452200 if ((ret = PIOc_openfile2 (iosysid , & ncid , & (flavor [fmt ]), filename , PIO_NOWRITE )))
21462201 ERR (ret );
21472202
@@ -2191,6 +2246,17 @@ int test_cdf5_new_data_types(int iosysid, int num_flavors, int *flavor, int my_r
21912246 if (ubyte_data_in != ubyte_data )
21922247 ERR (ERR_WRONG );
21932248
2249+ varid_ubyte_arr = -1 ;
2250+ if ((ret = PIOc_inq_varid (ncid , "var_ubyte_arr" , & varid_ubyte_arr )))
2251+ ERR (ret );
2252+
2253+ if ((ret = PIOc_get_vars_uchar (ncid , varid_ubyte_arr , & start , & count , NULL , ubyte_arr )))
2254+ ERR (ret );
2255+
2256+ for (int i = 0 ; i < ARR_SZ ; i ++ ){
2257+ if (ubyte_arr [i ] != ubyte_data ) { ERR (ERR_WRONG ); }
2258+ }
2259+
21942260 varid_ushort = -1 ;
21952261 if ((ret = PIOc_inq_varid (ncid , "var_ushort" , & varid_ushort )))
21962262 ERR (ret );
@@ -2202,6 +2268,17 @@ int test_cdf5_new_data_types(int iosysid, int num_flavors, int *flavor, int my_r
22022268 if (ushort_data_in != ushort_data )
22032269 ERR (ERR_WRONG );
22042270
2271+ varid_ushort_arr = -1 ;
2272+ if ((ret = PIOc_inq_varid (ncid , "var_ushort_arr" , & varid_ushort_arr )))
2273+ ERR (ret );
2274+
2275+ if ((ret = PIOc_get_vars_ushort (ncid , varid_ushort_arr , & start , & count , NULL , ushort_arr )))
2276+ ERR (ret );
2277+
2278+ for (int i = 0 ; i < ARR_SZ ; i ++ ){
2279+ if (ushort_arr [i ] != ushort_data ) { ERR (ERR_WRONG ); }
2280+ }
2281+
22052282 varid_uint = -1 ;
22062283 if ((ret = PIOc_inq_varid (ncid , "var_uint" , & varid_uint )))
22072284 ERR (ret );
@@ -2213,6 +2290,17 @@ int test_cdf5_new_data_types(int iosysid, int num_flavors, int *flavor, int my_r
22132290 if (uint_data_in != uint_data )
22142291 ERR (ERR_WRONG );
22152292
2293+ varid_uint_arr = -1 ;
2294+ if ((ret = PIOc_inq_varid (ncid , "var_uint_arr" , & varid_uint_arr )))
2295+ ERR (ret );
2296+
2297+ if ((ret = PIOc_get_vars_uint (ncid , varid_uint_arr , & start , & count , NULL , uint_arr )))
2298+ ERR (ret );
2299+
2300+ for (int i = 0 ; i < ARR_SZ ; i ++ ){
2301+ if (uint_arr [i ] != uint_data ) { ERR (ERR_WRONG ); }
2302+ }
2303+
22162304 varid_int64 = -1 ;
22172305 if ((ret = PIOc_inq_varid (ncid , "var_int64" , & varid_int64 )))
22182306 ERR (ret );
@@ -2224,6 +2312,17 @@ int test_cdf5_new_data_types(int iosysid, int num_flavors, int *flavor, int my_r
22242312 if (int64_data_in != int64_data )
22252313 ERR (ERR_WRONG );
22262314
2315+ varid_int64_arr = -1 ;
2316+ if ((ret = PIOc_inq_varid (ncid , "var_int64_arr" , & varid_int64_arr )))
2317+ ERR (ret );
2318+
2319+ if ((ret = PIOc_get_vars_longlong (ncid , varid_int64_arr , & start , & count , NULL , int64_arr )))
2320+ ERR (ret );
2321+
2322+ for (int i = 0 ; i < ARR_SZ ; i ++ ){
2323+ if (int64_arr [i ] != int64_data ) { ERR (ERR_WRONG ); }
2324+ }
2325+
22272326 varid_uint64 = -1 ;
22282327 if ((ret = PIOc_inq_varid (ncid , "var_uint64" , & varid_uint64 )))
22292328 ERR (ret );
@@ -2235,6 +2334,17 @@ int test_cdf5_new_data_types(int iosysid, int num_flavors, int *flavor, int my_r
22352334 if (uint64_data_in != uint64_data )
22362335 ERR (ERR_WRONG );
22372336
2337+ varid_uint64_arr = -1 ;
2338+ if ((ret = PIOc_inq_varid (ncid , "var_uint64_arr" , & varid_uint64_arr )))
2339+ ERR (ret );
2340+
2341+ if ((ret = PIOc_get_vars_ulonglong (ncid , varid_uint64_arr , & start , & count , NULL , uint64_arr )))
2342+ ERR (ret );
2343+
2344+ for (int i = 0 ; i < ARR_SZ ; i ++ ){
2345+ if (uint64_arr [i ] != uint64_data ) { ERR (ERR_WRONG ); }
2346+ }
2347+
22382348 if ((ret = PIOc_closefile (ncid )))
22392349 ERR (ret );
22402350 }
0 commit comments