Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

ncx.h File Reference

#include "ncconfig.h"
#include "rnd.h"
#include <stddef.h>
#include <errno.h>
#include <sys/types.h>

Go to the source code of this file.


Defines

#define ENOERR   0
#define NC_ERANGE   (-60)
#define NC_ENOMEM   (-61)
#define X_SIZEOF_CHAR   1
#define X_SIZEOF_SHORT   2
#define X_SIZEOF_INT   4
#define X_SIZEOF_FLOAT   4
#define X_SIZEOF_DOUBLE   8
#define X_SIZEOF_OFF_T   X_SIZEOF_INT
#define X_SIZEOF_SIZE_T   X_SIZEOF_INT
#define X_SCHAR_MIN   (-128)
#define X_SCHAR_MAX   127
#define X_UCHAR_MAX   255U
#define X_SHORT_MIN   (-32768)
#define X_SHRT_MIN   X_SHORT_MIN
#define X_SHORT_MAX   32767
#define X_SHRT_MAX   X_SHORT_MAX
#define X_USHORT_MAX   65535U
#define X_USHRT_MAX   X_USHORT_MAX
#define X_INT_MIN   (-2147483647-1)
#define X_INT_MAX   2147483647
#define X_UINT_MAX   4294967295U
#define X_FLOAT_MAX   3.40282347e+38f
#define X_FLOAT_MIN   (-X_FLOAT_MAX)
#define X_FLT_MAX   X_FLOAT_MAX
#define X_DOUBLE_MAX   1.7976931348623157e+308
#define X_DOUBLE_MIN   (-X_DOUBLE_MAX)
#define X_DBL_MAX   X_DOUBLE_MAX
#define X_SIZE_MAX   X_INT_MAX
#define X_OFF_MAX   X_INT_MAX
#define X_ALIGN   4
#define ncx_len_char(nelems)   _RNDUP((nelems), X_ALIGN)
#define ncx_len_short(nelems)   (((nelems) + (nelems)%2) * X_SIZEOF_SHORT)
#define ncx_len_int(nelems)   ((nelems) * X_SIZEOF_INT)
#define ncx_len_long(nelems)   ((nelems) * X_SIZEOF_LONG)
#define ncx_len_float(nelems)   ((nelems) * X_SIZEOF_FLOAT)
#define ncx_len_double(nelems)   ((nelems) * X_SIZEOF_DOUBLE)
#define ncx_getn_char_char(xpp, nelems, fillp)   ncx_getn_text(xpp, nelems, fillp)
#define ncx_putn_char_char(xpp, nelems, fillp)   ncx_putn_text(xpp, nelems, fillp)

Typedefs

typedef signed char schar

Functions

int ncx_get_short_schar (const void *xp, schar *ip)
int ncx_get_short_uchar (const void *xp, uchar *ip)
int ncx_get_short_short (const void *xp, short *ip)
int ncx_get_short_int (const void *xp, int *ip)
int ncx_get_short_long (const void *xp, long *ip)
int ncx_get_short_float (const void *xp, float *ip)
int ncx_get_short_double (const void *xp, double *ip)
int ncx_put_short_schar (void *xp, const schar *ip)
int ncx_put_short_uchar (void *xp, const uchar *ip)
int ncx_put_short_short (void *xp, const short *ip)
int ncx_put_short_int (void *xp, const int *ip)
int ncx_put_short_long (void *xp, const long *ip)
int ncx_put_short_float (void *xp, const float *ip)
int ncx_put_short_double (void *xp, const double *ip)
int ncx_get_int_schar (const void *xp, schar *ip)
int ncx_get_int_uchar (const void *xp, uchar *ip)
int ncx_get_int_short (const void *xp, short *ip)
int ncx_get_int_int (const void *xp, int *ip)
int ncx_get_int_long (const void *xp, long *ip)
int ncx_get_int_float (const void *xp, float *ip)
int ncx_get_int_double (const void *xp, double *ip)
int ncx_put_int_schar (void *xp, const schar *ip)
int ncx_put_int_uchar (void *xp, const uchar *ip)
int ncx_put_int_short (void *xp, const short *ip)
int ncx_put_int_int (void *xp, const int *ip)
int ncx_put_int_long (void *xp, const long *ip)
int ncx_put_int_float (void *xp, const float *ip)
int ncx_put_int_double (void *xp, const double *ip)
int ncx_get_float_schar (const void *xp, schar *ip)
int ncx_get_float_uchar (const void *xp, uchar *ip)
int ncx_get_float_short (const void *xp, short *ip)
int ncx_get_float_int (const void *xp, int *ip)
int ncx_get_float_long (const void *xp, long *ip)
int ncx_get_float_float (const void *xp, float *ip)
int ncx_get_float_double (const void *xp, double *ip)
int ncx_put_float_schar (void *xp, const schar *ip)
int ncx_put_float_uchar (void *xp, const uchar *ip)
int ncx_put_float_short (void *xp, const short *ip)
int ncx_put_float_int (void *xp, const int *ip)
int ncx_put_float_long (void *xp, const long *ip)
int ncx_put_float_float (void *xp, const float *ip)
int ncx_put_float_double (void *xp, const double *ip)
int ncx_get_double_schar (const void *xp, schar *ip)
int ncx_get_double_uchar (const void *xp, uchar *ip)
int ncx_get_double_short (const void *xp, short *ip)
int ncx_get_double_int (const void *xp, int *ip)
int ncx_get_double_long (const void *xp, long *ip)
int ncx_get_double_float (const void *xp, float *ip)
int ncx_get_double_double (const void *xp, double *ip)
int ncx_put_double_schar (void *xp, const schar *ip)
int ncx_put_double_uchar (void *xp, const uchar *ip)
int ncx_put_double_short (void *xp, const short *ip)
int ncx_put_double_int (void *xp, const int *ip)
int ncx_put_double_long (void *xp, const long *ip)
int ncx_put_double_float (void *xp, const float *ip)
int ncx_put_double_double (void *xp, const double *ip)
int ncx_get_size_t (const void **xpp, size_t *ulp)
int ncx_get_off_t (const void **xpp, off_t *lp)
int ncx_put_size_t (void **xpp, const size_t *ulp)
int ncx_put_off_t (void **xpp, const off_t *lp)
int ncx_getn_schar_schar (const void **xpp, size_t nelems, schar *ip)
int ncx_getn_schar_uchar (const void **xpp, size_t nelems, uchar *ip)
int ncx_getn_schar_short (const void **xpp, size_t nelems, short *ip)
int ncx_getn_schar_int (const void **xpp, size_t nelems, int *ip)
int ncx_getn_schar_long (const void **xpp, size_t nelems, long *ip)
int ncx_getn_schar_float (const void **xpp, size_t nelems, float *ip)
int ncx_getn_schar_double (const void **xpp, size_t nelems, double *ip)
int ncx_pad_getn_schar_schar (const void **xpp, size_t nelems, schar *ip)
int ncx_pad_getn_schar_uchar (const void **xpp, size_t nelems, uchar *ip)
int ncx_pad_getn_schar_short (const void **xpp, size_t nelems, short *ip)
int ncx_pad_getn_schar_int (const void **xpp, size_t nelems, int *ip)
int ncx_pad_getn_schar_long (const void **xpp, size_t nelems, long *ip)
int ncx_pad_getn_schar_float (const void **xpp, size_t nelems, float *ip)
int ncx_pad_getn_schar_double (const void **xpp, size_t nelems, double *ip)
int ncx_putn_schar_schar (void **xpp, size_t nelems, const schar *ip)
int ncx_putn_schar_uchar (void **xpp, size_t nelems, const uchar *ip)
int ncx_putn_schar_short (void **xpp, size_t nelems, const short *ip)
int ncx_putn_schar_int (void **xpp, size_t nelems, const int *ip)
int ncx_putn_schar_long (void **xpp, size_t nelems, const long *ip)
int ncx_putn_schar_float (void **xpp, size_t nelems, const float *ip)
int ncx_putn_schar_double (void **xpp, size_t nelems, const double *ip)
int ncx_pad_putn_schar_schar (void **xpp, size_t nelems, const schar *ip)
int ncx_pad_putn_schar_uchar (void **xpp, size_t nelems, const uchar *ip)
int ncx_pad_putn_schar_short (void **xpp, size_t nelems, const short *ip)
int ncx_pad_putn_schar_int (void **xpp, size_t nelems, const int *ip)
int ncx_pad_putn_schar_long (void **xpp, size_t nelems, const long *ip)
int ncx_pad_putn_schar_float (void **xpp, size_t nelems, const float *ip)
int ncx_pad_putn_schar_double (void **xpp, size_t nelems, const double *ip)
int ncx_getn_short_schar (const void **xpp, size_t nelems, schar *ip)
int ncx_getn_short_uchar (const void **xpp, size_t nelems, uchar *ip)
int ncx_getn_short_short (const void **xpp, size_t nelems, short *ip)
int ncx_getn_short_int (const void **xpp, size_t nelems, int *ip)
int ncx_getn_short_long (const void **xpp, size_t nelems, long *ip)
int ncx_getn_short_float (const void **xpp, size_t nelems, float *ip)
int ncx_getn_short_double (const void **xpp, size_t nelems, double *ip)
int ncx_pad_getn_short_schar (const void **xpp, size_t nelems, schar *ip)
int ncx_pad_getn_short_uchar (const void **xpp, size_t nelems, uchar *ip)
int ncx_pad_getn_short_short (const void **xpp, size_t nelems, short *ip)
int ncx_pad_getn_short_int (const void **xpp, size_t nelems, int *ip)
int ncx_pad_getn_short_long (const void **xpp, size_t nelems, long *ip)
int ncx_pad_getn_short_float (const void **xpp, size_t nelems, float *ip)
int ncx_pad_getn_short_double (const void **xpp, size_t nelems, double *ip)
int ncx_putn_short_schar (void **xpp, size_t nelems, const schar *ip)
int ncx_putn_short_uchar (void **xpp, size_t nelems, const uchar *ip)
int ncx_putn_short_short (void **xpp, size_t nelems, const short *ip)
int ncx_putn_short_int (void **xpp, size_t nelems, const int *ip)
int ncx_putn_short_long (void **xpp, size_t nelems, const long *ip)
int ncx_putn_short_float (void **xpp, size_t nelems, const float *ip)
int ncx_putn_short_double (void **xpp, size_t nelems, const double *ip)
int ncx_pad_putn_short_schar (void **xpp, size_t nelems, const schar *ip)
int ncx_pad_putn_short_uchar (void **xpp, size_t nelems, const uchar *ip)
int ncx_pad_putn_short_short (void **xpp, size_t nelems, const short *ip)
int ncx_pad_putn_short_int (void **xpp, size_t nelems, const int *ip)
int ncx_pad_putn_short_long (void **xpp, size_t nelems, const long *ip)
int ncx_pad_putn_short_float (void **xpp, size_t nelems, const float *ip)
int ncx_pad_putn_short_double (void **xpp, size_t nelems, const double *ip)
int ncx_getn_int_schar (const void **xpp, size_t nelems, schar *ip)
int ncx_getn_int_uchar (const void **xpp, size_t nelems, uchar *ip)
int ncx_getn_int_short (const void **xpp, size_t nelems, short *ip)
int ncx_getn_int_int (const void **xpp, size_t nelems, int *ip)
int ncx_getn_int_long (const void **xpp, size_t nelems, long *ip)
int ncx_getn_int_float (const void **xpp, size_t nelems, float *ip)
int ncx_getn_int_double (const void **xpp, size_t nelems, double *ip)
int ncx_putn_int_schar (void **xpp, size_t nelems, const schar *ip)
int ncx_putn_int_uchar (void **xpp, size_t nelems, const uchar *ip)
int ncx_putn_int_short (void **xpp, size_t nelems, const short *ip)
int ncx_putn_int_int (void **xpp, size_t nelems, const int *ip)
int ncx_putn_int_long (void **xpp, size_t nelems, const long *ip)
int ncx_putn_int_float (void **xpp, size_t nelems, const float *ip)
int ncx_putn_int_double (void **xpp, size_t nelems, const double *ip)
int ncx_getn_float_schar (const void **xpp, size_t nelems, schar *ip)
int ncx_getn_float_uchar (const void **xpp, size_t nelems, uchar *ip)
int ncx_getn_float_short (const void **xpp, size_t nelems, short *ip)
int ncx_getn_float_int (const void **xpp, size_t nelems, int *ip)
int ncx_getn_float_long (const void **xpp, size_t nelems, long *ip)
int ncx_getn_float_float (const void **xpp, size_t nelems, float *ip)
int ncx_getn_float_double (const void **xpp, size_t nelems, double *ip)
int ncx_putn_float_schar (void **xpp, size_t nelems, const schar *ip)
int ncx_putn_float_uchar (void **xpp, size_t nelems, const uchar *ip)
int ncx_putn_float_short (void **xpp, size_t nelems, const short *ip)
int ncx_putn_float_int (void **xpp, size_t nelems, const int *ip)
int ncx_putn_float_long (void **xpp, size_t nelems, const long *ip)
int ncx_putn_float_float (void **xpp, size_t nelems, const float *ip)
int ncx_putn_float_double (void **xpp, size_t nelems, const double *ip)
int ncx_getn_double_schar (const void **xpp, size_t nelems, schar *ip)
int ncx_getn_double_uchar (const void **xpp, size_t nelems, uchar *ip)
int ncx_getn_double_short (const void **xpp, size_t nelems, short *ip)
int ncx_getn_double_int (const void **xpp, size_t nelems, int *ip)
int ncx_getn_double_long (const void **xpp, size_t nelems, long *ip)
int ncx_getn_double_float (const void **xpp, size_t nelems, float *ip)
int ncx_getn_double_double (const void **xpp, size_t nelems, double *ip)
int ncx_putn_double_schar (void **xpp, size_t nelems, const schar *ip)
int ncx_putn_double_uchar (void **xpp, size_t nelems, const uchar *ip)
int ncx_putn_double_short (void **xpp, size_t nelems, const short *ip)
int ncx_putn_double_int (void **xpp, size_t nelems, const int *ip)
int ncx_putn_double_long (void **xpp, size_t nelems, const long *ip)
int ncx_putn_double_float (void **xpp, size_t nelems, const float *ip)
int ncx_putn_double_double (void **xpp, size_t nelems, const double *ip)
int ncx_getn_text (const void **xpp, size_t nchars, char *cp)
int ncx_pad_getn_text (const void **xpp, size_t nchars, char *cp)
int ncx_putn_text (void **xpp, size_t nchars, const char *cp)
int ncx_pad_putn_text (void **xpp, size_t nchars, const char *cp)
int ncx_getn_void (const void **xpp, size_t nchars, void *vp)
int ncx_pad_getn_void (const void **xpp, size_t nchars, void *vp)
int ncx_putn_void (void **xpp, size_t nchars, const void *vp)
int ncx_pad_putn_void (void **xpp, size_t nchars, const void *vp)

Define Documentation

#define ENOERR   0
 

Definition at line 42 of file ncx.h.

#define NC_ENOMEM   (-61)
 

Definition at line 48 of file ncx.h.

#define NC_ERANGE   (-60)
 

Definition at line 45 of file ncx.h.

#define ncx_getn_char_char xpp,
nelems,
fillp       ncx_getn_text(xpp, nelems, fillp)
 

Definition at line 645 of file ncx.h.

Referenced by getNCvx_char_char().

#define ncx_len_char nelems       _RNDUP((nelems), X_ALIGN)
 

Definition at line 117 of file ncx.h.

Referenced by ncx_len_NC_attrV().

#define ncx_len_double nelems       ((nelems) * X_SIZEOF_DOUBLE)
 

Definition at line 132 of file ncx.h.

Referenced by ncx_len_NC_attrV().

#define ncx_len_float nelems       ((nelems) * X_SIZEOF_FLOAT)
 

Definition at line 129 of file ncx.h.

Referenced by ncx_len_NC_attrV().

#define ncx_len_int nelems       ((nelems) * X_SIZEOF_INT)
 

Definition at line 123 of file ncx.h.

Referenced by ncx_len_NC_attrV(), ncx_len_NC_var(), v1h_get_NC_var(), and v1h_put_NC_var().

#define ncx_len_long nelems       ((nelems) * X_SIZEOF_LONG)
 

Definition at line 126 of file ncx.h.

#define ncx_len_short nelems       (((nelems) + (nelems)%2) * X_SIZEOF_SHORT)
 

Definition at line 120 of file ncx.h.

Referenced by ncx_len_NC_attrV().

#define ncx_putn_char_char xpp,
nelems,
fillp       ncx_putn_text(xpp, nelems, fillp)
 

Definition at line 646 of file ncx.h.

Referenced by NC_fill_char(), and putNCvx_char_char().

#define X_ALIGN   4
 

Definition at line 115 of file ncx.h.

Referenced by ffio_pgin(), ffio_pgout(), fill_NC_var(), ncio_ffio_get(), ncio_ffio_rel(), ncio_spx_get(), ncio_spx_rel(), ncx_check(), ncx_encode(), ncx_len_NC_string(), ncx_pad_getn_schar_double(), ncx_pad_getn_schar_float(), ncx_pad_getn_schar_int(), ncx_pad_getn_schar_long(), ncx_pad_getn_schar_schar(), ncx_pad_getn_schar_short(), ncx_pad_getn_schar_uchar(), ncx_pad_getn_text(), ncx_pad_getn_void(), ncx_pad_putn_schar_double(), ncx_pad_putn_schar_float(), ncx_pad_putn_schar_int(), ncx_pad_putn_schar_long(), ncx_pad_putn_schar_schar(), ncx_pad_putn_schar_short(), ncx_pad_putn_schar_uchar(), ncx_pad_putn_text(), ncx_pad_putn_void(), new_NC_string(), px_pgin(), px_pgout(), v1h_get_NC_attrV(), v1h_get_NC_string(), v1h_put_NC_attrV(), and v1h_put_NC_string().

#define X_DBL_MAX   X_DOUBLE_MAX
 

Definition at line 102 of file ncx.h.

#define X_DOUBLE_MAX   1.7976931348623157e+308
 

Definition at line 99 of file ncx.h.

#define X_DOUBLE_MIN   (-X_DOUBLE_MAX)
 

Definition at line 101 of file ncx.h.

#define X_FLOAT_MAX   3.40282347e+38f
 

Definition at line 91 of file ncx.h.

#define X_FLOAT_MIN   (-X_FLOAT_MAX)
 

Definition at line 92 of file ncx.h.

#define X_FLT_MAX   X_FLOAT_MAX
 

Definition at line 93 of file ncx.h.

#define X_INT_MAX   2147483647
 

Definition at line 84 of file ncx.h.

#define X_INT_MIN   (-2147483647-1)
 

Definition at line 83 of file ncx.h.

#define X_OFF_MAX   X_INT_MAX
 

Definition at line 105 of file ncx.h.

Referenced by ncx_put_off_t().

#define X_SCHAR_MAX   127
 

Definition at line 75 of file ncx.h.

Referenced by ncx_pad_putn_schar_double(), ncx_pad_putn_schar_float(), ncx_pad_putn_schar_int(), ncx_pad_putn_schar_long(), ncx_pad_putn_schar_short(), ncx_putn_schar_double(), ncx_putn_schar_float(), ncx_putn_schar_int(), ncx_putn_schar_long(), ncx_putn_schar_short(), t_getn_schar_double(), t_getn_schar_float(), t_getn_schar_int(), t_getn_schar_long(), t_getn_schar_schar(), t_getn_schar_short(), t_pad_getn_schar_double(), t_pad_getn_schar_float(), t_pad_getn_schar_int(), t_pad_getn_schar_long(), t_pad_getn_schar_schar(), t_pad_getn_schar_short(), t_pad_putn_schar_double(), t_pad_putn_schar_float(), t_pad_putn_schar_int(), t_pad_putn_schar_long(), t_pad_putn_schar_schar(), t_pad_putn_schar_short(), t_putn_schar_double(), t_putn_schar_float(), t_putn_schar_int(), t_putn_schar_long(), t_putn_schar_schar(), and t_putn_schar_short().

#define X_SCHAR_MIN   (-128)
 

Definition at line 74 of file ncx.h.

Referenced by ncx_pad_putn_schar_double(), ncx_pad_putn_schar_float(), ncx_pad_putn_schar_int(), ncx_pad_putn_schar_long(), ncx_pad_putn_schar_short(), ncx_putn_schar_double(), ncx_putn_schar_float(), ncx_putn_schar_int(), ncx_putn_schar_long(), ncx_putn_schar_short(), t_getn_schar_double(), t_getn_schar_float(), t_getn_schar_int(), t_getn_schar_long(), t_getn_schar_schar(), t_getn_schar_short(), t_pad_getn_schar_double(), t_pad_getn_schar_float(), t_pad_getn_schar_int(), t_pad_getn_schar_long(), t_pad_getn_schar_schar(), t_pad_getn_schar_short(), t_pad_putn_schar_double(), t_pad_putn_schar_float(), t_pad_putn_schar_int(), t_pad_putn_schar_long(), t_pad_putn_schar_schar(), t_pad_putn_schar_short(), t_putn_schar_double(), t_putn_schar_float(), t_putn_schar_int(), t_putn_schar_long(), t_putn_schar_schar(), and t_putn_schar_short().

#define X_SHORT_MAX   32767
 

Definition at line 79 of file ncx.h.

#define X_SHORT_MIN   (-32768)
 

Definition at line 77 of file ncx.h.

#define X_SHRT_MAX   X_SHORT_MAX
 

Definition at line 80 of file ncx.h.

#define X_SHRT_MIN   X_SHORT_MIN
 

Definition at line 78 of file ncx.h.

#define X_SIZE_MAX   X_INT_MAX
 

Definition at line 104 of file ncx.h.

#define X_SIZEOF_CHAR   1
 

Definition at line 55 of file ncx.h.

Referenced by NC_fill_char(), and NC_fill_schar().

#define X_SIZEOF_DOUBLE   8
 

Definition at line 62 of file ncx.h.

Referenced by fill_NC_var(), NC_fill_double(), ncx_getn_double_double(), ncx_getn_double_float(), ncx_getn_double_int(), ncx_getn_double_long(), ncx_getn_double_schar(), ncx_getn_double_short(), ncx_getn_double_uchar(), ncx_howmany(), ncx_putn_double_double(), ncx_putn_double_float(), ncx_putn_double_int(), ncx_putn_double_long(), ncx_putn_double_schar(), ncx_putn_double_short(), ncx_putn_double_uchar(), ncx_szof(), put_ix_double(), t_getn_double_double(), t_getn_double_float(), t_getn_double_int(), t_getn_double_long(), t_getn_double_schar(), t_getn_double_short(), t_getn_double_uchar(), t_putn_double_double(), t_putn_double_float(), t_putn_double_int(), t_putn_double_long(), t_putn_double_schar(), t_putn_double_short(), and t_putn_double_uchar().

#define X_SIZEOF_FLOAT   4
 

Definition at line 61 of file ncx.h.

Referenced by NC_fill_float(), ncx_getn_float_double(), ncx_getn_float_float(), ncx_getn_float_int(), ncx_getn_float_long(), ncx_getn_float_schar(), ncx_getn_float_short(), ncx_getn_float_uchar(), ncx_howmany(), ncx_putn_float_double(), ncx_putn_float_float(), ncx_putn_float_int(), ncx_putn_float_long(), ncx_putn_float_schar(), ncx_putn_float_short(), ncx_putn_float_uchar(), ncx_szof(), put_ix_float(), t_getn_float_double(), t_getn_float_float(), t_getn_float_int(), t_getn_float_long(), t_getn_float_schar(), t_getn_float_short(), t_getn_float_uchar(), t_putn_float_double(), t_putn_float_float(), t_putn_float_int(), t_putn_float_long(), t_putn_float_schar(), t_putn_float_short(), and t_putn_float_uchar().

#define X_SIZEOF_INT   4
 

Definition at line 57 of file ncx.h.

Referenced by NC_fill_int(), ncx_check(), ncx_encode(), ncx_getn_int_double(), ncx_getn_int_float(), ncx_getn_int_int(), ncx_getn_int_long(), ncx_getn_int_schar(), ncx_getn_int_short(), ncx_getn_int_uchar(), ncx_howmany(), ncx_putn_int_double(), ncx_putn_int_float(), ncx_putn_int_int(), ncx_putn_int_long(), ncx_putn_int_schar(), ncx_putn_int_short(), ncx_putn_int_uchar(), ncx_szof(), t_getn_int_double(), t_getn_int_float(), t_getn_int_int(), t_getn_int_long(), t_getn_int_schar(), t_getn_int_short(), t_getn_int_uchar(), t_putn_int_double(), t_putn_int_float(), t_putn_int_int(), t_putn_int_long(), t_putn_int_schar(), t_putn_int_short(), t_putn_int_uchar(), v1h_get_nc_type(), v1h_get_NCtype(), v1h_put_nc_type(), and v1h_put_NCtype().

#define X_SIZEOF_OFF_T   X_SIZEOF_INT
 

Definition at line 68 of file ncx.h.

Referenced by ncx_get_off_t(), ncx_len_NC_var(), ncx_put_off_t(), v1h_get_NC_var(), and v1h_put_NC_var().

#define X_SIZEOF_SHORT   2
 

Definition at line 56 of file ncx.h.

Referenced by NC_fill_short(), ncx_getn_short_double(), ncx_getn_short_float(), ncx_getn_short_int(), ncx_getn_short_long(), ncx_getn_short_schar(), ncx_getn_short_short(), ncx_getn_short_uchar(), ncx_howmany(), ncx_pad_getn_short_double(), ncx_pad_getn_short_float(), ncx_pad_getn_short_int(), ncx_pad_getn_short_long(), ncx_pad_getn_short_schar(), ncx_pad_getn_short_short(), ncx_pad_getn_short_uchar(), ncx_pad_putn_short_double(), ncx_pad_putn_short_float(), ncx_pad_putn_short_int(), ncx_pad_putn_short_long(), ncx_pad_putn_short_schar(), ncx_pad_putn_short_short(), ncx_pad_putn_short_uchar(), ncx_put_short_double(), ncx_put_short_float(), ncx_put_short_int(), ncx_put_short_long(), ncx_put_short_short(), ncx_putn_short_double(), ncx_putn_short_float(), ncx_putn_short_int(), ncx_putn_short_long(), ncx_putn_short_schar(), ncx_putn_short_short(), ncx_putn_short_uchar(), t_getn_short_double(), t_getn_short_float(), t_getn_short_int(), t_getn_short_long(), t_getn_short_schar(), t_getn_short_short(), t_getn_short_uchar(), t_pad_getn_short_double(), t_pad_getn_short_float(), t_pad_getn_short_int(), t_pad_getn_short_long(), t_pad_getn_short_schar(), t_pad_getn_short_short(), t_pad_getn_short_uchar(), t_pad_putn_short_double(), t_pad_putn_short_float(), t_pad_putn_short_int(), t_pad_putn_short_long(), t_pad_putn_short_schar(), t_pad_putn_short_short(), t_pad_putn_short_uchar(), t_putn_short_double(), t_putn_short_float(), t_putn_short_int(), t_putn_short_long(), t_putn_short_schar(), t_putn_short_short(), and t_putn_short_uchar().

#define X_SIZEOF_SIZE_T   X_SIZEOF_INT
 

Definition at line 69 of file ncx.h.

Referenced by ncx_get_size_t(), ncx_len_NC(), ncx_len_NC_attr(), ncx_len_NC_attrarray(), ncx_len_NC_dim(), ncx_len_NC_dimarray(), ncx_len_NC_string(), ncx_len_NC_var(), ncx_len_NC_vararray(), ncx_put_size_t(), v1h_get_size_t(), and v1h_put_size_t().

#define X_UCHAR_MAX   255U
 

Definition at line 76 of file ncx.h.

#define X_UINT_MAX   4294967295U
 

Definition at line 85 of file ncx.h.

#define X_USHORT_MAX   65535U
 

Definition at line 81 of file ncx.h.

#define X_USHRT_MAX   X_USHORT_MAX
 

Definition at line 82 of file ncx.h.


Typedef Documentation

typedef signed char schar
 

Definition at line 143 of file ncx.h.


Function Documentation

int ncx_get_double_double const void *    xp,
double *    ip
 

Definition at line 1163 of file ncx_cray.c.

References get_ix_double().

01164 {
01165         get_ix_double(xp, ip);
01166         return ENOERR;
01167 }

int ncx_get_double_float const void *    xp,
float *    ip
 

Definition at line 1139 of file ncx_cray.c.

References FLT_MAX, and get_ix_double().

Referenced by ncx_getn_double_float().

01140 {
01141 #if SIZEOF_FLOAT == SIZEOF_DOUBLE && FLT_MANT_DIG == DBL_MANT_DIG
01142         get_ix_double(xp, (double *)ip);
01143         return ENOERR;
01144 #else
01145         double xx;
01146         get_ix_double(xp, &xx);
01147         if(xx > FLT_MAX || xx < (-FLT_MAX))
01148         {
01149                 *ip = FLT_MAX;
01150                 return NC_ERANGE;
01151         }
01152         if(xx < (-FLT_MAX))
01153         {
01154                 *ip = (-FLT_MAX);
01155                 return NC_ERANGE;
01156         }
01157         *ip = (float) xx;
01158         return ENOERR;
01159 #endif
01160 }

int ncx_get_double_int const void *    xp,
int *    ip
 

Definition at line 1117 of file ncx_cray.c.

References get_ix_double().

Referenced by ncx_getn_double_int().

01118 {
01119         double xx;
01120         get_ix_double(xp, &xx);
01121         *ip = (int) xx;
01122         if(xx > INT_MAX || xx < INT_MIN)
01123                 return NC_ERANGE;
01124         return ENOERR;
01125 }

int ncx_get_double_long const void *    xp,
long *    ip
 

Definition at line 1128 of file ncx_cray.c.

References get_ix_double().

Referenced by ncx_getn_double_long().

01129 {
01130         double xx;
01131         get_ix_double(xp, &xx);
01132         *ip = (long) xx;
01133         if(xx > LONG_MAX || xx < LONG_MIN)
01134                 return NC_ERANGE;
01135         return ENOERR;
01136 }

int ncx_get_double_schar const void *    xp,
schar   ip
 

Definition at line 1084 of file ncx_cray.c.

References get_ix_double().

Referenced by ncx_getn_double_schar().

01085 {
01086         double xx;
01087         get_ix_double(xp, &xx);
01088         *ip = (schar) xx;
01089         if(xx > SCHAR_MAX || xx < SCHAR_MIN)
01090                 return NC_ERANGE;
01091         return ENOERR;
01092 }

int ncx_get_double_short const void *    xp,
short *    ip
 

Definition at line 1106 of file ncx_cray.c.

References get_ix_double(), SHORT_MAX, and SHORT_MIN.

Referenced by ncx_getn_double_short().

01107 {
01108         double xx;
01109         get_ix_double(xp, &xx);
01110         *ip = (short) xx;
01111         if(xx > SHORT_MAX || xx < SHORT_MIN)
01112                 return NC_ERANGE;
01113         return ENOERR;
01114 }

int ncx_get_double_uchar const void *    xp,
uchar   ip
 

Definition at line 1095 of file ncx_cray.c.

References get_ix_double().

Referenced by ncx_getn_double_uchar().

01096 {
01097         double xx;
01098         get_ix_double(xp, &xx);
01099         *ip = (uchar) xx;
01100         if(xx > UCHAR_MAX || xx < 0)
01101                 return NC_ERANGE;
01102         return ENOERR;
01103 }

int ncx_get_float_double const void *    xp,
double *    ip
 

Definition at line 914 of file ncx_cray.c.

References get_ix_float, and ncx_get_float_float().

Referenced by ncx_getn_float_double().

00915 {
00916 #if SIZEOF_FLOAT == SIZEOF_DOUBLE && FLT_MANT_DIG == DBL_MANT_DIG
00917         return ncx_get_float_float(xp, (float *)ip);
00918 #else
00919         float xx;
00920         get_ix_float(xp, &xx);
00921         *ip = xx;
00922         return ENOERR;
00923 #endif
00924 }

int ncx_get_float_float const void *    xp,
float *    ip
 

Definition at line 907 of file ncx_cray.c.

References get_ix_float.

Referenced by ncx_get_float_double().

00908 {
00909         get_ix_float(xp, ip);
00910         return ENOERR;
00911 }

int ncx_get_float_int const void *    xp,
int *    ip
 

Definition at line 885 of file ncx_cray.c.

References get_ix_float.

Referenced by ncx_getn_float_int().

00886 {
00887         float xx;
00888         get_ix_float(xp, &xx);
00889         *ip = (int) xx;
00890         if(xx > (double)INT_MAX || xx < (double)INT_MIN)
00891                 return NC_ERANGE;
00892         return ENOERR;
00893 }

int ncx_get_float_long const void *    xp,
long *    ip
 

Definition at line 896 of file ncx_cray.c.

References get_ix_float.

Referenced by ncx_getn_float_long().

00897 {
00898         float xx;
00899         get_ix_float(xp, &xx);
00900         *ip = (long) xx;
00901         if(xx > LONG_MAX || xx < LONG_MIN)
00902                 return NC_ERANGE;
00903         return ENOERR;
00904 }

int ncx_get_float_schar const void *    xp,
schar   ip
 

Definition at line 852 of file ncx_cray.c.

References get_ix_float.

Referenced by ncx_getn_float_schar().

00853 {
00854         float xx;
00855         get_ix_float(xp, &xx);
00856         *ip = (schar) xx;
00857         if(xx > SCHAR_MAX || xx < SCHAR_MIN)
00858                 return NC_ERANGE;
00859         return ENOERR;
00860 }

int ncx_get_float_short const void *    xp,
short *    ip
 

Definition at line 874 of file ncx_cray.c.

References get_ix_float, SHORT_MAX, and SHORT_MIN.

Referenced by ncx_getn_float_short().

00875 {
00876         float xx;
00877         get_ix_float(xp, &xx);
00878         *ip = (short) xx;
00879         if(xx > SHORT_MAX || xx < SHORT_MIN)
00880                 return NC_ERANGE;
00881         return ENOERR;
00882 }

int ncx_get_float_uchar const void *    xp,
uchar   ip
 

Definition at line 863 of file ncx_cray.c.

References get_ix_float.

Referenced by ncx_getn_float_uchar().

00864 {
00865         float xx;
00866         get_ix_float(xp, &xx);
00867         *ip = (uchar) xx;
00868         if(xx > UCHAR_MAX || xx < 0)
00869                 return NC_ERANGE;
00870         return ENOERR;
00871 }

int ncx_get_int_double const void *    xp,
double *    ip
 

Definition at line 453 of file ncx_cray.c.

References get_ix_int, and ix_int.

Referenced by ncx_getn_int_double().

00454 {
00455         ix_int xx;
00456         get_ix_int(xp, &xx);
00457         *ip = xx;
00458         return ENOERR;
00459 }

int ncx_get_int_float const void *    xp,
float *    ip
 

Definition at line 442 of file ncx_cray.c.

References FLT_MAX, get_ix_int, and ix_int.

Referenced by ncx_getn_int_float().

00443 {
00444         ix_int xx;
00445         get_ix_int(xp, &xx);
00446         *ip = xx;
00447         if(xx > FLT_MAX || xx < (-FLT_MAX))
00448                 return NC_ERANGE;
00449         return ENOERR;
00450 }

int ncx_get_int_int const void *    xp,
int *    ip
 

Definition at line 405 of file ncx_cray.c.

References get_ix_int, and ix_int.

Referenced by v1h_get_nc_type(), and v1h_get_NCtype().

00406 {
00407         ix_int xx;
00408         get_ix_int(xp, &xx);
00409         *ip = xx;
00410         return ENOERR;
00411 }

int ncx_get_int_long const void *    xp,
long *    ip
 

Definition at line 435 of file ncx_cray.c.

References byteoff, and cget_int_long().

00436 {
00437         cget_int_long(xp, ip, byteoff(xp));
00438         return ENOERR;
00439 }

int ncx_get_int_schar const void *    xp,
schar   ip
 

Definition at line 372 of file ncx_cray.c.

References get_ix_int, and ix_int.

Referenced by ncx_getn_int_schar().

00373 {
00374         ix_int xx;
00375         get_ix_int(xp, &xx);
00376         *ip = xx;
00377         if(xx > SCHAR_MAX || xx < SCHAR_MIN)
00378                 return NC_ERANGE;
00379         return ENOERR;
00380 }

int ncx_get_int_short const void *    xp,
short *    ip
 

Definition at line 394 of file ncx_cray.c.

References get_ix_int, ix_int, SHORT_MAX, and SHORT_MIN.

Referenced by ncx_getn_int_short().

00395 {
00396         ix_int xx;
00397         get_ix_int(xp, &xx);
00398         *ip = xx;
00399         if(xx > SHORT_MAX || xx < SHORT_MIN)
00400                 return NC_ERANGE;
00401         return ENOERR;
00402 }

int ncx_get_int_uchar const void *    xp,
uchar   ip
 

Definition at line 383 of file ncx_cray.c.

References get_ix_int, and ix_int.

Referenced by ncx_getn_int_uchar().

00384 {
00385         ix_int xx;
00386         get_ix_int(xp, &xx);
00387         *ip = xx;
00388         if(xx > UCHAR_MAX || xx < 0)
00389                 return NC_ERANGE;
00390         return ENOERR;
00391 }

int ncx_get_off_t const void **    xpp,
off_t *    lp
 

Definition at line 1290 of file ncx_cray.c.

References X_SIZEOF_OFF_T.

Referenced by v1h_get_NC_var().

01291 {
01292         /* similar to get_ix_int() */
01293         const uchar *cp = *xpp;
01294         assert((*cp & 0x80) == 0); /* No negative offsets stored in netcdf */
01295 
01296         *lp = *cp++ << 24;
01297         *lp |= (*cp++ << 16);
01298         *lp |= (*cp++ << 8);
01299         *lp |= *cp; 
01300 
01301         *xpp = (const void *)((const char *)(*xpp) + X_SIZEOF_OFF_T);
01302         return ENOERR;
01303 }

int ncx_get_short_double const void *    xp,
double *    ip
 

Definition at line 251 of file ncx_cray.c.

References get_ix_short, and ix_short.

Referenced by ncx_getn_short_double(), and ncx_pad_getn_short_double().

00252 {
00253         ix_short xx;
00254         get_ix_short(xp, &xx);
00255         *ip = xx;
00256         return ENOERR;
00257 }

int ncx_get_short_float const void *    xp,
float *    ip
 

Definition at line 242 of file ncx_cray.c.

References get_ix_short, and ix_short.

Referenced by ncx_getn_short_float(), and ncx_pad_getn_short_float().

00243 {
00244         ix_short xx;
00245         get_ix_short(xp, &xx);
00246         *ip = xx;
00247         return ENOERR;
00248 }

int ncx_get_short_int const void *    xp,
int *    ip
 

Definition at line 224 of file ncx_cray.c.

References get_ix_short, and ix_short.

Referenced by ncx_getn_short_int(), and ncx_pad_getn_short_int().

00225 {
00226         ix_short xx;
00227         get_ix_short(xp, &xx);
00228         *ip = xx;
00229         return ENOERR;
00230 }

int ncx_get_short_long const void *    xp,
long *    ip
 

Definition at line 233 of file ncx_cray.c.

References get_ix_short, and ix_short.

Referenced by ncx_getn_short_long(), and ncx_pad_getn_short_long().

00234 {
00235         ix_short xx;
00236         get_ix_short(xp, &xx);
00237         *ip = xx;
00238         return ENOERR;
00239 }

int ncx_get_short_schar const void *    xp,
schar   ip
 

Definition at line 195 of file ncx_cray.c.

References get_ix_short, and ix_short.

Referenced by ncx_getn_short_schar(), and ncx_pad_getn_short_schar().

00196 {
00197         ix_short xx;
00198         get_ix_short(xp, &xx);
00199         *ip = xx;
00200         if(xx > SCHAR_MAX || xx < SCHAR_MIN)
00201                 return NC_ERANGE;
00202         return ENOERR;
00203 }

int ncx_get_short_short const void *    xp,
short *    ip
 

Definition at line 217 of file ncx_cray.c.

References get_ix_short.

Referenced by ncx_pad_getn_short_short().

00218 {
00219         get_ix_short(xp, ip);
00220         return ENOERR;
00221 }

int ncx_get_short_uchar const void *    xp,
uchar   ip
 

Definition at line 206 of file ncx_cray.c.

References get_ix_short, and ix_short.

Referenced by ncx_getn_short_uchar(), and ncx_pad_getn_short_uchar().

00207 {
00208         ix_short xx;
00209         get_ix_short(xp, &xx);
00210         *ip = xx;
00211         if(xx > UCHAR_MAX || xx < 0)
00212                 return NC_ERANGE;
00213         return ENOERR;
00214 }

int ncx_get_size_t const void **    xpp,
size_t *    ulp
 

Definition at line 1255 of file ncx_cray.c.

References X_SIZEOF_SIZE_T.

Referenced by nc_get_NC(), read_numrecs(), and v1h_get_size_t().

01256 {
01257         /* similar to get_ix_int */
01258         const uchar *cp = *xpp;
01259         assert((*cp & 0x80) == 0); /* sizes limited to 2^31 -1 in netcdf */
01260 
01261         *ulp = *cp++ << 24;
01262         *ulp |= (*cp++ << 16);
01263         *ulp |= (*cp++ << 8);
01264         *ulp |= *cp; 
01265 
01266         *xpp = (const void *)((const char *)(*xpp) + X_SIZEOF_SIZE_T);
01267         return ENOERR;
01268 }

int ncx_getn_double_double const void **    xpp,
size_t    nelems,
double *    ip
 

Definition at line 3441 of file ncx_cray.c.

References X_SIZEOF_DOUBLE.

Referenced by getNCvx_double_double(), ncx_check(), ncx_getn_double_float(), ncx_pad_getn_Idouble(), and t_getn_double_double().

03442 {
03443         (void) memcpy(tp, *xpp, nelems * X_SIZEOF_DOUBLE);
03444         *xpp = (void *)((char *)(*xpp) + nelems * X_SIZEOF_DOUBLE);
03445         return ENOERR;
03446 }

int ncx_getn_double_float const void **    xpp,
size_t    nelems,
float *    ip
 

Definition at line 3499 of file ncx_cray.c.

References ncx_get_double_float(), ncx_getn_double_double(), and X_SIZEOF_DOUBLE.

Referenced by getNCvx_double_float(), ncx_pad_getn_Ifloat(), and t_getn_double_float().

03500 {
03501 #if SIZEOF_FLOAT == SIZEOF_DOUBLE && FLT_MANT_DIG == DBL_MANT_DIG
03502         return ncx_getn_double_double(xpp, nelems, (double *)tp);
03503 #else
03504         const char *xp = *xpp;
03505         int status = ENOERR;
03506 
03507         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03508         {
03509                 const int lstatus = ncx_get_double_float(xp, tp);
03510                 if(lstatus != ENOERR)
03511                         status = lstatus;
03512         }
03513 
03514         *xpp = (const void *)xp;
03515         return status;
03516 #endif
03517 }

int ncx_getn_double_int const void **    xpp,
size_t    nelems,
int *    ip
 

Definition at line 3373 of file ncx_cray.c.

References ncx_get_double_int(), and X_SIZEOF_DOUBLE.

Referenced by getNCvx_double_int(), ncx_pad_getn_Iint(), and t_getn_double_int().

03374 {
03375         const char *xp = *xpp;
03376         int status = ENOERR;
03377 
03378         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03379         {
03380                 const int lstatus = ncx_get_double_int(xp, tp);
03381                 if(lstatus != ENOERR)
03382                         status = lstatus;
03383         }
03384 
03385         *xpp = (const void *)xp;
03386         return status;
03387 }

int ncx_getn_double_long const void **    xpp,
size_t    nelems,
long *    ip
 

Definition at line 3390 of file ncx_cray.c.

References ncx_get_double_long(), and X_SIZEOF_DOUBLE.

Referenced by getNCvx_double_long(), ncx_pad_getn_Ilong(), and t_getn_double_long().

03391 {
03392         const char *xp = *xpp;
03393         int status = ENOERR;
03394 
03395         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03396         {
03397                 const int lstatus = ncx_get_double_long(xp, tp);
03398                 if(lstatus != ENOERR)
03399                         status = lstatus;
03400         }
03401 
03402         *xpp = (const void *)xp;
03403         return status;
03404 }

int ncx_getn_double_schar const void **    xpp,
size_t    nelems,
schar   ip
 

Definition at line 3322 of file ncx_cray.c.

References ncx_get_double_schar(), and X_SIZEOF_DOUBLE.

Referenced by getNCvx_double_schar(), ncx_pad_getn_Ischar(), and t_getn_double_schar().

03323 {
03324         const char *xp = *xpp;
03325         int status = ENOERR;
03326 
03327         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03328         {
03329                 const int lstatus = ncx_get_double_schar(xp, tp);
03330                 if(lstatus != ENOERR)
03331                         status = lstatus;
03332         }
03333 
03334         *xpp = (const void *)xp;
03335         return status;
03336 }

int ncx_getn_double_short const void **    xpp,
size_t    nelems,
short *    ip
 

Definition at line 3356 of file ncx_cray.c.

References ncx_get_double_short(), and X_SIZEOF_DOUBLE.

Referenced by getNCvx_double_short(), ncx_pad_getn_Ishort(), and t_getn_double_short().

03357 {
03358         const char *xp = *xpp;
03359         int status = ENOERR;
03360 
03361         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03362         {
03363                 const int lstatus = ncx_get_double_short(xp, tp);
03364                 if(lstatus != ENOERR)
03365                         status = lstatus;
03366         }
03367 
03368         *xpp = (const void *)xp;
03369         return status;
03370 }

int ncx_getn_double_uchar const void **    xpp,
size_t    nelems,
uchar   ip
 

Definition at line 3339 of file ncx_cray.c.

References ncx_get_double_uchar(), and X_SIZEOF_DOUBLE.

Referenced by getNCvx_double_uchar(), ncx_pad_getn_Iuchar(), and t_getn_double_uchar().

03340 {
03341         const char *xp = *xpp;
03342         int status = ENOERR;
03343 
03344         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03345         {
03346                 const int lstatus = ncx_get_double_uchar(xp, tp);
03347                 if(lstatus != ENOERR)
03348                         status = lstatus;
03349         }
03350 
03351         *xpp = (const void *)xp;
03352         return status;
03353 }

int ncx_getn_float_double const void **    xpp,
size_t    nelems,
double *    ip
 

Definition at line 3125 of file ncx_cray.c.

References ncx_get_float_double(), and X_SIZEOF_FLOAT.

Referenced by getNCvx_float_double(), ncx_pad_getn_Idouble(), and t_getn_float_double().

03126 {
03127         const char *xp = *xpp;
03128         int status = ENOERR;
03129 
03130         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
03131         {
03132                 const int lstatus = ncx_get_float_double(xp, tp);
03133                 if(lstatus != ENOERR)
03134                         status = lstatus;
03135         }
03136 
03137         *xpp = (const void *)xp;
03138         return status;
03139 }

int ncx_getn_float_float const void **    xpp,
size_t    nelems,
float *    ip
 

Definition at line 3080 of file ncx_cray.c.

References byteoff, cget_float_float(), and X_SIZEOF_FLOAT.

Referenced by getNCvx_float_float(), ncx_check(), ncx_pad_getn_Ifloat(), and t_getn_float_float().

03081 {
03082         const int bo = byteoff(*xpp);
03083 
03084         if(nelems == 0)
03085                 return ENOERR;
03086 
03087         if(bo != 0)
03088         {
03089                 cget_float_float(*xpp, tp, bo);
03090                 *xpp = ((char *) (*xpp) + X_SIZEOF_FLOAT);
03091                 nelems--;
03092                 if(nelems == 0)
03093                         return ENOERR;
03094                 tp++;
03095         }
03096 
03097         assert(byteoff(*xpp) == 0);
03098 
03099         {
03100                 const int nwords = (nelems * X_SIZEOF_FLOAT)/sizeof(word);
03101                 const word *wp = *xpp;
03102                 const word *const end = &wp[nwords];
03103 
03104 #pragma _CRI ivdep
03105                 for( ; wp < end; wp++, tp += 2)
03106                 {
03107                         cget_float_float(wp, tp, 0);
03108                         cget_float_float(wp, tp + 1, 1);
03109                 }
03110 
03111                 *xpp = ((char *) (*xpp) + nwords * sizeof(word)); 
03112                 nelems -= (nwords * sizeof(word)/X_SIZEOF_FLOAT);
03113                 if(nelems != 0)
03114                 {
03115                         cget_float_float(wp, tp, 0);
03116                         *xpp = ((char *) (*xpp) + X_SIZEOF_FLOAT);
03117                 }
03118         }
03119 
03120         return ENOERR;
03121 }

int ncx_getn_float_int const void **    xpp,
size_t    nelems,
int *    ip
 

Definition at line 3026 of file ncx_cray.c.

References ncx_get_float_int(), and X_SIZEOF_FLOAT.

Referenced by getNCvx_float_int(), ncx_pad_getn_Iint(), and t_getn_float_int().

03027 {
03028         const char *xp = *xpp;
03029         int status = ENOERR;
03030 
03031         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
03032         {
03033                 const int lstatus = ncx_get_float_int(xp, tp);
03034                 if(lstatus != ENOERR)
03035                         status = lstatus;
03036         }
03037 
03038         *xpp = (const void *)xp;
03039         return status;
03040 }

int ncx_getn_float_long const void **    xpp,
size_t    nelems,
long *    ip
 

Definition at line 3043 of file ncx_cray.c.

References ncx_get_float_long(), and X_SIZEOF_FLOAT.

Referenced by getNCvx_float_long(), ncx_pad_getn_Ilong(), and t_getn_float_long().

03044 {
03045         const char *xp = *xpp;
03046         int status = ENOERR;
03047 
03048         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
03049         {
03050                 const int lstatus = ncx_get_float_long(xp, tp);
03051                 if(lstatus != ENOERR)
03052                         status = lstatus;
03053         }
03054 
03055         *xpp = (const void *)xp;
03056         return status;
03057 }

int ncx_getn_float_schar const void **    xpp,
size_t    nelems,
schar   ip
 

Definition at line 2975 of file ncx_cray.c.

References ncx_get_float_schar(), and X_SIZEOF_FLOAT.

Referenced by getNCvx_float_schar(), ncx_pad_getn_Ischar(), and t_getn_float_schar().

02976 {
02977         const char *xp = *xpp;
02978         int status = ENOERR;
02979 
02980         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
02981         {
02982                 const int lstatus = ncx_get_float_schar(xp, tp);
02983                 if(lstatus != ENOERR)
02984                         status = lstatus;
02985         }
02986 
02987         *xpp = (const void *)xp;
02988         return status;
02989 }

int ncx_getn_float_short const void **    xpp,
size_t    nelems,
short *    ip
 

Definition at line 3009 of file ncx_cray.c.

References ncx_get_float_short(), and X_SIZEOF_FLOAT.

Referenced by getNCvx_float_short(), ncx_pad_getn_Ishort(), and t_getn_float_short().

03010 {
03011         const char *xp = *xpp;
03012         int status = ENOERR;
03013 
03014         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
03015         {
03016                 const int lstatus = ncx_get_float_short(xp, tp);
03017                 if(lstatus != ENOERR)
03018                         status = lstatus;
03019         }
03020 
03021         *xpp = (const void *)xp;
03022         return status;
03023 }

int ncx_getn_float_uchar const void **    xpp,
size_t    nelems,
uchar   ip
 

Definition at line 2992 of file ncx_cray.c.

References ncx_get_float_uchar(), and X_SIZEOF_FLOAT.

Referenced by getNCvx_float_uchar(), ncx_pad_getn_Iuchar(), and t_getn_float_uchar().

02993 {
02994         const char *xp = *xpp;
02995         int status = ENOERR;
02996 
02997         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
02998         {
02999                 const int lstatus = ncx_get_float_uchar(xp, tp);
03000                 if(lstatus != ENOERR)
03001                         status = lstatus;
03002         }
03003 
03004         *xpp = (const void *)xp;
03005         return status;
03006 }

int ncx_getn_int_double const void **    xpp,
size_t    nelems,
double *    ip
 

Definition at line 2744 of file ncx_cray.c.

References ncx_get_int_double(), and X_SIZEOF_INT.

Referenced by getNCvx_int_double(), ncx_pad_getn_Idouble(), and t_getn_int_double().

02745 {
02746         const char *xp = *xpp;
02747         int status = ENOERR;
02748 
02749         for( ; nelems != 0; nelems--, xp += X_SIZEOF_INT, tp++)
02750         {
02751                 const int lstatus = ncx_get_int_double(xp, tp);
02752                 if(lstatus != ENOERR)
02753                         status = lstatus;
02754         }
02755 
02756         *xpp = (const void *)xp;
02757         return status;
02758 }

int ncx_getn_int_float const void **    xpp,
size_t    nelems,
float *    ip
 

Definition at line 2727 of file ncx_cray.c.

References ncx_get_int_float(), and X_SIZEOF_INT.

Referenced by getNCvx_int_float(), ncx_pad_getn_Ifloat(), and t_getn_int_float().

02728 {
02729         const char *xp = *xpp;
02730         int status = ENOERR;
02731 
02732         for( ; nelems != 0; nelems--, xp += X_SIZEOF_INT, tp++)
02733         {
02734                 const int lstatus = ncx_get_int_float(xp, tp);
02735                 if(lstatus != ENOERR)
02736                         status = lstatus;
02737         }
02738 
02739         *xpp = (const void *)xp;
02740         return status;
02741 }

int ncx_getn_int_int const void **    xpp,
size_t    nelems,
int *    ip
 

Definition at line 2638 of file ncx_cray.c.

References byteoff, cget_int_int(), and X_SIZEOF_INT.

Referenced by getNCvx_int_int(), ncx_check(), ncx_pad_getn_Iint(), t_getn_int_int(), and v1h_get_NC_var().

02639 {
02640         const int bo = byteoff(*xpp);
02641 
02642         if(nelems == 0)
02643                 return ENOERR;
02644 
02645         if(bo != 0)
02646         {
02647                 cget_int_int(*xpp, tp, bo);
02648                 *xpp = ((char *) (*xpp) + X_SIZEOF_INT);
02649                 nelems--;
02650                 if(nelems == 0)
02651                         return ENOERR;
02652                 tp++;
02653         }
02654 
02655         assert(byteoff(*xpp) == 0);
02656 
02657         {
02658                 const int nwords = (nelems * X_SIZEOF_INT)/sizeof(word);
02659                 const word *wp = *xpp;
02660                 const word *const end = &wp[nwords];
02661 
02662 #pragma _CRI ivdep
02663                 for( ; wp < end; wp++, tp += 2)
02664                 {
02665                         cget_int_int(wp, tp, 0);
02666                         cget_int_int(wp, tp + 1, 1);
02667                 }
02668 
02669                 *xpp = ((char *) (*xpp) + nwords * sizeof(word)); 
02670                 nelems -= (nwords * sizeof(word)/X_SIZEOF_INT);
02671                 if(nelems != 0)
02672                 {
02673                         cget_int_int(wp, tp, 0);
02674                         *xpp = ((char *) (*xpp) + X_SIZEOF_INT);
02675                 }
02676         }
02677 
02678         return ENOERR;
02679 }

int ncx_getn_int_long const void **    xpp,
size_t    nelems,
long *    ip
 

Definition at line 2683 of file ncx_cray.c.

References byteoff, cget_int_long(), and X_SIZEOF_INT.

Referenced by getNCvx_int_long(), ncx_check(), ncx_pad_getn_Ilong(), and t_getn_int_long().

02684 {
02685         const int bo = byteoff(*xpp);
02686 
02687         if(nelems == 0)
02688                 return ENOERR;
02689 
02690         if(bo != 0)
02691         {
02692                 cget_int_long(*xpp, tp, bo);
02693                 *xpp = ((char *) (*xpp) + X_SIZEOF_INT);
02694                 nelems--;
02695                 if(nelems == 0)
02696                         return ENOERR;
02697                 tp++;
02698         }
02699 
02700         assert(byteoff(*xpp) == 0);
02701 
02702         {
02703                 const int nwords = (nelems * X_SIZEOF_INT)/sizeof(word);
02704                 const word *wp = *xpp;
02705                 const word *const end = &wp[nwords];
02706 
02707 #pragma _CRI ivdep
02708                 for( ; wp < end; wp++, tp += 2)
02709                 {
02710                         cget_int_long(wp, tp, 0);
02711                         cget_int_long(wp, tp + 1, 1);
02712                 }
02713 
02714                 *xpp = ((char *) (*xpp) + nwords * sizeof(word)); 
02715                 nelems -= (nwords * sizeof(word)/X_SIZEOF_INT);
02716                 if(nelems != 0)
02717                 {
02718                         cget_int_long(wp, tp, 0);
02719                         *xpp = ((char *) (*xpp) + X_SIZEOF_INT);
02720                 }
02721         }
02722 
02723         return ENOERR;
02724 }

int ncx_getn_int_schar const void **    xpp,
size_t    nelems,
schar   ip
 

Definition at line 2568 of file ncx_cray.c.

References ncx_get_int_schar(), and X_SIZEOF_INT.

Referenced by getNCvx_int_schar(), ncx_pad_getn_Ischar(), and t_getn_int_schar().

02569 {
02570         const char *xp = *xpp;
02571         int status = ENOERR;
02572 
02573         for( ; nelems != 0; nelems--, xp += X_SIZEOF_INT, tp++)
02574         {
02575                 const int lstatus = ncx_get_int_schar(xp, tp);
02576                 if(lstatus != ENOERR)
02577                         status = lstatus;
02578         }
02579 
02580         *xpp = (const void *)xp;
02581         return status;
02582 }

int ncx_getn_int_short const void **    xpp,
size_t    nelems,
short *    ip
 

Definition at line 2602 of file ncx_cray.c.

References ncx_get_int_short(), and X_SIZEOF_INT.

Referenced by getNCvx_int_short(), ncx_pad_getn_Ishort(), and t_getn_int_short().

02603 {
02604         const char *xp = *xpp;
02605         int status = ENOERR;
02606 
02607         for( ; nelems != 0; nelems--, xp += X_SIZEOF_INT, tp++)
02608         {
02609                 const int lstatus = ncx_get_int_short(xp, tp);
02610                 if(lstatus != ENOERR)
02611                         status = lstatus;
02612         }
02613 
02614         *xpp = (const void *)xp;
02615         return status;
02616 }

int ncx_getn_int_uchar const void **    xpp,
size_t    nelems,
uchar   ip
 

Definition at line 2585 of file ncx_cray.c.

References ncx_get_int_uchar(), and X_SIZEOF_INT.

Referenced by getNCvx_int_uchar(), ncx_pad_getn_Iuchar(), and t_getn_int_uchar().

02586 {
02587         const char *xp = *xpp;
02588         int status = ENOERR;
02589 
02590         for( ; nelems != 0; nelems--, xp += X_SIZEOF_INT, tp++)
02591         {
02592                 const int lstatus = ncx_get_int_uchar(xp, tp);
02593                 if(lstatus != ENOERR)
02594                         status = lstatus;
02595         }
02596 
02597         *xpp = (const void *)xp;
02598         return status;
02599 }

int ncx_getn_schar_double const void **    xpp,
size_t    nelems,
double *    ip
 

Definition at line 1387 of file ncx_cray.c.

Referenced by getNCvx_schar_double(), and t_getn_schar_double().

01388 {
01389         schar *xp = (schar *)(*xpp);
01390 
01391         while(nelems-- != 0)
01392         {
01393                 *tp++ = *xp++;
01394         }
01395 
01396         *xpp = (const void *)xp;
01397         return ENOERR;
01398 }

int ncx_getn_schar_float const void **    xpp,
size_t    nelems,
float *    ip
 

Definition at line 1373 of file ncx_cray.c.

Referenced by getNCvx_schar_float(), and t_getn_schar_float().

01374 {
01375         schar *xp = (schar *)(*xpp);
01376 
01377         while(nelems-- != 0)
01378         {
01379                 *tp++ = *xp++;
01380         }
01381 
01382         *xpp = (const void *)xp;
01383         return ENOERR;
01384 }

int ncx_getn_schar_int const void **    xpp,
size_t    nelems,
int *    ip
 

Definition at line 1345 of file ncx_cray.c.

Referenced by getNCvx_schar_int(), and t_getn_schar_int().

01346 {
01347         schar *xp = (schar *)(*xpp);
01348 
01349         while(nelems-- != 0)
01350         {
01351                 *tp++ = *xp++;
01352         }
01353 
01354         *xpp = (const void *)xp;
01355         return ENOERR;
01356 }

int ncx_getn_schar_long const void **    xpp,
size_t    nelems,
long *    ip
 

Definition at line 1359 of file ncx_cray.c.

Referenced by getNCvx_schar_long(), and t_getn_schar_long().

01360 {
01361         schar *xp = (schar *)(*xpp);
01362 
01363         while(nelems-- != 0)
01364         {
01365                 *tp++ = *xp++;
01366         }
01367 
01368         *xpp = (const void *)xp;
01369         return ENOERR;
01370 }

int ncx_getn_schar_schar const void **    xpp,
size_t    nelems,
schar   ip
 

Definition at line 1315 of file ncx_cray.c.

Referenced by getNCvx_schar_schar(), nc_get_NC(), ncx_check(), and t_getn_schar_schar().

01316 {
01317                 (void) memcpy(tp, *xpp, nelems);
01318         *xpp = (void *)((char *)(*xpp) + nelems);
01319         return ENOERR;
01320 
01321 }

int ncx_getn_schar_short const void **    xpp,
size_t    nelems,
short *    ip
 

Definition at line 1331 of file ncx_cray.c.

Referenced by getNCvx_schar_short(), and t_getn_schar_short().

01332 {
01333         schar *xp = (schar *)(*xpp);
01334 
01335         while(nelems-- != 0)
01336         {
01337                 *tp++ = *xp++;
01338         }
01339 
01340         *xpp = (const void *)xp;
01341         return ENOERR;
01342 }

int ncx_getn_schar_uchar const void **    xpp,
size_t    nelems,
uchar   ip
 

Definition at line 1323 of file ncx_cray.c.

Referenced by getNCvx_schar_uchar(), and t_getn_schar_uchar().

01324 {
01325                 (void) memcpy(tp, *xpp, nelems);
01326         *xpp = (void *)((char *)(*xpp) + nelems);
01327         return ENOERR;
01328 
01329 }

int ncx_getn_short_double const void **    xpp,
size_t    nelems,
double *    ip
 

Definition at line 2015 of file ncx_cray.c.

References ncx_get_short_double(), and X_SIZEOF_SHORT.

Referenced by getNCvx_short_double(), and t_getn_short_double().

02016 {
02017         const char *xp = *xpp;
02018         int status = ENOERR;
02019 
02020         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02021         {
02022                 const int lstatus = ncx_get_short_double(xp, tp);
02023                 if(lstatus != ENOERR)
02024                         status = lstatus;
02025         }
02026 
02027         *xpp = (const void *)xp;
02028         return status;
02029 }

int ncx_getn_short_float const void **    xpp,
size_t    nelems,
float *    ip
 

Definition at line 1998 of file ncx_cray.c.

References ncx_get_short_float(), and X_SIZEOF_SHORT.

Referenced by getNCvx_short_float(), and t_getn_short_float().

01999 {
02000         const char *xp = *xpp;
02001         int status = ENOERR;
02002 
02003         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02004         {
02005                 const int lstatus = ncx_get_short_float(xp, tp);
02006                 if(lstatus != ENOERR)
02007                         status = lstatus;
02008         }
02009 
02010         *xpp = (const void *)xp;
02011         return status;
02012 }

int ncx_getn_short_int const void **    xpp,
size_t    nelems,
int *    ip
 

Definition at line 1964 of file ncx_cray.c.

References ncx_get_short_int(), and X_SIZEOF_SHORT.

Referenced by getNCvx_short_int(), and t_getn_short_int().

01965 {
01966         const char *xp = *xpp;
01967         int status = ENOERR;
01968 
01969         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
01970         {
01971                 const int lstatus = ncx_get_short_int(xp, tp);
01972                 if(lstatus != ENOERR)
01973                         status = lstatus;
01974         }
01975 
01976         *xpp = (const void *)xp;
01977         return status;
01978 }

int ncx_getn_short_long const void **    xpp,
size_t    nelems,
long *    ip
 

Definition at line 1981 of file ncx_cray.c.

References ncx_get_short_long(), and X_SIZEOF_SHORT.

Referenced by getNCvx_short_long(), and t_getn_short_long().

01982 {
01983         const char *xp = *xpp;
01984         int status = ENOERR;
01985 
01986         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
01987         {
01988                 const int lstatus = ncx_get_short_long(xp, tp);
01989                 if(lstatus != ENOERR)
01990                         status = lstatus;
01991         }
01992 
01993         *xpp = (const void *)xp;
01994         return status;
01995 }

int ncx_getn_short_schar const void **    xpp,
size_t    nelems,
schar   ip
 

Definition at line 1814 of file ncx_cray.c.

References ncx_get_short_schar(), and X_SIZEOF_SHORT.

Referenced by getNCvx_short_schar(), and t_getn_short_schar().

01815 {
01816         const char *xp = *xpp;
01817         int status = ENOERR;
01818 
01819         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
01820         {
01821                 const int lstatus = ncx_get_short_schar(xp, tp);
01822                 if(lstatus != ENOERR)
01823                         status = lstatus;
01824         }
01825 
01826         *xpp = (const void *)xp;
01827         return status;
01828 }

int ncx_getn_short_short const void **    xpp,
size_t    nelems,
short *    ip
 

Definition at line 1867 of file ncx_cray.c.

References word_align(), and X_SIZEOF_SHORT.

Referenced by getNCvx_short_short(), ncx_check(), ncx_pad_getn_short_short(), and t_getn_short_short().

01868 {
01869         if(nelems > 0)
01870         {
01871         const word *wp = *xpp;
01872         const short *const last = &tp[nelems -1];
01873         const int rem = word_align(*xpp)/X_SIZEOF_SHORT;
01874         *xpp = ((const char *) (*xpp) + nelems * X_SIZEOF_SHORT);
01875 
01876         switch(rem) {
01877         case 3:
01878                 *tp = (short)((*wp >> 32) & 0xffff);
01879                 if(*tp & 0x8000)
01880                         *tp |= (~(0xffff));
01881                 if(tp == last)
01882                         return ENOERR;
01883                 tp++;
01884                 /*FALLTHRU*/    
01885         case 2:
01886                 *tp = (short)((*wp >> 16) & 0xffff);
01887                 if(*tp & 0x8000)
01888                         *tp |= (~(0xffff));
01889                 if(tp == last)
01890                         return ENOERR;
01891                 tp++;
01892                 /*FALLTHRU*/    
01893         case 1:
01894                 *tp = (short)(*wp & 0xffff);
01895                 if(*tp & 0x8000)
01896                         *tp |= (~(0xffff));
01897                 if(tp == last)
01898                         return ENOERR;
01899                 tp++;
01900                 wp++; /* Note Bene */
01901                 /*FALLTHRU*/    
01902         }
01903 
01904         assert((nelems - rem) != 0);
01905         {
01906                 const int nwords = ((nelems - rem) * X_SIZEOF_SHORT)
01907                                         / sizeof(word);
01908                 const word *const endw = &wp[nwords];
01909 
01910 #pragma _CRI ivdep
01911                 for( ; wp < endw; wp++)
01912                 {
01913 
01914                         *tp = (short)(*wp >> 48);
01915                         if(*tp & 0x8000)
01916                                 *tp |= (~(0xffff));
01917                         tp++;
01918 
01919                         *tp = (short)((*wp >> 32) & 0xffff);
01920                         if(*tp & 0x8000)
01921                                 *tp |= (~(0xffff));
01922                         tp++;
01923 
01924                         *tp = (short)((*wp >> 16) & 0xffff);
01925                         if(*tp & 0x8000)
01926                                 *tp |= (~(0xffff));
01927                         tp++;
01928 
01929                         *tp = (short)(*wp & 0xffff);
01930                         if(*tp & 0x8000)
01931                                 *tp |= (~(0xffff));
01932                         tp++;
01933                 }
01934         }
01935 
01936         if(tp <= last)
01937         {
01938                 *tp = (short)(*wp >> 48);
01939                 if(*tp & 0x8000)
01940                         *tp |= (~(0xffff));
01941                 tp++;
01942         }
01943         if(tp <= last)
01944         {
01945                 *tp = (short)((*wp >> 32) & 0xffff);
01946                 if(*tp & 0x8000)
01947                         *tp |= (~(0xffff));
01948                 tp++;
01949         }
01950         if(tp <= last)
01951         {
01952                 *tp = (short)((*wp >> 16) & 0xffff);
01953                 if(*tp & 0x8000)
01954                         *tp |= (~(0xffff));
01955                 tp++;
01956         }
01957 
01958         }
01959         return ENOERR;
01960 }

int ncx_getn_short_uchar const void **    xpp,
size_t    nelems,
uchar   ip
 

Definition at line 1831 of file ncx_cray.c.

References ncx_get_short_uchar(), and X_SIZEOF_SHORT.

Referenced by getNCvx_short_uchar(), and t_getn_short_uchar().

01832 {
01833         const char *xp = *xpp;
01834         int status = ENOERR;
01835 
01836         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
01837         {
01838                 const int lstatus = ncx_get_short_uchar(xp, tp);
01839                 if(lstatus != ENOERR)
01840                         status = lstatus;
01841         }
01842 
01843         *xpp = (const void *)xp;
01844         return status;
01845 }

int ncx_getn_text const void **    xpp,
size_t    nchars,
char *    cp
 

Definition at line 3733 of file ncx_cray.c.

Referenced by ncx_check().

03734 {
03735         (void) memcpy(tp, *xpp, nelems);
03736         *xpp = (void *)((char *)(*xpp) + nelems);
03737         return ENOERR;
03738 
03739 }

int ncx_getn_void const void **    xpp,
size_t    nchars,
void *    vp
 

Definition at line 3791 of file ncx_cray.c.

03792 {
03793         (void) memcpy(tp, *xpp, nelems);
03794         *xpp = (void *)((char *)(*xpp) + nelems);
03795         return ENOERR;
03796 
03797 }

int ncx_pad_getn_schar_double const void **    xpp,
size_t    nelems,
double *    ip
 

Definition at line 1502 of file ncx_cray.c.

References X_ALIGN.

Referenced by ncx_pad_getn_Idouble(), and t_pad_getn_schar_double().

01503 {
01504         size_t rndup = nelems % X_ALIGN;
01505         schar *xp = (schar *)(*xpp);
01506 
01507         if(rndup)
01508                 rndup = X_ALIGN - rndup;
01509 
01510         while(nelems-- != 0)
01511         {
01512                 *tp++ = *xp++;
01513         }
01514 
01515         *xpp = (void *)(xp + rndup);
01516         return ENOERR;
01517 }

int ncx_pad_getn_schar_float const void **    xpp,
size_t    nelems,
float *    ip
 

Definition at line 1484 of file ncx_cray.c.

References X_ALIGN.

Referenced by ncx_pad_getn_Ifloat(), and t_pad_getn_schar_float().

01485 {
01486         size_t rndup = nelems % X_ALIGN;
01487         schar *xp = (schar *)(*xpp);
01488 
01489         if(rndup)
01490                 rndup = X_ALIGN - rndup;
01491 
01492         while(nelems-- != 0)
01493         {
01494                 *tp++ = *xp++;
01495         }
01496 
01497         *xpp = (void *)(xp + rndup);
01498         return ENOERR;
01499 }

int ncx_pad_getn_schar_int const void **    xpp,
size_t    nelems,
int *    ip
 

Definition at line 1448 of file ncx_cray.c.

References X_ALIGN.

Referenced by ncx_pad_getn_Iint(), and t_pad_getn_schar_int().

01449 {
01450         size_t rndup = nelems % X_ALIGN;
01451         schar *xp = (schar *)(*xpp);
01452 
01453         if(rndup)
01454                 rndup = X_ALIGN - rndup;
01455 
01456         while(nelems-- != 0)
01457         {
01458                 *tp++ = *xp++;
01459         }
01460 
01461         *xpp = (void *)(xp + rndup);
01462         return ENOERR;
01463 }

int ncx_pad_getn_schar_long const void **    xpp,
size_t    nelems,
long *    ip
 

Definition at line 1466 of file ncx_cray.c.

References X_ALIGN.

Referenced by ncx_pad_getn_Ilong(), and t_pad_getn_schar_long().

01467 {
01468         size_t rndup = nelems % X_ALIGN;
01469         schar *xp = (schar *)(*xpp);
01470 
01471         if(rndup)
01472                 rndup = X_ALIGN - rndup;
01473 
01474         while(nelems-- != 0)
01475         {
01476                 *tp++ = *xp++;
01477         }
01478 
01479         *xpp = (void *)(xp + rndup);
01480         return ENOERR;
01481 }

int ncx_pad_getn_schar_schar const void **    xpp,
size_t    nelems,
schar   ip
 

Definition at line 1402 of file ncx_cray.c.

References X_ALIGN.

Referenced by ncx_check(), ncx_pad_getn_Ischar(), and t_pad_getn_schar_schar().

01403 {
01404                 size_t rndup = nelems % X_ALIGN;
01405 
01406         if(rndup)
01407                 rndup = X_ALIGN - rndup;
01408 
01409         (void) memcpy(tp, *xpp, nelems);
01410         *xpp = (void *)((char *)(*xpp) + nelems + rndup);
01411 
01412         return ENOERR;
01413 
01414 }

int ncx_pad_getn_schar_short const void **    xpp,
size_t    nelems,
short *    ip
 

Definition at line 1430 of file ncx_cray.c.

References X_ALIGN.

Referenced by ncx_pad_getn_Ishort(), and t_pad_getn_schar_short().

01431 {
01432         size_t rndup = nelems % X_ALIGN;
01433         schar *xp = (schar *)(*xpp);
01434 
01435         if(rndup)
01436                 rndup = X_ALIGN - rndup;
01437 
01438         while(nelems-- != 0)
01439         {
01440                 *tp++ = *xp++;
01441         }
01442 
01443         *xpp = (void *)(xp + rndup);
01444         return ENOERR;
01445 }

int ncx_pad_getn_schar_uchar const void **    xpp,
size_t    nelems,
uchar   ip
 

Definition at line 1416 of file ncx_cray.c.

References X_ALIGN.

Referenced by ncx_pad_getn_Iuchar(), and t_pad_getn_schar_uchar().

01417 {
01418                 size_t rndup = nelems % X_ALIGN;
01419 
01420         if(rndup)
01421                 rndup = X_ALIGN - rndup;
01422 
01423         (void) memcpy(tp, *xpp, nelems);
01424         *xpp = (void *)((char *)(*xpp) + nelems + rndup);
01425 
01426         return ENOERR;
01427 
01428 }

int ncx_pad_getn_short_double const void **    xpp,
size_t    nelems,
double *    ip
 

Definition at line 2158 of file ncx_cray.c.

References ncx_get_short_double(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_getn_Idouble(), and t_pad_getn_short_double().

02159 {
02160         const size_t rndup = nelems % 2;
02161 
02162         const char *xp = *xpp;
02163         int status = ENOERR;
02164 
02165         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02166         {
02167                 const int lstatus = ncx_get_short_double(xp, tp);
02168                 if(lstatus != ENOERR)
02169                         status = lstatus;
02170         }
02171 
02172         if(rndup != 0)
02173                 xp += X_SIZEOF_SHORT;
02174                 
02175         *xpp = (void *)xp;
02176         return status;
02177 }

int ncx_pad_getn_short_float const void **    xpp,
size_t    nelems,
float *    ip
 

Definition at line 2136 of file ncx_cray.c.

References ncx_get_short_float(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_getn_Ifloat(), and t_pad_getn_short_float().

02137 {
02138         const size_t rndup = nelems % 2;
02139 
02140         const char *xp = *xpp;
02141         int status = ENOERR;
02142 
02143         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02144         {
02145                 const int lstatus = ncx_get_short_float(xp, tp);
02146                 if(lstatus != ENOERR)
02147                         status = lstatus;
02148         }
02149 
02150         if(rndup != 0)
02151                 xp += X_SIZEOF_SHORT;
02152                 
02153         *xpp = (void *)xp;
02154         return status;
02155 }

int ncx_pad_getn_short_int const void **    xpp,
size_t    nelems,
int *    ip
 

Definition at line 2092 of file ncx_cray.c.

References ncx_get_short_int(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_getn_Iint(), and t_pad_getn_short_int().

02093 {
02094         const size_t rndup = nelems % 2;
02095 
02096         const char *xp = *xpp;
02097         int status = ENOERR;
02098 
02099         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02100         {
02101                 const int lstatus = ncx_get_short_int(xp, tp);
02102                 if(lstatus != ENOERR)
02103                         status = lstatus;
02104         }
02105 
02106         if(rndup != 0)
02107                 xp += X_SIZEOF_SHORT;
02108                 
02109         *xpp = (void *)xp;
02110         return status;
02111 }

int ncx_pad_getn_short_long const void **    xpp,
size_t    nelems,
long *    ip
 

Definition at line 2114 of file ncx_cray.c.

References ncx_get_short_long(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_getn_Ilong(), and t_pad_getn_short_long().

02115 {
02116         const size_t rndup = nelems % 2;
02117 
02118         const char *xp = *xpp;
02119         int status = ENOERR;
02120 
02121         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02122         {
02123                 const int lstatus = ncx_get_short_long(xp, tp);
02124                 if(lstatus != ENOERR)
02125                         status = lstatus;
02126         }
02127 
02128         if(rndup != 0)
02129                 xp += X_SIZEOF_SHORT;
02130                 
02131         *xpp = (void *)xp;
02132         return status;
02133 }

int ncx_pad_getn_short_schar const void **    xpp,
size_t    nelems,
schar   ip
 

Definition at line 2033 of file ncx_cray.c.

References ncx_get_short_schar(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_getn_Ischar(), and t_pad_getn_short_schar().

02034 {
02035         const size_t rndup = nelems % 2;
02036 
02037         const char *xp = *xpp;
02038         int status = ENOERR;
02039 
02040         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02041         {
02042                 const int lstatus = ncx_get_short_schar(xp, tp);
02043                 if(lstatus != ENOERR)
02044                         status = lstatus;
02045         }
02046 
02047         if(rndup != 0)
02048                 xp += X_SIZEOF_SHORT;
02049                 
02050         *xpp = (void *)xp;
02051         return status;
02052 }

int ncx_pad_getn_short_short const void **    xpp,
size_t    nelems,
short *    ip
 

Definition at line 2077 of file ncx_cray.c.

References ncx_getn_short_short(), and X_SIZEOF_SHORT.

Referenced by ncx_check(), ncx_pad_getn_Ishort(), and t_pad_getn_short_short().

02078 {
02079         const size_t rndup = nelems % 2;
02080 
02081         const int status = ncx_getn_short_short(xpp, nelems, tp);
02082 
02083         if(rndup != 0)
02084         {
02085                 *xpp = ((char *) (*xpp) + X_SIZEOF_SHORT);
02086         }
02087                 
02088         return status;
02089 }

int ncx_pad_getn_short_uchar const void **    xpp,
size_t    nelems,
uchar   ip
 

Definition at line 2055 of file ncx_cray.c.

References ncx_get_short_uchar(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_getn_Iuchar(), and t_pad_getn_short_uchar().

02056 {
02057         const size_t rndup = nelems % 2;
02058 
02059         const char *xp = *xpp;
02060         int status = ENOERR;
02061 
02062         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02063         {
02064                 const int lstatus = ncx_get_short_uchar(xp, tp);
02065                 if(lstatus != ENOERR)
02066                         status = lstatus;
02067         }
02068 
02069         if(rndup != 0)
02070                 xp += X_SIZEOF_SHORT;
02071                 
02072         *xpp = (void *)xp;
02073         return status;
02074 }

int ncx_pad_getn_text const void **    xpp,
size_t    nchars,
char *    cp
 

Definition at line 3742 of file ncx_cray.c.

References X_ALIGN.

Referenced by nc_get_att_text(), ncx_check(), and v1h_get_NC_string().

03743 {
03744         size_t rndup = nelems % X_ALIGN;
03745 
03746         if(rndup)
03747                 rndup = X_ALIGN - rndup;
03748 
03749         (void) memcpy(tp, *xpp, nelems);
03750         *xpp = (void *)((char *)(*xpp) + nelems + rndup);
03751 
03752         return ENOERR;
03753 
03754 }

int ncx_pad_getn_void const void **    xpp,
size_t    nchars,
void *    vp
 

Definition at line 3800 of file ncx_cray.c.

References X_ALIGN.

03801 {
03802         size_t rndup = nelems % X_ALIGN;
03803 
03804         if(rndup)
03805                 rndup = X_ALIGN - rndup;
03806 
03807         (void) memcpy(tp, *xpp, nelems);
03808         *xpp = (void *)((char *)(*xpp) + nelems + rndup);
03809 
03810         return ENOERR;
03811 
03812 }

int ncx_pad_putn_schar_double void **    xpp,
size_t    nelems,
const double *    ip
 

Definition at line 1781 of file ncx_cray.c.

References nada, X_ALIGN, X_SCHAR_MAX, and X_SCHAR_MIN.

Referenced by ncx_pad_putn_Idouble(), and t_pad_putn_schar_double().

01782 {
01783         int status = ENOERR;
01784         size_t rndup = nelems % X_ALIGN;
01785         schar *xp = (schar *)(*xpp);
01786 
01787         if(rndup)
01788                 rndup = X_ALIGN - rndup;
01789 
01790         while(nelems-- != 0)
01791         {
01792                 /* N.B. schar as signed */
01793                 if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
01794                         status = NC_ERANGE;
01795                 *xp++ = (schar) *tp++;
01796         }
01797 
01798 
01799         if(rndup)
01800         {
01801                 (void) memcpy(xp, nada, rndup);
01802                 xp += rndup;
01803         }
01804 
01805         *xpp = (void *)xp;
01806         return status;
01807 }

int ncx_pad_putn_schar_float void **    xpp,
size_t    nelems,
const float *    ip
 

Definition at line 1752 of file ncx_cray.c.

References nada, X_ALIGN, X_SCHAR_MAX, and X_SCHAR_MIN.

Referenced by ncx_pad_putn_Ifloat(), and t_pad_putn_schar_float().

01753 {
01754         int status = ENOERR;
01755         size_t rndup = nelems % X_ALIGN;
01756         schar *xp = (schar *)(*xpp);
01757 
01758         if(rndup)
01759                 rndup = X_ALIGN - rndup;
01760 
01761         while(nelems-- != 0)
01762         {
01763                 /* N.B. schar as signed */
01764                 if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
01765                         status = NC_ERANGE;
01766                 *xp++ = (schar) *tp++;
01767         }
01768 
01769 
01770         if(rndup)
01771         {
01772                 (void) memcpy(xp, nada, rndup);
01773                 xp += rndup;
01774         }
01775 
01776         *xpp = (void *)xp;
01777         return status;
01778 }

int ncx_pad_putn_schar_int void **    xpp,
size_t    nelems,
const int *    ip
 

Definition at line 1694 of file ncx_cray.c.

References nada, X_ALIGN, X_SCHAR_MAX, and X_SCHAR_MIN.

Referenced by ncx_pad_putn_Iint(), and t_pad_putn_schar_int().

01695 {
01696         int status = ENOERR;
01697         size_t rndup = nelems % X_ALIGN;
01698         schar *xp = (schar *)(*xpp);
01699 
01700         if(rndup)
01701                 rndup = X_ALIGN - rndup;
01702 
01703         while(nelems-- != 0)
01704         {
01705                 /* N.B. schar as signed */
01706                 if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
01707                         status = NC_ERANGE;
01708                 *xp++ = (schar) *tp++;
01709         }
01710 
01711 
01712         if(rndup)
01713         {
01714                 (void) memcpy(xp, nada, rndup);
01715                 xp += rndup;
01716         }
01717 
01718         *xpp = (void *)xp;
01719         return status;
01720 }

int ncx_pad_putn_schar_long void **    xpp,
size_t    nelems,
const long *    ip
 

Definition at line 1723 of file ncx_cray.c.

References nada, X_ALIGN, X_SCHAR_MAX, and X_SCHAR_MIN.

Referenced by ncx_pad_putn_Ilong(), and t_pad_putn_schar_long().

01724 {
01725         int status = ENOERR;
01726         size_t rndup = nelems % X_ALIGN;
01727         schar *xp = (schar *)(*xpp);
01728 
01729         if(rndup)
01730                 rndup = X_ALIGN - rndup;
01731 
01732         while(nelems-- != 0)
01733         {
01734                 /* N.B. schar as signed */
01735                 if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
01736                         status = NC_ERANGE;
01737                 *xp++ = (schar) *tp++;
01738         }
01739 
01740 
01741         if(rndup)
01742         {
01743                 (void) memcpy(xp, nada, rndup);
01744                 xp += rndup;
01745         }
01746 
01747         *xpp = (void *)xp;
01748         return status;
01749 }

int ncx_pad_putn_schar_schar void **    xpp,
size_t    nelems,
const schar   ip
 

Definition at line 1625 of file ncx_cray.c.

References nada, and X_ALIGN.

Referenced by ncx_encode(), ncx_pad_putn_Ischar(), and t_pad_putn_schar_schar().

01626 {
01627                 size_t rndup = nelems % X_ALIGN;
01628 
01629         if(rndup)
01630                 rndup = X_ALIGN - rndup;
01631 
01632         (void) memcpy(*xpp, tp, nelems);
01633         *xpp = (void *)((char *)(*xpp) + nelems);
01634 
01635         if(rndup)
01636         {
01637                 (void) memcpy(*xpp, nada, rndup);
01638                 *xpp = (void *)((char *)(*xpp) + rndup);
01639         }
01640         
01641         return ENOERR;
01642 
01643 }

int ncx_pad_putn_schar_short void **    xpp,
size_t    nelems,
const short *    ip
 

Definition at line 1665 of file ncx_cray.c.

References nada, X_ALIGN, X_SCHAR_MAX, and X_SCHAR_MIN.

Referenced by ncx_pad_putn_Ishort(), and t_pad_putn_schar_short().

01666 {
01667         int status = ENOERR;
01668         size_t rndup = nelems % X_ALIGN;
01669         schar *xp = (schar *)(*xpp);
01670 
01671         if(rndup)
01672                 rndup = X_ALIGN - rndup;
01673 
01674         while(nelems-- != 0)
01675         {
01676                 /* N.B. schar as signed */
01677                 if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
01678                         status = NC_ERANGE;
01679                 *xp++ = (schar) *tp++;
01680         }
01681 
01682 
01683         if(rndup)
01684         {
01685                 (void) memcpy(xp, nada, rndup);
01686                 xp += rndup;
01687         }
01688 
01689         *xpp = (void *)xp;
01690         return status;
01691 }

int ncx_pad_putn_schar_uchar void **    xpp,
size_t    nelems,
const uchar   ip
 

Definition at line 1645 of file ncx_cray.c.

References nada, and X_ALIGN.

Referenced by ncx_pad_putn_Iuchar(), and t_pad_putn_schar_uchar().

01646 {
01647                 size_t rndup = nelems % X_ALIGN;
01648 
01649         if(rndup)
01650                 rndup = X_ALIGN - rndup;
01651 
01652         (void) memcpy(*xpp, tp, nelems);
01653         *xpp = (void *)((char *)(*xpp) + nelems);
01654 
01655         if(rndup)
01656         {
01657                 (void) memcpy(*xpp, nada, rndup);
01658                 *xpp = (void *)((char *)(*xpp) + rndup);
01659         }
01660         
01661         return ENOERR;
01662 
01663 }

int ncx_pad_putn_short_double void **    xpp,
size_t    nelems,
const double *    ip
 

Definition at line 2539 of file ncx_cray.c.

References nada, ncx_put_short_double(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_Idouble(), and t_pad_putn_short_double().

02540 {
02541         const size_t rndup = nelems % 2;
02542 
02543         char *xp = *xpp;
02544         int status = ENOERR;
02545 
02546         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02547         {
02548                 const int lstatus = ncx_put_short_double(xp, tp);
02549                 if(lstatus != ENOERR)
02550                         status = lstatus;
02551         }
02552 
02553         if(rndup != 0)
02554         {
02555                 (void) memcpy(xp, nada, X_SIZEOF_SHORT);
02556                 xp += X_SIZEOF_SHORT;   
02557         }
02558                 
02559         *xpp = (void *)xp;
02560         return status;
02561 }

int ncx_pad_putn_short_float void **    xpp,
size_t    nelems,
const float *    ip
 

Definition at line 2514 of file ncx_cray.c.

References nada, ncx_put_short_float(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_Ifloat(), and t_pad_putn_short_float().

02515 {
02516         const size_t rndup = nelems % 2;
02517 
02518         char *xp = *xpp;
02519         int status = ENOERR;
02520 
02521         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02522         {
02523                 const int lstatus = ncx_put_short_float(xp, tp);
02524                 if(lstatus != ENOERR)
02525                         status = lstatus;
02526         }
02527 
02528         if(rndup != 0)
02529         {
02530                 (void) memcpy(xp, nada, X_SIZEOF_SHORT);
02531                 xp += X_SIZEOF_SHORT;   
02532         }
02533                 
02534         *xpp = (void *)xp;
02535         return status;
02536 }

int ncx_pad_putn_short_int void **    xpp,
size_t    nelems,
const int *    ip
 

Definition at line 2464 of file ncx_cray.c.

References nada, ncx_put_short_int(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_Iint(), and t_pad_putn_short_int().

02465 {
02466         const size_t rndup = nelems % 2;
02467 
02468         char *xp = *xpp;
02469         int status = ENOERR;
02470 
02471         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02472         {
02473                 const int lstatus = ncx_put_short_int(xp, tp);
02474                 if(lstatus != ENOERR)
02475                         status = lstatus;
02476         }
02477 
02478         if(rndup != 0)
02479         {
02480                 (void) memcpy(xp, nada, X_SIZEOF_SHORT);
02481                 xp += X_SIZEOF_SHORT;   
02482         }
02483                 
02484         *xpp = (void *)xp;
02485         return status;
02486 }

int ncx_pad_putn_short_long void **    xpp,
size_t    nelems,
const long *    ip
 

Definition at line 2489 of file ncx_cray.c.

References nada, ncx_put_short_long(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_Ilong(), and t_pad_putn_short_long().

02490 {
02491         const size_t rndup = nelems % 2;
02492 
02493         char *xp = *xpp;
02494         int status = ENOERR;
02495 
02496         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02497         {
02498                 const int lstatus = ncx_put_short_long(xp, tp);
02499                 if(lstatus != ENOERR)
02500                         status = lstatus;
02501         }
02502 
02503         if(rndup != 0)
02504         {
02505                 (void) memcpy(xp, nada, X_SIZEOF_SHORT);
02506                 xp += X_SIZEOF_SHORT;   
02507         }
02508                 
02509         *xpp = (void *)xp;
02510         return status;
02511 }

int ncx_pad_putn_short_schar void **    xpp,
size_t    nelems,
const schar   ip
 

Definition at line 2399 of file ncx_cray.c.

References nada, ncx_put_short_schar(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_Ischar(), and t_pad_putn_short_schar().

02400 {
02401         const size_t rndup = nelems % 2;
02402 
02403         char *xp = *xpp;
02404         int status = ENOERR;
02405 
02406         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02407         {
02408                 const int lstatus = ncx_put_short_schar(xp, tp);
02409                 if(lstatus != ENOERR)
02410                         status = lstatus;
02411         }
02412 
02413         if(rndup != 0)
02414         {
02415                 (void) memcpy(xp, nada, X_SIZEOF_SHORT);
02416                 xp += X_SIZEOF_SHORT;   
02417         }
02418                 
02419         *xpp = (void *)xp;
02420         return status;
02421 }

int ncx_pad_putn_short_short void **    xpp,
size_t    nelems,
const short *    ip
 

Definition at line 2449 of file ncx_cray.c.

References ncx_putn_short_short(), and X_SIZEOF_SHORT.

Referenced by ncx_encode(), ncx_pad_putn_Ishort(), and t_pad_putn_short_short().

02450 {
02451         const size_t rndup = nelems % 2;
02452 
02453         const int status = ncx_putn_short_short(xpp, nelems, tp);
02454 
02455         if(rndup != 0)
02456         {
02457                 *xpp = ((char *) (*xpp) + X_SIZEOF_SHORT);
02458         }
02459                 
02460         return status;
02461 }

int ncx_pad_putn_short_uchar void **    xpp,
size_t    nelems,
const uchar   ip
 

Definition at line 2424 of file ncx_cray.c.

References nada, ncx_put_short_uchar(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_Iuchar(), and t_pad_putn_short_uchar().

02425 {
02426         const size_t rndup = nelems % 2;
02427 
02428         char *xp = *xpp;
02429         int status = ENOERR;
02430 
02431         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02432         {
02433                 const int lstatus = ncx_put_short_uchar(xp, tp);
02434                 if(lstatus != ENOERR)
02435                         status = lstatus;
02436         }
02437 
02438         if(rndup != 0)
02439         {
02440                 (void) memcpy(xp, nada, X_SIZEOF_SHORT);
02441                 xp += X_SIZEOF_SHORT;   
02442         }
02443                 
02444         *xpp = (void *)xp;
02445         return status;
02446 }

int ncx_pad_putn_text void **    xpp,
size_t    nchars,
const char *    cp
 

Definition at line 3767 of file ncx_cray.c.

References nada, and X_ALIGN.

Referenced by nc_put_att_text(), ncx_encode(), and v1h_put_NC_string().

03768 {
03769         size_t rndup = nelems % X_ALIGN;
03770 
03771         if(rndup)
03772                 rndup = X_ALIGN - rndup;
03773 
03774         (void) memcpy(*xpp, tp, nelems);
03775         *xpp = (void *)((char *)(*xpp) + nelems);
03776 
03777         if(rndup)
03778         {
03779                 (void) memcpy(*xpp, nada, rndup);
03780                 *xpp = (void *)((char *)(*xpp) + rndup);
03781         }
03782         
03783         return ENOERR;
03784 
03785 }

int ncx_pad_putn_void void **    xpp,
size_t    nchars,
const void *    vp
 

Definition at line 3825 of file ncx_cray.c.

References nada, and X_ALIGN.

03826 {
03827         size_t rndup = nelems % X_ALIGN;
03828 
03829         if(rndup)
03830                 rndup = X_ALIGN - rndup;
03831 
03832         (void) memcpy(*xpp, tp, nelems);
03833         *xpp = (void *)((char *)(*xpp) + nelems);
03834 
03835         if(rndup)
03836         {
03837                 (void) memcpy(*xpp, nada, rndup);
03838                 *xpp = (void *)((char *)(*xpp) + rndup);
03839         }
03840         
03841         return ENOERR;
03842 
03843 }

int ncx_put_double_double void *    xp,
const double *    ip
 

Definition at line 1224 of file ncx_cray.c.

References put_ix_double().

01225 {
01226 #if !defined(NO_IEEE_FLOAT)
01227         put_ix_double(xp, ip);
01228         return ENOERR;
01229 #else
01230         return put_ix_double(xp, ip);
01231 #endif
01232 }

int ncx_put_double_float void *    xp,
const float *    ip
 

Definition at line 1212 of file ncx_cray.c.

References put_ix_double().

Referenced by ncx_putn_double_float().

01213 {
01214 #if SIZEOF_FLOAT == SIZEOF_DOUBLE && FLT_MANT_DIG == DBL_MANT_DIG
01215         put_ix_double(xp, (double *)ip);
01216         return ENOERR;
01217 #else
01218         double xx = (double) *ip;
01219         return put_ix_double(xp, &xx);
01220 #endif
01221 }

int ncx_put_double_int void *    xp,
const int *    ip
 

Definition at line 1195 of file ncx_cray.c.

References put_ix_double().

Referenced by ncx_putn_double_int().

01196 {
01197         double xx = (double) *ip;
01198         put_ix_double(xp, &xx);
01199         return ENOERR;
01200 }

int ncx_put_double_long void *    xp,
const long *    ip
 

Definition at line 1203 of file ncx_cray.c.

References put_ix_double().

Referenced by ncx_putn_double_long().

01204 {
01205         double xx = (double) *ip;
01206         put_ix_double(xp, &xx);
01207         /* TODO: Deal with big guys */
01208         return ENOERR;
01209 }

int ncx_put_double_schar void *    xp,
const schar   ip
 

Definition at line 1171 of file ncx_cray.c.

References put_ix_double().

Referenced by ncx_putn_double_schar().

01172 {
01173         double xx = (double) *ip;
01174         put_ix_double(xp, &xx);
01175         return ENOERR;
01176 }

int ncx_put_double_short void *    xp,
const short *    ip
 

Definition at line 1187 of file ncx_cray.c.

References put_ix_double().

Referenced by ncx_putn_double_short().

01188 {
01189         double xx = (double) *ip;
01190         put_ix_double(xp, &xx);
01191         return ENOERR;
01192 }

int ncx_put_double_uchar void *    xp,
const uchar   ip
 

Definition at line 1179 of file ncx_cray.c.

References put_ix_double().

Referenced by ncx_putn_double_uchar().

01180 {
01181         double xx = (double) *ip;
01182         put_ix_double(xp, &xx);
01183         return ENOERR;
01184 }

int ncx_put_float_double void *    xp,
const double *    ip
 

Definition at line 969 of file ncx_cray.c.

References put_ix_float.

Referenced by ncx_putn_float_double().

00970 {
00971 #if SIZEOF_FLOAT == SIZEOF_DOUBLE && FLT_MANT_DIG == DBL_MANT_DIG
00972         return put_ix_float(xp, (float *)ip);
00973 #else
00974         float xx = (float) *ip;
00975         int status = put_ix_float(xp, &xx);
00976         if(*ip > X_FLOAT_MAX || *ip < X_FLOAT_MIN)
00977                 return NC_ERANGE;
00978         return status;
00979 #endif
00980 }

int ncx_put_float_float void *    xp,
const float *    ip
 

Definition at line 963 of file ncx_cray.c.

References put_ix_float.

00964 {
00965         return put_ix_float(xp, ip);
00966 }

int ncx_put_float_int void *    xp,
const int *    ip
 

Definition at line 949 of file ncx_cray.c.

References put_ix_float.

Referenced by ncx_putn_float_int().

00950 {
00951         float xx = (float) *ip;
00952         return put_ix_float(xp, &xx);
00953 }

int ncx_put_float_long void *    xp,
const long *    ip
 

Definition at line 956 of file ncx_cray.c.

References put_ix_float.

Referenced by ncx_putn_float_long().

00957 {
00958         float xx = (float) *ip;
00959         return put_ix_float(xp, &xx);
00960 }

int ncx_put_float_schar void *    xp,
const schar   ip
 

Definition at line 928 of file ncx_cray.c.

References put_ix_float.

Referenced by ncx_putn_float_schar().

00929 {
00930         float xx = (float) *ip;
00931         return put_ix_float(xp, &xx);
00932 }

int ncx_put_float_short void *    xp,
const short *    ip
 

Definition at line 942 of file ncx_cray.c.

References put_ix_float.

Referenced by ncx_putn_float_short().

00943 {
00944         float xx = (float) *ip;
00945         return put_ix_float(xp, &xx);
00946 }

int ncx_put_float_uchar void *    xp,
const uchar   ip
 

Definition at line 935 of file ncx_cray.c.

References put_ix_float.

Referenced by ncx_putn_float_uchar().

00936 {
00937         float xx = (float) *ip;
00938         return put_ix_float(xp, &xx);
00939 }

int ncx_put_int_double void *    xp,
const double *    ip
 

Definition at line 542 of file ncx_cray.c.

References ix_int, and put_ix_int.

Referenced by ncx_putn_int_double().

00543 {
00544         ix_int xx = (ix_int)(*ip);
00545         const int status = put_ix_int(xp, &xx);
00546         if(status != ENOERR)
00547                 return status;
00548         if(*ip > X_INT_MAX || *ip < X_INT_MIN)
00549                 return NC_ERANGE;
00550         return ENOERR;
00551 }

int ncx_put_int_float void *    xp,
const float *    ip
 

Definition at line 530 of file ncx_cray.c.

References ix_int, and put_ix_int.

Referenced by ncx_putn_int_float().

00531 {
00532         ix_int xx = (ix_int)(*ip);
00533         const int status = put_ix_int(xp, &xx);
00534         if(status != ENOERR)
00535                 return status;
00536         if(*ip > (double)X_INT_MAX || *ip < (double)X_INT_MIN)
00537                 return NC_ERANGE;
00538         return ENOERR;
00539 }

int ncx_put_int_int void *    xp,
const int *    ip
 

Definition at line 500 of file ncx_cray.c.

References put_ix_int.

Referenced by v1h_put_nc_type(), and v1h_put_NCtype().

00501 {
00502         return put_ix_int(xp, ip);
00503 }

int ncx_put_int_long void *    xp,
const long *    ip
 

Definition at line 524 of file ncx_cray.c.

References byteoff, and cput_int_long().

00525 {
00526         return cput_int_long(xp, ip, byteoff(xp));
00527 }

int ncx_put_int_schar void *    xp,
const schar   ip
 

Definition at line 462 of file ncx_cray.c.

Referenced by ncx_putn_int_schar().

00463 {
00464         uchar *cp = xp;
00465         if(*ip & 0x80)
00466         {
00467                 *cp++ = 0xff;
00468                 *cp++ = 0xff;
00469                 *cp++ = 0xff;
00470         }
00471         else
00472         {
00473                 *cp++ = 0x00;
00474                 *cp++ = 0x00;
00475                 *cp++ = 0x00;
00476         }
00477         *cp = (uchar)*ip;
00478         return ENOERR;
00479 }

int ncx_put_int_short void *    xp,
const short *    ip
 

Definition at line 493 of file ncx_cray.c.

References ix_int, and put_ix_int.

Referenced by ncx_putn_int_short().

00494 {
00495         ix_int xx = (ix_int)(*ip);
00496         return put_ix_int(xp, &xx);
00497 }

int ncx_put_int_uchar void *    xp,
const uchar   ip
 

Definition at line 482 of file ncx_cray.c.

Referenced by ncx_putn_int_uchar().

00483 {
00484         uchar *cp = xp;
00485         *cp++ = 0x00;
00486         *cp++ = 0x00;
00487         *cp++ = 0x00;
00488         *cp   = *ip;
00489         return ENOERR;
00490 }

int ncx_put_off_t void **    xpp,
const off_t *    lp
 

Definition at line 1273 of file ncx_cray.c.

References X_OFF_MAX, and X_SIZEOF_OFF_T.

Referenced by v1h_put_NC_var().

01274 {
01275         /* similar to put_ix_int() */
01276         uchar *cp = *xpp;
01277                 /* No negative offsets stored in netcdf */
01278         assert(*lp >= 0 && *lp <= X_OFF_MAX);
01279 
01280         *cp++ = (uchar)((*lp) >> 24);
01281         *cp++ = (uchar)(((*lp) & 0x00ff0000) >> 16);
01282         *cp++ = (uchar)(((*lp) & 0x0000ff00) >>  8);
01283         *cp   = (uchar)((*lp) & 0x000000ff);
01284 
01285         *xpp = (void *)((char *)(*xpp) + X_SIZEOF_OFF_T);
01286         return ENOERR;
01287 }

int ncx_put_short_double void *    xp,
const double *    ip
 

Definition at line 313 of file ncx_cray.c.

References byteoff, cput_short_short(), ix_short, and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_short_double(), and ncx_putn_short_double().

00314 {
00315         ix_short xx = (ix_short)*ip;
00316         const int status = cput_short_short(xp, &xx, byteoff(xp)/X_SIZEOF_SHORT);
00317         if(status != ENOERR)
00318                 return status;
00319         if(*ip > X_SHORT_MAX || *ip < X_SHORT_MIN)
00320                 return NC_ERANGE;
00321         return ENOERR;
00322 }

int ncx_put_short_float void *    xp,
const float *    ip
 

Definition at line 301 of file ncx_cray.c.

References byteoff, cput_short_short(), ix_short, and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_short_float(), and ncx_putn_short_float().

00302 {
00303         ix_short xx = (ix_short)*ip;
00304         const int status = cput_short_short(xp, &xx, byteoff(xp)/X_SIZEOF_SHORT);
00305         if(status != ENOERR)
00306                 return status;
00307         if(*ip > X_SHORT_MAX || *ip < X_SHORT_MIN)
00308                 return NC_ERANGE;
00309         return ENOERR;
00310 }

int ncx_put_short_int void *    xp,
const int *    ip
 

Definition at line 287 of file ncx_cray.c.

References byteoff, cput_short_short(), ix_short, and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_short_int(), and ncx_putn_short_int().

00288 {
00289         ix_short xx = (ix_short)*ip;
00290         return cput_short_short(xp, &xx, byteoff(xp)/X_SIZEOF_SHORT);
00291 }

int ncx_put_short_long void *    xp,
const long *    ip
 

Definition at line 294 of file ncx_cray.c.

References byteoff, cput_short_short(), ix_short, and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_short_long(), and ncx_putn_short_long().

00295 {
00296         ix_short xx = (ix_short)*ip;
00297         return cput_short_short(xp, &xx, byteoff(xp)/X_SIZEOF_SHORT);
00298 }

int ncx_put_short_schar void *    xp,
const schar   ip
 

Definition at line 260 of file ncx_cray.c.

Referenced by ncx_pad_putn_short_schar(), and ncx_putn_short_schar().

00261 {
00262         uchar *cp = xp;
00263         if(*ip & 0x80)
00264                 *cp++ = 0xff;
00265         else
00266                 *cp++ = 0;
00267         *cp = (uchar)*ip;
00268         return ENOERR;
00269 }

int ncx_put_short_short void *    xp,
const short *    ip
 

Definition at line 281 of file ncx_cray.c.

References byteoff, cput_short_short(), and X_SIZEOF_SHORT.

Referenced by ncx_pad_putn_short_short().

00282 {
00283         return cput_short_short(xp, ip, byteoff(xp)/X_SIZEOF_SHORT);
00284 }

int ncx_put_short_uchar void *    xp,
const uchar   ip
 

Definition at line 272 of file ncx_cray.c.

Referenced by ncx_pad_putn_short_uchar(), and ncx_putn_short_uchar().

00273 {
00274         uchar *cp = xp;
00275         *cp++ = 0;
00276         *cp = *ip;
00277         return ENOERR;
00278 }

int ncx_put_size_t void **    xpp,
const size_t *    ulp
 

Definition at line 1238 of file ncx_cray.c.

References X_SIZEOF_SIZE_T.

Referenced by ncx_put_NC(), v1h_put_size_t(), and write_numrecs().

01239 {
01240         /* similar to put_ix_int() */
01241         uchar *cp = *xpp;
01242                 /* sizes limited to 2^31 -1 in netcdf */
01243         assert(*ulp <= X_SIZE_MAX && (long) (*ulp) >= 0);
01244 
01245         *cp++ = (uchar)((*ulp) >> 24);
01246         *cp++ = (uchar)(((*ulp) & 0x00ff0000) >> 16);
01247         *cp++ = (uchar)(((*ulp) & 0x0000ff00) >>  8);
01248         *cp   = (uchar)((*ulp) & 0x000000ff);
01249 
01250         *xpp = (void *)((char *)(*xpp) + X_SIZEOF_SIZE_T);
01251         return ENOERR;
01252 }

int ncx_putn_double_double void **    xpp,
size_t    nelems,
const double *    ip
 

Definition at line 3640 of file ncx_cray.c.

References byteoff, and X_SIZEOF_DOUBLE.

Referenced by NC_fill_double(), ncx_encode(), ncx_pad_putn_Idouble(), ncx_putn_double_float(), putNCvx_double_double(), and t_putn_double_double().

03641 {
03642         const size_t noff = byteoff(*xpp);
03643         (void) memcpy(*xpp, tp, nelems * X_SIZEOF_DOUBLE);
03644         *xpp = (void *)((char *)(*xpp) + nelems * X_SIZEOF_DOUBLE);
03645         return ENOERR;
03646 }

int ncx_putn_double_float void **    xpp,
size_t    nelems,
const float *    ip
 

Definition at line 3704 of file ncx_cray.c.

References ncx_put_double_float(), ncx_putn_double_double(), and X_SIZEOF_DOUBLE.

Referenced by ncx_pad_putn_Ifloat(), putNCvx_double_float(), and t_putn_double_float().

03705 {
03706 #if SIZEOF_FLOAT == SIZEOF_DOUBLE && FLT_MANT_DIG == DBL_MANT_DIG
03707         return ncx_putn_double_double(xpp, nelems, (double *)tp);
03708 #else
03709         char *xp = *xpp;
03710         int status = ENOERR;
03711 
03712         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03713         {
03714                 const int lstatus = ncx_put_double_float(xp, tp);
03715                 if(lstatus != ENOERR)
03716                         status = lstatus;
03717         }
03718 
03719         *xpp = (void *)xp;
03720         return status;
03721 #endif
03722 }

int ncx_putn_double_int void **    xpp,
size_t    nelems,
const int *    ip
 

Definition at line 3572 of file ncx_cray.c.

References ncx_put_double_int(), and X_SIZEOF_DOUBLE.

Referenced by ncx_pad_putn_Iint(), putNCvx_double_int(), and t_putn_double_int().

03573 {
03574         char *xp = *xpp;
03575         int status = ENOERR;
03576 
03577         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03578         {
03579                 const int lstatus = ncx_put_double_int(xp, tp);
03580                 if(lstatus != ENOERR)
03581                         status = lstatus;
03582         }
03583 
03584         *xpp = (void *)xp;
03585         return status;
03586 }

int ncx_putn_double_long void **    xpp,
size_t    nelems,
const long *    ip
 

Definition at line 3589 of file ncx_cray.c.

References ncx_put_double_long(), and X_SIZEOF_DOUBLE.

Referenced by ncx_pad_putn_Ilong(), putNCvx_double_long(), and t_putn_double_long().

03590 {
03591         char *xp = *xpp;
03592         int status = ENOERR;
03593 
03594         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03595         {
03596                 const int lstatus = ncx_put_double_long(xp, tp);
03597                 if(lstatus != ENOERR)
03598                         status = lstatus;
03599         }
03600 
03601         *xpp = (void *)xp;
03602         return status;
03603 }

int ncx_putn_double_schar void **    xpp,
size_t    nelems,
const schar   ip
 

Definition at line 3521 of file ncx_cray.c.

References ncx_put_double_schar(), and X_SIZEOF_DOUBLE.

Referenced by ncx_pad_putn_Ischar(), putNCvx_double_schar(), and t_putn_double_schar().

03522 {
03523         char *xp = *xpp;
03524         int status = ENOERR;
03525 
03526         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03527         {
03528                 const int lstatus = ncx_put_double_schar(xp, tp);
03529                 if(lstatus != ENOERR)
03530                         status = lstatus;
03531         }
03532 
03533         *xpp = (void *)xp;
03534         return status;
03535 }

int ncx_putn_double_short void **    xpp,
size_t    nelems,
const short *    ip
 

Definition at line 3555 of file ncx_cray.c.

References ncx_put_double_short(), and X_SIZEOF_DOUBLE.

Referenced by ncx_pad_putn_Ishort(), putNCvx_double_short(), and t_putn_double_short().

03556 {
03557         char *xp = *xpp;
03558         int status = ENOERR;
03559 
03560         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03561         {
03562                 const int lstatus = ncx_put_double_short(xp, tp);
03563                 if(lstatus != ENOERR)
03564                         status = lstatus;
03565         }
03566 
03567         *xpp = (void *)xp;
03568         return status;
03569 }

int ncx_putn_double_uchar void **    xpp,
size_t    nelems,
const uchar   ip
 

Definition at line 3538 of file ncx_cray.c.

References ncx_put_double_uchar(), and X_SIZEOF_DOUBLE.

Referenced by ncx_pad_putn_Iuchar(), putNCvx_double_uchar(), and t_putn_double_uchar().

03539 {
03540         char *xp = *xpp;
03541         int status = ENOERR;
03542 
03543         for( ; nelems != 0; nelems--, xp += X_SIZEOF_DOUBLE, tp++)
03544         {
03545                 const int lstatus = ncx_put_double_uchar(xp, tp);
03546                 if(lstatus != ENOERR)
03547                         status = lstatus;
03548         }
03549 
03550         *xpp = (void *)xp;
03551         return status;
03552 }

int ncx_putn_float_double void **    xpp,
size_t    nelems,
const double *    ip
 

Definition at line 3301 of file ncx_cray.c.

References ncx_put_float_double(), and X_SIZEOF_FLOAT.

Referenced by ncx_pad_putn_Idouble(), putNCvx_float_double(), and t_putn_float_double().

03302 {
03303         char *xp = *xpp;
03304         int status = ENOERR;
03305 
03306         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
03307         {
03308                 const int lstatus = ncx_put_float_double(xp, tp);
03309                 if(lstatus != ENOERR)
03310                         status = lstatus;
03311         }
03312 
03313         *xpp = (void *)xp;
03314         return status;
03315 }

int ncx_putn_float_float void **    xpp,
size_t    nelems,
const float *    ip
 

Definition at line 3249 of file ncx_cray.c.

References byteoff, cput_float_float(), and X_SIZEOF_FLOAT.

Referenced by NC_fill_float(), ncx_encode(), ncx_pad_putn_Ifloat(), putNCvx_float_float(), and t_putn_float_float().

03250 {
03251         int status = ENOERR;
03252         const int bo = byteoff(*xpp);
03253 
03254         if(nelems == 0)
03255                 return ENOERR;
03256 
03257         if(bo != 0)
03258         {
03259                 status = cput_float_float(*xpp, tp, bo);
03260                 *xpp = ((char *) (*xpp) + X_SIZEOF_FLOAT);
03261                 nelems--;
03262                 if(nelems == 0)
03263                         return status;
03264                 tp++;
03265         }
03266 
03267         assert(byteoff(*xpp) == 0);
03268 
03269         {
03270                 const int nwords = (nelems * X_SIZEOF_FLOAT)/sizeof(word);
03271                 word *wp = *xpp;
03272                 const word *const end = &wp[nwords];
03273 
03274 #pragma _CRI ivdep
03275                 for( ; wp < end; wp++, tp += 2)
03276                 {
03277                         int lstatus = cput_float_float(wp, tp, 0);
03278                         if(lstatus != ENOERR)
03279                                 status = lstatus;
03280                         lstatus = cput_float_float(wp, tp + 1, 1);
03281                         if(lstatus != ENOERR)
03282                                 status = lstatus;
03283                 }
03284 
03285                 *xpp = ((char *) (*xpp) + nwords * sizeof(word)); 
03286                 nelems -= (nwords * sizeof(word)/X_SIZEOF_FLOAT);
03287                 if(nelems != 0)
03288                 {
03289                         const int lstatus = cput_float_float(wp, tp, 0);
03290                         if(lstatus != ENOERR)
03291                                 status = lstatus;
03292                         *xpp = ((char *) (*xpp) + X_SIZEOF_FLOAT);
03293                 }
03294         }
03295 
03296         return status;
03297 }

int ncx_putn_float_int void **    xpp,
size_t    nelems,
const int *    ip
 

Definition at line 3194 of file ncx_cray.c.

References ncx_put_float_int(), and X_SIZEOF_FLOAT.

Referenced by ncx_pad_putn_Iint(), putNCvx_float_int(), and t_putn_float_int().

03195 {
03196         char *xp = *xpp;
03197         int status = ENOERR;
03198 
03199         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
03200         {
03201                 const int lstatus = ncx_put_float_int(xp, tp);
03202                 if(lstatus != ENOERR)
03203                         status = lstatus;
03204         }
03205 
03206         *xpp = (void *)xp;
03207         return status;
03208 }

int ncx_putn_float_long void **    xpp,
size_t    nelems,
const long *    ip
 

Definition at line 3211 of file ncx_cray.c.

References ncx_put_float_long(), and X_SIZEOF_FLOAT.

Referenced by ncx_pad_putn_Ilong(), putNCvx_float_long(), and t_putn_float_long().

03212 {
03213         char *xp = *xpp;
03214         int status = ENOERR;
03215 
03216         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
03217         {
03218                 const int lstatus = ncx_put_float_long(xp, tp);
03219                 if(lstatus != ENOERR)
03220                         status = lstatus;
03221         }
03222 
03223         *xpp = (void *)xp;
03224         return status;
03225 }

int ncx_putn_float_schar void **    xpp,
size_t    nelems,
const schar   ip
 

Definition at line 3143 of file ncx_cray.c.

References ncx_put_float_schar(), and X_SIZEOF_FLOAT.

Referenced by ncx_pad_putn_Ischar(), putNCvx_float_schar(), and t_putn_float_schar().

03144 {
03145         char *xp = *xpp;
03146         int status = ENOERR;
03147 
03148         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
03149         {
03150                 const int lstatus = ncx_put_float_schar(xp, tp);
03151                 if(lstatus != ENOERR)
03152                         status = lstatus;
03153         }
03154 
03155         *xpp = (void *)xp;
03156         return status;
03157 }

int ncx_putn_float_short void **    xpp,
size_t    nelems,
const short *    ip
 

Definition at line 3177 of file ncx_cray.c.

References ncx_put_float_short(), and X_SIZEOF_FLOAT.

Referenced by ncx_pad_putn_Ishort(), putNCvx_float_short(), and t_putn_float_short().

03178 {
03179         char *xp = *xpp;
03180         int status = ENOERR;
03181 
03182         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
03183         {
03184                 const int lstatus = ncx_put_float_short(xp, tp);
03185                 if(lstatus != ENOERR)
03186                         status = lstatus;
03187         }
03188 
03189         *xpp = (void *)xp;
03190         return status;
03191 }

int ncx_putn_float_uchar void **    xpp,
size_t    nelems,
const uchar   ip
 

Definition at line 3160 of file ncx_cray.c.

References ncx_put_float_uchar(), and X_SIZEOF_FLOAT.

Referenced by ncx_pad_putn_Iuchar(), putNCvx_float_uchar(), and t_putn_float_uchar().

03161 {
03162         char *xp = *xpp;
03163         int status = ENOERR;
03164 
03165         for( ; nelems != 0; nelems--, xp += X_SIZEOF_FLOAT, tp++)
03166         {
03167                 const int lstatus = ncx_put_float_uchar(xp, tp);
03168                 if(lstatus != ENOERR)
03169                         status = lstatus;
03170         }
03171 
03172         *xpp = (void *)xp;
03173         return status;
03174 }

int ncx_putn_int_double void **    xpp,
size_t    nelems,
const double *    ip
 

Definition at line 2954 of file ncx_cray.c.

References ncx_put_int_double(), and X_SIZEOF_INT.

Referenced by ncx_pad_putn_Idouble(), putNCvx_int_double(), and t_putn_int_double().

02955 {
02956         char *xp = *xpp;
02957         int status = ENOERR;
02958 
02959         for( ; nelems != 0; nelems--, xp += X_SIZEOF_INT, tp++)
02960         {
02961                 const int lstatus = ncx_put_int_double(xp, tp);
02962                 if(lstatus != ENOERR)
02963                         status = lstatus;
02964         }
02965 
02966         *xpp = (void *)xp;
02967         return status;
02968 }

int ncx_putn_int_float void **    xpp,
size_t    nelems,
const float *    ip
 

Definition at line 2937 of file ncx_cray.c.

References ncx_put_int_float(), and X_SIZEOF_INT.

Referenced by ncx_pad_putn_Ifloat(), putNCvx_int_float(), and t_putn_int_float().

02938 {
02939         char *xp = *xpp;
02940         int status = ENOERR;
02941 
02942         for( ; nelems != 0; nelems--, xp += X_SIZEOF_INT, tp++)
02943         {
02944                 const int lstatus = ncx_put_int_float(xp, tp);
02945                 if(lstatus != ENOERR)
02946                         status = lstatus;
02947         }
02948 
02949         *xpp = (void *)xp;
02950         return status;
02951 }

int ncx_putn_int_int void **    xpp,
size_t    nelems,
const int *    ip
 

Definition at line 2834 of file ncx_cray.c.

References byteoff, cput_int_int(), and X_SIZEOF_INT.

Referenced by NC_fill_int(), ncx_encode(), ncx_pad_putn_Iint(), putNCvx_int_int(), t_putn_int_int(), and v1h_put_NC_var().

02835 {
02836         int status = ENOERR;
02837         const int bo = byteoff(*xpp);
02838 
02839         if(nelems == 0)
02840                 return ENOERR;
02841 
02842         if(bo != 0)
02843         {
02844                 status = cput_int_int(*xpp, tp, bo);
02845                 *xpp = ((char *) (*xpp) + X_SIZEOF_INT);
02846                 nelems--;
02847                 if(nelems == 0)
02848                         return status;
02849                 tp++;
02850         }
02851 
02852         assert(byteoff(*xpp) == 0);
02853 
02854         {
02855                 const int nwords = (nelems * X_SIZEOF_INT)/sizeof(word);
02856                 word *wp = *xpp;
02857                 const word *const end = &wp[nwords];
02858 
02859 #pragma _CRI ivdep
02860                 for( ; wp < end; wp++, tp += 2)
02861                 {
02862                         int lstatus = cput_int_int(wp, tp, 0);
02863                         if(lstatus != ENOERR)
02864                                 status = lstatus;
02865                         lstatus = cput_int_int(wp, tp + 1, 1);
02866                         if(lstatus != ENOERR)
02867                                 status = lstatus;
02868                 }
02869 
02870                 *xpp = ((char *) (*xpp) + nwords * sizeof(word)); 
02871                 nelems -= (nwords * sizeof(word)/X_SIZEOF_INT);
02872                 if(nelems != 0)
02873                 {
02874                         const int lstatus = cput_int_int(wp, tp, 0);
02875                         if(lstatus != ENOERR)
02876                                 status = lstatus;
02877                         *xpp = ((char *) (*xpp) + X_SIZEOF_INT);
02878                 }
02879         }
02880 
02881         return status;
02882 }

int ncx_putn_int_long void **    xpp,
size_t    nelems,
const long *    ip
 

Definition at line 2886 of file ncx_cray.c.

References byteoff, cput_int_long(), and X_SIZEOF_INT.

Referenced by ncx_encode(), ncx_pad_putn_Ilong(), putNCvx_int_long(), and t_putn_int_long().

02887 {
02888         int status = ENOERR;
02889         const int bo = byteoff(*xpp);
02890 
02891         if(nelems == 0)
02892                 return ENOERR;
02893 
02894         if(bo != 0)
02895         {
02896                 status = cput_int_long(*xpp, tp, bo);
02897                 *xpp = ((char *) (*xpp) + X_SIZEOF_INT);
02898                 nelems--;
02899                 if(nelems == 0)
02900                         return status;
02901                 tp++;
02902         }
02903 
02904         assert(byteoff(*xpp) == 0);
02905 
02906         {
02907                 const int nwords = (nelems * X_SIZEOF_INT)/sizeof(word);
02908                 word *wp = *xpp;
02909                 const word *const end = &wp[nwords];
02910 
02911 #pragma _CRI ivdep
02912                 for( ; wp < end; wp++, tp += 2)
02913                 {
02914                         int lstatus = cput_int_long(wp, tp, 0);
02915                         if(lstatus != ENOERR)
02916                                 status = lstatus;
02917                         lstatus = cput_int_long(wp, tp + 1, 1);
02918                         if(lstatus != ENOERR)
02919                                 status = lstatus;
02920                 }
02921 
02922                 *xpp = ((char *) (*xpp) + nwords * sizeof(word)); 
02923                 nelems -= (nwords * sizeof(word)/X_SIZEOF_INT);
02924                 if(nelems != 0)
02925                 {
02926                         const int lstatus = cput_int_long(wp, tp, 0);
02927                         if(lstatus != ENOERR)
02928                                 status = lstatus;
02929                         *xpp = ((char *) (*xpp) + X_SIZEOF_INT);
02930                 }
02931         }
02932 
02933         return status;
02934 }

int ncx_putn_int_schar void **    xpp,
size_t    nelems,
const schar   ip
 

Definition at line 2762 of file ncx_cray.c.

References ncx_put_int_schar(), and X_SIZEOF_INT.

Referenced by ncx_pad_putn_Ischar(), putNCvx_int_schar(), and t_putn_int_schar().

02763 {
02764         char *xp = *xpp;
02765         int status = ENOERR;
02766 
02767         for( ; nelems != 0; nelems--, xp += X_SIZEOF_INT, tp++)
02768         {
02769                 const int lstatus = ncx_put_int_schar(xp, tp);
02770                 if(lstatus != ENOERR)
02771                         status = lstatus;
02772         }
02773 
02774         *xpp = (void *)xp;
02775         return status;
02776 }

int ncx_putn_int_short void **    xpp,
size_t    nelems,
const short *    ip
 

Definition at line 2796 of file ncx_cray.c.

References ncx_put_int_short(), and X_SIZEOF_INT.

Referenced by ncx_pad_putn_Ishort(), putNCvx_int_short(), and t_putn_int_short().

02797 {
02798         char *xp = *xpp;
02799         int status = ENOERR;
02800 
02801         for( ; nelems != 0; nelems--, xp += X_SIZEOF_INT, tp++)
02802         {
02803                 const int lstatus = ncx_put_int_short(xp, tp);
02804                 if(lstatus != ENOERR)
02805                         status = lstatus;
02806         }
02807 
02808         *xpp = (void *)xp;
02809         return status;
02810 }

int ncx_putn_int_uchar void **    xpp,
size_t    nelems,
const uchar   ip
 

Definition at line 2779 of file ncx_cray.c.

References ncx_put_int_uchar(), and X_SIZEOF_INT.

Referenced by ncx_pad_putn_Iuchar(), putNCvx_int_uchar(), and t_putn_int_uchar().

02780 {
02781         char *xp = *xpp;
02782         int status = ENOERR;
02783 
02784         for( ; nelems != 0; nelems--, xp += X_SIZEOF_INT, tp++)
02785         {
02786                 const int lstatus = ncx_put_int_uchar(xp, tp);
02787                 if(lstatus != ENOERR)
02788                         status = lstatus;
02789         }
02790 
02791         *xpp = (void *)xp;
02792         return status;
02793 }

int ncx_putn_schar_double void **    xpp,
size_t    nelems,
const double *    ip
 

Definition at line 1607 of file ncx_cray.c.

References X_SCHAR_MAX, and X_SCHAR_MIN.

Referenced by putNCvx_schar_double(), and t_putn_schar_double().

01608 {
01609         int status = ENOERR;
01610         schar *xp = (schar *)(*xpp);
01611 
01612         while(nelems-- != 0)
01613         {
01614                 if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
01615                         status = NC_ERANGE;
01616                 *xp++ = (schar) *tp++;
01617         }
01618 
01619         *xpp = (void *)xp;
01620         return status;
01621 }

int ncx_putn_schar_float void **    xpp,
size_t    nelems,
const float *    ip
 

Definition at line 1590 of file ncx_cray.c.

References X_SCHAR_MAX, and X_SCHAR_MIN.

Referenced by putNCvx_schar_float(), and t_putn_schar_float().

01591 {
01592         int status = ENOERR;
01593         schar *xp = (schar *)(*xpp);
01594 
01595         while(nelems-- != 0)
01596         {
01597                 if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
01598                         status = NC_ERANGE;
01599                 *xp++ = (schar) *tp++;
01600         }
01601 
01602         *xpp = (void *)xp;
01603         return status;
01604 }

int ncx_putn_schar_int void **    xpp,
size_t    nelems,
const int *    ip
 

Definition at line 1556 of file ncx_cray.c.

References X_SCHAR_MAX, and X_SCHAR_MIN.

Referenced by putNCvx_schar_int(), and t_putn_schar_int().

01557 {
01558         int status = ENOERR;
01559         schar *xp = (schar *)(*xpp);
01560 
01561         while(nelems-- != 0)
01562         {
01563                 if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
01564                         status = NC_ERANGE;
01565                 *xp++ = (schar) *tp++;
01566         }
01567 
01568         *xpp = (void *)xp;
01569         return status;
01570 }

int ncx_putn_schar_long void **    xpp,
size_t    nelems,
const long *    ip
 

Definition at line 1573 of file ncx_cray.c.

References X_SCHAR_MAX, and X_SCHAR_MIN.

Referenced by putNCvx_schar_long(), and t_putn_schar_long().

01574 {
01575         int status = ENOERR;
01576         schar *xp = (schar *)(*xpp);
01577 
01578         while(nelems-- != 0)
01579         {
01580                 if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
01581                         status = NC_ERANGE;
01582                 *xp++ = (schar) *tp++;
01583         }
01584 
01585         *xpp = (void *)xp;
01586         return status;
01587 }

int ncx_putn_schar_schar void **    xpp,
size_t    nelems,
const schar   ip
 

Definition at line 1521 of file ncx_cray.c.

Referenced by NC_fill_schar(), ncx_encode(), ncx_put_NC(), putNCvx_schar_schar(), and t_putn_schar_schar().

01522 {
01523                 (void) memcpy(*xpp, tp, nelems);
01524         *xpp = (void *)((char *)(*xpp) + nelems);
01525 
01526         return ENOERR;
01527 
01528 }

int ncx_putn_schar_short void **    xpp,
size_t    nelems,
const short *    ip
 

Definition at line 1539 of file ncx_cray.c.

References X_SCHAR_MAX, and X_SCHAR_MIN.

Referenced by putNCvx_schar_short(), and t_putn_schar_short().

01540 {
01541         int status = ENOERR;
01542         schar *xp = (schar *)(*xpp);
01543 
01544         while(nelems-- != 0)
01545         {
01546                 if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
01547                         status = NC_ERANGE;
01548                 *xp++ = (schar) *tp++;
01549         }
01550 
01551         *xpp = (void *)xp;
01552         return status;
01553 }

int ncx_putn_schar_uchar void **    xpp,
size_t    nelems,
const uchar   ip
 

Definition at line 1530 of file ncx_cray.c.

Referenced by putNCvx_schar_uchar(), and t_putn_schar_uchar().

01531 {
01532                 (void) memcpy(*xpp, tp, nelems);
01533         *xpp = (void *)((char *)(*xpp) + nelems);
01534 
01535         return ENOERR;
01536 
01537 }

int ncx_putn_short_double void **    xpp,
size_t    nelems,
const double *    ip
 

Definition at line 2381 of file ncx_cray.c.

References ncx_put_short_double(), and X_SIZEOF_SHORT.

Referenced by putNCvx_short_double(), and t_putn_short_double().

02382 {
02383         char *xp = *xpp;
02384         int status = ENOERR;
02385 
02386         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02387         {
02388                 const int lstatus = ncx_put_short_double(xp, tp);
02389                 if(lstatus != ENOERR)
02390                         status = lstatus;
02391         }
02392 
02393         *xpp = (void *)xp;
02394         return status;
02395 }

int ncx_putn_short_float void **    xpp,
size_t    nelems,
const float *    ip
 

Definition at line 2364 of file ncx_cray.c.

References ncx_put_short_float(), and X_SIZEOF_SHORT.

Referenced by putNCvx_short_float(), and t_putn_short_float().

02365 {
02366         char *xp = *xpp;
02367         int status = ENOERR;
02368 
02369         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02370         {
02371                 const int lstatus = ncx_put_short_float(xp, tp);
02372                 if(lstatus != ENOERR)
02373                         status = lstatus;
02374         }
02375 
02376         *xpp = (void *)xp;
02377         return status;
02378 }

int ncx_putn_short_int void **    xpp,
size_t    nelems,
const int *    ip
 

Definition at line 2330 of file ncx_cray.c.

References ncx_put_short_int(), and X_SIZEOF_SHORT.

Referenced by putNCvx_short_int(), and t_putn_short_int().

02331 {
02332         char *xp = *xpp;
02333         int status = ENOERR;
02334 
02335         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02336         {
02337                 const int lstatus = ncx_put_short_int(xp, tp);
02338                 if(lstatus != ENOERR)
02339                         status = lstatus;
02340         }
02341 
02342         *xpp = (void *)xp;
02343         return status;
02344 }

int ncx_putn_short_long void **    xpp,
size_t    nelems,
const long *    ip
 

Definition at line 2347 of file ncx_cray.c.

References ncx_put_short_long(), and X_SIZEOF_SHORT.

Referenced by putNCvx_short_long(), and t_putn_short_long().

02348 {
02349         char *xp = *xpp;
02350         int status = ENOERR;
02351 
02352         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02353         {
02354                 const int lstatus = ncx_put_short_long(xp, tp);
02355                 if(lstatus != ENOERR)
02356                         status = lstatus;
02357         }
02358 
02359         *xpp = (void *)xp;
02360         return status;
02361 }

int ncx_putn_short_schar void **    xpp,
size_t    nelems,
const schar   ip
 

Definition at line 2181 of file ncx_cray.c.

References ncx_put_short_schar(), and X_SIZEOF_SHORT.

Referenced by putNCvx_short_schar(), and t_putn_short_schar().

02182 {
02183         char *xp = *xpp;
02184         int status = ENOERR;
02185 
02186         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02187         {
02188                 const int lstatus = ncx_put_short_schar(xp, tp);
02189                 if(lstatus != ENOERR)
02190                         status = lstatus;
02191         }
02192 
02193         *xpp = (void *)xp;
02194         return status;
02195 }

int ncx_putn_short_short void **    xpp,
size_t    nelems,
const short *    ip
 

Definition at line 2236 of file ncx_cray.c.

References word_align(), and X_SIZEOF_SHORT.

Referenced by NC_fill_short(), ncx_encode(), ncx_pad_putn_short_short(), putNCvx_short_short(), and t_putn_short_short().

02237 {
02238         int status = ENOERR;
02239         if(nelems == 0)
02240                 return status;
02241 {
02242         word *wp = *xpp;
02243         const short *const last = &tp[nelems -1];
02244         const int rem = word_align(*xpp)/X_SIZEOF_SHORT;
02245         *xpp = ((char *) (*xpp) + nelems * X_SIZEOF_SHORT);
02246 
02247         switch(rem) {
02248         case 3:
02249                 *wp = ((*tp << 32) & 0x0000ffff00000000)
02250                             | (*wp & 0xffff0000ffffffff);
02251                 if(*tp > X_SHORT_MAX || *tp < X_SHORT_MIN)
02252                         status = NC_ERANGE;
02253                 if(tp == last)
02254                         return status;
02255                 tp++;
02256                 /*FALLTHRU*/    
02257         case 2:
02258                 *wp = ((*tp << 16) & 0x00000000ffff0000)
02259                             | (*wp & 0xffffffff0000ffff);
02260                 if(*tp > X_SHORT_MAX || *tp < X_SHORT_MIN)
02261                         status = NC_ERANGE;
02262                 if(tp == last)
02263                         return status;
02264                 tp++;
02265                 /*FALLTHRU*/    
02266         case 1:
02267                 *wp = (*tp         & 0x000000000000ffff)   
02268                             | (*wp & 0xffffffffffff0000);
02269                 if(*tp > X_SHORT_MAX || *tp < X_SHORT_MIN)
02270                         status = NC_ERANGE;
02271                 if(tp == last)
02272                         return status;
02273                 tp++;
02274                 wp++; /* Note Bene */
02275                 /*FALLTHRU*/    
02276         }
02277 
02278         assert((nelems - rem) != 0);
02279         {
02280                 const int nwords = ((nelems - rem) * X_SIZEOF_SHORT)
02281                                         / sizeof(word);
02282                 const word *const endw = &wp[nwords];
02283 
02284 #pragma _CRI ivdep
02285                 for( ; wp < endw; wp++)
02286                 {
02287                         *wp =      (*tp      << 48)
02288                                 | ((*(tp +1) << 32) & 0x0000ffff00000000)
02289                                 | ((*(tp +2) << 16) & 0x00000000ffff0000)
02290                                 | ((*(tp +3)      ) & 0x000000000000ffff);
02291 
02292                         { int ii = 0;
02293                         for(; ii < 4; ii++, tp++)
02294                                 if(*tp > X_SHORT_MAX || *tp < X_SHORT_MIN)
02295                                         status = NC_ERANGE;
02296                         }
02297                 }
02298         }
02299 
02300         if(tp <= last)
02301         {
02302                 *wp = (*tp << 48)
02303                             | (*wp & 0x0000ffffffffffff);
02304                 if(*tp > X_SHORT_MAX || *tp < X_SHORT_MIN)
02305                         status = NC_ERANGE;
02306                 tp++;
02307         }
02308         if(tp <= last)
02309         {
02310                 *wp = ((*tp << 32) & 0x0000ffff00000000)
02311                             | (*wp & 0xffff0000ffffffff);
02312                 if(*tp > X_SHORT_MAX || *tp < X_SHORT_MIN)
02313                         status = NC_ERANGE;
02314                 tp++;
02315         }
02316         if(tp <= last)
02317         {
02318                 *wp = ((*tp << 16) & 0x00000000ffff0000)
02319                             | (*wp & 0xffffffff0000ffff);
02320                 if(*tp > X_SHORT_MAX || *tp < X_SHORT_MIN)
02321                         status = NC_ERANGE;
02322         }
02323 
02324         return status;
02325 }
02326 }

int ncx_putn_short_uchar void **    xpp,
size_t    nelems,
const uchar   ip
 

Definition at line 2198 of file ncx_cray.c.

References ncx_put_short_uchar(), and X_SIZEOF_SHORT.

Referenced by putNCvx_short_uchar(), and t_putn_short_uchar().

02199 {
02200         char *xp = *xpp;
02201         int status = ENOERR;
02202 
02203         for( ; nelems != 0; nelems--, xp += X_SIZEOF_SHORT, tp++)
02204         {
02205                 const int lstatus = ncx_put_short_uchar(xp, tp);
02206                 if(lstatus != ENOERR)
02207                         status = lstatus;
02208         }
02209 
02210         *xpp = (void *)xp;
02211         return status;
02212 }

int ncx_putn_text void **    xpp,
size_t    nchars,
const char *    cp
 

Definition at line 3757 of file ncx_cray.c.

Referenced by ncx_encode().

03758 {
03759         (void) memcpy(*xpp, tp, nelems);
03760         *xpp = (void *)((char *)(*xpp) + nelems);
03761 
03762         return ENOERR;
03763 
03764 }

int ncx_putn_void void **    xpp,
size_t    nchars,
const void *    vp
 

Definition at line 3815 of file ncx_cray.c.

03816 {
03817         (void) memcpy(*xpp, tp, nelems);
03818         *xpp = (void *)((char *)(*xpp) + nelems);
03819 
03820         return ENOERR;
03821 
03822 }
 

Powered by Plone

This site conforms to the following standards: