Salome HOME
HEXA_27021382: EDF 1985 SMESH: Read/write of .mesh files (GMF format)
[modules/smesh.git] / src / DriverGMF / libmesh5.h
1
2
3 /*----------------------------------------------------------*/
4 /*                                                                                                                      */
5 /*                                              LIBMESH V 5.46                                          */
6 /*                                                                                                                      */
7 /*----------------------------------------------------------*/
8 /*                                                                                                                      */
9 /*      Description:            handle .meshb file format I/O           */
10 /*      Author:                         Loic MARECHAL                                           */
11 /*      Creation date:          feb 16 2007                                                     */
12 /*      Last modification:      dec 09 2011                                                     */
13 /*                                                                                                                      */
14 /*----------------------------------------------------------*/
15
16
17 /*----------------------------------------------------------*/
18 /* Defines                                                                                                      */
19 /*----------------------------------------------------------*/
20
21 #define GmfStrSiz 1024
22 #define GmfMaxTyp 1000
23 #define GmfMaxKwd 80
24 #define GmfMshVer 1
25 #define GmfRead 1
26 #define GmfWrite 2
27 #define GmfSca 1
28 #define GmfVec 2
29 #define GmfSymMat 3
30 #define GmfMat 4
31 #define GmfFloat 1
32 #define GmfDouble 2
33
34 enum GmfKwdCod
35 {
36         GmfReserved1, \
37         GmfVersionFormatted, \
38         GmfReserved2, \
39         GmfDimension, \
40         GmfVertices, \
41         GmfEdges, \
42         GmfTriangles, \
43         GmfQuadrilaterals, \
44         GmfTetrahedra, \
45         GmfPrisms, \
46         GmfHexahedra, \
47         GmfIterationsAll, \
48         GmfTimesAll, \
49         GmfCorners, \
50         GmfRidges, \
51         GmfRequiredVertices, \
52         GmfRequiredEdges, \
53         GmfRequiredTriangles, \
54         GmfRequiredQuadrilaterals, \
55         GmfTangentAtEdgeVertices, \
56         GmfNormalAtVertices, \
57         GmfNormalAtTriangleVertices, \
58         GmfNormalAtQuadrilateralVertices, \
59         GmfAngleOfCornerBound, \
60         GmfTrianglesP2, \
61         GmfEdgesP2, \
62         GmfSolAtPyramids, \
63         GmfQuadrilateralsQ2, \
64         GmfISolAtPyramids, \
65         GmfSubDomainFromGeom, \
66         GmfTetrahedraP2, \
67         GmfFault_NearTri, \
68         GmfFault_Inter, \
69         GmfHexahedraQ2, \
70         GmfExtraVerticesAtEdges, \
71         GmfExtraVerticesAtTriangles, \
72         GmfExtraVerticesAtQuadrilaterals, \
73         GmfExtraVerticesAtTetrahedra, \
74         GmfExtraVerticesAtPrisms, \
75         GmfExtraVerticesAtHexahedra, \
76         GmfVerticesOnGeometricVertices, \
77         GmfVerticesOnGeometricEdges, \
78         GmfVerticesOnGeometricTriangles, \
79         GmfVerticesOnGeometricQuadrilaterals, \
80         GmfEdgesOnGeometricEdges, \
81         GmfFault_FreeEdge, \
82         GmfPolyhedra, \
83         GmfPolygons, \
84         GmfFault_Overlap, \
85         GmfPyramids, \
86         GmfBoundingBox, \
87         GmfBody, \
88         GmfPrivateTable, \
89         GmfFault_BadShape, \
90         GmfEnd, \
91         GmfTrianglesOnGeometricTriangles, \
92         GmfTrianglesOnGeometricQuadrilaterals, \
93         GmfQuadrilateralsOnGeometricTriangles, \
94         GmfQuadrilateralsOnGeometricQuadrilaterals, \
95         GmfTangents, \
96         GmfNormals, \
97         GmfTangentAtVertices, \
98         GmfSolAtVertices, \
99         GmfSolAtEdges, \
100         GmfSolAtTriangles, \
101         GmfSolAtQuadrilaterals, \
102         GmfSolAtTetrahedra, \
103         GmfSolAtPrisms, \
104         GmfSolAtHexahedra, \
105         GmfDSolAtVertices, \
106         GmfISolAtVertices, \
107         GmfISolAtEdges, \
108         GmfISolAtTriangles, \
109         GmfISolAtQuadrilaterals, \
110         GmfISolAtTetrahedra, \
111         GmfISolAtPrisms, \
112         GmfISolAtHexahedra, \
113         GmfIterations, \
114         GmfTime, \
115         GmfFault_SmallTri, \
116         GmfCoarseHexahedra
117 };
118
119
120 /*----------------------------------------------------------*/
121 /* External procedures                                                                          */
122 /*----------------------------------------------------------*/
123
124 extern int GmfOpenMesh(const char *, int, ...);
125 extern int GmfCloseMesh(int);
126 extern int GmfStatKwd(int, int, ...);
127 extern int GmfGotoKwd(int, int);
128 extern int GmfSetKwd(int, int, ...);
129 extern void GmfGetLin(int, int, ...);
130 extern void GmfSetLin(int, int, ...);
131
132
133 /*----------------------------------------------------------*/
134 /* Fortran 77 API                                                                                       */
135 /*----------------------------------------------------------*/
136
137 #if defined(F77_NO_UNDER_SCORE)
138 #define call(x) x
139 #else
140 #define call(x) x ## _
141 #endif
142
143
144 /*----------------------------------------------------------*/
145 /* Transmesh private API                                                                        */
146 /*----------------------------------------------------------*/
147
148 #ifdef TRANSMESH
149
150 extern char *GmfKwdFmt[ GmfMaxKwd + 1 ][4];
151 extern int GmfCpyLin(int, int, int);
152
153 #endif