Exodus 7.22

exodusII_int.h
Go to the documentation of this file.
1 /*
2 * Copyright (c) 2005-2017 National Technology & Engineering Solutions
3 * of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
4 * NTESS, the U.S. Government retains certain rights in this software.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * * Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following
15 * disclaimer in the documentation and/or other materials provided
16 * with the distribution.
17 *
18 * * Neither the name of NTESS nor the names of its
19 * contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 *
34 */
35 /*****************************************************************************
36 *
37 * exodusII_int.h - ExodusII header file for internal Exodus call use only
38 *
39 */
40
41 #ifndef EXODUS_II_INT_HDR
42 #define EXODUS_II_INT_HDR
43
44 #include "exodus_config.h"
45
46 #if defined(EXODUS_THREADSAFE)
47 #include <pthread.h>
48 #endif
49
50 #include "netcdf.h"
51 #if defined(NC_HAVE_META_H)
52 #include "netcdf_meta.h"
53 #endif
54
55 #if defined(_WIN32) && defined(_MSC_VER) && _MSC_VER < 1900
56 #define PRId64 "I64d"
57 #else
58 #include <inttypes.h>
59 #endif
60
61 #include <assert.h>
62 #include <ctype.h>
63 #include <string.h>
64
65 #ifndef __APPLE__
66 #if defined __STDC__ || defined __cplusplus
67 #include <stdlib.h>
68 #endif
69 #endif
70
71 #ifdef _MSC_VER
72 #pragma warning(disable : 4127)
73 #pragma warning(disable : 4706)
74 #pragma warning(disable : 4701)
75 #endif
76
77 #if defined(__BORLANDC__)
78 #pragma warn - 8004 /* "assigned a value that is never used" */
79 #endif
80
81 #include <stdio.h>
82
83 #if defined(_MSC_VER) && _MSC_VER < 1900
84 #define __func__ __FUNCTION__
85 #define snprintf _snprintf
86 #endif
87
88 #define snprintf_nowarn(...) (snprintf(__VA_ARGS__) < 0 ? abort() : (void)0)
89
90 #ifdef __cplusplus
91 extern "C" {
92 #endif
93
94 /**
95 * \defgroup Internal Internal Functions and Defines
96 * \internal
97 *
98 * Variables and functions used internally in the library
99 *@{
100 */
101 #define MAX_VAR_NAME_LENGTH 32 /**< Internal use only */
102
103 /* Default "filesize" for newly created files.
104 * Set to 0 for normal filesize setting.
105 * Set to 1 for EXODUS_LARGE_MODEL setting to be the default
106 */
107 #define EXODUS_DEFAULT_SIZE 1
108
109 /* Used to map between root (file id) and group ids when using groups */
110 #define EX_FILE_ID_MASK (0xffff0000) /**< Must match FILE_ID_MASK in NetCDF nc4internal.h */
111 #define EX_GRP_ID_MASK (0x0000ffff) /**< Must match GRP_ID_MASK in NetCDF nc4internal.h */
112
113 void ex__reset_error_status(void);
114
115 #if defined(EXODUS_THREADSAFE)
116 #if !defined(exerrval)
117 /* In both exodusII.h and exodusII_int.h */
118 typedef struct EX_errval
119 {
120 int errval;
121 char last_pname[MAX_ERR_LENGTH];
122 char last_errmsg[MAX_ERR_LENGTH];
123 int last_err_num;
124 } EX_errval_t;
125
126 EXODUS_EXPORT EX_errval_t *ex_errval;
127 #define exerrval ex_errval->errval
128 #endif
129
130 extern pthread_once_t EX_first_init_g;
131
132 typedef struct EX_mutex_struct
133 {
134 pthread_mutex_t atomic_lock; /**< lock for atomicity of new mechanism */
135 pthread_mutexattr_t attribute;
136 } EX_mutex_t;
137
138 extern EX_mutex_t EX_g;
139 extern int ex__mutex_lock(EX_mutex_t *mutex);
140 extern int ex__mutex_unlock(EX_mutex_t *mutex);
141 extern void ex__pthread_first_thread_init(void);
142 extern EX_errval_t *exerrval_get();
143
144 #define EX_FUNC_ENTER() \
145 do { \
146 /* Initialize the thread-safe code */ \
147 pthread_once(&EX_first_init_g, ex__pthread_first_thread_init); \
148 \
149 /* Grab the mutex for the library */ \
150 ex__mutex_lock(&EX_g); \
151 ex_errval = exerrval_get(); \
152 exerrval = 0; \
153 ex_errval->last_err_num = 0; \
154 } while (0)
155
156 #define EX_FUNC_ENTER_INT() \
157 do { \
158 /* Initialize the thread-safe code */ \
159 pthread_once(&EX_first_init_g, ex__pthread_first_thread_init); \
160 \
161 /* Grab the mutex for the library */ \
162 ex__mutex_lock(&EX_g); \
163 ex_errval = exerrval_get(); \
164 } while (0)
165
166 #define EX_FUNC_LEAVE(error) \
167 do { \
168 ex__mutex_unlock(&EX_g); \
169 return error; \
170 } while (0)
171
172 #define EX_FUNC_VOID() \
173 do { \
174 ex__mutex_unlock(&EX_g); \
175 return; \
176 } while (0)
177
178 #else
179
180 /* Enable this to output tracing information from the API functions */
181 #if 0
182 EXODUS_EXPORT int indent;
183 #define EX_FUNC_ENTER() \
184 do { \
185 ex__reset_error_status(); \
186 fprintf(stderr, "%d Enter: %s\n", indent, __func__); \
187 indent++; \
188 } while (0)
189 #define EX_FUNC_ENTER_INT() \
190 do { \
191 fprintf(stderr, "%d Enter: %s\n", indent, __func__); \
192 indent++; \
193 } while (0)
194 #define EX_FUNC_LEAVE(error) \
195 do { \
196 indent--; \
197 fprintf(stderr, "%d Leave: %s\n", indent, __func__); \
198 return error; \
199 } while (0)
200 #define EX_FUNC_VOID() \
201 do { \
202 indent--; \
203 fprintf(stderr, "%d Leave: %s\n", indent, __func__); \
204 return; \
205 } while (0)
206 #else
207 #define EX_FUNC_ENTER() \
208 { \
209 ex__reset_error_status(); \
210 }
211 #define EX_FUNC_ENTER_INT()
212 #define EX_FUNC_LEAVE(error) return error
213 #define EX_FUNC_VOID() return
214 #endif
215 #endif
216
217 #define EX_UNUSED(A) \
218 do { \
219 (void)(A); \
220 } while (0)
221
222 /*
223 * This file contains defined constants that are used internally in the
224 * EXODUS API.
225 *
226 * The first group of constants refer to NetCDF variables, attributes, or
227 * dimensions in which the EXODUS data are stored. Using the defined
228 * constants will allow the names of the NetCDF entities to be changed easily
229 * in the future if needed. The first three letters of the constant identify
230 * the NetCDF entity as a variable (VAR), dimension (DIM), or attribute (ATT).
231 *
232 * NOTE: The entity name should not have any blanks in it. Blanks are
233 * technically legal but some NetCDF utilities (ncgen in particular)
234 * fail when they encounter a blank in a name.
235 *
236 */
237 #define ATT_TITLE "title" /**< the database title */
238 #define ATT_API_VERSION "api_version" /**< the EXODUS api vers number */
239 /*! the EXODUS api vers # used for db version 2.01 and earlier */
240 #define ATT_API_VERSION_BLANK "api version"
241 #define ATT_VERSION "version" /**< the EXODUS file vers number */
242 #define ATT_FILESIZE "file_size" /**< 1=large, 0=normal */
243 /*! word size of floating point numbers in file */
244 #define ATT_FLT_WORDSIZE "floating_point_word_size"
245 /*! word size of floating point numbers in file used for db version
246 2.01 and earlier */
247 #define ATT_FLT_WORDSIZE_BLANK "floating point word size"
248 #define ATT_MAX_NAME_LENGTH "maximum_name_length"
249 #define ATT_INT64_STATUS "int64_status"
250
251 #define DIM_NUM_NODES "num_nodes" /**< number of nodes */
252 #define DIM_NUM_DIM "num_dim" /**< number of dimensions; 2- or 3-d*/
253 #define DIM_NUM_EDGE "num_edge" /**< number of edges (over all blks)*/
254 #define DIM_NUM_FACE "num_face" /**< number of faces (over all blks)*/
255 #define DIM_NUM_ELEM "num_elem" /**< number of elements */
256 #define DIM_NUM_EL_BLK "num_el_blk" /**< number of element blocks */
257 #define DIM_NUM_ED_BLK "num_ed_blk" /**< number of edge blocks */
258 #define DIM_NUM_FA_BLK "num_fa_blk" /**< number of face blocks */
259 #define VAR_COORD "coord" /**< nodal coordinates */
260 #define VAR_COORD_X "coordx" /**< X-dimension coordinate */
261 #define VAR_COORD_Y "coordy" /**< Y-dimension coordinate */
262 #define VAR_COORD_Z "coordz" /**< Z-dimension coordinate */
263 #define VAR_NAME_COOR "coor_names" /**< names of coordinates */
264 #define VAR_NAME_EL_BLK "eb_names" /**< names of element blocks */
265 #define VAR_NAME_NS "ns_names" /**< names of node sets */
266 #define VAR_NAME_SS "ss_names" /**< names of side sets */
267 #define VAR_NAME_EM "emap_names" /**< names of element maps */
268 #define VAR_NAME_EDM "edmap_names" /**< names of edge maps */
269 #define VAR_NAME_FAM "famap_names" /**< names of face maps */
270 #define VAR_NAME_NM "nmap_names" /**< names of node maps */
271 #define VAR_NAME_ED_BLK "ed_names" /**< names of edge blocks */
272 #define VAR_NAME_FA_BLK "fa_names" /**< names of face blocks */
273 #define VAR_NAME_ES "es_names" /**< names of edge sets */
274 #define VAR_NAME_FS "fs_names" /**< names of face sets */
275 #define VAR_NAME_ELS "els_names" /**< names of element sets */
276 #define VAR_STAT_EL_BLK "eb_status" /**< element block status */
277 #define VAR_STAT_ECONN "econn_status" /**< element block edge status */
278 #define VAR_STAT_FCONN "fconn_status" /**< element block face status */
279 #define VAR_STAT_ED_BLK "ed_status" /**< edge block status */
280 #define VAR_STAT_FA_BLK "fa_status" /**< face block status */
281 #define VAR_ID_EL_BLK "eb_prop1" /**< element block ids props */
282 #define VAR_ID_ED_BLK "ed_prop1" /**< edge block ids props */
283 #define VAR_ID_FA_BLK "fa_prop1" /**< face block ids props */
284 /*! element type names for each element block */
285 #define ATT_NAME_ELB "elem_type"
286 /*! number of elements in element block num */
287 #define DIM_NUM_EL_IN_BLK(num) ex__catstr("num_el_in_blk", num)
288 /*! number of nodes per element in element block num */
289 #define DIM_NUM_NOD_PER_EL(num) ex__catstr("num_nod_per_el", num)
290 /*! number of attributes in element block num */
291 #define DIM_NUM_ATT_IN_BLK(num) ex__catstr("num_att_in_blk", num)
292 /*! number of edges in edge block num */
293 #define DIM_NUM_ED_IN_EBLK(num) ex__catstr("num_ed_in_blk", num)
294 /*! number of nodes per edge in edge block num */
295 #define DIM_NUM_NOD_PER_ED(num) ex__catstr("num_nod_per_ed", num)
296 /*! number of edges per element in element block num */
297 #define DIM_NUM_EDG_PER_EL(num) ex__catstr("num_edg_per_el", num)
298 /*! number of attributes in edge block num */
299 #define DIM_NUM_ATT_IN_EBLK(num) ex__catstr("num_att_in_eblk", num)
300 /*! number of faces in face block num */
301 #define DIM_NUM_FA_IN_FBLK(num) ex__catstr("num_fa_in_blk", num)
302 /*! number of nodes per face in face block num */
303 #define DIM_NUM_NOD_PER_FA(num) ex__catstr("num_nod_per_fa", num)
304 /*! number of faces per element in element block num */
305 #define DIM_NUM_FAC_PER_EL(num) ex__catstr("num_fac_per_el", num)
306 /*! number of attributes in face block num */
307 #define DIM_NUM_ATT_IN_FBLK(num) ex__catstr("num_att_in_fblk", num)
308 /*! element connectivity for element block num */
309 #define VAR_CONN(num) ex__catstr("connect", num)
310 /*! array containing number of entity per */
311 /* entity for n-sided face/element blocks */
312 #define VAR_EBEPEC(num) ex__catstr("ebepecnt", num)
313 /*! list of attributes for element block num */
314 #define VAR_ATTRIB(num) ex__catstr("attrib", num)
315 /*! list of attribute names for element block num */
316 #define VAR_NAME_ATTRIB(num) ex__catstr("attrib_name", num)
317 /*! list of the numth property for all element blocks */
318 #define VAR_EB_PROP(num) ex__catstr("eb_prop", num)
319 /*! edge connectivity for element block num */
320 #define VAR_ECONN(num) ex__catstr("edgconn", num)
321 /*! edge connectivity for edge block num */
322 #define VAR_EBCONN(num) ex__catstr("ebconn", num)
323 /*! list of attributes for edge block num */
324 #define VAR_EATTRIB(num) ex__catstr("eattrb", num)
325 /*! list of attribute names for edge block num */
326 #define VAR_NAME_EATTRIB(num) ex__catstr("eattrib_name", num)
327 #define VAR_NATTRIB "nattrb"
328 #define VAR_NAME_NATTRIB "nattrib_name"
329 #define DIM_NUM_ATT_IN_NBLK "num_att_in_nblk"
330
331 #define VAR_NSATTRIB(num) ex__catstr("nsattrb", num)
332 #define VAR_NAME_NSATTRIB(num) ex__catstr("nsattrib_name", num)
333 #define DIM_NUM_ATT_IN_NS(num) ex__catstr("num_att_in_ns", num)
334
335 #define VAR_SSATTRIB(num) ex__catstr("ssattrb", num)
336 #define VAR_NAME_SSATTRIB(num) ex__catstr("ssattrib_name", num)
337 #define DIM_NUM_ATT_IN_SS(num) ex__catstr("num_att_in_ss", num)
338
339 #define VAR_ESATTRIB(num) ex__catstr("esattrb", num)
340 #define VAR_NAME_ESATTRIB(num) ex__catstr("esattrib_name", num)
341 #define DIM_NUM_ATT_IN_ES(num) ex__catstr("num_att_in_es", num)
342
343 #define VAR_FSATTRIB(num) ex__catstr("fsattrb", num)
344 #define VAR_NAME_FSATTRIB(num) ex__catstr("fsattrib_name", num)
345 #define DIM_NUM_ATT_IN_FS(num) ex__catstr("num_att_in_fs", num)
346
347 #define VAR_ELSATTRIB(num) ex__catstr("elsattrb", num)
348 #define VAR_NAME_ELSATTRIB(num) ex__catstr("elsattrib_name", num)
349 #define DIM_NUM_ATT_IN_ELS(num) ex__catstr("num_att_in_els", num)
350
351 /*! list of the numth property for all edge blocks */
352 #define VAR_ED_PROP(num) ex__catstr("ed_prop", num)
353 /*! face connectivity for element block num */
354 #define VAR_FCONN(num) ex__catstr("facconn", num)
355 /*! face connectivity for face block num */
356 #define VAR_FBCONN(num) ex__catstr("fbconn", num)
357 /*! array containing number of entity per entity for n-sided face/element blocks */
358 #define VAR_FBEPEC(num) ex__catstr("fbepecnt", num)
359 /*! list of attributes for face block num */
360 #define VAR_FATTRIB(num) ex__catstr("fattrb", num)
361 /*! list of attribute names for face block num */
362 #define VAR_NAME_FATTRIB(num) ex__catstr("fattrib_name", num)
363 /*! list of the numth property for all face blocks */
364 #define VAR_FA_PROP(num) ex__catstr("fa_prop", num)
365 /*! name attached to element block, node set, side set, element map,
366 or map properties */
367 #define ATT_PROP_NAME "name"
368 #define VAR_MAP "elem_map" /**< element order map */
369 #define DIM_NUM_SS "num_side_sets" /**< number of side sets */
370 #define VAR_SS_STAT "ss_status" /**< side set status */
371 #define VAR_SS_IDS "ss_prop1" /**< side set id properties */
372 /*! number of sides in side set num*/
373 #define DIM_NUM_SIDE_SS(num) ex__catstr("num_side_ss", num)
374 /*! number of distribution factors in side set num */
375 #define DIM_NUM_DF_SS(num) ex__catstr("num_df_ss", num)
376 /*! the distribution factors for each node in side set num */
377 #define VAR_FACT_SS(num) ex__catstr("dist_fact_ss", num)
378 /*! list of elements in side set num */
379 #define VAR_ELEM_SS(num) ex__catstr("elem_ss", num)
380 /*! list of sides in side set */
381 #define VAR_SIDE_SS(num) ex__catstr("side_ss", num)
382 /*! list of the numth property for all side sets */
383 #define VAR_SS_PROP(num) ex__catstr("ss_prop", num)
384 #define DIM_NUM_ES "num_edge_sets" /**< number of edge sets */
385 #define VAR_ES_STAT "es_status" /**< edge set status */
386 #define VAR_ES_IDS "es_prop1" /**< edge set id properties */
387 /*! number of edges in edge set num*/
388 #define DIM_NUM_EDGE_ES(num) ex__catstr("num_edge_es", num)
389 /*! number of distribution factors in edge set num */
390 #define DIM_NUM_DF_ES(num) ex__catstr("num_df_es", num)
391 /*! the distribution factors for each node in edge set num */
392 #define VAR_FACT_ES(num) ex__catstr("dist_fact_es", num)
393 /*! list of edges in edge set num */
394 #define VAR_EDGE_ES(num) ex__catstr("edge_es", num)
395 /*! list of orientations in the edge set. */
396 #define VAR_ORNT_ES(num) ex__catstr("ornt_es", num)
397 /*! list of the numth property for all edge sets */
398 #define VAR_ES_PROP(num) ex__catstr("es_prop", num)
399 #define DIM_NUM_FS "num_face_sets" /**< number of face sets */
400 #define VAR_FS_STAT "fs_status" /**< face set status */
401 #define VAR_FS_IDS "fs_prop1" /**< face set id properties */
402 /*! number of faces in side set num*/
403 #define DIM_NUM_FACE_FS(num) ex__catstr("num_face_fs", num)
404 /*! number of distribution factors in face set num */
405 #define DIM_NUM_DF_FS(num) ex__catstr("num_df_fs", num)
406 /*! the distribution factors for each node in face set num */
407 #define VAR_FACT_FS(num) ex__catstr("dist_fact_fs", num)
408 /*! list of elements in face set num */
409 #define VAR_FACE_FS(num) ex__catstr("face_fs", num)
410 /*! list of sides in side set */
411 #define VAR_ORNT_FS(num) ex__catstr("ornt_fs", num)
412 /*! list of the numth property for all face sets */
413 #define VAR_FS_PROP(num) ex__catstr("fs_prop", num)
414 #define DIM_NUM_ELS "num_elem_sets" /**< number of elem sets */
415 /*! number of elements in elem set num */
416 #define DIM_NUM_ELE_ELS(num) ex__catstr("num_ele_els", num)
417 /*! number of distribution factors in element set num */
418 #define DIM_NUM_DF_ELS(num) ex__catstr("num_df_els", num)
419 #define VAR_ELS_STAT "els_status" /**< elem set status */
420 #define VAR_ELS_IDS "els_prop1" /**< elem set id properties */
421 /*! list of elements in elem set num */
422 #define VAR_ELEM_ELS(num) ex__catstr("elem_els", num)
423 /*! list of distribution factors in elem set num */
424 #define VAR_FACT_ELS(num) ex__catstr("dist_fact_els", num)
425 /*! list of the numth property for all elem sets */
426 #define VAR_ELS_PROP(num) ex__catstr("els_prop", num)
427 #define DIM_NUM_NS "num_node_sets" /**< number of node sets */
428 /*! number of nodes in node set num */
429 #define DIM_NUM_NOD_NS(num) ex__catstr("num_nod_ns", num)
430 /*! number of distribution factors in node set num */
431 #define DIM_NUM_DF_NS(num) ex__catstr("num_df_ns", num)
432 #define VAR_NS_STAT "ns_status" /**< node set status */
433 #define VAR_NS_IDS "ns_prop1" /**< node set id properties */
434 /*! list of nodes in node set num */
435 #define VAR_NODE_NS(num) ex__catstr("node_ns", num)
436 /*! list of distribution factors in node set num */
437 #define VAR_FACT_NS(num) ex__catstr("dist_fact_ns", num)
438 /*! list of the numth property for all node sets */
439 #define VAR_NS_PROP(num) ex__catstr("ns_prop", num)
440 #define DIM_NUM_QA "num_qa_rec" /**< number of QA records */
441 #define VAR_QA_TITLE "qa_records" /**< QA records */
442 #define DIM_NUM_INFO "num_info" /**< number of information records */
443 #define VAR_INFO "info_records" /**< information records */
444 #define VAR_WHOLE_TIME "time_whole" /**< simulation times for whole time steps */
445 #define VAR_ELEM_TAB "elem_var_tab" /**< element variable truth table */
446 #define VAR_EBLK_TAB "edge_var_tab" /**< edge variable truth table */
447 #define VAR_FBLK_TAB "face_var_tab" /**< face variable truth table */
448 #define VAR_ELSET_TAB "elset_var_tab" /**< elemset variable truth table */
449 #define VAR_SSET_TAB "sset_var_tab" /**< sideset variable truth table */
450 #define VAR_FSET_TAB "fset_var_tab" /**< faceset variable truth table */
451 #define VAR_ESET_TAB "eset_var_tab" /**< edgeset variable truth table */
452 #define VAR_NSET_TAB "nset_var_tab" /**< nodeset variable truth table */
453 #define DIM_NUM_GLO_VAR "num_glo_var" /**< number of global variables */
454 #define VAR_NAME_GLO_VAR "name_glo_var" /**< names of global variables */
455 #define VAR_GLO_VAR "vals_glo_var" /**< values of global variables*/
456 #define DIM_NUM_NOD_VAR "num_nod_var" /**< number of nodal variables */
457 #define VAR_NAME_NOD_VAR "name_nod_var" /**< names of nodal variables */
458 #define VAR_NOD_VAR "vals_nod_var" /**< values of nodal variables \deprecated */
459 /*! values of nodal variables */
460 #define VAR_NOD_VAR_NEW(num) ex__catstr("vals_nod_var", num)
461 #define DIM_NUM_ELE_VAR "num_elem_var" /**< number of element variables */
462 #define VAR_NAME_ELE_VAR "name_elem_var" /**< names of element variables*/
463 /*! values of element variable num1 in element block num2 */
464 #define VAR_ELEM_VAR(num1, num2) ex__catstr2("vals_elem_var", num1, "eb", num2)
465 #define DIM_NUM_EDG_VAR "num_edge_var" /**< number of edge variables */
466 #define VAR_NAME_EDG_VAR "name_edge_var" /**< names of edge variables */
467 /*! values of edge variable num1 in edge block num2 */
468 #define VAR_EDGE_VAR(num1, num2) ex__catstr2("vals_edge_var", num1, "eb", num2)
469 #define DIM_NUM_FAC_VAR "num_face_var" /**< number of face variables */
470 #define VAR_NAME_FAC_VAR "name_face_var" /**< names of face variables */
471 /*! values of face variable num1 in face block num2 */
472 #define VAR_FACE_VAR(num1, num2) ex__catstr2("vals_face_var", num1, "fb", num2)
473
474 #define DIM_NUM_NSET_VAR "num_nset_var" /**< number of nodeset variables */
475 #define VAR_NAME_NSET_VAR "name_nset_var" /**< names of nodeset variables*/
476 /*! values of nodeset variable num1 in nodeset num2 */
477 #define VAR_NS_VAR(num1, num2) ex__catstr2("vals_nset_var", num1, "ns", num2)
478 #define DIM_NUM_ESET_VAR "num_eset_var" /**< number of edgeset variables */
479 /*! values of edgeset variable num1 in edgeset num2 */
480 #define VAR_NAME_ESET_VAR "name_eset_var" /**< names of edgeset variables*/
481 #define VAR_ES_VAR(num1, num2) ex__catstr2("vals_eset_var", num1, "es", num2)
482 #define DIM_NUM_FSET_VAR "num_fset_var" /**< number of faceset variables */
483 #define VAR_NAME_FSET_VAR "name_fset_var" /**< names of faceset variables*/
484 /*! values of faceset variable num1 in faceset num2 */
485 #define VAR_FS_VAR(num1, num2) ex__catstr2("vals_fset_var", num1, "fs", num2)
486 #define DIM_NUM_SSET_VAR "num_sset_var" /**< number of sideset variables */
487 #define VAR_NAME_SSET_VAR "name_sset_var" /**< names of sideset variables*/
488 /*! values of sideset variable num1 in sideset num2 */
489 #define VAR_SS_VAR(num1, num2) ex__catstr2("vals_sset_var", num1, "ss", num2)
490 #define DIM_NUM_ELSET_VAR "num_elset_var" /**< number of element set variables*/
491 #define VAR_NAME_ELSET_VAR "name_elset_var" /**< names of elemset variables*/
492 /*! values of elemset variable num1 in elemset num2 */
493 #define VAR_ELS_VAR(num1, num2) ex__catstr2("vals_elset_var", num1, "es", num2)
494
495 /*! general dimension of length MAX_STR_LENGTH used for some string lengths */
496 #define DIM_STR "len_string"
497 /*! general dimension of length MAX_NAME_LENGTH used for name lengths */
498 #define DIM_STR_NAME "len_name"
499 /*! general dimension of length MAX_LINE_LENGTH used for long strings */
500 #define DIM_LIN "len_line"
501 #define DIM_N4 "four"
502 /*! unlimited (expandable) dimension for time steps*/
503 #define DIM_TIME "time_step"
504 #define VAR_ELEM_NUM_MAP "elem_num_map" /**< element numbering map */
505 #define VAR_FACE_NUM_MAP "face_num_map" /**< face numbering map */
506 #define VAR_EDGE_NUM_MAP "edge_num_map" /**< edge numbering map */
507 #define VAR_NODE_NUM_MAP "node_num_map" /**< node numbering map */
508 #define DIM_NUM_EM "num_elem_maps" /**< number of element maps */
509 /*! the numth element map */
510 #define VAR_ELEM_MAP(num) ex__catstr("elem_map", num)
511 /*! list of the numth property for all element maps */
512 #define VAR_EM_PROP(num) ex__catstr("em_prop", num)
513 #define DIM_NUM_EDM "num_edge_maps" /**< number of edge maps */
514 /*! the numth edge map */
515 #define VAR_EDGE_MAP(num) ex__catstr("edge_map", num)
516 /* list of the numth property for all edge maps */
517 #define VAR_EDM_PROP(num) ex__catstr("edm_prop", num)
518 #define DIM_NUM_FAM "num_face_maps" /**< number of face maps */
519 /*! the numth face map */
520 #define VAR_FACE_MAP(num) ex__catstr("face_map", num)
521 /*! list of the numth property for all face maps */
522 #define VAR_FAM_PROP(num) ex__catstr("fam_prop", num)
523 #define DIM_NUM_NM "num_node_maps" /**< number of node maps */
524 /*! the numth node map */
525 #define VAR_NODE_MAP(num) ex__catstr("node_map", num)
526 /*! list of the numth property for all node maps */
527 #define VAR_NM_PROP(num) ex__catstr("nm_prop", num)
528
529 #define DIM_NUM_CFRAMES "num_cframes"
530 #define DIM_NUM_CFRAME9 "num_cframes_9"
531 #define VAR_FRAME_COORDS "frame_coordinates"
532 #define VAR_FRAME_IDS "frame_ids"
533 #define VAR_FRAME_TAGS "frame_tags"
534
535 #define VAR_ELBLK_IDS_GLOBAL "el_blk_ids_global"
536 #define VAR_ELBLK_CNT_GLOBAL "el_blk_cnt_global"
537 #define VAR_NS_IDS_GLOBAL "ns_ids_global"
538 #define VAR_NS_NODE_CNT_GLOBAL "ns_node_cnt_global"
539 #define VAR_NS_DF_CNT_GLOBAL "ns_df_cnt_global"
540 #define VAR_SS_IDS_GLOBAL "ss_ids_global"
541 #define VAR_SS_SIDE_CNT_GLOBAL "ss_side_cnt_global"
542 #define VAR_SS_DF_CNT_GLOBAL "ss_df_cnt_global"
543 #define VAR_FILE_TYPE "nem_ftype"
544 #define VAR_COMM_MAP "comm_map"
545 #define VAR_NODE_MAP_INT "node_mapi"
546 #define VAR_NODE_MAP_INT_IDX "node_mapi_idx"
547 #define VAR_NODE_MAP_BOR "node_mapb"
548 #define VAR_NODE_MAP_BOR_IDX "node_mapb_idx"
549 #define VAR_NODE_MAP_EXT "node_mape"
550 #define VAR_NODE_MAP_EXT_IDX "node_mape_idx"
551 #define VAR_ELEM_MAP_INT "elem_mapi"
552 #define VAR_ELEM_MAP_INT_IDX "elem_mapi_idx"
553 #define VAR_ELEM_MAP_BOR "elem_mapb"
554 #define VAR_ELEM_MAP_BOR_IDX "elem_mapb_idx"
555 #define VAR_INT_N_STAT "int_n_stat"
556 #define VAR_BOR_N_STAT "bor_n_stat"
557 #define VAR_EXT_N_STAT "ext_n_stat"
558 #define VAR_INT_E_STAT "int_e_stat"
559 #define VAR_BOR_E_STAT "bor_e_stat"
560 #define VAR_N_COMM_IDS "n_comm_ids"
561 #define VAR_N_COMM_STAT "n_comm_stat"
562 #define VAR_N_COMM_INFO_IDX "n_comm_info_idx"
563 #define VAR_E_COMM_IDS "e_comm_ids"
564 #define VAR_E_COMM_STAT "e_comm_stat"
565 #define VAR_E_COMM_INFO_IDX "e_comm_info_idx"
566 #define VAR_N_COMM_NIDS "n_comm_nids"
567 #define VAR_N_COMM_PROC "n_comm_proc"
568 #define VAR_N_COMM_DATA_IDX "n_comm_data_idx"
569 #define VAR_E_COMM_EIDS "e_comm_eids"
570 #define VAR_E_COMM_SIDS "e_comm_sids"
571 #define VAR_E_COMM_PROC "e_comm_proc"
572 #define VAR_E_COMM_DATA_IDX "e_comm_data_idx"
573
574 #define DIM_NUM_INT_NODES "num_int_node"
575 #define DIM_NUM_BOR_NODES "num_bor_node"
576 #define DIM_NUM_EXT_NODES "num_ext_node"
577 #define DIM_NUM_INT_ELEMS "num_int_elem"
578 #define DIM_NUM_BOR_ELEMS "num_bor_elem"
579 #define DIM_NUM_PROCS "num_processors"
580 #define DIM_NUM_PROCS_F "num_procs_file"
581 #define DIM_NUM_NODES_GLOBAL "num_nodes_global"
582 #define DIM_NUM_ELEMS_GLOBAL "num_elems_global"
583 #define DIM_NUM_NS_GLOBAL "num_ns_global"
584 #define DIM_NUM_SS_GLOBAL "num_ss_global"
585 #define DIM_NUM_ELBLK_GLOBAL "num_el_blk_global"
586 #define DIM_NUM_N_CMAPS "num_n_cmaps"
587 #define DIM_NUM_E_CMAPS "num_e_cmaps"
588 #define DIM_NCNT_CMAP "ncnt_cmap"
589 #define DIM_ECNT_CMAP "ecnt_cmap"
590
591 enum ex__element_type {
592 EX_EL_UNK = -1, /**< unknown entity */
593 EX_EL_NULL_ELEMENT = 0,
594 EX_EL_TRIANGLE = 1, /**< Triangle entity */
595 EX_EL_QUAD = 2, /**< Quad entity */
596 EX_EL_HEX = 3, /**< Hex entity */
597 EX_EL_WEDGE = 4, /**< Wedge entity */
598 EX_EL_TETRA = 5, /**< Tetra entity */
599 EX_EL_TRUSS = 6, /**< Truss entity */
600 EX_EL_BEAM = 7, /**< Beam entity */
601 EX_EL_SHELL = 8, /**< Shell entity */
602 EX_EL_SPHERE = 9, /**< Sphere entity */
603 EX_EL_CIRCLE = 10, /**< Circle entity */
604 EX_EL_TRISHELL = 11, /**< Triangular Shell entity */
605 EX_EL_PYRAMID = 12 /**< Pyramid entity */
606 };
607 typedef enum ex__element_type ex__element_type;
608
609 /* Internal structure declarations */
610
611 struct ex__file_item
612 {
613 int file_id;
614 nc_type netcdf_type_code;
615 int int64_status;
616 int maximum_name_length;
617 int time_varid; /* Store to avoid lookup each timestep */
618 unsigned int
619 compression_level : 4; /**< 0 (disabled) to 9 (maximum) compression level; NetCDF-4 only */
620 unsigned int user_compute_wordsize : 1; /**< 0 for 4 byte or 1 for 8 byte reals */
621 unsigned int shuffle : 1; /**< 1 true, 0 false */
622 unsigned int
623 file_type : 2; /**< 0 - classic, 1 -- 64 bit classic, 2 --NetCDF4, 3 --NetCDF4 classic */
624 unsigned int is_parallel : 1; /**< 1 true, 0 false */
625 unsigned int is_hdf5 : 1; /**< 1 true, 0 false */
626 unsigned int is_pnetcdf : 1; /**< 1 true, 0 false */
627 unsigned int has_nodes : 1; /**< for input only at this time */
628 unsigned int has_edges : 1; /**< for input only at this time */
629 unsigned int has_faces : 1; /**< for input only at this time */
630 unsigned int has_elems : 1; /**< for input only at this time */
631 struct ex__file_item *next;
632 };
633
634 struct ex__elem_blk_parm
635 {
636 char elem_type[33];
637 int64_t elem_blk_id;
638 int64_t num_elem_in_blk;
639 int num_nodes_per_elem;
640 int num_sides;
641 int num_nodes_per_side[6];
642 int num_attr;
643 int64_t elem_ctr;
644 ex__element_type elem_type_val;
645 };
646
647 /* Used in exo_jack.c for fortran interface */
648 enum ex__coordinate_frame_type {
649 EX_CF_RECTANGULAR = 1,
650 EX_CF_CYLINDRICAL = 2,
651 EX_CF_SPHERICAL = 3
652 };
653 typedef enum ex__coordinate_frame_type ex__coordinate_frame_type;
654
655 struct ex__list_item
656 { /* for use with ex_get_file_item */
657 int exo_id;
658 int value;
659 struct ex__list_item *next;
660 };
661
662 struct ex__obj_stats
663 {
664 int64_t * id_vals;
665 int * stat_vals;
666 size_t num;
667 int exoid;
668 char valid_ids;
669 char valid_stat;
670 char sequential;
671 struct ex__obj_stats *next;
672 };
673
674 void ex__iqsort(int v[], int iv[], int N);
675 void ex__iqsort64(int64_t v[], int64_t iv[], int64_t N);
676
677 char *ex__catstr(const char * /*string*/, int /*num*/);
678 char *ex__catstr2(const char * /*string1*/, int /*num1*/, const char * /*string2*/, int /*num2*/);
679 char *ex__dim_num_entries_in_object(ex_entity_type /*obj_type*/, int /*idx*/);
680 char *ex__dim_num_objects(ex_entity_type obj_type);
681 char *ex__name_var_of_object(ex_entity_type /*obj_type*/, int /*i*/, int /*j*/);
682 char *ex__name_of_map(ex_entity_type /*map_type*/, int /*map_index*/);
683
684 int ex__conv_init(int exoid, int *comp_wordsize, int *io_wordsize, int file_wordsize,
685 int int64_status, int is_parallel, int is_hdf5, int is_pnetcdf);
686 void ex__conv_exit(int exoid);
687
688 nc_type nc_flt_code(int exoid);
689 int ex__comp_ws(int exoid);
690 int ex__get_cpu_ws(void);
691 int ex__is_parallel(int exoid);
692
693 struct ex__list_item **ex__get_counter_list(ex_entity_type obj_type);
694 int ex__get_file_item(int /*exoid*/, struct ex__list_item ** /*list_ptr*/);
695 int ex__inc_file_item(int /*exoid*/, struct ex__list_item ** /*list_ptr*/);
696 void ex__rm_file_item(int /*exoid*/, struct ex__list_item ** /*list_ptr*/);
697
698 extern struct ex__obj_stats *exoII_eb;
699 extern struct ex__obj_stats *exoII_ed;
700 extern struct ex__obj_stats *exoII_fa;
701 extern struct ex__obj_stats *exoII_ns;
702 extern struct ex__obj_stats *exoII_es;
703 extern struct ex__obj_stats *exoII_fs;
704 extern struct ex__obj_stats *exoII_ss;
705 extern struct ex__obj_stats *exoII_els;
706 extern struct ex__obj_stats *exoII_em;
707 extern struct ex__obj_stats *exoII_edm;
708 extern struct ex__obj_stats *exoII_fam;
709 extern struct ex__obj_stats *exoII_nm;
710
711 struct ex__file_item *ex__find_file_item(int exoid);
712 struct ex__file_item *ex__add_file_item(int exoid);
713 struct ex__obj_stats *ex__get_stat_ptr(int exoid, struct ex__obj_stats **obj_ptr);
714
715 void ex__rm_stat_ptr(int exoid, struct ex__obj_stats **obj_ptr);
716
717 void ex__compress_variable(int exoid, int varid, int type);
718 int ex__id_lkup(int exoid, ex_entity_type id_type, ex_entity_id num);
719 void ex__check_valid_file_id(int exoid,
720 const char *func); /** Abort if exoid does not refer to valid file */
721 int ex__check_file_type(const char *path, int *type);
722 int ex__get_dimension(int exoid, const char *DIMENSION, const char *label, size_t *count,
723 int *dimid, const char *routine);
724
725 int ex__get_nodal_var(int exoid, int time_step, int nodal_var_index, int64_t num_nodes,
726 void *nodal_var_vals);
727
728 int ex__put_nodal_var(int exoid, int time_step, int nodal_var_index, int64_t num_nodes,
729 const void *nodal_var_vals);
730
731 int ex__get_nodal_var_time(int exoid, int nodal_var_index, int64_t node_number, int beg_time_step,
732 int end_time_step, void *nodal_var_vals);
733
734 int ex__get_partial_nodal_var(int exoid, int time_step, int nodal_var_index, int64_t start_node,
735 int64_t num_nodes, void *var_vals);
736
737 int ex__put_partial_nodal_var(int exoid, int time_step, int nodal_var_index, int64_t start_node,
738 int64_t num_nodes, const void *nodal_var_vals);
739 int ex__get_glob_vars(int exoid, int time_step, int num_glob_vars, void *glob_var_vals);
740
741 int ex__get_glob_var_time(int exoid, int glob_var_index, int beg_time_step, int end_time_step,
742 void *glob_var_vals);
743
744 int ex__get_name(int exoid, int varid, size_t index, char *name, int name_size,
745 ex_entity_type obj_type, const char *routine);
746 int ex__get_names(int exoid, int varid, size_t num_entity, char **names, ex_entity_type obj_type,
747 const char *routine);
748 int ex__put_name(int exoid, int varid, size_t index, const char *name, ex_entity_type obj_type,
749 const char *subtype, const char *routine);
750 int ex__put_names(int exoid, int varid, size_t num_entity, char **names, ex_entity_type obj_type,
751 const char *subtype, const char *routine);
752 void ex__trim(char *name);
753 void ex__update_max_name_length(int exoid, int length);
754 int ex__leavedef(int exoid, /* NemesisI file ID */
755 const char *call_rout /* Name of calling function */
756 );
757
758 int ex__check_version(int run_version);
759 int ex__handle_mode(unsigned int my_mode, int is_parallel, int run_version);
760 int ex__populate_header(int exoid, const char *path, int my_mode, int is_parallel, int *comp_ws,
761 int *io_ws);
762
763 int ex__get_block_param(int exoid, ex_entity_id id, int ndim,
764 struct ex__elem_blk_parm *elem_blk_parm);
765
766 int ex__get_file_type(int exoid, char *ftype);
767
768 int ex__put_nemesis_version(int exoid);
769
770 int ne__check_file_version(int neid);
771
772 int ne__id_lkup(int exoid, /* NetCDF/Exodus file ID */
773 const char * ne_var_name, /* Nemesis variable name */
774 int64_t * idx, /* index variable for variable, length 2 */
775 ex_entity_id ne_var_id /* NetCDF variable ID */
776 );
777
778 /**
779 * For output databases, the maximum length of any entity, variable,
780 * property, attribute, or coordinate name to be written (not
781 * including the NULL terminator). If a name is longer than this
782 * value, a warning message will be output to stderr and the name
783 * will be truncated. Must be set (via call to
784 * ex_set_max_name_length()(exoid, int len) prior to calling ex_create().
785 *
786 * For input databases, the size of the name arrays that the client
787 * code will be passing to API routines that retrieve names (not
788 * including the NULL terminator). This defaults to 32 for
789 * compatibility with older clients. The value used at the time of
790 * creation of the database can be queried by ex_inquire with the
791 * #EX_INQ_DB_MAX_ALLOWED_NAME_LENGTH argument. The current value for this
792 * variable can be queried with #EX_INQ_MAX_READ_NAME_LENGTH argument.
793 *
794 * Note that this is a global setting for all databases. If you are
795 * accessing multiple databases, they will all use the same value.
796 */
797 extern int ex__default_max_name_length;
798 /*! @} */
799
800 #ifdef __cplusplus
801 }
802 #endif
803
804 #endif
ex__put_partial_nodal_var
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)
Definition: ex_put_partial_nodal_var_int.c:74
ex__elem_blk_parm::num_nodes_per_elem
int num_nodes_per_elem
Definition: exodusII_int.h:638
ex__file_item::has_nodes
unsigned int has_nodes
Definition: exodusII_int.h:626
ex__name_var_of_object
char * ex__name_var_of_object(ex_entity_type, int, int)
Definition: ex_utils.c:634
ex__obj_stats::next
struct ex__obj_stats * next
Definition: exodusII_int.h:670
exoII_nm
struct ex__obj_stats * exoII_nm
Definition: ex_utils.c:59
ex__element_type
ex__element_type
Definition: exodusII_int.h:590
ex__list_item::next
struct ex__list_item * next
Definition: exodusII_int.h:658
ex__get_block_param
int ex__get_block_param(int exoid, ex_entity_id id, int ndim, struct ex__elem_blk_parm *elem_blk_parm)
Definition: ex_int_get_block_param.c:50
ex__check_valid_file_id
void ex__check_valid_file_id(int exoid, const char *func)
Definition: ex_conv.c:80
ex__iqsort
void ex__iqsort(int v[], int iv[], int N)
Definition: ex_utils.c:1509
ex__file_item::int64_status
int int64_status
Definition: exodusII_int.h:614
ex__elem_blk_parm::num_attr
int num_attr
Definition: exodusII_int.h:641
exoII_eb
struct ex__obj_stats * exoII_eb
Definition: ex_utils.c:48
ex__elem_blk_parm::elem_type_val
ex__element_type elem_type_val
Definition: exodusII_int.h:643
ex__get_nodal_var_time
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)
Definition: ex_get_nodal_var_time_int.c:109
ex__list_item
Definition: exodusII_int.h:654
exoII_fa
struct ex__obj_stats * exoII_fa
Definition: ex_utils.c:50
ex__file_item::netcdf_type_code
nc_type netcdf_type_code
Definition: exodusII_int.h:613
ex__get_file_type
int ex__get_file_type(int exoid, char *ftype)
Definition: ex_ne_util.c:139
ex__put_nodal_var
int ex__put_nodal_var(int exoid, int time_step, int nodal_var_index, int64_t num_nodes, const void *nodal_var_vals)
Definition: ex_put_nodal_var_int.c:105
EX_CF_SPHERICAL
Definition: exodusII_int.h:650
ex__file_item::time_varid
int time_varid
Definition: exodusII_int.h:616
EX_CF_RECTANGULAR
Definition: exodusII_int.h:648
ex__rm_file_item
void ex__rm_file_item(int, struct ex__list_item **)
Definition: ex_utils.c:1202
ex__obj_stats::num
size_t num
Definition: exodusII_int.h:665
ex__elem_blk_parm::elem_type
char elem_type[33]
Definition: exodusII_int.h:635
ex__obj_stats::valid_ids
char valid_ids
Definition: exodusII_int.h:667
ex__compress_variable
void ex__compress_variable(int exoid, int varid, int type)
Definition: ex_utils.c:1640
EX_CF_CYLINDRICAL
Definition: exodusII_int.h:649
EX_EL_CIRCLE
Definition: exodusII_int.h:602
ex__check_file_type
int ex__check_file_type(const char *path, int *type)
Definition: ex_utils.c:158
ex__get_names
int ex__get_names(int exoid, int varid, size_t num_entity, char **names, ex_entity_type obj_type, const char *routine)
Definition: ex_utils.c:393
ex__file_item::user_compute_wordsize
unsigned int user_compute_wordsize
Definition: exodusII_int.h:619
ex__list_item::value
int value
Definition: exodusII_int.h:657
ex__get_counter_list
struct ex__list_item ** ex__get_counter_list(ex_entity_type obj_type)
Definition: ex_utils.c:1060
ex__file_item::shuffle
unsigned int shuffle
Definition: exodusII_int.h:620
ex__populate_header
int ex__populate_header(int exoid, const char *path, int my_mode, int is_parallel, int *comp_ws, int *io_ws)
Definition: ex_utils.c:2016
ex__obj_stats::sequential
char sequential
Definition: exodusII_int.h:669
exoII_ed
struct ex__obj_stats * exoII_ed
Definition: ex_utils.c:49
ex__file_item::has_faces
unsigned int has_faces
Definition: exodusII_int.h:628
ex__reset_error_status
void ex__reset_error_status(void)
Definition: ex_err.c:119
ex__get_stat_ptr
struct ex__obj_stats * ex__get_stat_ptr(int exoid, struct ex__obj_stats **obj_ptr)
Definition: ex_utils.c:974
ex__obj_stats::exoid
int exoid
Definition: exodusII_int.h:666
ex__obj_stats
Definition: exodusII_int.h:661
ex__file_item::is_parallel
unsigned int is_parallel
Definition: exodusII_int.h:623
ex__find_file_item
struct ex__file_item * ex__find_file_item(int exoid)
Definition: ex_conv.c:66
ex__leavedef
int ex__leavedef(int exoid, const char *call_rout)
Definition: ex_utils.c:1674
ex__file_item::file_type
unsigned int file_type
Definition: exodusII_int.h:622
ex__dim_num_objects
char * ex__dim_num_objects(ex_entity_type obj_type)
Definition: ex_utils.c:584
ex__is_parallel
int ex__is_parallel(int exoid)
Definition: ex_conv.c:487
EX_EL_HEX
Definition: exodusII_int.h:595
ex__trim
void ex__trim(char *name)
Definition: ex_utils.c:453
EX_EL_TRISHELL
Definition: exodusII_int.h:603
ex__file_item::compression_level
unsigned int compression_level
Definition: exodusII_int.h:618
ex__file_item::has_elems
unsigned int has_elems
Definition: exodusII_int.h:629
ex__file_item::next
struct ex__file_item * next
Definition: exodusII_int.h:630
ex__inc_file_item
int ex__inc_file_item(int, struct ex__list_item **)
Definition: ex_utils.c:1108
ne__id_lkup
int ne__id_lkup(int exoid, const char *ne_var_name, int64_t *idx, ex_entity_id ne_var_id)
Definition: ex_ne_util.c:67
exoII_em
struct ex__obj_stats * exoII_em
Definition: ex_utils.c:56
EX_EL_SPHERE
Definition: exodusII_int.h:601
ex__obj_stats::id_vals
int64_t * id_vals
Definition: exodusII_int.h:663
ex__add_file_item
struct ex__file_item * ex__add_file_item(int exoid)
exoII_ns
struct ex__obj_stats * exoII_ns
Definition: ex_utils.c:51
ex__file_item::has_edges
unsigned int has_edges
Definition: exodusII_int.h:627
ex__conv_exit
void ex__conv_exit(int exoid)
Definition: ex_conv.c:273
ex__iqsort64
void ex__iqsort64(int64_t v[], int64_t iv[], int64_t N)
Definition: ex_utils.c:1525
ex__get_nodal_var
int ex__get_nodal_var(int exoid, int time_step, int nodal_var_index, int64_t num_nodes, void *nodal_var_vals)
Definition: ex_get_nodal_var_int.c:103
MAX_ERR_LENGTH
#define MAX_ERR_LENGTH
Definition: exodusII.h:308
ex__id_lkup
int ex__id_lkup(int exoid, ex_entity_type id_type, ex_entity_id num)
Definition: ex_utils.c:685
ex__get_dimension
int ex__get_dimension(int exoid, const char *DIMENSION, const char *label, size_t *count, int *dimid, const char *routine)
Definition: ex_utils.c:1592
ex__name_of_map
char * ex__name_of_map(ex_entity_type, int)
Definition: ex_utils.c:653
ex__put_nemesis_version
int ex__put_nemesis_version(int exoid)
Definition: ex_ne_util.c:182
exoII_es
struct ex__obj_stats * exoII_es
Definition: ex_utils.c:52
ex__get_file_item
int ex__get_file_item(int, struct ex__list_item **)
Definition: ex_utils.c:1156
ex__get_cpu_ws
int ex__get_cpu_ws(void)
Definition: ex_utils.c:1274
EXODUS_EXPORT
#define EXODUS_EXPORT
Definition: exodusII.h:431
exoII_ss
struct ex__obj_stats * exoII_ss
Definition: ex_utils.c:54
ex__file_item
Definition: exodusII_int.h:610
exoII_edm
struct ex__obj_stats * exoII_edm
Definition: ex_utils.c:57
ex__coordinate_frame_type
ex__coordinate_frame_type
Definition: exodusII_int.h:647
EX_EL_UNK
Definition: exodusII_int.h:591
ex__default_max_name_length
int ex__default_max_name_length
ex__get_partial_nodal_var
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)
Definition: ex_get_partial_nodal_var_int.c:67
ex__file_item::is_pnetcdf
unsigned int is_pnetcdf
Definition: exodusII_int.h:625
ex__update_max_name_length
void ex__update_max_name_length(int exoid, int length)
Definition: ex_utils.c:240
nc_flt_code
nc_type nc_flt_code(int exoid)
Definition: ex_conv.c:310
ex_entity_id
int64_t ex_entity_id
Definition: exodusII.h:312
exoII_fam
struct ex__obj_stats * exoII_fam
Definition: ex_utils.c:58
EX_EL_TETRA
Definition: exodusII_int.h:597
last_err_num
static int last_err_num
Definition: ex_err.c:108
ex__elem_blk_parm::num_elem_in_blk
int64_t num_elem_in_blk
Definition: exodusII_int.h:637
ex__catstr
char * ex__catstr(const char *, int)
Definition: ex_utils.c:483
ex__conv_init
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)
Definition: ex_conv.c:109
ex__put_name
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)
Definition: ex_utils.c:340
ex__get_name
int ex__get_name(int exoid, int varid, size_t index, char *name, int name_size, ex_entity_type obj_type, const char *routine)
Definition: ex_utils.c:419
ex__handle_mode
int ex__handle_mode(unsigned int my_mode, int is_parallel, int run_version)
Definition: ex_utils.c:1712
ex__check_version
int ex__check_version(int run_version)
Definition: ex_utils.c:1690
EX_EL_QUAD
Definition: exodusII_int.h:594
ex__rm_stat_ptr
void ex__rm_stat_ptr(int exoid, struct ex__obj_stats **obj_ptr)
Definition: ex_utils.c:1013
EX_EL_TRUSS
Definition: exodusII_int.h:598
ex__obj_stats::valid_stat
char valid_stat
Definition: exodusII_int.h:668
EX_EL_PYRAMID
Definition: exodusII_int.h:604
last_pname
static char last_pname[MAX_ERR_LENGTH+1]
Definition: ex_err.c:106
EX_EL_SHELL
Definition: exodusII_int.h:600
ex__catstr2
char * ex__catstr2(const char *, int, const char *, int)
Definition: ex_utils.c:499
EX_EL_TRIANGLE
Definition: exodusII_int.h:593
ex__elem_blk_parm::num_sides
int num_sides
Definition: exodusII_int.h:639
exoII_fs
struct ex__obj_stats * exoII_fs
Definition: ex_utils.c:53
ex__dim_num_entries_in_object
char * ex__dim_num_entries_in_object(ex_entity_type, int)
Definition: ex_utils.c:614
ex__list_item::exo_id
int exo_id
Definition: exodusII_int.h:656
EX_EL_NULL_ELEMENT
Definition: exodusII_int.h:592
ex__elem_blk_parm::num_nodes_per_side
int num_nodes_per_side[6]
Definition: exodusII_int.h:640
ex__elem_blk_parm
Definition: exodusII_int.h:633
ex__file_item::maximum_name_length
int maximum_name_length
Definition: exodusII_int.h:615
ex__get_glob_vars
int ex__get_glob_vars(int exoid, int time_step, int num_glob_vars, void *glob_var_vals)
Definition: ex_get_glob_vars_int.c:59
ex__obj_stats::stat_vals
int * stat_vals
Definition: exodusII_int.h:664
exoII_els
struct ex__obj_stats * exoII_els
Definition: ex_utils.c:55
last_errmsg
static char last_errmsg[MAX_ERR_LENGTH+1]
Definition: ex_err.c:107
ex__get_glob_var_time
int ex__get_glob_var_time(int exoid, int glob_var_index, int beg_time_step, int end_time_step, void *glob_var_vals)
Definition: ex_get_glob_var_time_int.c:101
EX_EL_WEDGE
Definition: exodusII_int.h:596
ex__elem_blk_parm::elem_blk_id
int64_t elem_blk_id
Definition: exodusII_int.h:636
ex__file_item::file_id
int file_id
Definition: exodusII_int.h:612
ex__comp_ws
int ex__comp_ws(int exoid)
Definition: ex_conv.c:465
ne__check_file_version
int ne__check_file_version(int neid)
Definition: ex_ne_util.c:224
ex__file_item::is_hdf5
unsigned int is_hdf5
Definition: exodusII_int.h:624
ex__put_names
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)
Definition: ex_utils.c:270
ex__elem_blk_parm::elem_ctr
int64_t elem_ctr
Definition: exodusII_int.h:642
ex_entity_type
ex_entity_type
Definition: exodusII.h:253
EX_EL_BEAM
Definition: exodusII_int.h:599