Changeset 25956
- Timestamp:
- 01/27/21 16:14:34 (4 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 1 added
- 2 deleted
- 55 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r25947 r25956 758 758 if ANDROID 759 759 if ANDROIDEXE 760 bin_PROGRAMS = issm issm_sl r760 bin_PROGRAMS = issm issm_slc 761 761 else 762 762 bin_PROGRAMS = … … 766 766 bin_PROGRAMS = 767 767 else 768 bin_PROGRAMS = issm issm_sl r768 bin_PROGRAMS = issm issm_slc 769 769 endif 770 770 endif … … 786 786 issm_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS) 787 787 788 issm_sl r_SOURCES = main/issm_slr.cpp789 issm_sl r_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS)788 issm_slc_SOURCES = main/issm_slc.cpp 789 issm_slc_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS) 790 790 791 791 if OCEAN -
issm/trunk-jpl/src/c/analyses/SealevelchangeAnalysis.cpp
r25947 r25956 24 24 int geodetic=0; 25 25 int dslmodel=0; 26 int externalnature=0;27 26 int isexternal=0; 28 27 … … 171 170 int dslmodel=0; 172 171 int externalnature=0; 172 int isexternal=0; 173 173 174 174 IssmDouble* G_rigid = NULL; … … 198 198 IssmDouble* partitionice=NULL; 199 199 IssmDouble* partitionhydro=NULL; 200 IssmDouble* bsl rice_partition=NULL;201 IssmDouble* bsl rhydro_partition=NULL;200 IssmDouble* bslcice_partition=NULL; 201 IssmDouble* bslchydro_partition=NULL; 202 202 int npartice,nparthydro,nel; 203 203 … … 206 206 parameters->AddObject(iomodel->CopyConstantObject("md.dsl.model",DslModelEnum)); 207 207 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.isexternal",SolidearthIsExternalEnum)); 208 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.external.nature",SolidearthExternalNatureEnum)); 208 iomodel->FetchData(&isexternal,"md.solidearth.isexternal"); 209 if(isexternal) parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.external.nature",SolidearthExternalNatureEnum)); 209 210 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.settings.runfrequency",SolidearthSettingsRunFrequencyEnum)); 210 211 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.settings.reltol",SolidearthSettingsReltolEnum)); … … 223 224 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.planetradius",SolidearthPlanetRadiusEnum)); 224 225 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.settings.glfraction",SolidearthSettingsGlfractionEnum)); 225 parameters->AddObject(new DoubleParam(CumBsl rEnum,0.0));226 parameters->AddObject(new DoubleParam(CumBsl rIceEnum,0.0));227 parameters->AddObject(new DoubleParam(CumBsl rHydroEnum,0.0));228 parameters->AddObject(new DoubleParam(CumGmtsl rEnum,0.0));226 parameters->AddObject(new DoubleParam(CumBslcEnum,0.0)); 227 parameters->AddObject(new DoubleParam(CumBslcIceEnum,0.0)); 228 parameters->AddObject(new DoubleParam(CumBslcHydroEnum,0.0)); 229 parameters->AddObject(new DoubleParam(CumGmtslcEnum,0.0)); 229 230 230 231 /*compute planet area and plug into parameters:*/ … … 240 241 parameters->AddObject(new DoubleMatParam(SolidearthPartitionIceEnum,partitionice,nel,1)); 241 242 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.npartice",SolidearthNpartIceEnum)); 242 bsl rice_partition=xNewZeroInit<IssmDouble>(npartice);243 parameters->AddObject(new DoubleMatParam(CumBsl rIcePartitionEnum,bslrice_partition,npartice,1));243 bslcice_partition=xNewZeroInit<IssmDouble>(npartice); 244 parameters->AddObject(new DoubleMatParam(CumBslcIcePartitionEnum,bslcice_partition,npartice,1)); 244 245 xDelete<IssmDouble>(partitionice); 245 246 } … … 250 251 parameters->AddObject(new DoubleMatParam(SolidearthPartitionHydroEnum,partitionhydro,nel,1)); 251 252 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.nparthydro",SolidearthNpartHydroEnum)); 252 bsl rhydro_partition=xNewZeroInit<IssmDouble>(nparthydro);253 parameters->AddObject(new DoubleMatParam(CumBsl rHydroPartitionEnum,bslrhydro_partition,nparthydro,1));253 bslchydro_partition=xNewZeroInit<IssmDouble>(nparthydro); 254 parameters->AddObject(new DoubleMatParam(CumBslcHydroPartitionEnum,bslchydro_partition,nparthydro,1)); 254 255 xDelete<IssmDouble>(partitionhydro); 255 256 } … … 274 275 } /*}}}*/ 275 276 /*Deal with external multi-model ensembles: {{{*/ 276 iomodel->FetchData(&externalnature,"md.solidearth.external.nature"); 277 if(externalnature>=3){ 278 IssmDouble modelid; 279 int nummodels; 280 281 /*create double param, not int param, because Dakota will be updating it as a double potentially: */ 282 iomodel->FetchData(&modelid,"md.solidearth.external.modelid"); 283 parameters->AddObject(new DoubleParam(SolidearthExternalModelidEnum,modelid)); 284 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.external.nummodels",SolidearthExternalNummodelsEnum)); 285 iomodel->FetchData(&nummodels,"md.solidearth.external.nummodels"); 286 287 /*quick checks: */ 288 if(nummodels<=0)_error_("mme solidearth solution object in md.solidearth.external field should contain at least 1 ensemble model!"); 289 if(modelid<=0 || modelid>nummodels)_error_("modelid field in md.solidearth.external field should be between 1 and the number of ensemble runs!"); 290 } /*}}}*/ 277 if(isexternal){ 278 iomodel->FetchData(&externalnature,"md.solidearth.external.nature"); 279 if(externalnature>=3){ 280 IssmDouble modelid; 281 int nummodels; 282 283 /*create double param, not int param, because Dakota will be updating it as a double potentially: */ 284 iomodel->FetchData(&modelid,"md.solidearth.external.modelid"); 285 parameters->AddObject(new DoubleParam(SolidearthExternalModelidEnum,modelid)); 286 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.external.nummodels",SolidearthExternalNummodelsEnum)); 287 iomodel->FetchData(&nummodels,"md.solidearth.external.nummodels"); 288 289 /*quick checks: */ 290 if(nummodels<=0)_error_("mme solidearth solution object in md.solidearth.external field should contain at least 1 ensemble model!"); 291 if(modelid<=0 || modelid>nummodels)_error_("modelid field in md.solidearth.external field should be between 1 and the number of ensemble runs!"); 292 } /*}}}*/ 293 } 291 294 292 295 /*Deal with elasticity {{{*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r25947 r25956 5826 5826 5827 5827 /*output: */ 5828 IssmDouble bsl rice=0;5828 IssmDouble bslcice=0; 5829 5829 5830 5830 /*elastic green function:*/ … … 5842 5842 constant=0; this->AddInput(SealevelBarystaticMaskEnum,&constant,P0Enum); 5843 5843 #endif 5844 bsl rice=0;5845 return bsl rice;5844 bslcice=0; 5845 return bslcice; 5846 5846 } 5847 5847 … … 5852 5852 this->AddInput(SealevelBarystaticMaskEnum,&constant,P0Enum); 5853 5853 #endif 5854 bsl rice=0;5855 return bsl rice;5854 bslcice=0; 5855 return bslcice; 5856 5856 } 5857 5857 … … 5924 5924 _assert_(oceanarea>0.); 5925 5925 if(scaleoceanarea) oceanarea=3.619e+14; // use true ocean area, m^2 5926 bsl rice = rho_ice*area*phi*I/(oceanarea*rho_water);5927 _assert_(!xIsNan<IssmDouble>(bsl rice));5926 bslcice = rho_ice*area*phi*I/(oceanarea*rho_water); 5927 _assert_(!xIsNan<IssmDouble>(bslcice)); 5928 5928 5929 5929 if(computerigid){ … … 5935 5935 } 5936 5936 5937 /*Plug bsl rice into barystatic contribution vector:*/5937 /*Plug bslcice into barystatic contribution vector:*/ 5938 5938 if(barystatic_contribution){ 5939 5939 id=reCast<int>(partition[this->Sid()])+1; 5940 barystatic_contribution->SetValue(id,bsl rice,ADD_VAL);5940 barystatic_contribution->SetValue(id,bslcice,ADD_VAL); 5941 5941 } 5942 5942 /*return :*/ 5943 return bsl rice;5943 return bslcice; 5944 5944 } 5945 5945 /*}}}*/ … … 5963 5963 5964 5964 /*output:*/ 5965 IssmDouble bsl rhydro = 0;5965 IssmDouble bslchydro = 0; 5966 5966 5967 5967 /*early return if we are on an ice cap. Nop, we may have hydro 5968 5968 * and ice on the same masscon:*/ 5969 5969 /*if(masks->isiceonly[this->lid]){ 5970 bsl rhydro=0;5971 return bsl rhydro;5970 bslchydro=0; 5971 return bslchydro; 5972 5972 }*/ 5973 5973 5974 5974 /*early return if we are fully floating:*/ 5975 5975 if (masks->isfullyfloating[this->lid]){ 5976 bsl rhydro=0;5977 return bsl rhydro;5976 bslchydro=0; 5977 return bslchydro; 5978 5978 } 5979 5979 … … 6000 6000 _assert_(oceanarea>0.); 6001 6001 if(scaleoceanarea) oceanarea=3.619e+14; // use true ocean area, m^2 6002 bsl rhydro = rho_freshwater*area*phi*W/(oceanarea*rho_water);6003 _assert_(!xIsNan<IssmDouble>(bsl rhydro));6002 bslchydro = rho_freshwater*area*phi*W/(oceanarea*rho_water); 6003 _assert_(!xIsNan<IssmDouble>(bslchydro)); 6004 6004 6005 6005 if(computeelastic){ … … 6011 6011 } 6012 6012 6013 /*Plug bsl rice into barystatic contribution vector:*/6013 /*Plug bslcice into barystatic contribution vector:*/ 6014 6014 if(barystatic_contribution){ 6015 6015 id=reCast<int>(partition[this->Sid()])+1; 6016 barystatic_contribution->SetValue(id,bsl rhydro,ADD_VAL);6016 barystatic_contribution->SetValue(id,bslchydro,ADD_VAL); 6017 6017 } 6018 6018 /*output:*/ 6019 return bsl rhydro;6019 return bslchydro; 6020 6020 } 6021 6021 /*}}}*/ -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r25954 r25956 849 849 case TransientSolutionEnum:{ 850 850 /*We have multiple analyses here, process one by one*/ 851 bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,ismovingfront,ishydrology,isdamage,issmb,issl r,isesa,isgia;851 bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,ismovingfront,ishydrology,isdamage,issmb,isslc,isesa,isgia; 852 852 iomodel->FindConstant(&isthermal,"md.transient.isthermal"); 853 853 iomodel->FindConstant(&ismovingfront,"md.transient.ismovingfront"); … … 858 858 iomodel->FindConstant(&ishydrology,"md.transient.ishydrology"); 859 859 iomodel->FindConstant(&issmb,"md.transient.issmb"); 860 iomodel->FindConstant(&issl r,"md.transient.isslr");860 iomodel->FindConstant(&isslc,"md.transient.isslc"); 861 861 iomodel->FindConstant(&isesa,"md.transient.isesa"); 862 862 iomodel->FindConstant(&isgia,"md.transient.isgia"); … … 898 898 analyses_temp[numanalyses++]=DamageEvolutionAnalysisEnum; 899 899 } 900 if(issl r){900 if(isslc){ 901 901 analyses_temp[numanalyses++]=GiaAnalysisEnum; 902 902 analyses_temp[numanalyses++]=SealevelchangeAnalysisEnum; … … 4813 4813 #endif 4814 4814 #ifdef _HAVE_SEALEVELRISE_ 4815 void FemModel::SealevelchangeBarystatic(Vector<IssmDouble>* pRSLgi, IssmDouble* poceanarea, IssmDouble* pbsl r,IssmDouble* pbslrice, IssmDouble* pbslrhydro, IssmDouble** pbslrice_partition,IssmDouble** pbslrhydro_partition,SealevelMasks* masks) { /*{{{*/4815 void FemModel::SealevelchangeBarystatic(Vector<IssmDouble>* pRSLgi, IssmDouble* poceanarea, IssmDouble* pbslc,IssmDouble* pbslcice, IssmDouble* pbslchydro, IssmDouble** pbslcice_partition,IssmDouble** pbslchydro_partition,SealevelMasks* masks) { /*{{{*/ 4816 4816 4817 4817 /*serialized vectors:*/ 4818 IssmDouble bsl rice = 0.;4819 IssmDouble bsl rice_cpu = 0.;4820 IssmDouble bsl rhydro = 0.;4821 IssmDouble bsl rhydro_cpu = 0.;4818 IssmDouble bslcice = 0.; 4819 IssmDouble bslcice_cpu = 0.; 4820 IssmDouble bslchydro = 0.; 4821 IssmDouble bslchydro_cpu = 0.; 4822 4822 IssmDouble area = 0.; 4823 4823 IssmDouble oceanarea = 0.; … … 4825 4825 int bp_compute_fingerprints= 0; 4826 4826 4827 Vector<IssmDouble>* bsl rice_partition=NULL;4828 IssmDouble* bsl rice_partition_serial=NULL;4827 Vector<IssmDouble>* bslcice_partition=NULL; 4828 IssmDouble* bslcice_partition_serial=NULL; 4829 4829 IssmDouble* partitionice=NULL; 4830 4830 int npartice,nel; 4831 4831 4832 Vector<IssmDouble>* bsl rhydro_partition=NULL;4833 IssmDouble* bsl rhydro_partition_serial=NULL;4832 Vector<IssmDouble>* bslchydro_partition=NULL; 4833 IssmDouble* bslchydro_partition_serial=NULL; 4834 4834 IssmDouble* partitionhydro=NULL; 4835 4835 int nparthydro; … … 4859 4859 if(npartice){ 4860 4860 this->parameters->FindParam(&partitionice,&nel,NULL,SolidearthPartitionIceEnum); 4861 bsl rice_partition= new Vector<IssmDouble>(npartice);4861 bslcice_partition= new Vector<IssmDouble>(npartice); 4862 4862 } 4863 4863 … … 4865 4865 if(nparthydro){ 4866 4866 this->parameters->FindParam(&partitionhydro,&nel,NULL,SolidearthPartitionHydroEnum); 4867 bsl rhydro_partition= new Vector<IssmDouble>(nparthydro);4867 bslchydro_partition= new Vector<IssmDouble>(nparthydro); 4868 4868 } 4869 4869 4870 4870 4871 4871 /*Call the barystatic sea level change core for ice : */ 4872 bsl rice_cpu=0;4872 bslcice_cpu=0; 4873 4873 for(Object* & object : this->elements->objects){ 4874 4874 Element* element = xDynamicCast<Element*>(object); 4875 bsl rice_cpu+=element->SealevelchangeBarystaticIce(RSLgi,masks, bslrice_partition,partitionice,oceanarea);4875 bslcice_cpu+=element->SealevelchangeBarystaticIce(RSLgi,masks, bslcice_partition,partitionice,oceanarea); 4876 4876 } 4877 4877 4878 4878 /*Call the barystatic sea level change core for hydro: */ 4879 bsl rhydro_cpu=0;4879 bslchydro_cpu=0; 4880 4880 for(int i=0;i<elements->Size();i++){ 4881 4881 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4882 bsl rhydro_cpu+=element->SealevelchangeBarystaticHydro(RSLgi,masks, bslrhydro_partition,partitionhydro,oceanarea);4882 bslchydro_cpu+=element->SealevelchangeBarystaticHydro(RSLgi,masks, bslchydro_partition,partitionhydro,oceanarea); 4883 4883 } 4884 4884 … … 4897 4897 4898 4898 /*Sum all barystatic components from all cpus:*/ 4899 ISSM_MPI_Reduce (&bsl rice_cpu,&bslrice,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );4900 ISSM_MPI_Bcast(&bsl rice,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());4901 _assert_(!xIsNan<IssmDouble>(bsl rice));4902 4903 ISSM_MPI_Reduce (&bsl rhydro_cpu,&bslrhydro,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );4904 ISSM_MPI_Bcast(&bsl rhydro,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());4905 _assert_(!xIsNan<IssmDouble>(bsl rhydro));4899 ISSM_MPI_Reduce (&bslcice_cpu,&bslcice,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); 4900 ISSM_MPI_Bcast(&bslcice,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm()); 4901 _assert_(!xIsNan<IssmDouble>(bslcice)); 4902 4903 ISSM_MPI_Reduce (&bslchydro_cpu,&bslchydro,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); 4904 ISSM_MPI_Bcast(&bslchydro,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm()); 4905 _assert_(!xIsNan<IssmDouble>(bslchydro)); 4906 4906 4907 4907 /*Take care of partition vectors:*/ 4908 if(bsl rice_partition){4909 bsl rice_partition->Assemble();4910 bsl rice_partition_serial=bslrice_partition->ToMPISerial();4911 } 4912 if(bsl rhydro_partition){4913 bsl rhydro_partition->Assemble();4914 bsl rhydro_partition_serial=bslrhydro_partition->ToMPISerial();4908 if(bslcice_partition){ 4909 bslcice_partition->Assemble(); 4910 bslcice_partition_serial=bslcice_partition->ToMPISerial(); 4911 } 4912 if(bslchydro_partition){ 4913 bslchydro_partition->Assemble(); 4914 bslchydro_partition_serial=bslchydro_partition->ToMPISerial(); 4915 4915 } 4916 4916 … … 4919 4919 xDelete<int>(indices); 4920 4920 xDelete<IssmDouble>(RSLgi); 4921 if(bsl rhydro_partition)delete bslrhydro_partition;4922 if(bsl rice_partition)delete bslrice_partition;4921 if(bslchydro_partition)delete bslchydro_partition; 4922 if(bslcice_partition)delete bslcice_partition; 4923 4923 if(partitionhydro)xDelete<IssmDouble>(partitionhydro); 4924 4924 if(partitionice)xDelete<IssmDouble>(partitionice); … … 4926 4926 /*Assign output pointers:*/ 4927 4927 *poceanarea = oceanarea; 4928 *pbsl rice = bslrice;4929 *pbsl rhydro = bslrhydro;4930 *pbsl r=bslrhydro+bslrice;4931 *pbsl rice_partition=bslrice_partition_serial;4932 *pbsl rhydro_partition=bslrhydro_partition_serial;4928 *pbslcice = bslcice; 4929 *pbslchydro = bslchydro; 4930 *pbslc=bslchydro+bslcice; 4931 *pbslcice_partition=bslcice_partition_serial; 4932 *pbslchydro_partition=bslchydro_partition_serial; 4933 4933 4934 4934 } -
issm/trunk-jpl/src/c/classes/FemModel.h
r25954 r25956 167 167 #endif 168 168 #ifdef _HAVE_SEALEVELRISE_ 169 void SealevelchangeBarystatic(Vector<IssmDouble>* pRSLgi, IssmDouble* poceanarea, IssmDouble* pbsl r,IssmDouble* pbslrice, IssmDouble* pbslrhydro, IssmDouble** pbslrice_partition,IssmDouble** pbslrhydro_partition, SealevelMasks* masks);169 void SealevelchangeBarystatic(Vector<IssmDouble>* pRSLgi, IssmDouble* poceanarea, IssmDouble* pbslc,IssmDouble* pbslcice, IssmDouble* pbslchydro, IssmDouble** pbslcice_partition,IssmDouble** pbslchydro_partition, SealevelMasks* masks); 170 170 void SealevelchangeSal(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, SealevelMasks* masks,bool verboseconvolution); 171 171 void SealevelchangeRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, SealevelMasks* masks); -
issm/trunk-jpl/src/c/cores/cores.h
r25947 r25956 81 81 void TransferSealevel(FemModel* femmodel,int forcingenum); 82 82 void EarthMassTransport(FemModel* femmodel); 83 void sl rconvergence(bool* pconverged, Vector<IssmDouble>* RSLg,Vector<IssmDouble>* RSLg_old,IssmDouble eps_rel,IssmDouble eps_abs);83 void slcconvergence(bool* pconverged, Vector<IssmDouble>* RSLg,Vector<IssmDouble>* RSLg_old,IssmDouble eps_rel,IssmDouble eps_abs); 84 84 85 85 //solution configuration -
issm/trunk-jpl/src/c/cores/sealevelchange_core.cpp
r25954 r25956 22 22 /*Parameters, variables:*/ 23 23 bool save_results; 24 bool issl r=0;24 bool isslc=0; 25 25 bool isgia=0; 26 26 int grd=0; … … 30 30 31 31 /*Retrieve parameters:*/ 32 femmodel->parameters->FindParam(&issl r,TransientIsslrEnum);32 femmodel->parameters->FindParam(&isslc,TransientIsslcEnum); 33 33 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 34 34 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); … … 39 39 /*in case we are running SealevelchangeSolutionEnum, then bypass transient settings:*/ 40 40 if(solution_type==SealevelchangeSolutionEnum){ 41 issl r=1;41 isslc=1; 42 42 isgia=1; 43 43 } 44 44 45 45 /*Should we be here?:*/ 46 if(!issl r)return;46 if(!isslc)return; 47 47 48 48 /*Verbose: */ … … 115 115 116 116 /*parameters: */ 117 bool issl r=0;117 bool isslc=0; 118 118 int solution_type; 119 119 IssmDouble dt; 120 120 121 121 /*Retrieve parameters:*/ 122 femmodel->parameters->FindParam(&issl r,TransientIsslrEnum);122 femmodel->parameters->FindParam(&isslc,TransientIsslcEnum); 123 123 femmodel->parameters->FindParam(&horiz,SolidearthSettingsHorizEnum); 124 124 femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum); … … 126 126 127 127 /*in case we are running SealevelchangeSolutionEnum, then bypass transient settings:*/ 128 if(solution_type==SealevelchangeSolutionEnum)issl r=1;128 if(solution_type==SealevelchangeSolutionEnum)isslc=1; 129 129 130 130 /*Should we be here?:*/ 131 if(!issl r)return;131 if(!isslc)return; 132 132 133 133 /*Verbose: */ … … 331 331 332 332 /*parameters: */ 333 bool issl r=0;333 bool isslc=0; 334 334 int solution_type; 335 335 IssmDouble dt; … … 337 337 IssmDouble time; 338 338 339 IssmDouble cumgmtsl r=0;340 IssmDouble cumbsl r=0;341 IssmDouble cumgmsl r=0;342 IssmDouble gmtsl r=0;339 IssmDouble cumgmtslc=0; 340 IssmDouble cumbslc=0; 341 IssmDouble cumgmslc=0; 342 IssmDouble gmtslc=0; 343 343 344 344 /*Retrieve parameters:*/ 345 345 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 346 femmodel->parameters->FindParam(&issl r,TransientIsslrEnum);346 femmodel->parameters->FindParam(&isslc,TransientIsslcEnum); 347 347 348 348 /*in case we are running SealevelchangeSolutionEnum, then bypass transient settings:*/ 349 if(solution_type==SealevelchangeSolutionEnum)issl r=1;349 if(solution_type==SealevelchangeSolutionEnum)isslc=1; 350 350 351 351 /*Should we be here?:*/ 352 if(!issl r)return;352 if(!isslc)return; 353 353 354 354 /*Verbose: */ … … 366 366 367 367 /*cumulate thermal steric rate:*/ 368 femmodel->parameters->FindParam(&cumgmtsl r,CumGmtslrEnum);369 femmodel->parameters->FindParam(&cumbsl r,CumBslrEnum);370 371 gmtsl r=steric_rate_g->Max()*dt;372 cumgmtsl r+=gmtslr;373 cumgmsl r=cumbslr+cumgmtslr;374 375 femmodel->parameters->SetParam(cumgmtsl r,CumGmtslrEnum);376 femmodel->parameters->SetParam(cumgmsl r,CumGmslrEnum);368 femmodel->parameters->FindParam(&cumgmtslc,CumGmtslcEnum); 369 femmodel->parameters->FindParam(&cumbslc,CumBslcEnum); 370 371 gmtslc=steric_rate_g->Max()*dt; 372 cumgmtslc+=gmtslc; 373 cumgmslc=cumbslc+cumgmtslc; 374 375 femmodel->parameters->SetParam(cumgmtslc,CumGmtslcEnum); 376 femmodel->parameters->SetParam(cumgmslc,CumGmslcEnum); 377 377 378 378 /*Outputs some metrics:*/ … … 380 380 femmodel->parameters->FindParam(&time,TimeEnum); 381 381 382 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,Gmtsl rEnum,gmtslr,step,time));383 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumGmtsl rEnum,cumgmtslr,step,time));384 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumGmsl rEnum,cumgmslr,step,time));382 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,GmtslcEnum,gmtslc,step,time)); 383 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumGmtslcEnum,cumgmtslc,step,time)); 384 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumGmslcEnum,cumgmslc,step,time)); 385 385 386 386 /*update element inputs:*/ … … 480 480 481 481 /*barystatic contribution:*/ 482 IssmDouble bsl r;483 IssmDouble bsl rice;484 IssmDouble* bsl rice_partition=NULL;485 IssmDouble bsl rhydro;486 IssmDouble* bsl rhydro_partition=NULL;487 IssmDouble cumbsl r;488 IssmDouble cumbsl rice;489 IssmDouble cumbsl rhydro;490 IssmDouble* cumbsl rice_partition=NULL;482 IssmDouble bslc; 483 IssmDouble bslcice; 484 IssmDouble* bslcice_partition=NULL; 485 IssmDouble bslchydro; 486 IssmDouble* bslchydro_partition=NULL; 487 IssmDouble cumbslc; 488 IssmDouble cumbslcice; 489 IssmDouble cumbslchydro; 490 IssmDouble* cumbslcice_partition=NULL; 491 491 int npartice; 492 IssmDouble* cumbsl rhydro_partition=NULL;492 IssmDouble* cumbslchydro_partition=NULL; 493 493 int nparthydro; 494 494 495 if(VerboseSolution()) _printf0_(" computing bsl rcomponents on ice\n");495 if(VerboseSolution()) _printf0_(" computing bslc components on ice\n"); 496 496 497 497 /*Figure out size of g-set deflection vector and allocate solution vector: */ … … 501 501 femmodel->parameters->FindParam(&step,StepEnum); 502 502 femmodel->parameters->FindParam(&time,TimeEnum); 503 femmodel->parameters->FindParam(&cumbsl r,CumBslrEnum);504 femmodel->parameters->FindParam(&cumbsl rice,CumBslrIceEnum);505 femmodel->parameters->FindParam(&cumbsl rhydro,CumBslrHydroEnum);503 femmodel->parameters->FindParam(&cumbslc,CumBslcEnum); 504 femmodel->parameters->FindParam(&cumbslcice,CumBslcIceEnum); 505 femmodel->parameters->FindParam(&cumbslchydro,CumBslcHydroEnum); 506 506 femmodel->parameters->FindParam(&npartice,SolidearthNpartIceEnum); 507 507 femmodel->parameters->FindParam(&nparthydro,SolidearthNpartHydroEnum); 508 if(npartice) femmodel->parameters->FindParam(&cumbsl rice_partition,&npartice,NULL,CumBslrIcePartitionEnum);509 if(nparthydro) femmodel->parameters->FindParam(&cumbsl rhydro_partition,&nparthydro,NULL,CumBslrHydroPartitionEnum);508 if(npartice) femmodel->parameters->FindParam(&cumbslcice_partition,&npartice,NULL,CumBslcIcePartitionEnum); 509 if(nparthydro) femmodel->parameters->FindParam(&cumbslchydro_partition,&nparthydro,NULL,CumBslcHydroPartitionEnum); 510 510 511 511 /*Initialize:*/ 512 512 RSLgi = new Vector<IssmDouble>(gsize); 513 513 514 /*call the bsl rmain module: */515 femmodel->SealevelchangeBarystatic(RSLgi,&oceanarea,&bsl r, &bslrice, &bslrhydro, &bslrice_partition, &bslrhydro_partition,masks); //this computes514 /*call the bslc main module: */ 515 femmodel->SealevelchangeBarystatic(RSLgi,&oceanarea,&bslc, &bslcice, &bslchydro, &bslcice_partition, &bslchydro_partition,masks); //this computes 516 516 517 517 /*we need to average RSLgi over the ocean: RHS term 4 in Eq.4 of Farrel and clarke. Only the elements can do that: */ 518 518 RSLgi_oceanaverage=femmodel->SealevelchangeOceanAverage(RSLgi,masks, oceanarea); 519 519 520 /*RSLg is the sum of the pure bsl rcomponent (term 3) and the contribution from the perturbation to the graviation potential due to the520 /*RSLg is the sum of the pure bslc component (term 3) and the contribution from the perturbation to the graviation potential due to the 521 521 * presence of ice (terms 1 and 4 in Eq.4 of Farrel and Clarke):*/ 522 RSLgi->Shift(-bsl r-RSLgi_oceanaverage);523 524 /*save bsl r and cumulated bslrvalue for results:{{{ */525 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,Bsl rEnum,-bslr,step,time));526 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,Bsl rIceEnum,-bslrice,step,time));527 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,Bsl rHydroEnum,-bslrhydro,step,time));522 RSLgi->Shift(-bslc-RSLgi_oceanaverage); 523 524 /*save bslc and cumulated bslc value for results:{{{ */ 525 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,BslcEnum,-bslc,step,time)); 526 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,BslcIceEnum,-bslcice,step,time)); 527 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,BslcHydroEnum,-bslchydro,step,time)); 528 528 529 529 //cumulative barystatic contribution: 530 cumbsl r=cumbslr-bslr;531 cumbsl rice=cumbslrice-bslrice;532 cumbsl rhydro=cumbslrhydro-bslrhydro;533 534 femmodel->parameters->SetParam(cumbsl r,CumBslrEnum);535 femmodel->parameters->SetParam(cumbsl rice,CumBslrIceEnum);536 femmodel->parameters->SetParam(cumbsl rhydro,CumBslrHydroEnum);537 538 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumBsl rEnum,cumbslr,step,time));539 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumBsl rIceEnum,cumbslrice,step,time));540 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumBsl rHydroEnum,cumbslrhydro,step,time));530 cumbslc=cumbslc-bslc; 531 cumbslcice=cumbslcice-bslcice; 532 cumbslchydro=cumbslchydro-bslchydro; 533 534 femmodel->parameters->SetParam(cumbslc,CumBslcEnum); 535 femmodel->parameters->SetParam(cumbslcice,CumBslcIceEnum); 536 femmodel->parameters->SetParam(cumbslchydro,CumBslcHydroEnum); 537 538 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumBslcEnum,cumbslc,step,time)); 539 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumBslcIceEnum,cumbslcice,step,time)); 540 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumBslcHydroEnum,cumbslchydro,step,time)); 541 541 542 542 //cumulative barystatic contributions by partition: 543 543 if(npartice){ 544 for(int i=0;i<npartice;i++) cumbsl rice_partition[i] -= bslrice_partition[i];545 femmodel->parameters->SetParam(cumbsl rice_partition,npartice,1,CumBslrIcePartitionEnum);546 femmodel->results->AddResult(new GenericExternalResult<IssmDouble*>(femmodel->results->Size()+1,CumBsl rIcePartitionEnum,cumbslrice_partition,npartice,1,step,time));544 for(int i=0;i<npartice;i++) cumbslcice_partition[i] -= bslcice_partition[i]; 545 femmodel->parameters->SetParam(cumbslcice_partition,npartice,1,CumBslcIcePartitionEnum); 546 femmodel->results->AddResult(new GenericExternalResult<IssmDouble*>(femmodel->results->Size()+1,CumBslcIcePartitionEnum,cumbslcice_partition,npartice,1,step,time)); 547 547 } 548 548 549 549 if(nparthydro){ 550 for(int i=0;i<nparthydro;i++) cumbsl rhydro_partition[i] -= bslrhydro_partition[i];551 femmodel->parameters->SetParam(cumbsl rhydro_partition,nparthydro,1,CumBslrHydroPartitionEnum);552 femmodel->results->AddResult(new GenericExternalResult<IssmDouble*>(femmodel->results->Size()+1,CumBsl rHydroPartitionEnum,cumbslrhydro_partition,nparthydro,1,step,time));550 for(int i=0;i<nparthydro;i++) cumbslchydro_partition[i] -= bslchydro_partition[i]; 551 femmodel->parameters->SetParam(cumbslchydro_partition,nparthydro,1,CumBslcHydroPartitionEnum); 552 femmodel->results->AddResult(new GenericExternalResult<IssmDouble*>(femmodel->results->Size()+1,CumBslcHydroPartitionEnum,cumbslchydro_partition,nparthydro,1,step,time)); 553 553 } 554 554 /*}}}*/ … … 645 645 646 646 /*convergence criterion:*/ 647 sl rconvergence(&converged,RSLg,RSLg_old,eps_rel,eps_abs);647 slcconvergence(&converged,RSLg,RSLg_old,eps_rel,eps_abs); 648 648 649 649 … … 1104 1104 1105 1105 /*This mass transport module for the Earth is because we might have thickness variations as spcs 1106 * specified in the md.s lrclass, outside of what we will get from the icecaps. That's why we get t1106 * specified in the md.solidearth class, outside of what we will get from the icecaps. That's why we get t 1107 1107 * the thickness variations from SealevelchangeSpcthicknessEnum.*/ 1108 1108 … … 1135 1135 1136 1136 } /*}}}*/ 1137 void sl rconvergence(bool* pconverged, Vector<IssmDouble>* RSLg,Vector<IssmDouble>* RSLg_old,IssmDouble eps_rel,IssmDouble eps_abs){ /*{{{*/1137 void slcconvergence(bool* pconverged, Vector<IssmDouble>* RSLg,Vector<IssmDouble>* RSLg_old,IssmDouble eps_rel,IssmDouble eps_abs){ /*{{{*/ 1138 1138 1139 1139 bool converged=true; -
issm/trunk-jpl/src/c/cores/transient_core.cpp
r25947 r25956 24 24 /*parameters: */ 25 25 IssmDouble finaltime,dt,yts; 26 bool isoceancoupling,iscontrol,isautodiff,issl r;26 bool isoceancoupling,iscontrol,isautodiff,isslc; 27 27 int timestepping; 28 28 int output_frequency,checkpoint_frequency; … … 45 45 femmodel->parameters->FindParam(&output_frequency,SettingsOutputFrequencyEnum); 46 46 femmodel->parameters->FindParam(×tepping,TimesteppingTypeEnum); 47 femmodel->parameters->FindParam(&issl r,TransientIsslrEnum);47 femmodel->parameters->FindParam(&isslc,TransientIsslcEnum); 48 48 femmodel->parameters->FindParam(&isoceancoupling,TransientIsoceancouplingEnum); 49 49 femmodel->parameters->FindParam(&amr_frequency,TransientAmrFrequencyEnum); … … 62 62 #endif 63 63 64 if(issl r) sealevelchange_geometry(femmodel);64 if(isslc) sealevelchange_geometry(femmodel); 65 65 66 66 while(time < finaltime - (yts*DBL_EPSILON)){ //make sure we run up to finaltime. … … 139 139 /*parameters: */ 140 140 bool isstressbalance,ismasstransport,issmb,isthermal,isgroundingline,isgia,isesa; 141 bool issl r,ismovingfront,isdamageevolution,ishydrology,isoceancoupling,save_results;141 bool isslc,ismovingfront,isdamageevolution,ishydrology,isoceancoupling,save_results; 142 142 int step,sb_coupling_frequency; 143 143 int domaintype,numoutputs; … … 154 154 femmodel->parameters->FindParam(&isgia,TransientIsgiaEnum); 155 155 femmodel->parameters->FindParam(&isesa,TransientIsesaEnum); 156 femmodel->parameters->FindParam(&issl r,TransientIsslrEnum);156 femmodel->parameters->FindParam(&isslc,TransientIsslcEnum); 157 157 femmodel->parameters->FindParam(&isgroundingline,TransientIsgroundinglineEnum); 158 158 femmodel->parameters->FindParam(&ismovingfront,TransientIsmovingfrontEnum); … … 236 236 237 237 /*Sea level change: */ 238 if(issl r){238 if(isslc){ 239 239 if(VerboseSolution()) _printf0_(" computing sea level change\n"); 240 240 sealevelchange_core(femmodel); … … 260 260 IssmDouble output_value; 261 261 IssmDouble finaltime,dt,yts,time; 262 bool isoceancoupling,issl r;262 bool isoceancoupling,isslc; 263 263 int step,timestepping; 264 264 int checkpoint_frequency; … … 273 273 femmodel->parameters->FindParam(&yts,ConstantsYtsEnum); 274 274 femmodel->parameters->FindParam(×tepping,TimesteppingTypeEnum); 275 femmodel->parameters->FindParam(&issl r,TransientIsslrEnum);275 femmodel->parameters->FindParam(&isslc,TransientIsslcEnum); 276 276 femmodel->parameters->FindParam(&checkpoint_frequency,SettingsCheckpointFrequencyEnum); _assert_(checkpoint_frequency>0); 277 if(issl r) sealevelchange_geometry(femmodel);277 if(isslc) sealevelchange_geometry(femmodel); 278 278 279 279 std::vector<IssmDouble> time_all; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r25947 r25956 82 82 parameters->AddObject(iomodel->CopyConstantObject("md.transient.ishydrology",TransientIshydrologyEnum)); 83 83 parameters->AddObject(iomodel->CopyConstantObject("md.transient.ismovingfront",TransientIsmovingfrontEnum)); 84 parameters->AddObject(iomodel->CopyConstantObject("md.transient.issl r",TransientIsslrEnum));84 parameters->AddObject(iomodel->CopyConstantObject("md.transient.isslc",TransientIsslcEnum)); 85 85 parameters->AddObject(iomodel->CopyConstantObject("md.transient.iscoupler",TransientIscouplerEnum)); 86 86 parameters->AddObject(iomodel->CopyConstantObject("md.transient.isoceancoupling",TransientIsoceancouplingEnum)); … … 356 356 parameters->AddObject(iomodel->CopyConstantObject("md.materials.rheology_law",MaterialsRheologyLawEnum)); 357 357 358 /*sl r:*/358 /*slc:*/ 359 359 parameters->AddObject(iomodel->CopyConstantObject("md.materials.earth_density",MaterialsEarthDensityEnum)); 360 360 break; -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r25947 r25956 110 110 syn keyword cConstant ControlInputSizeNEnum 111 111 syn keyword cConstant ControlInputInterpolationEnum 112 syn keyword cConstant CumBsl rEnum113 syn keyword cConstant CumBsl rIceEnum114 syn keyword cConstant CumBsl rHydroEnum115 syn keyword cConstant CumBsl rIcePartitionEnum116 syn keyword cConstant CumBsl rHydroPartitionEnum117 syn keyword cConstant CumGmtsl rEnum118 syn keyword cConstant CumGmsl rEnum112 syn keyword cConstant CumBslcEnum 113 syn keyword cConstant CumBslcIceEnum 114 syn keyword cConstant CumBslcHydroEnum 115 syn keyword cConstant CumBslcIcePartitionEnum 116 syn keyword cConstant CumBslcHydroPartitionEnum 117 syn keyword cConstant CumGmtslcEnum 118 syn keyword cConstant CumGmslcEnum 119 119 syn keyword cConstant DamageC1Enum 120 120 syn keyword cConstant DamageC2Enum … … 488 488 syn keyword cConstant TransientIsmovingfrontEnum 489 489 syn keyword cConstant TransientIsoceancouplingEnum 490 syn keyword cConstant TransientIssl rEnum490 syn keyword cConstant TransientIsslcEnum 491 491 syn keyword cConstant TransientIssmbEnum 492 492 syn keyword cConstant TransientIsstressbalanceEnum … … 721 721 syn keyword cConstant SealevelNEsaRateEnum 722 722 syn keyword cConstant SealevelRSLEnum 723 syn keyword cConstant Bsl rEnum724 syn keyword cConstant Bsl rIceEnum725 syn keyword cConstant Bsl rHydroEnum726 syn keyword cConstant Bsl rRateEnum727 syn keyword cConstant Gmtsl rEnum723 syn keyword cConstant BslcEnum 724 syn keyword cConstant BslcIceEnum 725 syn keyword cConstant BslcHydroEnum 726 syn keyword cConstant BslcRateEnum 727 syn keyword cConstant GmtslcEnum 728 728 syn keyword cConstant SealevelRSLBarystaticEnum 729 729 syn keyword cConstant SealevelRSLRateEnum -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r25947 r25956 104 104 ControlInputSizeNEnum, 105 105 ControlInputInterpolationEnum, 106 CumBsl rEnum,107 CumBsl rIceEnum,108 CumBsl rHydroEnum,109 CumBsl rIcePartitionEnum,110 CumBsl rHydroPartitionEnum,111 CumGmtsl rEnum,112 CumGmsl rEnum,106 CumBslcEnum, 107 CumBslcIceEnum, 108 CumBslcHydroEnum, 109 CumBslcIcePartitionEnum, 110 CumBslcHydroPartitionEnum, 111 CumGmtslcEnum, 112 CumGmslcEnum, 113 113 DamageC1Enum, 114 114 DamageC2Enum, … … 482 482 TransientIsmovingfrontEnum, 483 483 TransientIsoceancouplingEnum, 484 TransientIssl rEnum,484 TransientIsslcEnum, 485 485 TransientIssmbEnum, 486 486 TransientIsstressbalanceEnum, … … 717 717 SealevelNEsaRateEnum, 718 718 SealevelRSLEnum, 719 Bsl rEnum,720 Bsl rIceEnum,721 Bsl rHydroEnum,722 Bsl rRateEnum,723 Gmtsl rEnum,719 BslcEnum, 720 BslcIceEnum, 721 BslcHydroEnum, 722 BslcRateEnum, 723 GmtslcEnum, 724 724 SealevelRSLBarystaticEnum, 725 725 SealevelRSLRateEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r25947 r25956 112 112 case ControlInputSizeNEnum : return "ControlInputSizeN"; 113 113 case ControlInputInterpolationEnum : return "ControlInputInterpolation"; 114 case CumBsl rEnum : return "CumBslr";115 case CumBsl rIceEnum : return "CumBslrIce";116 case CumBsl rHydroEnum : return "CumBslrHydro";117 case CumBsl rIcePartitionEnum : return "CumBslrIcePartition";118 case CumBsl rHydroPartitionEnum : return "CumBslrHydroPartition";119 case CumGmtsl rEnum : return "CumGmtslr";120 case CumGmsl rEnum : return "CumGmslr";114 case CumBslcEnum : return "CumBslc"; 115 case CumBslcIceEnum : return "CumBslcIce"; 116 case CumBslcHydroEnum : return "CumBslcHydro"; 117 case CumBslcIcePartitionEnum : return "CumBslcIcePartition"; 118 case CumBslcHydroPartitionEnum : return "CumBslcHydroPartition"; 119 case CumGmtslcEnum : return "CumGmtslc"; 120 case CumGmslcEnum : return "CumGmslc"; 121 121 case DamageC1Enum : return "DamageC1"; 122 122 case DamageC2Enum : return "DamageC2"; … … 490 490 case TransientIsmovingfrontEnum : return "TransientIsmovingfront"; 491 491 case TransientIsoceancouplingEnum : return "TransientIsoceancoupling"; 492 case TransientIssl rEnum : return "TransientIsslr";492 case TransientIsslcEnum : return "TransientIsslc"; 493 493 case TransientIssmbEnum : return "TransientIssmb"; 494 494 case TransientIsstressbalanceEnum : return "TransientIsstressbalance"; … … 723 723 case SealevelNEsaRateEnum : return "SealevelNEsaRate"; 724 724 case SealevelRSLEnum : return "SealevelRSL"; 725 case Bsl rEnum : return "Bslr";726 case Bsl rIceEnum : return "BslrIce";727 case Bsl rHydroEnum : return "BslrHydro";728 case Bsl rRateEnum : return "BslrRate";729 case Gmtsl rEnum : return "Gmtslr";725 case BslcEnum : return "Bslc"; 726 case BslcIceEnum : return "BslcIce"; 727 case BslcHydroEnum : return "BslcHydro"; 728 case BslcRateEnum : return "BslcRate"; 729 case GmtslcEnum : return "Gmtslc"; 730 730 case SealevelRSLBarystaticEnum : return "SealevelRSLBarystatic"; 731 731 case SealevelRSLRateEnum : return "SealevelRSLRate"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r25947 r25956 112 112 else if (strcmp(name,"ControlInputSizeN")==0) return ControlInputSizeNEnum; 113 113 else if (strcmp(name,"ControlInputInterpolation")==0) return ControlInputInterpolationEnum; 114 else if (strcmp(name,"CumBsl r")==0) return CumBslrEnum;115 else if (strcmp(name,"CumBsl rIce")==0) return CumBslrIceEnum;116 else if (strcmp(name,"CumBsl rHydro")==0) return CumBslrHydroEnum;117 else if (strcmp(name,"CumBsl rIcePartition")==0) return CumBslrIcePartitionEnum;118 else if (strcmp(name,"CumBsl rHydroPartition")==0) return CumBslrHydroPartitionEnum;119 else if (strcmp(name,"CumGmtsl r")==0) return CumGmtslrEnum;120 else if (strcmp(name,"CumGmsl r")==0) return CumGmslrEnum;114 else if (strcmp(name,"CumBslc")==0) return CumBslcEnum; 115 else if (strcmp(name,"CumBslcIce")==0) return CumBslcIceEnum; 116 else if (strcmp(name,"CumBslcHydro")==0) return CumBslcHydroEnum; 117 else if (strcmp(name,"CumBslcIcePartition")==0) return CumBslcIcePartitionEnum; 118 else if (strcmp(name,"CumBslcHydroPartition")==0) return CumBslcHydroPartitionEnum; 119 else if (strcmp(name,"CumGmtslc")==0) return CumGmtslcEnum; 120 else if (strcmp(name,"CumGmslc")==0) return CumGmslcEnum; 121 121 else if (strcmp(name,"DamageC1")==0) return DamageC1Enum; 122 122 else if (strcmp(name,"DamageC2")==0) return DamageC2Enum; … … 499 499 else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum; 500 500 else if (strcmp(name,"TransientIsoceancoupling")==0) return TransientIsoceancouplingEnum; 501 else if (strcmp(name,"TransientIssl r")==0) return TransientIsslrEnum;501 else if (strcmp(name,"TransientIsslc")==0) return TransientIsslcEnum; 502 502 else if (strcmp(name,"TransientIssmb")==0) return TransientIssmbEnum; 503 503 else if (strcmp(name,"TransientIsstressbalance")==0) return TransientIsstressbalanceEnum; … … 738 738 else if (strcmp(name,"SealevelNEsaRate")==0) return SealevelNEsaRateEnum; 739 739 else if (strcmp(name,"SealevelRSL")==0) return SealevelRSLEnum; 740 else if (strcmp(name,"Bsl r")==0) return BslrEnum;741 else if (strcmp(name,"Bsl rIce")==0) return BslrIceEnum;742 else if (strcmp(name,"Bsl rHydro")==0) return BslrHydroEnum;743 else if (strcmp(name,"Bsl rRate")==0) return BslrRateEnum;744 else if (strcmp(name,"Gmtsl r")==0) return GmtslrEnum;740 else if (strcmp(name,"Bslc")==0) return BslcEnum; 741 else if (strcmp(name,"BslcIce")==0) return BslcIceEnum; 742 else if (strcmp(name,"BslcHydro")==0) return BslcHydroEnum; 743 else if (strcmp(name,"BslcRate")==0) return BslcRateEnum; 744 else if (strcmp(name,"Gmtslc")==0) return GmtslcEnum; 745 745 else if (strcmp(name,"SealevelRSLBarystatic")==0) return SealevelRSLBarystaticEnum; 746 746 else if (strcmp(name,"SealevelRSLRate")==0) return SealevelRSLRateEnum; -
issm/trunk-jpl/src/m/classes/additionalsolidearthsolution.m
r25947 r25956 21 21 function md = checkconsistency(self,md,solution,analyses) % {{{ 22 22 23 if ~ismember('Sealevel riseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==0),23 if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==0), 24 24 error('additionalsolidearthsolution checkconsistency error message: need to run GRD solution if you are supplying a GRD additional pattern solution'); 25 25 end -
issm/trunk-jpl/src/m/classes/clusters/generic.m
r25684 r25956 165 165 166 166 %what is the executable being called? 167 executable='issm_sl r.exe';167 executable='issm_slc.exe'; 168 168 169 169 if ispc(), error('BuildQueueScriptMultipleModels not support yet on windows machines');end; -
issm/trunk-jpl/src/m/classes/clusters/localpfe.m
r22664 r25956 104 104 105 105 %what is the executable being called? 106 executable='issm_sl r.exe';106 executable='issm_slc.exe'; 107 107 108 108 if ispc(), error('BuildQueueScriptMultipleModels not support yet on windows machines');end; -
issm/trunk-jpl/src/m/classes/clusters/pfe.m
r25594 r25956 214 214 215 215 %what is the executable being called? 216 executable='issm_sl r.exe';216 executable='issm_slc.exe'; 217 217 218 218 if ispc(), error('BuildQueueScriptMultipleModels not support yet on windows machines');end; -
issm/trunk-jpl/src/m/classes/dsl.m
r25055 r25956 39 39 40 40 %Early return 41 if ~ismember('Sealevel riseAnalysis',analyses), return; end42 if (strcmp(solution,'TransientSolution') & md.transient.issl r== 0), return; end41 if ~ismember('SealevelchangeAnalysis',analyses), return; end 42 if (strcmp(solution,'TransientSolution') & md.transient.isslc == 0), return; end 43 43 md = checkfield(md,'fieldname','dsl.global_average_thermosteric_sea_level_change','NaN',1,'Inf',1); 44 44 md = checkfield(md,'fieldname','dsl.sea_surface_height_change_above_geoid','NaN',1,'Inf',1,'timeseries',1); … … 46 46 md = checkfield(md,'fieldname','dsl.compute_fingerprints','NaN',1,'Inf',1,'values',[0,1]); 47 47 if self.compute_fingerprints, 48 %check geodetic flag of slris on:49 if md.s lr.geodetic==0,50 error('DSL checkconsistency error message: if bottom pressure fingerprints computations are requested, s lr class should have geodeticflag on');48 %check geodetic flag of is on: 49 if md.solidearth.settings.isgrd==0, 50 error('DSL checkconsistency error message: if bottom pressure fingerprints computations are requested, solidearth class should have grd flag on'); 51 51 end 52 52 end -
issm/trunk-jpl/src/m/classes/dslmme.m
r25327 r25956 37 37 38 38 %Early return 39 if ~ismember('Sealevel riseAnalysis',analyses), return; end40 if (strcmp(solution,'TransientSolution') & md.transient.issl r== 0), return; end39 if ~ismember('SealevelchangeAnalysis',analyses), return; end 40 if (strcmp(solution,'TransientSolution') & md.transient.isslc == 0), return; end 41 41 for i=1:length(self.global_average_thermosteric_sea_level_change), 42 42 md = checkfield(md,'field',self.global_average_thermosteric_sea_level_change{i},'NaN',1,'Inf',1); … … 46 46 md = checkfield(md,'field',self.modelid,'NaN',1,'Inf',1,'>=',1,'<=',length(self.global_average_thermosteric_sea_level_change)); 47 47 if self.compute_fingerprints, 48 %check geodetic flag of s lris on:49 if md.solidearth.settings. computesealevelchange==0,50 error('DSL checkconsistency error message: if bottom pressure fingerprints computations are requested, s lrclass should have geodetic flag on');48 %check geodetic flag of solidearth is on: 49 if md.solidearth.settings.isgrd==0, 50 error('DSL checkconsistency error message: if bottom pressure fingerprints computations are requested, solidearth class should have geodetic flag on'); 51 51 end 52 52 end -
issm/trunk-jpl/src/m/classes/geometry.m
r25772 r25956 55 55 if (strcmp(solution,'TransientSolution') & md.transient.isgia) | strcmp(solution,'GiaSolution'), 56 56 md = checkfield(md,'fieldname','geometry.thickness','timeseries',1,'NaN',1,'Inf',1); 57 elseif strcmpi(solution,'Sealevel riseSolution'),57 elseif strcmpi(solution,'SealevelchangeSolution'), 58 58 md = checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]); 59 59 return; -
issm/trunk-jpl/src/m/classes/giamme.m
r25129 r25956 34 34 35 35 %Early return 36 if ~ismember('Sealevel riseAnalysis',analyses), return; end37 if (strcmp(solution,'TransientSolution') & md.transient.issl r== 0), return; end36 if ~ismember('SealevelchangeAnalysis',analyses), return; end 37 if (strcmp(solution,'TransientSolution') & md.transient.isslc == 0), return; end 38 38 md = checkfield(md,'field',self.Ngia,'NaN',1,'Inf',1); 39 39 md = checkfield(md,'field',self.Ugia,'NaN',1,'Inf',1); -
issm/trunk-jpl/src/m/classes/lovenumbers.m
r25362 r25956 46 46 function md = checkconsistency(self,md,solution,analyses) % {{{ 47 47 48 if ~ismember('Sealevel riseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslr==0),48 if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslc==0), 49 49 return; 50 50 end -
issm/trunk-jpl/src/m/classes/matdamageice.m
r25169 r25956 29 29 mantle_density = 0.; 30 30 31 %sl r31 %slc 32 32 earth_density = 0; 33 33 … … 127 127 md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1); 128 128 end 129 if ismember('Sealevel riseAnalysis',analyses),129 if ismember('SealevelchangeAnalysis',analyses), 130 130 md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1); 131 131 end -
issm/trunk-jpl/src/m/classes/matenhancedice.m
r23702 r25956 130 130 md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1); 131 131 end 132 if ismember('Sealevel riseAnalysis',analyses),132 if ismember('SealevelchangeAnalysis',analyses), 133 133 md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1); 134 134 end -
issm/trunk-jpl/src/m/classes/matestar.m
r23774 r25956 30 30 mantle_density = 0.; 31 31 32 %sl r32 %slc 33 33 earth_density = 0; 34 34 … … 137 137 md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1); 138 138 end 139 if ismember('Sealevel riseAnalysis',analyses),139 if ismember('SealevelchangeAnalysis',analyses), 140 140 md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1); 141 141 end -
issm/trunk-jpl/src/m/classes/matice.m
r25404 r25956 29 29 mantle_density = 0.; 30 30 31 %sl r31 %slc 32 32 earth_density = 0; 33 33 … … 113 113 function md = checkconsistency(self,md,solution,analyses) % {{{ 114 114 115 if ~strcmpi(solution,'Sealevel riseSolution'),115 if ~strcmpi(solution,'SealevelchangeSolution'), 116 116 md = checkfield(md,'fieldname','materials.rho_ice','>',0); 117 117 md = checkfield(md,'fieldname','materials.rho_water','>',0); … … 130 130 md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1); 131 131 end 132 if ismember('Sealevel riseAnalysis',analyses),132 if ismember('SealevelchangeAnalysis',analyses), 133 133 md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1); 134 134 end -
issm/trunk-jpl/src/m/classes/mmeadditionalsolidearthsolution.m
r25947 r25956 24 24 function md = checkconsistency(self,md,solution,analyses) % {{{ 25 25 26 if ~ismember('Sealevel riseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==0),26 if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==0), 27 27 error('mmeadditionalsolidearthsolution checkconsistency error message: need to run GRD solution if you are supplying a GRD additional pattern solution'); 28 28 end -
issm/trunk-jpl/src/m/classes/mmeofflinesolidearthsolution.m
r25947 r25956 24 24 function md = checkconsistency(self,md,solution,analyses) % {{{ 25 25 26 if ~ismember('Sealevel riseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==1),26 if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==1), 27 27 error('mmeofflinesolidearthsolution checkconsistency error message: trying to run GRD patterns while supplying an offline solution for those patterns!'); 28 28 end -
issm/trunk-jpl/src/m/classes/nodalvalue.m
r25688 r25956 3 3 % Usage: 4 4 % nodalvalue=nodalvalue(); 5 % nodalvalue=nodalvalue('name','Sealevel riseSNodalValue',...5 % nodalvalue=nodalvalue('name','SealevelchangeSNodalValue',... 6 6 % 'definitionstring','Outputdefinition1', 7 % 'model_string','Sealevel riseS',7 % 'model_string','SealevelchangeS', 8 8 % 'node',1); 9 9 -
issm/trunk-jpl/src/m/classes/offlinesolidearthsolution.m
r25947 r25956 21 21 function md = checkconsistency(self,md,solution,analyses) % {{{ 22 22 23 if ~ismember('Sealevel riseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==1),23 if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==1), 24 24 error('offlinesolidearthsolution checkconsistency error message: trying to run GRD patterns while supplying an offline solution for those patterns!'); 25 25 end -
issm/trunk-jpl/src/m/classes/qmustatistics.m
r25688 r25956 14 14 15 15 %name: name of method, one of 'None','Histogram','SampleSeries' or 'MeanVariance' 16 %fields: fields for the statistics being requested, ex: 'Sealevel','Bsl rIce','BslrHydro'16 %fields: fields for the statistics being requested, ex: 'Sealevel','BslcIce','BslcHydro' 17 17 %steps: time steps at which each field statistic is computed, ex: [1:2,5,20] or 1:100 18 18 %nbins: number of bins for 'Histogram' statistics -
issm/trunk-jpl/src/m/classes/rotational.m
r25152 r25956 30 30 function md = checkconsistency(self,md,solution,analyses) % {{{ 31 31 32 if ~ismember('Sealevel riseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslr==0),32 if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslc==0), 33 33 return; 34 34 end -
issm/trunk-jpl/src/m/classes/sealevelmodel.m
r25688 r25956 60 60 %check that the transition vectors have the right size: 61 61 for i=1:length(slm.icecaps), 62 if slm.icecaps{i}.mesh.numberofvertices ~= length(slm.earth.s lr.transitions{i}),62 if slm.icecaps{i}.mesh.numberofvertices ~= length(slm.earth.solidearth.transitions{i}), 63 63 error(['sealevelmodel checkconsistenty issue with size of transition vector for ice cap: ' num2str(i) ' name: ' slm.icecaps{i}.miscellaneous.name]); 64 64 end … … 67 67 %check that run_frequency is the same everywhere: 68 68 for i=1:length(slm.icecaps), 69 if slm.icecaps{i}.s lr.geodetic_run_frequency~=slm.earth.slr.geodetic_run_frequency,69 if slm.icecaps{i}.solidearth.settings.runfrequency~=slm.earth.solidearth.settings.runfrequency, 70 70 error(sprintf('sealevelmodel checkconsistenty error: icecap model %s should have the same run frequency as earth!',slm.icecaps{i}.miscellaneous.name)); 71 71 end … … 75 75 for i=1:length(slm.icecaps), 76 76 md= slm.icecaps{i}; 77 if ~isempty(find(md. slr.steric_rate - slm.earth.slr.steric_rate(slm.earth.slr.transitions{i}))),77 if ~isempty(find(md.dsl.steric_rate - slm.earth.dsl.steric_rate(slm.earth.dsl.transitions{i}))), 78 78 error(sprintf('steric rate on ice cap %s is not the same as for the earth\n',md.miscellaneous.name)); 79 79 end -
issm/trunk-jpl/src/m/classes/solidearth.m
r25947 r25956 50 50 function md = checkconsistency(self,md,solution,analyses) % {{{ 51 51 52 if ~ismember('Sealevel riseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslr==0),52 if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslc==0), 53 53 return; 54 54 end -
issm/trunk-jpl/src/m/classes/solidearthsettings.m
r25767 r25956 60 60 function md = checkconsistency(self,md,solution,analyses) % {{{ 61 61 62 if ~ismember('Sealevel riseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslr==0),62 if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslc==0), 63 63 return; 64 64 end … … 93 93 disp(sprintf(' solidearth settings:')); 94 94 95 fielddisplay(self,'reltol','sea level rise relative convergence criterion, (default, NaN: not applied)');96 fielddisplay(self,'abstol','sea level rise absolute convergence criterion, NaN: not applied');95 fielddisplay(self,'reltol','sea level change relative convergence criterion, (default, NaN: not applied)'); 96 fielddisplay(self,'abstol','sea level change absolute convergence criterion, NaN: not applied'); 97 97 fielddisplay(self,'maxiter','maximum number of nonlinear iterations'); 98 98 fielddisplay(self,'ocean_area_scaling','correction for model representation of ocean area [default: No correction]'); … … 123 123 function savemodeljs(self,fid,modelname) % {{{ 124 124 125 writejsdouble(fid,[modelname '.s lr.settings.maxiter'],self.maxiter);126 writejsdouble(fid,[modelname '.s lr.settings.reltol'],self.reltol);127 writejsdouble(fid,[modelname '.s lr.settings.abstol'],self.abstol);128 writejsdouble(fid,[modelname '.s lr.settings.rigid'],self.rigid);129 writejsdouble(fid,[modelname '.s lr.settings.elastic'],self.elastic);130 writejsdouble(fid,[modelname '.s lr.settings.rotation'],self.rotation);131 writejsdouble(fid,[modelname '.s lr.settings.ocean_area_scaling'],self.ocean_area_scaling);132 writejsdouble(fid,[modelname '.s lr.settings.run_frequency'],self.run_frequency);133 writejsdouble(fid,[modelname '.s lr.settings.degacc'],self.degacc);134 writejsdouble(fid,[modelname '.s lr.settings.glfraction'],self.glfraction);125 writejsdouble(fid,[modelname '.solidearth.settings.maxiter'],self.maxiter); 126 writejsdouble(fid,[modelname '.solidearth.settings.reltol'],self.reltol); 127 writejsdouble(fid,[modelname '.solidearth.settings.abstol'],self.abstol); 128 writejsdouble(fid,[modelname '.solidearth.settings.rigid'],self.rigid); 129 writejsdouble(fid,[modelname '.solidearth.settings.elastic'],self.elastic); 130 writejsdouble(fid,[modelname '.solidearth.settings.rotation'],self.rotation); 131 writejsdouble(fid,[modelname '.solidearth.settings.ocean_area_scaling'],self.ocean_area_scaling); 132 writejsdouble(fid,[modelname '.solidearth.settings.run_frequency'],self.run_frequency); 133 writejsdouble(fid,[modelname '.solidearth.settings.degacc'],self.degacc); 134 writejsdouble(fid,[modelname '.solidearth.settings.glfraction'],self.glfraction); 135 135 end % }}} 136 136 function self = extrude(self,md) % {{{ -
issm/trunk-jpl/src/m/classes/surfaceload.m
r25221 r25956 28 28 function md = checkconsistency(self,md,solution,analyses) % {{{ 29 29 30 if ~ismember('Sealevel riseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslr==0),30 if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslc==0), 31 31 return; 32 32 end -
issm/trunk-jpl/src/m/classes/toolkits.m
r25169 r25956 105 105 case 'LoveAnalysis' 106 106 case 'EsaAnalysis' 107 case 'Sealevel riseAnalysis'107 case 'SealevelchangeAnalysis' 108 108 otherwise 109 109 md = checkmessage(md,['md.toolkits.' analyses{i} ' not supported yet']); -
issm/trunk-jpl/src/m/classes/transient.m
r23770 r25956 16 16 ismovingfront = 0; 17 17 ishydrology = 0; 18 issl r= 0;18 isslc = 0; 19 19 iscoupler = 0; 20 20 amr_frequency = 0; … … 44 44 self.ismovingfront =0; 45 45 self.ishydrology = 0; 46 self.issl r= 0;46 self.isslc = 0; 47 47 self.isoceancoupling = 0; 48 48 self.iscoupler = 0; … … 65 65 self.ismovingfront = 0; 66 66 self.ishydrology = 0; 67 self.issl r= 0;67 self.isslc = 0; 68 68 self.isoceancoupling = 0; 69 69 self.iscoupler = 0; … … 96 96 md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0 1]); 97 97 md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1); 98 md = checkfield(md,'fieldname','transient.issl r','numel',[1],'values',[0 1]);98 md = checkfield(md,'fieldname','transient.isslc','numel',[1],'values',[0 1]); 99 99 md = checkfield(md,'fieldname','transient.isoceancoupling','numel',[1],'values',[0 1]); 100 100 md = checkfield(md,'fieldname','transient.iscoupler','numel',[1],'values',[0 1]); … … 121 121 fielddisplay(self,'ismovingfront','indicates whether a moving front capability is used in the transient'); 122 122 fielddisplay(self,'ishydrology','indicates whether an hydrology model is used'); 123 fielddisplay(self,'issl r','indicates whether a sea-level rise solution is used in the transient');123 fielddisplay(self,'isslc','indicates whether a sea-level change solution is used in the transient'); 124 124 fielddisplay(self,'isoceancoupling','indicates whether a coupling with an ocean model is used in the transient'); 125 125 fielddisplay(self,'iscoupler','indicates whether different models are being run with need for coupling'); … … 139 139 WriteData(fid,prefix,'object',self,'fieldname','ishydrology','format','Boolean'); 140 140 WriteData(fid,prefix,'object',self,'fieldname','ismovingfront','format','Boolean'); 141 WriteData(fid,prefix,'object',self,'fieldname','issl r','format','Boolean');141 WriteData(fid,prefix,'object',self,'fieldname','isslc','format','Boolean'); 142 142 WriteData(fid,prefix,'object',self,'fieldname','isoceancoupling','format','Boolean'); 143 143 WriteData(fid,prefix,'object',self,'fieldname','iscoupler','format','Boolean'); … … 165 165 writejsdouble(fid,[modelname '.trans.ismovingfront'],self.ismovingfront); 166 166 writejsdouble(fid,[modelname '.trans.ishydrology'],self.ishydrology); 167 writejsdouble(fid,[modelname '.trans.issl r'],self.isslr);167 writejsdouble(fid,[modelname '.trans.isslc'],self.isslc); 168 168 writejsdouble(fid,[modelname '.trans.isoceancoupling'],self.isoceancoupling); 169 169 writejsdouble(fid,[modelname '.trans.iscoupler'],self.iscoupler); -
issm/trunk-jpl/src/m/solve/solveslm.m
r25168 r25956 7 7 % 8 8 % solution types available comprise: 9 % - 'Sealevel rise'9 % - 'Sealevelchange' 10 10 % - 'Transient' 11 11 % … … 18 18 if strcmpi(solutionstringi,'tr') || strcmpi(solutionstringi,'Transient') 19 19 solutionstring = 'TransientSolution'; 20 elseif strcmpi(solutionstringi,'slr') || strcmpi(solutionstringi,'Sealevel rise')21 solutionstring = 'Sealevel riseSolution';20 elseif strcmpi(solutionstringi,'slr') || strcmpi(solutionstringi,'Sealevelchange') 21 solutionstring = 'SealevelchangeSolution'; 22 22 else 23 23 error(['solutionstring ' solutionstringi ' not supported!']); -
issm/trunk-jpl/test/NightlyRun/GetIds.py
r25762 r25956 15 15 ids = GetIds('Dakota') 16 16 ids = GetIds([101, 102...]) 17 ids = GetIds([\'Dakota\', \'Sl r\'...])18 ids = GetIds([[101, 102...], [\'Dakota\', \'Sl r\'...]])17 ids = GetIds([\'Dakota\', \'Slc\'...]) 18 ids = GetIds([[101, 102...], [\'Dakota\', \'Slc\'...]]) 19 19 """ 20 20 -
issm/trunk-jpl/test/NightlyRun/runme.m
r25823 r25956 21 21 % 'qmu' : validation of dakota tests 22 22 % 'referential' : validation of referential tests 23 % 'sl r' : validation of slrtests23 % 'slc' : validation of slc tests 24 24 % 'thermal' : validation of thermal tests 25 25 % 'tranforcing' : validation of transient forcing tests … … 54 54 %GET benchmark {{{ 55 55 benchmark=getfieldvalue(options,'benchmark','nightly'); 56 if ~ismember(benchmark,{'all','nightly','ismip','eismint','thermal','mesh','validation','tranforcing','adolc','sl r','qmu'})56 if ~ismember(benchmark,{'all','nightly','ismip','eismint','thermal','mesh','validation','tranforcing','adolc','slc','qmu'}) 57 57 disp('runme warning: benchmark not supported, defaulting to test ''nightly''') 58 58 benchmark='nightly'; … … 122 122 elseif strcmpi(benchmark,'referential'), 123 123 test_ids=intersect(test_ids,[1601:1602]); 124 elseif strcmpi(benchmark,'sl r'),124 elseif strcmpi(benchmark,'slc'), 125 125 test_ids=intersect(test_ids,[2001:2500]); 126 126 elseif strcmpi(benchmark,'adolc'), -
issm/trunk-jpl/test/NightlyRun/runme.py
r25762 r25956 47 47 'qmu' : validation of qmu tests 48 48 'referential' : validation of referential tests 49 'sl r' : validation of slrtests49 'slc' : validation of slc tests 50 50 'thermal' : validation of thermal tests 51 51 'tranforcing' : validation of transient forcing tests … … 63 63 ./runme.py -e 2001 64 64 ./runme.py -e 'Dakota' --benchmark 'all' 65 ./runme.py -i [[101, 102], ['Dakota', 'Sl r']]65 ./runme.py -i [[101, 102], ['Dakota', 'Slc']] 66 66 67 67 TODO: … … 76 76 #Process options 77 77 #GET benchmark {{{ 78 if benchmark not in ['all', 'nightly', 'validation', 'adolc', 'eismint', 'ismip', 'mesh', 'sl r', 'thermal', 'tranforcing', 'qmu']:78 if benchmark not in ['all', 'nightly', 'validation', 'adolc', 'eismint', 'ismip', 'mesh', 'slc', 'thermal', 'tranforcing', 'qmu']: 79 79 print(("runme warning: benchmark '{}' not supported, defaulting to test 'nightly'.".format(benchmark))) 80 80 benchmark = 'nightly' … … 129 129 elif benchmark == 'referential': 130 130 test_ids = test_ids.intersection(set(range(1601, 1603))) 131 elif benchmark == 'sl r':131 elif benchmark == 'slc': 132 132 test_ids = test_ids.intersection(set(range(2001, 2500))) 133 133 elif benchmark == 'adolc': -
issm/trunk-jpl/test/NightlyRun/test2002.m
r25948 r25956 1 %Test Name: EarthSl r1 %Test Name: EarthSlc 2 2 3 3 %mesh earth: -
issm/trunk-jpl/test/NightlyRun/test2002.py
r25763 r25956 1 #Test Name: EarthSl r1 #Test Name: EarthSlc 2 2 import numpy as np 3 3 -
issm/trunk-jpl/test/NightlyRun/test2003.m
r25948 r25956 1 %Test Name: EarthSl r_rotationalFeedback1 %Test Name: EarthSlc_rotationalFeedback 2 2 3 3 %mesh earth: … … 5 5 md.mesh=gmshplanet('radius',6.371012*10^3,'resolution',1000.); %1000 km resolution mesh 6 6 7 %parameterize sl rsolution:7 %parameterize slc solution: 8 8 %solidearth loading: {{{ 9 9 md.solidearth.surfaceload.icethicknesschange=zeros(md.mesh.numberofelements,1); -
issm/trunk-jpl/test/NightlyRun/test2003.py
r25763 r25956 1 #Test Name: EarthSl r_rotationalFeedback1 #Test Name: EarthSlc_rotationalFeedback 2 2 import numpy as np 3 3 -
issm/trunk-jpl/test/NightlyRun/test2004.m
r25948 r25956 135 135 md.geometry.bed=-ones(md.mesh.numberofvertices,1); 136 136 end % }}} 137 %Sl r: {{{137 %Slc: {{{ 138 138 if bas.iscontinentany('antarctica'), 139 139 if testagainst2002, … … 244 244 % }}} 245 245 %}}} 246 %sl rloading/calibration: {{{246 %slc loading/calibration: {{{ 247 247 md.solidearth.surfaceload.icethicknesschange=zeros(md.mesh.numberofelements,1); 248 248 -
issm/trunk-jpl/test/NightlyRun/test2005.m
r25763 r25956 1 %Test Name: EarthSl r1 %Test Name: EarthSlc 2 2 3 3 %mesh earth: … … 72 72 md.timestepping.final_time=10; 73 73 md.timestepping.time_step=1; 74 md.transient.issl r=1;74 md.transient.isslc=1; 75 75 md.transient.issmb=0; 76 76 md.transient.isgia=1; … … 97 97 S5=md.results.TransientSolution(5).Sealevel; 98 98 S10=md.results.TransientSolution(10).Sealevel; 99 Seus10=md.results.TransientSolution(10).Bsl r;99 Seus10=md.results.TransientSolution(10).Bslc; 100 100 101 101 %Fields and tolerances to track changes -
issm/trunk-jpl/test/NightlyRun/test2005.py
r25763 r25956 1 #Test Name: EarthSl r1 #Test Name: EarthSlc 2 2 import numpy as np 3 3 … … 84 84 md.timestepping.final_time = 10 85 85 md.timestepping.time_step = 1 86 md.transient.issl r= 186 md.transient.isslc = 1 87 87 md.transient.issmb = 0 88 88 md.transient.isgia = 1 … … 109 109 S5 = md.results.TransientSolution[5 - 1].Sealevel 110 110 S10 = md.results.TransientSolution[10 - 1].Sealevel 111 Seus10 = md.results.TransientSolution[10 - 1].Bsl r111 Seus10 = md.results.TransientSolution[10 - 1].Bslc 112 112 113 113 #Fields and tolerances to track changes -
issm/trunk-jpl/test/NightlyRun/test2006.m
r25763 r25956 1 %Test Name: EarthSl rDakota Sampling glaciers.1 %Test Name: EarthSlc Dakota Sampling glaciers. 2 2 3 3 %mesh earth: … … 73 73 md.timestepping.final_time=10; 74 74 md.timestepping.time_step=1; 75 md.transient.issl r=1;75 md.transient.isslc=1; 76 76 md.transient.issmb=0; 77 77 md.transient.isgia=1; … … 161 161 162 162 md.qmu.statistics.method(1).name='Histogram'; 163 md.qmu.statistics.method(1).fields={'Sealevel','Bsl rIce'};163 md.qmu.statistics.method(1).fields={'Sealevel','BslcIce'}; 164 164 md.qmu.statistics.method(1).steps=[1:10]; 165 165 md.qmu.statistics.method(1).nbins=20; 166 166 167 167 md.qmu.statistics.method(2).name='MeanVariance'; 168 md.qmu.statistics.method(2).fields={'Sealevel','Bsl rIce'};168 md.qmu.statistics.method(2).fields={'Sealevel','BslcIce'}; 169 169 md.qmu.statistics.method(2).steps=[1:10]; 170 170 171 171 md.qmu.statistics.method(3).name='SampleSeries'; 172 md.qmu.statistics.method(3).fields={'Sealevel','Bsl rIce'};172 md.qmu.statistics.method(3).fields={'Sealevel','BslcIce'}; 173 173 md.qmu.statistics.method(3).steps=[1:10]; 174 174 md.qmu.statistics.method(3).indices=locations; -
issm/trunk-jpl/test/NightlyRun/test2006.py
r25763 r25956 1 #Test Name: EarthSl rDakota Sampling glaciers1 #Test Name: EarthSlc Dakota Sampling glaciers 2 2 import numpy as np 3 3 … … 87 87 md.timestepping.final_time = 10 88 88 md.timestepping.time_step = 1 89 md.transient.issl r= 189 md.transient.isslc = 1 90 90 md.transient.issmb = 0 91 91 md.transient.isgia = 1 … … 195 195 196 196 md.qmu.statistics.method[0]['name'] = 'Histogram' 197 md.qmu.statistics.method[0]['fields'] = ['Sealevel', 'Bsl rIce']197 md.qmu.statistics.method[0]['fields'] = ['Sealevel', 'BslcIce'] 198 198 md.qmu.statistics.method[0]['steps'] = np.arange(1, 10 + 1).reshape(1, -1) 199 199 md.qmu.statistics.method[0]['nbins'] = 20 … … 201 201 md.qmu.statistics.addmethod() 202 202 md.qmu.statistics.method[1]['name'] = 'MeanVariance' 203 md.qmu.statistics.method[1]['fields'] = ['Sealevel', 'Bsl rIce']203 md.qmu.statistics.method[1]['fields'] = ['Sealevel', 'BslcIce'] 204 204 md.qmu.statistics.method[1]['steps'] = np.arange(1, 10 + 1).reshape(1, -1) 205 205 206 206 md.qmu.statistics.addmethod() 207 207 md.qmu.statistics.method[2]['name'] = 'SampleSeries' 208 md.qmu.statistics.method[2]['fields'] = ['Sealevel', 'Bsl rIce']208 md.qmu.statistics.method[2]['fields'] = ['Sealevel', 'BslcIce'] 209 209 md.qmu.statistics.method[2]['steps'] = np.arange(1, 10 + 1).reshape(1, -1) 210 210 md.qmu.statistics.method[2]['indices'] = locations.reshape(1, -1) -
issm/trunk-jpl/test/NightlyRun/test2010.m
r25951 r25956 6 6 md.mesh=gmshplanet('radius',rad_e,'resolution',1000.0); % km resolution 7 7 8 %parameterize sl rsolution:9 %sl rloading: {{{8 %parameterize slc solution: 9 %slc loading: {{{ 10 10 late=sum(md.mesh.lat(md.mesh.elements),2)/3; 11 11 longe=sum(md.mesh.long(md.mesh.elements),2)/3; … … 75 75 % uncomment following 2 lines for 76 76 md=solve(md,'Sealevelchange'); 77 eus=md.results.SealevelchangeSolution.Bsl r;78 sl r=md.results.SealevelchangeSolution.Sealevel;77 eus=md.results.SealevelchangeSolution.Bslc; 78 slc=md.results.SealevelchangeSolution.Sealevel; 79 79 moixz=md.results.SealevelchangeSolution.SealevelInertiaTensorXZ; 80 80 moiyz=md.results.SealevelchangeSolution.SealevelInertiaTensorYZ; … … 82 82 83 83 % analytical moi => just checking FOR ICE only!!! {{{ 84 % ...have to mute ** sl rinduced MOI in Tria.cpp ** prior to the comparison84 % ...have to mute ** slc induced MOI in Tria.cpp ** prior to the comparison 85 85 %rad_e = rad_e*1e3; % now in meters 86 86 %areas=GetAreasSphericalTria(md.mesh.elements,md.mesh.lat,md.mesh.long,rad_e); … … 91 91 92 92 %Fields and tolerances to track changes 93 field_names ={'eus','sl r','moixz','moiyz','moizz'};93 field_names ={'eus','slc','moixz','moiyz','moizz'}; 94 94 field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13}; 95 field_values={eus,sl r,moixz,moiyz,moizz};95 field_values={eus,slc,moixz,moiyz,moizz}; 96 96 -
issm/trunk-jpl/test/NightlyRun/test2010.py
r25763 r25956 87 87 # uncomment following 2 lines for 88 88 md = solve(md, 'Sealevelrise') 89 eus = md.results.SealevelriseSolution.Bsl r90 sl r= md.results.SealevelriseSolution.Sealevel89 eus = md.results.SealevelriseSolution.Bslc 90 slc = md.results.SealevelriseSolution.Sealevel 91 91 moixz = md.results.SealevelriseSolution.SealevelInertiaTensorXZ 92 92 moiyz = md.results.SealevelriseSolution.SealevelInertiaTensorYZ … … 103 103 104 104 #Fields and tolerances to track changes 105 field_names = ['eus', 'sl r', 'moixz', 'moiyz', 'moizz']105 field_names = ['eus', 'slc', 'moixz', 'moiyz', 'moizz'] 106 106 field_tolerances = [1e-13, 1e-13, 1e-13, 1e-13, 1e-13] 107 field_values = [eus, sl r, moixz, moiyz, moizz]107 field_values = [eus, slc, moixz, moiyz, moizz] -
issm/trunk-jpl/test/NightlyRun/test2020.m
r25475 r25956 1 %Test Name: SHsl r1 %Test Name: SHslc 2 2 % spherical-harmonic (SH) approach for solving the sea-level equation. 3 3 % reference: Adhikari et al., 2019, ESSD, https://doi.org/10.5194/essd-11-629-2019 -
issm/trunk-jpl/test/NightlyRun/test2021.m
r25428 r25956 1 %Test Name: SESAWsl r2 % SESAW method of solving GRD sl r1 %Test Name: SESAWslc 2 % SESAW method of solving GRD slc 3 3 % reference: Adhikari et al., 2016, GMD, https://doi.org/10.5194/gmd-9-1087-2016 4 4 … … 36 36 area_element=GetAreasSphericalTria(md.mesh.elements,md.mesh.lat,md.mesh.long,md.solidearth.planetradius); 37 37 38 % Parameters input for SESAWsl rsolver.38 % Parameters input for SESAWslc solver. 39 39 para.ocean_element = ocean_element; 40 40 para.loads_element = loads_element; … … 61 61 62 62 % solve: Rigid without rotational feedbacks. 63 disp(['Solving sesaw-sl rfor Rigid Earth WITHOUT rotational feedback...']);63 disp(['Solving sesaw-slc for Rigid Earth WITHOUT rotational feedback...']); 64 64 [eus_rigid,rsl_rigid] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para); 65 65 66 66 % solve: Rigid with rotational feedbacks. 67 67 para.rotational.flag = 1; 68 disp(['Solving sesaw-sl rfor Rigid Earth WITH rotational feedback...']);68 disp(['Solving sesaw-slc for Rigid Earth WITH rotational feedback...']); 69 69 [eus_rigid_rot,rsl_rigid_rot] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para); 70 70 71 71 % solve: Elastic with rotational feedbacks. 72 72 para.solidearth = 'elastic'; 73 disp(['Solving sesaw-sl rfor Elastic Earth WITH rotational feedback...']);73 disp(['Solving sesaw-slc for Elastic Earth WITH rotational feedback...']); 74 74 [eus_elast_rot,rsl_elast_rot] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para); 75 75 76 76 % solve: Elastic with rotational feedbacks. 77 77 para.rotational.flag = 0; 78 disp(['Solving sesaw-sl rfor Elastic Earth WITHOUT rotational feedback...']);78 disp(['Solving sesaw-slc for Elastic Earth WITHOUT rotational feedback...']); 79 79 [eus_elast,rsl_elast] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para); 80 80
Note:
See TracChangeset
for help on using the changeset viewer.