Changeset 24152
- Timestamp:
- 09/16/19 02:57:07 (6 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/Params
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Params/Parameters.cpp
r23644 r24152 55 55 } 56 56 /*}}}*/ 57 int Parameters::EnumToIndex(int enum_in){/*{{{*/ 58 59 /*Make sure this parameter is at the right place*/ 60 #ifdef _ISSM_DEBUG_ 61 if(enum_in<=ParametersSTARTEnum) _error_("Enum "<<EnumToStringx(enum_in)<<" should appear after ParametersSTARTEnum"); 62 if(enum_in>=ParametersENDEnum) _error_("Enum "<<EnumToStringx(enum_in)<<" should appear before ParametersENDEnum"); 63 #endif 64 return enum_in - ParametersSTARTEnum -1; 65 }/*}}}*/ 57 66 58 67 void Parameters::AddObject(Param* newparam){/*{{{*/ … … 63 72 64 73 /*Get index in array*/ 65 #ifdef _ISSM_DEBUG_ 66 if(param_enum<=ParametersSTARTEnum) _error_("Cannot add param: Enum "<<EnumToStringx(param_enum)<<" should appear after ParametersSTARTEnum"); 67 if(param_enum>=ParametersENDEnum) _error_("Cannot add param: Enum "<<EnumToStringx(param_enum)<<" should appear before ParametersENDEnum"); 68 #endif 69 int index = param_enum - ParametersSTARTEnum -1; 74 int index = EnumToIndex(param_enum); 70 75 71 76 /*Delete param if it already exists*/ … … 238 243 void Parameters::Delete(int param_enum){/*{{{*/ 239 244 240 _assert_(param_enum>ParametersSTARTEnum); 241 _assert_(param_enum<ParametersENDEnum); 242 243 int index = param_enum - ParametersSTARTEnum -1; 245 int index = EnumToIndex(param_enum); 244 246 if(this->params[index]){ 245 247 delete this->params[index]; … … 252 254 bool Parameters::Exist(int param_enum){/*{{{*/ 253 255 254 _assert_(param_enum>ParametersSTARTEnum); 255 _assert_(param_enum<ParametersENDEnum); 256 257 int index = param_enum - ParametersSTARTEnum -1; 256 int index = EnumToIndex(param_enum); 258 257 if(this->params[index]) return true; 259 258 … … 263 262 void Parameters::FindParam(bool* pbool,int param_enum){ _assert_(this);/*{{{*/ 264 263 265 _assert_(param_enum>ParametersSTARTEnum); 266 _assert_(param_enum<ParametersENDEnum); 267 268 int index = param_enum - ParametersSTARTEnum -1; 264 int index = EnumToIndex(param_enum); 269 265 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 270 266 this->params[index]->GetParameterValue(pbool); … … 273 269 void Parameters::FindParam(int* pinteger,int param_enum){ _assert_(this);/*{{{*/ 274 270 275 _assert_(param_enum>ParametersSTARTEnum); 276 _assert_(param_enum<ParametersENDEnum); 277 278 int index = param_enum - ParametersSTARTEnum -1; 271 int index = EnumToIndex(param_enum); 279 272 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 280 273 this->params[index]->GetParameterValue(pinteger); … … 282 275 /*}}}*/ 283 276 void Parameters::FindParam(IssmDouble* pscalar,int param_enum){ _assert_(this);/*{{{*/ 284 _assert_(param_enum>ParametersSTARTEnum); 285 _assert_(param_enum<ParametersENDEnum); 286 287 int index = param_enum - ParametersSTARTEnum -1; 277 int index = EnumToIndex(param_enum); 288 278 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 289 279 this->params[index]->GetParameterValue(pscalar); … … 292 282 void Parameters::FindParam(IssmDouble* pscalar, int param_enum,IssmDouble time){ _assert_(this);/*{{{*/ 293 283 294 _assert_(param_enum>ParametersSTARTEnum); 295 _assert_(param_enum<ParametersENDEnum); 296 297 int index = param_enum - ParametersSTARTEnum -1; 284 int index = EnumToIndex(param_enum); 298 285 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 299 286 this->params[index]->GetParameterValue(pscalar,time); … … 302 289 void Parameters::FindParam(IssmDouble* pscalar,int row,IssmDouble time, int param_enum){ _assert_(this);/*{{{*/ 303 290 304 _assert_(param_enum>ParametersSTARTEnum); 305 _assert_(param_enum<ParametersENDEnum); 306 307 int index = param_enum - ParametersSTARTEnum -1; 291 int index = EnumToIndex(param_enum); 308 292 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 309 293 this->params[index]->GetParameterValue(pscalar,row,time); … … 312 296 void Parameters::FindParam(char** pstring,int param_enum){ _assert_(this);/*{{{*/ 313 297 314 _assert_(param_enum>ParametersSTARTEnum); 315 _assert_(param_enum<ParametersENDEnum); 316 317 int index = param_enum - ParametersSTARTEnum -1; 298 int index = EnumToIndex(param_enum); 318 299 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 319 300 this->params[index]->GetParameterValue(pstring); … … 323 304 void Parameters::FindParam(char*** pstringarray,int* pM,int param_enum){ _assert_(this);/*{{{*/ 324 305 325 _assert_(param_enum>ParametersSTARTEnum); 326 _assert_(param_enum<ParametersENDEnum); 327 328 int index = param_enum - ParametersSTARTEnum -1; 306 int index = EnumToIndex(param_enum); 329 307 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 330 308 this->params[index]->GetParameterValue(pstringarray,pM); … … 333 311 void Parameters::FindParam(int** pintarray,int* pM, int param_enum){ _assert_(this);/*{{{*/ 334 312 335 _assert_(param_enum>ParametersSTARTEnum); 336 _assert_(param_enum<ParametersENDEnum); 337 338 int index = param_enum - ParametersSTARTEnum -1; 313 int index = EnumToIndex(param_enum); 339 314 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 340 315 this->params[index]->GetParameterValue(pintarray,pM); … … 344 319 void Parameters::FindParam(int** pintarray,int* pM,int *pN,int param_enum){ _assert_(this);/*{{{*/ 345 320 346 _assert_(param_enum>ParametersSTARTEnum); 347 _assert_(param_enum<ParametersENDEnum); 348 349 int index = param_enum - ParametersSTARTEnum -1; 321 int index = EnumToIndex(param_enum); 350 322 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 351 323 this->params[index]->GetParameterValue(pintarray,pM,pN); … … 355 327 void Parameters::FindParam(IssmDouble** pIssmDoublearray,int* pM, int param_enum){ _assert_(this);/*{{{*/ 356 328 357 _assert_(param_enum>ParametersSTARTEnum); 358 _assert_(param_enum<ParametersENDEnum); 359 360 int index = param_enum - ParametersSTARTEnum -1; 329 int index = EnumToIndex(param_enum); 361 330 362 331 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); … … 367 336 void Parameters::FindParam(IssmDouble** pIssmDoublearray,int* pM, int* pN,int param_enum){ _assert_(this);/*{{{*/ 368 337 369 _assert_(param_enum>ParametersSTARTEnum); 370 _assert_(param_enum<ParametersENDEnum); 371 372 int index = param_enum - ParametersSTARTEnum -1; 338 int index = EnumToIndex(param_enum); 373 339 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 374 340 this->params[index]->GetParameterValue(pIssmDoublearray,pM,pN); … … 377 343 void Parameters::FindParam(IssmDouble*** parray,int* pM,int** pmdims_array,int** pndims_array,int param_enum){ _assert_(this);/*{{{*/ 378 344 379 _assert_(param_enum>ParametersSTARTEnum); 380 _assert_(param_enum<ParametersENDEnum); 381 382 int index = param_enum - ParametersSTARTEnum -1; 345 int index = EnumToIndex(param_enum); 383 346 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 384 347 this->params[index]->GetParameterValue(parray,pM,pmdims_array,pndims_array); … … 387 350 void Parameters::FindParam(Vector<IssmDouble>** pvec,int param_enum){ _assert_(this);/*{{{*/ 388 351 389 _assert_(param_enum>ParametersSTARTEnum); 390 _assert_(param_enum<ParametersENDEnum); 391 392 int index = param_enum - ParametersSTARTEnum -1; 352 int index = EnumToIndex(param_enum); 393 353 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 394 354 this->params[index]->GetParameterValue(pvec); … … 397 357 void Parameters::FindParam(Matrix<IssmDouble>** pmat,int param_enum){ _assert_(this);/*{{{*/ 398 358 399 _assert_(param_enum>ParametersSTARTEnum); 400 _assert_(param_enum<ParametersENDEnum); 401 402 int index = param_enum - ParametersSTARTEnum -1; 359 int index = EnumToIndex(param_enum); 403 360 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 404 361 this->params[index]->GetParameterValue(pmat); … … 407 364 void Parameters::FindParam(FILE** pfid,int param_enum){ _assert_(this);/*{{{*/ 408 365 409 _assert_(param_enum>ParametersSTARTEnum); 410 _assert_(param_enum<ParametersENDEnum); 411 412 int index = param_enum - ParametersSTARTEnum -1; 366 int index = EnumToIndex(param_enum); 413 367 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 414 368 this->params[index]->GetParameterValue(pfid); … … 418 372 _assert_(this); 419 373 420 _assert_(param_enum>ParametersSTARTEnum); 421 _assert_(param_enum<ParametersENDEnum); 422 423 int index = param_enum - ParametersSTARTEnum -1; 374 int index = EnumToIndex(param_enum); 424 375 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 425 376 this->params[index]->GetParameterValue(pdataset); … … 427 378 /*}}}*/ 428 379 void Parameters::FindParamAndMakePassive(IssmPDouble* pscalar,int param_enum){ _assert_(this);/*{{{*/ 429 _assert_(param_enum>ParametersSTARTEnum);430 _assert_(param_enum<ParametersENDEnum);431 380 432 381 /*Get "active" parameter*/ 433 382 IssmDouble intermediary; 434 int index = param_enum - ParametersSTARTEnum -1;383 int index = EnumToIndex(param_enum); 435 384 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 436 385 this->params[index]->GetParameterValue(&intermediary); … … 442 391 void Parameters::FindParamAndMakePassive(IssmPDouble** pvec,int* pM, int param_enum){ _assert_(this);/*{{{*/ 443 392 444 _assert_(param_enum>ParametersSTARTEnum); 445 _assert_(param_enum<ParametersENDEnum); 446 447 int index = param_enum - ParametersSTARTEnum -1; 393 int index = EnumToIndex(param_enum); 448 394 449 395 /*Output*/ … … 465 411 _assert_(this); 466 412 467 _assert_(dataset_type>ParametersSTARTEnum); 468 _assert_(dataset_type<ParametersENDEnum); 469 470 int index = dataset_type - ParametersSTARTEnum -1; 413 int index = EnumToIndex(dataset_type); 471 414 if(!this->params[index]) _error_("Parameter " << EnumToStringx(dataset_type) <<" not set"); 472 415 if(this->params[index]->ObjectEnum()!=DataSetParamEnum) _error_("Parameter " << EnumToStringx(dataset_type) <<" is not a DataSetParam!"); … … 486 429 /*}}}*/ 487 430 IssmDouble Parameters::FindParam(int param_enum){ _assert_(this);/*{{{*/ 488 #ifdef _ISSM_DEBUG_ 489 if(param_enum<ParametersSTARTEnum || param_enum>ParametersENDEnum){ 490 _error_(EnumToStringx(param_enum) <<" is not with the parameter Enums"); 491 } 492 #endif 493 _assert_(param_enum>ParametersSTARTEnum); 494 _assert_(param_enum<ParametersENDEnum); 495 496 int index = param_enum - ParametersSTARTEnum -1; 431 432 int index = EnumToIndex(param_enum); 497 433 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 498 434 … … 653 589 Param* Parameters::FindParamObject(int param_enum){/*{{{*/ 654 590 655 #ifdef _ISSM_DEBUG_ 656 if(param_enum<=ParametersSTARTEnum) _error_("Cannot find param: Enum "<<EnumToStringx(param_enum)<<" should appear after ParametersSTARTEnum"); 657 if(param_enum>=ParametersENDEnum) _error_("Cannot find param: Enum "<<EnumToStringx(param_enum)<<" should appear before ParametersENDEnum"); 658 #endif 659 660 int index = param_enum - ParametersSTARTEnum -1; 661 return this->params[index]; 591 return this->params[EnumToIndex(param_enum)]; 662 592 } 663 593 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/Parameters.h
r23644 r24152 20 20 private: 21 21 Param* params[NUMPARAMS]; 22 int EnumToIndex(int enum_in); 22 23 23 24 public:
Note:
See TracChangeset
for help on using the changeset viewer.