Ignore:
Timestamp:
11/16/12 08:10:16 (12 years ago)
Author:
Mathieu Morlighem
Message:

merged trunk-jpl and trunk for revision 13974

Location:
issm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk

  • issm/trunk/src

  • issm/trunk/src/c/Container/Parameters.cpp

    r13395 r13975  
    4545
    4646        for ( object=objects.begin() ; object < objects.end(); object++ ){
    47                 param=(Param*)(*object);
     47                param=dynamic_cast<Param*>(*object);
    4848                if(param->InstanceEnum()==enum_type) return true;
    4949        }
     
    5353/*FUNCTION Parameters::FindParam(bool* pbool,int enum_type){{{*/
    5454void Parameters::FindParam(bool* pbool,int enum_type){ _assert_(this);
    55        
    56         vector<Object*>::iterator object;
    57         Param* param=NULL;
    58 
    59         for ( object=objects.begin() ; object < objects.end(); object++ ){
    60 
    61                 param=(Param*)(*object);
     55
     56        vector<Object*>::iterator object;
     57        Param* param=NULL;
     58
     59        for ( object=objects.begin() ; object < objects.end(); object++ ){
     60
     61                param=dynamic_cast<Param*>(*object);
    6262                if(param->InstanceEnum()==enum_type){
    6363                        param->GetParameterValue(pbool);
     
    7070/*FUNCTION Parameters::FindParam(int* pinteger,int enum_type){{{*/
    7171void Parameters::FindParam(int* pinteger,int enum_type){ _assert_(this);
    72        
    73         vector<Object*>::iterator object;
    74         Param* param=NULL;
    75 
    76         for ( object=objects.begin() ; object < objects.end(); object++ ){
    77 
    78                 param=(Param*)(*object);
     72
     73        vector<Object*>::iterator object;
     74        Param* param=NULL;
     75
     76        for ( object=objects.begin() ; object < objects.end(); object++ ){
     77
     78                param=dynamic_cast<Param*>(*object);
    7979                if(param->InstanceEnum()==enum_type){
    8080                        param->GetParameterValue(pinteger);
     
    8787/*FUNCTION Parameters::FindParam(IssmDouble* pscalar, int enum_type){{{*/
    8888void Parameters::FindParam(IssmDouble* pscalar, int enum_type){ _assert_(this);
    89        
    90         vector<Object*>::iterator object;
    91         Param* param=NULL;
    92 
    93         for ( object=objects.begin() ; object < objects.end(); object++ ){
    94 
    95                 param=(Param*)(*object);
     89
     90        vector<Object*>::iterator object;
     91        Param* param=NULL;
     92
     93        for ( object=objects.begin() ; object < objects.end(); object++ ){
     94
     95                param=dynamic_cast<Param*>(*object);
    9696                if(param->InstanceEnum()==enum_type){
    9797                        param->GetParameterValue(pscalar);
     
    110110        for ( object=objects.begin() ; object < objects.end(); object++ ){
    111111
    112                 param=(Param*)(*object);
     112                param=dynamic_cast<Param*>(*object);
    113113                if(param->InstanceEnum()==enum_type){
    114114                        param->GetParameterValue(pscalar,time);
     
    121121/*FUNCTION Parameters::FindParam(char** pstring,int enum_type){{{*/
    122122void Parameters::FindParam(char** pstring,int enum_type){ _assert_(this);
    123        
    124         vector<Object*>::iterator object;
    125         Param* param=NULL;
    126 
    127         for ( object=objects.begin() ; object < objects.end(); object++ ){
    128 
    129                 param=(Param*)(*object);
     123
     124        vector<Object*>::iterator object;
     125        Param* param=NULL;
     126
     127        for ( object=objects.begin() ; object < objects.end(); object++ ){
     128
     129                param=dynamic_cast<Param*>(*object);
    130130                if(param->InstanceEnum()==enum_type){
    131131                        param->GetParameterValue(pstring);
     
    139139/*FUNCTION Parameters::FindParam(char*** pstringarray,int* pM,int enum_type){{{*/
    140140void Parameters::FindParam(char*** pstringarray,int* pM,int enum_type){ _assert_(this);
    141        
    142         vector<Object*>::iterator object;
    143         Param* param=NULL;
    144 
    145         for ( object=objects.begin() ; object < objects.end(); object++ ){
    146 
    147                 param=(Param*)(*object);
     141
     142        vector<Object*>::iterator object;
     143        Param* param=NULL;
     144
     145        for ( object=objects.begin() ; object < objects.end(); object++ ){
     146
     147                param=dynamic_cast<Param*>(*object);
    148148                if(param->InstanceEnum()==enum_type){
    149149                        param->GetParameterValue(pstringarray,pM);
     
    163163        for ( object=objects.begin() ; object < objects.end(); object++ ){
    164164
    165                 param=(Param*)(*object);
     165                param=dynamic_cast<Param*>(*object);
    166166                if(param->InstanceEnum()==enum_type){
    167167                        param->GetParameterValue(pintarray,pM);
     
    181181        for ( object=objects.begin() ; object < objects.end(); object++ ){
    182182
    183                 param=(Param*)(*object);
     183                param=dynamic_cast<Param*>(*object);
    184184                if(param->InstanceEnum()==enum_type){
    185185                        param->GetParameterValue(pintarray,pM,pN);
     
    199199        for ( object=objects.begin() ; object < objects.end(); object++ ){
    200200
    201                 param=(Param*)(*object);
     201                param=dynamic_cast<Param*>(*object);
    202202                if(param->InstanceEnum()==enum_type){
    203203                        param->GetParameterValue(pIssmDoublearray,pM);
     
    217217        for ( object=objects.begin() ; object < objects.end(); object++ ){
    218218
    219                 param=(Param*)(*object);
     219                param=dynamic_cast<Param*>(*object);
    220220                if(param->InstanceEnum()==enum_type){
    221221                        param->GetParameterValue(pIssmDoublearray,pM,pN);
     
    229229/*FUNCTION Parameters::FindParam(IssmDouble*** parray,int* pM,int** pmdims_array,int** pndims_array,int enum_type){{{*/
    230230void Parameters::FindParam(IssmDouble*** parray,int* pM,int** pmdims_array,int** pndims_array,int enum_type){ _assert_(this);
    231        
    232         vector<Object*>::iterator object;
    233         Param* param=NULL;
    234 
    235         for ( object=objects.begin() ; object < objects.end(); object++ ){
    236 
    237                 param=(Param*)(*object);
     231
     232        vector<Object*>::iterator object;
     233        Param* param=NULL;
     234
     235        for ( object=objects.begin() ; object < objects.end(); object++ ){
     236
     237                param=dynamic_cast<Param*>(*object);
    238238                if(param->InstanceEnum()==enum_type){
    239239                        param->GetParameterValue(parray,pM,pmdims_array,pndims_array);
     
    246246/*FUNCTION Parameters::FindParam(Vector<IssmDouble>** pvec,int enum_type){{{*/
    247247void Parameters::FindParam(Vector<IssmDouble>** pvec,int enum_type){ _assert_(this);
    248        
    249         vector<Object*>::iterator object;
    250         Param* param=NULL;
    251 
    252         for ( object=objects.begin() ; object < objects.end(); object++ ){
    253 
    254                 param=(Param*)(*object);
     248
     249        vector<Object*>::iterator object;
     250        Param* param=NULL;
     251
     252        for ( object=objects.begin() ; object < objects.end(); object++ ){
     253
     254                param=dynamic_cast<Param*>(*object);
    255255                if(param->InstanceEnum()==enum_type){
    256256                        param->GetParameterValue(pvec);
     
    264264/*FUNCTION Parameters::FindParam(Matrix<IssmDouble>** pmat,int enum_type){{{*/
    265265void Parameters::FindParam(Matrix<IssmDouble>** pmat,int enum_type){ _assert_(this);
    266        
    267         vector<Object*>::iterator object;
    268         Param* param=NULL;
    269 
    270         for ( object=objects.begin() ; object < objects.end(); object++ ){
    271 
    272                 param=(Param*)(*object);
     266
     267        vector<Object*>::iterator object;
     268        Param* param=NULL;
     269
     270        for ( object=objects.begin() ; object < objects.end(); object++ ){
     271
     272                param=dynamic_cast<Param*>(*object);
    273273                if(param->InstanceEnum()==enum_type){
    274274                        param->GetParameterValue(pmat);
     
    288288        for ( object=objects.begin() ; object < objects.end(); object++ ){
    289289
    290                 param=(Param*)(*object);
     290                param=dynamic_cast<Param*>(*object);
    291291                if(param->InstanceEnum()==enum_type){
    292292                        param->GetParameterValue(pfid);
     293                        return;
     294                }
     295        }
     296        _error_("could not find parameter " << EnumToStringx(enum_type));
     297}
     298/*}}}*/
     299/*FUNCTION Parameters::FindParam(DataSet** pdataset,int enum_type){{{*/
     300void Parameters::FindParam(DataSet** pdataset,int enum_type){
     301        _assert_(this);
     302
     303        vector<Object*>::iterator object;
     304        Param* param=NULL;
     305
     306        for ( object=objects.begin() ; object < objects.end(); object++ ){
     307
     308                param=dynamic_cast<Param*>(*object);
     309                if(param->InstanceEnum()==enum_type){
     310                        param->GetParameterValue(pdataset);
    293311                        return;
    294312                }
     
    302320
    303321        Param* param=NULL;
    304        
    305         /*first, figure out if the param has already been created: */
    306         param=(Param*)this->FindParamObject(enum_type);
     322
     323        /*first, figure out if the param has already been created: */
     324        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    307325
    308326        if(param) param->SetValue(boolean); //already exists, just set it.
     
    314332
    315333        Param* param=NULL;
    316        
    317         /*first, figure out if the param has already been created: */
    318         param=(Param*)this->FindParamObject(enum_type);
     334
     335        /*first, figure out if the param has already been created: */
     336        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    319337
    320338        if(param) param->SetValue(integer); //already exists, just set it.
     
    326344
    327345        Param* param=NULL;
    328        
    329         /*first, figure out if the param has already been created: */
    330         param=(Param*)this->FindParamObject(enum_type);
     346
     347        /*first, figure out if the param has already been created: */
     348        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    331349
    332350        if(param) param->SetValue(scalar); //already exists, just set it.
     
    338356
    339357        Param* param=NULL;
    340        
    341         /*first, figure out if the param has already been created: */
    342         param=(Param*)this->FindParamObject(enum_type);
     358
     359        /*first, figure out if the param has already been created: */
     360        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    343361
    344362        if(param) param->SetValue(string); //already exists, just set it.
     
    350368
    351369        Param* param=NULL;
    352        
    353         /*first, figure out if the param has already been created: */
    354         param=(Param*)this->FindParamObject(enum_type);
     370
     371        /*first, figure out if the param has already been created: */
     372        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    355373
    356374        if(param) param->SetValue(stringarray,M); //already exists, just set it.
     
    362380
    363381        Param* param=NULL;
    364        
    365         /*first, figure out if the param has already been created: */
    366         param=(Param*)this->FindParamObject(enum_type);
     382
     383        /*first, figure out if the param has already been created: */
     384        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    367385
    368386        if(param) param->SetValue(IssmDoublearray,M); //already exists, just set it.
     
    374392
    375393        Param* param=NULL;
    376        
    377         /*first, figure out if the param has already been created: */
    378         param=(Param*)this->FindParamObject(enum_type);
     394
     395        /*first, figure out if the param has already been created: */
     396        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    379397
    380398        if(param) param->SetValue(IssmDoublearray,M,N); //already exists, just set it.
     
    388406
    389407        /*first, figure out if the param has already been created: */
    390         param=(Param*)this->FindParamObject(enum_type);
     408        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    391409
    392410        if(param) param->SetValue(intarray,M); //already exists, just set it.
     
    400418
    401419        /*first, figure out if the param has already been created: */
    402         param=(Param*)this->FindParamObject(enum_type);
     420        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    403421
    404422        if(param) param->SetValue(intarray,M,N); //already exists, just set it.
     
    410428
    411429        Param* param=NULL;
    412        
    413         /*first, figure out if the param has already been created: */
    414         param=(Param*)this->FindParamObject(enum_type);
     430
     431        /*first, figure out if the param has already been created: */
     432        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    415433
    416434        if(param) param->SetValue(vector); //already exists, just set it.
     
    422440
    423441        Param* param=NULL;
    424        
    425         /*first, figure out if the param has already been created: */
    426         param=(Param*)this->FindParamObject(enum_type);
     442
     443        /*first, figure out if the param has already been created: */
     444        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    427445
    428446        if(param) param->SetValue(matrix); //already exists, just set it.
     
    436454
    437455        /*first, figure out if the param has already been created: */
    438         param=(Param*)this->FindParamObject(enum_type);
     456        param=dynamic_cast<Param*>(this->FindParamObject(enum_type));
    439457
    440458        if(param) param->SetValue(fid); //already exists, just set it.
     
    449467
    450468        for ( object=objects.begin() ; object < objects.end(); object++ ){
    451                 param=(Param*)(*object);
     469                param=dynamic_cast<Param*>(*object);
    452470                param->UnitConversion(direction_enum);
    453471        }
     
    464482        for ( object=objects.begin() ; object < objects.end(); object++ ){
    465483
    466                 param=(Param*)(*object);
     484                param=dynamic_cast<Param*>(*object);
    467485                if(param->InstanceEnum()==enum_type){
    468486                        return (*object);
Note: See TracChangeset for help on using the changeset viewer.