示例#1
0
med_int
MEDfieldnComponent(const med_idt fid, 
		   const int ind)
{
  med_err _ret       = -1;
  char    _fieldname[MED_NAME_SIZE+1]="";
  int     _num       = ind-1;
  char    _path        [MED_TAILLE_CHA+MED_NAME_SIZE+1]=MED_CHA;
  /*
   * On inhibe le gestionnaire d'erreur HDF
   */
  _MEDmodeErreurVerrouiller();


  /*
   * On recupere le nom du champ
   */
  if ( _MEDobjectGetName(fid, _path ,_num, _fieldname) < 0 ) {
    MED_ERR_(_ret,MED_ERR_ACCESS,MED_ERR_DATAGROUP,_path);ISCRUTE_int(_num);
    goto ERROR;
  }

  if ( (_ret=MEDfieldnComponentByName( fid, _fieldname )) < 0) {
    MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,MED_ERR_FIELD_MSG);
    SSCRUTE(_fieldname);SSCRUTE(_path);SSCRUTE("MEDfieldnComponentbyName");
    goto ERROR;
  }

 ERROR:
  return _ret;
}
示例#2
0
med_int 
nmfdffin(med_int *fid, char *fname, med_int *fnamelen,
	 char*mname, med_int *localmesh, med_int *type,
	 char *cname, char *cunit, char *dtunit, 
	 med_int *nc)
#endif
{
  med_int _ret;
  char *_fn1;
  char _fs2[MED_NAME_SIZE+1]="";
  char _fs3[MED_SNAME_SIZE+1]="";
  char *_fs4, *_fs5;
  med_field_type _type;
  med_int _nc;
  med_bool _lmesh;

  _fn1 = _MED2cstring((char *) fname, (int) *fnamelen);
  if (!_fn1)
    return(-1);

  _nc = MEDfieldnComponentByName((const med_idt)*fid, _fn1);
  if (_nc < 0)
    return (-1);

  _fs4 = (char *) malloc(sizeof(char)*MED_SNAME_SIZE*(_nc)+1);*_fs4='\0';
  _fs5 = (char *) malloc(sizeof(char)*MED_SNAME_SIZE*(_nc)+1);*_fs5='\0';

  if (!(_fs4&&_fs5))
    return (-1);

  _ret = (med_int) MEDfieldInfoByName((const med_idt)*fid,
				      _fn1,
				      _fs2,
				      &_lmesh,
				      &_type,
				      _fs4,
				      _fs5,
				      _fs3,
				      (med_int *) nc);


  *type = (med_int) _type;
  *localmesh = (med_int) _lmesh;

  _MEDc2fString(_fs2,mname,MED_NAME_SIZE);
  _MEDc2fString(_fs3,dtunit,MED_SNAME_SIZE);
  _MEDc2fString(_fs4,cname,MED_SNAME_SIZE*_nc);
  _MEDc2fString(_fs5,cunit,MED_SNAME_SIZE*_nc);

  free(_fs4);
  free(_fs5);

  _MEDcstringFree(_fn1);

  return _ret;
}
示例#3
0
med_int 
nmfdfncn(med_int *fid, 
	 char* fname, med_int *fnamelen)
#endif
{
  med_int _ret; 
  char *_fn1;

  _fn1 = _MED2cstring((char *) fname, (int) *fnamelen);
  if (!_fn1)
    return(-1);
  
  _ret = (med_int) MEDfieldnComponentByName((const med_idt) *fid,
					    _fn1); 

  _MEDcstringFree(_fn1);

  return(_ret); 
}