Exodus 7.22

Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
exodusII_int.h File Reference
`#include "exodus_config.h"`
`#include "netcdf.h"`
`#include <inttypes.h>`
`#include <assert.h>`
`#include <ctype.h>`
`#include <string.h>`
`#include <stdio.h>`

Go to the source code of this file.

## Data Structures
struct | ex__file_item
struct | ex__elem_blk_parm
struct | ex__list_item
struct | ex__obj_stats

## Macros
#define | snprintf_nowarn(...) (snprintf(__VA_ARGS__) < 0 ? abort() : (void)0)
#define | MAX_VAR_NAME_LENGTH 32
#define | EXODUS_DEFAULT_SIZE 1
#define | EX_FILE_ID_MASK (0xffff0000)
#define | EX_GRP_ID_MASK (0x0000ffff)
#define | EX_FUNC_ENTER()
#define | EX_FUNC_ENTER_INT()
#define | EX_FUNC_LEAVE(error) return error
#define | EX_FUNC_VOID() return
#define | EX_UNUSED(A)
#define | ATT_TITLE "title"
#define | ATT_API_VERSION "api_version"
#define | ATT_API_VERSION_BLANK "api version"
#define | ATT_VERSION "version"
#define | ATT_FILESIZE "file_size"
#define | ATT_FLT_WORDSIZE "floating_point_word_size"
#define | ATT_FLT_WORDSIZE_BLANK "floating point word size"
#define | ATT_MAX_NAME_LENGTH "maximum_name_length"
#define | ATT_INT64_STATUS "int64_status"
#define | DIM_NUM_NODES "num_nodes"
#define | DIM_NUM_DIM "num_dim"
#define | DIM_NUM_EDGE "num_edge"
#define | DIM_NUM_FACE "num_face"
#define | DIM_NUM_ELEM "num_elem"
#define | DIM_NUM_EL_BLK "num_el_blk"
#define | DIM_NUM_ED_BLK "num_ed_blk"
#define | DIM_NUM_FA_BLK "num_fa_blk"
#define | VAR_COORD "coord"
#define | VAR_COORD_X "coordx"
#define | VAR_COORD_Y "coordy"
#define | VAR_COORD_Z "coordz"
#define | VAR_NAME_COOR "coor_names"
#define | VAR_NAME_EL_BLK "eb_names"
#define | VAR_NAME_NS "ns_names"
#define | VAR_NAME_SS "ss_names"
#define | VAR_NAME_EM "emap_names"
#define | VAR_NAME_EDM "edmap_names"
#define | VAR_NAME_FAM "famap_names"
#define | VAR_NAME_NM "nmap_names"
#define | VAR_NAME_ED_BLK "ed_names"
#define | VAR_NAME_FA_BLK "fa_names"
#define | VAR_NAME_ES "es_names"
#define | VAR_NAME_FS "fs_names"
#define | VAR_NAME_ELS "els_names"
#define | VAR_STAT_EL_BLK "eb_status"
#define | VAR_STAT_ECONN "econn_status"
#define | VAR_STAT_FCONN "fconn_status"
#define | VAR_STAT_ED_BLK "ed_status"
#define | VAR_STAT_FA_BLK "fa_status"
#define | VAR_ID_EL_BLK "eb_prop1"
#define | VAR_ID_ED_BLK "ed_prop1"
#define | VAR_ID_FA_BLK "fa_prop1"
#define | ATT_NAME_ELB "elem_type"
#define | DIM_NUM_EL_IN_BLK(num) ex__catstr("num_el_in_blk", num)
#define | DIM_NUM_NOD_PER_EL(num) ex__catstr("num_nod_per_el", num)
#define | DIM_NUM_ATT_IN_BLK(num) ex__catstr("num_att_in_blk", num)
#define | DIM_NUM_ED_IN_EBLK(num) ex__catstr("num_ed_in_blk", num)
#define | DIM_NUM_NOD_PER_ED(num) ex__catstr("num_nod_per_ed", num)
#define | DIM_NUM_EDG_PER_EL(num) ex__catstr("num_edg_per_el", num)
#define | DIM_NUM_ATT_IN_EBLK(num) ex__catstr("num_att_in_eblk", num)
#define | DIM_NUM_FA_IN_FBLK(num) ex__catstr("num_fa_in_blk", num)
#define | DIM_NUM_NOD_PER_FA(num) ex__catstr("num_nod_per_fa", num)
#define | DIM_NUM_FAC_PER_EL(num) ex__catstr("num_fac_per_el", num)
#define | DIM_NUM_ATT_IN_FBLK(num) ex__catstr("num_att_in_fblk", num)
#define | VAR_CONN(num) ex__catstr("connect", num)
#define | VAR_EBEPEC(num) ex__catstr("ebepecnt", num)
#define | VAR_ATTRIB(num) ex__catstr("attrib", num)
#define | VAR_NAME_ATTRIB(num) ex__catstr("attrib_name", num)
#define | VAR_EB_PROP(num) ex__catstr("eb_prop", num)
#define | VAR_ECONN(num) ex__catstr("edgconn", num)
#define | VAR_EBCONN(num) ex__catstr("ebconn", num)
#define | VAR_EATTRIB(num) ex__catstr("eattrb", num)
#define | VAR_NAME_EATTRIB(num) ex__catstr("eattrib_name", num)
#define | VAR_NATTRIB "nattrb"
#define | VAR_NAME_NATTRIB "nattrib_name"
#define | DIM_NUM_ATT_IN_NBLK "num_att_in_nblk"
#define | VAR_NSATTRIB(num) ex__catstr("nsattrb", num)
#define | VAR_NAME_NSATTRIB(num) ex__catstr("nsattrib_name", num)
#define | DIM_NUM_ATT_IN_NS(num) ex__catstr("num_att_in_ns", num)
#define | VAR_SSATTRIB(num) ex__catstr("ssattrb", num)
#define | VAR_NAME_SSATTRIB(num) ex__catstr("ssattrib_name", num)
#define | DIM_NUM_ATT_IN_SS(num) ex__catstr("num_att_in_ss", num)
#define | VAR_ESATTRIB(num) ex__catstr("esattrb", num)
#define | VAR_NAME_ESATTRIB(num) ex__catstr("esattrib_name", num)
#define | DIM_NUM_ATT_IN_ES(num) ex__catstr("num_att_in_es", num)
#define | VAR_FSATTRIB(num) ex__catstr("fsattrb", num)
#define | VAR_NAME_FSATTRIB(num) ex__catstr("fsattrib_name", num)
#define | DIM_NUM_ATT_IN_FS(num) ex__catstr("num_att_in_fs", num)
#define | VAR_ELSATTRIB(num) ex__catstr("elsattrb", num)
#define | VAR_NAME_ELSATTRIB(num) ex__catstr("elsattrib_name", num)
#define | DIM_NUM_ATT_IN_ELS(num) ex__catstr("num_att_in_els", num)
#define | VAR_ED_PROP(num) ex__catstr("ed_prop", num)
#define | VAR_FCONN(num) ex__catstr("facconn", num)
#define | VAR_FBCONN(num) ex__catstr("fbconn", num)
#define | VAR_FBEPEC(num) ex__catstr("fbepecnt", num)
#define | VAR_FATTRIB(num) ex__catstr("fattrb", num)
#define | VAR_NAME_FATTRIB(num) ex__catstr("fattrib_name", num)
#define | VAR_FA_PROP(num) ex__catstr("fa_prop", num)
#define | ATT_PROP_NAME "name"
#define | VAR_MAP "elem_map"
#define | DIM_NUM_SS "num_side_sets"
#define | VAR_SS_STAT "ss_status"
#define | VAR_SS_IDS "ss_prop1"
#define | DIM_NUM_SIDE_SS(num) ex__catstr("num_side_ss", num)
#define | DIM_NUM_DF_SS(num) ex__catstr("num_df_ss", num)
#define | VAR_FACT_SS(num) ex__catstr("dist_fact_ss", num)
#define | VAR_ELEM_SS(num) ex__catstr("elem_ss", num)
#define | VAR_SIDE_SS(num) ex__catstr("side_ss", num)
#define | VAR_SS_PROP(num) ex__catstr("ss_prop", num)
#define | DIM_NUM_ES "num_edge_sets"
#define | VAR_ES_STAT "es_status"
#define | VAR_ES_IDS "es_prop1"
#define | DIM_NUM_EDGE_ES(num) ex__catstr("num_edge_es", num)
#define | DIM_NUM_DF_ES(num) ex__catstr("num_df_es", num)
#define | VAR_FACT_ES(num) ex__catstr("dist_fact_es", num)
#define | VAR_EDGE_ES(num) ex__catstr("edge_es", num)
#define | VAR_ORNT_ES(num) ex__catstr("ornt_es", num)
#define | VAR_ES_PROP(num) ex__catstr("es_prop", num)
#define | DIM_NUM_FS "num_face_sets"
#define | VAR_FS_STAT "fs_status"
#define | VAR_FS_IDS "fs_prop1"
#define | DIM_NUM_FACE_FS(num) ex__catstr("num_face_fs", num)
#define | DIM_NUM_DF_FS(num) ex__catstr("num_df_fs", num)
#define | VAR_FACT_FS(num) ex__catstr("dist_fact_fs", num)
#define | VAR_FACE_FS(num) ex__catstr("face_fs", num)
#define | VAR_ORNT_FS(num) ex__catstr("ornt_fs", num)
#define | VAR_FS_PROP(num) ex__catstr("fs_prop", num)
#define | DIM_NUM_ELS "num_elem_sets"
#define | DIM_NUM_ELE_ELS(num) ex__catstr("num_ele_els", num)
#define | DIM_NUM_DF_ELS(num) ex__catstr("num_df_els", num)
#define | VAR_ELS_STAT "els_status"
#define | VAR_ELS_IDS "els_prop1"
#define | VAR_ELEM_ELS(num) ex__catstr("elem_els", num)
#define | VAR_FACT_ELS(num) ex__catstr("dist_fact_els", num)
#define | VAR_ELS_PROP(num) ex__catstr("els_prop", num)
#define | DIM_NUM_NS "num_node_sets"
#define | DIM_NUM_NOD_NS(num) ex__catstr("num_nod_ns", num)
#define | DIM_NUM_DF_NS(num) ex__catstr("num_df_ns", num)
#define | VAR_NS_STAT "ns_status"
#define | VAR_NS_IDS "ns_prop1"
#define | VAR_NODE_NS(num) ex__catstr("node_ns", num)
#define | VAR_FACT_NS(num) ex__catstr("dist_fact_ns", num)
#define | VAR_NS_PROP(num) ex__catstr("ns_prop", num)
#define | DIM_NUM_QA "num_qa_rec"
#define | VAR_QA_TITLE "qa_records"
#define | DIM_NUM_INFO "num_info"
#define | VAR_INFO "info_records"
#define | VAR_WHOLE_TIME "time_whole"
#define | VAR_ELEM_TAB "elem_var_tab"
#define | VAR_EBLK_TAB "edge_var_tab"
#define | VAR_FBLK_TAB "face_var_tab"
#define | VAR_ELSET_TAB "elset_var_tab"
#define | VAR_SSET_TAB "sset_var_tab"
#define | VAR_FSET_TAB "fset_var_tab"
#define | VAR_ESET_TAB "eset_var_tab"
#define | VAR_NSET_TAB "nset_var_tab"
#define | DIM_NUM_GLO_VAR "num_glo_var"
#define | VAR_NAME_GLO_VAR "name_glo_var"
#define | VAR_GLO_VAR "vals_glo_var"
#define | DIM_NUM_NOD_VAR "num_nod_var"
#define | VAR_NAME_NOD_VAR "name_nod_var"
#define | VAR_NOD_VAR "vals_nod_var"
#define | VAR_NOD_VAR_NEW(num) ex__catstr("vals_nod_var", num)
#define | DIM_NUM_ELE_VAR "num_elem_var"
#define | VAR_NAME_ELE_VAR "name_elem_var"
#define | VAR_ELEM_VAR(num1, num2) ex__catstr2("vals_elem_var", num1, "eb", num2)
#define | DIM_NUM_EDG_VAR "num_edge_var"
#define | VAR_NAME_EDG_VAR "name_edge_var"
#define | VAR_EDGE_VAR(num1, num2) ex__catstr2("vals_edge_var", num1, "eb", num2)
#define | DIM_NUM_FAC_VAR "num_face_var"
#define | VAR_NAME_FAC_VAR "name_face_var"
#define | VAR_FACE_VAR(num1, num2) ex__catstr2("vals_face_var", num1, "fb", num2)
#define | DIM_NUM_NSET_VAR "num_nset_var"
#define | VAR_NAME_NSET_VAR "name_nset_var"
#define | VAR_NS_VAR(num1, num2) ex__catstr2("vals_nset_var", num1, "ns", num2)
#define | DIM_NUM_ESET_VAR "num_eset_var"
#define | VAR_NAME_ESET_VAR "name_eset_var"
#define | VAR_ES_VAR(num1, num2) ex__catstr2("vals_eset_var", num1, "es", num2)
#define | DIM_NUM_FSET_VAR "num_fset_var"
#define | VAR_NAME_FSET_VAR "name_fset_var"
#define | VAR_FS_VAR(num1, num2) ex__catstr2("vals_fset_var", num1, "fs", num2)
#define | DIM_NUM_SSET_VAR "num_sset_var"
#define | VAR_NAME_SSET_VAR "name_sset_var"
#define | VAR_SS_VAR(num1, num2) ex__catstr2("vals_sset_var", num1, "ss", num2)
#define | DIM_NUM_ELSET_VAR "num_elset_var"
#define | VAR_NAME_ELSET_VAR "name_elset_var"
#define | VAR_ELS_VAR(num1, num2) ex__catstr2("vals_elset_var", num1, "es", num2)
#define | DIM_STR "len_string"
#define | DIM_STR_NAME "len_name"
#define | DIM_LIN "len_line"
#define | DIM_N4 "four"
#define | DIM_TIME "time_step"
#define | VAR_ELEM_NUM_MAP "elem_num_map"
#define | VAR_FACE_NUM_MAP "face_num_map"
#define | VAR_EDGE_NUM_MAP "edge_num_map"
#define | VAR_NODE_NUM_MAP "node_num_map"
#define | DIM_NUM_EM "num_elem_maps"
#define | VAR_ELEM_MAP(num) ex__catstr("elem_map", num)
#define | VAR_EM_PROP(num) ex__catstr("em_prop", num)
#define | DIM_NUM_EDM "num_edge_maps"
#define | VAR_EDGE_MAP(num) ex__catstr("edge_map", num)
#define | VAR_EDM_PROP(num) ex__catstr("edm_prop", num)
#define | DIM_NUM_FAM "num_face_maps"
#define | VAR_FACE_MAP(num) ex__catstr("face_map", num)
#define | VAR_FAM_PROP(num) ex__catstr("fam_prop", num)
#define | DIM_NUM_NM "num_node_maps"
#define | VAR_NODE_MAP(num) ex__catstr("node_map", num)
#define | VAR_NM_PROP(num) ex__catstr("nm_prop", num)
#define | DIM_NUM_CFRAMES "num_cframes"
#define | DIM_NUM_CFRAME9 "num_cframes_9"
#define | VAR_FRAME_COORDS "frame_coordinates"
#define | VAR_FRAME_IDS "frame_ids"
#define | VAR_FRAME_TAGS "frame_tags"
#define | VAR_ELBLK_IDS_GLOBAL "el_blk_ids_global"
#define | VAR_ELBLK_CNT_GLOBAL "el_blk_cnt_global"
#define | VAR_NS_IDS_GLOBAL "ns_ids_global"
#define | VAR_NS_NODE_CNT_GLOBAL "ns_node_cnt_global"
#define | VAR_NS_DF_CNT_GLOBAL "ns_df_cnt_global"
#define | VAR_SS_IDS_GLOBAL "ss_ids_global"
#define | VAR_SS_SIDE_CNT_GLOBAL "ss_side_cnt_global"
#define | VAR_SS_DF_CNT_GLOBAL "ss_df_cnt_global"
#define | VAR_FILE_TYPE "nem_ftype"
#define | VAR_COMM_MAP "comm_map"
#define | VAR_NODE_MAP_INT "node_mapi"
#define | VAR_NODE_MAP_INT_IDX "node_mapi_idx"
#define | VAR_NODE_MAP_BOR "node_mapb"
#define | VAR_NODE_MAP_BOR_IDX "node_mapb_idx"
#define | VAR_NODE_MAP_EXT "node_mape"
#define | VAR_NODE_MAP_EXT_IDX "node_mape_idx"
#define | VAR_ELEM_MAP_INT "elem_mapi"
#define | VAR_ELEM_MAP_INT_IDX "elem_mapi_idx"
#define | VAR_ELEM_MAP_BOR "elem_mapb"
#define | VAR_ELEM_MAP_BOR_IDX "elem_mapb_idx"
#define | VAR_INT_N_STAT "int_n_stat"
#define | VAR_BOR_N_STAT "bor_n_stat"
#define | VAR_EXT_N_STAT "ext_n_stat"
#define | VAR_INT_E_STAT "int_e_stat"
#define | VAR_BOR_E_STAT "bor_e_stat"
#define | VAR_N_COMM_IDS "n_comm_ids"
#define | VAR_N_COMM_STAT "n_comm_stat"
#define | VAR_N_COMM_INFO_IDX "n_comm_info_idx"
#define | VAR_E_COMM_IDS "e_comm_ids"
#define | VAR_E_COMM_STAT "e_comm_stat"
#define | VAR_E_COMM_INFO_IDX "e_comm_info_idx"
#define | VAR_N_COMM_NIDS "n_comm_nids"
#define | VAR_N_COMM_PROC "n_comm_proc"
#define | VAR_N_COMM_DATA_IDX "n_comm_data_idx"
#define | VAR_E_COMM_EIDS "e_comm_eids"
#define | VAR_E_COMM_SIDS "e_comm_sids"
#define | VAR_E_COMM_PROC "e_comm_proc"
#define | VAR_E_COMM_DATA_IDX "e_comm_data_idx"
#define | DIM_NUM_INT_NODES "num_int_node"
#define | DIM_NUM_BOR_NODES "num_bor_node"
#define | DIM_NUM_EXT_NODES "num_ext_node"
#define | DIM_NUM_INT_ELEMS "num_int_elem"
#define | DIM_NUM_BOR_ELEMS "num_bor_elem"
#define | DIM_NUM_PROCS "num_processors"
#define | DIM_NUM_PROCS_F "num_procs_file"
#define | DIM_NUM_NODES_GLOBAL "num_nodes_global"
#define | DIM_NUM_ELEMS_GLOBAL "num_elems_global"
#define | DIM_NUM_NS_GLOBAL "num_ns_global"
#define | DIM_NUM_SS_GLOBAL "num_ss_global"
#define | DIM_NUM_ELBLK_GLOBAL "num_el_blk_global"
#define | DIM_NUM_N_CMAPS "num_n_cmaps"
#define | DIM_NUM_E_CMAPS "num_e_cmaps"
#define | DIM_NCNT_CMAP "ncnt_cmap"
#define | DIM_ECNT_CMAP "ecnt_cmap"

## Typedefs
typedef enum ex__element_type | ex__element_type
typedef enum ex__coordinate_frame_type | ex__coordinate_frame_type

## Enumerations
enum | ex__element_type { EX_EL_UNK = -1, EX_EL_NULL_ELEMENT = 0, EX_EL_TRIANGLE = 1, EX_EL_QUAD = 2, EX_EL_HEX = 3, EX_EL_WEDGE = 4, EX_EL_TETRA = 5, EX_EL_TRUSS = 6, EX_EL_BEAM = 7, EX_EL_SHELL = 8, EX_EL_SPHERE = 9, EX_EL_CIRCLE = 10, EX_EL_TRISHELL = 11, EX_EL_PYRAMID = 12 }
enum | ex__coordinate_frame_type { EX_CF_RECTANGULAR = 1, EX_CF_CYLINDRICAL = 2, EX_CF_SPHERICAL = 3 }

## Functions
void | ex__reset_error_status (void)
void | ex__iqsort (int v[], int iv[], int N)
void | ex__iqsort64 (int64_t v[], int64_t iv[], int64_t N)
char * | ex__catstr (const char *, int)
char * | ex__catstr2 (const char *, int, const char *, int)
char * | ex__dim_num_entries_in_object (ex_entity_type, int)
char * | ex__dim_num_objects (ex_entity_type obj_type)
char * | ex__name_var_of_object (ex_entity_type, int, int)
char * | ex__name_of_map (ex_entity_type, int)
int | ex__conv_init (int exoid, int *comp_wordsize, int *io_wordsize, int file_wordsize, int int64_status, int is_parallel, int is_hdf5, int is_pnetcdf)
void | ex__conv_exit (int exoid)
nc_type | nc_flt_code (int exoid)
int | ex__comp_ws (int exoid)
int | ex__get_cpu_ws (void)
int | ex__is_parallel (int exoid)
struct ex__list_item ** | ex__get_counter_list (ex_entity_type obj_type)
int | ex__get_file_item (int, struct ex__list_item **)
int | ex__inc_file_item (int, struct ex__list_item **)
void | ex__rm_file_item (int, struct ex__list_item **)
struct ex__file_item * | ex__find_file_item (int exoid)
struct ex__file_item * | ex__add_file_item (int exoid)
struct ex__obj_stats * | ex__get_stat_ptr (int exoid, struct ex__obj_stats **obj_ptr)
void | ex__rm_stat_ptr (int exoid, struct ex__obj_stats **obj_ptr)
void | ex__compress_variable (int exoid, int varid, int type)
int | ex__id_lkup (int exoid, ex_entity_type id_type, ex_entity_id num)
void | ex__check_valid_file_id (int exoid, const char *func)
int | ex__check_file_type (const char *path, int *type)
int | ex__get_dimension (int exoid, const char *DIMENSION, const char *label, size_t *count, int *dimid, const char *routine)
int | ex__get_nodal_var (int exoid, int time_step, int nodal_var_index, int64_t num_nodes, void *nodal_var_vals)
int | ex__put_nodal_var (int exoid, int time_step, int nodal_var_index, int64_t num_nodes, const void *nodal_var_vals)
int | ex__get_nodal_var_time (int exoid, int nodal_var_index, int64_t node_number, int beg_time_step, int end_time_step, void *nodal_var_vals)
int | ex__get_partial_nodal_var (int exoid, int time_step, int nodal_var_index, int64_t start_node, int64_t num_nodes, void *var_vals)
int | ex__put_partial_nodal_var (int exoid, int time_step, int nodal_var_index, int64_t start_node, int64_t num_nodes, const void *nodal_var_vals)
int | ex__get_glob_vars (int exoid, int time_step, int num_glob_vars, void *glob_var_vals)
int | ex__get_glob_var_time (int exoid, int glob_var_index, int beg_time_step, int end_time_step, void *glob_var_vals)
int | ex__get_name (int exoid, int varid, size_t index, char *name, int name_size, ex_entity_type obj_type, const char *routine)
int | ex__get_names (int exoid, int varid, size_t num_entity, char **names, ex_entity_type obj_type, const char *routine)
int | ex__put_name (int exoid, int varid, size_t index, const char *name, ex_entity_type obj_type, const char *subtype, const char *routine)
int | ex__put_names (int exoid, int varid, size_t num_entity, char **names, ex_entity_type obj_type, const char *subtype, const char *routine)
void | ex__trim (char *name)
void | ex__update_max_name_length (int exoid, int length)
int | ex__leavedef (int exoid, const char *call_rout)
int | ex__check_version (int run_version)
int | ex__handle_mode (unsigned int my_mode, int is_parallel, int run_version)
int | ex__populate_header (int exoid, const char *path, int my_mode, int is_parallel, int *comp_ws, int *io_ws)
int | ex__get_block_param (int exoid, ex_entity_id id, int ndim, struct ex__elem_blk_parm *elem_blk_parm)
int | ex__get_file_type (int exoid, char *ftype)
int | ex__put_nemesis_version (int exoid)
int | ne__check_file_version (int neid)
int | ne__id_lkup (int exoid, const char *ne_var_name, int64_t *idx, ex_entity_id ne_var_id)

## Variables
struct ex__obj_stats * | exoII_eb
struct ex__obj_stats * | exoII_ed
struct ex__obj_stats * | exoII_fa
struct ex__obj_stats * | exoII_ns
struct ex__obj_stats * | exoII_es
struct ex__obj_stats * | exoII_fs
struct ex__obj_stats * | exoII_ss
struct ex__obj_stats * | exoII_els
struct ex__obj_stats * | exoII_em
struct ex__obj_stats * | exoII_edm
struct ex__obj_stats * | exoII_fam
struct ex__obj_stats * | exoII_nm
int | ex__default_max_name_length

## Macro Definition Documentation

## ◆ snprintf_nowarn

#define snprintf_nowarn | ( |  | ... | ) | (snprintf(__VA_ARGS__) < 0 ? abort() : (void)0)