ExodusII  5.15
ex_put_all_var_param_ext.c File Reference
#include <stdlib.h>
#include "exodusII.h"
#include "exodusII_int.h"
#include <ctype.h>

Defines

#define EX_GET_IDS_STATUS(TNAME, NUMVAR, DNAME, DID, DVAL, VIDS, EIDS, VSTAT, VSTATVAL)
#define EX_DEFINE_VARS(TID, STNAME, TNAME, NUMVAR, DNAME, DID1, DID2, DVAL, VIDS, VNOV, VTV, VSTATVAL, VTABVAL, VTABVAR)

Functions

static void * safe_free (void *array)
static int define_dimension (int exoid, const char *DIMENSION, int count, const char *label, int *dimid)
static int define_variable_name_variable (int exoid, const char *VARIABLE, int dimension, const char *label)
static int * get_status_array (int exoid, int count, const char *VARIABLE, const char *label)
static int put_truth_table (int exoid, int varid, int *table, const char *label)
static int define_truth_table (ex_entity_type obj_type, int exoid, int num_ent, int num_var, int *var_tab, int *status, void_int *ids, const char *label)
int ex_put_all_var_param_ext (int exoid, const ex_var_params *vp)

Define Documentation

#define EX_DEFINE_VARS (   TID,
  STNAME,
  TNAME,
  NUMVAR,
  DNAME,
  DID1,
  DID2,
  DVAL,
  VIDS,
  VNOV,
  VTV,
  VSTATVAL,
  VTABVAL,
  VTABVAR 
)
Value:
if (NUMVAR > 0) {       \
    status = define_dimension(exoid, DNAME, NUMVAR, STNAME, &DID2); \
    if (status != NC_NOERR) goto error_ret;    \
         \
    /* Now define STNAME variable name variable */   \
    if (define_variable_name_variable(exoid, VNOV, DID2, STNAME) != NC_NOERR) \
      goto error_ret;       \
         \
    if (define_truth_table(TID, exoid, DVAL, NUMVAR, VTABVAL, VSTATVAL, VIDS, TNAME) != NC_NOERR) \
      goto error_ret;       \
         \
    VSTATVAL = safe_free (VSTATVAL);     \
    VIDS  = safe_free (VIDS);      \
         \
    /* create a variable array in which to store the STNAME variable truth \
     * table        \
     */         \
         \
    dims[0] = DID1;       \
    dims[1] = DID2;       \
         \
    if ((status = nc_def_var(exoid, VTV, NC_INT, 2, dims, &VTABVAR)) != NC_NOERR) { \
      exerrval = status;      \
      sprintf(errmsg,       \
              "Error: failed to define " STNAME " variable truth table in file id %d", \
              exoid);       \
      ex_err("ex_put_all_var_param_ext",errmsg,exerrval);  \
      goto error_ret;          /* exit define mode and return */ \
    }         \
  }
#define EX_GET_IDS_STATUS (   TNAME,
  NUMVAR,
  DNAME,
  DID,
  DVAL,
  VIDS,
  EIDS,
  VSTAT,
  VSTATVAL 
)
Value:
if (NUMVAR > 0) {       \
    status = ex_get_dimension(exoid, DNAME, TNAME "s", &DVAL, &DID, routine); \
    if (status != NC_NOERR)      \
      goto error_ret;       \
         \
    /* get element block IDs */      \
    if (!(VIDS = malloc(DVAL*sizeof(int64_t)))) {    \
      exerrval = EX_MEMFAIL;      \
      sprintf(errmsg,       \
              "Error: failed to allocate memory for " TNAME " id array for file id %d", \
              exoid);       \
      ex_err("ex_put_all_var_param_ext",errmsg,exerrval);  \
      goto error_ret;       \
    }         \
    ex_get_ids (exoid, EIDS, VIDS);     \
         \
    /* Get element block status array for later use (allocates memory) */ \
    VSTATVAL = get_status_array(exoid, DVAL, VSTAT, TNAME);  \
    if (VSTATVAL == NULL) {      \
      goto error_ret;       \
    }         \
  }

Function Documentation

static int define_dimension ( int  exoid,
const char *  DIMENSION,
int  count,
const char *  label,
int *  dimid 
) [static]
static int define_truth_table ( ex_entity_type  obj_type,
int  exoid,
int  num_ent,
int  num_var,
int *  var_tab,
int *  status,
void_int ids,
const char *  label 
) [static]
static int define_variable_name_variable ( int  exoid,
const char *  VARIABLE,
int  dimension,
const char *  label 
) [static]
int ex_put_all_var_param_ext ( int  exoid,
const ex_var_params vp 
)

writes the number of global, nodal, element, nodeset, and sideset variables that will be written to the database

Parameters:
exoidexodus file id
*vppointer to variable parameter info
static int * get_status_array ( int  exoid,
int  count,
const char *  VARIABLE,
const char *  label 
) [static]
static int put_truth_table ( int  exoid,
int  varid,
int *  table,
const char *  label 
) [static]
static void * safe_free ( void *  array) [static]
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines