1 /************************************************************************* 2 * COPYRIGHT (C) 1999 - 2007 EDF R&D, CEA/DEN 3 * THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY 4 * IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE 5 * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; 6 * EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION. 7 * 8 * THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 9 * WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF 10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU 11 * LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS. 12 * 13 * YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE 14 * ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION, 15 * INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA 16 * 17 *************************************************************************/ 18 19 20 /****************************************************************************** 21 * - Nom du fichier : test6.c 22 * 23 * - Description : ecriture d'elements dans un maillage MED 24 * 25 *****************************************************************************/ 26 27 #include <med.h> 28 #define MESGERR 29 #include <med_utils.h> 30 31 #ifdef DEF_LECT_ECR 32 #define MODE_ACCES MED_LECTURE_ECRITURE 33 #elif DEF_LECT_AJOUT 34 #define MODE_ACCES MED_LECTURE_AJOUT 35 #else 36 #define MODE_ACCES MED_CREATION 37 #endif 38 39 int main (int argc, char **argv) 40 41 42 { 43 med_idt fid; 44 med_int nse2 = 5; 45 med_int se2[10] = {1,2,1,3,2,4,3,4,2,3}; 46 /* 12345678901234561234567890123456123456789012345612345678901234561234567890123456*/ 47 char nomse2[MED_TAILLE_PNOM*5+1]="se1 se2 se3 se4 se5 "; 48 med_int numse2[5] = {1,2,3,4,5}; 49 med_int nufase2[5] = {-1,-1,0,-2,-3}; 50 med_int ntr3 = 2; 51 med_int tr3[6] = {1,2,-5,-5,3,-4}; 52 /* 12345678901234561234567890123456*/ 53 char nomtr3[MED_TAILLE_PNOM*2+1] = "tr1 tr2 "; 54 med_int numtr3[2] = {4,5}; 55 med_int nufatr3[2] = {0,-1}; 56 char maa[MED_TAILLE_NOM+1] = "maa1"; 57 med_int mdim = 2; 58 59 /* ouverture du fichier */ 60 if ( (fid = MEDouvrir("test6.med",MODE_ACCES)) < 0) { 61 MESSAGE("Impossible de creer le fichier test6.med : "); 62 return -1; 63 } 64 65 /* creation du maillage */ 66 if ( MEDmaaCr(fid,maa,mdim,MED_NON_STRUCTURE, 67 "un maillage pour test6") < 0 ) { 68 MESSAGE("Impossible de creer le maillage : "); 69 return -1; 70 } 71 72 /* ecriture des connectivites des segments */ 73 if ( MEDconnEcr(fid,maa,mdim,se2,MED_FULL_INTERLACE,nse2,MED_ARETE,MED_SEG2, 74 MED_DESC) < 0 ) { 75 MESSAGE("Impossible d'ecrire la connectivité des segments: "); 76 return -1; 77 } 78 79 80 /* ecriture (optionnelle) des noms des segments */ 81 if ( MEDnomEcr(fid,maa,nomse2,nse2,MED_ARETE,MED_SEG2) < 0 ) { 82 MESSAGE("Impossible d'ecrire les noms des segments : "); 83 return -1; 84 } 85 86 /* ecriture (optionnelle) des numeros des segments */ 87 if ( MEDnumEcr(fid,maa,numse2,nse2,MED_ARETE,MED_SEG2) < 0 ) { 88 MESSAGE("Impossible d'ecrire les numéros des segments : "); 89 return -1; 90 } 91 92 /* ecriture des numeros des familles des segments */ 93 if ( MEDfamEcr(fid,maa,nufase2,nse2,MED_ARETE,MED_SEG2) < 0 ) { 94 MESSAGE("Impossible d'ecrire les numéros de famille des segments : "); 95 return -1; 96 } 97 98 /* ecriture des connectivites des triangles */ 99 if ( MEDconnEcr(fid,maa,mdim,tr3,MED_FULL_INTERLACE,ntr3,MED_MAILLE,MED_TRIA3, 100 MED_DESC) < 0 ) { 101 MESSAGE("Impossible d'ecrire la connectivité des triangles : "); 102 return -1; 103 } 104 105 /* ecriture (optionnelle) des noms des triangles */ 106 if ( MEDnomEcr(fid, maa, nomtr3, ntr3, MED_MAILLE, MED_TRIA3) < 0 ) { 107 MESSAGE("Impossible d'ecrire les noms des triangles : "); 108 return -1; 109 } 110 111 /* ecriture (optionnelle) des numeros des triangles */ 112 if ( MEDnumEcr(fid,maa,numtr3,ntr3,MED_MAILLE,MED_TRIA3) < 0 ) { 113 MESSAGE("Impossible d'ecrire les numéros des triangles : "); 114 return -1; 115 } 116 117 /* ecriture des numeros des familles des triangles */ 118 if ( MEDfamEcr(fid,maa,nufatr3,ntr3,MED_MAILLE,MED_TRIA3) < 0 ) { 119 MESSAGE("Impossible d'ecrire les numéros de famille des triangles : "); 120 return -1; 121 } 122 123 /* fermeture du fichier */ 124 if ( MEDfermer(fid) < 0 ) { 125 MESSAGE("Impossible de fermerle fichier : "); 126 return -1; 127 } 128 129 return 0; 130 131 } 132 133 134