Salome HOME
merging the main trunk with the BrForComp branch to build a pre V3_0_1
[modules/med.git] / src / MEDMEM / MEDMEM_medimport_src.hxx
1 /*************************************************************************
2 * COPYRIGHT (C) 1999 - 2003  EDF R&D
3 * THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4 * IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE 
5 * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; 
6 * EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
7 *  
8 * THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9 * WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11 * LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12 *
13 * YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
14 * ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
15 * INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
16 *
17 *************************************************************************/
18 #ifndef IMPORT_HXX
19 #define IMPORT_HXX
20
21 #include "utilities.h"
22 #include "MEDMEM_STRING.hxx"
23 #include "MEDMEM_Exception.hxx"
24 // #include "MEDMEM_define.hxx"
25
26
27 /*
28   Med File V 2.2 attributes in the med_2_2 namespace
29 */
30
31 #undef MED_H
32
33 namespace med_2_2 {
34   extern "C" { 
35 #include <med.h>
36 #include <med_proto.h>
37 #include <med_hdfi.h>
38
39     /*
40       Med File V 2.2 attributes more addings to encapsulate the Med File V2_2
41       medimport utilitary
42     */
43
44 #define MED_NOM_INFOS "INFOS_GENERALES"
45 #define MED_NOM_MAJEUR "MAJ"
46 #define MED_NOM_MINEUR "MIN"
47 #define MED_NOM_RELEASE "REL"
48 #define MED_NOM_NOE "NOE"
49 #define MED_NOM_NBR "NBR"
50 #define MED_NOM_REP "REP"
51 #define MED_NOM_NOM "NOM"
52 #define MED_NOM_UNI "UNI"
53 #define MED_NOM_COO "COO"
54 #define MED_TAILLE_NOM_ENTITE 3
55 #define MED_NOM_MAI "MAI"
56 #define MED_NOM_NOD "NOD"
57 #define MED_TAILLE_FAS 5
58 #define MED_NOM_NUM "NUM"
59 #define MED_TAILLE_MAA 9
60 #define MED_MAA "/ENS_MAA/"
61 #define MED_NOM_DIM "DIM"
62 #define MED_NOM_DES "DES"
63 #define MED_NOM_TYP "TYP"
64 #define MED_NOM_PO1 "PO1"
65 #define MED_NOM_SE2 "SE2"
66 #define MED_NOM_SE3 "SE3"
67 #define MED_NOM_TR3 "TR3"
68 #define MED_NOM_TR6 "TR6"
69 #define MED_NOM_QU4 "QU4"
70 #define MED_NOM_QU8 "QU8"
71 #define MED_NOM_TE4 "TE4"
72 #define MED_NOM_T10 "T10"
73 #define MED_NOM_HE8 "HE8"
74 #define MED_NOM_H20 "H20"
75 #define MED_NOM_PE6 "PE6"
76 #define MED_NOM_P15 "P15"
77 #define MED_NOM_PY5 "PY5"
78 #define MED_NOM_P13 "P13"
79 #define MED_CHA "/CHA/"
80 #define MED_TAILLE_CHA 5
81 #define MED_NOM_NCO "NCO"
82 #define MED_NOM_PDT "PDT"
83 #define MED_NOM_NGA "NGA"
84 #define MED_NOM_GAU "GAU"
85 #define MED_NOM_PFL "PFL"
86 #define MED_NOM_CO  "CO"
87 #define MED_PROFILS "/PROFILS/"
88 #define MED_TAILLE_PROFILS 9 
89 #define MED_LIENS "/LIENS/"
90 #define MED_TAILLE_LIENS 7 
91   }
92 }
93
94 // namespace med_2_2 {
95 //   extern "C" {
96 // #include <med_hdfi.h>
97 // #include <med_misc.h>
98
99 // #define MED_NOM_MAJEUR "MAJ"
100 // #define MED_NOM_MINEUR "MIN"
101 // #define MED_NOM_RELEASE "REL"
102
103 // #define MED_NUM_MAJEUR 2
104 // #define MED_NUM_MINEUR 2
105 // #define MED_NUM_RELEASE 1
106
107 // #define MED_NOM_INFOS "INFOS_GENERALES"
108
109 // #define MED_NOM_DESCRIPTEUR "descripteur de fichier"
110 // #define MED_VERSION_ACTUELLE "2.2.1"
111 // #define HDF_VERSION_ACTUELLE "5-1.4.4"
112
113 // /* Noms des data sets ou attributs correspondant a des entites MED */
114 // #define MED_TAILLE_NOM_ENTITE 3
115 // #define MED_NOM_NUM "NUM"
116 // #define MED_NOM_NBR "NBR"
117 // #define MED_NOM_NOM "NOM"
118 // #define MED_NOM_UNV "UNV"
119 // #define MED_NOM_NNS "NNS"
120 // #define MED_NOM_NNM "NNM"
121 // #define MED_NOM_NNI "NNI"
122 // #define MED_NOM_GRO "GRO"
123 // #define MED_NOM_ATT "ATT"
124 // #define MED_NOM_NCO "NCO"
125 // #define MED_NOM_DIM "DIM"
126 // #define MED_NOM_ESP "ESP"
127 // #define MED_NOM_FAM "FAM"
128 // #define MED_NOM_IDE "IDE"
129 // #define MED_NOM_VAL "VAL"
130 // #define MED_NOM_DES "DES"
131 // #define MED_NOM_COR "COR"
132 // #define MED_NOM_DIM "DIM"
133 // #define MED_NOM_NOE "NOE"
134 // #define MED_NOM_COO "COO"
135 // #define MED_NOM_IN1 "IN1"
136 // #define MED_NOM_IN2 "IN2"
137 // #define MED_NOM_IN3 "IN3"
138 // #define MED_NOM_REP "REP"
139 // #define MED_NOM_UNI "UNI"
140 // #define MED_NOM_NOD "NOD"
141 // #define MED_NOM_TYP "TYP"
142 // #define MED_NOM_GTY "GTY"
143 // #define MED_NOM_CO  "CO"
144 // #define MED_NOM_NCW "NCW"
145 // #define MED_NOM_TYW "TYW"
146
147 // #define MED_NOM_MAI "MAI"
148 // #define MED_NOM_FAC "FAC"
149 // #define MED_NOM_ARE "ARE"
150
151 // #define MED_NOM_PO1 "PO1"
152 // #define MED_NOM_SE2 "SE2"
153 // #define MED_NOM_SE3 "SE3"
154 // #define MED_NOM_TR3 "TR3"
155 // #define MED_NOM_TR6 "TR6"
156 // #define MED_NOM_QU4 "QU4"
157 // #define MED_NOM_QU8 "QU8"
158 // #define MED_NOM_TE4 "TE4"
159 // #define MED_NOM_T10 "T10"
160 // #define MED_NOM_HE8 "HE8"
161 // #define MED_NOM_H20 "H20"
162 // #define MED_NOM_PE6 "PE6"
163 // #define MED_NOM_P15 "P15"
164 // #define MED_NOM_PY5 "PY5"
165 // #define MED_NOM_P13 "P13"
166
167 // #define MED_NOM_TAI "TAI"
168 // #define MED_NOM_TTI "TTI"
169 // #define MED_NOM_IFN "IFN"
170 // #define MED_NOM_IFD "IFD"
171 // #define MED_NOM_INN "INN"
172 // #define MED_NOM_IND "IND"
173 // #define MED_NOM_POG "POG"
174 // #define MED_NOM_POE "POE"
175
176 // #define MED_NOM_GEO "GEO"
177 // #define MED_NOM_GAU "GAU"
178 // #define MED_NOM_NGA "NGA"
179 // #define MED_NOM_PFL "PFL"
180 // #define MED_NOM_NDT "NDT"
181 // #define MED_NOM_PDT "PDT"
182 // #define MED_NOM_NOR "NOR"
183 // #define MED_NOM_LIE "LIE"
184
185 // /* Nom du DATA GROUP CONTENANT TOUS LES MAILLAGES DU FICHIER HDF */
186 // #define MED_MAA "/ENS_MAA/"
187 // #define MED_TAILLE_MAA 9
188
189 // /* Nom du data group ou ranger les champs solution */
190 // #define MED_CHA "/CHA/"
191 // #define MED_TAILLE_CHA 5
192
193 // /* Nom du data group point de montage */
194 // #define MED_MNT "/MNT/"
195 // #define MED_TAILLE_MNT 5
196
197 // /* Nom du data group ou ranger les familles */
198 // #define FAMILLE_ZERO "FAMILLE_ZERO"
199 // #define MED_FAS "/FAS/"
200 // #define MED_TAILLE_FAS 5
201 // #define MED_FAS_NOEUD "/NOEUD/"
202 // #define MED_FAS_NOEUD_NOM "NOEUD"
203 // #define MED_FAS_ELEME "/ELEME/"
204 // #define MED_FAS_ELEME_NOM "ELEME"
205 // #define MED_TAILLE_FAS_ENTITE 7
206
207
208 // /* Nom du data group ou ranger les equivalences */
209 // #define MED_EQS "/EQS/"
210 // #define MED_TAILLE_EQS 5
211
212 // /* Nom du data group contenant les profils */
213 // #define MED_PROFILS "/PROFILS/"
214 // #define MED_TAILLE_PROFILS 9 
215
216 // /* Nom du data group contenant la localisation des points de GAUSS */
217 // #define MED_GAUSS "/GAUSS/"
218 // #define MED_TAILLE_GAUSS 7 
219
220 // /* Nom du groupe HDF ou sont rangees les valeurs numeriques scalaires 
221 //    non liees au modele de donnees
222 // */
223 // #define MED_NUM_DATA  "/NUM_DATA/"
224 // #define MED_TAILLE_NUM_DATA 10
225
226 // /* Nom du data group contenant les liens */
227 // #define MED_LIENS "/LIENS/"
228 // #define MED_TAILLE_LIENS 7 
229
230 //   }
231 // }
232
233 #include <stdio.h>
234 #include <string.h>
235
236 #define ANCIEN_MED_TAILLE_PNOM 8
237 /*                              12345678 */
238 #define ANCIEN_MED_BLANC_PNOM  "        "
239
240 namespace med_2_2 {
241
242 med_err OLD_MEDattrNumLire(med_idt pere, med_type_champ type, char *nom,
243                            unsigned char *val, hid_t hdf_file);
244
245 med_err OLD_MEDdatasetNumLire(med_idt pere, char *nom, med_type_champ type,
246                               med_mode_switch interlace, med_size nbdim,
247                               med_size fixdim, med_size psize,
248                               med_ssize * pfltab, med_int ngauss,
249                               unsigned char *val,hid_t hdf_file);
250
251 void conversion_chaine(char *ancienne_chaine, char *nouvelle_chaine,
252                        med_int n);
253
254 void MAJ_version(med_idt fid) throw (MEDMEM::MEDEXCEPTION) ;
255
256 void MAJ_noeuds_maillage(med_idt mid, med_int dimension) throw (MEDMEM::MEDEXCEPTION) ;
257
258 void MAJ_elements_maillage(med_idt mid, med_int dimension)
259   throw (MEDMEM::MEDEXCEPTION);
260
261 void MAJ_familles_maillage(med_idt mid) throw (MEDMEM::MEDEXCEPTION) ;
262
263 void MAJ_maillages(med_idt fid) throw (MEDMEM::MEDEXCEPTION) ;
264
265 void MAJ_localisation_Gauss(med_idt fid,char *nom_modele,med_int ngauss)
266   throw (MEDMEM::MEDEXCEPTION) ;
267
268 void MAJ_champs(med_idt fid) throw (MEDMEM::MEDEXCEPTION) ;
269
270 void MAJ_profils(med_idt fid,med_int nprofil) throw (MEDMEM::MEDEXCEPTION) ;
271 }
272
273 namespace MEDMEM {
274
275 /*!
276   This method is supposed to be the same as the med File V2.2 medimport
277   utility. fileNameIn is .med V2.1 file supplied by the user including
278   all the directory path. fileNameOut is .med V2.2 file produced by this
279   command in the directory $HOME/TMP_Med2_2Files/
280 */
281
282 char * med2_1_To_med2_2(char * fileNameIn) throw (MEDMEM::MEDEXCEPTION) ;
283 }
284
285 #endif /* IMPORT_HXX */