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