]> SALOME platform Git repositories - modules/med.git/blob - src/MEDMEM/MEDMEM_define.hxx
Salome HOME
sources v1.2
[modules/med.git] / src / MEDMEM / MEDMEM_define.hxx
1 //  MED MEDMEM : MED files in memory
2 //
3 //  Copyright (C) 2003  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : MEDMEM_define.hxx
25 //  Module : MED
26
27 #ifndef DEFINE_HXX
28 #define DEFINE_HXX      
29
30 #include <stdio.h>
31 #include <iostream>
32 #include <string>
33 #include <assert.h>
34
35 // UTILE AUX DEUX NAMESPACES
36 #include <hdf5.h>
37
38 namespace MED_FR {
39   extern "C" { 
40 # include <med.h>
41 # include <med_proto.h>
42   }
43 }
44
45
46 namespace MED_EN {
47   extern "C" { 
48   
49 #define MED_NULL       (void *) NULL
50 #define MED_MAX_PARA     20
51
52 #define MED_TAILLE_DESC 200
53 #define MED_TAILLE_IDENT  8
54 #define MED_TAILLE_NOM   32
55 #define MED_TAILLE_LNOM  80    
56 #define MED_TAILLE_PNOM   8 
57
58 typedef enum {MED_CARTESIAN, MED_POLAR, MED_BODY_FITTED} med_grid_type;
59
60 typedef enum {MED_FULL_INTERLACE,
61               MED_NO_INTERLACE}  medModeSwitch; 
62
63 typedef enum {MED_LECT,MED_ECRI,MED_REMP} med_mode_acces; 
64
65 typedef enum {MED_CELL, MED_FACE, MED_EDGE, MED_NODE, MED_ALL_ENTITIES} medEntityMesh; 
66
67 typedef enum {MED_COOR, MED_CONN, MED_NOM, MED_NUM, MED_FAM} med_table;
68
69 typedef enum {MED_REEL64=6, MED_INT32=24,MED_INT64=26, MED_INT} med_type_champ;
70
71 #define MED_NBR_GEOMETRIE_MAILLE 15
72 #define MED_NBR_GEOMETRIE_FACE 4
73 #define MED_NBR_GEOMETRIE_ARETE 2
74 typedef enum {MED_NONE=0, MED_POINT1=1, MED_SEG2=102, MED_SEG3=103, MED_TRIA3=203,
75               MED_QUAD4=204, MED_TRIA6=206,MED_QUAD8=208, MED_TETRA4=304,
76               MED_PYRA5=305, MED_PENTA6=306, MED_HEXA8=308, MED_TETRA10=310, 
77               MED_PYRA13=313, MED_PENTA15=315, MED_HEXA20=320, MED_ALL_ELEMENTS=999}
78 medGeometryElement;
79
80 typedef enum {MED_NODAL, MED_DESCENDING} medConnectivity ; 
81
82 typedef enum {MED_CART, MED_CYL, MED_SPHER} med_repere; 
83
84 typedef enum {MED_FAUX, MED_VRAI} med_booleen ; 
85
86 typedef enum {MED_GROUPE, MED_ATTR, MED_FAMILLE} med_dim_famille; 
87
88 typedef enum {MED_COMP, MED_DTYPE} med_dim_champ; 
89
90 typedef enum {MED_HDF_VERSION, MED_VERSION, MED_FICH_DES} med_fich_info; 
91
92 #define MED_NOPG   1                   /* -> pas de point de Gauss                    */
93 #define MED_NOPFL  ""                  /* -> pas de profils utilisateur               */
94 #define MED_NOPFLi "                                "  /* Variable Interne                      */
95 #define MED_NOPF   0                   /* -> pas de profils pour _MEDdataseNnumEcrire */
96 #define MED_NOPDT -1                   /* rem: pas de pas de temps negatifs           */
97 #define MED_NONOR -1                   /* rem: pas de n°ordre negatif                 */
98 #define MED_DIM1   1                   /* PAS */
99   //#define MED_ALL    0 !!!!! NB: WARNING MED_ALL deja utilise dans l'enum medGeometryElement !!!!!!!!
100 #define MED_ALL    0
101
102 #if defined(SUN4SOL2) || defined(PCLINUX) || defined(OSF1) || defined(IRIX64_32) || defined(RS6000)
103 /* interface C/FORTRAN */
104 /* 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 ! */
105 #define NOMF_POST_UNDERSCORE 
106
107 /* correspondance des types avec HDF 5 */
108 typedef hsize_t        med_size;
109 typedef hssize_t       med_ssize;
110 typedef hid_t          med_idt;
111 typedef herr_t         med_err;
112
113 /* types elementaires */
114 typedef int            med_int;
115 typedef double         med_float;
116 #endif
117
118 #if defined(HP9000)
119 /* correspondance des types avec HDF 5 */
120 typedef hsize_t        med_size;
121 typedef hssize_t       med_ssize;
122 typedef hid_t          med_idt;
123 typedef herr_t         med_err;
124
125 /* types elementaires */
126 typedef int            med_int;
127 typedef double         med_float;
128 #endif
129
130 #if defined(IRIX64)
131 #define NOMF_POST_UNDERSCORE
132
133 /* correspondance des types avec HDF 5 */
134 typedef hsize_t        med_size;
135 typedef hssize_t       med_ssize;
136 typedef hid_t          med_idt;
137 typedef herr_t         med_err;
138
139 /* types elementaires */
140 typedef long           med_int;
141 typedef double         med_float;
142 #endif
143
144
145 #if defined(PPRO_NT) 
146 /* correspondance des types avec HDF 5 */
147 typedef hsize_t        med_size;
148 typedef hssize_t       med_ssize;
149 typedef hid_t          med_idt;
150 typedef herr_t         med_err;
151
152 /* types elementaires */
153 typedef int            med_int;
154 typedef double         med_float;
155 #endif
156
157
158 #if defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
159 #   define NOMF(x)     _##x##_
160 #endif
161 #if defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
162 #   define NOMF(x)     _##x
163 #endif
164 #if !defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
165 #   define NOMF(x)     x##_
166 #endif
167 #if !defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
168 #   define NOMF(x)     x
169 #endif
170
171   //#include "med_proto.h"
172
173   }
174
175 // valeurs des algos de connexites
176 #define FRACT_ALGO 10
177 #define MAX_LOOP 200
178 // fin
179
180 // Valeurs de IO_MED
181 //#define READ 0
182 //#define WRITE 1
183
184
185 #define MED_CLOSED   0
186 #define MED_OPENED   1
187 #define MED_INVALID -1
188 #define MED_ERROR   -1
189 #define MED_VALID    0
190 //#define MED_NULL     NULL
191
192 #define MED_RDONLY MED_LECT
193   //   rem: MED_WRONLY=MED_ECR n'empêche malheureusement pas de lire le fichier
194   //   mais permet de conserver l'existant. Attention à la création d'objet 
195   //   ne prenant pas de paramètre de type mode d'accès il faut tester si il
196   //   est déjà présent dans le fichier. Si  MED_WRONLY=MED_REMP le fichier est
197   //   réinitialisé. Cf une évolution de MED.
198 #define MED_WRONLY MED_ECRI
199 #define MED_RDWR   MED_ECRI
200 // Fin
201
202 #define FAUX 0
203 #define VRAI 1
204 #define longueur_string 100
205 #define PRECISION 0.0000001
206 // #define undefined -1
207 #define UNDEFINED -1
208
209 // type des connectivites
210 //#define CONN_NOD 0
211 //#define CONN_DESC_PART 1
212 //#define CONN_DESC_TOT 2
213
214 // valeurs de type_interpolation
215 #define P1                 0
216 #define pseudo_P2          1
217 #define trilineaire        2
218 #define P2_adapte          3
219 #define VF_conservatif     4
220 #define VF_non_conservatif 5
221 // valeurs de type_mapping
222 #define connexite   0
223 #define conn_octree 1
224 #define brutal      2
225 // valeurs des type_support
226 #define support_noeud 0
227 #define support_maille 1
228 // retour des fonctions
229 #define OK 0
230 #define KO 1
231 // fin
232
233 }
234 // End Of NameSpace MED_EN
235
236
237 #endif /* DEFINE_HXX */
238