4 #define MED_NOPG 1 /* -> pas de point de Gauss */
5 #define MED_NOPFL "" /* -> pas de profils utilisateur */
6 #define MED_NOPFLi " " /* Variable Interne */
7 #define MED_NOPF 0 /* -> pas de profils pour _MEDdataseNnumEcrire */
8 #define MED_NOPDT -1 /* rem: pas de pas de temps negatifs */
9 #define MED_NONOR -1 /* rem: pas de n°ordre negatif */
10 #define MED_DIM1 1 /* PAS */
14 int main (int argc, char **argv)
18 char maa[MED_TAILLE_NOM+1] = "maa1";
42 char nomcoo[3*MED_TAILLE_PNOM+1] = "x y z ";
43 char unicoo[3*MED_TAILLE_PNOM+1] = "cm cm cm ";
44 /* char nomnoe[19*MED_TAILLE_PNOM+1] = "nom1 nom2 nom3 nom4";*/
46 med_int numnoe[19] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
47 med_int nufano[19] = {1,1,3,3,0,0,2,0,4,0,4,2,4,2,4,2,4,1,3};
50 med_int tet4[12*4] = {
65 med_int numtet4[12] = {1,2,3,4,5,6,7,8,9,10,11,12};
66 med_int nufatet4[12] = {-1,-1,-1,-1,0,0,0,0,0,0,-2,-3};
69 med_int pyra5[5*2] = {
73 char nompyra5[MED_TAILLE_PNOM*2+1] = "pyra1 pyra2 ";
74 med_int numpyra5[2] = {13,16};
75 med_int nufapyra5[2] = {0,-3};
78 med_int hexa8[8*2] = {
80 15,16,17,18,11,12,13,14
82 char nomhexa8[MED_TAILLE_PNOM*2+1] = "hexa1 hexa2 ";
83 med_int numhexa8[2] = {14,15};
84 med_int nufahexa8[2] = {0,0};
86 char nomfam[MED_TAILLE_NOM+1];
88 char attdes[MED_TAILLE_DESC+1];
93 char gro[MED_TAILLE_LNOM+1];
94 char gro2[MED_TAILLE_LNOM*2+1];
95 char gro3[MED_TAILLE_LNOM*3+1];
102 Some fields : 2 on nodes : one int and one double , one on cells : double
104 char champ1[MED_TAILLE_NOM+1]="fieldnodeint" ;
105 char champ1_comp[MED_TAILLE_PNOM+1]="comp1 " ;
106 char champ1_unit[MED_TAILLE_PNOM+1]="M " ;
107 med_int fieldnodeint[19] = {1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7};
109 char champ2[MED_TAILLE_NOM+1]="fieldnodedouble" ;
110 char champ2_comp[MED_TAILLE_PNOM+1]="comp1 " ;
111 char champ2_unit[MED_TAILLE_PNOM+1]="J " ;
112 med_float fieldnodedouble1[19] = {1.,1.,1.,2.,2.,2.,3.,3.,3.,4.,4.,4.,5.,5.,5.,6.,6.,6.,7.};
113 med_float fieldnodedouble2[19] = {1.,2.,2.,2.,3.,3.,3.,4.,4.,4.,5.,5.,5.,6.,6.,6.,7.,7.,7.};
115 char champ3[MED_TAILLE_NOM+1]="fieldcelldouble" ;
116 char champ3_comp[MED_TAILLE_PNOM*3+1]="comp1 comp2 comp3 " ;
117 char champ3_unit[MED_TAILLE_PNOM*3+1]="M/S M/s m/s " ;
118 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};
119 med_float fieldcelldouble2[2*3] = {5,5,0,1,0,1};
120 med_float fieldcelldouble3[2*3] = {6,6,1,0,1,0};
122 /***************************************************************************/
123 fid = MEDouvrir("pointe.med",MED_REMP);
128 printf("MEDouvrir : %d\n",ret);
130 /***************************************************************************/
132 ret = MEDmaaCr(fid,maa,mdim);
133 printf("MEDmaaCr : %d\n",ret);
135 ret = MEDunvCr(fid,maa);
136 printf("MEDunvCr : %d\n",ret);
138 /***************************************************************************/
140 ret = MEDnoeudsEcr(fid,maa,mdim,coo,MED_FULL_INTERLACE,MED_CART,
141 nomcoo,unicoo,nomnoe,MED_FAUX,numnoe,MED_VRAI,
142 nufano,nnoe,MED_ECRI);
143 printf("MEDnoeudsEcr : %d\n",ret);
146 /***************************************************************************/
147 /* ecriture des mailles MED_TETRA4 :
150 - numeros (optionnel)
151 - numeros des familles */
153 ret = MEDelementsEcr(fid,maa,mdim,tet4,MED_FULL_INTERLACE,
154 nomtet4,MED_FAUX,numtet4,MED_VRAI,nufatet4,ntet4,
155 MED_MAILLE,MED_TETRA4,MED_NOD,MED_ECRI);
156 printf("MEDelementsEcr : %d \n",ret);
158 /* ecriture des mailles MED_PYRA5 :
161 - numeros (optionnel)
162 - numeros des familles */
164 ret = MEDelementsEcr(fid,maa,mdim,pyra5,MED_FULL_INTERLACE,
165 nompyra5,MED_VRAI,numpyra5,MED_VRAI,nufapyra5,npyra5,
166 MED_MAILLE,MED_PYRA5,MED_NOD,MED_ECRI);
167 printf("MEDelementsEcr : %d \n",ret);
169 /* ecriture des mailles MED_HEXA8 :
172 - numeros (optionnel)
173 - numeros des familles */
175 ret = MEDelementsEcr(fid,maa,mdim,hexa8,MED_FULL_INTERLACE,
176 nomhexa8,MED_FAUX,numhexa8,MED_VRAI,nufahexa8,nhexa8,
177 MED_MAILLE,MED_HEXA8,MED_NOD,MED_ECRI);
178 printf("MEDelementsEcr : %d \n",ret);
180 /***************************************************************************/
181 /* ecriture des familles */
183 - toujours creer une famille de numero 0 ne comportant aucun attribut
184 ni groupe (famille de reference pour les noeuds ou les elements
185 qui ne sont rattaches a aucun groupe ni attribut)
186 - les numeros de familles de noeuds sont > 0
187 - les numeros de familles des elements sont < 0
188 - rien d'imposer sur les noms de familles
194 strcpy(nomfam,"FAMILLE_0");
196 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,0,
199 printf("MEDfamCr : %d \n",ret);
202 - 3 familles d'elements (-1,-2,-3) et
203 - 2 familles de noeuds (1,2)
208 for (i=0;i<nfame;i++)
212 strcpy(nomfam,"FAMILLE_ELEMENT_");
214 sprintf(nomfam,"%s%d",nomfam,-numfam);
218 strcpy(attdes,"description attribut");
219 strcpy(gro,"groupe1");
221 /*printf("nomfam : %s - numfam : %d - attide : %d - attval : %d - ngro : %d \n",nomfam,numfam,attide,attval,ngro);*/
222 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
224 printf("MEDfamCr : %d\n",ret);
231 strcpy(nomfam,"FAMILLE_NOEUD_1");
236 strcpy(attdes,"description attribut");
237 strcpy(gro2,"groupe2");
238 strcpy(gro2+MED_TAILLE_LNOM,"groupe3");
240 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
242 printf("MEDfamCr : %d\n",ret);
246 strcpy(nomfam,"FAMILLE_NOEUD_2");
251 strcpy(attdes,"description attribut");
252 strcpy(gro2,"groupe3");
253 strcpy(gro2+MED_TAILLE_LNOM,"groupe4");
255 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
257 printf("MEDfamCr : %d\n",ret);
261 strcpy(nomfam,"FAMILLE_NOEUD_3");
266 strcpy(attdes,"description attribut");
267 strcpy(gro2,"groupe2");
268 strcpy(gro2+MED_TAILLE_LNOM,"groupe4");
270 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
272 printf("MEDfamCr : %d\n",ret);
276 strcpy(nomfam,"FAMILLE_NOEUD_4");
281 strcpy(attdes,"description attribut");
282 strcpy(gro,"groupe5");
284 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
286 printf("MEDfamCr : %d\n",ret);
289 /***************************************************************************/
295 ret = MEDchampCr(fid,champ1,MED_INT32,champ1_comp,champ1_unit,1);
296 printf("MEDchampCr : %d \n",ret);
298 ret = MEDchampEcr(fid, maa, champ1, (unsigned char *)fieldnodeint,
299 MED_NO_INTERLACE, nnoe,
300 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_NOEUD,
301 0, MED_NOPDT," ", 0., MED_NONOR);
303 printf("MEDchampEcr : %d \n",ret);
309 ret = MEDchampCr(fid,champ2,MED_REEL64,champ2_comp,champ2_unit,1);
310 printf("MEDchampCr : %d \n",ret);
312 ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble1,
313 MED_NO_INTERLACE, nnoe,
314 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_NOEUD,
315 0, 1,"S ", 1.1 , MED_NONOR);
316 printf("MEDchampEcr1 : %d \n",ret);
317 ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble2,
318 MED_NO_INTERLACE, nnoe,
319 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_NOEUD,
320 0, 2,"S ", 1.2 , MED_NONOR);
321 printf("MEDchampEcr2 : %d \n",ret);
325 // on met champ2 sans pas de temps pour pouvoir le lire aussi par defaut !
328 /* ret = MEDchampCr(fid,champ2,MED_REEL64,champ2_comp,champ2_unit,1); */
329 /* printf("MEDchampCr : %d \n",ret); */
331 ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble1,
332 MED_NO_INTERLACE, nnoe,
333 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_NOEUD,
334 0, MED_NOPDT," ", 0. , MED_NONOR);
335 printf("MEDchampEcr : %d \n",ret);
341 ret = MEDchampCr(fid,champ3,MED_REEL64,champ3_comp,champ3_unit,3);
342 printf("MEDchampCr : %d \n",ret);
344 ret = MEDchampEcr(fid, maa, champ3, (unsigned char *)fieldcelldouble1,
345 MED_NO_INTERLACE, ntet4,
346 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_MAILLE,
347 MED_TETRA4, MED_NOPDT," ", 0., MED_NONOR);
348 printf("MEDchampEcr : %d \n",ret);
349 ret = MEDchampEcr(fid, maa, champ3, (unsigned char *)fieldcelldouble2,
350 MED_NO_INTERLACE, npyra5,
351 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_MAILLE,
352 MED_PYRA5, MED_NOPDT," ", 0., MED_NONOR);
353 printf("MEDchampEcr : %d \n",ret);
354 ret = MEDchampEcr(fid, maa, champ3, (unsigned char *)fieldcelldouble3,
355 MED_NO_INTERLACE, nhexa8,
356 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_MAILLE,
357 MED_HEXA8, MED_NOPDT," ", 0., MED_NONOR);
358 printf("MEDchampEcr : %d \n",ret);
362 /***************************************************************************/
363 ret = MEDfermer(fid);
364 printf("MEDfermer : %d\n",ret);