Changeset 24947
- Timestamp:
- 06/01/20 14:48:19 (5 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
r24940 r24947 308 308 parameters->AddObject(iomodel->CopyConstantObject("md.slr.abstol",SealevelriseAbstolEnum)); 309 309 parameters->AddObject(iomodel->CopyConstantObject("md.slr.maxiter",SealevelriseMaxiterEnum)); 310 parameters->AddObject(iomodel->CopyConstantObject("md.slr.loop_increment",SealevelriseLoopIncrementEnum));311 310 parameters->AddObject(iomodel->CopyConstantObject("md.slr.rigid",SealevelriseRigidEnum)); 312 311 parameters->AddObject(iomodel->CopyConstantObject("md.slr.horiz",SealevelriseHorizEnum)); -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r24946 r24947 379 379 virtual IssmDouble OceanAverage(IssmDouble* Sg, SealevelMasks* masks)=0; 380 380 virtual void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks)=0; 381 virtual void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks,IssmDouble * latitude,IssmDouble* longitude,IssmDouble* radius,IssmDoubleoceanarea)=0;381 virtual void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks,IssmDouble oceanarea)=0; 382 382 virtual void SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx, IssmDouble* yy, IssmDouble* zz)=0; 383 virtual void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old,SealevelMasks* mask s,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius)=0;384 virtual void SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg,SealevelMasks* masks ,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz)=0;383 virtual void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old,SealevelMasks* mask)=0; 384 virtual void SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg,SealevelMasks* masks)=0; 385 385 #endif 386 386 -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r24946 r24947 216 216 void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");}; 217 217 void SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx, IssmDouble* yy, IssmDouble* zz){_error_("not implemented yet!");}; 218 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble * latitude,IssmDouble* longitude,IssmDouble* radius,IssmDoubleoceanarea){_error_("not implemented yet!");};219 void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old, SealevelMasks* masks ,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius){_error_("not implemented yet!");};220 void SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks ,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){_error_("not implemented yet!");};218 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble oceanarea){_error_("not implemented yet!");}; 219 void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");}; 220 void SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");}; 221 221 #endif 222 222 -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r24946 r24947 175 175 void SetSealevelMasks(SealevelMasks* masks){_error_("not implemented yet!");}; 176 176 void SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx, IssmDouble* yy, IssmDouble* zz){_error_("not implemented yet!");}; 177 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble * latitude,IssmDouble* longitude,IssmDouble* radius,IssmDoubleoceanarea){_error_("not implemented yet!");};178 void SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks ,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius){_error_("not implemented yet!");};179 void SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks ,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){_error_("not implemented yet!");};177 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble oceanarea){_error_("not implemented yet!");}; 178 void SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");}; 179 void SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");}; 180 180 IssmDouble OceanAverage(IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");}; 181 181 #endif -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r24946 r24947 181 181 void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");}; 182 182 void SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx, IssmDouble* yy, IssmDouble* zz){_error_("not implemented yet!");}; 183 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble * latitude,IssmDouble* longitude,IssmDouble* radius,IssmDoubleoceanarea){_error_("not implemented yet!");};184 void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old, SealevelMasks* masks ,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius){_error_("not implemented yet!");};185 void SealevelriseGeodetic(IssmDouble* Up ,IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks ,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){_error_("not implemented yet!");};183 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble oceanarea){_error_("not implemented yet!");}; 184 void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");}; 185 void SealevelriseGeodetic(IssmDouble* Up ,IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");}; 186 186 IssmDouble OceanAverage(IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");}; 187 187 #endif -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r24946 r24947 5753 5753 } 5754 5754 /*}}}*/ 5755 void Tria::SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble * latitude,IssmDouble* longitude,IssmDouble* radius,IssmDoubleoceanarea){ /*{{{*/5755 void Tria::SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble oceanarea){ /*{{{*/ 5756 5756 5757 5757 /*Computational flags:*/ … … 5764 5764 /*ok, there is ocean in this element, we should compute eustatic loads for the ocean if we have requested 5765 5765 *bottom pressure fingerprints:*/ 5766 if(bp_compute_fingerprints)this->SealevelriseEustaticBottomPressure(Sgi,peustatic, latitude,longitude,radius,oceanarea);5766 if(bp_compute_fingerprints)this->SealevelriseEustaticBottomPressure(Sgi,peustatic,oceanarea); 5767 5767 } 5768 5768 //if(!IsIceInElement()){ 5769 5769 /*there is ice in this eleemnt, let's compute the eustatic response for ice changes:*/ 5770 this->SealevelriseEustaticIce(Sgi,peustatic,masks, latitude,longitude,radius,oceanarea);5770 this->SealevelriseEustaticIce(Sgi,peustatic,masks, oceanarea); 5771 5771 //} 5772 5772 5773 5773 } 5774 5774 /*}}}*/ 5775 void Tria::SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble * latitude,IssmDouble* longitude,IssmDouble* radius,IssmDoubleoceanarea){ /*{{{*/5775 void Tria::SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble oceanarea){ /*{{{*/ 5776 5776 5777 5777 /*diverse:*/ … … 5897 5897 } 5898 5898 /*}}}*/ 5899 void Tria::SealevelriseEustaticBottomPressure(IssmDouble* Sgi,IssmDouble* peustatic, IssmDouble * latitude,IssmDouble* longitude,IssmDouble* radius,IssmDoubleoceanarea){ /*{{{*/5899 void Tria::SealevelriseEustaticBottomPressure(IssmDouble* Sgi,IssmDouble* peustatic, IssmDouble oceanarea){ /*{{{*/ 5900 5900 5901 5901 /*diverse:*/ … … 6010 6010 /*We do not need to add the bottom pressure component to the eustatic value: */ 6011 6011 eustatic += 0; 6012 IssmDouble* latitude=NULL; //NOT GOING TO WORK! 6013 IssmDouble* longitude=NULL; //NOT GOING TO WORK! 6012 6014 6013 6015 if(computeelastic | computerigid){ … … 6046 6048 } 6047 6049 /*}}}*/ 6048 void Tria::SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks ,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius){ /*{{{*/6050 void Tria::SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks){ /*{{{*/ 6049 6051 6050 6052 /*diverse:*/ … … 6090 6092 } 6091 6093 /*}}}*/ 6092 void Tria::SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North ,IssmDouble* East,IssmDouble* Sg, SealevelMasks* masks , IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){ /*{{{*/6094 void Tria::SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North ,IssmDouble* East,IssmDouble* Sg, SealevelMasks* masks){ /*{{{*/ 6093 6095 6094 6096 /*diverse:*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r24946 r24947 167 167 void SetSealevelMasks(SealevelMasks* masks); 168 168 void SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz); 169 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble * latitude,IssmDouble* longitude,IssmDouble* radius,IssmDoubleoceanarea);170 void SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble * latitude,IssmDouble* longitude,IssmDouble* radius,IssmDoubleoceanarea);171 void SealevelriseEustaticBottomPressure(IssmDouble* Sgi, IssmDouble* peustatic,IssmDouble * latitude,IssmDouble* longitude,IssmDouble* radius,IssmDoubleoceanarea);172 void SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old,SealevelMasks* masks , IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius);173 void SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg,SealevelMasks* masks , IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz);169 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble oceanarea); 170 void SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble oceanarea); 171 void SealevelriseEustaticBottomPressure(IssmDouble* Sgi, IssmDouble* peustatic,IssmDouble oceanarea); 172 void SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old,SealevelMasks* masks); 173 void SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg,SealevelMasks* masks); 174 174 #endif 175 175 /*}}}*/ -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r24946 r24947 4683 4683 } 4684 4684 /*}}}*/ 4685 void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pRSLgi, IssmDouble* poceanarea, IssmDouble* peustatic, SealevelMasks* masks , IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop) { /*{{{*/4685 void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pRSLgi, IssmDouble* poceanarea, IssmDouble* peustatic, SealevelMasks* masks) { /*{{{*/ 4686 4686 4687 4687 /*serialized vectors:*/ … … 4713 4713 for(int i=0;i<elements->Size();i++){ 4714 4714 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4715 element->SealevelriseEustatic(RSLgi,&eustatic_cpu_e,masks, latitude,longitude,radius,oceanarea);4715 element->SealevelriseEustatic(RSLgi,&eustatic_cpu_e,masks, oceanarea); 4716 4716 eustatic_cpu+=eustatic_cpu_e; 4717 4717 } … … 4736 4736 } 4737 4737 /*}}}*/ 4738 void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pRSLgo, Vector<IssmDouble>* pRSLg_old, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, bool verboseconvolution,int loop){/*{{{*/4738 void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pRSLgo, Vector<IssmDouble>* pRSLg_old, SealevelMasks* masks, bool verboseconvolution){/*{{{*/ 4739 4739 4740 4740 /*serialized vectors:*/ … … 4765 4765 for(int i=0;i<elements->Size();i++){ 4766 4766 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4767 element->SealevelriseNonEustatic(RSLgo,RSLg_old,masks , latitude,longitude,radius);4767 element->SealevelriseNonEustatic(RSLgo,RSLg_old,masks); 4768 4768 } 4769 4769 } … … 4854 4854 } 4855 4855 /*}}}*/ 4856 void FemModel::SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pRSLg, SealevelMasks* masks , IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop){/*{{{*/4856 void FemModel::SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pRSLg, SealevelMasks* masks){/*{{{*/ 4857 4857 4858 4858 /*serialized vectors:*/ … … 4876 4876 gsize = this->nodes->NumberOfDofs(GsetEnum); 4877 4877 Up=xNewZeroInit<IssmDouble>(gsize); 4878 North=xNewZeroInit<IssmDouble>(gsize); 4879 East=xNewZeroInit<IssmDouble>(gsize); 4878 if(horiz){ 4879 North=xNewZeroInit<IssmDouble>(gsize); 4880 East=xNewZeroInit<IssmDouble>(gsize); 4881 } 4880 4882 indices=xNew<int>(gsize); for (int i=0;i<gsize;i++)indices[i]=i; 4881 4883 … … 4883 4885 for(int i=0;i<elements->Size();i++){ 4884 4886 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4885 element->SealevelriseGeodetic(Up,North,East,RSLg,masks , latitude,longitude,radius,xx,yy,zz);4887 element->SealevelriseGeodetic(Up,North,East,RSLg,masks); 4886 4888 } 4887 4889 … … 4897 4899 /*Free ressources:*/ 4898 4900 xDelete<IssmDouble>(Up); 4899 xDelete<IssmDouble>(North); 4900 xDelete<IssmDouble>(East); 4901 if(horiz){ 4902 xDelete<IssmDouble>(North); 4903 xDelete<IssmDouble>(East); 4904 } 4901 4905 xDelete<int>(indices); 4902 4906 xDelete<IssmDouble>(RSLg); -
issm/trunk-jpl/src/c/classes/FemModel.h
r24946 r24947 163 163 #endif 164 164 #ifdef _HAVE_SEALEVELRISE_ 165 void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* poceanarea, IssmDouble* peustatic, SealevelMasks* masks , IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop);165 void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* poceanarea, IssmDouble* peustatic, SealevelMasks* masks); 166 166 void SealevelriseGeometry(IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz); 167 void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution,int loop);167 void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, SealevelMasks* masks,bool verboseconvolution); 168 168 void SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius); 169 void SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, SealevelMasks* masks , IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop);169 void SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, SealevelMasks* masks); 170 170 IssmDouble SealevelriseOceanAverage(Vector<IssmDouble>* Sg,SealevelMasks* masks, IssmDouble oceanarea); 171 171 #endif -
issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp
r24940 r24947 337 337 IssmDouble *longitude = NULL; 338 338 IssmDouble *radius = NULL; 339 IssmDouble *xx = NULL; 340 IssmDouble *yy = NULL; 341 IssmDouble *zz = NULL; 342 int horiz; 339 343 340 344 /*Verbose: */ 341 345 if(VerboseSolution()) _printf0_(" computing geometrical offsets into precomputed Green tables \n"); 346 347 femmodel->parameters->FindParam(&horiz,SealevelriseHorizEnum); 342 348 343 349 /*first, recover lat,long and radius vectors from vertices: */ 344 350 VertexCoordinatesx(&latitude,&longitude,&radius,femmodel->vertices,spherical); 351 if(horiz) VertexCoordinatesx(&xx,&yy,&zz,femmodel->vertices); 352 345 353 346 354 /*call the FemModel geometry module: */ 347 femmodel->SealevelriseGeometry(latitude, longitude, radius);355 femmodel->SealevelriseGeometry(latitude, longitude, xx,yy,zz,radius); 348 356 349 357 /*Free ressources:*/ 350 xDelete<IssmDouble>(latitude); 358 if(horiz){ 359 xDelete<IssmDouble>(xx); 360 xDelete<IssmDouble>(yy); 361 xDelete<IssmDouble>(zz); 362 } 351 363 xDelete<IssmDouble>(longitude); 352 364 xDelete<IssmDouble>(radius); … … 363 375 /*parameters: */ 364 376 int gsize; 365 bool spherical=true;366 IssmDouble *latitude = NULL;367 IssmDouble *longitude = NULL;368 IssmDouble *radius = NULL;369 int loop;370 377 IssmDouble oceanarea; 371 378 … … 375 382 if(VerboseSolution()) _printf0_(" computing eustatic components on ice\n"); 376 383 377 /*recover parameters:*/ 378 femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum); 379 380 /*first, recover lat,long and radius vectors from vertices: */ 381 VertexCoordinatesx(&latitude,&longitude,&radius,femmodel->vertices,spherical); 382 384 383 385 /*Figure out size of g-set deflection vector and allocate solution vector: */ 384 386 gsize = femmodel->nodes->NumberOfDofs(GsetEnum); … … 388 390 389 391 /*call the eustatic main module: */ 390 femmodel->SealevelriseEustatic(RSLgi,&oceanarea,&eustatic, masks , latitude, longitude, radius,loop); //this computes392 femmodel->SealevelriseEustatic(RSLgi,&oceanarea,&eustatic, masks); //this computes 391 393 392 394 /*we need to average RSLgi over the ocean: RHS term 4 in Eq.4 of Farrel and clarke. Only the elements can do that: */ … … 399 401 /*save eustatic value for results: */ 400 402 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,SealevelRSLEustaticEnum,-eustatic)); 401 402 /*clean up and return:*/403 xDelete<IssmDouble>(latitude);404 xDelete<IssmDouble>(longitude);405 xDelete<IssmDouble>(radius);406 403 407 404 /*Assign output pointers and return: */ … … 437 434 IssmDouble eustatic; 438 435 IssmDouble Ixz, Iyz, Izz; 439 int loop;440 436 441 437 if(VerboseSolution()) _printf0_(" converging on ocean components\n"); … … 445 441 femmodel->parameters->FindParam(&eps_rel,SealevelriseReltolEnum); 446 442 femmodel->parameters->FindParam(&eps_abs,SealevelriseAbstolEnum); 447 femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);448 443 449 444 /*computational flag: */ … … 478 473 479 474 /*call the non eustatic module: */ 480 femmodel->SealevelriseNonEustatic(RSLgo, RSLg_old, masks, latitude,longitude, radius,verboseconvolution,loop);475 femmodel->SealevelriseNonEustatic(RSLgo, RSLg_old, masks, verboseconvolution); 481 476 482 477 /*assemble solution vector: */ … … 552 547 IssmDouble *yy = NULL; 553 548 IssmDouble *zz = NULL; 554 int loop;555 549 int horiz; 556 550 … … 558 552 559 553 /*retrieve some parameters:*/ 560 femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);561 554 femmodel->parameters->FindParam(&horiz,SealevelriseHorizEnum); 562 555 … … 576 569 577 570 /*call the elastic main modlule:*/ 578 femmodel->SealevelriseElastic(U_esa,U_north_esa,U_east_esa,RSLg, masks , latitude,longitude,radius,xx,yy,zz,loop,horiz);571 femmodel->SealevelriseElastic(U_esa,U_north_esa,U_east_esa,RSLg, masks); 579 572 580 573 /*Assign output pointers:*/ -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r24944 r24947 315 315 syn keyword cConstant SealevelriseHElasticEnum 316 316 syn keyword cConstant SealevelriseHorizEnum 317 syn keyword cConstant SealevelriseLoopIncrementEnum318 317 syn keyword cConstant SealevelriseMaxiterEnum 319 318 syn keyword cConstant SealevelriseOceanAreaScalingEnum … … 686 685 syn keyword cConstant SealevelriseIndicesEnum 687 686 syn keyword cConstant SealevelriseGEnum 687 syn keyword cConstant SealevelriseGUEnum 688 syn keyword cConstant SealevelriseGEEnum 689 syn keyword cConstant SealevelriseGNEnum 688 690 syn keyword cConstant SedimentHeadEnum 689 691 syn keyword cConstant SedimentHeadOldEnum -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r24944 r24947 309 309 SealevelriseHElasticEnum, 310 310 SealevelriseHorizEnum, 311 SealevelriseLoopIncrementEnum,312 311 SealevelriseMaxiterEnum, 313 312 SealevelriseOceanAreaScalingEnum, … … 683 682 SealevelriseIndicesEnum, 684 683 SealevelriseGEnum, 684 SealevelriseGUEnum, 685 SealevelriseGEEnum, 686 SealevelriseGNEnum, 685 687 SedimentHeadEnum, 686 688 SedimentHeadOldEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r24944 r24947 317 317 case SealevelriseHElasticEnum : return "SealevelriseHElastic"; 318 318 case SealevelriseHorizEnum : return "SealevelriseHoriz"; 319 case SealevelriseLoopIncrementEnum : return "SealevelriseLoopIncrement";320 319 case SealevelriseMaxiterEnum : return "SealevelriseMaxiter"; 321 320 case SealevelriseOceanAreaScalingEnum : return "SealevelriseOceanAreaScaling"; … … 688 687 case SealevelriseIndicesEnum : return "SealevelriseIndices"; 689 688 case SealevelriseGEnum : return "SealevelriseG"; 689 case SealevelriseGUEnum : return "SealevelriseGU"; 690 case SealevelriseGEEnum : return "SealevelriseGE"; 691 case SealevelriseGNEnum : return "SealevelriseGN"; 690 692 case SedimentHeadEnum : return "SedimentHead"; 691 693 case SedimentHeadOldEnum : return "SedimentHeadOld"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r24944 r24947 323 323 else if (strcmp(name,"SealevelriseHElastic")==0) return SealevelriseHElasticEnum; 324 324 else if (strcmp(name,"SealevelriseHoriz")==0) return SealevelriseHorizEnum; 325 else if (strcmp(name,"SealevelriseLoopIncrement")==0) return SealevelriseLoopIncrementEnum;326 325 else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum; 327 326 else if (strcmp(name,"SealevelriseOceanAreaScaling")==0) return SealevelriseOceanAreaScalingEnum; … … 383 382 else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum; 384 383 else if (strcmp(name,"SmbPfac")==0) return SmbPfacEnum; 384 else if (strcmp(name,"SmbRdl")==0) return SmbRdlEnum; 385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"SmbRdl")==0) return SmbRdlEnum; 389 else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum; 388 if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum; 390 389 else if (strcmp(name,"SmbRlaps")==0) return SmbRlapsEnum; 391 390 else if (strcmp(name,"SmbRlapslgm")==0) return SmbRlapslgmEnum; … … 506 505 else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum; 507 506 else if (strcmp(name,"CalvingCalvingrate")==0) return CalvingCalvingrateEnum; 507 else if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum; 508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum; 512 else if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum; 511 if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum; 513 512 else if (strcmp(name,"CalvingStressThresholdFloatingice")==0) return CalvingStressThresholdFloatingiceEnum; 514 513 else if (strcmp(name,"CalvingStressThresholdGroundedice")==0) return CalvingStressThresholdGroundediceEnum; … … 629 628 else if (strcmp(name,"Ice")==0) return IceEnum; 630 629 else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum; 630 else if (strcmp(name,"Input")==0) return InputEnum; 631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"Input")==0) return InputEnum; 635 else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum; 634 if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum; 636 635 else if (strcmp(name,"InversionSurfaceObs")==0) return InversionSurfaceObsEnum; 637 636 else if (strcmp(name,"InversionThicknessObs")==0) return InversionThicknessObsEnum; … … 703 702 else if (strcmp(name,"SealevelriseIndices")==0) return SealevelriseIndicesEnum; 704 703 else if (strcmp(name,"SealevelriseG")==0) return SealevelriseGEnum; 704 else if (strcmp(name,"SealevelriseGU")==0) return SealevelriseGUEnum; 705 else if (strcmp(name,"SealevelriseGE")==0) return SealevelriseGEEnum; 706 else if (strcmp(name,"SealevelriseGN")==0) return SealevelriseGNEnum; 705 707 else if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum; 706 708 else if (strcmp(name,"SedimentHeadOld")==0) return SedimentHeadOldEnum; … … 750 752 else if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum; 751 753 else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum; 752 else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;753 else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"SmbMassBalanceClimate")==0) return SmbMassBalanceClimateEnum; 757 if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum; 758 else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum; 759 else if (strcmp(name,"SmbMassBalanceClimate")==0) return SmbMassBalanceClimateEnum; 758 760 else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum; 759 761 else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum; … … 873 875 else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum; 874 876 else if (strcmp(name,"Outputdefinition1")==0) return Outputdefinition1Enum; 875 else if (strcmp(name,"Outputdefinition10")==0) return Outputdefinition10Enum;876 else if (strcmp(name,"Outputdefinition11")==0) return Outputdefinition11Enum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Outputdefinition12")==0) return Outputdefinition12Enum; 880 if (strcmp(name,"Outputdefinition10")==0) return Outputdefinition10Enum; 881 else if (strcmp(name,"Outputdefinition11")==0) return Outputdefinition11Enum; 882 else if (strcmp(name,"Outputdefinition12")==0) return Outputdefinition12Enum; 881 883 else if (strcmp(name,"Outputdefinition13")==0) return Outputdefinition13Enum; 882 884 else if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum; … … 996 998 else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum; 997 999 else if (strcmp(name,"BalancevelocityAnalysis")==0) return BalancevelocityAnalysisEnum; 998 else if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum;999 else if (strcmp(name,"BasalforcingsIsmip6")==0) return BasalforcingsIsmip6Enum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"BasalforcingsPico")==0) return BasalforcingsPicoEnum; 1003 if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum; 1004 else if (strcmp(name,"BasalforcingsIsmip6")==0) return BasalforcingsIsmip6Enum; 1005 else if (strcmp(name,"BasalforcingsPico")==0) return BasalforcingsPicoEnum; 1004 1006 else if (strcmp(name,"BeckmannGoosseFloatingMeltRate")==0) return BeckmannGoosseFloatingMeltRateEnum; 1005 1007 else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum; … … 1119 1121 else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum; 1120 1122 else if (strcmp(name,"Hydrologypism")==0) return HydrologypismEnum; 1121 else if (strcmp(name,"Hydrologyshakti")==0) return HydrologyshaktiEnum;1122 else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"IceMass")==0) return IceMassEnum; 1126 if (strcmp(name,"Hydrologyshakti")==0) return HydrologyshaktiEnum; 1127 else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum; 1128 else if (strcmp(name,"IceMass")==0) return IceMassEnum; 1127 1129 else if (strcmp(name,"IceMassScaled")==0) return IceMassScaledEnum; 1128 1130 else if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum; … … 1242 1244 else if (strcmp(name,"P2xP1")==0) return P2xP1Enum; 1243 1245 else if (strcmp(name,"P2xP4")==0) return P2xP4Enum; 1244 else if (strcmp(name,"Paterson")==0) return PatersonEnum;1245 else if (strcmp(name,"Pengrid")==0) return PengridEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"Penpair")==0) return PenpairEnum; 1249 if (strcmp(name,"Paterson")==0) return PatersonEnum; 1250 else if (strcmp(name,"Pengrid")==0) return PengridEnum; 1251 else if (strcmp(name,"Penpair")==0) return PenpairEnum; 1250 1252 else if (strcmp(name,"Penta")==0) return PentaEnum; 1251 1253 else if (strcmp(name,"PentaInput")==0) return PentaInputEnum; … … 1365 1367 else if (strcmp(name,"SubelementMigration4")==0) return SubelementMigration4Enum; 1366 1368 else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum; 1367 else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum; 1369 else stage=12; 1370 } 1371 if(stage==12){ 1372 if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum; 1368 1373 else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum; 1369 else stage=1 2;1374 else stage=13; 1370 1375 } 1371 1376 /*If we reach this point, the string provided has not been found*/
Note:
See TracChangeset
for help on using the changeset viewer.