예제 #1
0
med_int
nmfdfcre(med_int *fid, char *fname, med_int *fnamelen,
	 med_int *ftype, med_int *ncomp, char *cname, med_int *cnamelen,
	 char *cuname, med_int *cunamelen, char *dtunit, med_int *dtunitlen,
	 char* mname, med_int *mnamelen)
#endif
{
  med_err _ret=0;
  char *_fn1,*_fn2,*_fn3,*_fn4,*_fn5;
  med_field_type _ftype = (med_field_type) *ftype;

  _fn1 = _MED2cstring((char *) fname, (int) *fnamelen);
  if (!_fn1)
	return(-1);
  _fn2 = _MED1cstring((char *) cname, (int) *cnamelen, (int) *ncomp*MED_SNAME_SIZE);
  if (!_fn2)
    return(-1);
  _fn3 = _MED1cstring((char *) cuname, (int) *cunamelen, (int) *ncomp*MED_SNAME_SIZE);
  if (!_fn3)
    return(-1);
  _fn4 = _MED2cstring((char *) dtunit, (int) *dtunitlen);
  if (!_fn4)
	return(-1);
  _fn5 = _MED2cstring((char *) mname, (int) *mnamelen);
  if (!_fn1)
	return(-1);

  _ret = (med_int) MEDfieldCr((const med_idt) *fid,
			      _fn1,
			      _ftype,
			      (med_int) *ncomp,
			      _fn2,
			      _fn3,
			      _fn4,
			      _fn5);

  _MEDcstringFree(_fn1);
  _MEDcstringFree(_fn2);
  _MEDcstringFree(_fn3);
  _MEDcstringFree(_fn4);
  _MEDcstringFree(_fn5);
  
  return (_ret);
}
예제 #2
0
  med_int
nedfscac(med_idt *fid,char *scalaire,med_int *lon1,med_int *data_type,
	 char *desc,med_int *lon2)
#endif
{
  med_int ret;
  med_type_champ typechamp;
  char *fn1, *fn2;

  fn1 = _MED2cstring(scalaire, (int) * lon1);
  fn2 = _MED1cstring(desc, (int) * lon2,MED_TAILLE_DESC);  

  if (!fn1 || !fn2)
    return(-1); 

  typechamp = (med_type_champ) *data_type;
  ret = (med_int) MEDscalaireCr( *fid, fn1, 
				typechamp, (char *)fn2);

  _MEDcstringFree(fn1);
  _MEDcstringFree(fn2); 

  return (ret);
}
예제 #3
0
파일: famcf231.c 프로젝트: vejmarie/libMED
void
nedffamc231(int dummy,...)
#endif
{

  med_int *fid;
  char    *maa;
  med_int *lon1;
  char    *fam;
  med_int *lon2; 
  med_int *num;
  med_int *attr_ident;
  med_int *attr_val;
  char    *attr_desc; 
  med_int *lon3;
  med_int *n_attr;
  char    *groupe ;
  med_int *lon4; 
  med_int *n_groupe;
  med_err *fret;

  med_int ret=-1;
  char *  fn1, *fn2, *fn3, *fn4;

  va_list params;
  va_start(params,dummy);

  fid        = va_arg(params,  med_int* );
  maa        = va_arg(params,  char*    );
  lon1       = va_arg(params,  med_int* );
  fam        = va_arg(params,  char*    );
  lon2       = va_arg(params,  med_int* ); 
  num        = va_arg(params,  med_int* );
  attr_ident = va_arg(params,  med_int* );
  attr_val   = va_arg(params,  med_int* );
  attr_desc  = va_arg(params,  char*    ); 
  lon3       = va_arg(params,  med_int* );
  n_attr     = va_arg(params,  med_int* );
  groupe     = va_arg(params,  char*    );
  lon4       = va_arg(params,  med_int* ); 
  n_groupe   = va_arg(params,  med_int* );
  fret       = va_arg(params,  med_err* );


  fn1 = _MED2cstring(maa, (int) * lon1);
  fn2 = _MED1cstring(fam, (int) * lon2,MED_TAILLE_NOM);
  fn3 = _MED1cstring(attr_desc,(int) * lon3,
		     (int) *n_attr*MED_TAILLE_DESC);
  fn4 = _MED1cstring(groupe, (int) * lon4,
		     (int) *n_groupe*MED_TAILLE_LNOM);
  
  if (!fn1 || !fn2 || !fn3 || !fn4)
    goto ERROR; 

  if( MEDfamCr((med_idt) *fid,fn1,fn2,(med_int) *num, 
	       (med_int *) attr_ident,
	       (med_int *) attr_val, fn3, (med_int) *n_attr, fn4, 
	       (med_int) *n_groupe) < 0 )
    goto ERROR;

  _MEDcstringFree(fn1);
  _MEDcstringFree(fn2); 
  _MEDcstringFree(fn3);
  _MEDcstringFree(fn4);

  ret=0;
 ERROR:
  va_end(params);
  *fret = ret;
  return;
 
}
예제 #4
0
med_int 
nmsefspw(med_int *fid, char *mname, med_int *mnamelen, 
	 char *aname, med_int *anamelen,
	 med_int *atype, med_int *anc, med_int *setype,
	 char *pname, med_int *pnamelen,
	 char *val, med_int *vallen)
#endif
{
  med_int _ret;
  char *_fn1, *_fn2,*_fn3, *_fn4;
  med_attribute_type _atype = (med_attribute_type) *atype;
  med_entity_type _setype = (med_entity_type) *setype;
  int _nentity=0; 
  med_geometry_type _geotype=0;
  med_int _modeldim=0;
  char _supportmeshname[MED_NAME_SIZE+1]="";
  med_entity_type _entitytype=0;
  med_int _nnode=0;
  med_int _ncell=0; 
  med_geometry_type _sgeotype=0; 
  med_int _nconstatt=0; 
  med_bool _anyprofile=0;
  med_int _nvaratt=0;
  med_bool _coordinatechangement=MED_FALSE;
  med_bool _geotransformation=MED_FALSE;

  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
  if (!_fn1)
    return(-1);

  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
  if (!_fn2)
    return(-1);

  _fn3 = _MED2cstring((char *) pname, (int) *pnamelen);
  if (!_fn3)
    return(-1);

  /* on recupere le nom du maillage support */
  _ret = MEDstructElementInfoByName((med_idt) *fid,
				    _fn1,
				    &_geotype, 
				    &_modeldim,
                                    _supportmeshname, 
				    &_entitytype, 
				    &_nnode, 
				    &_ncell,
                                    &_sgeotype, 
				    &_nconstatt, 
				    &_anyprofile, 
				    &_nvaratt);
  if (_ret < 0)
    return (-1);
  
  /* on recupere le nombre d'entite dans le maillage support :
     MED_NODE ou MED_CELL */
  if (_setype == MED_NODE)
    _nentity = MEDmeshnEntity((med_idt) *fid, 
			      _supportmeshname, 
			      MED_NO_DT, 
			      MED_NO_IT, 
			      _setype, 
			      _sgeotype,
			      MED_COORDINATE, 
			      MED_NO_CMODE,
			      &_coordinatechangement,
			      &_geotransformation);
  else
    _nentity = MEDmeshnEntity((med_idt) *fid, 
			      _supportmeshname, 
			      MED_NO_DT, 
			      MED_NO_IT, 
			      _setype, 
			      _sgeotype,
			      MED_CONNECTIVITY, 
			      MED_NODAL,
			      &_coordinatechangement,
			      &_geotransformation);
  if (_nentity < 0)
    return (-1); 
  
  _fn4 = _MED1cstring((char *) val, (int) *vallen*_nentity, (int) *anc*_nentity*MED_NAME_SIZE);
  if (!_fn4)
    return(-1);

  _ret = (med_int) MEDstructElementConstAttWithProfileWr((const med_idt) *fid, 
							 _fn1, 
							 _fn2, 
							 _atype,
							 (med_int) *anc,
							 _setype,
							 _fn3,
							 (void *) _fn4);

  _MEDcstringFree(_fn1);
  _MEDcstringFree(_fn2);
  _MEDcstringFree(_fn3);
  _MEDcstringFree(_fn4);


  return _ret;
}