ExodusII  5.15
exodusII.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2005 Sandia Corporation. Under the terms of Contract
00003  * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Governement
00004  * retains certain rights in this software.
00005  * 
00006  * Redistribution and use in source and binary forms, with or without
00007  * modification, are permitted provided that the following conditions
00008  * are met:
00009  * 
00010  *     * Redistributions of source code must retain the above copyright
00011  *       notice, this list of conditions and the following disclaimer.
00012  * 
00013  *     * Redistributions in binary form must reproduce the above
00014  *       copyright notice, this list of conditions and the following
00015  *       disclaimer in the documentation and/or other materials provided
00016  *       with the distribution.  
00017  * 
00018  *     * Neither the name of Sandia Corporation nor the names of its
00019  *       contributors may be used to endorse or promote products derived
00020  *       from this software without specific prior written permission.
00021  * 
00022  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00023  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00024  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00025  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00026  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00027  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00028  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00029  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00030  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
00031  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00032  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
00033  * OF THE POSSIBILITY OF SUCH DAMAGE.
00034  * 
00035  */
00036 
00037 /*****************************************************************************
00038  *
00039  * exodusII.h - Exodus II API include file
00040  *
00041  *****************************************************************************/
00042 
00043 #ifndef EXODUS_II_HDR
00044 #define EXODUS_II_HDR
00045 
00046 #include "netcdf.h"
00047 #include <stddef.h>
00048 #include <stdlib.h>
00049 #include <stdint.h>
00050 
00051 #ifndef NC_INT64
00052 #error "NetCDF version 4.1.2 or later is required."
00053 #endif
00054 
00055 /* EXODUS II version number */
00056 #define EX_API_VERS 5.22f
00057 #define EX_API_VERS_NODOT 522
00058 #define EX_VERS EX_API_VERS
00059 #define NEMESIS_API_VERSION  EX_API_VERS
00060 #define NEMESIS_API_VERSION_NODOT EX_API_VERS_NODOT
00061 #define NEMESIS_FILE_VERSION  2.6 
00062 
00063 /*
00064  * need following extern if this include file is used in a C++
00065  * program, to keep the C++ compiler from mangling the function names.
00066  */
00067 #ifdef __cplusplus
00068 extern "C" {
00069 #endif
00070 
00071   /*
00072    * The following are miscellaneous constants used in the EXODUS II
00073    * API. They should already be defined, but are left over from the
00074    * old days...
00075    */
00076 #ifndef TRUE
00077 #define TRUE -1
00078 #endif
00079 
00080 #ifndef FALSE
00081 #define FALSE 0 
00082 #endif
00083 
00084   /**
00085    * \defgroup FileVars Variables controlling the file creation mode.
00086    *@{
00087    */
00088   /* Modes for ex_open */
00089 #define EX_READ                 0x0000 /**< ex_open(): open file for reading (default) */
00090 #define EX_WRITE                0x0001 /**< ex_open(): open existing file for appending. */
00091 
00092 #define EX_NOCLOBBER            0x0004 /**< Don't overwrite existing database, default */
00093 #define EX_CLOBBER              0x0008 /**< Overwrite existing database if it exists */
00094 #define EX_NORMAL_MODEL         0x0010 /**< disable mods that permit storage of larger models */
00095 #define EX_LARGE_MODEL          0x0020 /**< enable mods that permit storage of larger models */
00096 #define EX_NETCDF4              0x0040 /**< use the hdf5-based netcdf4 output */
00097 #define EX_NOSHARE              0x0080  /**< Do not open netcdf file in "share" mode */
00098 #define EX_SHARE                0x0100 /**< Do open netcdf file in "share" mode */
00099 #define EX_NOCLASSIC            0x0200 /**< Do not force netcdf to classic mode in netcdf4 mode */
00100 
00101   /* Need to distinguish between storage on database (DB in name) and
00102      passed through the API functions (API in name).
00103   */
00104 #define EX_MAPS_INT64_DB        0x0400 /**< All maps (id, order, ...) store int64_t values */
00105 #define EX_IDS_INT64_DB         0x0800 /**< All entity ids (sets, blocks, maps) are int64_t values */
00106 #define EX_BULK_INT64_DB        0x1000 /**< All integer bulk data (local indices, counts, maps); not ids */
00107 #define EX_ALL_INT64_DB         (EX_MAPS_INT64_DB|EX_IDS_INT64_DB|EX_BULK_INT64_DB) /**< All of the above... */
00108 
00109 #define EX_MAPS_INT64_API       0x2000 /**< All maps (id, order, ...) store int64_t values */
00110 #define EX_IDS_INT64_API        0x4000 /**< All entity ids (sets, blocks, maps) are int64_t values */
00111 #define EX_BULK_INT64_API       0x8000 /**< All integer bulk data (local indices, counts, maps); not ids */
00112 #define EX_INQ_INT64_API       0x10000 /**< Integers passed to/from ex_inquire are int64_t */
00113 #define EX_ALL_INT64_API        (EX_MAPS_INT64_API|EX_IDS_INT64_API|EX_BULK_INT64_API|EX_INQ_INT64_API) /**< All of the above... */
00114 
00115   /*@}*/
00116   
00117   /*! \sa ex_inquire() */
00118   enum ex_inquiry {
00119     EX_INQ_FILE_TYPE       =  1,     /**< inquire EXODUS II file type*/
00120     EX_INQ_API_VERS        =  2,     /**< inquire API version number */
00121     EX_INQ_DB_VERS         =  3,     /**< inquire database version number */
00122     EX_INQ_TITLE           =  4,     /**< inquire database title     */
00123     EX_INQ_DIM             =  5,     /**< inquire number of dimensions */
00124     EX_INQ_NODES           =  6,     /**< inquire number of nodes    */
00125     EX_INQ_ELEM            =  7,     /**< inquire number of elements */
00126     EX_INQ_ELEM_BLK        =  8,     /**< inquire number of element blocks */
00127     EX_INQ_NODE_SETS       =  9,     /**< inquire number of node sets*/
00128     EX_INQ_NS_NODE_LEN     = 10,     /**< inquire length of node set node list */
00129     EX_INQ_SIDE_SETS       = 11,     /**< inquire number of side sets*/
00130     EX_INQ_SS_NODE_LEN     = 12,     /**< inquire length of side set node list */
00131     EX_INQ_SS_ELEM_LEN     = 13,     /**< inquire length of side set element list */
00132     EX_INQ_QA              = 14,     /**< inquire number of QA records */
00133     EX_INQ_INFO            = 15,     /**< inquire number of info records */
00134     EX_INQ_TIME            = 16,     /**< inquire number of time steps in the database */
00135     EX_INQ_EB_PROP         = 17,     /**< inquire number of element block properties */
00136     EX_INQ_NS_PROP         = 18,     /**< inquire number of node set properties */
00137     EX_INQ_SS_PROP         = 19,     /**< inquire number of side set properties */
00138     EX_INQ_NS_DF_LEN       = 20,     /**< inquire length of node set distribution factor list*/
00139     EX_INQ_SS_DF_LEN       = 21,     /**< inquire length of side set distribution factor list*/
00140     EX_INQ_LIB_VERS        = 22,     /**< inquire API Lib vers number*/
00141     EX_INQ_EM_PROP         = 23,     /**< inquire number of element map properties */
00142     EX_INQ_NM_PROP         = 24,     /**< inquire number of node map properties */
00143     EX_INQ_ELEM_MAP        = 25,     /**< inquire number of element maps */
00144     EX_INQ_NODE_MAP        = 26,     /**< inquire number of node maps*/
00145     EX_INQ_EDGE            = 27,     /**< inquire number of edges    */
00146     EX_INQ_EDGE_BLK        = 28,     /**< inquire number of edge blocks */
00147     EX_INQ_EDGE_SETS       = 29,     /**< inquire number of edge sets   */
00148     EX_INQ_ES_LEN          = 30,     /**< inquire length of concat edge set edge list       */
00149     EX_INQ_ES_DF_LEN       = 31,     /**< inquire length of concat edge set dist factor list*/
00150     EX_INQ_EDGE_PROP       = 32,     /**< inquire number of properties stored per edge block    */
00151     EX_INQ_ES_PROP         = 33,     /**< inquire number of properties stored per edge set      */
00152     EX_INQ_FACE            = 34,     /**< inquire number of faces */
00153     EX_INQ_FACE_BLK        = 35,     /**< inquire number of face blocks */
00154     EX_INQ_FACE_SETS       = 36,     /**< inquire number of face sets */
00155     EX_INQ_FS_LEN          = 37,     /**< inquire length of concat face set face list */
00156     EX_INQ_FS_DF_LEN       = 38,     /**< inquire length of concat face set dist factor list*/
00157     EX_INQ_FACE_PROP       = 39,     /**< inquire number of properties stored per face block */
00158     EX_INQ_FS_PROP         = 40,     /**< inquire number of properties stored per face set */
00159     EX_INQ_ELEM_SETS       = 41,     /**< inquire number of element sets */
00160     EX_INQ_ELS_LEN         = 42,     /**< inquire length of concat element set element list       */
00161     EX_INQ_ELS_DF_LEN      = 43,     /**< inquire length of concat element set dist factor list*/
00162     EX_INQ_ELS_PROP        = 44,     /**< inquire number of properties stored per elem set      */
00163     EX_INQ_EDGE_MAP        = 45,     /**< inquire number of edge maps                     */
00164     EX_INQ_FACE_MAP        = 46,     /**< inquire number of face maps                     */
00165     EX_INQ_COORD_FRAMES    = 47,     /**< inquire number of coordinate frames */
00166     EX_INQ_DB_MAX_ALLOWED_NAME_LENGTH  = 48,     /**< inquire size of MAX_NAME_LENGTH dimension on database */
00167     EX_INQ_DB_MAX_USED_NAME_LENGTH  = 49,     /**< inquire size of MAX_NAME_LENGTH dimension on database */
00168     EX_INQ_MAX_READ_NAME_LENGTH = 50,     /**< inquire client-specified max size of returned names */
00169     EX_INQ_INVALID         = -1};
00170 
00171   typedef enum ex_inquiry ex_inquiry;
00172   
00173   /* Options */
00174   /**
00175    * \defgroup FileOptions Variables controlling the compression, name size, and integer size.
00176    *@{
00177    */
00178   /* Modes for ex_open */
00179   /*! \sa ex_set_option() */
00180   enum ex_option_type {
00181     EX_OPT_MAX_NAME_LENGTH = 1,
00182     EX_OPT_COMPRESSION_TYPE,     /* Currently not used. GZip by default */
00183     EX_OPT_COMPRESSION_LEVEL,    /* 0 (disabled/fastest) ... 9 (best/slowest) */
00184     EX_OPT_COMPRESSION_SHUFFLE,  /* 0 (disabled); 1 (enabled) */
00185     EX_OPT_INTEGER_SIZE_API,     /* See *_INT64_* values above */
00186     EX_OPT_INTEGER_SIZE_DB /* (query only) */
00187   };
00188   typedef enum ex_option_type ex_option_type;
00189   /*@}*/
00190   
00191   enum ex_entity_type {
00192     EX_NODAL       = 14,          /**< nodal "block" for variables*/
00193     EX_NODE_BLOCK  = 14,          /**< alias for EX_NODAL         */
00194     EX_NODE_SET    =  2,          /**< node set property code     */
00195     EX_EDGE_BLOCK  =  6,          /**< edge block property code   */
00196     EX_EDGE_SET    =  7,          /**< edge set property code     */
00197     EX_FACE_BLOCK  =  8,          /**< face block property code   */
00198     EX_FACE_SET    =  9,          /**< face set property code     */
00199     EX_ELEM_BLOCK  =  1,          /**< element block property code*/
00200     EX_ELEM_SET    = 10,          /**< face set property code     */
00201     
00202     EX_SIDE_SET    =  3,          /**< side set property code     */
00203     
00204     EX_ELEM_MAP    =  4,          /**< element map property code  */
00205     EX_NODE_MAP    =  5,          /**< node map property code     */
00206     EX_EDGE_MAP    = 11,          /**< edge map property code     */
00207     EX_FACE_MAP    = 12,          /**< face map property code     */
00208     
00209     EX_GLOBAL      = 13,          /**< global "block" for variables*/
00210     EX_COORDINATE  = 15,          /**< kluge so some internal wrapper functions work */
00211     EX_INVALID     = -1};             
00212   typedef enum ex_entity_type ex_entity_type;
00213   
00214   /**
00215    * ex_opts() function codes - codes are OR'ed into exopts
00216    */
00217   enum ex_options {
00218     EX_DEFAULT  = 0,
00219     EX_VERBOSE  = 1,  /**< verbose mode message flag   */
00220     EX_DEBUG    = 2,  /**< debug mode def             */
00221     EX_ABORT    = 4   /**< abort mode flag def        */
00222   };
00223   typedef enum ex_options ex_options;
00224   
00225   /** The value used to indicate that an entity (block, nset, sset)
00226       has not had its id set to a valid value
00227   */
00228 #define EX_INVALID_ID -1
00229 
00230   /**
00231    * \defgroup StringLengths maximum string lengths;
00232    * constants that are used as netcdf dimensions must be of type long
00233    * @{ 
00234    */
00235   /** Maximum length of QA record, element type name */
00236 #define MAX_STR_LENGTH          32L 
00237   /** Maximum length of an entity name, attribute name, variable name */
00238 #define MAX_NAME_LENGTH         MAX_STR_LENGTH
00239   
00240   /** Maximum length of the database title or an information record */
00241 #define MAX_LINE_LENGTH         80L
00242   /** Maximum length of an error message passed to ex_err() function. Typically, internal use only */
00243 #define MAX_ERR_LENGTH          256
00244   /* @} */
00245 
00246   /** Specifies that this argument is the id of an entity: element block, nodeset, sideset, ... */
00247   typedef int64_t ex_entity_id;
00248   
00249   /** The mechanism for passing double/float and int/int64_t both use a
00250      void*; to avoid some confusion as to whether a function takes an
00251      integer or a float/double, the following typedef is used for the
00252      integer argument
00253   */
00254   typedef void void_int;
00255   
00256   /**
00257    * \defgroup APIStructs Structures used by external API functions.
00258    * @{
00259    */
00260   typedef struct ex_init_params {
00261     char title[MAX_LINE_LENGTH + 1];
00262     int64_t num_dim;
00263     int64_t num_nodes;
00264     int64_t num_edge;
00265     int64_t num_edge_blk;
00266     int64_t num_face;
00267     int64_t num_face_blk;
00268     int64_t num_elem;
00269     int64_t num_elem_blk;
00270     int64_t num_node_sets;
00271     int64_t num_edge_sets;
00272     int64_t num_face_sets;
00273     int64_t num_side_sets;
00274     int64_t num_elem_sets;
00275     int64_t num_node_maps;
00276     int64_t num_edge_maps;
00277     int64_t num_face_maps;
00278     int64_t num_elem_maps;
00279   } ex_init_params;
00280 
00281   typedef struct ex_block {
00282     int64_t id;
00283     ex_entity_type type;
00284     char   topology[MAX_STR_LENGTH+1];
00285     int64_t num_entry;
00286     int64_t num_nodes_per_entry;
00287     int64_t num_edges_per_entry;
00288     int64_t num_faces_per_entry;
00289     int64_t num_attribute;
00290   } ex_block;
00291 
00292   typedef struct ex_set {
00293     int64_t id;
00294     ex_entity_type type;
00295     int64_t num_entry;
00296     int64_t num_distribution_factor;
00297     void_int* entry_list;
00298     void_int* extra_list;
00299     void*     distribution_factor_list;
00300   } ex_set;
00301 
00302   typedef struct ex_block_params {
00303     void_int*  edge_blk_id;
00304     char** edge_type;
00305     int*   num_edge_this_blk;
00306     int*   num_nodes_per_edge;
00307     int*   num_attr_edge;
00308     void_int*   face_blk_id;
00309     char** face_type;
00310     int*   num_face_this_blk;
00311     int*   num_nodes_per_face;
00312     int*   num_attr_face;
00313     void_int*   elem_blk_id;
00314     char** elem_type;
00315     int*   num_elem_this_blk;
00316     int*   num_nodes_per_elem;
00317     int*   num_edges_per_elem;
00318     int*   num_faces_per_elem;
00319     int*   num_attr_elem;
00320     int    define_maps;
00321   } ex_block_params;
00322 
00323   typedef struct ex_set_specs {
00324     void_int* sets_ids;
00325     void_int* num_entries_per_set;
00326     void_int* num_dist_per_set;
00327     void_int* sets_entry_index;
00328     void_int* sets_dist_index;
00329     void_int* sets_entry_list;
00330     void_int* sets_extra_list;
00331     void* sets_dist_fact;
00332   } ex_set_specs;
00333 
00334   typedef struct ex_var_params {
00335     int  num_glob;
00336     int  num_node;
00337     int  num_edge;
00338     int* edge_var_tab;
00339     int  num_face;
00340     int* face_var_tab;
00341     int  num_elem;
00342     int* elem_var_tab;
00343     int  num_nset;
00344     int* nset_var_tab;
00345     int  num_eset;
00346     int* eset_var_tab;
00347     int  num_fset;
00348     int* fset_var_tab;
00349     int  num_sset;
00350     int* sset_var_tab;
00351     int  num_elset;
00352     int* elset_var_tab;
00353   } ex_var_params;
00354   /* @} */
00355 
00356 #ifndef EXODUS_EXPORT
00357 #define EXODUS_EXPORT extern
00358 #endif /* EXODUS_EXPORT */
00359 
00360   /* routines for file initialization i/o */
00361   EXODUS_EXPORT int ex_close (int exoid);
00362 
00363   EXODUS_EXPORT int ex_copy (int in_exoid, int out_exoid);
00364 
00365 #define ex_create(path, mode, comp_ws, io_ws) ex_create_int(path, mode, comp_ws, io_ws, EX_API_VERS_NODOT)  
00366 
00367   EXODUS_EXPORT int ex_create_int (const char *path, int cmode, int *comp_ws, int *io_ws, int my_version);
00368 
00369   EXODUS_EXPORT int ex_get_all_times (int   exoid,
00370           void *time_values);
00371 
00372   EXODUS_EXPORT int ex_get_coord_names (int    exoid,
00373      char **coord_names);
00374 
00375   EXODUS_EXPORT int ex_get_coord (int exoid,
00376       void *x_coor,
00377       void *y_coor,
00378       void *z_coor);
00379 
00380   EXODUS_EXPORT int ex_get_n_coord (int exoid,
00381         int64_t start_node_num,
00382         int64_t  num_nodes,
00383         void *x_coor,
00384         void *y_coor,
00385         void *z_coor);
00386 
00387   EXODUS_EXPORT int ex_get_ids (int  exoid,
00388     ex_entity_type  obj_type,
00389     void_int   *ids);
00390 
00391   EXODUS_EXPORT int ex_get_coordinate_frames(int exoid,
00392           int *nframes,
00393           void_int *cf_ids,
00394           void* pt_coordinates,
00395           char* tags);
00396 
00397   EXODUS_EXPORT int ex_get_glob_vars (int   exoid,
00398           int   time_step,
00399           int   num_glob_vars,
00400           void *glob_var_vals);
00401 
00402   EXODUS_EXPORT int ex_get_glob_var_time (int   exoid,
00403        int   glob_var_index,
00404        int   beg_time_step,
00405        int   end_time_step,
00406        void *glob_var_vals);
00407 
00408   EXODUS_EXPORT int ex_get_info (int exoid, char **info);
00409 
00410   EXODUS_EXPORT int ex_put_init_ext (int exoid,  const ex_init_params *param);
00411 
00412   EXODUS_EXPORT int ex_get_init_ext (int exoid, ex_init_params *param);
00413 
00414   EXODUS_EXPORT int ex_get_init (int   exoid,
00415      char *title,
00416      void_int  *num_dim,
00417      void_int  *num_nodes,
00418      void_int  *num_elem, 
00419      void_int  *num_elem_blk,
00420      void_int  *num_node_sets,
00421      void_int  *num_side_sets);
00422 
00423   EXODUS_EXPORT int ex_put_init (int   exoid,
00424      const char *title,
00425      int64_t   num_dim,
00426      int64_t   num_nodes,
00427      int64_t   num_elem,
00428      int64_t   num_elem_blk,
00429      int64_t   num_node_sets,
00430      int64_t   num_side_sets);
00431 
00432   EXODUS_EXPORT int ex_get_map_param (int   exoid,
00433           int  *num_node_maps,
00434           int  *num_elem_maps);
00435 
00436   EXODUS_EXPORT int ex_get_name (int   exoid,
00437      ex_entity_type   obj_type,
00438      ex_entity_id     entity_id, 
00439      char *name);
00440 
00441   EXODUS_EXPORT int ex_get_names (int exoid,
00442       ex_entity_type obj_type,
00443       char **names);
00444 
00445   EXODUS_EXPORT int ex_get_nset_var_tab (int  exoid,
00446       int  num_nodesets,
00447       int  num_nset_var,
00448       int *nset_var_tab);
00449 
00450   EXODUS_EXPORT int ex_get_n_nodal_var (int   exoid,
00451      int   time_step,
00452      int   nodal_var_index,
00453      int64_t start_node, 
00454      int64_t num_nodes, 
00455      void *nodal_var_vals);
00456 
00457 
00458   EXODUS_EXPORT int ex_get_prop_array (int   exoid,
00459            ex_entity_type obj_type,
00460            const char *prop_name,
00461            void_int  *values);
00462 
00463   EXODUS_EXPORT int ex_get_prop (int   exoid,
00464      ex_entity_type obj_type,
00465      ex_entity_id   obj_id,
00466      const char *prop_name,
00467      void_int  *value);
00468 
00469   EXODUS_EXPORT int ex_get_partial_num_map (int   exoid,
00470          ex_entity_type map_type,
00471          ex_entity_id   map_id,
00472          int64_t ent_start,
00473          int64_t ent_count, 
00474          void_int  *elem_map);
00475   
00476   EXODUS_EXPORT int ex_get_prop_names (int    exoid,
00477            ex_entity_type obj_type,
00478            char **prop_names);
00479 
00480   EXODUS_EXPORT int ex_get_qa (int exoid,
00481           char *qa_record[][4]);
00482 
00483   EXODUS_EXPORT int ex_get_time (int   exoid,
00484      int   time_step,
00485      void *time_value);
00486 
00487   EXODUS_EXPORT int ex_get_variable_names (int   exoid,
00488         ex_entity_type obj_type,
00489         int   num_vars,
00490         char *var_names[]);
00491   EXODUS_EXPORT int ex_get_variable_name (int   exoid,
00492        ex_entity_type obj_type,
00493        int   var_num,
00494        char *var_name);
00495 
00496   EXODUS_EXPORT int ex_get_variable_param (int   exoid,
00497         ex_entity_type obj_type,
00498         int  *num_vars);
00499 
00500   EXODUS_EXPORT int ex_get_object_truth_vector (int  exoid,
00501       ex_entity_type var_type,
00502       ex_entity_id   object_id,
00503       int  num_var,
00504       int *var_vector);
00505 
00506   EXODUS_EXPORT int ex_get_truth_table (int  exoid,
00507      ex_entity_type obj_type,
00508      int  num_blk,
00509      int  num_var,
00510      int *var_tab);
00511   
00512 #define ex_open(path, mode, comp_ws, io_ws, version) ex_open_int(path, mode, comp_ws, io_ws, version, EX_API_VERS_NODOT)  
00513   EXODUS_EXPORT int ex_open_int (const char  *path,
00514      int    mode,
00515      int   *comp_ws,
00516      int   *io_ws,
00517      float *version, int my_version);
00518   
00519   EXODUS_EXPORT int ex_put_attr_param (int   exoid,
00520            ex_entity_type obj_type,
00521            ex_entity_id   obj_id,
00522            int   num_attrs);
00523 
00524   EXODUS_EXPORT int ex_get_attr_param (int   exoid,
00525            ex_entity_type obj_type,
00526            ex_entity_id   obj_id,
00527            int   *num_attrs);
00528 
00529   EXODUS_EXPORT int ex_put_all_var_param (int exoid,
00530        int num_g, int num_n,
00531        int num_e, int *elem_var_tab,
00532        int num_m, int *nset_var_tab,
00533        int num_s, int *sset_var_tab);
00534 
00535   EXODUS_EXPORT int ex_put_concat_elem_block (int    exoid,
00536            const void_int*   elem_blk_id,
00537            char *elem_type[],
00538            const void_int*   num_elem_this_blk,
00539            const void_int*   num_nodes_per_elem,
00540            const void_int*   num_attr,
00541            int    define_maps);
00542 
00543   EXODUS_EXPORT int ex_put_coord_names (int   exoid,
00544      char *coord_names[]);
00545 
00546   EXODUS_EXPORT int ex_put_coord (int   exoid,
00547       const void *x_coor,
00548       const void *y_coor,
00549       const void *z_coor);
00550 
00551   EXODUS_EXPORT int ex_put_n_coord (int   exoid,
00552         int64_t   start_node_num,
00553         int64_t   num_nodes,
00554         const void *x_coor,
00555         const void *y_coor,
00556         const void *z_coor);
00557 
00558   EXODUS_EXPORT int ex_put_id_map(int exoid,
00559       ex_entity_type obj_type,
00560       const void_int *map);
00561   
00562   EXODUS_EXPORT int ex_put_partial_id_map(int exoid,
00563        ex_entity_type obj_type,
00564        int64_t   start_entity_num, 
00565        int64_t   num_entities, 
00566        const void_int *map);
00567   
00568   EXODUS_EXPORT int ex_put_n_elem_num_map (int  exoid,
00569         int64_t  start_ent,
00570         int64_t  num_ents,
00571         const void_int *map);
00572 
00573   EXODUS_EXPORT int ex_put_n_node_num_map (int  exoid,
00574         int64_t  start_ent,
00575         int64_t  num_ents,
00576         const void_int *map);
00577 
00578   EXODUS_EXPORT int ex_get_id_map(int exoid,
00579       ex_entity_type obj_type,
00580       void_int *map);
00581   
00582   EXODUS_EXPORT int ex_put_coordinate_frames(int exoid,
00583           int nframes,
00584           const void_int *cf_ids, 
00585           void* pt_coordinates,
00586           const char* tags);
00587 
00588   EXODUS_EXPORT int ex_put_info (int   exoid, 
00589      int   num_info,
00590      char *info[]);
00591 
00592   EXODUS_EXPORT int ex_put_map_param (int   exoid,
00593           int   num_node_maps,
00594           int   num_elem_maps);
00595 
00596   EXODUS_EXPORT int ex_put_name (int   exoid,
00597      ex_entity_type obj_type,
00598      ex_entity_id   entity_id,
00599      const char *name);
00600 
00601   EXODUS_EXPORT int ex_put_names (int   exoid,
00602       ex_entity_type obj_type,
00603       char *names[]);
00604 
00605   EXODUS_EXPORT int ex_put_n_one_attr( int   exoid,
00606            ex_entity_type obj_type,
00607            ex_entity_id   obj_id,
00608            int64_t   start_num,
00609            int64_t   num_ent,
00610            int   attrib_index,
00611            const void *attrib );
00612 
00613   EXODUS_EXPORT int ex_put_prop (int   exoid,
00614      ex_entity_type obj_type,
00615      ex_entity_id   obj_id,
00616      const char *prop_name,
00617      ex_entity_id   value);
00618 
00619   EXODUS_EXPORT int ex_put_prop_array (int   exoid,
00620            ex_entity_type obj_type,
00621            const char *prop_name,
00622            const void_int  *values);
00623 
00624   EXODUS_EXPORT int ex_put_prop_names (int   exoid,
00625            ex_entity_type obj_type,
00626            int   num_props,
00627            char **prop_names);
00628 
00629   EXODUS_EXPORT int ex_put_qa (int   exoid,
00630           int   num_qa_records,
00631           char* qa_record[][4]);
00632 
00633   EXODUS_EXPORT int ex_put_time (int   exoid,
00634      int   time_step,
00635      const void *time_value);
00636 
00637   EXODUS_EXPORT int ex_put_variable_name (int   exoid,
00638        ex_entity_type obj_type,
00639        int   var_num,
00640        const char *var_name);
00641 
00642   EXODUS_EXPORT int ex_put_variable_names (int   exoid,
00643         ex_entity_type obj_type,
00644         int   num_vars,
00645         char* var_names[]);
00646 
00647   EXODUS_EXPORT int ex_put_variable_param (int exoid,
00648         ex_entity_type obj_type,
00649         int num_vars);
00650 
00651   EXODUS_EXPORT int ex_put_truth_table (int  exoid,
00652      ex_entity_type obj_type,
00653      int  num_blk,
00654      int  num_var,
00655      int *var_tab);
00656 
00657   EXODUS_EXPORT int ex_update (int exoid);
00658   EXODUS_EXPORT int ex_get_num_props (int exoid, ex_entity_type obj_type);
00659   EXODUS_EXPORT int ex_large_model(int exoid);
00660   EXODUS_EXPORT size_t ex_header_size(int exoid);
00661 
00662   EXODUS_EXPORT void ex_err(const char *module_name, const char *message, int err_num);
00663   EXODUS_EXPORT void ex_get_err(const char** msg, const char** func, int* errcode);
00664   EXODUS_EXPORT void ex_opts(int options);
00665   EXODUS_EXPORT int ex_inquire(int exoid, int inquiry, void_int*, float*, char*);
00666   EXODUS_EXPORT int64_t ex_inquire_int(int exoid, int inquiry);
00667   EXODUS_EXPORT int ex_int64_status(int exoid);
00668   EXODUS_EXPORT int ex_set_int64_status(int exoid, int mode);
00669 
00670   /** Note that the max name length setting is global at this time; not specific
00671    * to a particular database; however, the exoid option is passed to give
00672    * flexibility in the future to implement this on a database-by-database basis.
00673    */
00674   EXODUS_EXPORT int ex_set_max_name_length(int exoid, int length);
00675 
00676   EXODUS_EXPORT int ex_set_option(int exoid, ex_option_type option, int option_value);
00677 
00678   /*  Write Node Edge Face or Element Number Map */
00679   EXODUS_EXPORT int ex_put_num_map(int exoid,
00680        ex_entity_type map_type,
00681        ex_entity_id map_id,
00682        const void_int *map);
00683 
00684   /*  Read Number Map */
00685   EXODUS_EXPORT int ex_get_num_map(int exoid,
00686        ex_entity_type map_type,
00687        ex_entity_id map_id,
00688        void_int *map);
00689 
00690   /*  Write Edge Face or Element Block Parameters */
00691   EXODUS_EXPORT int ex_put_block(int exoid,
00692      ex_entity_type blk_type,
00693      ex_entity_id   blk_id,
00694      const char *entry_descrip,
00695      int64_t num_entries_this_blk,
00696      int64_t num_nodes_per_entry,
00697      int64_t num_edges_per_entry,
00698      int64_t num_faces_per_entry,
00699      int64_t num_attr_per_entry);
00700 
00701 
00702   /*! \deprecated Use ex_get_block_param() */
00703   EXODUS_EXPORT int ex_get_block(int exoid,
00704      ex_entity_type blk_type,
00705      ex_entity_id   blk_id,
00706      char *elem_type,
00707      void_int *num_entries_this_blk,
00708      void_int *num_nodes_per_entry,
00709      void_int *num_edges_per_entry,
00710      void_int *num_faces_per_entry,
00711      void_int *num_attr_per_entry);
00712 
00713   /*  Read Edge Face or Element Block Parameters */
00714   EXODUS_EXPORT int ex_get_block_param(int exoid,
00715            ex_block *block);
00716 
00717   EXODUS_EXPORT int ex_put_block_param(int exoid,
00718            const ex_block block);
00719 
00720   /*  Write All Edge Face and Element Block Parameters */
00721   EXODUS_EXPORT int ex_put_concat_all_blocks(int exoid,
00722           const ex_block_params *param);
00723 
00724   EXODUS_EXPORT int ex_put_entity_count_per_polyhedra(int exoid,
00725             ex_entity_type blk_type,
00726             ex_entity_id   blk_id,
00727             const int *entity_counts);
00728 
00729   EXODUS_EXPORT int ex_get_entity_count_per_polyhedra(int exoid,
00730             ex_entity_type blk_type,
00731             ex_entity_id   blk_id,
00732             int *entity_counts);
00733 
00734   /*  Write Edge Face or Element Block Connectivity */
00735   EXODUS_EXPORT int ex_put_conn(int exoid,
00736     ex_entity_type blk_type,
00737     ex_entity_id   blk_id,
00738     const void_int *node_conn,
00739     const void_int *elem_edge_conn,
00740     const void_int *elem_face_conn);
00741 
00742   /*  Read Edge Face or Element Block Connectivity */
00743   EXODUS_EXPORT int ex_get_conn(int exoid,
00744     ex_entity_type blk_type,
00745     ex_entity_id   blk_id,
00746     void_int *nodeconn,
00747     void_int *edgeconn,
00748     void_int *faceconn);
00749 
00750   /*  Read Partial Edge Face or Element Block Connectivity */
00751   EXODUS_EXPORT int ex_get_n_conn(int exoid,
00752       ex_entity_type blk_type,
00753       ex_entity_id   blk_id,
00754       int64_t start_num,
00755       int64_t num_ent,
00756       void_int *nodeconn,
00757       void_int *edgeconn,
00758       void_int *faceconn);
00759 
00760   /*  Write Edge Face or Element Block Attributes */
00761   EXODUS_EXPORT int ex_put_attr(int exoid,
00762     ex_entity_type blk_type,
00763     ex_entity_id   blk_id,
00764     const void *attrib);
00765 
00766   /*  Read Edge Face or Element Block Attributes */
00767   EXODUS_EXPORT int ex_get_attr(int exoid,
00768     ex_entity_type obj_type,
00769     ex_entity_id   obj_id,
00770     void *attrib);
00771 
00772   /*  Write One Edge Face or Element Block Attribute */
00773   EXODUS_EXPORT int ex_put_one_attr(int exoid,
00774         ex_entity_type obj_type,
00775         ex_entity_id   obj_id,
00776         int attrib_index,
00777         const void *attrib);
00778 
00779   /*  Read One Edge Face or Element Block Attribute */
00780   EXODUS_EXPORT int ex_get_one_attr(int exoid,
00781         ex_entity_type obj_type,
00782         ex_entity_id   obj_id,
00783         int attrib_index,
00784         void *attrib);
00785 
00786   /*  Read One Edge Face or Element Block Attribute */
00787   EXODUS_EXPORT int ex_get_n_one_attr(int exoid,
00788           ex_entity_type obj_type,
00789           ex_entity_id   obj_id,
00790           int64_t start_num,
00791           int64_t num_ent,
00792           int attrib_index,
00793           void *attrib);
00794 
00795   /*  Write Edge Face or Element Block Attribute Names */
00796   EXODUS_EXPORT int ex_put_attr_names(int exoid,
00797           ex_entity_type blk_type,
00798           ex_entity_id   blk_id,
00799           char **names);
00800 
00801   /*  Read Edge Face or Element Block Attribute Names */
00802   EXODUS_EXPORT int ex_get_attr_names(int exoid,
00803           ex_entity_type obj_type,
00804           ex_entity_id   obj_id,
00805           char **names);
00806 
00807   /*  Write Node Edge Face or Side Set Parameters */
00808   EXODUS_EXPORT int ex_put_set_param(int exoid,
00809          ex_entity_type set_type,
00810          ex_entity_id   set_id,
00811          int64_t num_entries_in_set,
00812          int64_t num_dist_fact_in_set);
00813 
00814   /*  Read Node Edge Face or Side Set Parameters */
00815   EXODUS_EXPORT int ex_get_set_param(int exoid,
00816          ex_entity_type set_type,
00817          ex_entity_id   set_id,
00818          void_int *num_entry_in_set,
00819          void_int *num_dist_fact_in_set);
00820 
00821   /*  Write a Node Edge Face or Side Set */
00822   EXODUS_EXPORT int ex_put_set(int exoid,
00823           ex_entity_type set_type,
00824           ex_entity_id   set_id,
00825           const void_int *set_entry_list,
00826           const void_int *set_extra_list);
00827 
00828   /*  Read a Node Edge Face or Side Set */
00829   EXODUS_EXPORT int ex_get_set(int exoid,
00830           ex_entity_type set_type,
00831           ex_entity_id   set_id,
00832           void_int *set_entry_list,
00833           void_int *set_extra_list);
00834 
00835   /*  Write Node Edge Face or Side Set Distribution Factors */
00836   EXODUS_EXPORT int ex_put_set_dist_fact(int exoid,
00837       ex_entity_type set_type,
00838       ex_entity_id   set_id,
00839       const void *set_dist_fact);
00840 
00841   /*  Read Node Edge Face or Side Set Distribution Factors */
00842   EXODUS_EXPORT int ex_get_set_dist_fact(int exoid,
00843       ex_entity_type set_type,
00844       ex_entity_id   set_id,
00845       void *set_dist_fact);
00846 
00847   /*  Write Concatenated Node Edge Face or Side Sets */
00848   EXODUS_EXPORT int ex_put_concat_sets(int exoid,
00849            ex_entity_type set_type,
00850            const struct ex_set_specs *set_specs);
00851 
00852   /*  Read Concatenated Node Edge Face or Side Sets */
00853   EXODUS_EXPORT int ex_get_concat_sets(int exoid,
00854            ex_entity_type set_type,
00855            struct ex_set_specs *set_specs);
00856 
00857   /*  Write Concatenated Node Edge Face or Side Sets */
00858   EXODUS_EXPORT int ex_put_sets(int exoid,
00859     size_t set_count,
00860     const struct ex_set *sets);
00861 
00862   /*  Read Concatenated Node Edge Face or Side Sets */
00863   EXODUS_EXPORT int ex_get_sets(int exoid,
00864     size_t set_count,
00865     struct ex_set *sets);
00866 
00867   /*  (MODIFIED) Write All Results Variables Parameters */
00868   EXODUS_EXPORT int ex_put_all_var_param_ext(int exoid,
00869           const ex_var_params *vp);
00870 
00871   /*  Write Edge Face or Element Variable Values on Blocks or Sets at a Time Step */
00872   EXODUS_EXPORT int ex_put_var(int exoid,
00873           int time_step,
00874           ex_entity_type var_type,
00875           int var_index,
00876           ex_entity_id   obj_id,
00877           int64_t num_entries_this_obj,
00878           const void *var_vals);
00879 
00880   /*  Write Partial Edge Face or Element Variable Values on Blocks or Sets at a Time Step */
00881   EXODUS_EXPORT int ex_put_n_var(int exoid,
00882      int time_step,
00883      ex_entity_type var_type,
00884      int var_index,
00885      ex_entity_id   obj_id,
00886      int64_t start_index,
00887      int64_t num_entities,
00888      const void *var_vals);
00889 
00890   /*  Read Edge Face or Element Variable Values Defined On Blocks or Sets at a Time Step */
00891   EXODUS_EXPORT int ex_get_var(int exoid,
00892           int time_step,
00893           ex_entity_type var_type,
00894           int var_index,
00895           ex_entity_id obj_id,
00896           int64_t num_entry_this_obj,
00897           void *var_vals);
00898 
00899   /*  Read Partial Edge Face or Element Variable Values on Blocks or Sets at a Time Step */
00900   EXODUS_EXPORT int ex_get_n_var(int exoid,
00901      int time_step,
00902      ex_entity_type var_type,
00903      int var_index,
00904      ex_entity_id   obj_id,
00905      int64_t start_index,
00906      int64_t num_entities,
00907      void *var_vals);
00908 
00909   EXODUS_EXPORT int ex_get_n_elem_var (int   exoid,
00910            int   time_step,
00911            int   elem_var_index,
00912            ex_entity_id elem_blk_id,
00913            int64_t num_elem_this_blk,
00914            int64_t start_elem_num,
00915            int64_t num_elem,
00916            void *elem_var_vals);
00917 
00918   /*  Read Edge Face or Element Variable Values Defined On Blocks or Sets Through Time */
00919   EXODUS_EXPORT int ex_get_var_time(int exoid,
00920         ex_entity_type var_type,
00921         int var_index,
00922         int64_t id,
00923         int beg_time_step,
00924         int end_time_step,
00925         void *var_vals);
00926 
00927   EXODUS_EXPORT int ex_cvt_nodes_to_sides(int exoid,
00928        void_int *num_elem_per_set,
00929        void_int *num_nodes_per_set,
00930        void_int *side_sets_elem_index,
00931        void_int *side_sets_node_index,
00932        void_int *side_sets_elem_list,
00933        void_int *side_sets_node_list,
00934        void_int *side_sets_side_list);
00935 
00936   /* Can be replaced by ex_put_var ... */
00937   EXODUS_EXPORT int ex_put_nodal_var (int   exoid,
00938           int   time_step,
00939           int   nodal_var_index,
00940           int64_t   num_nodes, 
00941           const void *nodal_var_vals);
00942 
00943   EXODUS_EXPORT int ex_put_n_nodal_var (int   exoid,
00944      int   time_step,
00945      int   nodal_var_index,
00946      int64_t   start_node, 
00947      int64_t   num_nodes, 
00948      const void *nodal_var_vals);
00949 
00950   EXODUS_EXPORT int ex_get_partial_elem_map (int   exoid,
00951           ex_entity_id   map_id,
00952           int64_t ent_start,
00953           int64_t ent_count, 
00954           void_int  *elem_map);
00955 
00956   EXODUS_EXPORT int ex_put_partial_elem_map (int   exoid,
00957           ex_entity_id   map_id,
00958           int64_t ent_start,
00959           int64_t ent_count, 
00960           const void_int  *elem_map);
00961 
00962   EXODUS_EXPORT int ex_put_partial_num_map (int   exoid,
00963          ex_entity_type map_type,
00964          ex_entity_id   map_id,
00965          int64_t ent_start,
00966          int64_t ent_count, 
00967          const void_int  *map);
00968 
00969   EXODUS_EXPORT int ex_put_partial_set_dist_fact (int   exoid,
00970         ex_entity_type set_type,
00971         ex_entity_id   set_id,
00972         int64_t   offset,
00973         int64_t   num_to_put,
00974         const void *set_dist_fact);
00975 
00976   /* TODO */
00977   EXODUS_EXPORT int ex_get_concat_side_set_node_count(int exoid,
00978             int *side_set_node_cnt_list);
00979 
00980   /* TODO */
00981   EXODUS_EXPORT int ex_get_side_set_node_list_len(int exoid,
00982         ex_entity_id side_set_id,
00983         void_int *side_set_node_list_len);
00984 
00985   /* TODO */
00986   EXODUS_EXPORT int ex_get_side_set_node_count(int exoid,
00987             ex_entity_id side_set_id,
00988             int *side_set_node_cnt_list);
00989 
00990   /* TODO */
00991   EXODUS_EXPORT int ex_get_side_set_node_list(int exoid,
00992            ex_entity_id side_set_id,
00993            void_int *side_set_node_cnt_list,
00994            void_int *side_set_node_list);
00995 
00996   /* ========================================================================
00997      Functions pulled from nemesis library and incorporated into exodus...
00998   */
00999 /*=============================================================================
01000  *     Initial Information Routines
01001  *===========================================================================*/
01002 EXODUS_EXPORT int
01003 ex_get_init_info(int   exoid,  /* NemesisI file ID */
01004                  int  *num_proc, /* Number of processors */
01005                  int  *num_proc_in_f, /* Number of procs in this file */
01006                  char *ftype
01007                  );
01008 
01009 EXODUS_EXPORT int
01010 ex_put_init_info(int   exoid,  /* NemesisI file ID */
01011                  int   num_proc, /* Number of processors */
01012                  int   num_proc_in_f, /* Number of procs in this file */
01013                  char *ftype
01014                  );
01015 
01016 EXODUS_EXPORT int
01017 ex_get_init_global(int   exoid,     /* NemesisI file ID */
01018                    void_int  *num_nodes_g,   /* Number of global FEM nodes */
01019                    void_int  *num_elems_g,   /* Number of global FEM elements */
01020                    void_int  *num_elem_blks_g, /* Number of global elem blocks */
01021                    void_int  *num_node_sets_g, /* Number of global node sets */
01022                    void_int  *num_side_sets_g  /* Number of global side sets */
01023                    );
01024 EXODUS_EXPORT int
01025 ex_put_init_global(int exoid,   /* NemesisI file ID */
01026                    int64_t num_nodes_g, /* Number of global FEM nodes */
01027                    int64_t num_elems_g, /* Number of global FEM elements */
01028                    int64_t num_elem_blks_g, /* Number of global elem blocks */
01029                    int64_t num_node_sets_g, /* Number of global node sets */
01030                    int64_t num_side_sets_g /* Number of global side sets */
01031                    );
01032 
01033 /*=============================================================================
01034  *     Loadbalance Parameter Routines
01035  *===========================================================================*/
01036 EXODUS_EXPORT int
01037 ex_get_loadbal_param(int   exoid,  /* NetCDF/Exodus file ID */
01038                      void_int  *num_int_nodes,  /* Number of internal FEM nodes */
01039                      void_int  *num_bor_nodes,  /* Number of border FEM nodes */
01040                      void_int  *num_ext_nodes,  /* Number of external FEM nodes */
01041                      void_int  *num_int_elems,  /* Number of internal FEM elems */
01042                      void_int  *num_bor_elems,  /* Number of border FEM elems */
01043                      void_int  *num_node_cmaps, /* Number of nodal comm maps */
01044                      void_int  *num_elem_cmaps, /* Number of elemental comm maps */
01045                      int   processor         /* Processor ID */
01046                      );
01047 
01048 EXODUS_EXPORT int
01049 ex_put_loadbal_param(int   exoid,    /* NemesisI file ID  */
01050                      int64_t   num_int_nodes, /* Number of internal FEM nodes */
01051                      int64_t   num_bor_nodes, /* Number of border FEM nodes */
01052                      int64_t   num_ext_nodes, /* Number of external FEM nodes */
01053                      int64_t   num_int_elems, /* Number of internal FEM elems */
01054                      int64_t   num_bor_elems, /* Number of border FEM elems */
01055                      int64_t   num_node_cmaps,/* Number of nodal comm maps */
01056                      int64_t   num_elem_cmaps,/* Number of elemental comm maps */
01057                      int       processor   /* Processor ID */
01058                      );
01059 
01060 EXODUS_EXPORT int
01061 ex_put_loadbal_param_cc(int   exoid,  /* NetCDF/Exodus file ID */
01062                         void_int  *num_int_nodes,  /* Number of internal node IDs */
01063                         void_int  *num_bor_nodes,  /* Number of border node IDs */
01064                         void_int  *num_ext_nodes,  /* Number of external node IDs */
01065                         void_int  *num_int_elems,  /* Number of internal elem IDs */
01066                         void_int  *num_bor_elems,  /* Number of border elem IDs */
01067                         void_int  *num_node_cmaps, /* Number of nodal comm maps */
01068                         void_int  *num_elem_cmaps  /* Number of elem comm maps */
01069                         );
01070 
01071 /*=============================================================================
01072  *     NS, SS & EB Global Parameter Routines
01073  *===========================================================================*/
01074 EXODUS_EXPORT int
01075 ex_get_ns_param_global(int exoid,          /* NetCDF/Exodus file ID */
01076                        void_int *ns_ids_glob,    /* Global IDs of node sets */
01077                        void_int *ns_n_cnt_glob,  /* Count of nodes in node sets */
01078                        void_int *ns_df_cnt_glob  /* Count of dist. factors in ns */
01079                        );
01080 
01081 EXODUS_EXPORT int
01082 ex_put_ns_param_global(int exoid,           /* NemesisI file ID */
01083                        void_int *global_ids,  /* Vector of global node-set IDs */
01084                        void_int *global_n_cnts,  /* Vector of node counts in node-sets */
01085                        void_int *global_df_cnts  /* Vector of dist factor counts in node-sets */
01086                        );
01087 
01088 EXODUS_EXPORT int
01089 ex_get_ss_param_global(int exoid,     /* NetCDF/Exodus file ID */
01090                        void_int *ss_ids_glob,    /* Global side-set IDs */
01091                        void_int *ss_s_cnt_glob,  /* Global side count */
01092                        void_int *ss_df_cnt_glob  /* Global dist. factor count */
01093                        );
01094 
01095 EXODUS_EXPORT int
01096 ex_put_ss_param_global(int exoid,      /* NemesisI file ID */
01097                        void_int *global_ids,     /* Vector of global side-set IDs */
01098                        void_int *global_el_cnts, /* Vector of element/side */
01099          /* counts in each side set */
01100                        void_int *global_df_cnts  /* Vector of dist. factor */
01101          /* counts in each side set */
01102                        );
01103 
01104 EXODUS_EXPORT int
01105 ex_get_eb_info_global(int exoid,  /* NemesisI file ID                 */
01106                       void_int *el_blk_ids, /* Vector of global element IDs     */
01107                       void_int *el_blk_cnts /* Vector of global element counts  */
01108                       );
01109 
01110 EXODUS_EXPORT int
01111 ex_put_eb_info_global(int exoid,  /* NemesisI file ID */
01112                       void_int *el_blk_ids, /* Vector of global element IDs     */
01113                       void_int *el_blk_cnts /* Vector of global element counts  */
01114                       );
01115 
01116 /*=============================================================================
01117  *     NS, SS & EB Subset Routines
01118  *===========================================================================*/
01119 EXODUS_EXPORT int
01120 ex_get_n_side_set(int  exoid,      /* NetCDF/Exodus file ID */
01121                   ex_entity_id side_set_id,     /* Side-set ID to read */
01122                   int64_t  start_side_num,      /* Starting element number */
01123                   int64_t  num_sides,     /* Number of sides to read */
01124                   void_int *side_set_elem_list,  /* List of element IDs */
01125                   void_int *side_set_side_list   /* List of side IDs */
01126                   );
01127 
01128 EXODUS_EXPORT int
01129 ex_put_n_side_set(int  exoid,                /* NetCDF/Exodus file ID */
01130                   ex_entity_id side_set_id,         /* Side-set ID to write */
01131                   int64_t  start_side_num,      /* Starting element number */
01132                   int64_t  num_sides,           /* Number of sides to write */
01133                   const void_int *side_set_elem_list,  /* List of element IDs */
01134                   const void_int *side_set_side_list   /* List of side IDs */
01135                   );
01136 
01137 EXODUS_EXPORT int
01138 ex_get_n_side_set_df(int   exoid,  /* NetCDF/Exodus file ID */
01139                      ex_entity_id   side_set_id,  /* Side-set ID */
01140                      int64_t   start_num,  /* Starting df number */
01141                      int64_t   num_df_to_get, /* Number of df's to read */
01142                      void *side_set_df   /* Distribution factors */
01143                      );
01144 
01145 EXODUS_EXPORT int
01146 ex_put_n_side_set_df(int   exoid,                /* NetCDF/Exodus file ID */
01147                      ex_entity_id   side_set_id,         /* Side-set ID */
01148                      int64_t   start_num,           /* Starting df number */
01149                      int64_t   num_df_to_get,       /* Number of df's to write */
01150                      void *side_set_df          /* Distribution factors */
01151                      );
01152 
01153 EXODUS_EXPORT int
01154 ex_get_n_node_set(int  exoid,     /* NetCDF/Exodus file ID */
01155                   ex_entity_id  node_set_id,    /* Node set ID */
01156                   int64_t  start_node_num,    /* Node index to start reading at */
01157                   int64_t  num_node,    /* Number of nodes to read */
01158                   void_int *node_set_node_list  /* List of nodes in node set */
01159                   );
01160 
01161 EXODUS_EXPORT int
01162 ex_put_n_node_set(int  exoid,     /* NetCDF/Exodus file ID */
01163                   ex_entity_id  node_set_id,    /* Node set ID */
01164                   int64_t  start_node_num,    /* Node index to start writing at */
01165                   int64_t  num_node,    /* Number of nodes to write */
01166                   const void_int *node_set_node_list  /* List of nodes in node set */
01167                   );
01168 
01169 EXODUS_EXPORT int
01170 ex_get_n_node_set_df(int   exoid,  /* NetCDF/Exodus file ID */
01171                      ex_entity_id   node_set_id,  /* Node-set ID */
01172                      int64_t   start_num,  /* Starting df number */
01173                      int64_t   num_df_to_get, /* Number of df's to read */
01174                      void *node_set_df   /* Distribution factors */
01175                      );
01176 
01177 EXODUS_EXPORT int
01178 ex_put_n_node_set_df(int   exoid,  /* NetCDF/Exodus file ID */
01179                      ex_entity_id   node_set_id,  /* Node-set ID */
01180                      int64_t   start_num,  /* Starting df number */
01181                      int64_t   num_df_to_get, /* Number of df's to write */
01182                      void *node_set_df   /* Distribution factors */
01183                      );
01184 
01185 EXODUS_EXPORT int
01186 ex_get_n_elem_conn (int   exoid,    /* NetCDF/Exodus file ID */
01187                     ex_entity_id   elem_blk_id,   /* Element block ID */
01188                     int64_t   start_elem_num, /* Starting position to read from */
01189                     int64_t   num_elems,   /* Number of elements to read */
01190                     void_int  *connect   /* Connectivity vector */
01191                     );
01192 
01193 EXODUS_EXPORT int
01194 ex_put_n_elem_conn (int   exoid,           /* NetCDF/Exodus file ID */
01195                     ex_entity_id   elem_blk_id,    /* Element block ID */
01196                     int64_t   start_elem_num, /* Starting position to write to */
01197                     int64_t   num_elems,      /* Number of elements to write */
01198                     const void_int  *connect         /* Connectivity vector */
01199 );
01200 
01201 EXODUS_EXPORT int
01202 ex_get_n_elem_attr (int   exoid,     /* NetCDF/Exodus file ID */
01203                     ex_entity_id   elem_blk_id,    /* Element block ID */
01204                     int64_t   start_elem_num,  /* Starting position to read from */
01205                     int64_t   num_elems,    /* Number of elements to read */
01206                     void *attrib    /* Attribute */
01207                     );
01208 
01209 EXODUS_EXPORT int
01210 ex_put_n_elem_attr (int   exoid,            /* NetCDF/Exodus file ID */
01211                     ex_entity_id   elem_blk_id,     /* Element block ID */
01212                     int64_t   start_elem_num,  /* Starting position to write to */
01213                     int64_t   num_elems,       /* Number of elements to write */
01214                     void *attrib           /* Attribute */
01215                     );
01216 
01217 EXODUS_EXPORT int
01218 ex_get_elem_type(int   exoid,            /* NetCDF/Exodus file ID */
01219                  ex_entity_id   elem_blk_id,     /* Element block ID */
01220                  char *elem_type        /* The name of the element type */
01221                  );
01222 
01223 /*=============================================================================
01224  *     Variable Routines
01225  *===========================================================================*/
01226 EXODUS_EXPORT int
01227 ex_put_elem_var_slab (int   exoid,           /* NetCDF/Exodus file ID */
01228                       int   time_step,      /* time index */
01229                       int   elem_var_index, /* elemental variable index */
01230                       ex_entity_id   elem_blk_id,    /* elemental block id */
01231                       int64_t   start_pos,      /* Starting position to write to */
01232                       int64_t   num_vals,       /* Number of elements to write */
01233                       void *elem_var_vals   /* variable values */
01234                       );
01235 
01236 EXODUS_EXPORT int
01237 ex_put_nodal_var_slab(int   exoid,            /* NetCDF/Exodus file ID */
01238                       int   time_step,       /* The time step index */
01239                       int   nodal_var_index, /* Nodal variable index */
01240                       int64_t   start_pos,       /* Start position for write */
01241                       int64_t   num_vals,        /* Number of nodal variables */
01242                       void *nodal_var_vals   /* Nodal variable values */
01243                       );
01244 
01245 /*=============================================================================
01246  *     Number Map Routines
01247  *===========================================================================*/
01248 EXODUS_EXPORT int
01249 ex_get_n_elem_num_map (int  exoid,           /* NetCDF/Exodus file ID */
01250                        int64_t  start_ent,      /* Starting position to read from */
01251                        int64_t  num_ents,       /* Number of elements to read */
01252                        void_int *elem_map        /* element map numbers */
01253                        );
01254 
01255 EXODUS_EXPORT int
01256 ex_get_n_node_num_map(int   exoid,      /* NetCDF/Exodus file ID */
01257                       int64_t   start_ent,       /* starting node number */
01258                       int64_t   num_ents,        /* number of nodes to read */
01259                       void_int  *node_map         /* vector for node map */
01260                       );
01261 
01262 EXODUS_EXPORT int
01263 ex_get_processor_node_maps(int   exoid,  /* NetCDF/Exodus file ID */
01264       void_int  *node_mapi, /* Internal FEM node IDs */
01265       void_int  *node_mapb, /* Border FEM node IDs */
01266       void_int  *node_mape, /* External FEM node IDs */
01267       int   processor  /* Processor IDs */
01268       );
01269 
01270 EXODUS_EXPORT int
01271 ex_put_processor_node_maps(int   exoid,  /* NetCDF/Exodus file ID */
01272       void_int  *node_mapi, /* Internal FEM node IDs */
01273       void_int  *node_mapb, /* Border FEM node IDs */
01274       void_int  *node_mape, /* External FEM node IDs */
01275       int   processor  /* This processor ID */
01276       );
01277 
01278 EXODUS_EXPORT int
01279 ex_get_processor_elem_maps(int   exoid,  /* NetCDF/Exodus file ID */
01280       void_int  *elem_mapi, /* Internal element IDs */
01281       void_int  *elem_mapb, /* Border element IDs */
01282       int   processor  /* Processor ID */
01283       );
01284 
01285 EXODUS_EXPORT int
01286 ex_put_processor_elem_maps(int   exoid,  /* NetCDF/Exodus file ID */
01287       void_int  *elem_mapi, /* Internal FEM element IDs */
01288       void_int  *elem_mapb, /* Border FEM element IDs */
01289       int   processor  /* This processor ID */
01290       );
01291 
01292 
01293 /*=============================================================================
01294  *     Communications Maps Routines
01295  *===========================================================================*/
01296 
01297 EXODUS_EXPORT int
01298 ex_get_cmap_params(int exoid,                  /* NetCDF/Exodus file ID */
01299                    void_int *node_cmap_ids,        /* Nodal comm. map IDs */
01300                    void_int *node_cmap_node_cnts,  /* Number of nodes in each map */
01301                    void_int *elem_cmap_ids,        /* Elemental comm. map IDs */
01302                    void_int *elem_cmap_elem_cnts,  /* Number of elems in each map */
01303                    int  processor             /* This processor ID */
01304                    );
01305 
01306 EXODUS_EXPORT int
01307 ex_put_cmap_params(int  exoid,   /* NetCDF/Exodus file ID */
01308                    void_int *node_map_ids, /* Node map IDs */
01309                    void_int *node_map_node_cnts,/* Nodes in nodal comm */
01310                    void_int *elem_map_ids, /* Elem map IDs */
01311                    void_int *elem_map_elem_cnts,/* Elems in elemental comm */
01312                    int64_t   processor  /* This processor ID */
01313                    );
01314 
01315 EXODUS_EXPORT int
01316 ex_put_cmap_params_cc(int  exoid,  /* NetCDF/Exodus file ID */
01317                       void_int *node_map_ids, /* Node map IDs */
01318                       void_int *node_map_node_cnts, /* Nodes in nodal comm */
01319                       void_int *node_proc_ptrs,      /* Pointer into array for */
01320       /* node maps    */
01321                       void_int *elem_map_ids, /* Elem map IDs */
01322                       void_int *elem_map_elem_cnts, /* Elems in elemental comm */
01323                       void_int *elem_proc_ptrs /* Pointer into array for */
01324       /* elem maps    */
01325                       );
01326 
01327 EXODUS_EXPORT int
01328 ex_get_node_cmap(int  exoid,             /* NetCDF/Exodus file ID */
01329                  ex_entity_id  map_id,           /* Map ID */
01330                  void_int *node_ids,         /* FEM node IDs */
01331                  void_int *proc_ids,         /* Processor IDs */
01332                  int  processor         /* This processor ID */
01333                  );
01334 
01335 EXODUS_EXPORT int
01336 ex_put_node_cmap(int  exoid, /* NetCDF/Exodus file ID */
01337                  ex_entity_id  map_id, /* Nodal comm map ID */
01338                  void_int *node_ids, /* FEM node IDs */
01339                  void_int *proc_ids, /* Processor IDs */
01340                  int  processor /* This processor ID */
01341                  );
01342 
01343 EXODUS_EXPORT int
01344 ex_get_elem_cmap(int  exoid,     /* NetCDF/Exodus file ID */
01345                  ex_entity_id  map_id,   /* Elemental comm map ID */
01346                  void_int *elem_ids, /* Element IDs */
01347                  void_int *side_ids, /* Element side IDs */
01348                  void_int *proc_ids, /* Processor IDs */
01349                  int  processor /* This processor ID */
01350                  );
01351 
01352 EXODUS_EXPORT int
01353 ex_put_elem_cmap(int  exoid, /* NetCDF/Exodus file ID */
01354                  ex_entity_id  map_id, /* Elemental comm map ID */
01355                  void_int *elem_ids, /* Vector of element IDs */
01356                  void_int *side_ids, /* Vector of side IDs */
01357                  void_int *proc_ids, /* Vector of processor IDs */
01358                  int  processor /* This processor ID */
01359                  );
01360   
01361   /* ========================================================================
01362    * Deprecated functiona
01363    */
01364 
01365   EXODUS_EXPORT int ex_get_nodal_var (int   exoid,
01366           int   time_step,
01367           int   nodal_var_index,
01368           int64_t   num_nodes, 
01369           void *nodal_var_vals);
01370 
01371   EXODUS_EXPORT int ex_get_nodal_var_time (int   exoid,
01372         int   nodal_var_index,
01373         int64_t   node_number,
01374         int   beg_time_step, 
01375         int   end_time_step,
01376         void *nodal_var_vals);
01377 
01378   /* Use ex_get_concat_sets() */
01379   EXODUS_EXPORT int ex_get_concat_node_sets (int   exoid,
01380           void_int  *node_set_ids,
01381           void_int  *num_nodes_per_set, 
01382           void_int  *num_df_per_set, 
01383           void_int  *node_sets_node_index,
01384           void_int  *node_sets_df_index,
01385           void_int  *node_sets_node_list, 
01386           void *node_sets_dist_fact);
01387 
01388      
01389   EXODUS_EXPORT int ex_get_concat_side_sets (int   exoid,
01390           void_int  *side_set_ids,
01391           void_int  *num_elem_per_set,
01392           void_int  *num_dist_per_set,
01393           void_int  *side_sets_elem_index,
01394           void_int  *side_sets_dist_index,
01395           void_int  *side_sets_elem_list,
01396           void_int  *side_sets_side_list,
01397           void *side_sets_dist_fact);
01398 
01399   EXODUS_EXPORT int ex_get_elem_attr (int   exoid,
01400           ex_entity_id   elem_blk_id,
01401           void *attrib);
01402 
01403   EXODUS_EXPORT int ex_get_elem_attr_names (int   exoid,
01404          ex_entity_id elem_blk_id,
01405          char **names);
01406 
01407   EXODUS_EXPORT int ex_get_elem_blk_ids (int  exoid,
01408       void_int *ids);
01409 
01410   EXODUS_EXPORT int ex_get_elem_block (int   exoid,
01411            ex_entity_id  elem_blk_id,
01412            char *elem_type,
01413            void_int  *num_elem_this_blk, 
01414            void_int  *num_nodes_per_elem,
01415            void_int  *num_attr);
01416 
01417   EXODUS_EXPORT int ex_get_elem_conn (int   exoid,
01418           ex_entity_id   elem_blk_id,
01419           void_int  *connect);
01420 
01421   EXODUS_EXPORT int ex_get_elem_map (int   exoid,
01422          ex_entity_id   map_id,
01423          void_int  *elem_map);
01424 
01425   EXODUS_EXPORT int ex_get_elem_num_map (int  exoid,
01426       void_int *elem_map);
01427 
01428   EXODUS_EXPORT int ex_get_elem_var (int   exoid,
01429          int   time_step,
01430          int   elem_var_index,
01431          ex_entity_id   elem_blk_id, 
01432          int64_t   num_elem_this_blk,
01433          void *elem_var_vals);
01434 
01435   EXODUS_EXPORT int ex_get_elem_var_tab (int  exoid,
01436       int  num_elem_blk,
01437       int  num_elem_var,
01438       int *elem_var_tab);
01439 
01440   EXODUS_EXPORT int ex_get_elem_var_time (int   exoid,
01441        int   elem_var_index,
01442        int64_t   elem_number,
01443        int   beg_time_step, 
01444        int   end_time_step,
01445        void *elem_var_vals);
01446 
01447   EXODUS_EXPORT int ex_get_map (int  exoid, void_int *elem_map);
01448 
01449   EXODUS_EXPORT int ex_get_node_map (int   exoid,
01450          ex_entity_id   map_id,
01451          void_int  *node_map);
01452 
01453   EXODUS_EXPORT int ex_get_node_num_map (int  exoid,
01454       void_int *node_map);
01455 
01456   EXODUS_EXPORT int ex_get_node_set_param (int  exoid,
01457         ex_entity_id  node_set_id,
01458         void_int *num_nodes_in_set,
01459         void_int *num_df_in_set);
01460 
01461   EXODUS_EXPORT int ex_get_node_set (int   exoid,
01462          ex_entity_id   node_set_id,
01463          void_int  *node_set_node_list);
01464 
01465   EXODUS_EXPORT int ex_get_node_set_dist_fact  (int   exoid,
01466       ex_entity_id   node_set_id,
01467       void *node_set_dist_fact);
01468 
01469   EXODUS_EXPORT int ex_get_node_set_ids (int  exoid,
01470       void_int *ids);
01471 
01472   EXODUS_EXPORT int ex_get_nset_var_tab (int  exoid,
01473       int  num_nodesets,
01474       int  num_nset_var,
01475       int *nset_var_tab);
01476 
01477   EXODUS_EXPORT int ex_get_nset_var (int   exoid,
01478          int   time_step,
01479          int   nset_var_index,
01480          ex_entity_id   nset_id, 
01481          int64_t   num_node_this_nset,
01482          void *nset_var_vals);
01483 
01484   EXODUS_EXPORT int ex_get_one_elem_attr (int   exoid,
01485        ex_entity_id   elem_blk_id,
01486        int   attrib_index,
01487        void *attrib);
01488 
01489   EXODUS_EXPORT int ex_get_side_set (int   exoid,
01490          ex_entity_id   side_set_id,
01491          void_int  *side_set_elem_list, 
01492          void_int  *side_set_side_list);
01493 
01494   EXODUS_EXPORT int ex_get_side_set_dist_fact (int   exoid,
01495             ex_entity_id   side_set_id,
01496             void *side_set_dist_fact);
01497 
01498   EXODUS_EXPORT int ex_get_side_set_ids (int  exoid,
01499       void_int *ids);
01500 
01501   EXODUS_EXPORT int ex_get_side_set_param (int  exoid,
01502         ex_entity_id  side_set_id,
01503         void_int *num_side_in_set, 
01504         void_int *num_dist_fact_in_set);
01505 
01506   EXODUS_EXPORT int ex_get_sset_var (int   exoid,
01507          int   time_step,
01508          int   sset_var_index,
01509          ex_entity_id   sset_id, 
01510          int64_t   num_side_this_sset,
01511          void *sset_var_vals);
01512 
01513   EXODUS_EXPORT int ex_get_sset_var_tab (int  exoid,
01514       int  num_sidesets,
01515       int  num_sset_var,
01516       int *sset_var_tab);
01517 
01518   EXODUS_EXPORT int ex_get_var_names (int   exoid,
01519           const char *var_type,
01520           int   num_vars,
01521           char *var_names[]);
01522 
01523   EXODUS_EXPORT int ex_get_var_name (int   exoid,
01524          const char *var_type,
01525          int   var_num,
01526          char *var_name);
01527 
01528   EXODUS_EXPORT int ex_get_var_param (int   exoid,
01529           const char *var_type,
01530           int  *num_vars);
01531 
01532   EXODUS_EXPORT int ex_get_var_tab (int  exoid,
01533         const char *var_type,
01534         int  num_blk,
01535         int  num_var,
01536         int *var_tab);
01537 
01538   EXODUS_EXPORT int ex_put_concat_node_sets (int   exoid,
01539           void_int  *node_set_ids,
01540           void_int  *num_nodes_per_set,
01541           void_int  *num_dist_per_set,
01542           void_int  *node_sets_node_index,
01543           void_int  *node_sets_df_index,
01544           void_int  *node_sets_node_list,
01545           void *node_sets_dist_fact);
01546 
01547   EXODUS_EXPORT int ex_put_concat_side_sets (int   exoid,
01548           void_int  *side_set_ids,
01549           void_int  *num_elem_per_set,
01550           void_int  *num_dist_per_set,
01551           void_int  *side_sets_elem_index,
01552           void_int  *side_sets_dist_index,
01553           void_int  *side_sets_elem_list,
01554           void_int  *side_sets_side_list,
01555           void *side_sets_dist_fact);
01556 
01557   EXODUS_EXPORT int ex_put_concat_var_param (int exoid, int num_g, int num_n,
01558           int num_e, int num_elem_blk, int  *elem_var_tab);
01559   
01560   EXODUS_EXPORT int ex_put_elem_attr_names(int   exoid,
01561         ex_entity_id   elem_blk_id,
01562         char *names[]);
01563   EXODUS_EXPORT int ex_put_elem_attr (int   exoid,
01564           ex_entity_id   elem_blk_id,
01565           const void *attrib);
01566 
01567   EXODUS_EXPORT int ex_put_elem_block (int   exoid,
01568            ex_entity_id   elem_blk_id,
01569            const char *elem_type,
01570            int64_t   num_elem_this_blk,
01571            int64_t   num_nodes_per_elem,
01572            int64_t   num_attr);
01573 
01574   EXODUS_EXPORT int ex_put_elem_conn (int   exoid,
01575           ex_entity_id   elem_blk_id,
01576           const void_int  *connect);
01577 
01578   EXODUS_EXPORT int ex_put_elem_map (int exoid,
01579          ex_entity_id map_id,
01580          const void_int *elem_map);
01581 
01582   EXODUS_EXPORT int ex_put_elem_num_map (int  exoid,
01583       const void_int *elem_map);
01584 
01585   EXODUS_EXPORT int ex_put_elem_var (int   exoid,
01586          int   time_step,
01587          int   elem_var_index,
01588          ex_entity_id   elem_blk_id,
01589          int64_t num_elem_this_blk,
01590          const void *elem_var_vals);
01591 
01592   EXODUS_EXPORT int ex_put_elem_var_tab (int  exoid,
01593       int  num_elem_blk,
01594       int  num_elem_var,
01595       int *elem_var_tab);
01596 
01597   EXODUS_EXPORT int ex_put_glob_vars (int   exoid,
01598           int   time_step,
01599           int   num_glob_vars,
01600           const void *glob_var_vals);
01601 
01602   EXODUS_EXPORT int ex_put_map (int  exoid,
01603     const void_int *elem_map);
01604 
01605   EXODUS_EXPORT int ex_put_node_map (int exoid,
01606          ex_entity_id map_id,
01607          const void_int *node_map);
01608 
01609   EXODUS_EXPORT int ex_put_node_num_map (int  exoid,
01610       const void_int *node_map);
01611 
01612   EXODUS_EXPORT int ex_put_node_set (int   exoid,
01613          ex_entity_id   node_set_id,
01614          const void_int  *node_set_node_list);
01615 
01616   EXODUS_EXPORT int ex_put_node_set_dist_fact  (int   exoid,
01617       ex_entity_id   node_set_id,
01618       const void *node_set_dist_fact);
01619 
01620   EXODUS_EXPORT int ex_put_node_set_param (int exoid,
01621         ex_entity_id node_set_id,
01622         int64_t num_nodes_in_set,
01623         int64_t num_dist_in_set);
01624 
01625   EXODUS_EXPORT int ex_put_nset_var (int   exoid,
01626          int   time_step,
01627          int   nset_var_index,
01628          ex_entity_id   nset_id,
01629          int64_t num_nodes_this_nset,
01630          const void *nset_var_vals);
01631 
01632   EXODUS_EXPORT int ex_put_nset_var_tab (int  exoid,
01633       int  num_nset,
01634       int  num_nset_var,
01635       int *nset_var_tab);
01636 
01637   EXODUS_EXPORT int ex_put_one_elem_attr (int   exoid,
01638        ex_entity_id   elem_blk_id,
01639        int   attrib_index,
01640        const void *attrib);
01641 
01642   EXODUS_EXPORT int ex_put_side_set (int   exoid,
01643          ex_entity_id   side_set_id,
01644          const void_int  *side_set_elem_list,
01645          const void_int  *side_set_side_list);
01646 
01647   EXODUS_EXPORT int ex_put_side_set_dist_fact (int   exoid,
01648             ex_entity_id   side_set_id,
01649             const void *side_set_dist_fact);
01650 
01651   EXODUS_EXPORT int ex_put_side_set_param (int exoid,
01652         ex_entity_id side_set_id,
01653         int64_t num_side_in_set,
01654         int64_t num_dist_fact_in_set);
01655 
01656   EXODUS_EXPORT int ex_put_sset_var (int   exoid,
01657          int   time_step,
01658          int   sset_var_index,
01659          ex_entity_id   sset_id,
01660          int64_t  num_faces_this_sset,
01661          const void *sset_var_vals);
01662 
01663   EXODUS_EXPORT int ex_put_sset_var_tab (int  exoid,
01664       int  num_sset,
01665       int  num_sset_var,
01666       int *sset_var_tab);
01667 
01668   EXODUS_EXPORT int ex_put_var_name (int   exoid,
01669          const char *var_type,
01670          int   var_num,
01671          const char *var_name);
01672 
01673   EXODUS_EXPORT int ex_put_var_names (int   exoid,
01674           const char *var_type,
01675           int   num_vars,
01676           char *var_names[]);
01677 
01678   EXODUS_EXPORT int ex_put_var_param (int   exoid,
01679           const char *var_type,
01680           int   num_vars);
01681 
01682   EXODUS_EXPORT int ex_put_var_tab (int  exoid,
01683         const char *var_type,
01684         int  num_blk,
01685         int  num_var,
01686         int *var_tab);
01687   
01688    /* End of Deprecated functions and their replacements
01689     * ======================================================================== */
01690 
01691   /* ERROR CODE DEFINITIONS AND STORAGE                                       */
01692   extern int exerrval;     /**< shared error return value                */
01693   extern int exoptval;     /**< error reporting flag (default is quiet)  */
01694 
01695   char* ex_name_of_object(ex_entity_type obj_type);
01696   ex_entity_type ex_var_type_to_ex_entity_type(char var_type);
01697 
01698   /* Should be internal use only, but was in external include file for
01699      nemesis and some codes are using the function
01700   */
01701   int ex_get_idx(int      neid,  /* NetCDF/Exodus file ID */
01702    const char *ne_var_name, /* Nemesis index variable name */
01703    int64_t *index,  /* array of length 2 to hold results */
01704    int      pos   /* position of this proc/cmap in index */
01705    );
01706 
01707 
01708 #ifdef __cplusplus
01709 }                               /* close brackets on extern "C" declaration */
01710 #endif
01711 
01712 /**
01713  * \defgroup ErrorReturnCodes Exodus error return codes - exerrval return values
01714  * @{
01715  */
01716 #define EX_MEMFAIL       1000   /**< memory allocation failure flag def       */
01717 #define EX_BADFILEMODE   1001   /**< bad file mode def                        */
01718 #define EX_BADFILEID     1002   /**< bad file id def                          */
01719 #define EX_WRONGFILETYPE 1003   /**< wrong file type for function             */
01720 #define EX_LOOKUPFAIL    1004   /**< id table lookup failed                   */
01721 #define EX_BADPARAM      1005   /**< bad parameter passed                     */
01722 #define EX_MSG          -1000   /**< message print code - no error implied    */
01723 #define EX_PRTLASTMSG   -1001   /**< print last error message msg code        */
01724 #define EX_NULLENTITY   -1006   /**< null entity found                        */
01725 /* @} */
01726 
01727 #endif
01728 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines