# 2.3.6/test6.c

Aller à la documentation de ce fichier.

    00001 /*  This file is part of MED.
    00002  *
    00003  *  COPYRIGHT (C) 1999 - 2012  EDF R&D, CEA/DEN
    00004  *  MED is free software: you can redistribute it and/or modify
    00005  *  it under the terms of the GNU Lesser General Public License as published by
    00006  *  the Free Software Foundation, either version 3 of the License, or
    00007  *  (at your option) any later version.
    00008  *
    00009  *  MED is distributed in the hope that it will be useful,
    00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00012  *  GNU Lesser General Public License for more details.
    00013  *
    00014  *  You should have received a copy of the GNU Lesser General Public License
    00015  *  along with MED.  If not, see <http://www.gnu.org/licenses/>.
    00016  */
    00017
    00018
    00019 /******************************************************************************
    00020  * - Nom du fichier : test6.c
    00021  *
    00022  * - Description : ecriture d'elements dans un maillage MED
    00023  *
    00024  *****************************************************************************/
    00025
    00026 #include <med.h>
    00027 #define MESGERR 1
    00028 #include <med_utils.h>
    00029
    00030 #ifdef DEF_LECT_ECR
    00031 #define MODE_ACCES MED_LECTURE_ECRITURE
    00032 #elif DEF_LECT_AJOUT
    00033 #define MODE_ACCES MED_LECTURE_AJOUT
    00034 #else
    00035 #define MODE_ACCES MED_CREATION
    00036 #endif
    00037
    00038 int main (int argc, char **argv)
    00039
    00040
    00041 {
    00042   med_idt fid;
    00043   med_int nse2 = 5;
    00044   med_int se2[10] = {1,2,1,3,2,4,3,4,2,3};
    00045   /*                                12345678901234561234567890123456123456789012345612345678901234561234567890123456*/
    00046   char nomse2[MED_TAILLE_PNOM*5+1]="se1             se2             se3             se4             se5             ";
    00047   med_int numse2[5] = {1,2,3,4,5};
    00048   med_int nufase2[5] = {-1,-1,0,-2,-3};
    00049   med_int ntr3 = 2;
    00050   med_int tr3[6] = {1,2,-5,-5,3,-4};
    00051   /*                                  12345678901234561234567890123456*/
    00052   char nomtr3[MED_TAILLE_PNOM*2+1] = "tr1             tr2             ";
    00053   med_int numtr3[2] = {4,5};
    00054   med_int nufatr3[2] = {0,-1};
    00055   char maa[MED_TAILLE_NOM+1] = "maa1";
    00056   med_int mdim = 2;
    00057
    00058   /* ouverture du fichier */
    00059   if ( (fid = MEDouvrir("test6.med",MODE_ACCES)) < 0) {
    00060     MESSAGE("Impossible de creer le fichier test6.med : ");
    00061     return -1;
    00062   }
    00063
    00064   /* creation du maillage */
    00065   if ( MEDmaaCr(fid,maa,mdim,MED_NON_STRUCTURE,
    00066                    "un maillage pour test6") < 0 ) {
    00067     MESSAGE("Impossible de creer le maillage : ");
    00068     return -1;
    00069   }
    00070
    00071   /* ecriture des connectivites des segments */
    00072   if ( MEDconnEcr(fid,maa,mdim,se2,MED_FULL_INTERLACE,nse2,MED_ARETE,MED_SEG2,
    00073                   MED_DESC) < 0 ) {
    00074     MESSAGE("Impossible d'ecrire la connectivité des segments: ");
    00075     return -1;
    00076   }
    00077
    00078
    00079   /* ecriture (optionnelle) des noms des segments */
    00080   if ( MEDnomEcr(fid,maa,nomse2,nse2,MED_ARETE,MED_SEG2) < 0 ) {
    00081     MESSAGE("Impossible d'ecrire les noms des segments : ");
    00082     return -1;
    00083   }
    00084
    00085   /* ecriture (optionnelle) des numeros des segments */
    00086   if ( MEDnumEcr(fid,maa,numse2,nse2,MED_ARETE,MED_SEG2) < 0 ) {
    00087     MESSAGE("Impossible d'ecrire les numéros des segments : ");
    00088     return -1;
    00089   }
    00090
    00091     /* ecriture des numeros des familles des segments */
    00092   if ( MEDfamEcr(fid,maa,nufase2,nse2,MED_ARETE,MED_SEG2) < 0 ) {
    00093     MESSAGE("Impossible d'ecrire les numéros de famille des segments : ");
    00094     return -1;
    00095   }
    00096
    00097   /* ecriture des connectivites des triangles */
    00098   if ( MEDconnEcr(fid,maa,mdim,tr3,MED_FULL_INTERLACE,ntr3,MED_MAILLE,MED_TRIA3,
    00099                      MED_DESC) < 0 ) {
    00100     MESSAGE("Impossible d'ecrire la connectivité des triangles : ");
    00101     return -1;
    00102   }
    00103
    00104   /* ecriture (optionnelle) des noms des triangles */
    00105   if ( MEDnomEcr(fid, maa, nomtr3, ntr3, MED_MAILLE, MED_TRIA3) < 0 ) {
    00106     MESSAGE("Impossible d'ecrire les noms des triangles : ");
    00107     return -1;
    00108   }
    00109
    00110   /* ecriture (optionnelle) des numeros des triangles */
    00111   if ( MEDnumEcr(fid,maa,numtr3,ntr3,MED_MAILLE,MED_TRIA3) < 0 ) {
    00112     MESSAGE("Impossible d'ecrire les numéros des triangles : ");
    00113     return -1;
    00114   }
    00115
    00116   /* ecriture des numeros des familles des triangles */
    00117   if ( MEDfamEcr(fid,maa,nufatr3,ntr3,MED_MAILLE,MED_TRIA3) < 0 ) {
    00118     MESSAGE("Impossible d'ecrire les numéros de famille des triangles : ");
    00119     return -1;
    00120   }
    00121
    00122   /* fermeture du fichier */
    00123   if ( MEDfermer(fid) < 0 ) {
    00124     MESSAGE("Impossible de fermerle fichier : ");
    00125     return -1;
    00126   }
    00127
    00128   return 0;
    00129
    00130 }
    00131
    00132
    00133