]> SALOME platform Git repositories - modules/med.git/blob - src/MEDMEM/MEDMEM_define.hxx
Salome HOME
Fix problem of make distcheck
[modules/med.git] / src / MEDMEM / MEDMEM_define.hxx
1 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 #ifndef DEFINE_HXX
24 #define DEFINE_HXX
25
26 #include <stdio.h>
27 #include <iostream>
28 #include <string>
29 #include <assert.h>
30
31 // UTILE AUX DEUX NAMESPACES
32 #include <hdf5.h>
33
34 namespace med_2_3 {
35   extern "C" { 
36     #include <med.h>
37         med_err MEDfieldComputingStepInfo(const med_idt fid,
38                                     const char * const fieldname,
39                                     const int csit,
40                                     med_int * const numdt,
41                                     med_int * const numit,
42                                     med_float * const dt);
43   
44   med_err MEDmeshEntityFamilyNumberRd(const med_idt               fid,
45                                       const char*  const          meshname,
46                                       const med_int               numdt,
47                                       const med_int               numit,
48                                       const med_entity_type       entitype,
49                                       const med_geometry_type     geotype,
50                                       med_int * const             number);
51
52   med_err MEDmeshEntityNumberRd(const med_idt               fid,
53                                 const char*  const          meshname,
54                                 const med_int               numdt,
55                                 const med_int               numit,
56                                 const med_entity_type       entitype,
57                                 const med_geometry_type     geotype,
58                                 med_int * const             number);
59
60   med_err MEDfieldCr( const med_idt fid,
61                       const char * const fieldname,
62                       const med_field_type fieldtype,
63                       const med_int nbofcomponent,
64                       const char * const componentname,
65                       const char * const componentunit,
66                       const char * const dtunit,
67                       const char * const meshname);
68   }
69 }
70
71 namespace MED_EN {
72   extern "C" { // on est la
73
74 // #define MED_NULL       (void *) NULL
75 // #define MED_MAX_PARA     20
76
77 // #define MED_TAILLE_DESC 200
78 // #define MED_TAILLE_IDENT  8
79 // #define MED_TAILLE_NOM   32
80 // #define MED_TAILLE_LNOM  80
81 // #define MED_TAILLE_PNOM   8
82
83 #ifdef MED_NONE
84 #undef MED_NONE
85 #endif
86 #ifdef MED_POINT1
87 #undef MED_POINT1
88 #endif
89 #ifdef MED_SEG2
90 #undef MED_SEG2
91 #endif
92 #ifdef MED_SEG3
93 #undef MED_SEG3
94 #endif
95 #ifdef MED_TRIA3
96 #undef MED_TRIA3
97 #endif
98 #ifdef MED_QUAD4
99 #undef MED_QUAD4
100 #endif
101 #ifdef MED_TRIA6
102 #undef MED_TRIA6
103 #endif
104 #ifdef MED_QUAD8
105 #undef MED_QUAD8
106 #endif
107 #ifdef MED_TETRA4
108 #undef MED_TETRA4
109 #endif
110 #ifdef MED_PYRA5
111 #undef MED_PYRA5
112 #endif
113 #ifdef MED_PENTA6
114 #undef MED_PENTA6
115 #endif
116 #ifdef MED_HEXA8
117 #undef MED_HEXA8
118 #endif
119 #ifdef MED_TETRA10
120 #undef MED_TETRA10
121 #endif
122 #ifdef MED_PYRA13
123 #undef MED_PYRA13
124 #endif
125 #ifdef MED_PENTA15
126 #undef MED_PENTA15
127 #endif
128 #ifdef MED_HEXA20
129 #undef MED_HEXA20
130 #endif
131 #ifdef MED_POLYGON
132 #undef MED_POLYGON
133 #endif
134 #ifdef MED_POLYHEDRA
135 #undef MED_POLYHEDRA
136 #endif
137 #ifdef MED_ALL_ELEMENTS
138 #undef MED_ALL_ELEMENTS
139 #endif
140
141     typedef long medGeometryElement;
142     const medGeometryElement MED_NONE = 0;
143     const medGeometryElement MED_POINT1 = 1;
144     const medGeometryElement MED_SEG2 = 102;
145     const medGeometryElement MED_SEG3 = 103;
146     const medGeometryElement MED_TRIA3 = 203;
147     const medGeometryElement MED_QUAD4 = 204;
148     const medGeometryElement MED_TRIA6 = 206;
149     const medGeometryElement MED_QUAD8 = 208;
150     const medGeometryElement MED_TETRA4 = 304;
151     const medGeometryElement MED_PYRA5 = 305;
152     const medGeometryElement MED_PENTA6 = 306;
153     const medGeometryElement MED_HEXA8 = 308;
154     const medGeometryElement MED_TETRA10 = 310;
155     const medGeometryElement MED_PYRA13 = 313;
156     const medGeometryElement MED_PENTA15 = 315;
157     const medGeometryElement MED_HEXA20 = 320;
158     const medGeometryElement MED_POLYGON = 400;
159     const medGeometryElement MED_POLYHEDRA = 500;
160     const medGeometryElement MED_ALL_ELEMENTS = 999;
161
162     typedef long medEntityMesh;
163     const medEntityMesh MED_CELL = 0;
164     const medEntityMesh MED_FACE = 1;
165     const medEntityMesh MED_EDGE = 2;
166     const medEntityMesh MED_NODE = 3;
167     const medEntityMesh MED_ALL_ENTITIES = 4;
168
169     typedef long medModeSwitch;
170     const medModeSwitch MED_FULL_INTERLACE = 0;
171     const medModeSwitch MED_NO_INTERLACE = 1;
172     const medModeSwitch MED_NO_INTERLACE_BY_TYPE = 2;
173     const medModeSwitch MED_UNDEFINED_INTERLACE = 3;
174     
175     typedef long medConnectivity;
176     const medConnectivity MED_NODAL = 0;
177     const medConnectivity MED_DESCENDING = 1;
178
179     typedef enum {MED_CARTESIAN, MED_POLAR, MED_BODY_FITTED} med_grid_type;
180
181     //typedef enum {MED_LECT,MED_ECRI,MED_REMP,MED_CREA} med_mode_acces;
182     typedef enum {RDONLY,WRONLY,RDWR} med_mode_acces;
183
184     typedef enum {ASCENDING=7,DESCENDING=77} med_sort_direc;
185
186     typedef enum {MED_REEL64=6, MED_INT32=24,MED_INT64=26, MED_UNDEFINED_TYPE=0} med_type_champ;
187
188 // #define MED_NBR_GEOMETRIE_MAILLE 15
189 // #define MED_NBR_GEOMETRIE_FACE 4
190 // #define MED_NBR_GEOMETRIE_ARETE 2
191
192 typedef enum {MED_CART, MED_CYL, MED_SPHER} med_repere;
193
194 typedef enum {MED_FAUX, MED_VRAI} med_booleen ;
195
196 typedef enum {MED_GROUPE, MED_ATTR, MED_FAMILLE} med_dim_famille;
197
198 typedef enum {MED_COMP, MED_DTYPE} med_dim_champ;
199
200 typedef enum {MED_HDF_VERSION, MED_VERSION, MED_FICH_DES} med_fich_info;
201
202 // #define MED_NOPG   1                   /* -> pas de point de Gauss                    */
203 // #define MED_NOPFL  ""                  /* -> pas de profils utilisateur               */
204 // #define MED_NOPFLi "                                "  /* Variable Interne                      */
205 // #define MED_NOPF   0                   /* -> pas de profils pour _MEDdataseNnumEcrire */
206 // #define MED_NOPDT -1                   /* rem: pas de pas de temps negatifs           */
207 // #define MED_NONOR -1                   /* rem: pas de n°ordre negatif                 */
208 // #define MED_DIM1   1                   /* PAS */
209 //   //#define MED_ALL    0 !!!!! NB: WARNING MED_ALL deja utilise dans l'enum medGeometryElement !!!!!!!!
210 // #define MED_ALL    0
211
212 #if defined(SUN4SOL2) || defined(PCLINUX) || defined(PCLINUX64_32) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000)
213 /* interface C/FORTRAN */
214 /* this true only with g77 and gcc : we must change it to use directly NOMF_... and INT32 or INT64 - it will be more simple to understand and to use ! */
215 // #define NOMF_POST_UNDERSCORE
216
217 /* correspondance des types avec HDF 5 */
218 typedef hsize_t        med_size;
219 typedef hssize_t       med_ssize;
220     //typedef hid_t          med_idt;
221 typedef herr_t         med_err;
222
223 /* types elementaires */
224 typedef int            med_int;
225 typedef double         med_float;
226 #endif
227
228 #if defined(HP9000)
229 /* correspondance des types avec HDF 5 */
230 typedef hsize_t        med_size;
231 typedef hssize_t       med_ssize;
232     //typedef hid_t          med_idt;
233 typedef herr_t         med_err;
234
235 /* types elementaires */
236 typedef int            med_int;
237 typedef double         med_float;
238 #endif
239
240 #if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64) 
241 // #define NOMF_POST_UNDERSCORE
242
243 /* correspondance des types avec HDF 5 */
244 typedef hsize_t        med_size;
245 typedef hssize_t       med_ssize;
246     //typedef hid_t          med_idt;
247 typedef herr_t         med_err;
248
249 /* types elementaires */
250 typedef long           med_int;
251 typedef double         med_float;
252 #endif
253
254
255 #if defined(PPRO_NT)
256 /* correspondance des types avec HDF 5 */
257 typedef hsize_t        med_size;
258 typedef hssize_t       med_ssize;
259     //typedef hid_t          med_idt;
260 typedef herr_t         med_err;
261
262 /* types elementaires */
263 typedef int            med_int;
264 typedef double         med_float;
265 #endif
266
267
268 // #if defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
269 // #   define NOMF(x)     _##x##_
270 // #endif
271 // #if defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
272 // #   define NOMF(x)     _##x
273 // #endif
274 // #if !defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
275 // #   define NOMF(x)     x##_
276 // #endif
277 // #if !defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
278 // #   define NOMF(x)     x
279 // #endif
280
281   //#include "med_proto.h"
282
283   }
284
285   // valeurs des algos de connexites
286   const int FRACT_ALGO = 10;
287   const int MAX_LOOP   = 200;
288 // fin
289
290 // Valeurs de IO_MED
291 //#define READ 0
292 //#define WRITE 1
293
294
295   const int MED_CLOSED   = 0;
296   const int MED_OPENED   = 1;
297   const int MED_INVALID  = -1;
298   const int MED_ERROR    = -1;
299   const int MED_VALID    = 0;
300 //#define MED_NULL     NULL
301
302 //#define MED_RDONLY RDONLY
303 ////   rem: MED_WRONLY=MED_ECR n'empêche malheureusement pas de lire le fichier
304 ////   mais permet de conserver l'existant. Attention à la création d'objet
305 ////   ne prenant pas de paramètre de type mode d'accès il faut tester si il
306 ////   est déjà présent dans le fichier. Si  MED_WRONLY=MED_REMP le fichier est
307 ////   réinitialisé. Cf une évolution de MED.
308 //#define MED_WRONLY WRONLY
309 //#define MED_RDWR   RDWR
310 //#define MED_CREATE MED_CREA
311 // Fin
312
313   const int longueur_string = 100;
314   const double PRECISION = 0.0000001;
315   const int MED_UNDEFINED = -1;
316
317 // type des connectivites
318 //#define CONN_NOD 0
319 //#define CONN_DESC_PART 1
320 //#define CONN_DESC_TOT 2
321
322 // valeurs de type_interpolation
323   const int P1                 = 0;
324   const int pseudo_P2          = 1;
325   const int trilineaire        = 2;
326   const int P2_adapte          = 3;
327   const int VF_conservatif     = 4;
328   const int VF_non_conservatif = 5;
329   // valeurs de type_mapping
330   const int connexite   = 0;
331   const int conn_octree = 1;
332   const int brutal      = 2;
333 // valeurs des type_support
334   const int support_noeud = 0;
335   const int support_maille = 1;
336 // retour des fonctions
337   //const int OK = 0;
338   //const int KO = 1;
339
340 //maximum number of groups handled by the Family Group converter
341   const int MAX_NB_GROUP = 100000;
342   /*
343     enum definition for the used Med File version V2.1 or V2.2
344     because of incompatibility between them.
345   */
346
347   typedef enum {V21 = 26, V22 = 75} medFileVersion;
348
349 // fin
350 }
351 // End Of NameSpace MED_EN
352
353 #endif /* DEFINE_HXX */