      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 : test23.c
     22  *
     23  * - Description : ecriture de mailles/faces de type MED_POLYGONE
     24  *                 dans un maillage MED
     25  *
     26  *****************************************************************************/
     27
     28 #include <med.h>
     29 #define MESGERR
     30 #include <med_utils.h>
     31
     32 #ifdef DEF_LECT_ECR
     33 #define MODE_ACCES MED_LECTURE_ECRITURE
     34 #elif DEF_LECT_AJOUT
     35 #define MODE_ACCES MED_LECTURE_AJOUT
     36 #else
     37 #define MODE_ACCES MED_CREATION
     38 #endif
     39
     40 int main (int argc, char **argv)
     41
     42
     43 {
     44   med_idt fid;
     45   char maa[MED_TAILLE_NOM+1] = "maa1";
     46   med_int mdim = 3;
     47   med_int index[4] = {1,6,12,17};
     48   med_int con[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
     49   med_int n=3,ni = 4;
     50   /*                             123456789012345612345678901234561234567890123456 */
     51   char nom[MED_TAILLE_PNOM*3+1]="poly1           poly2           poly3           ";
     52   med_int num[3] = {1,2,3};
     53   med_int fam[3] = {0,-1,-2};
     54
     55   /* Creation du fichier test23.med */
     56   fid = MEDouvrir("test23.med",MODE_ACCES);
     57   if (fid == -1) {
     58     MESSAGE("Erreur a la creation du fichier test23.med");
     59     return -1;
     60   }
     61   printf("Creation du fichier test23.med \n");
     62
     63   /* Creation du maillage */
     64   if (MEDmaaCr(fid,maa,mdim,MED_NON_STRUCTURE,
     65                "un maillage pour test23") < 0) {
     66     MESSAGE("Erreur a la creation du maillage");
     67     return -1;
     68   }
     69   printf("Creation du maillage \n");
     70
     71   /* Ecriture de la connectivite des mailles polygones en mode nodal */
     72   if (MEDpolygoneConnEcr(fid,maa,index,ni,con,MED_MAILLE,MED_NOD) < 0) {
     73     MESSAGE("Erreur a l'ecriture de la connectivite des mailles MED_POLYGONE");
     74     return -1;
     75   }
     76   printf("Ecriture des connectivites de mailles de type MED_POLYGONE en mode nodal \n");
     77
     78   /* Ecriture des noms des polygones */
     79   if (MEDnomEcr(fid,maa,nom,n,MED_MAILLE,MED_POLYGONE) < 0) {
     80     MESSAGE("Erreur a l'ecriture des noms mailles MED_POLYGONE");
     81     return -1;
     82   }
     83   printf("Ecriture des noms des polygones \n");
     84
     85   /* Ecriture des numeros des polygones */
     86   if (MEDnumEcr(fid,maa,num,n,MED_MAILLE,MED_POLYGONE) < 0) {
     87     MESSAGE("Erreur a l'ecriture des numeros des mailles MED_POLYGONE");
     88     return -1;
     89   }
     90   printf("Ecriture des numeros des polygones \n");
     91
     92   /* Ecriture des numeros des familles des polygones */
     93   if (MEDfamEcr(fid,maa,fam,n,MED_MAILLE,MED_POLYGONE) < 0) {
     94     MESSAGE("Erreur a l'ecriture des numeros de famille des mailles MED_POLYGONE");
     95     return -1;
     96   }
     97   printf("Ecriture des numeros des familles des polygones \n");
     98
     99   /* Fermeture du fichier */
    100   if (MEDfermer(fid) < 0) {
    101     MESSAGE("Erreur a la fermeture du fichier");
    102     return -1;
    103   }
    104   printf("Fermeture du fichier test23.med \n");
    105
    106   return 0;
    107 }