4 int main (int argc, char **argv)
8 char maa[MED_TAILLE_NOM+1] = "maa1";
9 char maadesc[MED_TAILLE_DESC+1] = "Example de maillage non structure 3D";
33 char nomcoo[3*MED_TAILLE_PNOM+1] = "x y z ";
34 char unicoo[3*MED_TAILLE_PNOM+1] = "cm cm cm ";
35 /* char nomnoe[19*MED_TAILLE_PNOM+1] = "nom1 nom2 nom3 nom4";*/
37 med_int numnoe[19] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
38 med_int nufano[19] = {1,1,3,3,0,0,2,0,4,0,4,2,4,2,4,2,4,1,3};
41 med_int tet4[12*4] = {
56 med_int numtet4[12] = {1,2,3,4,5,6,7,8,9,10,11,12};
57 med_int nufatet4[12] = {-1,-1,-1,-1,0,0,0,0,0,0,-2,-3};
60 med_int pyra5[5*2] = {
64 char nompyra5[MED_TAILLE_PNOM*2+1] = "pyra1 pyra2 ";
65 med_int numpyra5[2] = {13,16};
66 med_int nufapyra5[2] = {0,-3};
69 med_int hexa8[8*2] = {
71 15,16,17,18,11,12,13,14
73 char nomhexa8[MED_TAILLE_PNOM*2+1] = "hexa1 hexa2 ";
74 med_int numhexa8[2] = {14,15};
75 med_int nufahexa8[2] = {0,0};
77 char nomfam[MED_TAILLE_NOM+1];
79 char attdes[MED_TAILLE_DESC+1];
84 char gro[MED_TAILLE_LNOM+1];
85 char gro2[MED_TAILLE_LNOM*2+1];
86 char gro3[MED_TAILLE_LNOM*3+1];
93 Some fields : 2 on nodes : one int and one double , one on cells : double
95 char champ1[MED_TAILLE_NOM+1]="fieldnodeint" ;
96 char champ1_comp[MED_TAILLE_PNOM+1]="comp1 " ;
97 char champ1_unit[MED_TAILLE_PNOM+1]="M " ;
98 med_int fieldnodeint[19] = {1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7};
100 char champ2[MED_TAILLE_NOM+1]="fieldnodedouble" ;
101 char champ2_comp[MED_TAILLE_PNOM+1]="comp1 " ;
102 char champ2_unit[MED_TAILLE_PNOM+1]="J " ;
103 med_float fieldnodedouble1[19] = {1.,1.,1.,2.,2.,2.,3.,3.,3.,4.,4.,4.,5.,5.,5.,6.,6.,6.,7.};
104 med_float fieldnodedouble2[19] = {1.,2.,2.,2.,3.,3.,3.,4.,4.,4.,5.,5.,5.,6.,6.,6.,7.,7.,7.};
106 char champ3[MED_TAILLE_NOM+1]="fieldcelldoublevector" ;
107 char champ3_comp[MED_TAILLE_PNOM*3+1]="comp1 comp2 comp3 " ;
108 char champ3_unit[MED_TAILLE_PNOM*3+1]="m/s m/s m/s " ;
109 med_float fieldcelldouble1[12*3] = {1.,1.,1.,2.,2.,2.,3.,3.,3.,4.,4.,4.,0.,0.,0.,1.,1.,1.,0.,0.,0.,1.,1.,1.,1.,1.,1.,0.,0.,0.,1.,1.,1.,0.,0.,0.};
110 med_float fieldcelldouble2[2*3] = {5.,5.,0.,1.,0.,1.};
111 med_float fieldcelldouble3[2*3] = {6.,6.,1.,0.,1.,0.};
113 char champ4[MED_TAILLE_NOM+1]="fieldcelldoublescalar" ;
114 char champ4_comp[MED_TAILLE_PNOM+1]="comp1 " ;
115 char champ4_unit[MED_TAILLE_PNOM+1]="m/s " ;
116 med_float fieldcelldouble4[12] = {1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.};
117 med_float fieldcelldouble5[2] = {2.,2.};
118 med_float fieldcelldouble6[2] = {3.,3.};
120 /***************************************************************************/
121 fid = MEDouvrir("pointe.med",MED_LECTURE_ECRITURE);
126 printf("MEDouvrir : %d\n",ret);
128 /***************************************************************************/
130 ret = MEDmaaCr(fid,maa,mdim,MED_NON_STRUCTURE,maadesc);
131 printf("MEDmaaCr : %d\n",ret);
133 ret = MEDunvCr(fid,maa);
134 printf("MEDunvCr : %d\n",ret);
136 /***************************************************************************/
138 ret = MEDnoeudsEcr(fid,maa,mdim,coo,MED_FULL_INTERLACE,MED_CART,
139 nomcoo,unicoo,nomnoe,MED_FAUX,numnoe,MED_VRAI,
141 printf("MEDnoeudsEcr : %d\n",ret);
144 /***************************************************************************/
145 /* ecriture des mailles MED_TETRA4 :
148 - numeros (optionnel)
149 - numeros des familles */
151 ret = MEDelementsEcr(fid,maa,mdim,tet4,MED_FULL_INTERLACE,
152 nomtet4,MED_FAUX,numtet4,MED_VRAI,nufatet4,ntet4,
153 MED_MAILLE,MED_TETRA4,MED_NOD);
154 printf("MEDelementsEcr : %d \n",ret);
156 /* ecriture des mailles MED_PYRA5 :
159 - numeros (optionnel)
160 - numeros des familles */
162 ret = MEDelementsEcr(fid,maa,mdim,pyra5,MED_FULL_INTERLACE,
163 nompyra5,MED_VRAI,numpyra5,MED_VRAI,nufapyra5,npyra5,
164 MED_MAILLE,MED_PYRA5,MED_NOD);
165 printf("MEDelementsEcr : %d \n",ret);
167 /* ecriture des mailles MED_HEXA8 :
170 - numeros (optionnel)
171 - numeros des familles */
173 ret = MEDelementsEcr(fid,maa,mdim,hexa8,MED_FULL_INTERLACE,
174 nomhexa8,MED_FAUX,numhexa8,MED_VRAI,nufahexa8,nhexa8,
175 MED_MAILLE,MED_HEXA8,MED_NOD);
176 printf("MEDelementsEcr : %d \n",ret);
178 /***************************************************************************/
179 /* ecriture des familles */
181 - toujours creer une famille de numero 0 ne comportant aucun attribut
182 ni groupe (famille de reference pour les noeuds ou les elements
183 qui ne sont rattaches a aucun groupe ni attribut)
184 - les numeros de familles de noeuds sont > 0
185 - les numeros de familles des elements sont < 0
186 - rien d'imposer sur les noms de familles
192 strcpy(nomfam,"FAMILLE_0");
194 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,0,
197 printf("MEDfamCr : %d \n",ret);
200 - 3 familles d'elements (-1,-2,-3) et
201 - 2 familles de noeuds (1,2)
206 for (i=0;i<nfame;i++)
210 strcpy(nomfam,"FAMILLE_ELEMENT_");
212 sprintf(nomfam,"%s%d",nomfam,-numfam);
216 strcpy(attdes,"description attribut");
217 strcpy(gro,"groupe1");
219 /*printf("nomfam : %s - numfam : %d - attide : %d - attval : %d - ngro : %d \n",nomfam,numfam,attide,attval,ngro);*/
220 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
222 printf("MEDfamCr : %d\n",ret);
229 strcpy(nomfam,"FAMILLE_NOEUD_1");
234 strcpy(attdes,"description attribut");
235 strcpy(gro2,"groupe2");
236 strcpy(gro2+MED_TAILLE_LNOM,"groupe3");
238 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
240 printf("MEDfamCr : %d\n",ret);
244 strcpy(nomfam,"FAMILLE_NOEUD_2");
249 strcpy(attdes,"description attribut");
250 strcpy(gro2,"groupe3");
251 strcpy(gro2+MED_TAILLE_LNOM,"groupe4");
253 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
255 printf("MEDfamCr : %d\n",ret);
259 strcpy(nomfam,"FAMILLE_NOEUD_3");
264 strcpy(attdes,"description attribut");
265 strcpy(gro2,"groupe2");
266 strcpy(gro2+MED_TAILLE_LNOM,"groupe4");
268 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
270 printf("MEDfamCr : %d\n",ret);
274 strcpy(nomfam,"FAMILLE_NOEUD_4");
279 strcpy(attdes,"description attribut");
280 strcpy(gro,"groupe5");
282 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
284 printf("MEDfamCr : %d\n",ret);
287 /***************************************************************************/
293 ret = MEDchampCr(fid,champ1,MED_INT32,champ1_comp,champ1_unit,1);
294 printf("MEDchampCr : %d \n",ret);
296 ret = MEDchampEcr(fid, maa, champ1, (unsigned char *)fieldnodeint,
297 MED_NO_INTERLACE, nnoe, MED_NOGAUSS, MED_ALL,
298 MED_NOPFL, MED_NO_PFLMOD, MED_NOEUD, 0,
299 MED_NOPDT," ", 0., MED_NONOR);
301 printf("MEDchampEcr : %d \n",ret);
307 ret = MEDchampCr(fid,champ2,MED_FLOAT64,champ2_comp,champ2_unit,1);
308 printf("MEDchampCr : %d \n",ret);
310 ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble1,
311 MED_NO_INTERLACE, nnoe, MED_NOGAUSS, MED_ALL,
312 MED_NOPFL, MED_NO_PFLMOD, MED_NOEUD, 0,
313 1,"S ", 1.1 , MED_NONOR);
314 printf("MEDchampEcr1 : %d \n",ret);
315 ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble2,
316 MED_NO_INTERLACE, nnoe, MED_NOGAUSS, MED_ALL,
317 MED_NOPFL, MED_NO_PFLMOD, MED_NOEUD, 0,
318 2,"S ", 1.2 , MED_NONOR);
319 printf("MEDchampEcr2 : %d \n",ret);
323 // on met champ2 sans pas de temps pour pouvoir le lire aussi par defaut !
326 /* ret = MEDchampCr(fid,champ2,MED_REEL64,champ2_comp,champ2_unit,1); */
327 /* printf("MEDchampCr : %d \n",ret); */
329 ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble1,
330 MED_NO_INTERLACE, nnoe, MED_NOGAUSS, MED_ALL,
331 MED_NOPFL, MED_NO_PFLMOD, MED_NOEUD, 0,
332 MED_NOPDT," ", 0. , MED_NONOR);
333 printf("MEDchampEcr : %d \n",ret);
339 ret = MEDchampCr(fid,champ3,MED_FLOAT64,champ3_comp,champ3_unit,3);
340 printf("MEDchampCr : %d \n",ret);
342 ret = MEDchampEcr(fid, maa, champ3, (unsigned char *)fieldcelldouble1,
343 MED_NO_INTERLACE, ntet4, MED_NOGAUSS, MED_ALL,
344 MED_NOPFL, MED_NO_PFLMOD, MED_MAILLE, MED_TETRA4,
345 MED_NOPDT," ", 0., MED_NONOR);
346 printf("MEDchampEcr : %d \n",ret);
347 ret = MEDchampEcr(fid, maa, champ3, (unsigned char *)fieldcelldouble3,
348 MED_NO_INTERLACE, nhexa8, MED_NOGAUSS, MED_ALL,
349 MED_NOPFL, MED_NO_PFLMOD, MED_MAILLE, MED_HEXA8,
350 MED_NOPDT," ", 0., MED_NONOR);
351 printf("MEDchampEcr : %d \n",ret);
352 ret = MEDchampEcr(fid, maa, champ3, (unsigned char *)fieldcelldouble2,
353 MED_NO_INTERLACE, npyra5, MED_NOGAUSS, MED_ALL,
354 MED_NOPFL, MED_NO_PFLMOD, MED_MAILLE, MED_PYRA5,
355 MED_NOPDT," ", 0., MED_NONOR);
356 printf("MEDchampEcr : %d \n",ret);
362 ret = MEDchampCr(fid,champ4,MED_FLOAT64,champ4_comp,champ4_unit,1);
363 printf("MEDchampCr : %d \n",ret);
365 ret = MEDchampEcr(fid, maa, champ4, (unsigned char *)fieldcelldouble4,
366 MED_NO_INTERLACE, ntet4, MED_NOGAUSS, MED_ALL,
367 MED_NOPFL, MED_NO_PFLMOD, MED_MAILLE, MED_TETRA4,
368 MED_NOPDT," ", 0., MED_NONOR);
369 printf("MEDchampEcr : %d \n",ret);
370 ret = MEDchampEcr(fid, maa, champ4, (unsigned char *)fieldcelldouble6,
371 MED_NO_INTERLACE, nhexa8, MED_NOGAUSS, MED_ALL,
372 MED_NOPFL, MED_NO_PFLMOD, MED_MAILLE, MED_HEXA8,
373 MED_NOPDT," ", 0., MED_NONOR);
374 printf("MEDchampEcr : %d \n",ret);
375 ret = MEDchampEcr(fid, maa, champ4, (unsigned char *)fieldcelldouble5,
376 MED_NO_INTERLACE, npyra5, MED_NOGAUSS, MED_ALL,
377 MED_NOPFL, MED_NO_PFLMOD, MED_MAILLE, MED_PYRA5,
378 MED_NOPDT," ", 0., MED_NONOR);
379 printf("MEDchampEcr : %d \n",ret);
383 /***************************************************************************/
384 ret = MEDfermer(fid);
385 printf("MEDfermer : %d\n",ret);