Changeset 24940
- Timestamp:
- 05/31/20 21:40:46 (5 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp ¶
r24921 r24940 321 321 parameters->AddObject(iomodel->CopyConstantObject("md.slr.ocean_area_scaling",SealevelriseOceanAreaScalingEnum)); 322 322 parameters->AddObject(iomodel->CopyConstantObject("md.slr.geodetic",SealevelriseGeodeticEnum)); 323 parameters->AddObject(iomodel->CopyConstantObject("md.slr.eartharea",SealevelEarthAreaEnum)); 323 324 324 325 /*Deal with dsl multi-model ensembles: {{{*/ -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Element.h ¶
r24938 r24940 371 371 #ifdef _HAVE_ESA_ 372 372 virtual void EsaGeodetic2D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast, Vector<IssmDouble>* pX, Vector<IssmDouble>* pY,IssmDouble* xx,IssmDouble* yy)=0; 373 virtual void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz ,IssmDouble eartharea)=0;373 virtual void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz)=0; 374 374 #endif 375 375 #ifdef _HAVE_SEALEVELRISE_ … … 378 378 virtual IssmDouble GetAreaSpherical(void)=0; 379 379 virtual IssmDouble OceanAverage(IssmDouble* Sg, SealevelMasks* masks)=0; 380 virtual void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks ,IssmDouble eartharea)=0;381 virtual void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea ,IssmDouble eartharea)=0;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,IssmDouble oceanarea)=0; 382 382 virtual void SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius)=0; 383 virtual void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old,SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius ,IssmDouble eartharea)=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, IssmDouble eartharea,int horiz)=0;383 virtual void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old,SealevelMasks* masks,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,int horiz)=0; 385 385 #endif 386 386 -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Penta.h ¶
r24938 r24940 209 209 #ifdef _HAVE_ESA_ 210 210 void EsaGeodetic2D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,Vector<IssmDouble>* pX,Vector<IssmDouble>* pY,IssmDouble* xx,IssmDouble* yy){_error_("not implemented yet!");}; 211 void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz ,IssmDouble eartharea){_error_("not implemented yet!");};211 void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){_error_("not implemented yet!");}; 212 212 #endif 213 213 #ifdef _HAVE_SEALEVELRISE_ 214 214 IssmDouble OceanAverage(IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");}; 215 215 void SetSealevelMasks(SealevelMasks* masks){_error_("not implemented yet!");}; 216 void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks ,IssmDouble eartharea){_error_("not implemented yet!");};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){_error_("not implemented yet!");}; 218 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea ,IssmDouble eartharea){_error_("not implemented yet!");};219 void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius ,IssmDouble eartharea){_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, IssmDouble eartharea,int horiz){_error_("not implemented yet!");};218 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){_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,int horiz){_error_("not implemented yet!");}; 221 221 #endif 222 222 -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Seg.h ¶
r24938 r24940 169 169 #ifdef _HAVE_ESA_ 170 170 void EsaGeodetic2D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,Vector<IssmDouble>* pX,Vector<IssmDouble>* pY,IssmDouble* xx,IssmDouble* yy){_error_("not implemented yet!");}; 171 void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz ,IssmDouble eartharea){_error_("not implemented yet!");};171 void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){_error_("not implemented yet!");}; 172 172 #endif 173 173 #ifdef _HAVE_SEALEVELRISE_ 174 void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks ,IssmDouble eartharea){_error_("not implemented yet!");};174 void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");}; 175 175 void SetSealevelMasks(SealevelMasks* masks){_error_("not implemented yet!");}; 176 176 void SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius){_error_("not implemented yet!");}; 177 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea ,IssmDouble eartharea){_error_("not implemented yet!");};178 void SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius ,IssmDouble eartharea){_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, IssmDouble eartharea,int horiz){_error_("not implemented yet!");};177 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){_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,int horiz){_error_("not implemented yet!");}; 180 180 IssmDouble OceanAverage(IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");}; 181 181 #endif -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tetra.h ¶
r24938 r24940 175 175 #ifdef _HAVE_ESA_ 176 176 void EsaGeodetic2D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,Vector<IssmDouble>* pX,Vector<IssmDouble>* pY,IssmDouble* xx,IssmDouble* yy){_error_("not implemented yet!");}; 177 void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz ,IssmDouble eartharea){_error_("not implemented yet!");};177 void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){_error_("not implemented yet!");}; 178 178 #endif 179 179 #ifdef _HAVE_SEALEVELRISE_ 180 180 void SetSealevelMasks(SealevelMasks* masks){_error_("not implemented yet!");}; 181 void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks ,IssmDouble eartharea){_error_("not implemented yet!");};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){_error_("not implemented yet!");}; 183 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea ,IssmDouble eartharea){_error_("not implemented yet!");};184 void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius ,IssmDouble eartharea){_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, IssmDouble eartharea,int horiz){_error_("not implemented yet!");};183 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){_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,int horiz){_error_("not implemented yet!");}; 186 186 IssmDouble OceanAverage(IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");}; 187 187 #endif -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tria.cpp ¶
r24938 r24940 5289 5289 } 5290 5290 /*}}}*/ 5291 void Tria::EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz ,IssmDouble eartharea){ /*{{{*/5291 void Tria::EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){ /*{{{*/ 5292 5292 5293 5293 /*diverse:*/ … … 5296 5296 IssmDouble llr_list[NUMVERTICES][3]; 5297 5297 IssmDouble xyz_list[NUMVERTICES][3]; 5298 IssmDouble area ;5298 IssmDouble area,eartharea; 5299 5299 IssmDouble I; //ice/water loading 5300 5300 IssmDouble late,longe,re; … … 5328 5328 rho_ice=FindParam(MaterialsRhoIceEnum); 5329 5329 rho_earth=FindParam(MaterialsEarthDensityEnum); 5330 5331 /*recover earth area: */ 5332 this->parameters->FindParam(&eartharea,SealevelEarthAreaEnum); 5330 5333 5331 5334 /*how many dofs are we working with here? */ … … 5465 5468 } 5466 5469 /*}}}*/ 5467 void Tria::SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks , IssmDouble eartharea){/*{{{*/5470 void Tria::SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks){/*{{{*/ 5468 5471 /*early return if we are not on an ice cap OR ocean:*/ 5469 5472 if(!masks->isiceonly[this->lid] && !masks->isoceanin[this->lid]){ … … 5475 5478 5476 5479 /*Compute area of element:*/ 5477 IssmDouble area ;5480 IssmDouble area,eartharea; 5478 5481 area=GetAreaSpherical(); 5482 5483 /*recover earth area: */ 5484 this->parameters->FindParam(&eartharea,SealevelEarthAreaEnum); 5479 5485 5480 5486 /*Compute lat,long,radius of elemental centroid: */ … … 5661 5667 } 5662 5668 /*}}}*/ 5663 void Tria::SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea ,IssmDouble eartharea){ /*{{{*/5669 void Tria::SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){ /*{{{*/ 5664 5670 5665 5671 /*Computational flags:*/ … … 5672 5678 /*ok, there is ocean in this element, we should compute eustatic loads for the ocean if we have requested 5673 5679 *bottom pressure fingerprints:*/ 5674 if(bp_compute_fingerprints)this->SealevelriseEustaticBottomPressure(Sgi,peustatic,latitude,longitude,radius,oceanarea ,eartharea);5680 if(bp_compute_fingerprints)this->SealevelriseEustaticBottomPressure(Sgi,peustatic,latitude,longitude,radius,oceanarea); 5675 5681 } 5676 5682 //if(!IsIceInElement()){ 5677 5683 /*there is ice in this eleemnt, let's compute the eustatic response for ice changes:*/ 5678 this->SealevelriseEustaticIce(Sgi,peustatic,masks, latitude,longitude,radius,oceanarea ,eartharea);5684 this->SealevelriseEustaticIce(Sgi,peustatic,masks, latitude,longitude,radius,oceanarea); 5679 5685 //} 5680 5686 5681 5687 } 5682 5688 /*}}}*/ 5683 void Tria::SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea ,IssmDouble eartharea){ /*{{{*/5689 void Tria::SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){ /*{{{*/ 5684 5690 5685 5691 /*diverse:*/ … … 5687 5693 bool spherical=true; 5688 5694 IssmDouble llr_list[NUMVERTICES][3]; 5689 IssmDouble area ;5695 IssmDouble area,eartharea; 5690 5696 IssmDouble I; //change in ice thickness or water level(Farrel and Clarke, Equ. 4) 5691 5697 IssmDouble rho; … … 5744 5750 this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum); 5745 5751 this->parameters->FindParam(&scaleoceanarea,SealevelriseOceanAreaScalingEnum); 5752 5753 /*recover earth area: */ 5754 this->parameters->FindParam(&eartharea,SealevelEarthAreaEnum); 5746 5755 5747 5756 /*recover precomputed green function kernels:*/ … … 5836 5845 } 5837 5846 /*}}}*/ 5838 void Tria::SealevelriseEustaticBottomPressure(IssmDouble* Sgi,IssmDouble* peustatic, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea ,IssmDouble eartharea){ /*{{{*/5847 void Tria::SealevelriseEustaticBottomPressure(IssmDouble* Sgi,IssmDouble* peustatic, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){ /*{{{*/ 5839 5848 5840 5849 /*diverse:*/ … … 5842 5851 bool spherical=true; 5843 5852 IssmDouble llr_list[NUMVERTICES][3]; 5844 IssmDouble area ;5853 IssmDouble area,eartharea; 5845 5854 IssmDouble I; //change in ice thickness or water level(Farrel and Clarke, Equ. 4) 5846 5855 IssmDouble rho; … … 5875 5884 rho_water=FindParam(MaterialsRhoSeawaterEnum); 5876 5885 rho_earth=FindParam(MaterialsEarthDensityEnum); 5886 5887 /*recover earth area: */ 5888 this->parameters->FindParam(&eartharea,SealevelEarthAreaEnum); 5877 5889 5878 5890 /*recover love numbers and computational flags: */ … … 5982 5994 } 5983 5995 /*}}}*/ 5984 void Tria::SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius ,IssmDouble eartharea){ /*{{{*/5996 void Tria::SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius){ /*{{{*/ 5985 5997 5986 5998 /*diverse:*/ … … 5988 6000 bool spherical=true; 5989 6001 IssmDouble llr_list[NUMVERTICES][3]; 5990 IssmDouble area ;6002 IssmDouble area,eartharea; 5991 6003 IssmDouble S; //change in water water level(Farrel and Clarke, Equ. 4) 5992 6004 IssmDouble late,longe; … … 6026 6038 this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum); 6027 6039 6040 /*recover earth area: */ 6041 this->parameters->FindParam(&eartharea,SealevelEarthAreaEnum); 6042 6028 6043 /*early return if rigid or elastic not requested:*/ 6029 6044 if(!computerigid && !computeelastic) return; … … 6081 6096 } 6082 6097 /*}}}*/ 6083 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, IssmDouble eartharea,int horiz){ /*{{{*/6098 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,int horiz){ /*{{{*/ 6084 6099 6085 6100 /*diverse:*/ … … 6088 6103 IssmDouble llr_list[NUMVERTICES][3]; 6089 6104 IssmDouble xyz_list[NUMVERTICES][3]; 6090 IssmDouble area ;6105 IssmDouble area,eartharea; 6091 6106 IssmDouble I, S; //change in relative ice thickness and sea level 6092 6107 IssmDouble late,longe,re; … … 6140 6155 /*how many dofs are we working with here? */ 6141 6156 this->parameters->FindParam(&gsize,MeshNumberofverticesEnum); 6157 6158 /*recover earth area: */ 6159 this->parameters->FindParam(&eartharea,SealevelEarthAreaEnum); 6142 6160 6143 6161 /*retrieve indices:*/ -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tria.h ¶
r24938 r24940 160 160 #ifdef _HAVE_ESA_ 161 161 void EsaGeodetic2D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast, Vector<IssmDouble>* pX,Vector<IssmDouble>* pY,IssmDouble* xx,IssmDouble* yy); 162 void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz ,IssmDouble eartharea);162 void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz); 163 163 #endif 164 164 #ifdef _HAVE_SEALEVELRISE_ 165 165 IssmDouble OceanAverage(IssmDouble* Sg, SealevelMasks* masks); 166 void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old,SealevelMasks* masks , IssmDouble eartharea);166 void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old,SealevelMasks* masks); 167 167 void SetSealevelMasks(SealevelMasks* masks); 168 168 void SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius); 169 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea ,IssmDouble eartharea);170 void SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea ,IssmDouble eartharea);171 void SealevelriseEustaticBottomPressure(IssmDouble* Sgi, IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea ,IssmDouble eartharea);172 void SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old,SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius ,IssmDouble eartharea);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, IssmDouble eartharea,int horiz);169 void SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea); 170 void SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea); 171 void SealevelriseEustaticBottomPressure(IssmDouble* Sgi, IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea); 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,int horiz); 174 174 #endif 175 175 /*}}}*/ -
TabularUnified issm/trunk-jpl/src/c/classes/FemModel.cpp ¶
r24938 r24940 4635 4635 void FemModel::EsaGeodetic3D(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz){/*{{{*/ 4636 4636 4637 IssmDouble eartharea=0;4638 IssmDouble eartharea_cpu=0;4639 4640 4637 int ns,nsmax; 4641 4638 … … 4646 4643 for(int i=0;i<ns;i++){ 4647 4644 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4648 eartharea_cpu += element->GetAreaSpherical(); 4649 } 4650 ISSM_MPI_Reduce (&eartharea_cpu,&eartharea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); 4651 ISSM_MPI_Bcast(&eartharea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm()); 4645 } 4652 4646 4653 4647 /*Figure out max of ns: */ … … 4659 4653 if(i<ns){ 4660 4654 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4661 element->EsaGeodetic3D(pUp,pNorth,pEast,latitude,longitude,radius,xx,yy,zz ,eartharea);4655 element->EsaGeodetic3D(pUp,pNorth,pEast,latitude,longitude,radius,xx,yy,zz); 4662 4656 } 4663 4657 if(i%100==0){ … … 4694 4688 } 4695 4689 /*}}}*/ 4696 void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pRSLgi, IssmDouble* p eartharea, IssmDouble* poceanarea, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop) { /*{{{*/4690 void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pRSLgi, IssmDouble* poceanarea, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop) { /*{{{*/ 4697 4691 4698 4692 /*serialized vectors:*/ … … 4702 4696 IssmDouble oceanarea = 0.; 4703 4697 IssmDouble oceanarea_cpu = 0.; 4704 IssmDouble eartharea = 0.;4705 IssmDouble eartharea_cpu = 0.;4706 4698 4707 4699 /*Initialize temporary vector that will be used to sum eustatic components … … 4716 4708 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4717 4709 IssmDouble area=element->GetAreaSpherical(); 4718 eartharea_cpu += area;4719 4710 if (masks->isoceanin[i]) oceanarea_cpu += area; 4720 4711 } … … 4723 4714 _assert_(oceanarea>0.); 4724 4715 4725 ISSM_MPI_Reduce (&eartharea_cpu,&eartharea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );4726 ISSM_MPI_Bcast(&eartharea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());4727 4728 4716 /*Call the sea level rise core: */ 4729 4717 for(int i=0;i<elements->Size();i++){ 4730 4718 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4731 element->SealevelriseEustatic(RSLgi,&eustatic_cpu_e,masks, latitude,longitude,radius,oceanarea ,eartharea);4719 element->SealevelriseEustatic(RSLgi,&eustatic_cpu_e,masks, latitude,longitude,radius,oceanarea); 4732 4720 eustatic_cpu+=eustatic_cpu_e; 4733 4721 } … … 4747 4735 4748 4736 /*Assign output pointers:*/ 4749 *peartharea = eartharea;4750 4737 *poceanarea = oceanarea; 4751 4738 *peustatic = eustatic; … … 4753 4740 } 4754 4741 /*}}}*/ 4755 void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pRSLgo, Vector<IssmDouble>* pRSLg_old, IssmDouble eartharea,SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, bool verboseconvolution,int loop){/*{{{*/4742 void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pRSLgo, Vector<IssmDouble>* pRSLg_old, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, bool verboseconvolution,int loop){/*{{{*/ 4756 4743 4757 4744 /*serialized vectors:*/ … … 4774 4761 for(int i=0;i<elements->Size();i++){ 4775 4762 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4776 element->SealevelriseNonEustatic(RSLgo,RSLg_old,masks, latitude,longitude,radius ,eartharea);4763 element->SealevelriseNonEustatic(RSLgo,RSLg_old,masks, latitude,longitude,radius); 4777 4764 } 4778 4765 pRSLgo->SetValues(gsize,indices,RSLgo,ADD_VAL); … … 4786 4773 } 4787 4774 /*}}}*/ 4788 void FemModel::SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, IssmDouble eartharea,SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius){/*{{{*/4775 void FemModel::SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius){/*{{{*/ 4789 4776 4790 4777 /*serialized vectors:*/ … … 4802 4789 for(int i=0;i<elements->Size();i++){ 4803 4790 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4804 element->SealevelriseMomentOfInertia(&moi_list[0],RSLg_old,masks , eartharea);4791 element->SealevelriseMomentOfInertia(&moi_list[0],RSLg_old,masks ); 4805 4792 moi_list_cpu[0] += moi_list[0]; 4806 4793 moi_list_cpu[1] += moi_list[1]; … … 4862 4849 } 4863 4850 /*}}}*/ 4864 void FemModel::SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pRSLg, IssmDouble eartharea,SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop,int horiz){/*{{{*/4851 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,int horiz){/*{{{*/ 4865 4852 4866 4853 /*serialized vectors:*/ … … 4888 4875 for(int i=0;i<elements->Size();i++){ 4889 4876 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4890 element->SealevelriseGeodetic(Up,North,East,RSLg,masks, latitude,longitude,radius,xx,yy,zz, eartharea,horiz);4877 element->SealevelriseGeodetic(Up,North,East,RSLg,masks, latitude,longitude,radius,xx,yy,zz,horiz); 4891 4878 } 4892 4879 -
TabularUnified issm/trunk-jpl/src/c/classes/FemModel.h ¶
r24938 r24940 163 163 #endif 164 164 #ifdef _HAVE_SEALEVELRISE_ 165 void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* p eartharea, 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, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop); 166 166 void SealevelriseGeometry(IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius); 167 void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble eartharea,SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution,int loop);168 void SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, IssmDouble eartharea,SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius);169 void SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, IssmDouble eartharea,SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop,int horiz);167 void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution,int loop); 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,int horiz); 170 170 IssmDouble SealevelriseOceanAverage(Vector<IssmDouble>* Sg,SealevelMasks* masks, IssmDouble oceanarea); 171 171 #endif -
TabularUnified issm/trunk-jpl/src/c/cores/cores.h ¶
r24938 r24940 58 58 void sealevelrise_core_geometry(FemModel* femmodel); 59 59 SealevelMasks* sealevelrise_core_masks(FemModel* femmodel); 60 Vector<IssmDouble>* sealevelrise_core_eustatic(FemModel* femmodel,SealevelMasks* mask, IssmDouble* p eartharea,IssmDouble* poceanarea);61 Vector<IssmDouble>* sealevelrise_core_noneustatic(FemModel* femmodel,SealevelMasks* masks, Vector<IssmDouble>* RSLg_eustatic,IssmDouble eartharea,IssmDoubleoceanarea);62 void sealevelrise_core_elastic(Vector<IssmDouble>** pU_radial, Vector<IssmDouble>** pU_north,Vector<IssmDouble>** pU_east,FemModel* femmodel,Vector<IssmDouble>* RSLg, IssmDouble eartharea,SealevelMasks* masks);60 Vector<IssmDouble>* sealevelrise_core_eustatic(FemModel* femmodel,SealevelMasks* mask, IssmDouble* poceanarea); 61 Vector<IssmDouble>* sealevelrise_core_noneustatic(FemModel* femmodel,SealevelMasks* masks, Vector<IssmDouble>* RSLg_eustatic,IssmDouble oceanarea); 62 void sealevelrise_core_elastic(Vector<IssmDouble>** pU_radial, Vector<IssmDouble>** pU_north,Vector<IssmDouble>** pU_east,FemModel* femmodel,Vector<IssmDouble>* RSLg, SealevelMasks* masks); 63 63 void sealevelrise_core_viscous(Vector<IssmDouble>** pU_gia,Vector<IssmDouble>** pN_gia,FemModel* femmodel,Vector<IssmDouble>* RSLg); 64 64 void sealevelrise_diagnostics(FemModel* femmodel,Vector<IssmDouble>* RSLg); -
TabularUnified issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp ¶
r24938 r24940 96 96 int geodetic=0; 97 97 IssmDouble dt; 98 IssmDouble eartharea,oceanarea;98 IssmDouble oceanarea; 99 99 100 100 /*Should we even be here?:*/ … … 153 153 154 154 /*call eustatic core (generalized eustatic - Farrel and Clark, Eq 4, 1st, 3rd and 4rd terms on the RHS) */ 155 RSLg_eustatic=sealevelrise_core_eustatic(femmodel,masks,& eartharea,&oceanarea);155 RSLg_eustatic=sealevelrise_core_eustatic(femmodel,masks,&oceanarea); 156 156 157 157 /*call non-eustatic core (ocean loading tems - 2nd and 5th terms on the RHS of Farrel and Clark) */ 158 RSLg=sealevelrise_core_noneustatic(femmodel,masks,RSLg_eustatic, eartharea,oceanarea);158 RSLg=sealevelrise_core_noneustatic(femmodel,masks,RSLg_eustatic,oceanarea); 159 159 160 160 /*compute other elastic geodetic signatures, such as components of 3-D crustal motion: */ 161 sealevelrise_core_elastic(&U_esa,&U_north_esa,&U_east_esa,femmodel,RSLg, eartharea,masks);161 sealevelrise_core_elastic(&U_esa,&U_north_esa,&U_east_esa,femmodel,RSLg,masks); 162 162 163 163 /*compute viscosus (GIA) geodetic signatures:*/ … … 354 354 355 355 }/*}}}*/ 356 Vector<IssmDouble>* sealevelrise_core_eustatic(FemModel* femmodel,SealevelMasks* masks, IssmDouble* p eartharea,IssmDouble* poceanarea){ /*{{{*/356 Vector<IssmDouble>* sealevelrise_core_eustatic(FemModel* femmodel,SealevelMasks* masks, IssmDouble* poceanarea){ /*{{{*/ 357 357 358 358 /*Eustatic core of the SLR solution (terms that are constant with respect to sea-level)*/ … … 368 368 IssmDouble *radius = NULL; 369 369 int loop; 370 IssmDouble eartharea,oceanarea;370 IssmDouble oceanarea; 371 371 372 372 /*outputs:*/ … … 388 388 389 389 /*call the eustatic main module: */ 390 femmodel->SealevelriseEustatic(RSLgi,& eartharea, &oceanarea,&eustatic, masks, latitude, longitude, radius,loop); //this computes390 femmodel->SealevelriseEustatic(RSLgi,&oceanarea,&eustatic, masks, latitude, longitude, radius,loop); //this computes 391 391 392 392 /*we need to average RSLgi over the ocean: RHS term 4 in Eq.4 of Farrel and clarke. Only the elements can do that: */ … … 406 406 407 407 /*Assign output pointers and return: */ 408 *peartharea=eartharea;409 408 *poceanarea=oceanarea; 410 409 return RSLgi; 411 410 }/*}}}*/ 412 Vector<IssmDouble>* sealevelrise_core_noneustatic(FemModel* femmodel, SealevelMasks* masks, Vector<IssmDouble>* RSLg_eustatic,IssmDouble eartharea,IssmDoubleoceanarea){ /*{{{*/411 Vector<IssmDouble>* sealevelrise_core_noneustatic(FemModel* femmodel, SealevelMasks* masks, Vector<IssmDouble>* RSLg_eustatic,IssmDouble oceanarea){ /*{{{*/ 413 412 414 413 /*sealevelrise_core_noneustatic.cpp //this computes the contributions from Eq.4 of Farrel and Clarke, rhs terms 2 and 5. … … 479 478 480 479 /*call the non eustatic module: */ 481 femmodel->SealevelriseNonEustatic(RSLgo, RSLg_old, eartharea,masks, latitude,longitude, radius,verboseconvolution,loop);480 femmodel->SealevelriseNonEustatic(RSLgo, RSLg_old, masks, latitude,longitude, radius,verboseconvolution,loop); 482 481 483 482 /*assemble solution vector: */ … … 488 487 /*call rotational feedback module: */ 489 488 RSLgo_rot = new Vector<IssmDouble>(gsize); RSLgo_rot->Assemble(); 490 femmodel->SealevelriseRotationalFeedback(RSLgo_rot,RSLg_old,&Ixz,&Iyz,&Izz, eartharea,masks, latitude,longitude,radius);489 femmodel->SealevelriseRotationalFeedback(RSLgo_rot,RSLg_old,&Ixz,&Iyz,&Izz, masks, latitude,longitude,radius); 491 490 RSLgo_rot->Assemble(); 492 491 … … 537 536 return RSLg; 538 537 } /*}}}*/ 539 void sealevelrise_core_elastic(Vector<IssmDouble>** pU_esa, Vector<IssmDouble>** pU_north_esa,Vector<IssmDouble>** pU_east_esa,FemModel* femmodel,Vector<IssmDouble>* RSLg, IssmDouble eartharea,SealevelMasks* masks){ /*{{{*/538 void sealevelrise_core_elastic(Vector<IssmDouble>** pU_esa, Vector<IssmDouble>** pU_north_esa,Vector<IssmDouble>** pU_east_esa,FemModel* femmodel,Vector<IssmDouble>* RSLg, SealevelMasks* masks){ /*{{{*/ 540 539 541 540 Vector<IssmDouble> *U_esa = NULL; … … 577 576 578 577 /*call the elastic main modlule:*/ 579 femmodel->SealevelriseElastic(U_esa,U_north_esa,U_east_esa,RSLg, eartharea,masks, latitude,longitude,radius,xx,yy,zz,loop,horiz);578 femmodel->SealevelriseElastic(U_esa,U_north_esa,U_east_esa,RSLg, masks, latitude,longitude,radius,xx,yy,zz,loop,horiz); 580 579 581 580 /*Assign output pointers:*/ -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/Enum.vim ¶
r24935 r24940 302 302 syn keyword cConstant RootPathEnum 303 303 syn keyword cConstant SaveResultsEnum 304 syn keyword cConstant SealevelEarthAreaEnum 304 305 syn keyword cConstant SealevelEustaticEnum 305 306 syn keyword cConstant SealevelriseAbstolEnum … … 1431 1432 syn keyword cType RiftStruct 1432 1433 syn keyword cType Riftfront 1434 syn keyword cType SealevelMasks 1433 1435 syn keyword cType Seg 1434 1436 syn keyword cType SegInput2 -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h ¶
r24935 r24940 296 296 RootPathEnum, 297 297 SaveResultsEnum, 298 SealevelEarthAreaEnum, 298 299 SealevelEustaticEnum, 299 300 SealevelriseAbstolEnum, -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp ¶
r24935 r24940 304 304 case RootPathEnum : return "RootPath"; 305 305 case SaveResultsEnum : return "SaveResults"; 306 case SealevelEarthAreaEnum : return "SealevelEarthArea"; 306 307 case SealevelEustaticEnum : return "SealevelEustatic"; 307 308 case SealevelriseAbstolEnum : return "SealevelriseAbstol"; -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp ¶
r24935 r24940 310 310 else if (strcmp(name,"RootPath")==0) return RootPathEnum; 311 311 else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum; 312 else if (strcmp(name,"SealevelEarthArea")==0) return SealevelEarthAreaEnum; 312 313 else if (strcmp(name,"SealevelEustatic")==0) return SealevelEustaticEnum; 313 314 else if (strcmp(name,"SealevelriseAbstol")==0) return SealevelriseAbstolEnum; … … 382 383 else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum; 383 384 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,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum; 388 if (strcmp(name,"SmbRdl")==0) return SmbRdlEnum; 389 else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum; 389 390 else if (strcmp(name,"SmbRlaps")==0) return SmbRlapsEnum; 390 391 else if (strcmp(name,"SmbRlapslgm")==0) return SmbRlapslgmEnum; … … 505 506 else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum; 506 507 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,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum; 511 if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum; 512 else if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum; 512 513 else if (strcmp(name,"CalvingStressThresholdFloatingice")==0) return CalvingStressThresholdFloatingiceEnum; 513 514 else if (strcmp(name,"CalvingStressThresholdGroundedice")==0) return CalvingStressThresholdGroundediceEnum; … … 628 629 else if (strcmp(name,"Ice")==0) return IceEnum; 629 630 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,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum; 634 if (strcmp(name,"Input")==0) return InputEnum; 635 else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum; 635 636 else if (strcmp(name,"InversionSurfaceObs")==0) return InversionSurfaceObsEnum; 636 637 else if (strcmp(name,"InversionThicknessObs")==0) return InversionThicknessObsEnum; … … 751 752 else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum; 752 753 else if (strcmp(name,"SmbMassBalanceClimate")==0) return SmbMassBalanceClimateEnum; 753 else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum; 757 if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum; 758 else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum; 758 759 else if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum; 759 760 else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum; … … 874 875 else if (strcmp(name,"Outputdefinition11")==0) return Outputdefinition11Enum; 875 876 else if (strcmp(name,"Outputdefinition12")==0) return Outputdefinition12Enum; 876 else if (strcmp(name,"Outputdefinition13")==0) return Outputdefinition13Enum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum; 880 if (strcmp(name,"Outputdefinition13")==0) return Outputdefinition13Enum; 881 else if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum; 881 882 else if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum; 882 883 else if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum; … … 997 998 else if (strcmp(name,"BasalforcingsIsmip6")==0) return BasalforcingsIsmip6Enum; 998 999 else if (strcmp(name,"BasalforcingsPico")==0) return BasalforcingsPicoEnum; 999 else if (strcmp(name,"BeckmannGoosseFloatingMeltRate")==0) return BeckmannGoosseFloatingMeltRateEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum; 1003 if (strcmp(name,"BeckmannGoosseFloatingMeltRate")==0) return BeckmannGoosseFloatingMeltRateEnum; 1004 else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum; 1004 1005 else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum; 1005 1006 else if (strcmp(name,"BoolInput")==0) return BoolInputEnum; … … 1120 1121 else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum; 1121 1122 else if (strcmp(name,"IceMass")==0) return IceMassEnum; 1122 else if (strcmp(name,"IceMassScaled")==0) return IceMassScaledEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum; 1126 if (strcmp(name,"IceMassScaled")==0) return IceMassScaledEnum; 1127 else if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum; 1127 1128 else if (strcmp(name,"IceVolumeAboveFloatationScaled")==0) return IceVolumeAboveFloatationScaledEnum; 1128 1129 else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum; … … 1243 1244 else if (strcmp(name,"Pengrid")==0) return PengridEnum; 1244 1245 else if (strcmp(name,"Penpair")==0) return PenpairEnum; 1245 else if (strcmp(name,"Penta")==0) return PentaEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"PentaInput")==0) return PentaInputEnum; 1249 if (strcmp(name,"Penta")==0) return PentaEnum; 1250 else if (strcmp(name,"PentaInput")==0) return PentaInputEnum; 1250 1251 else if (strcmp(name,"Profiler")==0) return ProfilerEnum; 1251 1252 else if (strcmp(name,"ProfilingCurrentFlops")==0) return ProfilingCurrentFlopsEnum; -
TabularUnified issm/trunk-jpl/src/m/classes/slr.m ¶
r24889 r24940 33 33 Ngia = NaN; 34 34 Ugia = NaN; 35 eartharea = 4*pi*planetradius('earth')^2; 35 36 36 37 requested_outputs = {}; … … 102 103 end 103 104 104 md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]); 105 %md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]); 106 md = checkfield(md,'fieldname','slr.deltathickness','timeseries',1,'NaN',1,'Inf',1); 105 107 md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]); 106 108 md = checkfield(md,'fieldname','slr.spcthickness','Inf',1,'timeseries',1); … … 132 134 133 135 %cross check that whereever we have an ice load, the mask is <0 on each vertex: 134 pos=find(self.deltathickness);135 maskpos=md.mask.ice_levelset(md.mesh.elements(pos,:));136 [els,vertices]=find(maskpos>0);137 if length(els),138 warning('slr checkconsistency fail: there are elements with ice loads where some vertices are not on the ice!');139 end136 %pos=find(self.deltathickness); 137 %maskpos=md.mask.ice_levelset(md.mesh.elements(pos,:)); 138 %[els,vertices]=find(maskpos>0); 139 %if length(els), 140 % warning('slr checkconsistency fail: there are elements with ice loads where some vertices are not on the ice!'); 141 %end 140 142 141 143 %check that if geodetic is requested, we are a mesh3dsurface model (planet), or if we are not, … … 221 223 WriteData(fid,prefix,'object',self,'fieldname','horiz','format','Integer'); 222 224 WriteData(fid,prefix,'object',self,'fieldname','geodetic','format','Integer'); 225 WriteData(fid,prefix,'object',self,'fieldname','eartharea','format','Double'); 223 226 224 227 %process requested outputs
Note:
See TracChangeset
for help on using the changeset viewer.