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