ExodusII 4.96
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 
00049 /* EXODUS II version number */
00050 #define EX_API_VERS 4.98
00051 #define EX_API_VERS_NODOT 498
00052 #define EX_VERS EX_API_VERS
00053 
00054 
00055 /*
00056  * need following extern if this include file is used in a C++
00057  * program, to keep the C++ compiler from mangling the function names.
00058  */
00059 #ifdef __cplusplus
00060 extern "C" {
00061 #endif
00062 
00063   /*
00064    * The following are miscellaneous constants used in the EXODUS II
00065    * API. They should already be defined, but are left over from the
00066    * old days...
00067    */
00068 #ifndef TRUE
00069 #define TRUE -1
00070 #endif
00071 
00072 #ifndef FALSE
00073 #define FALSE 0 
00074 #endif
00075 
00076   /**
00077    * \defgroup FileVars Variables controlling the file creation mode.
00078    *@{
00079    */
00080 #define EX_NOCLOBBER            0 /**< Don't overwrite existing database, default */
00081 #define EX_CLOBBER              1 /**< Overwrite existing database if it exists */
00082 #define EX_NORMAL_MODEL         2 /**< disable mods that permit storage of larger models */
00083 #define EX_LARGE_MODEL          4 /**< enable mods that permit storage of larger models */
00084 #define EX_NETCDF4              8 /**< use the hdf5-based netcdf4 output */
00085 #define EX_NOSHARE             16 /**< Do not open netcdf file in "share" mode */
00086 #define EX_SHARE               32 /**< Do open netcdf file in "share" mode */
00087 
00088 #define EX_READ                 0
00089 #define EX_WRITE                1
00090   /*@}*/
00091   
00092   /*! \sa ex_inquire() */
00093   enum ex_inquiry {
00094     EX_INQ_FILE_TYPE       =  1,     /**< inquire EXODUS II file type*/
00095     EX_INQ_API_VERS        =  2,     /**< inquire API version number */
00096     EX_INQ_DB_VERS         =  3,     /**< inquire database version number */
00097     EX_INQ_TITLE           =  4,     /**< inquire database title     */
00098     EX_INQ_DIM             =  5,     /**< inquire number of dimensions */
00099     EX_INQ_NODES           =  6,     /**< inquire number of nodes    */
00100     EX_INQ_ELEM            =  7,     /**< inquire number of elements */
00101     EX_INQ_ELEM_BLK        =  8,     /**< inquire number of element blocks */
00102     EX_INQ_NODE_SETS       =  9,     /**< inquire number of node sets*/
00103     EX_INQ_NS_NODE_LEN     = 10,     /**< inquire length of node set node list */
00104     EX_INQ_SIDE_SETS       = 11,     /**< inquire number of side sets*/
00105     EX_INQ_SS_NODE_LEN     = 12,     /**< inquire length of side set node list */
00106     EX_INQ_SS_ELEM_LEN     = 13,     /**< inquire length of side set element list */
00107     EX_INQ_QA              = 14,     /**< inquire number of QA records */
00108     EX_INQ_INFO            = 15,     /**< inquire number of info records */
00109     EX_INQ_TIME            = 16,     /**< inquire number of time steps in the database */
00110     EX_INQ_EB_PROP         = 17,     /**< inquire number of element block properties */
00111     EX_INQ_NS_PROP         = 18,     /**< inquire number of node set properties */
00112     EX_INQ_SS_PROP         = 19,     /**< inquire number of side set properties */
00113     EX_INQ_NS_DF_LEN       = 20,     /**< inquire length of node set distribution factor list*/
00114     EX_INQ_SS_DF_LEN       = 21,     /**< inquire length of side set distribution factor list*/
00115     EX_INQ_LIB_VERS        = 22,     /**< inquire API Lib vers number*/
00116     EX_INQ_EM_PROP         = 23,     /**< inquire number of element map properties */
00117     EX_INQ_NM_PROP         = 24,     /**< inquire number of node map properties */
00118     EX_INQ_ELEM_MAP        = 25,     /**< inquire number of element maps */
00119     EX_INQ_NODE_MAP        = 26,     /**< inquire number of node maps*/
00120     EX_INQ_EDGE            = 27,     /**< inquire number of edges    */
00121     EX_INQ_EDGE_BLK        = 28,     /**< inquire number of edge blocks */
00122     EX_INQ_EDGE_SETS       = 29,     /**< inquire number of edge sets   */
00123     EX_INQ_ES_LEN          = 30,     /**< inquire length of concat edge set edge list       */
00124     EX_INQ_ES_DF_LEN       = 31,     /**< inquire length of concat edge set dist factor list*/
00125     EX_INQ_EDGE_PROP       = 32,     /**< inquire number of properties stored per edge block    */
00126     EX_INQ_ES_PROP         = 33,     /**< inquire number of properties stored per edge set      */
00127     EX_INQ_FACE            = 34,     /**< inquire number of faces */
00128     EX_INQ_FACE_BLK        = 35,     /**< inquire number of face blocks */
00129     EX_INQ_FACE_SETS       = 36,     /**< inquire number of face sets */
00130     EX_INQ_FS_LEN          = 37,     /**< inquire length of concat face set face list */
00131     EX_INQ_FS_DF_LEN       = 38,     /**< inquire length of concat face set dist factor list*/
00132     EX_INQ_FACE_PROP       = 39,     /**< inquire number of properties stored per face block */
00133     EX_INQ_FS_PROP         = 40,     /**< inquire number of properties stored per face set */
00134     EX_INQ_ELEM_SETS       = 41,     /**< inquire number of element sets */
00135     EX_INQ_ELS_LEN         = 42,     /**< inquire length of concat element set element list       */
00136     EX_INQ_ELS_DF_LEN      = 43,     /**< inquire length of concat element set dist factor list*/
00137     EX_INQ_ELS_PROP        = 44,     /**< inquire number of properties stored per elem set      */
00138     EX_INQ_EDGE_MAP        = 45,     /**< inquire number of edge maps                     */
00139     EX_INQ_FACE_MAP        = 46,     /**< inquire number of face maps                     */
00140     EX_INQ_COORD_FRAMES    = 47,     /**< inquire number of coordinate frames */
00141     EX_INQ_INVALID         = -1};
00142 
00143   typedef enum ex_inquiry ex_inquiry;
00144   
00145   /*   properties               */
00146   enum ex_entity_type {
00147     EX_NODAL       = 14,          /**< nodal "block" for variables*/
00148     EX_NODE_BLOCK  = 14,          /**< alias for EX_NODAL         */
00149     EX_NODE_SET    =  2,          /**< node set property code     */
00150     EX_EDGE_BLOCK  =  6,          /**< edge block property code   */
00151     EX_EDGE_SET    =  7,          /**< edge set property code     */
00152     EX_FACE_BLOCK  =  8,          /**< face block property code   */
00153     EX_FACE_SET    =  9,          /**< face set property code     */
00154     EX_ELEM_BLOCK  =  1,          /**< element block property code*/
00155     EX_ELEM_SET    = 10,          /**< face set property code     */
00156     
00157     EX_SIDE_SET    =  3,          /**< side set property code     */
00158     
00159     EX_ELEM_MAP    =  4,          /**< element map property code  */
00160     EX_NODE_MAP    =  5,          /**< node map property code     */
00161     EX_EDGE_MAP    = 11,          /**< edge map property code     */
00162     EX_FACE_MAP    = 12,          /**< face map property code     */
00163     
00164     EX_GLOBAL      = 13,          /**< global "block" for variables*/
00165     EX_INVALID     = -1};             
00166   typedef enum ex_entity_type ex_entity_type;
00167   
00168   /**
00169    * ex_opts() function codes - codes are OR'ed into exopts
00170    */
00171   enum ex_options {
00172     EX_DEFAULT  = 0,
00173     EX_VERBOSE  = 1,  /**< verbose mode message flag   */
00174     EX_DEBUG    = 2,  /**< debug mode def             */
00175     EX_ABORT    = 4   /**< abort mode flag def        */
00176   };
00177   typedef enum ex_options ex_options;
00178   
00179   /**
00180    * \defgroup StringLengths maximum string lengths;
00181    * constants that are used as netcdf dimensions must be of type long
00182    * @{ 
00183    */
00184   /** Maximum length of an entity name, attribute name, variable name,
00185       QA record, element type name */
00186 #define MAX_STR_LENGTH          32L 
00187   /** Maximum length of the database title or an information record */
00188 #define MAX_LINE_LENGTH         80L
00189   /** Maximum length of an error message passed to ex_err() function. Typically, internal use only */
00190 #define MAX_ERR_LENGTH          256
00191   /* @} */
00192 
00193 #ifndef EXODUS_EXPORT
00194 #define EXODUS_EXPORT extern
00195 #endif /* EXODUS_EXPORT */
00196 
00197   /* routines for file initialization i/o */
00198   EXODUS_EXPORT int ex_close (int exoid);
00199   EXODUS_EXPORT int ex_cvt_nodes_to_sides(int exoid, int *num_elem_per_set,
00200                                           int *num_nodes_per_set, int *side_sets_elem_index,
00201                                           int *side_sets_node_index, int *side_sets_elem_list,
00202                                           int *side_sets_node_list, int *side_sets_side_list);
00203   EXODUS_EXPORT int ex_copy (int in_exoid, int out_exoid);
00204 #define ex_create(path, mode, comp_ws, io_ws) ex_create_int(path, mode, comp_ws, io_ws, EX_API_VERS_NODOT)  
00205   EXODUS_EXPORT int ex_create_int (const char *path, int cmode, int *comp_ws, int *io_ws, int my_version);
00206   EXODUS_EXPORT int ex_get_all_times (int   exoid, void *time_values);
00207   EXODUS_EXPORT int ex_get_concat_node_sets (int   exoid,
00208                                              int  *node_set_ids,
00209                                              int  *num_nodes_per_set, 
00210                                              int  *num_df_per_set, 
00211                                              int  *node_sets_node_index,
00212                                              int  *node_sets_df_index,
00213                                              int  *node_sets_node_list, 
00214                                              void *node_sets_dist_fact);
00215   EXODUS_EXPORT int ex_get_coord_names (int    exoid,
00216                                         char **coord_names);
00217   EXODUS_EXPORT int ex_get_coord (int exoid,
00218                                   void *x_coor,
00219                                   void *y_coor,
00220                                   void *z_coor);
00221   EXODUS_EXPORT int ex_get_n_coord (int exoid,
00222                                     int start_node_num,
00223                                     int num_nodes,
00224                                     void *x_coor,
00225                                     void *y_coor,
00226                                     void *z_coor);
00227   EXODUS_EXPORT int ex_get_concat_side_sets (int   exoid,
00228                                              int  *side_set_ids,
00229                                              int  *num_elem_per_set,
00230                                              int  *num_dist_per_set,
00231                                              int  *side_sets_elem_index,
00232                                              int  *side_sets_dist_index,
00233                                              int  *side_sets_elem_list,
00234                                              int  *side_sets_side_list,
00235                                              void *side_sets_dist_fact);
00236   EXODUS_EXPORT int ex_get_elem_attr_names (int   exoid,
00237                                             int   elem_blk_id,
00238                                             char **names);
00239   EXODUS_EXPORT int ex_get_elem_attr (int   exoid,
00240                                       int   elem_blk_id,
00241                                       void *attrib);
00242   EXODUS_EXPORT int ex_get_ids (int  exoid, ex_entity_type obj_type, int *ids);
00243   EXODUS_EXPORT int ex_get_elem_blk_ids (int  exoid, int *ids);
00244   EXODUS_EXPORT int ex_get_elem_block (int   exoid,
00245                                        int   elem_blk_id,
00246                                        char *elem_type,
00247                                        int  *num_elem_this_blk, 
00248                                        int  *num_nodes_per_elem,
00249                                        int  *num_attr);
00250 
00251   EXODUS_EXPORT int ex_get_elem_conn (int   exoid,
00252                                       int   elem_blk_id,
00253                                       int  *connect);
00254 
00255   EXODUS_EXPORT int ex_get_elem_map (int   exoid,
00256                                      int   map_id,
00257                                      int  *elem_map);
00258   EXODUS_EXPORT int ex_get_elem_num_map (int  exoid,
00259                                          int *elem_map);
00260   EXODUS_EXPORT int ex_get_elem_var (int   exoid,
00261                                      int   time_step,
00262                                      int   elem_var_index,
00263                                      int   elem_blk_id, 
00264                                      int   num_elem_this_blk,
00265                                      void *elem_var_vals);
00266   EXODUS_EXPORT int ex_get_elem_varid (int  exoid,
00267                                        int *varid);
00268   EXODUS_EXPORT int ex_get_elem_var_time (int   exoid,
00269                                           int   elem_var_index,
00270                                           int   elem_number,
00271                                           int   beg_time_step, 
00272                                           int   end_time_step,
00273                                           void *elem_var_vals);
00274   EXODUS_EXPORT int ex_get_coordinate_frames(int exoid, int *nframes, int *cf_ids,
00275                                              void* pt_coordinates, char* tags);
00276 
00277   EXODUS_EXPORT int ex_get_glob_vars (int   exoid,
00278                                       int   time_step,
00279                                       int   num_glob_vars,
00280                                       void *glob_var_vals);
00281 
00282   EXODUS_EXPORT int ex_get_glob_var_time (int   exoid,
00283                                           int   glob_var_index,
00284                                           int   beg_time_step,
00285                                           int   end_time_step,
00286                                           void *glob_var_vals);
00287 
00288   EXODUS_EXPORT int ex_get_info (int exoid, char **info);
00289 
00290   EXODUS_EXPORT int ex_get_init (int   exoid,
00291                                  char *title,
00292                                  int  *num_dim,
00293                                  int  *num_nodes,
00294                                  int  *num_elem, 
00295                                  int  *num_elem_blk,
00296                                  int  *num_node_sets,
00297                                  int  *num_side_sets);
00298 
00299   EXODUS_EXPORT int ex_get_map (int  exoid, int *elem_map);
00300 
00301   EXODUS_EXPORT int ex_get_map_param (int   exoid,
00302                                       int  *num_node_maps,
00303                                       int  *num_elem_maps);
00304 
00305   EXODUS_EXPORT int ex_get_name (int   exoid,
00306                                  ex_entity_type   obj_type,
00307                                  int   entity_id, 
00308                                  char *name);
00309 
00310   EXODUS_EXPORT int ex_get_names (int exoid,
00311                                   ex_entity_type obj_type,
00312                                   char **names);
00313 
00314   EXODUS_EXPORT int ex_get_node_map (int   exoid,
00315                                      int   map_id,
00316                                      int  *node_map);
00317 
00318   EXODUS_EXPORT int ex_get_node_num_map (int  exoid,
00319                                          int *node_map);
00320 
00321   EXODUS_EXPORT int ex_get_node_set_param (int  exoid,
00322                                            int  node_set_id,
00323                                            int *num_nodes_in_set,
00324                                            int *num_df_in_set);
00325 
00326   EXODUS_EXPORT int ex_get_node_set (int   exoid,
00327                                      int   node_set_id,
00328                                      int  *node_set_node_list);
00329 
00330   EXODUS_EXPORT int ex_get_node_set_dist_fact  (int   exoid,
00331                                                 int   node_set_id,
00332                                                 void *node_set_dist_fact);
00333 
00334   EXODUS_EXPORT int ex_get_node_set_ids (int  exoid,
00335                                          int *ids);
00336 
00337   EXODUS_EXPORT int ex_get_nset_var_tab (int  exoid,
00338                                          int  num_nodesets,
00339                                          int  num_nset_var,
00340                                          int *nset_var_tab);
00341 
00342   EXODUS_EXPORT int ex_get_nset_var (int   exoid,
00343                                      int   time_step,
00344                                      int   nset_var_index,
00345                                      int   nset_id, 
00346                                      int   num_node_this_nset,
00347                                      void *nset_var_vals);
00348 
00349   EXODUS_EXPORT int ex_get_nset_varid (int  exoid,
00350                                        int *varid);
00351 
00352   EXODUS_EXPORT int ex_get_nodal_var (int   exoid,
00353                                       int   time_step,
00354                                       int   nodal_var_index,
00355                                       int   num_nodes, 
00356                                       void *nodal_var_vals);
00357 
00358   EXODUS_EXPORT int ex_get_n_nodal_var (int   exoid,
00359                                         int   time_step,
00360                                         int   nodal_var_index,
00361                                         int   start_node, 
00362                                         int   num_nodes, 
00363                                         void *nodal_var_vals);
00364 
00365   EXODUS_EXPORT int ex_get_nodal_varid(int exoid, int *varid);
00366 
00367   EXODUS_EXPORT int ex_get_nodal_var_time (int   exoid,
00368                                            int   nodal_var_index,
00369                                            int   node_number,
00370                                            int   beg_time_step, 
00371                                            int   end_time_step,
00372                                            void *nodal_var_vals);
00373 
00374   EXODUS_EXPORT int ex_get_nodal_varid_var(int   exoid,
00375                                            int   time_step,
00376                                            int   nodal_var_index,
00377                                            int   num_nodes, 
00378                                            int   varid,
00379                                            void *nodal_var_vals);
00380 
00381   EXODUS_EXPORT int ex_get_one_elem_attr (int   exoid,
00382                                           int   elem_blk_id,
00383                                           int   attrib_index,
00384                                           void *attrib);
00385 
00386   EXODUS_EXPORT int ex_get_prop_array (int   exoid,
00387                                        ex_entity_type obj_type,
00388                                        const char *prop_name,
00389                                        int  *values);
00390 
00391   EXODUS_EXPORT int ex_get_prop (int   exoid,
00392                                  ex_entity_type obj_type,
00393                                  int   obj_id,
00394                                  const char *prop_name,
00395                                  int  *value);
00396 
00397   EXODUS_EXPORT int ex_get_partial_elem_map (int   exoid,
00398                                              int   map_id,
00399                                              int ent_start,
00400                                              int ent_count, 
00401                                              int  *elem_map);
00402 
00403   EXODUS_EXPORT int ex_get_prop_names (int    exoid,
00404                                        ex_entity_type obj_type,
00405                                        char **prop_names);
00406 
00407   EXODUS_EXPORT int ex_get_qa (int exoid,
00408                                char *qa_record[][4]);
00409   EXODUS_EXPORT int ex_get_side_set_node_list_len(int exoid,
00410                                                   int side_set_id,
00411                                                   int *side_set_node_list_len);
00412   EXODUS_EXPORT int ex_get_side_set_param (int  exoid,
00413                                            int  side_set_id,
00414                                            int *num_side_in_set, 
00415                                            int *num_dist_fact_in_set);
00416   EXODUS_EXPORT int ex_get_side_set (int   exoid,
00417                                      int   side_set_id,
00418                                      int  *side_set_elem_list, 
00419                                      int  *side_set_side_list);
00420   EXODUS_EXPORT int ex_get_side_set_node_count(int exoid,
00421                                                int side_set_id,
00422                                                int *side_set_node_cnt_list);
00423   EXODUS_EXPORT int ex_get_concat_side_set_node_count(int exoid,
00424                                                       int *side_set_node_cnt_list);
00425   EXODUS_EXPORT int ex_get_side_set_dist_fact (int   exoid,
00426                                                int   side_set_id,
00427                                                void *side_set_dist_fact);
00428   EXODUS_EXPORT int ex_get_side_set_ids (int  exoid,
00429                                          int *ids);
00430   EXODUS_EXPORT int ex_get_side_set_node_list(int exoid,
00431                                               int side_set_id,
00432                                               int *side_set_node_cnt_list,
00433                                               int *side_set_node_list);
00434   EXODUS_EXPORT int ex_get_sset_var (int   exoid,
00435                                      int   time_step,
00436                                      int   sset_var_index,
00437                                      int   sset_id, 
00438                                      int   num_side_this_sset,
00439                                      void *sset_var_vals);
00440 
00441   EXODUS_EXPORT int ex_get_sset_var_tab (int  exoid,
00442                                          int  num_sidesets,
00443                                          int  num_sset_var,
00444                                          int *sset_var_tab);
00445   EXODUS_EXPORT int ex_get_sset_varid (int  exoid,
00446                                        int *varid);
00447   EXODUS_EXPORT int ex_get_time (int   exoid,
00448                                  int   time_step,
00449                                  void *time_value);
00450   EXODUS_EXPORT int ex_get_variable_names (int   exoid,
00451                                            ex_entity_type obj_type,
00452                                            int   num_vars,
00453                                            char *var_names[]);
00454   EXODUS_EXPORT int ex_get_var_names (int   exoid,
00455                                       const char *var_type,
00456                                       int   num_vars,
00457                                       char *var_names[]);
00458   EXODUS_EXPORT int ex_get_varid (int  exoid, ex_entity_type obj_type,
00459                                   int *varid_arr);
00460   EXODUS_EXPORT int ex_get_variable_name (int   exoid,
00461                                           ex_entity_type obj_type,
00462                                           int   var_num,
00463                                           char *var_name);
00464   EXODUS_EXPORT int ex_get_var_name (int   exoid,
00465                                      const char *var_type,
00466                                      int   var_num,
00467                                      char *var_name);
00468   EXODUS_EXPORT int ex_get_var_param (int   exoid,
00469                                       const char *var_type,
00470                                       int  *num_vars);
00471   EXODUS_EXPORT int ex_get_variable_param (int   exoid,
00472                                            ex_entity_type obj_type,
00473                                            int  *num_vars);
00474 
00475   EXODUS_EXPORT int ex_get_object_truth_vector (int  exoid,
00476                                                 ex_entity_type var_type,
00477                                                 int  object_id,
00478                                                 int  num_var,
00479                                                 int *var_vector);
00480   EXODUS_EXPORT int ex_get_truth_table (int  exoid,
00481                                         ex_entity_type obj_type,
00482                                         int  num_blk,
00483                                         int  num_var,
00484                                         int *var_tab);
00485   EXODUS_EXPORT int ex_get_var_tab (int  exoid,
00486                                     const char *var_type,
00487                                     int  num_blk,
00488                                     int  num_var,
00489                                     int *var_tab);
00490   
00491   EXODUS_EXPORT int ex_get_elem_var_tab (int  exoid,
00492                                          int  num_elem_blk,
00493                                          int  num_elem_var,
00494                                          int *elem_var_tab);
00495 
00496 #define ex_open(path, mode, comp_ws, io_ws, version) ex_open_int(path, mode, comp_ws, io_ws, version, EX_API_VERS_NODOT)  
00497   EXODUS_EXPORT int ex_open_int (const char  *path,
00498                                  int    mode,
00499                                  int   *comp_ws,
00500                                  int   *io_ws,
00501                                  float *version, int my_version);
00502   
00503   EXODUS_EXPORT int ex_put_attr_param (int   exoid,
00504                                        ex_entity_type obj_type,
00505                                        int   obj_id,
00506                                        int   num_attrs);
00507 
00508   EXODUS_EXPORT int ex_get_attr_param (int   exoid,
00509                                        ex_entity_type obj_type,
00510                                        int   obj_id,
00511                                        int   *num_attrs);
00512 
00513   EXODUS_EXPORT int ex_put_all_var_param (int exoid,
00514                                           int num_g, int num_n,
00515                                           int num_e, int *elem_var_tab,
00516                                           int num_m, int *nset_var_tab,
00517                                           int num_s, int *sset_var_tab);
00518 
00519   EXODUS_EXPORT int ex_put_concat_elem_block (int    exoid,
00520                                               const int*   elem_blk_id,
00521                                               char *elem_type[],
00522                                               const int*   num_elem_this_blk,
00523                                               const int*   num_nodes_per_elem,
00524                                               const int*   num_attr,
00525                                               int    define_maps);
00526 
00527   EXODUS_EXPORT int ex_put_concat_node_sets (int   exoid,
00528                                              int  *node_set_ids,
00529                                              int  *num_nodes_per_set,
00530                                              int  *num_dist_per_set,
00531                                              int  *node_sets_node_index,
00532                                              int  *node_sets_df_index,
00533                                              int  *node_sets_node_list,
00534                                              void *node_sets_dist_fact);
00535 
00536   EXODUS_EXPORT int ex_put_concat_side_sets (int   exoid,
00537                                              int  *side_set_ids,
00538                                              int  *num_elem_per_set,
00539                                              int  *num_dist_per_set,
00540                                              int  *side_sets_elem_index,
00541                                              int  *side_sets_dist_index,
00542                                              int  *side_sets_elem_list,
00543                                              int  *side_sets_side_list,
00544                                              void *side_sets_dist_fact);
00545 
00546   EXODUS_EXPORT int ex_put_concat_var_param (int exoid, int num_g, int num_n,
00547                                              int num_e, int num_elem_blk, int  *elem_var_tab);
00548   
00549   EXODUS_EXPORT int ex_put_coord_names (int   exoid,
00550                                         char *coord_names[]);
00551   EXODUS_EXPORT int ex_put_coord (int   exoid,
00552                                   const void *x_coor,
00553                                   const void *y_coor,
00554                                   const void *z_coor);
00555   EXODUS_EXPORT int ex_put_n_coord (int   exoid,
00556                                     int   start_node_num,
00557                                     int   num_nodes,
00558                                     const void *x_coor,
00559                                     const void *y_coor,
00560                                     const void *z_coor);
00561   EXODUS_EXPORT int ex_put_elem_attr_names(int   exoid,
00562                                            int   elem_blk_id,
00563                                            char *names[]);
00564   EXODUS_EXPORT int ex_put_elem_attr (int   exoid,
00565                                       int   elem_blk_id,
00566                                       const void *attrib);
00567   EXODUS_EXPORT int ex_put_elem_block (int   exoid,
00568                                        int   elem_blk_id,
00569                                        const char *elem_type,
00570                                        int   num_elem_this_blk,
00571                                        int   num_nodes_per_elem,
00572                                        int   num_attr);
00573 
00574   EXODUS_EXPORT int ex_put_elem_conn (int   exoid,
00575                                       int   elem_blk_id,
00576                                       const int  *connect);
00577   EXODUS_EXPORT int ex_put_elem_map (int exoid,
00578                                      int map_id,
00579                                      const int *elem_map);
00580   EXODUS_EXPORT int ex_put_id_map(int exoid,
00581                                   ex_entity_type obj_type,
00582                                   const int *map);
00583   
00584   EXODUS_EXPORT int ex_get_id_map(int exoid,
00585                                   ex_entity_type obj_type,
00586                                   int *map);
00587   
00588   EXODUS_EXPORT int ex_put_elem_num_map (int  exoid,
00589                                          const int *elem_map);
00590   EXODUS_EXPORT int ex_put_elem_var (int   exoid,
00591                                      int   time_step,
00592                                      int   elem_var_index,
00593                                      int   elem_blk_id,
00594                                      int   num_elem_this_blk,
00595                                      const void *elem_var_vals);
00596 
00597   EXODUS_EXPORT int ex_put_coordinate_frames(int exoid, int nframes, const int cf_ids[], 
00598                                              void* pt_coordinates, const char* tags);
00599   EXODUS_EXPORT int ex_put_glob_vars (int   exoid,
00600                                       int   time_step,
00601                                       int   num_glob_vars,
00602                                       const void *glob_var_vals);
00603   EXODUS_EXPORT int ex_put_info (int   exoid, 
00604                                  int   num_info,
00605                                  char *info[]);
00606   EXODUS_EXPORT int ex_put_init (int   exoid,
00607                                  const char *title,
00608                                  int   num_dim,
00609                                  int   num_nodes,
00610                                  int   num_elem,
00611                                  int   num_elem_blk,
00612                                  int   num_node_sets,
00613                                  int   num_side_sets);
00614 
00615   EXODUS_EXPORT int ex_put_map (int  exoid,
00616                                 const int *elem_map);
00617   EXODUS_EXPORT int ex_put_map_param (int   exoid,
00618                                       int   num_node_maps,
00619                                       int   num_elem_maps);
00620   EXODUS_EXPORT int ex_put_name (int   exoid,
00621                                  ex_entity_type obj_type,
00622                                  int   entity_id,
00623                                  const char *name);
00624   EXODUS_EXPORT int ex_put_names (int   exoid,
00625                                   ex_entity_type obj_type,
00626                                   char *names[]);
00627   EXODUS_EXPORT int ex_put_nodal_var (int   exoid,
00628                                       int   time_step,
00629                                       int   nodal_var_index,
00630                                       int   num_nodes, 
00631                                       const void *nodal_var_vals);
00632 
00633   EXODUS_EXPORT int ex_put_n_nodal_var (int   exoid,
00634                                         int   time_step,
00635                                         int   nodal_var_index,
00636                                         int   start_node, 
00637                                         int   num_nodes, 
00638                                         const void *nodal_var_vals);
00639 
00640   EXODUS_EXPORT int ex_put_nodal_varid_var(int   exoid,
00641                                            int   time_step,
00642                                            int   nodal_var_index,
00643                                            int   num_nodes, 
00644                                            int   varid,
00645                                            const void *nodal_var_vals);
00646 
00647   EXODUS_EXPORT int ex_put_node_map (int exoid,
00648                                      int map_id,
00649                                      const int *node_map);
00650   EXODUS_EXPORT int ex_put_node_num_map (int  exoid,
00651                                          const int *node_map);
00652   EXODUS_EXPORT int ex_put_node_set_param (int exoid,
00653                                            int node_set_id,
00654                                            int num_nodes_in_set,
00655                                            int num_dist_in_set);
00656   EXODUS_EXPORT int ex_put_node_set (int   exoid,
00657                                      int   node_set_id,
00658                                      const int  *node_set_node_list);
00659   EXODUS_EXPORT int ex_put_node_set_dist_fact  (int   exoid,
00660                                                 int   node_set_id,
00661                                                 const void *node_set_dist_fact);
00662   EXODUS_EXPORT int ex_put_nset_var (int   exoid,
00663                                      int   time_step,
00664                                      int   nset_var_index,
00665                                      int   nset_id,
00666                                      int   num_nodes_this_nset,
00667                                      const void *nset_var_vals);
00668 
00669   EXODUS_EXPORT int ex_put_nset_var_tab (int  exoid,
00670                                          int  num_nset,
00671                                          int  num_nset_var,
00672                                          int *nset_var_tab);
00673   EXODUS_EXPORT int ex_put_one_elem_attr (int   exoid,
00674                                           int   elem_blk_id,
00675                                           int   attrib_index,
00676                                           const void *attrib);
00677 
00678   EXODUS_EXPORT int ex_put_n_one_attr( int   exoid,
00679                                        ex_entity_type obj_type,
00680                                        int   obj_id,
00681                                        int   start_num,
00682                                        int   num_ent,
00683                                        int   attrib_index,
00684                                        const void *attrib );
00685 
00686   EXODUS_EXPORT int ex_put_partial_elem_map (int   exoid,
00687                                              int   map_id,
00688                                              int ent_start,
00689                                              int ent_count, 
00690                                              const int  *elem_map);
00691 
00692   EXODUS_EXPORT int ex_put_partial_set_dist_fact (int   exoid,
00693                                                   ex_entity_type set_type,
00694                                                   int   set_id,
00695                                                   int   offset,
00696                                                   int   num_to_put,
00697                                                   const void *set_dist_fact);
00698 
00699   EXODUS_EXPORT int ex_put_prop (int   exoid,
00700                                  ex_entity_type obj_type,
00701                                  int   obj_id,
00702                                  const char *prop_name,
00703                                  int   value);
00704 
00705   EXODUS_EXPORT int ex_put_prop_array (int   exoid,
00706                                        ex_entity_type obj_type,
00707                                        const char *prop_name,
00708                                        const int  *values);
00709   EXODUS_EXPORT int ex_put_prop_names (int   exoid,
00710                                        ex_entity_type obj_type,
00711                                        int   num_props,
00712                                        char **prop_names);
00713   EXODUS_EXPORT int ex_put_qa (int   exoid,
00714                                int   num_qa_records,
00715                                char* qa_record[][4]);
00716   EXODUS_EXPORT int ex_put_side_set_param (int exoid,
00717                                            int side_set_id,
00718                                            int num_side_in_set,
00719                                            int num_dist_fact_in_set);
00720   EXODUS_EXPORT int ex_put_side_set (int   exoid,
00721                                      int   side_set_id,
00722                                      const int  *side_set_elem_list,
00723                                      const int  *side_set_side_list);
00724   EXODUS_EXPORT int ex_put_side_set_dist_fact (int   exoid,
00725                                                int   side_set_id,
00726                                                const void *side_set_dist_fact);
00727   EXODUS_EXPORT int ex_put_sset_var (int   exoid,
00728                                      int   time_step,
00729                                      int   sset_var_index,
00730                                      int   sset_id,
00731                                      int   num_faces_this_sset,
00732                                      const void *sset_var_vals);
00733 
00734   EXODUS_EXPORT int ex_put_sset_var_tab (int  exoid,
00735                                          int  num_sset,
00736                                          int  num_sset_var,
00737                                          int *sset_var_tab);
00738   EXODUS_EXPORT int ex_put_time (int   exoid,
00739                                  int   time_step,
00740                                  const void *time_value);
00741   EXODUS_EXPORT int ex_put_varid_var(int   exoid,
00742                                      int   time_step,
00743                                      int   varid,
00744                                      int   num_entity,
00745                                      const void *var_vals);
00746 
00747   EXODUS_EXPORT int ex_put_var_names (int   exoid,
00748                                       const char *var_type,
00749                                       int   num_vars,
00750                                       char *var_names[]);
00751   EXODUS_EXPORT int ex_put_var_name (int   exoid,
00752                                      const char *var_type,
00753                                      int   var_num,
00754                                      const char *var_name);
00755   EXODUS_EXPORT int ex_put_var_param (int   exoid,
00756                                       const char *var_type,
00757                                       int   num_vars);
00758   EXODUS_EXPORT int ex_put_variable_names (int   exoid,
00759                                            ex_entity_type obj_type,
00760                                            int   num_vars,
00761                                            char* var_names[]);
00762   EXODUS_EXPORT int ex_put_variable_name (int   exoid,
00763                                           ex_entity_type obj_type,
00764                                           int   var_num,
00765                                           const char *var_name);
00766   EXODUS_EXPORT int ex_put_variable_param (int exoid,
00767                                            ex_entity_type obj_type,
00768                                            int num_vars);
00769   EXODUS_EXPORT int ex_put_truth_table (int  exoid,
00770                                         ex_entity_type obj_type,
00771                                         int  num_blk,
00772                                         int  num_var,
00773                                         int *var_tab);
00774   EXODUS_EXPORT int ex_put_var_tab (int  exoid,
00775                                     const char *var_type,
00776                                     int  num_blk,
00777                                     int  num_var,
00778                                     int *var_tab);
00779   
00780   EXODUS_EXPORT int ex_put_elem_var_tab (int  exoid,
00781                                          int  num_elem_blk,
00782                                          int  num_elem_var,
00783                                          int *elem_var_tab);
00784   EXODUS_EXPORT int ex_update (int exoid);
00785   EXODUS_EXPORT int ex_get_num_props (int exoid, ex_entity_type obj_type);
00786   EXODUS_EXPORT int ex_large_model(int exoid);
00787   EXODUS_EXPORT size_t ex_header_size(int exoid);
00788 
00789   EXODUS_EXPORT void ex_err(const char*, const char*, int);
00790   EXODUS_EXPORT void ex_get_err(const char** msg, const char** func, int* errcode);
00791   EXODUS_EXPORT void ex_opts(int options);
00792   EXODUS_EXPORT int ex_inquire(int exoid, int inquiry, int*, void*, char*);
00793   EXODUS_EXPORT int ex_inquire_int(int exoid, int inquiry);
00794 
00795   EXODUS_EXPORT int ex_get_varid_var(int   exoid,
00796                                      int   time_step,
00797                                      int   varid,
00798                                      int   num_entity,
00799                                      void *var_vals);
00800   
00801   /* ERROR CODE DEFINITIONS AND STORAGE                                       */
00802   extern int exerrval;     /**< shared error return value                */
00803   extern int exoptval;     /**< error reporting flag (default is quiet)  */
00804   
00805   char* ex_name_of_object(ex_entity_type obj_type);
00806   ex_entity_type ex_var_type_to_ex_entity_type(char var_type);
00807 
00808 #ifdef __cplusplus
00809 }                               /* close brackets on extern "C" declaration */
00810 #endif
00811 
00812 /**
00813  * \defgroup ErrorReturnCodes Exodus error return codes - exerrval return values
00814  * @{
00815  */
00816 #define EX_MEMFAIL       1000   /**< memory allocation failure flag def       */
00817 #define EX_BADFILEMODE   1001   /**< bad file mode def                        */
00818 #define EX_BADFILEID     1002   /**< bad file id def                          */
00819 #define EX_WRONGFILETYPE 1003   /**< wrong file type for function             */
00820 #define EX_LOOKUPFAIL    1004   /**< id table lookup failed                   */
00821 #define EX_BADPARAM      1005   /**< bad parameter passed                     */
00822 #define EX_MSG          -1000   /**< message print code - no error implied    */
00823 #define EX_PRTLASTMSG   -1001   /**< print last error message msg code        */
00824 #define EX_NULLENTITY   -1006   /**< null entity found                        */
00825 /* @} */
00826 
00827 #include "exodusII_ext.h"
00828 #endif
00829