int ex_put_name(int exoid, ex_entity_type obj_type, ex_entity_id entity_id, const char *name) { int status; int varid, ent_ndx; char errmsg[MAX_ERR_LENGTH]; const char *vobj; EX_FUNC_ENTER(); ex_check_valid_file_id(exoid, __func__); switch (obj_type) { case EX_EDGE_BLOCK: vobj = VAR_NAME_ED_BLK; break; case EX_FACE_BLOCK: vobj = VAR_NAME_FA_BLK; break; case EX_ELEM_BLOCK: vobj = VAR_NAME_EL_BLK; break; case EX_NODE_SET: vobj = VAR_NAME_NS; break; case EX_SIDE_SET: vobj = VAR_NAME_SS; break; case EX_EDGE_SET: vobj = VAR_NAME_ES; break; case EX_FACE_SET: vobj = VAR_NAME_FS; break; case EX_ELEM_SET: vobj = VAR_NAME_ELS; break; case EX_NODE_MAP: vobj = VAR_NAME_NM; break; case EX_EDGE_MAP: vobj = VAR_NAME_EDM; break; case EX_FACE_MAP: vobj = VAR_NAME_FAM; break; case EX_ELEM_MAP: vobj = VAR_NAME_EM; break; default: snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: Invalid type specified in file id %d", exoid); ex_err(__func__, errmsg, EX_BADPARAM); EX_FUNC_LEAVE(EX_FATAL); } if ((status = nc_inq_varid(exoid, vobj, &varid)) != NC_NOERR) { snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: failed to locate %s names in file id %d", ex_name_of_object(obj_type), exoid); ex_err(__func__, errmsg, status); EX_FUNC_LEAVE(EX_FATAL); } ent_ndx = ex_id_lkup(exoid, obj_type, entity_id); if (ent_ndx == -EX_LOOKUPFAIL) { /* could not find the element block id */ snprintf(errmsg, MAX_ERR_LENGTH, "ERROR: %s id %" PRId64 " not found in file id %d", ex_name_of_object(obj_type), entity_id, exoid); ex_err(__func__, errmsg, EX_LOOKUPFAIL); EX_FUNC_LEAVE(EX_FATAL); } /* If this is a null entity, then 'ent_ndx' will be negative. * We don't care in this __func__, so make it positive and continue... */ if (ent_ndx < 0) { ent_ndx = -ent_ndx; } /* write EXODUS entityname */ status = ex_put_name_internal(exoid, varid, ent_ndx - 1, name, obj_type, "", __func__); EX_FUNC_LEAVE(status); }
int ex_put_name (int exoid, ex_entity_type obj_type, ex_entity_id entity_id, const char *name) { int status; int varid, ent_ndx; char errmsg[MAX_ERR_LENGTH]; const char *routine = "ex_put_name"; const char *vobj; exerrval = 0; /* clear error code */ switch(obj_type) { case EX_EDGE_BLOCK: vobj = VAR_NAME_ED_BLK; break; case EX_FACE_BLOCK: vobj = VAR_NAME_FA_BLK; break; case EX_ELEM_BLOCK: vobj = VAR_NAME_EL_BLK; break; case EX_NODE_SET: vobj = VAR_NAME_NS; break; case EX_SIDE_SET: vobj = VAR_NAME_SS; break; case EX_EDGE_SET: vobj = VAR_NAME_ES; break; case EX_FACE_SET: vobj = VAR_NAME_FS; break; case EX_ELEM_SET: vobj = VAR_NAME_ELS; break; case EX_NODE_MAP: vobj = VAR_NAME_NM; break; case EX_EDGE_MAP: vobj = VAR_NAME_EDM; break; case EX_FACE_MAP: vobj = VAR_NAME_FAM; break; case EX_ELEM_MAP: vobj = VAR_NAME_EM; break; default: exerrval = EX_BADPARAM; sprintf(errmsg, "Error: Invalid type specified in file id %d", exoid); ex_err(routine,errmsg,exerrval); return(EX_FATAL); } if ((status = nc_inq_varid(exoid, vobj, &varid)) != NC_NOERR) { exerrval = status; sprintf(errmsg, "Error: failed to locate %s names in file id %d", ex_name_of_object(obj_type), exoid); ex_err(routine,errmsg,exerrval); return (EX_FATAL); } ent_ndx = ex_id_lkup(exoid, obj_type, entity_id); if (exerrval == EX_LOOKUPFAIL) { /* could not find the element block id */ sprintf(errmsg, "Error: %s id %"PRId64" not found in file id %d", ex_name_of_object(obj_type), entity_id, exoid); ex_err("ex_put_name",errmsg,exerrval); return (EX_FATAL); } /* If this is a null entity, then 'ent_ndx' will be negative. * We don't care in this routine, so make it positive and continue... */ if (ent_ndx < 0) ent_ndx = -ent_ndx; /* write EXODUS entityname */ status = ex_put_name_internal(exoid, varid, ent_ndx-1, name, obj_type, "", routine); return(status); }
int ex_put_variable_name (int exoid, ex_entity_type obj_type, int var_num, const char *var_name) { int status; int varid; char errmsg[MAX_ERR_LENGTH]; const char* vname; exerrval = 0; /* clear error code */ /* inquire previously defined variables */ switch (obj_type) { case EX_GLOBAL: vname = VAR_NAME_GLO_VAR; break; case EX_NODAL: vname = VAR_NAME_NOD_VAR; break; case EX_EDGE_BLOCK: vname = VAR_NAME_EDG_VAR; break; case EX_FACE_BLOCK: vname = VAR_NAME_FAC_VAR; break; case EX_ELEM_BLOCK: vname = VAR_NAME_ELE_VAR; break; case EX_NODE_SET: vname = VAR_NAME_NSET_VAR; break; case EX_EDGE_SET: vname = VAR_NAME_ESET_VAR; break; case EX_FACE_SET: vname = VAR_NAME_FSET_VAR; break; case EX_SIDE_SET: vname = VAR_NAME_SSET_VAR; break; case EX_ELEM_SET: vname = VAR_NAME_ELSET_VAR; break; default: exerrval = EX_BADPARAM; sprintf( errmsg, "Error: Invalid variable type (%d) given for file id %d", obj_type, exoid ); ex_err( "ex_put_variable_name", errmsg, exerrval ); return (EX_WARN); } if ((status = nc_inq_varid(exoid, vname, &varid)) != NC_NOERR) { exerrval = status; sprintf( errmsg, "Warning: no %s variables names stored in file id %d", ex_name_of_object(obj_type), exoid ); ex_err("ex_put_variable_name",errmsg,exerrval); return (EX_WARN); } /* write EXODUS variable name */ status = ex_put_name_internal(exoid, varid, var_num-1, var_name, obj_type, "variable", "ex_put_variable_name"); return(status); }