MED fichier

MEDfilterClose.c
Aller à la documentation de ce fichier.
1 /* This file is part of MED.
2 *
3 * COPYRIGHT (C) 1999 - 2021 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
35 med_err MEDfilterClose( med_filter * const filter ) {
36
37 med_err _ret =-1;
38 int _i=0;
39 med_idt _memspace[MED_MAX_FILTER_SPACES]=MED_MAX_FILTER_SPACES_INIT;
40 med_idt _diskspace[MED_MAX_FILTER_SPACES]=MED_MAX_FILTER_SPACES_INIT;
41
42 for (_i=0; _i < (*filter).nspaces; ++_i) {
43 if ( H5Sclose((*filter).memspace[_i]) < 0 ) {
44 MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATASPACE, MED_ERR_ID_MSG );
45 ISCRUTE_id((*filter).memspace[_i]);
46 ISCRUTE_int(_i);
47 ISCRUTE((*filter).nspaces);
48 goto ERROR;
49 } else
50 (*filter).memspace[_i]=0;
51
52 if ( H5Sclose((*filter).diskspace[_i]) < 0 ) {
53 MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATASPACE, MED_ERR_ID_MSG );
54 ISCRUTE_id((*filter).diskspace[_i]);
55 ISCRUTE_int(_i);
56 ISCRUTE((*filter).nspaces);
57 goto ERROR;
58 } else
59 (*filter).diskspace[_i]=0;
60 }
61
62
63 (*filter).nspaces=0;
64 /*Le champ filterarray23v30 est uniquement utilisé dans _MEDfilterEntityCr236
65 pour les besoins de _MEDmeshAdvancedRd236, il n'est donc pas intégré
66 à la signature des MED*Filter. */
67 if ((*filter).filterarray23v30) {
68 free((*filter).filterarray23v30);
69 (*filter).filterarray23v30 = NULL;
70 }
71
72 if ( _MEDsetFilter(MED_MAX_FILTER_SPACES,_memspace, _diskspace,
73 0, 0, 0, 0, MED_UNDEF_INTERLACE,
74 MED_NO_FILTER_SIZE, MED_NO_PROFILE_SIZE,
75 MED_UNDEF_STMODE, MED_NO_PROFILE, filter ) <0) {
76 MED_ERR_(_ret,MED_ERR_INIT,MED_ERR_FILTER,"");
77 goto ERROR;
78 }
79 (*filter).nspaces=0;
80
81 _ret = 0;
82 ERROR:
83 return _ret;
84 }
MED_MAX_FILTER_SPACES
#define MED_MAX_FILTER_SPACES
Definition: med.h:349
med_filter
Filtre de sélection.
Definition: med.h:355
ISCRUTE_id
#define ISCRUTE_id(entier)
Definition: med_utils.h:319
ISCRUTE_int
#define ISCRUTE_int(entier)
Definition: med_utils.h:314
med_idt
hid_t med_idt
Definition: med.h:331
MED_ERR_
#define MED_ERR_(rt, r1, r2, r3)
Definition: med_utils.h:160
MED_ERR_DATASPACE
#define MED_ERR_DATASPACE
Definition: med_err.h:108
MED_UNDEF_STMODE
Definition: med.h:108
med_err
herr_t med_err
Definition: med.h:332
MED_ERR_ID_MSG
#define MED_ERR_ID_MSG
Definition: med_err.h:188
MED_ERR_CLOSE
#define MED_ERR_CLOSE
Definition: med_err.h:30
MED_ERR_FILTER
#define MED_ERR_FILTER
Definition: med_err.h:93
MED_NO_FILTER_SIZE
#define MED_NO_FILTER_SIZE
Definition: med.h:379
med.h
ISCRUTE
#define ISCRUTE(entier)
Definition: med_utils.h:313
_MEDsetFilter
MEDC_EXPORT med_err _MEDsetFilter(const med_int nspaces, const med_idt *const memspace, const med_idt *const diskspace, const med_int nentity, const med_int nvaluesperentity, const med_int nconstituentpervalue, const med_int constituentselect, const med_switch_mode switchmode, const med_int filterarraysize, const med_int profilearraysize, const med_storage_mode storagemode, const char *const profilename, med_filter *const filter)
MEDfilterClose
med_err MEDfilterClose(med_filter *const filter)
Désalloue les ressources hdf détenues par un filtre.
Definition: MEDfilterClose.c:35
MED_UNDEF_INTERLACE
Definition: med.h:100
MED_NO_PROFILE_SIZE
#define MED_NO_PROFILE_SIZE
Definition: med.h:307
med_outils.h
med_config.h
MED_NO_PROFILE
#define MED_NO_PROFILE
Definition: med.h:281
MED_MAX_FILTER_SPACES_INIT
#define MED_MAX_FILTER_SPACES_INIT
Definition: med.h:350
MED_ERR_INIT
#define MED_ERR_INIT
Definition: med_err.h:33