      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