ExodusII
6.05
|
#include <inttypes.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include "exodusII.h"
#include "exodusII_int.h"
#include "netcdf.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 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 EX_DEFINE_VARS | ( | TID, | |
STNAME, | |||
TNAME, | |||
NUMVAR, | |||
DNAME, | |||
DID1, | |||
DID2, | |||
DVAL, | |||
VIDS, | |||
VNOV, | |||
VTV, | |||
VSTATVAL, | |||
VTABVAL, | |||
VTABVAR | |||
) |
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 = ex_safe_free (VSTATVAL); \ VIDS = ex_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 | |||
) |
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; \ } \ }
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
exoid | exodus file id |
*vp | pointer 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] |