MEDmeshGridTypeRd.c
Aller à la documentation de ce fichier.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <med.h>
00020 #include <med_config.h>
00021 #include <med_outils.h>
00022
00023 #include <string.h>
00024 #include <stdlib.h>
00025
00035 med_err
00036 MEDmeshGridTypeRd(const med_idt fid,
00037 const char * const meshname,
00038 med_grid_type * const gridtype)
00039 {
00040 med_err _ret=-1;
00041 med_idt _meshid=0;
00042 char _path[MED_TAILLE_MAA+MED_NAME_SIZE+1]=MED_MAA;
00043 med_mesh_type _meshtype;
00044 med_int _intmeshtype=MED_UNDEF_MESH_TYPE;
00045 med_int _intgridtype=MED_UNDEF_GRID_TYPE;
00046
00047
00048
00049
00050 _MEDmodeErreurVerrouiller();
00051
00052
00053
00054
00055 strcat(_path,meshname);
00056 if ((_meshid = _MEDdatagroupOuvrir(fid,_path)) < 0) {
00057 MED_ERR_(_ret,MED_ERR_OPEN,MED_ERR_DATAGROUP,_path);
00058 ISCRUTE_id(_meshid);goto ERROR;
00059 }
00060
00061
00062
00063
00064 if ( _MEDattrEntierLire(_meshid,MED_NOM_TYP,&_intmeshtype) < 0) {
00065 MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_ERR_MESH_MSG);
00066 SSCRUTE(meshname);SSCRUTE(MED_NOM_TYP); goto ERROR;
00067 }
00068 _meshtype = (med_mesh_type) (_intmeshtype);
00069
00070 if (_meshtype == MED_UNSTRUCTURED_MESH) {
00071 MED_ERR_(_ret,MED_ERR_INVALID,MED_ERR_ATTRIBUTE,MED_ERR_MESH_MSG);
00072 SSCRUTE(meshname);SSCRUTE(MED_NOM_TYP);ISCRUTE_int(_meshtype); goto ERROR;
00073 }
00074
00075
00076
00077
00078
00079 if ( _MEDattrEntierLire(_meshid,MED_NOM_GTY,&_intgridtype) < 0) {
00080 MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_ERR_MESH_MSG);
00081 SSCRUTE(meshname);SSCRUTE(MED_NOM_GTY);
00082 ISCRUTE(_intgridtype);goto ERROR;
00083 }
00084 *gridtype = (med_grid_type) (_intgridtype);
00085
00086 _ret = 0;
00087
00088 ERROR:
00089
00090 if (_meshid>0) if (_MEDdatagroupFermer(_meshid) < 0) {
00091 MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATAGROUP,_path);
00092 ISCRUTE_id(_meshid);
00093 }
00094
00095 return _ret;
00096 }