Exodus 7.21

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 /* A format string for outputting size_t ... */
95 #if defined(__STDC_VERSION__)
96 #if (__STDC_VERSION__ >= 199901L)
97 #define ST_ZU "zu"
98 #else
99 #define ST_ZU "lu"
100 #endif
101 #else
102 #define ST_ZU "lu"
103 #endif
104
105 #define MAX_VAR_NAME_LENGTH 32 /**< Internal use only */
106
107 /* Default "filesize" for newly created files.
108 * Set to 0 for normal filesize setting.
109 * Set to 1 for EXODUS_LARGE_MODEL setting to be the default
110 */
111 #define EXODUS_DEFAULT_SIZE 1
112
113 /* Used to map between root (file id) and group ids when using groups */
114 #define EX_FILE_ID_MASK (0xffff0000) /* Must match FILE_ID_MASK in netcdf nc4internal.h */
115 #define EX_GRP_ID_MASK (0x0000ffff) /* Must match GRP_ID_MASK in netcdf nc4internal.h */
116
117 void ex_reset_error_status();
118
119 #if defined(EXODUS_THREADSAFE)
120 #if !defined(exerrval)
121 /* In both exodusII.h and exodusII_int.h */
122 typedef struct EX_errval
123 {
124 int errval;
125 char last_pname[MAX_ERR_LENGTH];
126 char last_errmsg[MAX_ERR_LENGTH];
127 int last_err_num;
128 } EX_errval_t;
129
130 EXODUS_EXPORT EX_errval_t *ex_errval;
131 #define exerrval ex_errval->errval
132 #endif
133
134 extern pthread_once_t EX_first_init_g;
135
136 typedef struct EX_mutex_struct
137 {
138 pthread_mutex_t atomic_lock; /* lock for atomicity of new mechanism */
139 pthread_mutexattr_t attribute;
140 } EX_mutex_t;
141
142 extern EX_mutex_t EX_g;
143 extern int ex_mutex_lock(EX_mutex_t *mutex);
144 extern int ex_mutex_unlock(EX_mutex_t *mutex);
145 extern void ex_pthread_first_thread_init(void);
146 extern EX_errval_t *exerrval_get();
147
148 #define EX_FUNC_ENTER() \
149 do { \
150 /* Initialize the thread-safe code */ \
151 pthread_once(&EX_first_init_g, ex_pthread_first_thread_init); \
152 \
153 /* Grab the mutex for the library */ \
154 ex_mutex_lock(&EX_g); \
155 ex_errval = exerrval_get(); \
156 exerrval = 0; \
157 ex_errval->last_err_num = 0; \
158 } while (0)
159
160 #define EX_FUNC_ENTER_INT() \
161 do { \
162 /* Initialize the thread-safe code */ \
163 pthread_once(&EX_first_init_g, ex_pthread_first_thread_init); \
164 \
165 /* Grab the mutex for the library */ \
166 ex_mutex_lock(&EX_g); \
167 ex_errval = exerrval_get(); \
168 } while (0)
169
170 #define EX_FUNC_LEAVE(error) \
171 do { \
172 ex_mutex_unlock(&EX_g); \
173 return error; \
174 } while (0)
175
176 #define EX_FUNC_VOID() \
177 do { \
178 ex_mutex_unlock(&EX_g); \
179 return; \
180 } while (0)
181
182 #else
183
184 #if 0
185 EXODUS_EXPORT int indent;
186 #define EX_FUNC_ENTER() \
187 do { \
188 ex_reset_error_status(); \
189 fprintf(stderr, "%d Enter: %s\n", indent, __func__); \
190 indent++; \
191 } while (0)
192 #define EX_FUNC_ENTER_INT() \
193 do { \
194 fprintf(stderr, "%d Enter: %s\n", indent, __func__); \
195 indent++; \
196 } while (0)
197 #define EX_FUNC_LEAVE(error) \
198 do { \
199 indent--; \
200 fprintf(stderr, "%d Leave: %s\n", indent, __func__); \
201 return error; \
202 } while (0)
203 #define EX_FUNC_VOID() \
204 do { \
205 indent--; \
206 fprintf(stderr, "%d Leave: %s\n", indent, __func__); \
207 return; \
208 } while (0)
209 #else
210 #define EX_FUNC_ENTER() \
211 { \
212 ex_reset_error_status(); \
213 }
214 #define EX_FUNC_ENTER_INT()
215 #define EX_FUNC_LEAVE(error) return error
216 #define EX_FUNC_VOID() return
217 #endif
218 #endif
219
220 #define EX_UNUSED(A) \
221 do { \
222 (void)(A); \
223 } while (0)
224
225 /*
226 * This file contains defined constants that are used internally in the
227 * EXODUS API.
228 *
229 * The first group of constants refer to netCDF variables, attributes, or
230 * dimensions in which the EXODUS data are stored. Using the defined
231 * constants will allow the names of the netCDF entities to be changed easily
232 * in the future if needed. The first three letters of the constant identify
233 * the netCDF entity as a variable (VAR), dimension (DIM), or attribute (ATT).
234 *
235 * NOTE: The entity name should not have any blanks in it. Blanks are
236 * technically legal but some netcdf utilities (ncgen in particular)
237 * fail when they encounter a blank in a name.
238 *
239 * DEFINED CONSTANT ENTITY NAME DATA STORED IN ENTITY
240 */
241 #define ATT_FILE_TYPE "type" /* obsolete */
242 #define ATT_TITLE "title" /* the database title */
243 #define ATT_API_VERSION "api_version" /* the EXODUS api vers # */
244 #define ATT_API_VERSION_BLANK "api version" /* the EXODUS api vers # */
245 /* used for db version 2.01 */
246 /* and earlier */
247 #define ATT_VERSION "version" /* the EXODUS file vers # */
248 #define ATT_FILESIZE "file_size" /* 1=large, 0=normal */
249 #define ATT_FLT_WORDSIZE "floating_point_word_size"
250 /* word size of floating */
251 /* point numbers in file */
252 #define ATT_FLT_WORDSIZE_BLANK "floating point word size"
253 /* word size of floating */
254 /* point numbers in file */
255 /* used for db version 2.01 */
256 /* and earlier */
257 #define ATT_MAX_NAME_LENGTH "maximum_name_length"
258 #define ATT_INT64_STATUS "int64_status"
259
260 #define DIM_NUM_NODES "num_nodes" /* # of nodes */
261 #define DIM_NUM_DIM "num_dim" /* # of dimensions; 2- or 3-d*/
262 #define DIM_NUM_EDGE "num_edge" /* # of edges (over all blks)*/
263 #define DIM_NUM_FACE "num_face" /* # of faces (over all blks)*/
264 #define DIM_NUM_ELEM "num_elem" /* # of elements */
265 #define DIM_NUM_EL_BLK "num_el_blk" /* # of element blocks */
266 #define DIM_NUM_ED_BLK "num_ed_blk" /* # of edge blocks */
267 #define DIM_NUM_FA_BLK "num_fa_blk" /* # of face blocks */
268 #define VAR_COORD "coord" /* nodal coordinates */
269 #define VAR_COORD_X "coordx" /* X-dimension coordinate */
270 #define VAR_COORD_Y "coordy" /* Y-dimension coordinate */
271 #define VAR_COORD_Z "coordz" /* Z-dimension coordinate */
272 #define VAR_NAME_COOR "coor_names" /* names of coordinates */
273 #define VAR_NAME_EL_BLK "eb_names" /* names of element blocks */
274 #define VAR_NAME_NS "ns_names" /* names of node sets */
275 #define VAR_NAME_SS "ss_names" /* names of side sets */
276 #define VAR_NAME_EM "emap_names" /* names of element maps */
277 #define VAR_NAME_EDM "edmap_names" /* names of edge maps */
278 #define VAR_NAME_FAM "famap_names" /* names of face maps */
279 #define VAR_NAME_NM "nmap_names" /* names of node maps */
280 #define VAR_NAME_ED_BLK "ed_names" /* names of edge blocks */
281 #define VAR_NAME_FA_BLK "fa_names" /* names of face blocks */
282 #define VAR_NAME_ES "es_names" /* names of edge sets */
283 #define VAR_NAME_FS "fs_names" /* names of face sets */
284 #define VAR_NAME_ELS "els_names" /* names of element sets */
285 #define VAR_STAT_EL_BLK "eb_status" /* element block status */
286 #define VAR_STAT_ECONN "econn_status" /* element block edge status */
287 #define VAR_STAT_FCONN "fconn_status" /* element block face status */
288 #define VAR_STAT_ED_BLK "ed_status" /* edge block status */
289 #define VAR_STAT_FA_BLK "fa_status" /* face block status */
290 #define VAR_ID_EL_BLK "eb_prop1" /* element block ids props */
291 #define VAR_ID_ED_BLK "ed_prop1" /* edge block ids props */
292 #define VAR_ID_FA_BLK "fa_prop1" /* face block ids props */
293 #define ATT_NAME_ELB "elem_type" /* element type names for */
294 /* each element block */
295 #define DIM_NUM_EL_IN_BLK(num) ex_catstr("num_el_in_blk", num)
296 /* # of elements in element */
297 /* block num */
298 #define DIM_NUM_NOD_PER_EL(num) ex_catstr("num_nod_per_el", num)
299 /* # of nodes per element in */
300 /* element block num */
301 #define DIM_NUM_ATT_IN_BLK(num) ex_catstr("num_att_in_blk", num)
302 /* # of attributes in element*/
303 /* block num */
304 #define DIM_NUM_ED_IN_EBLK(num) ex_catstr("num_ed_in_blk", num)
305 /* # of edges in edge */
306 /* block num */
307 #define DIM_NUM_NOD_PER_ED(num) ex_catstr("num_nod_per_ed", num)
308 /* # of nodes per edge in */
309 /* edge block num */
310 #define DIM_NUM_EDG_PER_EL(num) ex_catstr("num_edg_per_el", num)
311 /* # of edges per element in */
312 /* element block num */
313 #define DIM_NUM_ATT_IN_EBLK(num) ex_catstr("num_att_in_eblk", num)
314 /* # of attributes in edge */
315 /* block num */
316 #define DIM_NUM_FA_IN_FBLK(num) ex_catstr("num_fa_in_blk", num)
317 /* # of faces in face */
318 /* block num */
319 #define DIM_NUM_NOD_PER_FA(num) ex_catstr("num_nod_per_fa", num)
320 /* # of nodes per face in */
321 /* face block num */
322 #define DIM_NUM_FAC_PER_EL(num) ex_catstr("num_fac_per_el", num)
323 /* # of faces per element in */
324 /* element block num */
325 #define DIM_NUM_ATT_IN_FBLK(num) ex_catstr("num_att_in_fblk", num)
326 /* # of attributes in face */
327 /* block num */
328 #define VAR_CONN(num) ex_catstr("connect", num)
329 /* element connectivity for */
330 /* element block num */
331 #define VAR_EBEPEC(num) ex_catstr("ebepecnt", num)
332 /* array containing number of entity per */
333 /* entity for n-sided face/element blocks */
334 #define VAR_ATTRIB(num) ex_catstr("attrib", num)
335 /* list of attributes for */
336 /* element block num */
337 #define VAR_NAME_ATTRIB(num) ex_catstr("attrib_name", num)
338 /* list of attribute names */
339 /* for element block num */
340 #define VAR_EB_PROP(num) ex_catstr("eb_prop", num)
341 /* list of the numth property*/
342 /* for all element blocks */
343 #define VAR_ECONN(num) ex_catstr("edgconn", num)
344 /* edge connectivity for */
345 /* element block num */
346 #define VAR_EBCONN(num) ex_catstr("ebconn", num)
347 /* edge connectivity for */
348 /* edge block num */
349 #define VAR_EATTRIB(num) ex_catstr("eattrb", num)
350 /* list of attributes for */
351 /* edge block num */
352 #define VAR_NAME_EATTRIB(num) ex_catstr("eattrib_name", num)
353 /* list of attribute names */
354 /* for edge block num */
355 #define VAR_NATTRIB "nattrb"
356 #define VAR_NAME_NATTRIB "nattrib_name"
357 #define DIM_NUM_ATT_IN_NBLK "num_att_in_nblk"
358
359 #define VAR_NSATTRIB(num) ex_catstr("nsattrb", num)
360 #define VAR_NAME_NSATTRIB(num) ex_catstr("nsattrib_name", num)
361 #define DIM_NUM_ATT_IN_NS(num) ex_catstr("num_att_in_ns", num)
362
363 #define VAR_SSATTRIB(num) ex_catstr("ssattrb", num)
364 #define VAR_NAME_SSATTRIB(num) ex_catstr("ssattrib_name", num)
365 #define DIM_NUM_ATT_IN_SS(num) ex_catstr("num_att_in_ss", num)
366
367 #define VAR_ESATTRIB(num) ex_catstr("esattrb", num)
368 #define VAR_NAME_ESATTRIB(num) ex_catstr("esattrib_name", num)
369 #define DIM_NUM_ATT_IN_ES(num) ex_catstr("num_att_in_es", num)
370
371 #define VAR_FSATTRIB(num) ex_catstr("fsattrb", num)
372 #define VAR_NAME_FSATTRIB(num) ex_catstr("fsattrib_name", num)
373 #define DIM_NUM_ATT_IN_FS(num) ex_catstr("num_att_in_fs", num)
374
375 #define VAR_ELSATTRIB(num) ex_catstr("elsattrb", num)
376 #define VAR_NAME_ELSATTRIB(num) ex_catstr("elsattrib_name", num)
377 #define DIM_NUM_ATT_IN_ELS(num) ex_catstr("num_att_in_els", num)
378
379 #define VAR_ED_PROP(num) ex_catstr("ed_prop", num)
380 /* list of the numth property*/
381 /* for all edge blocks */
382 #define VAR_FCONN(num) ex_catstr("facconn", num)
383 /* face connectivity for */
384 /* element block num */
385 #define VAR_FBCONN(num) ex_catstr("fbconn", num)
386 /* face connectivity for */
387 /* face block num */
388 #define VAR_FBEPEC(num) ex_catstr("fbepecnt", num)
389 /* array containing number of entity per */
390 /* entity for n-sided face/element blocks */
391 #define VAR_FATTRIB(num) ex_catstr("fattrb", num)
392 /* list of attributes for */
393 /* face block num */
394 #define VAR_NAME_FATTRIB(num) ex_catstr("fattrib_name", num)
395 /* list of attribute names */
396 /* for face block num */
397 #define VAR_FA_PROP(num) ex_catstr("fa_prop", num)
398 /* list of the numth property*/
399 /* for all face blocks */
400 #define ATT_PROP_NAME "name" /* name attached to element */
401 /* block, node set, side */
402 /* set, element map, or */
403 /* map properties */
404 #define VAR_MAP "elem_map" /* element order map */
405 /* obsolete, replaced by */
406 /* VAR_ELEM_MAP(num) */
407 #define DIM_NUM_SS "num_side_sets" /* # of side sets */
408 #define VAR_SS_STAT "ss_status" /* side set status */
409 #define VAR_SS_IDS "ss_prop1" /* side set id properties */
410 #define DIM_NUM_SIDE_SS(num) ex_catstr("num_side_ss", num)
411 /* # of sides in side set num*/
412 #define DIM_NUM_DF_SS(num) ex_catstr("num_df_ss", num)
413 /* # of distribution factors */
414 /* in side set num */
415 /*#define DIM_NUM_NOD_SS(num) ex_catstr("num_nod_ss",num) *** obsolete *** */
416 /* # of nodes in side set num*/
417 #define VAR_FACT_SS(num) ex_catstr("dist_fact_ss", num)
418 /* the distribution factors */
419 /* for each node in side */
420 /* set num */
421 #define VAR_ELEM_SS(num) ex_catstr("elem_ss", num)
422 /* list of elements in side */
423 /* set num */
424 #define VAR_SIDE_SS(num) ex_catstr("side_ss", num)
425 /* list of sides in side set */
426 #define VAR_SS_PROP(num) ex_catstr("ss_prop", num)
427 /* list of the numth property*/
428 /* for all side sets */
429 #define DIM_NUM_ES "num_edge_sets" /* # of edge sets */
430 #define VAR_ES_STAT "es_status" /* edge set status */
431 #define VAR_ES_IDS "es_prop1" /* edge set id properties */
432 #define DIM_NUM_EDGE_ES(num) ex_catstr("num_edge_es", num)
433 /* # of edges in edge set num*/
434 #define DIM_NUM_DF_ES(num) ex_catstr("num_df_es", num)
435 /* # of distribution factors */
436 /* in edge set num */
437 /*#define DIM_NUM_NOD_ES(num) ex_catstr("num_nod_es",num) *** obsolete *** */
438 /* # of nodes in edge set num*/
439 #define VAR_FACT_ES(num) ex_catstr("dist_fact_es", num)
440 /* the distribution factors */
441 /* for each node in edge */
442 /* set num */
443 #define VAR_EDGE_ES(num) ex_catstr("edge_es", num)
444 /* list of edges in edge */
445 /* set num */
446 #define VAR_ORNT_ES(num) ex_catstr("ornt_es", num)
447 /* list of orientations in */
448 /* the edge set. */
449 #define VAR_ES_PROP(num) ex_catstr("es_prop", num)
450 /* list of the numth property*/
451 /* for all edge sets */
452 #define DIM_NUM_FS "num_face_sets" /* # of face sets */
453 #define VAR_FS_STAT "fs_status" /* face set status */
454 #define VAR_FS_IDS "fs_prop1" /* face set id properties */
455 #define DIM_NUM_FACE_FS(num) ex_catstr("num_face_fs", num)
456 /* # of faces in side set num*/
457 #define DIM_NUM_DF_FS(num) ex_catstr("num_df_fs", num)
458 /* # of distribution factors */
459 /* in face set num */
460 /*#define DIM_NUM_NOD_FS(num) ex_catstr("num_nod_ss",num) *** obsolete *** */
461 /* # of nodes in face set num*/
462 #define VAR_FACT_FS(num) ex_catstr("dist_fact_fs", num)
463 /* the distribution factors */
464 /* for each node in face */
465 /* set num */
466 #define VAR_FACE_FS(num) ex_catstr("face_fs", num)
467 /* list of elements in face */
468 /* set num */
469 #define VAR_ORNT_FS(num) ex_catstr("ornt_fs", num)
470 /* list of sides in side set */
471 #define VAR_FS_PROP(num) ex_catstr("fs_prop", num)
472 /* list of the numth property*/
473 /* for all face sets */
474 #define DIM_NUM_ELS "num_elem_sets" /* # of elem sets */
475 #define DIM_NUM_ELE_ELS(num) ex_catstr("num_ele_els", num)
476 /* # of elements in elem set */
477 /* num */
478 #define DIM_NUM_DF_ELS(num) ex_catstr("num_df_els", num)
479 /* # of distribution factors */
480 /* in element set num */
481 #define VAR_ELS_STAT "els_status" /* elem set status */
482 #define VAR_ELS_IDS "els_prop1" /* elem set id properties */
483 #define VAR_ELEM_ELS(num) ex_catstr("elem_els", num)
484 /* list of elements in elem */
485 /* set num */
486 #define VAR_FACT_ELS(num) ex_catstr("dist_fact_els", num)
487 /* list of distribution */
488 /* factors in elem set num */
489 #define VAR_ELS_PROP(num) ex_catstr("els_prop", num)
490 /* list of the numth property*/
491 /* for all elem sets */
492 #define DIM_NUM_NS "num_node_sets" /* # of node sets */
493 #define DIM_NUM_NOD_NS(num) ex_catstr("num_nod_ns", num)
494 /* # of nodes in node set */
495 /* num */
496 #define DIM_NUM_DF_NS(num) ex_catstr("num_df_ns", num)
497 /* # of distribution factors */
498 /* in node set num */
499 #define VAR_NS_STAT "ns_status" /* node set status */
500 #define VAR_NS_IDS "ns_prop1" /* node set id properties */
501 #define VAR_NODE_NS(num) ex_catstr("node_ns", num)
502 /* list of nodes in node set */
503 /* num */
504 #define VAR_FACT_NS(num) ex_catstr("dist_fact_ns", num)
505 /* list of distribution */
506 /* factors in node set num */
507 #define VAR_NS_PROP(num) ex_catstr("ns_prop", num)
508 /* list of the numth property*/
509 /* for all node sets */
510 #define DIM_NUM_QA "num_qa_rec" /* # of QA records */
511 #define VAR_QA_TITLE "qa_records" /* QA records */
512 #define DIM_NUM_INFO "num_info" /* # of information records */
513 #define VAR_INFO "info_records" /* information records */
514 #define VAR_HIS_TIME "time_hist" /* obsolete */
515 #define VAR_WHOLE_TIME "time_whole" /* simulation times for whole*/
516 /* time steps */
517 #define VAR_ELEM_TAB "elem_var_tab" /* element variable truth */
518 /* table */
519 #define VAR_EBLK_TAB "edge_var_tab" /* edge variable truth table */
520 #define VAR_FBLK_TAB "face_var_tab" /* face variable truth table */
521 #define VAR_ELSET_TAB "elset_var_tab" /* elemset variable truth */
522 /* table */
523 #define VAR_SSET_TAB "sset_var_tab" /* sideset variable truth */
524 /* table */
525 #define VAR_FSET_TAB "fset_var_tab" /* faceset variable truth */
526 /* table */
527 #define VAR_ESET_TAB "eset_var_tab" /* edgeset variable truth */
528 /* table */
529 #define VAR_NSET_TAB "nset_var_tab" /* nodeset variable truth */
530 /* table */
531 #define DIM_NUM_GLO_VAR "num_glo_var" /* # of global variables */
532 #define VAR_NAME_GLO_VAR "name_glo_var" /* names of global variables */
533 #define VAR_GLO_VAR "vals_glo_var" /* values of global variables*/
534 #define DIM_NUM_NOD_VAR "num_nod_var" /* # of nodal variables */
535 #define VAR_NAME_NOD_VAR "name_nod_var" /* names of nodal variables */
536 #define VAR_NOD_VAR "vals_nod_var" /* values of nodal variables */
537 #define VAR_NOD_VAR_NEW(num) ex_catstr("vals_nod_var", num)
538 /* values of nodal variables */
539 #define DIM_NUM_ELE_VAR "num_elem_var" /* # of element variables */
540 #define VAR_NAME_ELE_VAR "name_elem_var" /* names of element variables*/
541 #define VAR_ELEM_VAR(num1, num2) ex_catstr2("vals_elem_var", num1, "eb", num2)
542 /* values of element variable*/
543 /* num1 in element block */
544 /* num2 */
545 #define DIM_NUM_EDG_VAR "num_edge_var" /* # of edge variables */
546 #define VAR_NAME_EDG_VAR "name_edge_var" /* names of edge variables */
547 #define VAR_EDGE_VAR(num1, num2) ex_catstr2("vals_edge_var", num1, "eb", num2)
548 /* values of edge variable */
549 /* num1 in edge block num2 */
550 #define DIM_NUM_FAC_VAR "num_face_var" /* # of face variables */
551 #define VAR_NAME_FAC_VAR "name_face_var" /* names of face variables */
552 #define VAR_FACE_VAR(num1, num2) ex_catstr2("vals_face_var", num1, "fb", num2)
553 /* values of face variable */
554 /* num1 in face block num2 */
555
556 #define DIM_NUM_NSET_VAR "num_nset_var" /* # of nodeset variables */
557 #define VAR_NAME_NSET_VAR "name_nset_var" /* names of nodeset variables*/
558 #define VAR_NS_VAR(num1, num2) ex_catstr2("vals_nset_var", num1, "ns", num2)
559 /* values of nodeset variable*/
560 /* num1 in nodeset num2 */
561 #define DIM_NUM_ESET_VAR "num_eset_var" /* # of edgeset variables */
562 #define VAR_NAME_ESET_VAR "name_eset_var" /* names of edgeset variables*/
563 #define VAR_ES_VAR(num1, num2) ex_catstr2("vals_eset_var", num1, "es", num2)
564 /* values of edgeset variable*/
565 /* num1 in edgeset num2 */
566 #define DIM_NUM_FSET_VAR "num_fset_var" /* # of faceset variables */
567 #define VAR_NAME_FSET_VAR "name_fset_var" /* names of faceset variables*/
568 #define VAR_FS_VAR(num1, num2) ex_catstr2("vals_fset_var", num1, "fs", num2)
569 /* values of faceset variable*/
570 /* num1 in faceset num2 */
571 #define DIM_NUM_SSET_VAR "num_sset_var" /* # of sideset variables */
572 #define VAR_NAME_SSET_VAR "name_sset_var" /* names of sideset variables*/
573 #define VAR_SS_VAR(num1, num2) ex_catstr2("vals_sset_var", num1, "ss", num2)
574 /* values of sideset variable*/
575 /* num1 in sideset num2 */
576 #define DIM_NUM_ELSET_VAR "num_elset_var" /* # of element set variables*/
577 #define VAR_NAME_ELSET_VAR "name_elset_var" /* names of elemset variables*/
578 #define VAR_ELS_VAR(num1, num2) ex_catstr2("vals_elset_var", num1, "es", num2)
579 /* values of elemset variable*/
580 /* num1 in elemset num2 */
581
582 #define DIM_NUM_HIS_VAR "num_his_var" /* obsolete */
583 #define VAR_NAME_HIS_VAR "name_his_var" /* obsolete */
584 #define VAR_HIS_VAR "vals_his_var" /* obsolete */
585 #define DIM_STR "len_string" /* general dimension of */
586 /* length MAX_STR_LENGTH */
587 /* used for some string lengths */
588 #define DIM_STR_NAME "len_name" /* general dimension of */
589 /* length MAX_NAME_LENGTH */
590 /* used for name lengths */
591 #define DIM_LIN "len_line" /* general dimension of */
592 /* length MAX_LINE_LENGTH */
593 /* used for long strings */
594 #define DIM_N4 "four" /* general dimension of */
595 /* length 4 */
596 #define DIM_TIME "time_step" /* unlimited (expandable) */
597 /* dimension for time steps*/
598 #define DIM_HTIME "hist_time_step" /* obsolete */
599 #define VAR_ELEM_NUM_MAP "elem_num_map" /* element numbering map */
600 /* obsolete, replaced by */
601 /* VAR_ELEM_MAP(num) */
602 #define VAR_FACE_NUM_MAP "face_num_map" /* face numbering map */
603 /* obsolete, replaced by */
604 /* VAR_FACE_MAP(num) */
605 #define VAR_EDGE_NUM_MAP "edge_num_map" /* edge numbering map */
606 /* obsolete, replaced by */
607 /* VAR_EDGE_MAP(num) */
608 #define VAR_NODE_NUM_MAP "node_num_map" /* node numbering map */
609 /* obsolete, replaced by */
610 /* VAR_NODE_MAP(num) */
611 #define DIM_NUM_EM "num_elem_maps" /* # of element maps */
612 #define VAR_ELEM_MAP(num) ex_catstr("elem_map", num)
613 /* the numth element map */
614 #define VAR_EM_PROP(num) ex_catstr("em_prop", num)
615 /* list of the numth property*/
616 /* for all element maps */
617 #define DIM_NUM_EDM "num_edge_maps" /* # of edge maps */
618 #define VAR_EDGE_MAP(num) ex_catstr("edge_map", num)
619 /* the numth edge map */
620 #define VAR_EDM_PROP(num) ex_catstr("edm_prop", num)
621 /* list of the numth property*/
622 /* for all edge maps */
623 #define DIM_NUM_FAM "num_face_maps" /* # of face maps */
624 #define VAR_FACE_MAP(num) ex_catstr("face_map", num)
625 /* the numth face map */
626 #define VAR_FAM_PROP(num) ex_catstr("fam_prop", num)
627 /* list of the numth property*/
628 /* for all face maps */
629 #define DIM_NUM_NM "num_node_maps" /* # of node maps */
630 #define VAR_NODE_MAP(num) ex_catstr("node_map", num)
631 /* the numth node map */
632 #define VAR_NM_PROP(num) ex_catstr("nm_prop", num)
633 /* list of the numth property*/
634 /* for all node maps */
635
636 #define DIM_NUM_CFRAMES "num_cframes"
637 #define DIM_NUM_CFRAME9 "num_cframes_9"
638 #define VAR_FRAME_COORDS "frame_coordinates"
639 #define VAR_FRAME_IDS "frame_ids"
640 #define VAR_FRAME_TAGS "frame_tags"
641
642 #define VAR_ELBLK_IDS_GLOBAL "el_blk_ids_global"
643 #define VAR_ELBLK_CNT_GLOBAL "el_blk_cnt_global"
644 #define VAR_NS_IDS_GLOBAL "ns_ids_global"
645 #define VAR_NS_NODE_CNT_GLOBAL "ns_node_cnt_global"
646 #define VAR_NS_DF_CNT_GLOBAL "ns_df_cnt_global"
647 #define VAR_SS_IDS_GLOBAL "ss_ids_global"
648 #define VAR_SS_SIDE_CNT_GLOBAL "ss_side_cnt_global"
649 #define VAR_SS_DF_CNT_GLOBAL "ss_df_cnt_global"
650 #define VAR_FILE_TYPE "nem_ftype"
651 #define VAR_COMM_MAP "comm_map"
652 #define VAR_NODE_MAP_INT "node_mapi"
653 #define VAR_NODE_MAP_INT_IDX "node_mapi_idx"
654 #define VAR_NODE_MAP_BOR "node_mapb"
655 #define VAR_NODE_MAP_BOR_IDX "node_mapb_idx"
656 #define VAR_NODE_MAP_EXT "node_mape"
657 #define VAR_NODE_MAP_EXT_IDX "node_mape_idx"
658 #define VAR_ELEM_MAP_INT "elem_mapi"
659 #define VAR_ELEM_MAP_INT_IDX "elem_mapi_idx"
660 #define VAR_ELEM_MAP_BOR "elem_mapb"
661 #define VAR_ELEM_MAP_BOR_IDX "elem_mapb_idx"
662 #define VAR_INT_N_STAT "int_n_stat"
663 #define VAR_BOR_N_STAT "bor_n_stat"
664 #define VAR_EXT_N_STAT "ext_n_stat"
665 #define VAR_INT_E_STAT "int_e_stat"
666 #define VAR_BOR_E_STAT "bor_e_stat"
667 #define VAR_N_COMM_IDS "n_comm_ids"
668 #define VAR_N_COMM_STAT "n_comm_stat"
669 #define VAR_N_COMM_INFO_IDX "n_comm_info_idx"
670 #define VAR_E_COMM_IDS "e_comm_ids"
671 #define VAR_E_COMM_STAT "e_comm_stat"
672 #define VAR_E_COMM_INFO_IDX "e_comm_info_idx"
673 #define VAR_N_COMM_NIDS "n_comm_nids"
674 #define VAR_N_COMM_PROC "n_comm_proc"
675 #define VAR_N_COMM_DATA_IDX "n_comm_data_idx"
676 #define VAR_E_COMM_EIDS "e_comm_eids"
677 #define VAR_E_COMM_SIDS "e_comm_sids"
678 #define VAR_E_COMM_PROC "e_comm_proc"
679 #define VAR_E_COMM_DATA_IDX "e_comm_data_idx"
680
681 #define DIM_NUM_INT_NODES "num_int_node"
682 #define DIM_NUM_BOR_NODES "num_bor_node"
683 #define DIM_NUM_EXT_NODES "num_ext_node"
684 #define DIM_NUM_INT_ELEMS "num_int_elem"
685 #define DIM_NUM_BOR_ELEMS "num_bor_elem"
686 #define DIM_NUM_PROCS "num_processors"
687 #define DIM_NUM_PROCS_F "num_procs_file"
688 #define DIM_NUM_NODES_GLOBAL "num_nodes_global"
689 #define DIM_NUM_ELEMS_GLOBAL "num_elems_global"
690 #define DIM_NUM_NS_GLOBAL "num_ns_global"
691 #define DIM_NUM_SS_GLOBAL "num_ss_global"
692 #define DIM_NUM_ELBLK_GLOBAL "num_el_blk_global"
693 #define DIM_NUM_N_CMAPS "num_n_cmaps"
694 #define DIM_NUM_E_CMAPS "num_e_cmaps"
695 #define DIM_NCNT_CMAP "ncnt_cmap"
696 #define DIM_ECNT_CMAP "ecnt_cmap"
697
698 enum ex_element_type {
699 EX_EL_UNK = -1, /**< unknown entity */
700 EX_EL_NULL_ELEMENT = 0,
701 EX_EL_TRIANGLE = 1, /**< Triangle entity */
702 EX_EL_QUAD = 2, /**< Quad entity */
703 EX_EL_HEX = 3, /**< Hex entity */
704 EX_EL_WEDGE = 4, /**< Wedge entity */
705 EX_EL_TETRA = 5, /**< Tetra entity */
706 EX_EL_TRUSS = 6, /**< Truss entity */
707 EX_EL_BEAM = 7, /**< Beam entity */
708 EX_EL_SHELL = 8, /**< Shell entity */
709 EX_EL_SPHERE = 9, /**< Sphere entity */
710 EX_EL_CIRCLE = 10, /**< Circle entity */
711 EX_EL_TRISHELL = 11, /**< Triangular Shell entity */
712 EX_EL_PYRAMID = 12 /**< Pyramid entity */
713 };
714 typedef enum ex_element_type ex_element_type;
715
716 enum ex_coordinate_frame_type { EX_CF_RECTANGULAR = 1, EX_CF_CYLINDRICAL = 2, EX_CF_SPHERICAL = 3 };
717 typedef enum ex_coordinate_frame_type ex_coordinate_frame_type;
718
719 /* Internal structure declarations */
720
721 struct ex_file_item
722 {
723 int file_id;
724 nc_type netcdf_type_code;
725 int int64_status;
726 int maximum_name_length;
727 int time_varid; /* Store to avoid lookup each timestep */
728 unsigned int
729 compression_level : 4; /* 0 (disabled) to 9 (maximum) compression level; netcdf-4 only */
730 unsigned int user_compute_wordsize : 1; /* 0 for 4 byte or 1 for 8 byte reals */
731 unsigned int shuffle : 1; /* 1 true, 0 false */
732 unsigned int
733 file_type : 2; /* 0 - classic, 1 -- 64 bit classic, 2 --netcdf4, 3 --netcdf4 classic */
734 unsigned int is_parallel : 1; /* 1 true, 0 false */
735 unsigned int is_hdf5 : 1; /* 1 true, 0 false */
736 unsigned int is_pnetcdf : 1; /* 1 true, 0 false */
737 unsigned int has_nodes : 1; /* for input only at this time */
738 unsigned int has_edges : 1; /* for input only at this time */
739 unsigned int has_faces : 1; /* for input only at this time */
740 unsigned int has_elems : 1; /* for input only at this time */
741 struct ex_file_item *next;
742 };
743
744 struct elem_blk_parm
745 {
746 char elem_type[33];
747 int64_t elem_blk_id;
748 int64_t num_elem_in_blk;
749 int num_nodes_per_elem;
750 int num_sides;
751 int num_nodes_per_side[6];
752 int num_attr;
753 int64_t elem_ctr;
754 ex_element_type elem_type_val;
755 };
756
757 struct list_item
758 { /* for use with ex_get_file_item */
759 int exo_id;
760 int value;
761 struct list_item *next;
762 };
763
764 struct obj_stats
765 {
766 int64_t * id_vals;
767 int * stat_vals;
768 size_t num;
769 int exoid;
770 char valid_ids;
771 char valid_stat;
772 char sequential;
773 struct obj_stats *next;
774 };
775
776 void ex_iqsort(int v[], int iv[], int N);
777 void ex_iqsort64(int64_t v[], int64_t iv[], int64_t N);
778
779 char *ex_catstr(const char * /*string*/, int /*num*/);
780 char *ex_catstr2(const char * /*string1*/, int /*num1*/, const char * /*string2*/, int /*num2*/);
781 char *ex_dim_num_entries_in_object(ex_entity_type /*obj_type*/, int /*idx*/);
782 char *ex_dim_num_objects(ex_entity_type obj_type);
783 char *ex_name_var_of_object(ex_entity_type /*obj_type*/, int /*i*/, int /*j*/);
784 char *ex_name_of_map(ex_entity_type /*map_type*/, int /*map_index*/);
785
786 int ex_conv_ini(int exoid, int *comp_wordsize, int *io_wordsize, int file_wordsize,
787 int int64_status, int is_parallel, int is_hdf5, int is_pnetcdf);
788 void ex_conv_exit(int exoid);
789
790 nc_type nc_flt_code(int exoid);
791 int ex_comp_ws(int exoid);
792 int ex_get_cpu_ws(void);
793 int ex_is_parallel(int exoid);
794
795 struct list_item **ex_get_counter_list(ex_entity_type obj_type);
796 int ex_get_file_item(int /*exoid*/, struct list_item ** /*list_ptr*/);
797 int ex_inc_file_item(int /*exoid*/, struct list_item ** /*list_ptr*/);
798 void ex_rm_file_item(int /*exoid*/, struct list_item ** /*list_ptr*/);
799
800 extern struct obj_stats *exoII_eb;
801 extern struct obj_stats *exoII_ed;
802 extern struct obj_stats *exoII_fa;
803 extern struct obj_stats *exoII_ns;
804 extern struct obj_stats *exoII_es;
805 extern struct obj_stats *exoII_fs;
806 extern struct obj_stats *exoII_ss;
807 extern struct obj_stats *exoII_els;
808 extern struct obj_stats *exoII_em;
809 extern struct obj_stats *exoII_edm;
810 extern struct obj_stats *exoII_fam;
811 extern struct obj_stats *exoII_nm;
812
813 struct ex_file_item *ex_find_file_item(int exoid);
814 struct ex_file_item *ex_add_file_item(int exoid);
815 struct obj_stats * ex_get_stat_ptr(int exoid, struct obj_stats **obj_ptr);
816
817 void ex_rm_stat_ptr(int exoid, struct obj_stats **obj_ptr);
818
819 void ex_compress_variable(int exoid, int varid, int type);
820 int ex_id_lkup(int exoid, ex_entity_type id_type, ex_entity_id num);
821 void ex_check_valid_file_id(int exoid,
822 const char *func); /** Abort if exoid does not refer to valid file */
823 int ex_check_file_type(const char *path, int *type);
824 int ex_get_dimension(int exoid, const char *DIMENSION, const char *label, size_t *count, int *dimid,
825 const char *routine);
826
827 int ex_get_nodal_var_int(int exoid, int time_step, int nodal_var_index, int64_t num_nodes,
828 void *nodal_var_vals);
829
830 int ex_put_nodal_var_int(int exoid, int time_step, int nodal_var_index, int64_t num_nodes,
831 const void *nodal_var_vals);
832
833 int ex_get_nodal_var_time_int(int exoid, int nodal_var_index, int64_t node_number,
834 int beg_time_step, int end_time_step, void *nodal_var_vals);
835
836 int ex_get_partial_nodal_var_int(int exoid, int time_step, int nodal_var_index, int64_t start_node,
837 int64_t num_nodes, void *var_vals);
838
839 int ex_put_partial_nodal_var_int(int exoid, int time_step, int nodal_var_index, int64_t start_node,
840 int64_t num_nodes, const void *nodal_var_vals);
841 int ex_get_glob_vars_int(int exoid, int time_step, int num_glob_vars, void *glob_var_vals);
842
843 int ex_get_glob_var_time_int(int exoid, int glob_var_index, int beg_time_step, int end_time_step,
844 void *glob_var_vals);
845
846 int ex_get_name_internal(int exoid, int varid, size_t index, char *name, int name_size,
847 ex_entity_type obj_type, const char *routine);
848 int ex_get_names_internal(int exoid, int varid, size_t num_entity, char **names,
849 ex_entity_type obj_type, const char *routine);
850 int ex_put_name_internal(int exoid, int varid, size_t index, const char *name,
851 ex_entity_type obj_type, const char *subtype, const char *routine);
852 int ex_put_names_internal(int exoid, int varid, size_t num_entity, char **names,
853 ex_entity_type obj_type, const char *subtype, const char *routine);
854 void ex_trim_internal(char *name);
855 void ex_update_max_name_length(int exoid, int length);
856 int ex_leavedef(int exoid, /* NemesisI file ID */
857 const char *call_rout /* Name of calling function */
858 );
859
860 int ex_int_handle_mode(unsigned int my_mode, int is_parallel, int run_version);
861 int ex_int_populate_header(int exoid, const char *path, int my_mode, int is_parallel, int *comp_ws,
862 int *io_ws);
863
864 int ex_int_get_block_param(int exoid, ex_entity_id id, int ndim,
865 struct elem_blk_parm *elem_blk_parm);
866
867 int ex_get_file_type(int exoid, /* NetCDF/Exodus file ID */
868 char *ftype /* Nemesis file type */
869 );
870
871 int ex_put_nemesis_version(int exoid); /* NetCDF/Exodus file ID */
872
873 int ne_check_file_version(int neid /* NetCDF/Exodus file ID */
874 );
875
876 int ne_id_lkup(int exoid, /* NetCDF/Exodus file ID */
877 const char * ne_var_name, /* Nemesis variable name */
878 int64_t * idx, /* index variable for variable, length 2 */
879 ex_entity_id ne_var_id /* NetCDF variable ID */
880 );
881
882 /**
883 * For output databases, the maximum length of any entity, variable,
884 * property, attribute, or coordinate name to be written (not
885 * including the NULL terminator). If a name is longer than this
886 * value, a warning message will be output to stderr and the name
887 * will be truncated. Must be set (via call to
888 * 'ex_set_max_name_length(exoid, int len)' prior to calling ex_create.
889 *
890 * For input databases, the size of the name arrays that the client
891 * code will be passing to API routines that retrieve names (not
892 * including the NULL terminator). This defaults to 32 for
893 * compatibility with older clients. The value used at the time of
894 * creation of the database can be queried by ex_inquire with the
895 * EX_INQ_DB_MAX_NAME_LENGTH argument. The current value for this
896 * variable can be queried with EX_INQ_CUR_MAX_NAME_LENGTH argument.
897 *
898 * Note that this is a global setting for all databases. If you are
899 * accessing multiple databases, they will all use the same value.
900 */
901 extern int ex_default_max_name_length;
902 #ifdef __cplusplus
903 }
904 #endif
905
906 #endif
elem_blk_parm::num_sides
int num_sides
Definition: exodusII_int.h:750
ex_update_max_name_length
void ex_update_max_name_length(int exoid, int length)
Definition: ex_utils.c:230
list_item::next
struct list_item * next
Definition: exodusII_int.h:761
EX_EL_TRIANGLE
Definition: exodusII_int.h:701
EX_EL_NULL_ELEMENT
Definition: exodusII_int.h:700
ex_file_item::int64_status
int int64_status
Definition: exodusII_int.h:725
ex_file_item::shuffle
unsigned int shuffle
Definition: exodusII_int.h:731
EX_EL_TRISHELL
Definition: exodusII_int.h:711
ex_name_var_of_object
char * ex_name_var_of_object(ex_entity_type, int, int)
Definition: ex_utils.c:576
ex_conv_exit
void ex_conv_exit(int exoid)
Definition: ex_conv.c:274
ex_get_name_internal
int ex_get_name_internal(int exoid, int varid, size_t index, char *name, int name_size, ex_entity_type obj_type, const char *routine)
Definition: ex_utils.c:393
obj_stats::next
struct obj_stats * next
Definition: exodusII_int.h:773
ex_rm_stat_ptr
void ex_rm_stat_ptr(int exoid, struct obj_stats **obj_ptr)
Definition: ex_utils.c:948
list_item::value
int value
Definition: exodusII_int.h:760
EX_EL_TETRA
Definition: exodusII_int.h:705
ex_put_name_internal
int ex_put_name_internal(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:322
ex_get_nodal_var_int
int ex_get_nodal_var_int(int exoid, int time_step, int nodal_var_index, int64_t num_nodes, void *nodal_var_vals)
Definition: ex_get_nodal_var_int.c:98
EX_CF_SPHERICAL
Definition: exodusII_int.h:716
ex_inc_file_item
int ex_inc_file_item(int, struct list_item **)
Definition: ex_utils.c:1039
ex_file_item::user_compute_wordsize
unsigned int user_compute_wordsize
Definition: exodusII_int.h:730
ex_get_counter_list
struct list_item ** ex_get_counter_list(ex_entity_type obj_type)
Definition: ex_utils.c:991
obj_stats::num
size_t num
Definition: exodusII_int.h:768
ex_get_stat_ptr
struct obj_stats * ex_get_stat_ptr(int exoid, struct obj_stats **obj_ptr)
Definition: ex_utils.c:909
exoII_edm
struct obj_stats * exoII_edm
Definition: ex_utils.c:58
EXODUS_EXPORT
#define EXODUS_EXPORT
Definition: exodusII.h:424
ex_file_item::netcdf_type_code
nc_type netcdf_type_code
Definition: exodusII_int.h:724
obj_stats::sequential
char sequential
Definition: exodusII_int.h:772
elem_blk_parm::num_nodes_per_side
int num_nodes_per_side[6]
Definition: exodusII_int.h:751
ex_check_valid_file_id
void ex_check_valid_file_id(int exoid, const char *func)
Definition: ex_conv.c:81
ex_is_parallel
int ex_is_parallel(int exoid)
Definition: ex_conv.c:484
exoII_eb
struct obj_stats * exoII_eb
Definition: ex_utils.c:49
ex_get_glob_vars_int
int ex_get_glob_vars_int(int exoid, int time_step, int num_glob_vars, void *glob_var_vals)
Definition: ex_get_glob_vars_int.c:60
ex_reset_error_status
void ex_reset_error_status()
Definition: ex_err.c:119
ex_file_item::has_nodes
unsigned int has_nodes
Definition: exodusII_int.h:737
ex_file_item::is_pnetcdf
unsigned int is_pnetcdf
Definition: exodusII_int.h:736
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:1480
ex_file_item::has_edges
unsigned int has_edges
Definition: exodusII_int.h:738
ex_file_item::has_faces
unsigned int has_faces
Definition: exodusII_int.h:739
EX_EL_SHELL
Definition: exodusII_int.h:708
ex_catstr2
char * ex_catstr2(const char *, int, const char *, int)
Definition: ex_utils.c:461
elem_blk_parm
Definition: exodusII_int.h:744
ex_leavedef
int ex_leavedef(int exoid, const char *call_rout)
Definition: ex_utils.c:1557
ex_name_of_map
char * ex_name_of_map(ex_entity_type, int)
Definition: ex_utils.c:591
list_item
Definition: exodusII_int.h:757
ex_file_item::maximum_name_length
int maximum_name_length
Definition: exodusII_int.h:726
MAX_ERR_LENGTH
#define MAX_ERR_LENGTH
Definition: exodusII.h:301
ex_int_get_block_param
int ex_int_get_block_param(int exoid, ex_entity_id id, int ndim, struct elem_blk_parm *elem_blk_parm)
Definition: ex_int_get_block_param.c:50
ex_check_file_type
int ex_check_file_type(const char *path, int *type)
Definition: ex_utils.c:148
exoII_es
struct obj_stats * exoII_es
Definition: ex_utils.c:53
ex_get_partial_nodal_var_int
int ex_get_partial_nodal_var_int(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:68
obj_stats::valid_stat
char valid_stat
Definition: exodusII_int.h:771
ex_compress_variable
void ex_compress_variable(int exoid, int varid, int type)
Definition: ex_utils.c:1527
obj_stats::exoid
int exoid
Definition: exodusII_int.h:769
ne_check_file_version
int ne_check_file_version(int neid)
Definition: ex_ne_util.c:224
exoII_fa
struct obj_stats * exoII_fa
Definition: ex_utils.c:51
ex_file_item::time_varid
int time_varid
Definition: exodusII_int.h:727
ex_put_partial_nodal_var_int
int ex_put_partial_nodal_var_int(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:72
exoII_ss
struct obj_stats * exoII_ss
Definition: ex_utils.c:55
exoII_ed
struct obj_stats * exoII_ed
Definition: ex_utils.c:50
ex_rm_file_item
void ex_rm_file_item(int, struct list_item **)
Definition: ex_utils.c:1133
ex_file_item
Definition: exodusII_int.h:721
nc_flt_code
nc_type nc_flt_code(int exoid)
Definition: ex_conv.c:311
ex_find_file_item
struct ex_file_item * ex_find_file_item(int exoid)
Definition: ex_conv.c:67
EX_EL_HEX
Definition: exodusII_int.h:703
elem_blk_parm::num_attr
int num_attr
Definition: exodusII_int.h:752
ex_entity_type
ex_entity_type
Definition: exodusII.h:246
ex_file_item::has_elems
unsigned int has_elems
Definition: exodusII_int.h:740
exoII_ns
struct obj_stats * exoII_ns
Definition: ex_utils.c:52
ex_put_nemesis_version
int ex_put_nemesis_version(int exoid)
Definition: ex_ne_util.c:182
exoII_nm
struct obj_stats * exoII_nm
Definition: ex_utils.c:60
ex_iqsort
void ex_iqsort(int v[], int iv[], int N)
Definition: ex_utils.c:1404
ex_element_type
ex_element_type
Definition: exodusII_int.h:698
EX_EL_QUAD
Definition: exodusII_int.h:702
obj_stats::id_vals
int64_t * id_vals
Definition: exodusII_int.h:766
obj_stats::valid_ids
char valid_ids
Definition: exodusII_int.h:770
ex_file_item::next
struct ex_file_item * next
Definition: exodusII_int.h:741
exoII_els
struct obj_stats * exoII_els
Definition: ex_utils.c:56
obj_stats
Definition: exodusII_int.h:764
ex_put_names_internal
int ex_put_names_internal(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:256
ex_file_item::is_hdf5
unsigned int is_hdf5
Definition: exodusII_int.h:735
elem_blk_parm::elem_type_val
ex_element_type elem_type_val
Definition: exodusII_int.h:754
ex_conv_ini
int ex_conv_ini(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:110
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
EX_EL_TRUSS
Definition: exodusII_int.h:706
ex_coordinate_frame_type
ex_coordinate_frame_type
Definition: exodusII_int.h:716
obj_stats::stat_vals
int * stat_vals
Definition: exodusII_int.h:767
EX_EL_SPHERE
Definition: exodusII_int.h:709
elem_blk_parm::num_elem_in_blk
int64_t num_elem_in_blk
Definition: exodusII_int.h:748
ex_file_item::file_id
int file_id
Definition: exodusII_int.h:723
ex_dim_num_entries_in_object
char * ex_dim_num_entries_in_object(ex_entity_type, int)
Definition: ex_utils.c:560
ex_default_max_name_length
int ex_default_max_name_length
ex_id_lkup
int ex_id_lkup(int exoid, ex_entity_type id_type, ex_entity_id num)
Definition: ex_utils.c:620
EX_CF_RECTANGULAR
Definition: exodusII_int.h:716
ex_file_item::is_parallel
unsigned int is_parallel
Definition: exodusII_int.h:734
ex_iqsort64
void ex_iqsort64(int64_t v[], int64_t iv[], int64_t N)
Definition: ex_utils.c:1419
exoII_em
struct obj_stats * exoII_em
Definition: ex_utils.c:57
ex_get_names_internal
int ex_get_names_internal(int exoid, int varid, size_t num_entity, char **names, ex_entity_type obj_type, const char *routine)
Definition: ex_utils.c:371
elem_blk_parm::num_nodes_per_elem
int num_nodes_per_elem
Definition: exodusII_int.h:749
list_item::exo_id
int exo_id
Definition: exodusII_int.h:759
elem_blk_parm::elem_blk_id
int64_t elem_blk_id
Definition: exodusII_int.h:747
elem_blk_parm::elem_type
char elem_type[33]
Definition: exodusII_int.h:746
exoII_fs
struct obj_stats * exoII_fs
Definition: ex_utils.c:54
ex_add_file_item
struct ex_file_item * ex_add_file_item(int exoid)
ex_trim_internal
void ex_trim_internal(char *name)
Definition: ex_utils.c:423
ex_int_handle_mode
int ex_int_handle_mode(unsigned int my_mode, int is_parallel, int run_version)
Definition: ex_utils.c:1573
ex_get_nodal_var_time_int
int ex_get_nodal_var_time_int(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_EL_WEDGE
Definition: exodusII_int.h:704
ex_get_cpu_ws
int ex_get_cpu_ws(void)
Definition: ex_utils.c:1201
elem_blk_parm::elem_ctr
int64_t elem_ctr
Definition: exodusII_int.h:753
ex_get_file_item
int ex_get_file_item(int, struct list_item **)
Definition: ex_utils.c:1087
ex_comp_ws
int ex_comp_ws(int exoid)
Definition: ex_conv.c:462
last_err_num
static int last_err_num
Definition: ex_err.c:108
EX_EL_BEAM
Definition: exodusII_int.h:707
EX_EL_CIRCLE
Definition: exodusII_int.h:710
ex_catstr
char * ex_catstr(const char *, int)
Definition: ex_utils.c:449
ex_entity_id
int64_t ex_entity_id
Definition: exodusII.h:305
ex_file_item::file_type
unsigned int file_type
Definition: exodusII_int.h:733
ex_put_nodal_var_int
int ex_put_nodal_var_int(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:100
last_errmsg
static char last_errmsg[MAX_ERR_LENGTH+1]
Definition: ex_err.c:107
ex_int_populate_header
int ex_int_populate_header(int exoid, const char *path, int my_mode, int is_parallel, int *comp_ws, int *io_ws)
Definition: ex_utils.c:1885
ex_get_glob_var_time_int
int ex_get_glob_var_time_int(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_UNK
Definition: exodusII_int.h:699
ex_dim_num_objects
char * ex_dim_num_objects(ex_entity_type obj_type)
Definition: ex_utils.c:534
exoII_fam
struct obj_stats * exoII_fam
Definition: ex_utils.c:59
EX_EL_PYRAMID
Definition: exodusII_int.h:712
ex_file_item::compression_level
unsigned int compression_level
Definition: exodusII_int.h:729
last_pname
static char last_pname[MAX_ERR_LENGTH+1]
Definition: ex_err.c:106
ex_get_file_type
int ex_get_file_type(int exoid, char *ftype)
Definition: ex_ne_util.c:139
EX_CF_CYLINDRICAL
Definition: exodusII_int.h:716