MEDmeshAttributeRd.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 #include <string.h>
00023
00035 med_err
00036 MEDmeshAttributeRd(const med_idt fid,
00037 const char * const meshname,
00038 med_int * const isolatednodes,
00039 med_int * const verticesnodes,
00040 med_int * const cellmaxnodes)
00041 {
00042 med_err _ret=-1;
00043 med_idt _meshid;
00044 char _path [MED_TAILLE_MAA+MED_NAME_SIZE+1]=MED_MAA;
00045
00046 *isolatednodes=0;
00047 *verticesnodes=0;
00048 *cellmaxnodes =0;
00049
00050
00051
00052
00053 _MEDmodeErreurVerrouiller();
00054
00055
00056
00057
00058
00059 strcat(_path,meshname);
00060 if ((_meshid = _MEDdatagroupOuvrir(fid,_path)) < 0) {
00061 MED_ERR_(_ret,MED_ERR_OPEN,MED_ERR_DATAGROUP,_path);
00062 ISCRUTE_id(_meshid);goto ERROR;
00063 }
00064
00065
00066
00067
00068
00069 if ( _MEDattrEntierLire(_meshid,MED_NOM_NNI,isolatednodes) < 0 ) {
00070 _ret = MED_ERR_READ+MED_ERR_ATTRIBUTE;
00071 } else {
00072 _ret =0;
00073 }
00074
00075
00076
00077
00078 if ( _MEDattrEntierLire(_meshid,MED_NOM_NNS,verticesnodes) < 0 ) {
00079 if (_ret >= 0 ) goto ERROR;
00080 } else {
00081 if (_ret < 0 ) goto ERROR;
00082 }
00083
00084
00085
00086
00087
00088 if ( _MEDattrEntierLire(_meshid,MED_NOM_NNM,cellmaxnodes) < 0 ) {
00089 if (_ret >= 0 ) goto ERROR;
00090 } else {
00091 if (_ret < 0 ) goto ERROR;
00092 }
00093
00094 _ret = 0;
00095 ERROR:
00096
00097 if (_meshid>0) if (_MEDdatagroupFermer(_meshid) < 0) {
00098 MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATAGROUP,_path);
00099 ISCRUTE_id(_meshid);
00100 }
00101
00102 return _ret;
00103 }
00104