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
00024 #include <2.3.6/med23v30.h>
00025 #include <2.3.6/med23v30_proto.h>
00026 #include "2.3.6/med23v30_misc.h"
00027
00028 void
00029 _MEDfieldComputingStepInfo236(int dummy,...)
00030
00031 {
00032
00033 va_list params;
00034 va_start(params,dummy);
00035
00036 const med_idt fid = va_arg(params,const med_idt );
00037 const char * const fieldname = va_arg(params,const char * const );
00038 const int csit = va_arg(params,const int );
00039 med_int * const numdt = va_arg(params,med_int * const );
00040 med_int * const numit = va_arg(params,med_int * const );
00041 med_float * const dt = va_arg(params,med_float * const );
00042 med_err * fret = va_arg(params, med_err* );
00043
00044
00045 med_err _ret=-1,_err=0;
00046 med_size _num=csit-1;
00047
00048 med_idt _datagroup1=0;
00049 char _datagroupname1[2*MED_MAX_PARA+1] ="";
00050 char _ent_geo [2*MED_TAILLE_NOM_ENTITE+2]="";
00051 char _path [(MED_TAILLE_CHA+MED_TAILLE_NOM+1)+
00052 (2*MED_TAILLE_NOM_ENTITE+1)+1+(2*MED_MAX_PARA)+1]=MED_CHA;
00053 med_size _ncpst=0;
00054 med_bool _checkmultiplemesh=MED_TRUE, _multiplemesh =MED_FALSE;
00055 med_bool _checkmeshname =MED_TRUE, _samedefaultmeshname=MED_FALSE;
00056
00057
00058
00059
00060 _MEDmodeErreurVerrouiller();
00061
00062
00063
00064
00065 strcat(_path,fieldname);
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080 if ( _MEDobjectGetName(fid, _path ,0, _ent_geo) < 0 ) {
00081 MED_ERR_(_ret,MED_ERR_ACCESS,MED_ERR_DATAGROUP,_path);
00082 SSCRUTE(_path); SSCRUTE(_ent_geo); goto ERROR;
00083 }
00084
00085 strcat(_path,"/");
00086 strcat(_path,_ent_geo);
00087
00088 if ( _MEDobjectGetName(fid, _path ,_num, _datagroupname1) < 0 ) {
00089 MED_ERR_(_ret,MED_ERR_ACCESS,MED_ERR_DATAGROUP,_path);
00090 SSCRUTE(_path); SSCRUTE(_ent_geo); goto ERROR;
00091 }
00092
00093 strcat(_path,"/");
00094 strcat(_path,_datagroupname1);
00095
00096 if ((_datagroup1 = _MEDdatagroupOuvrir(fid,_path)) < 0) {
00097 MED_ERR_(_ret,MED_ERR_OPEN,MED_ERR_DATAGROUP,_path);
00098 goto ERROR;
00099 }
00100
00101
00102
00103
00104
00105
00106 if (_MEDattrEntierLire(_datagroup1,MED_NOM_NDT,(med_int*) numdt) < 0) {
00107 MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_NOM_NDT);
00108 SSCRUTE(_path);ISCRUTE(*numdt);goto ERROR;
00109 }
00110
00111 if (_MEDattrFloatLire(_datagroup1,MED_NOM_PDT,(med_float*) dt) < 0) {
00112 MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_NOM_PDT);
00113 SSCRUTE(_path);RSCRUTE(*dt);goto ERROR;
00114 }
00115
00116 if (_MEDattrEntierLire(_datagroup1,MED_NOM_NOR,(med_int*) numit) < 0) {
00117 MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_NOM_NOR);
00118 SSCRUTE(_path);ISCRUTE(*numit);goto ERROR;
00119 }
00120
00121
00122 _ret = 0;
00123
00124 ERROR:
00125
00126
00127
00128 if (_datagroup1>0) if (_MEDdatagroupFermer(_datagroup1) < 0) {
00129 MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATAGROUP,_path);
00130 ISCRUTE_id(_datagroup1);
00131 }
00132
00133 va_end(params);
00134 *fret = _ret;
00135 return;
00136
00137 }