@@ -287,6 +287,64 @@ datGet1K( const HDSLoc * locator,
287
287
return * status ;
288
288
}
289
289
290
+ /*==================================*/
291
+ /* DAT_GET1W - Read 1D 16-bit int array */
292
+ /*==================================*/
293
+
294
+ int
295
+ datGet1W ( const HDSLoc * locator ,
296
+ size_t maxval ,
297
+ short values [],
298
+ size_t * actval ,
299
+ int * status ) {
300
+
301
+ hdsdim dims [1 ];
302
+
303
+ if (* status != SAI__OK ) return * status ;
304
+
305
+ datSize ( locator , actval , status );
306
+
307
+ if ( * status == SAI__OK && maxval < * actval ) {
308
+ * status = DAT__BOUND ;
309
+ emsSeti ( "IN" , (int )maxval );
310
+ emsSeti ( "SZ" , (int )* actval );
311
+ emsRep ( "DAT_GET1I_ERR" , "datGetW: Bounds mismatch: ^IN < ^SZ" , status );
312
+ } else {
313
+ dims [0 ] = * actval ;
314
+ datGetW ( locator , 1 , dims , values , status );
315
+ }
316
+ return * status ;
317
+ }
318
+
319
+ /*==================================*/
320
+ /* DAT_GET1UW - Read 1D 16-bit unsigned int array */
321
+ /*==================================*/
322
+
323
+ int
324
+ datGet1UW ( const HDSLoc * locator ,
325
+ size_t maxval ,
326
+ unsigned short values [],
327
+ size_t * actval ,
328
+ int * status ) {
329
+
330
+ hdsdim dims [1 ];
331
+
332
+ if (* status != SAI__OK ) return * status ;
333
+
334
+ datSize ( locator , actval , status );
335
+
336
+ if ( * status == SAI__OK && maxval < * actval ) {
337
+ * status = DAT__BOUND ;
338
+ emsSeti ( "IN" , (int )maxval );
339
+ emsSeti ( "SZ" , (int )* actval );
340
+ emsRep ( "DAT_GET1I_ERR" , "datGetUW: Bounds mismatch: ^IN < ^SZ" , status );
341
+ } else {
342
+ dims [0 ] = * actval ;
343
+ datGetUW ( locator , 1 , dims , values , status );
344
+ }
345
+ return * status ;
346
+ }
347
+
290
348
/*==================================*/
291
349
/* DAT_GET1R - Read 1D float array */
292
350
/*==================================*/
0 commit comments