#include <med.h>
#define MESGERR 1
#include <med_utils.h>
#include <string.h>
int main (int argc, char **argv) {
med_idt fid;
const char meshname[MED_NAME_SIZE+1] = "2D unstructured mesh";
const med_int spacedim = 2;
const med_int meshdim = 2;
const char axisname[2*MED_SNAME_SIZE+1] = "x y ";
const char unitname[2*MED_SNAME_SIZE+1] = "cm cm ";
const med_float coordinates[2*10] = { 0.5, 0.,
1.5, 0.,
0., 0.5,
1., 0.5,
2., 0.5,
0., 1.,
1., 1.,
2., 1.,
0.5, 2.,
1.5, 2. };
const med_int nnodes = 10;
const med_int indexsize = 3;
const med_int index[3] = {1,7,13};
const med_int connectivity[12] = {1,4,7,9,6,3,
2,5,8,10,7,4};
int ret=-1;
fid = MEDfileOpen("UsesCase_MEDmesh_13.med",
MED_ACC_CREAT);
if (fid < 0) {
MESSAGE("ERROR : file creation ...");
goto ERROR;
}
if (MEDfileCommentWr(fid,
"A 2D unstructured mesh : 12, 12 polygons") < 0) {
MESSAGE("ERROR : write file description ...");
goto ERROR;
}
if (MEDmeshCr(fid,
meshname,
spacedim,
meshdim,
MED_UNSTRUCTURED_MESH,
"A 2D mesh with 2 polygons",
"",
MED_SORT_DTIT,
MED_CARTESIAN,
axisname,
unitname) < 0) {
MESSAGE("ERROR : mesh creation ...");
goto ERROR;
}
if (MEDmeshNodeCoordinateWr(fid,
meshname,
MED_NO_DT,
MED_NO_IT,
MED_UNDEF_DT,
MED_FULL_INTERLACE,
nnodes,
coordinates) < 0) {
MESSAGE("ERROR : nodes coordinates ...");
goto ERROR;
}
if (MEDmeshPolygonWr(fid,
meshname,
MED_NO_DT,
MED_NO_IT,
MED_UNDEF_DT,
MED_CELL,
MED_NODAL,
indexsize,
index,
connectivity) < 0) {
MESSAGE("ERROR : polygon connectivity ...");
goto ERROR;
}
if (MEDfamilyCr(fid,
meshname,
MED_NO_NAME,
0,
0,
MED_NO_GROUP) < 0) {
MESSAGE("ERROR : family 0 creation ...");
goto ERROR;
}
ret=0;
ERROR:
if (MEDfileClose(fid) < 0) {
MESSAGE("ERROR : close file ...");
ret=-1;
}
return ret;
}