Exemple #1
0
med_int 
nmipfipi(med_int *fid, med_int *it, char *name,
	 med_int *gtype, med_int *cnode,  med_int *nbf, med_int *nvar,
	 med_int *mdeg, med_int *nmaxc)
#endif
{
  med_int _ret;
  char _fs1[MED_NAME_SIZE+1];
  med_geometry_type _gtype;
  med_bool _cnode;

  _ret = (med_int) MEDinterpInfo((med_idt) *fid,
				 (med_int) *it,
				 _fs1,
				 &_gtype,
				   &_cnode,
				 (med_int *) nbf,
				 (med_int *) nvar,
				 (med_int *) mdeg, 
				 (med_int *) nmaxc ); 

  _MEDc2fString(_fs1,name,MED_NAME_SIZE);  
  *gtype = (med_int) _gtype;
  *cnode = (med_int) _cnode;

  return(_ret);
}
Exemple #2
0
int main (int argc, char **argv)

{
  med_err           _ret=-1;
  med_idt           _fid=0;

  med_int           _ninterp=0;
  int               _interpit                   =0;
  char              _interpname[MED_NAME_SIZE+1]="";
  med_geometry_type _geotype                    =MED_NONE;
  med_bool          _cellnodes                  =MED_FALSE;
  med_int           _nbasisfunc              =0;
  med_int           _nvariable               =0;
  med_int           _maxdegree                  =0;
  med_int           _nmaxcoefficient            =0;


 /* Ouverture en mode creation du fichier "current.med" */
  _fid = MEDfileOpen("current.med",MED_ACC_RDONLY);
  if (_fid < 0) {
    MESSAGE("Erreur a la creation du fichier current.med");
    return -1;
  }

  if ( (_ninterp = MEDnInterp(_fid)) <0) _ret=_ninterp;

  ISCRUTE(_ninterp);

  for ( _interpit=1; _interpit<= _ninterp; ++_interpit) {

    if ( (_ret = MEDinterpInfo(_fid,
			       _interpit,
			       _interpname,
			       &_geotype,
			       &_cellnodes,
			       &_nbasisfunc,
			       &_nvariable,
			       &_maxdegree,
			       &_nmaxcoefficient
			       ) <0) ) {
      MESSAGE("Erreur à la création de la fonction d'interpolation n°");ISCRUTE(_interpit);
      goto ERROR;
    }

    fprintf(stdout,"Fonction d'interpolation n° %d |%s| sur le type géométrique n° %d\n",
	    _interpit,_interpname, _geotype);

    if ( _cellnodes )
      if ( _nbasisfunc == (_geotype % 100) )
	fprintf(stdout,"\t Les noeuds de construction sont les noeuds de la maille de référence.\n");
      else {
	MESSAGE("Erreur : le nombre de noeuds de construction "\
		"est différent du nombre de noeuds de la maille de référence.\n");
	ISCRUTE(_nbasisfunc); ISCRUTE(_geotype % 100);
      }

    if ( _nvariable != (_geotype / 100) ) {
	MESSAGE("Erreur : le nombre de variables  "\
		"est différent de la dimension de l'espace de la maille de référence.\n");
	ISCRUTE(_nvariable); ISCRUTE (_geotype / 100);
    } else
      fprintf(stdout,"\t Il y a  %d fonctions de base avec %d variables\n ",_nbasisfunc,_nvariable);
    fprintf(stdout,"\t Le degré maximum des fonctions de base est %d et possèdent au maximum %d coefficients\n"
	    ,_maxdegree,_nmaxcoefficient);

  }

  if (MEDfileClose(_fid) < 0) {
    MESSAGE("ERROR : file closing");
    return -1;
  }

  _ret=0;
 ERROR:

  return _ret;

}