Salome HOME
Copyrights update
[modules/med.git] / src / MEDWrapper / V2_1 / med.hxx
1 // Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
3 // 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either 
7 // version 2.1 of the License.
8 // 
9 // This library 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 GNU 
12 // Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public  
15 // License along with this library; if not, write to the Free Software 
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 //
18 // See http://www.salome-platform.org/
19 //
20 /*************************************************************************
21 * COPYRIGHT (C) 1999 - 2003  EDF R&D
22 * THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23 * IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE 
24 * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; 
25 * EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
26 *
27 * THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28 * WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
30 * LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
31 *
32 * YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
33 * ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
34 * INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
35 *
36 *************************************************************************/
37
38 #ifndef MED_H
39 #define MED_H
40
41 extern "C"{
42 #include <hdf5.h>
43 }
44
45 namespace med_2_1{
46
47 #define MED_NULL       (void *) NULL
48 #define MED_MAX_PARA        20
49
50 #define MED_TAILLE_DESC 200
51 #define MED_TAILLE_IDENT  8
52 #define MED_TAILLE_NOM   32
53 #define MED_TAILLE_LNOM  80    
54 #define MED_TAILLE_PNOM   8 
55
56 /* Integration des developpements OCC */
57 typedef enum {MED_CARTESIAN, MED_POLAR, MED_BODY_FITTED} med_grid_type;
58
59 typedef enum {MED_GRID_D1=0, MED_GRID_D2=1, MED_GRID_D3=2,
60               MED_GRID_NOEUD=3,
61               MED_FAM_NOEUD=4, MED_FAM_ARETE=5, MED_FAM_FACE=6, MED_FAM_MAILLE=7 } med_grid;
62
63 /* Fin de l'integration*/
64
65 typedef enum {MED_FULL_INTERLACE,
66               MED_NO_INTERLACE}  med_mode_switch; 
67
68 typedef enum {MED_GLOBALE,
69               MED_COMPACT }  med_mode_profil; 
70
71 typedef enum {MED_LECT,MED_ECRI,MED_REMP} med_mode_acces; 
72
73 typedef enum {MED_MAILLE, MED_FACE, MED_ARETE, MED_NOEUD} med_entite_maillage; 
74
75 typedef enum {MED_COOR, MED_CONN, MED_NOM, MED_NUM, MED_FAM} med_table;
76
77 typedef enum {MED_REEL64=6, MED_INT32=24,MED_INT64=26, MED_INT} med_type_champ;
78
79 #define MED_NBR_GEOMETRIE_MAILLE 15
80 #define MED_NBR_GEOMETRIE_FACE 4
81 #define MED_NBR_GEOMETRIE_ARETE 2
82 typedef enum {MED_POINT1=1, MED_SEG2=102, MED_SEG3=103, MED_TRIA3=203,
83               MED_QUAD4=204, MED_TRIA6=206,MED_QUAD8=208, MED_TETRA4=304,
84               MED_PYRA5=305, MED_PENTA6=306, MED_HEXA8=308, MED_TETRA10=310, 
85               MED_PYRA13=313, MED_PENTA15=315, MED_HEXA20=320}
86 med_geometrie_element;
87
88 typedef enum {MED_NOD, MED_DESC} med_connectivite ; 
89
90 typedef enum {MED_CART, MED_CYL, MED_SPHER} med_repere; 
91
92 typedef enum {MED_FAUX, MED_VRAI} med_booleen ; 
93
94 typedef enum {MED_GROUPE, MED_ATTR, MED_FAMILLE} med_dim_famille; 
95
96 typedef enum {MED_COMP, MED_DTYPE} med_dim_champ; 
97
98 typedef enum {MED_HDF_VERSION, MED_VERSION, MED_FICH_DES} med_fich_info; 
99
100 #define MED_NOPG   1                   /* -> pas de point de Gauss                    */
101 #define MED_NOPFL  ""                  /* -> pas de profils utilisateur               */
102 #define MED_NOPFLi "                                "  /* Variable Interne                      */
103 #define MED_NOPF   0                   /* -> pas de profils pour _MEDdataseNnumEcrire */
104 #define MED_NOPDT -1                   /* rem: pas de pas de temps negatifs           */
105 #define MED_NONOR -1                   /* rem: pas de nĀ°ordre negatif                 */
106 #define MED_DIM1   1                   /* PAS */
107 #define MED_ALL    0
108
109 #if defined(SUN4SOL2) || defined(PCLINUX) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000)
110 /* interface C/FORTRAN */
111 /* this true only with g77 and gcc : we must change it to use directly NOMF_... and INT32 or INT64 -
112  it will be more simple to understand and to use ! */
113 #define NOMF_POST_UNDERSCORE 
114
115 /* correspondance des types avec HDF 5 */
116 typedef hsize_t        med_size;
117 typedef hssize_t       med_ssize;
118 typedef hid_t          med_idt;
119 typedef herr_t         med_err;
120
121 /* types elementaires */
122 typedef int            med_int;
123 typedef double         med_float;
124 #endif
125
126 #if defined(HP9000)
127 /* correspondance des types avec HDF 5 */
128 typedef hsize_t        med_size;
129 typedef hssize_t       med_ssize;
130 typedef hid_t          med_idt;
131 typedef herr_t         med_err;
132
133 /* types elementaires */
134 typedef int            med_int;
135 typedef double         med_float;
136 #endif
137
138 #if defined(IRIX64) || defined(OSF1)
139 #define NOMF_POST_UNDERSCORE
140
141 /* correspondance des types avec HDF 5 */
142 typedef hsize_t        med_size;
143 typedef hssize_t       med_ssize;
144 typedef hid_t          med_idt;
145 typedef herr_t         med_err;
146
147 /* types elementaires */
148 typedef long           med_int;
149 typedef double         med_float;
150 #endif
151
152
153 #if defined(PPRO_NT) 
154 /* correspondance des types avec HDF 5 */
155 typedef hsize_t        med_size;
156 typedef hssize_t       med_ssize;
157 typedef hid_t          med_idt;
158 typedef herr_t         med_err;
159
160 /* types elementaires */
161 typedef int            med_int;
162 typedef double         med_float;
163 #endif
164
165
166 #if defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
167 #   define NOMF(x)     _##x##_
168 #endif
169 #if defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
170 #   define NOMF(x)     _##x
171 #endif
172 #if !defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
173 #   define NOMF(x)     x##_
174 #endif
175 #if !defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
176 #   define NOMF(x)     x
177 #endif
178
179 }
180
181 #include "med_proto.hxx"
182
183 #endif  /* MED_H */