Changeset 24926
- Timestamp:
- 05/29/20 22:17:06 (5 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r24924 r24926 5644 5644 lati=latitude[i]/180*PI; longi=longitude[i]/180*PI; 5645 5645 delPhi=fabs(lati-late); delLambda=fabs(longi-longe); 5646 alpha=2.*asin(sqrt(pow(sin(delPhi/2),2 .0)+cos(lati)*cos(late)*pow(sin(delLambda/2),2)));5646 alpha=2.*asin(sqrt(pow(sin(delPhi/2),2)+cos(lati)*cos(late)*pow(sin(delLambda/2),2))); 5647 5647 indices[i]=reCast<int,IssmDouble>(alpha/PI*reCast<IssmDouble,int>(M-1)); 5648 5648 } … … 5754 5754 5755 5755 /*retrieve indices:*/ 5756 if(computerigid){this->inputs2->GetArray (SealevelriseIndicesEnum,this->lid,&indices,&dummy); _assert_(dummy==gsize);}5756 if(computerigid){this->inputs2->GetArrayPtr(SealevelriseIndicesEnum,this->lid,&indices,&dummy); _assert_(dummy==gsize);} 5757 5757 5758 5758 /*Compute area of element. Scale it by grounded fraction if not fully grounded: */ … … 5823 5823 } 5824 5824 } 5825 5826 /*Free ressources:*/5827 if(computerigid)xDelete<IssmDouble>(indices);5828 5825 5829 5826 /*Assign output pointer:*/ … … 6035 6032 6036 6033 /*retrieve indices:*/ 6037 if(computerigid){this->inputs2->GetArray (SealevelriseIndicesEnum,this->lid,&indices,&dummy); _assert_(dummy==gsize);}6034 if(computerigid){this->inputs2->GetArrayPtr(SealevelriseIndicesEnum,this->lid,&indices,&dummy); _assert_(dummy==gsize);} 6038 6035 6039 6036 /*From Sg_old, recover water sea level rise:*/ … … 6074 6071 } 6075 6072 } 6076 6077 /*Free ressources:*/6078 if(computerigid)xDelete<IssmDouble>(indices);6079 6073 6080 6074 … … 6144 6138 6145 6139 /*retrieve indices:*/ 6146 if(computerigid){this->inputs2->GetArray (SealevelriseIndicesEnum,this->lid,&indices,&dummy); _assert_(dummy==gsize);}6140 if(computerigid){this->inputs2->GetArrayPtr(SealevelriseIndicesEnum,this->lid,&indices,&dummy); _assert_(dummy==gsize);} 6147 6141 6148 6142 /*compute area of element:*/ … … 6238 6232 6239 6233 /*free ressources:*/ 6240 if(computerigid)xDelete<IssmDouble>(indices);6241 6234 xDelete<IssmDouble>(U_values); 6242 6235 xDelete<IssmDouble>(U_elastic); -
issm/trunk-jpl/src/c/classes/Inputs2/ArrayInput2.cpp
r24364 r24926 131 131 } 132 132 /*}}}*/ 133 void ArrayInput2::GetArrayPtr(int row,IssmDouble** pvalues,int* pN){/*{{{*/ 134 135 _assert_(this); 136 _assert_(row>=0 && row<this->numberofelements_local); 137 if(pvalues){ 138 *pvalues = this->values[row]; 139 } 140 if(pN){ 141 *pN = this->N[row]; 142 } 143 } 144 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Inputs2/ArrayInput2.h
r24364 r24926 29 29 void SetInput(int row,int numinds,IssmDouble* values_in); 30 30 void GetArray(int row,IssmDouble** pvalues,int* pN); 31 void GetArrayPtr(int row,IssmDouble** pvalues,int* pN); 31 32 32 33 }; -
issm/trunk-jpl/src/c/classes/Inputs2/Inputs2.cpp
r24790 r24926 449 449 return xDynamicCast<ControlInput2*>(input); 450 450 }/*}}}*/ 451 void Inputs2::GetArrayPtr(int enum_in,int row,IssmDouble** pvalues,int* pN){/*{{{*/ 452 453 /*Get input id*/ 454 int id = EnumToIndex(enum_in); 455 456 /*Create it if necessary*/ 457 if(this->inputs[id]){ 458 if(this->inputs[id]->ObjectEnum()!=ArrayInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an array"); 459 } 460 else{ 461 _error_("Input "<<EnumToStringx(enum_in)<<" not found"); 462 } 463 464 /*Set input*/ 465 ArrayInput2* input = xDynamicCast<ArrayInput2*>(this->inputs[id]); 466 input->GetArrayPtr(row,pvalues,pN); 467 }/*}}}*/ 451 468 void Inputs2::GetArray(int enum_in,int row,IssmDouble** pvalues,int* pN){/*{{{*/ 452 469 -
issm/trunk-jpl/src/c/classes/Inputs2/Inputs2.h
r24790 r24926 51 51 void GetInputsInterpolations(int* pnuminputs,int** pinterpolations,int** penum); 52 52 void GetArray(int enum_in,int row,IssmDouble** pvalues,int* pN); 53 void GetArrayPtr(int enum_in,int row,IssmDouble** pvalues,int* pN); 53 54 SegInput2* GetSegInput(int enum_type); 54 55 TriaInput2* GetTriaInput(int enum_type); -
issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp
r24924 r24926 351 351 /*outputs:*/ 352 352 IssmDouble eustatic; 353 354 if(VerboseSolution()) _printf0_(" computing eustatic components on ice\n"); 353 355 354 356 /*recover parameters:*/ … … 416 418 IssmDouble Ixz, Iyz, Izz; 417 419 int loop; 420 421 if(VerboseSolution()) _printf0_(" converging on ocean components\n"); 418 422 419 423 /*Recover some parameters: */ … … 530 534 int loop; 531 535 int horiz; 536 537 if(VerboseSolution()) _printf0_(" computing vertical and horizontal geodetic signatures\n"); 532 538 533 539 /*retrieve some parameters:*/ … … 577 583 int frequency; 578 584 IssmDouble dt; 585 586 if(VerboseSolution()) _printf0_(" computing viscous components\n"); 579 587 580 588 /*retrieve some parameters:*/
Note:
See TracChangeset
for help on using the changeset viewer.