MEDmeshAttributeRd.c

Aller à la documentation de ce fichier.
00001 /*  This file is part of MED.
00002  *
00003  *  COPYRIGHT (C) 1999 - 2015  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 #include <med.h>
00020 #include <med_config.h>
00021 #include <med_outils.h>
00022 #include <string.h>
00023 
00035 med_err
00036 MEDmeshAttributeRd(const med_idt fid,
00037                    const char * const meshname,
00038                    med_int    * const isolatednodes,
00039                    med_int    * const verticesnodes,
00040                    med_int    * const cellmaxnodes)
00041 {
00042   med_err _ret=-1;
00043   med_idt _meshid;
00044   char    _path [MED_TAILLE_MAA+MED_NAME_SIZE+1]=MED_MAA;
00045 
00046   *isolatednodes=0;
00047   *verticesnodes=0;
00048   *cellmaxnodes =0;
00049 
00050   /*
00051    * On inhibe le gestionnaire d'erreur
00052    */
00053   _MEDmodeErreurVerrouiller();
00054 
00055 
00056   /*
00057    * Si le maillage n'existe pas => erreur
00058    */
00059   strcat(_path,meshname);
00060   if ((_meshid = _MEDdatagroupOuvrir(fid,_path)) < 0) {
00061     MED_ERR_(_ret,MED_ERR_OPEN,MED_ERR_DATAGROUP,_path);
00062     ISCRUTE_id(_meshid);goto ERROR;
00063   }
00064 
00065 
00066   /*
00067    * Lecture de l'attribut "Nombre de Noeuds Isoles"
00068    */
00069   if ( _MEDattrEntierLire(_meshid,MED_NOM_NNI,isolatednodes) < 0 ) {
00070     _ret = MED_ERR_READ+MED_ERR_ATTRIBUTE;
00071   } else {
00072     _ret =0;
00073   }
00074 
00075   /*
00076    * Lecture de l'attribut "Nombre de Noeuds Sommets"
00077    */
00078   if ( _MEDattrEntierLire(_meshid,MED_NOM_NNS,verticesnodes) < 0 ) {
00079     if (_ret >= 0 ) goto ERROR;
00080   } else {
00081     if (_ret < 0 ) goto ERROR;
00082   }
00083 
00084 
00085   /*
00086    * Lecture de l'attribut "Nombre de Noeuds Max par maille"
00087    */
00088   if ( _MEDattrEntierLire(_meshid,MED_NOM_NNM,cellmaxnodes) < 0 ) {
00089     if (_ret >= 0 ) goto ERROR;
00090   } else {
00091     if (_ret < 0 ) goto ERROR;
00092   }
00093 
00094   _ret = 0;
00095  ERROR:
00096 
00097   if (_meshid>0)            if (_MEDdatagroupFermer(_meshid) < 0) {
00098     MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATAGROUP,_path);
00099     ISCRUTE_id(_meshid);
00100   }
00101 
00102   return _ret;
00103 }
00104 

Généré le Thu Oct 8 14:26:16 2015 pour MED fichier par  doxygen 1.6.1