1 /*  This file is part of MED.
2  *
3  *  COPYRIGHT (C) 1999 - 2019  EDF R&D, CEA/DEN
4  *  MED is free software: you can redistribute it and/or modify
5  *  it under the terms of the GNU Lesser General Public License as published by
6  *  the Free Software Foundation, either version 3 of the License, or
7  *  (at your option) any later version.
8  *
9  *  MED is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU Lesser General Public License for more details.
13  *
14  *  You should have received a copy of the GNU Lesser General Public License
15  *  along with MED.  If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 
19 #include <med.h>
20 #include <med_config.h>
21 #include <med_outils.h>
22 
23 #include <stdlib.h>
24 #include <string.h>
25 
26 /**\ingroup MEDstructElement
27   \brief \MEDstructElementInfoBrief
28   \param fid                   \fid
29   \param mit                    \mit
30   \param modelname             \modelname
31   \param mgeotype              \mgeotype
32   \param modeldim              \modeldim
33   \param supportmeshname       \supportmeshname
34   \param sentitytype           \sentitytype
35   \param snnode             \snnode
36   \param sncell             \sncell
37   \param sgeotype              \sgeotype
38   \param nconstantattribute \nconstantattribute
39   \param anyprofile            \anyprofile
40   \param nvariableattribute \nvariableattribute
41 
42   \return \error
43 
44   \details \MEDstructElementInfoDetails
45   \see MEDnStructElement
46   \sa  MEDstructElementInfo
47  */
48 
49 med_err
MEDstructElementInfo(const med_idt fid,const int mit,char * const modelname,med_geometry_type * const mgeotype,med_int * const modeldim,char * const supportmeshname,med_entity_type * const sentitytype,med_int * const snnode,med_int * const sncell,med_geometry_type * const sgeotype,med_int * const nconstantattribute,med_bool * const anyprofile,med_int * const nvariableattribute)50 MEDstructElementInfo(const med_idt             fid,
51 		     const int                 mit,
52 		     char *              const modelname,
53 		     med_geometry_type * const mgeotype,
54 		     med_int*            const modeldim,
55 		     char*               const supportmeshname,
56 		     med_entity_type*    const sentitytype,
57 		     med_int*            const snnode,
58 		     med_int*            const sncell,
59 		     med_geometry_type*  const sgeotype,
60 		     med_int*            const nconstantattribute,
61 		     med_bool*           const anyprofile,
62 		     med_int*            const nvariableattribute
63 			   )
64 {
65 
66   med_err  _ret=-1;
67   char     _path[MED_ELSTRUCT_GRP_SIZE+MED_NAME_SIZE+1]=MED_ELSTRUCT_GRP;
68   int      _num = mit -1;
69 
70   /*
71    * On inhibe le gestionnaire d'erreur HDF 5
72    */
73   _MEDmodeErreurVerrouiller();
74 
75   /*
76    * On recupere le nom de l'�l�ment de structure
77    */
78   if ( _MEDobjectGetName(fid, _path ,_num, modelname) < 0 ) {
79     MED_ERR_(_ret,MED_ERR_ACCESS,MED_ERR_DATAGROUP,_path);ISCRUTE_int(mit);
80     goto ERROR;
81   }
82   strcat(_path,modelname);
83 
84   if (
85       MEDstructElementInfoByName(fid,
86 				 modelname,
87 				 mgeotype,
88 				 modeldim,
89 				 supportmeshname,
90 				 sentitytype,
91 				 snnode,
92 				 sncell,
93 				 sgeotype,
94 				 nconstantattribute,
95 				 anyprofile,
96 				 nvariableattribute
97 				 ) < 0 ) {
98     MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,MED_ERR_STRUCT_MSG);
99     SSCRUTE(modelname);SSCRUTE(_path);SSCRUTE("MEDstructElementInfoByName");
100     goto ERROR;
101   }
102 
103   _ret = 0;
104 
105  ERROR:
106 
107   return _ret;
108 }
109