MEDparameterComputationStepInfo.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 #include <stdlib.h>
00024
00037 med_err
00038 MEDparameterComputationStepInfo(const med_idt fid,
00039 const char * const paramname,
00040 const int csit,
00041 med_int * const numdt,
00042 med_int * const numit,
00043 med_float * const dt )
00044 {
00045 med_err _ret = -1, _err = -1;
00046 med_idt _cpstidt = 0;
00047 char _path[(MED_TAILLE_NUM_DATA+MED_NAME_SIZE+1)+2*MED_MAX_PARA+1]=MED_NUM_DATA;
00048 int _num=csit-1;
00049 char _cstpname[2*MED_MAX_PARA+1]="";
00050
00051 _MEDmodeErreurVerrouiller();
00052
00053
00054 strcat(_path, paramname);
00055 if ( _MEDobjectGetName(fid, _path ,_num, _cstpname) < 0 ) {
00056 MED_ERR_(_ret,MED_ERR_ACCESS,MED_ERR_DATAGROUP,_path);ISCRUTE_int(_num);
00057 goto ERROR;
00058 }
00059
00060
00061 strcat(_path,"/");
00062 strcat(_path,_cstpname);
00063 if ((_cpstidt = _MEDdatagroupOuvrir(fid,_path)) < 0) {
00064 MED_ERR_(_ret,MED_ERR_OPEN,MED_ERR_DATAGROUP,_path);
00065 goto ERROR;
00066 }
00067
00068
00069 if (_MEDattrEntierLire(_cpstidt, MED_NOM_NDT, (med_int*) numdt) < 0) {
00070 MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_NOM_NDT);
00071 SSCRUTE(_path);ISCRUTE(*numdt);goto ERROR;
00072 }
00073 if (_MEDattrFloatLire(_cpstidt, MED_NOM_PDT, (med_float*) dt) < 0) {
00074 MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_NOM_PDT);
00075 SSCRUTE(_path);RSCRUTE(*dt);goto ERROR;
00076 }
00077 if (_MEDattrEntierLire(_cpstidt, MED_NOM_NOR, (med_int*) numit) < 0) {
00078 MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_NOM_NOR);
00079 SSCRUTE(_path);ISCRUTE(*numit);goto ERROR;
00080 }
00081
00082 _ret = 0;
00083 ERROR:
00084
00085
00086 if (_cpstidt > 0)
00087 if (_MEDdatagroupFermer(_cpstidt) < 0) {
00088 MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATAGROUP,_path);
00089 ISCRUTE_id(_cpstidt);
00090 }
00091
00092 return _ret;
00093 }