_MEDequivalenceCorrespondenceSizeInfo236.c

Aller à la documentation de ce fichier.
00001 /*  This file is part of MED.
00002  *
00003  *  COPYRIGHT (C) 1999 - 2011  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 #include <med.h>
00021 #include <med_config.h>
00022 #include <med_outils.h>
00023 #include <string.h>
00024 #include <stdlib.h>
00025 
00026 
00027 #include <2.3.6/med23v30.h>
00028 #include <2.3.6/med23v30_proto.h>
00029 #include "2.3.6/med23v30_misc.h"
00030 
00031 void _MEDequivalenceCorrespondenceSizeInfo236( int dummy, ...) {
00032 
00033   va_list params;
00034   va_start(params,dummy);
00035 
00036   const med_idt              fid      = va_arg(params,const med_idt               );
00037   const char * const         meshname = va_arg(params,const char * const          );
00038   const char * const         equivname= va_arg(params,const char * const          );
00039   const med_int              numdt    = va_arg(params,const med_int               );
00040   const med_int              numit    = va_arg(params,const med_int               );
00041   const int                  corit    = va_arg(params,const int                   );
00042   med_entity_type * const    entitype = va_arg(params,med_entity_type * const     );
00043   med_geometry_type* const   geotype  = va_arg(params,med_geometry_type* const    );
00044   med_int * const            nentity  = va_arg(params,med_int * const             );
00045   med_err *                  fret     = va_arg(params,med_err *                   );
00046 
00047   med_err   _ret=-1,_err=-1;
00048   char      _path[MED_TAILLE_MAA+MED_TAILLE_EQS+2*MED_TAILLE_NOM+1+
00049                  2*MED_TAILLE_NOM_ENTITE+1+1]=MED_MAA;
00050   char      _entgeoname[2*MED_TAILLE_NOM_ENTITE+2]="";
00051   med_size  _nocstpncorrespondence=0;
00052   med_int   _intentitytype;
00053   med_int   _intgeotype;
00054   int       _num = corit -1;
00055 
00056   if ( (numdt != MED_NO_DT) || (numit != MED_NO_IT) ) {
00057     MED_ERR_(_ret,MED_ERR_INVALID,MED_ERR_PARAMETER,"");
00058     ISCRUTE(numdt);ISCRUTE(numit); goto ERROR;
00059   }
00060 
00061   /*
00062    * On inhibe le gestionnaire d'erreur
00063    */
00064   _MEDmodeErreurVerrouiller();
00065 
00066   strcat(_path,meshname);
00067   strcat(_path,MED_EQS);
00068   strcat(_path,equivname);
00069   strcat(_path,"/");
00070 
00071 
00072   /*
00073    * On recupere le nom de <entitype>[.<geotype>]
00074    */
00075   if ( _MEDobjectGetName(fid, _path ,_num, &_path[strlen(_path)]) < 0 ) {
00076     MED_ERR_(_ret,MED_ERR_ACCESS,MED_ERR_DATAGROUP,_path);ISCRUTE_int(corit);
00077     goto ERROR;
00078   }
00079 
00080   if ( _MEDattributeNumRdByName(fid, _path, MED_NOM_ENT,MED_INTERNAL_INT,(unsigned char *)&_intentitytype) < 0 ) {
00081     MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_NOM_ENT);
00082     SSCRUTE(_path);ISCRUTE(_intentitytype);goto ERROR;
00083   }
00084   *entitype = (med_entity_type) _intentitytype;
00085 
00086   if ( _MEDattributeNumRdByName(fid, _path,MED_NOM_GEO,MED_INTERNAL_INT,(unsigned char *)&_intgeotype) < 0) {
00087     MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_NOM_GEO);
00088     SSCRUTE(_path);ISCRUTE(_intgeotype);goto ERROR;
00089   }
00090   *geotype = (med_geometry_type) _intgeotype;
00091 
00092 
00093   if (  _MEDattributeNumRdByName(fid, _path, MED_NOM_NBR,MED_INTERNAL_INT, (unsigned char *) nentity) < 0) {
00094     MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_ERR_EQUIVALENCE_MSG);
00095     SSCRUTE(_path);SSCRUTE(MED_NOM_NBR);ISCRUTE(*nentity);
00096     goto ERROR;
00097   }
00098 
00099   _ret = 0;
00100  ERROR:
00101 
00102   va_end(params);
00103   *fret = _ret;
00104 
00105   return;
00106 }

Généré le Mon May 16 17:10:22 2011 pour MED fichier par  doxygen 1.6.1