Back to index

salome-med  6.5.0
MEDgridCr.cxx
Go to the documentation of this file.
00001 /*************************************************************************
00002 * COPYRIGHT (C) 1999 - 2002  EDF R&D
00003 * THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
00004 * IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE 
00005 * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; 
00006 * EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
00007 *  
00008 * THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
00009 * WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
00010 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
00011 * LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
00012 *
00013 * YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
00014 * ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
00015 * INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
00016 *
00017 *************************************************************************/
00018 
00019 #include "med.hxx"
00020 #include "med_outils.hxx"
00021 
00022 #include <cstring>
00023 
00024 namespace med_2_1{
00025 
00026 med_err 
00027 MEDgridCr(med_idt fid, char *maillage, med_int dim, med_grid_type typ) 
00028 {
00029     med_idt maaid, root;
00030     char    chemin[MED_TAILLE_MAA+1];
00031 
00032     /* On inhibe le gestionnaire d'erreur */
00033     _MEDmodeErreurVerrouiller();
00034 
00035     /* Si la racine n'existe pas on la cree */
00036     strncpy(chemin, MED_MAA, strlen(MED_MAA)-1);
00037     chemin[MED_TAILLE_MAA-1] = '\0';
00038     if ((root = _MEDdatagroupOuvrir(fid, chemin)) < 0)
00039         if ((root = _MEDdatagroupCreer(fid, chemin)) < 0)
00040             return(-1);
00041 
00042     /* si le maillage existe deja => erreur */
00043     if (_MEDdatagroupOuvrir(root, maillage) > 0) {
00044         return(-1);
00045     };
00046 
00047     /* Creation du Data Group */
00048     maaid = _MEDdatagroupCreer(root, maillage);
00049     if (maaid < 0) return(-1);
00050 
00051     /* Creation de l'attribut dimension */
00052     if (_MEDattrEntierEcrire(maaid, MED_NOM_DIM, &dim, MED_REMP) < 0) {
00053         return(-1);
00054     };
00055 
00056     /* Creation de l'attribut grille */
00057     if (_MEDattrEntierEcrire(maaid, MED_NOM_GRD, &typ, MED_REMP) < 0) {
00058         return(-1);
00059     };
00060 
00061     /* Nettoyages divers */
00062     if ( _MEDdatagroupFermer(maaid) < 0) return(-1);
00063     if (_MEDdatagroupFermer(root)   < 0) return(-1);
00064     return(0);
00065 }
00066 
00067 }