med_err MEDmeshEntityFamilyNumberRd(const med_idt fid, const char* const meshname, const med_int numdt, const med_int numit, const med_entity_type entitype, const med_geometry_type geotype, med_int * const number) { med_err _ret = -1; med_entity_type _entitytype=entitype; if ( entitype == MED_NODE_ELEMENT ) _entitytype=MED_NODE ; _ret= _MEDmeshAdvancedRd(fid, meshname, MED_FAMILY_NUMBER, MED_NO_NAME, MED_INTERNAL_UNDEF, numdt, numit, _entitytype, geotype, MED_NODAL, MED_UNDEF_STMODE, MED_NO_PROFILE, MED_FULL_INTERLACE, /*Pas d'utilit� ici, car nconstituent==1*/ MED_ALL_CONSTITUENT, NULL, (unsigned char * const) number); return _ret; }
med_err MEDmeshStructElementVarAttRd(const med_idt fid, const char* const meshname, const med_int numdt, const med_int numit, const med_geometry_type mgeotype, const char* const varattname, void* const value ) { med_err _ret = -1; med_entity_type _entitytype=MED_STRUCT_ELEMENT; _ret= _MEDmeshAdvancedRd(fid, meshname, MED_VARIABLE_ATTRIBUTE, varattname, MED_INTERNAL_UNDEF, numdt, numit, _entitytype, mgeotype, MED_NODAL, MED_UNDEF_PFLMODE, MED_NO_PROFILE, MED_FULL_INTERLACE, MED_ALL_CONSTITUENT, NULL, (unsigned char * const) value); return _ret; }
med_err MEDmeshNodeCoordinateRd(const med_idt fid, const char* const meshname, const med_int numdt, const med_int numit, const med_switch_mode switchmode, med_float* const coordinate) { return _MEDmeshAdvancedRd(fid, meshname, MED_COORDINATE, MED_NO_NAME, MED_INTERNAL_UNDEF, numdt, numit, MED_NODE, MED_NONE, MED_NO_CMODE, MED_UNDEF_PFLMODE, MED_NO_PROFILE, switchmode, MED_ALL_CONSTITUENT, NULL, (unsigned char * const) coordinate); }
med_err MEDmeshPolygon2Rd(const med_idt fid, const char* const meshname, const med_int numdt, const med_int numit, const med_entity_type entitype, const med_geometry_type polytype, const med_connectivity_mode cmode, med_int * const polyindex, med_int * const connectivity ) { med_access_mode _MED_ACCESS_MODE; med_idt _meshid=0; med_err _ret = -1; med_data_type _datatype = MED_UNDEF_DATATYPE; med_entity_type _entitytype=entitype; /* * On inhibe le gestionnaire d'erreur HDF 5 */ _MEDmodeErreurVerrouiller(); if ( (_MED_ACCESS_MODE = _MEDmodeAcces(fid) ) == MED_ACC_UNDEF ) { MED_ERR_(_ret,MED_ERR_UNRECOGNIZED,MED_ERR_ACCESSMODE,MED_ERR_FILE_MSG); goto ERROR; } /* Tester le type d'entité ? * MAILLE Ok * FACE OK * ARETE ? * NOEUD KO * NOEUD_MAILLE ? */ if (entitype == MED_NODE_ELEMENT ) _entitytype=MED_NODE ; switch(polytype) { case MED_POLYGON: case MED_POLYGON2: break; default: MED_ERR_(_ret,MED_ERR_RANGE,MED_ERR_GEOMETRIC,MED_ERR_VALUE_MSG); ISCRUTE_int(polytype); goto ERROR; } if (_MEDmeshAdvancedRd(fid, meshname, MED_CONNECTIVITY, MED_NO_NAME, MED_INTERNAL_UNDEF, numdt, numit, _entitytype, polytype, cmode, MED_UNDEF_PFLMODE, MED_NO_PROFILE, MED_FULL_INTERLACE, MED_ALL_CONSTITUENT, NULL, (unsigned char * const)connectivity) < 0 ) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"_MEDmeshAdvancedRd (MED_CONNECTIVITY) "); goto ERROR; } if (_MEDmeshAdvancedRd(fid, meshname, MED_INDEX_NODE, MED_NO_NAME, MED_INTERNAL_UNDEF, numdt, numit, _entitytype, polytype, cmode, MED_UNDEF_PFLMODE, MED_NO_PROFILE, MED_FULL_INTERLACE, MED_ALL_CONSTITUENT, NULL, (unsigned char * const)polyindex) < 0 ) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"_MEDmeshAdvancedRd (MED_INDEX_NODE) "); goto ERROR; } _ret = 0; ERROR: return _ret; }
void _MEDmeshGridIndexCoordinateRd30(int dummy, ...) { med_idt _meshid=0; med_err _ret = -1; med_data_type _datatype = MED_UNDEF_DATATYPE; med_grid_type _gridtype = MED_UNDEF_GRID_TYPE; med_int _intgridtype = 0; med_int _meshdim = 0; char _meshpath[MED_TAILLE_MAA+MED_NAME_SIZE+1]=MED_MAA; med_int _intaxistype=0; MED_VARGS_DECL(const, med_idt , , fid ); MED_VARGS_DECL(const, char* , const , meshname ); MED_VARGS_DECL(const, med_int , , numdt ); MED_VARGS_DECL(const, med_int , , numit ); MED_VARGS_DECL(const, med_int , , axis ); MED_VARGS_DECL(, med_float *, const , gridindex ); MED_VARGS_DECL(, med_err * ,, fret ); va_list params; va_start(params,dummy); MED_VARGS_DEF(const, med_idt , , fid ); MED_VARGS_DEF(const, char* , const , meshname ); MED_VARGS_DEF(const, med_int , , numdt ); MED_VARGS_DEF(const, med_int , , numit ); MED_VARGS_DEF(const, med_int , , axis ); MED_VARGS_DEF(, med_float *, const , gridindex ); MED_VARGS_DEF(, med_err * ,, fret ); /* * On inhibe le gestionnaire d'erreur HDF 5 */ _MEDmodeErreurVerrouiller(); strcat(_meshpath,meshname); if ((_meshid = _MEDdatagroupOuvrir(fid,_meshpath)) < 0) { MED_ERR_(_ret,MED_ERR_OPEN,MED_ERR_DATAGROUP,MED_ERR_MESH_MSG); SSCRUTE(meshname);SSCRUTE(_meshpath); goto ERROR; } /* * Lecture du type de grille (attribut MED_NOM_GTY) */ if (_MEDattrEntierLire(_meshid,MED_NOM_GTY,&_intgridtype) < 0) { MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_ERR_MESH_MSG); SSCRUTE(meshname);SSCRUTE(MED_NOM_GTY);ISCRUTE(_intgridtype);goto ERROR; } _gridtype=(med_grid_type) _intgridtype; if ((_gridtype != MED_CARTESIAN_GRID) && (_gridtype != MED_POLAR_GRID)) { MED_ERR_(_ret,MED_ERR_RANGE,MED_ERR_GRIDTYPE,MED_ERR_MESH_MSG); SSCRUTE(meshname);ISCRUTE_int(_gridtype);goto ERROR; } /* Lecture de l'attribut MED_NOM_REP */ if ( _MEDattrEntierLire(_meshid,MED_NOM_REP,&_intaxistype) < 0) { MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_ERR_MESH_MSG); SSCRUTE(meshname);SSCRUTE(MED_NOM_REP); ISCRUTE(_intaxistype);goto ERROR; } if ((med_mesh_type)( _intaxistype) != MED_CARTESIAN ) { MED_ERR_(_ret,MED_ERR_RANGE,MED_ERR_AXISTYPE,MED_ERR_MESH_MSG); SSCRUTE(meshname);ISCRUTE(_intaxistype);goto ERROR; } /* Lecture de l'attribut MED_NOM_DIM */ if (_MEDattrEntierLire(_meshid,MED_NOM_DIM,&_meshdim) < 0) { MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_ERR_MESH_MSG); SSCRUTE(meshname);SSCRUTE(MED_NOM_DIM);ISCRUTE(_meshdim);goto ERROR; } if (axis > _meshdim ) { MED_ERR_(_ret,MED_ERR_RANGE,MED_ERR_ATTRIBUTE,MED_ERR_MESH_MSG); SSCRUTE(meshname);ISCRUTE(_meshdim);ISCRUTE(axis);goto ERROR; } /* * On ecrit le tableau d'indice dans un dataset HDF */ switch(axis) { case 1 : _datatype = MED_COORDINATE_AXIS1; break; case 2 : _datatype = MED_COORDINATE_AXIS2; break; case 3 : _datatype = MED_COORDINATE_AXIS3; break; default : MED_ERR_(_ret,MED_ERR_RANGE,MED_ERR_GRIDTYPE,MED_ERR_MESH_MSG); SSCRUTE(meshname);ISCRUTE_int(_gridtype);goto ERROR; } if (_MEDmeshAdvancedRd(fid, meshname, _datatype, MED_NO_NAME, MED_INTERNAL_UNDEF, numdt, numit, MED_NODE, MED_NONE, MED_NO_CMODE, MED_UNDEF_PFLMODE, MED_NO_PROFILE, MED_FULL_INTERLACE, MED_ALL_CONSTITUENT, NULL, (unsigned char *) gridindex) < 0 ) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"_MEDmeshAdvancedRd"); goto ERROR; } _ret = 0; ERROR: if (_meshid>0) if (_MEDdatagroupFermer(_meshid) < 0) { MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATAGROUP,_meshpath); ISCRUTE_id(_meshid); } va_end(params); *fret = _ret; return; }