You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
338 lines
16 KiB
338 lines
16 KiB
2 years ago
|
/*
|
||
|
* Copyright (c) 1994 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.h - Exodus II include file, for general use
|
||
|
*
|
||
|
* author - Sandia National Laboratories
|
||
|
* Larry A. Schoof - Original
|
||
|
* James A. Schutt - 8 byte float and standard C definitions
|
||
|
* Vic Yarberry - Added headers and error logging
|
||
|
*
|
||
|
*
|
||
|
* environment - UNIX
|
||
|
*
|
||
|
* exit conditions -
|
||
|
*
|
||
|
* revision history -
|
||
|
*
|
||
|
* $Id: exodusII.h,v 1.3 2005/07/19 20:51:41 andy Exp $
|
||
|
*****************************************************************************/
|
||
|
|
||
|
#include "vtk_netcdf.h"
|
||
|
#include "exodusII_cfg.h"
|
||
|
|
||
|
#ifndef TRUE
|
||
|
#define TRUE -1
|
||
|
#endif
|
||
|
|
||
|
#ifndef FALSE
|
||
|
#define FALSE 0
|
||
|
#endif
|
||
|
|
||
|
#ifndef EXODUS_II_HDR
|
||
|
#define EXODUS_II_HDR
|
||
|
|
||
|
/*
|
||
|
* need following extern if this include file is used in a C++ program, to
|
||
|
* keep the C++ compiler from mangling the function names.
|
||
|
*/
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* The following are miscellaneous constants used in the EXODUS II API.
|
||
|
*/
|
||
|
|
||
|
#define EX_NOCLOBBER 0
|
||
|
#define EX_CLOBBER 1
|
||
|
#define EX_NORMAL_MODEL 2 /* disable mods that permit storage of larger models */
|
||
|
#define EX_LARGE_MODEL 4 /* enable mods that permit storage of larger models */
|
||
|
|
||
|
#define EX_READ 0
|
||
|
#define EX_WRITE 1
|
||
|
|
||
|
#define EX_INQ_FILE_TYPE 1 /* inquire EXODUS II file type*/
|
||
|
#define EX_INQ_API_VERS 2 /* inquire API version number */
|
||
|
#define EX_INQ_DB_VERS 3 /* inquire database version */
|
||
|
/* number */
|
||
|
#define EX_INQ_TITLE 4 /* inquire database title */
|
||
|
#define EX_INQ_DIM 5 /* inquire number of */
|
||
|
/* dimensions */
|
||
|
#define EX_INQ_NODES 6 /* inquire number of nodes */
|
||
|
#define EX_INQ_ELEM 7 /* inquire number of elements */
|
||
|
#define EX_INQ_ELEM_BLK 8 /* inquire number of element */
|
||
|
/* blocks */
|
||
|
#define EX_INQ_NODE_SETS 9 /* inquire number of node sets*/
|
||
|
#define EX_INQ_NS_NODE_LEN 10 /* inquire length of node set */
|
||
|
/* node list */
|
||
|
#define EX_INQ_SIDE_SETS 11 /* inquire number of side sets*/
|
||
|
#define EX_INQ_SS_NODE_LEN 12 /* inquire length of side set */
|
||
|
/* node list */
|
||
|
#define EX_INQ_SS_ELEM_LEN 13 /* inquire length of side set */
|
||
|
/* element list */
|
||
|
#define EX_INQ_QA 14 /* inquire number of QA */
|
||
|
/* records */
|
||
|
#define EX_INQ_INFO 15 /* inquire number of info */
|
||
|
/* records */
|
||
|
#define EX_INQ_TIME 16 /* inquire number of time */
|
||
|
/* steps in the database */
|
||
|
#define EX_INQ_EB_PROP 17 /* inquire number of element */
|
||
|
/* block properties */
|
||
|
#define EX_INQ_NS_PROP 18 /* inquire number of node set */
|
||
|
/* properties */
|
||
|
#define EX_INQ_SS_PROP 19 /* inquire number of side set */
|
||
|
#define EX_INQ_NS_DF_LEN 20 /* inquire length of node set */
|
||
|
/* distribution factor list*/
|
||
|
#define EX_INQ_SS_DF_LEN 21 /* inquire length of node set */
|
||
|
/* distribution factor list*/
|
||
|
#define EX_INQ_LIB_VERS 22 /* inquire API Lib vers number*/
|
||
|
#define EX_INQ_EM_PROP 23 /* inquire number of element */
|
||
|
/* map properties */
|
||
|
#define EX_INQ_NM_PROP 24 /* inquire number of node */
|
||
|
/* map properties */
|
||
|
#define EX_INQ_ELEM_MAP 25 /* inquire number of element */
|
||
|
/* maps */
|
||
|
#define EX_INQ_NODE_MAP 26 /* inquire number of node */
|
||
|
/* maps */
|
||
|
|
||
|
/* properties */
|
||
|
#define EX_ELEM_BLOCK 1 /* element block property code*/
|
||
|
#define EX_NODE_SET 2 /* node set property code */
|
||
|
#define EX_SIDE_SET 3 /* side set property code */
|
||
|
#define EX_ELEM_MAP 4 /* element map property code */
|
||
|
#define EX_NODE_MAP 5 /* node map property code */
|
||
|
|
||
|
/* max string lengths; constants that are used as netcdf dimensions must be
|
||
|
of type long */
|
||
|
#define MAX_STR_LENGTH 32L
|
||
|
#define MAX_VAR_NAME_LENGTH 20
|
||
|
#define MAX_LINE_LENGTH 80L
|
||
|
#define MAX_ERR_LENGTH 256
|
||
|
|
||
|
/* for netCDF 3.4, we estimate the size of the header;
|
||
|
if estimate is larger than this max, set the estimate to this max;
|
||
|
I've never measured a header larger than 20K */
|
||
|
#define MAX_HEADER_SIZE 30000
|
||
|
|
||
|
/* routines for file initialization i/o */
|
||
|
|
||
|
EXODUS_EXPORT int ex_create (const char*, int, int*, int*);
|
||
|
EXODUS_EXPORT int ex_open (const char*, int, int*, int*, float*);
|
||
|
EXODUS_EXPORT int ex_close (int);
|
||
|
EXODUS_EXPORT void ex_err (const char*, const char*, int);
|
||
|
EXODUS_EXPORT void ex_opts (int);
|
||
|
EXODUS_EXPORT int ex_update (int);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_init (int, const char*, int, int, int, int, int, int);
|
||
|
EXODUS_EXPORT int ex_get_init (int, char*, int*, int*, int*, int*, int*, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_qa (int,int, char*[][4]);
|
||
|
EXODUS_EXPORT int ex_get_qa (int, char*[][4]);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_info (int, int, char*[]);
|
||
|
EXODUS_EXPORT int ex_get_info (int, char*[]);
|
||
|
|
||
|
/* routines for model description i/o */
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_coord (int, const void*, const void*, const void*);
|
||
|
EXODUS_EXPORT int ex_get_coord (int, void*, void*, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_coord_names (int, char*[]);
|
||
|
EXODUS_EXPORT int ex_get_coord_names (int, char*[]);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_map (int, const int*);
|
||
|
EXODUS_EXPORT int ex_get_map (int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_elem_block (int, int, const char*, int, int, int);
|
||
|
EXODUS_EXPORT int ex_get_elem_block (int, int, char*, int*, int*, int*);
|
||
|
EXODUS_EXPORT int ex_put_concat_elem_block (int, const int*, char*[],
|
||
|
const int*, const int*, const int*, int);
|
||
|
|
||
|
EXODUS_EXPORT int ex_get_elem_blk_ids (int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_elem_conn (int, int, const int*);
|
||
|
EXODUS_EXPORT int ex_get_elem_conn (int, int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_elem_attr (int, int, const void*);
|
||
|
EXODUS_EXPORT int ex_get_elem_attr (int, int, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_node_set_param (int, int, int, int);
|
||
|
EXODUS_EXPORT int ex_get_node_set_param (int, int, int*, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_node_set (int, int, const int*);
|
||
|
EXODUS_EXPORT int ex_get_node_set (int, int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_node_set_dist_fact (int, int, const void*);
|
||
|
EXODUS_EXPORT int ex_get_node_set_dist_fact (int, int, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_get_node_set_ids (int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_concat_node_sets (int, int*, int*, int*, int*, int*, int*, void*);
|
||
|
EXODUS_EXPORT int ex_get_concat_node_sets(int, int*, int*, int*, int*, int*, int*, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_side_set_param (int, int, int, int);
|
||
|
EXODUS_EXPORT int ex_get_side_set_param (int, int, int*, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_side_set (int, int, const int*, const int*);
|
||
|
EXODUS_EXPORT int ex_get_side_set (int, int, int*, int*);
|
||
|
EXODUS_EXPORT int ex_put_side_set_dist_fact (int, int, const void*);
|
||
|
EXODUS_EXPORT int ex_get_side_set_dist_fact (int, int, void*);
|
||
|
EXODUS_EXPORT int ex_get_side_set_ids (int, int*);
|
||
|
EXODUS_EXPORT int ex_get_side_set_node_list (int, int, int*, int*);
|
||
|
EXODUS_EXPORT int ex_get_side_set_node_count(int, int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_prop_names (int, int, int, char**);
|
||
|
EXODUS_EXPORT int ex_get_prop_names (int, int, char**);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_prop (int, int, int, const char*, int);
|
||
|
EXODUS_EXPORT int ex_get_prop (int, int, int, const char*, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_prop_array (int, int, const char*, const int*);
|
||
|
EXODUS_EXPORT int ex_get_prop_array (int, int, const char*, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_concat_side_sets (int, const int*, const int*, const int*, const int*,
|
||
|
const int*, const int*, const int*, const void* );
|
||
|
EXODUS_EXPORT int ex_get_concat_side_sets (int, int*, int*, int*, int*, int*, int*, int*, void* );
|
||
|
EXODUS_EXPORT int ex_cvt_nodes_to_sides (int, int*, int*, int*, int*, int*, int*, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_coordinate_frames(int, int, const int*, void*, const char*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_get_coordinate_frames(int, int*, int*, void*, char*);
|
||
|
|
||
|
/* routines for analysis results i/o */
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_var_param (int, const char*, int);
|
||
|
EXODUS_EXPORT int ex_get_var_param (int, const char*, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_concat_var_param(int, int, int, int, int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_var_names (int, const char*, int, char*[]);
|
||
|
EXODUS_EXPORT int ex_get_var_names (int, const char*, int, char*[]);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_var_name (int, const char*, int, const char*);
|
||
|
EXODUS_EXPORT int ex_get_var_name (int, const char*, int, char*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_elem_var_tab (int, int, int, int*);
|
||
|
EXODUS_EXPORT int ex_get_elem_var_tab (int, int, int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_glob_vars (int, int, int, const void*);
|
||
|
EXODUS_EXPORT int ex_get_glob_vars (int, int, int, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_get_glob_var_time (int, int, int, int, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_nodal_var (int, int, int, int, const void*);
|
||
|
EXODUS_EXPORT int ex_get_nodal_var (int, int, int, int, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_get_nodal_var_time (int, int, int, int, int, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_elem_var (int, int, int, int, int, const void*);
|
||
|
EXODUS_EXPORT int ex_get_elem_var (int, int, int, int, int, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_get_elem_var_time (int, int, int, int, int, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_time (int, int, const void*);
|
||
|
EXODUS_EXPORT int ex_get_time (int, int, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_get_all_times (int, void*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_inquire (int, int, int*, void*, char*);
|
||
|
EXODUS_EXPORT int ex_get_num_props (int, int);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_elem_num_map (int, const int*);
|
||
|
EXODUS_EXPORT int ex_get_elem_num_map (int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_node_num_map (int, const int*);
|
||
|
EXODUS_EXPORT int ex_get_node_num_map (int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_map_param (int, int, int);
|
||
|
EXODUS_EXPORT int ex_get_map_param (int, int*, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_elem_map (int, int, const int*);
|
||
|
EXODUS_EXPORT int ex_get_elem_map (int, int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_put_node_map (int, int, const int*);
|
||
|
EXODUS_EXPORT int ex_get_node_map (int, int, int*);
|
||
|
|
||
|
EXODUS_EXPORT int *itol (const int*, int);
|
||
|
|
||
|
EXODUS_EXPORT int ltoi (const int*, int*, int);
|
||
|
|
||
|
EXODUS_EXPORT int ex_copy (int, int);
|
||
|
|
||
|
EXODUS_EXPORT int cpy_att (int, int, int, int);
|
||
|
|
||
|
EXODUS_EXPORT int cpy_var_def (int, int, int, char*);
|
||
|
|
||
|
EXODUS_EXPORT int cpy_var_val (int, int, char*);
|
||
|
|
||
|
EXODUS_EXPORT int ex_get_elem_varid (int exoid, int *varid);
|
||
|
EXODUS_EXPORT int ex_get_nodal_varid (int exoid, int *varid);
|
||
|
|
||
|
EXODUS_EXPORT int ex_get_nodal_varid_var(int, int, int, int, int, void *nodal_var_vals);
|
||
|
EXODUS_EXPORT int ex_put_nodal_varid_var(int, int, int, int, int, const void *nodal_var_vals);
|
||
|
|
||
|
EXODUS_EXPORT int ex_get_varid_var(int, int, int, int, void *var_vals);
|
||
|
EXODUS_EXPORT int ex_put_varid_var(int, int, int, int, const void *var_vals);
|
||
|
|
||
|
/* ERROR CODE DEFINITIONS AND STORAGE */
|
||
|
EXODUS_EXPORT int exerrval; /* shared error return value */
|
||
|
EXODUS_EXPORT int exoptval; /* error reporting flag (default is quiet) */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} /* close brackets on extern "C" declaration */
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
/* ex_opts function codes - codes are OR'ed into exopts */
|
||
|
#define EX_VERBOSE 1 /* verbose mode message flag */
|
||
|
#define EX_DEBUG 2 /* debug mode def */
|
||
|
#define EX_ABORT 4 /* abort mode flag def */
|
||
|
|
||
|
/* Exodus error return codes - exerrval return values: */
|
||
|
#define EX_MEMFAIL 1000 /* memory allocation failure flag def */
|
||
|
#define EX_BADFILEMODE 1001 /* bad file mode def */
|
||
|
#define EX_BADFILEID 1002 /* bad file id def */
|
||
|
#define EX_WRONGFILETYPE 1003 /* wrong file type for function */
|
||
|
#define EX_LOOKUPFAIL 1004 /* id table lookup failed */
|
||
|
#define EX_BADPARAM 1005 /* bad parameter passed */
|
||
|
#define EX_NULLENTITY -1006 /* null entity found */
|
||
|
#define EX_MSG -1000 /* message print code - no error implied */
|
||
|
#define EX_PRTLASTMSG -1001 /* print last error message msg code */
|
||
|
|