Index: /issm/branches/trunk-larour-SLPS2020/src/c/analyses/SealevelriseAnalysis.cpp
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/analyses/SealevelriseAnalysis.cpp	(revision 25534)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/analyses/SealevelriseAnalysis.cpp	(revision 25535)
@@ -204,4 +204,5 @@
 	parameters->AddObject(new DoubleParam(CumBslrIceEnum,0.0));
 	parameters->AddObject(new DoubleParam(CumBslrHydroEnum,0.0));
+	parameters->AddObject(new DoubleParam(CumGmtslrEnum,0.0));
 
 	/*compute planet area and plug into parameters:*/
Index: /issm/branches/trunk-larour-SLPS2020/src/c/cores/sealevelchange_core.cpp
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/cores/sealevelchange_core.cpp	(revision 25534)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/cores/sealevelchange_core.cpp	(revision 25535)
@@ -271,4 +271,10 @@
 	IssmDouble          dt;
 	int  geodetic=0;
+	int  step;
+	IssmDouble time;
+	IssmDouble cumgmtslr=0;
+	IssmDouble cumbslr=0;
+	IssmDouble cumgmslr=0;
+	IssmDouble gmtslr=0;
 
 	/*Retrieve parameters:*/
@@ -277,4 +283,8 @@
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
 	femmodel->parameters->FindParam(&geodetic,SolidearthSettingsComputesealevelchangeEnum); 
+	femmodel->parameters->FindParam(&cumgmtslr,CumGmtslrEnum); 
+	femmodel->parameters->FindParam(&cumbslr,CumBslrEnum); 
+	femmodel->parameters->FindParam(&step,StepEnum);
+	femmodel->parameters->FindParam(&time,TimeEnum);
 
 	/*in case we are running SealevelriseSolutionEnum, then bypass transient settings:*/
@@ -298,4 +308,13 @@
 		GetVectorFromInputsx(&N_gia_rate,femmodel,NGiaRateEnum,VertexSIdEnum);
 	}
+
+	/*Save steric rate, and cumulate it through time, cumulate with barystatic sea level rise, and cumulate through time:*/
+	gmtslr=steric_rate_g->Max()*dt;
+	cumgmtslr+=gmtslr;
+	cumgmslr=cumbslr+cumgmtslr;
+	femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,GmtslrEnum,gmtslr,step,time));
+	femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumGmtslrEnum,cumgmtslr,step,time));
+	femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,CumGmslrEnum,cumgmslr,step,time));
+	femmodel->parameters->SetParam(cumgmtslr,CumGmtslrEnum);
 
 	/*compute: sea level change = initial sea level + (N_gia_rate+N_esa_rate)  * dt + steric_rate + dynamic_rate dt*/
Index: /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/Enum.vim
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/Enum.vim	(revision 25534)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/Enum.vim	(revision 25535)
@@ -115,4 +115,6 @@
 syn keyword cConstant CumBslrIceEnum
 syn keyword cConstant CumBslrHydroEnum
+syn keyword cConstant CumGmtslrEnum
+syn keyword cConstant CumGmslrEnum
 syn keyword cConstant DamageC1Enum
 syn keyword cConstant DamageC2Enum
@@ -696,4 +698,5 @@
 syn keyword cConstant BslrHydroEnum
 syn keyword cConstant BslrRateEnum
+syn keyword cConstant GmtslrEnum
 syn keyword cConstant SealevelRSLEustaticEnum
 syn keyword cConstant SealevelRSLRateEnum
Index: /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumDefinitions.h	(revision 25534)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumDefinitions.h	(revision 25535)
@@ -109,4 +109,6 @@
 	CumBslrIceEnum,
 	CumBslrHydroEnum,
+	CumGmtslrEnum,
+	CumGmslrEnum,
 	DamageC1Enum,
 	DamageC2Enum,
@@ -692,4 +694,5 @@
 	BslrHydroEnum,
 	BslrRateEnum,
+	GmtslrEnum,
 	SealevelRSLEustaticEnum,
 	SealevelRSLRateEnum,
Index: /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumToStringx.cpp	(revision 25534)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumToStringx.cpp	(revision 25535)
@@ -117,4 +117,6 @@
 		case CumBslrIceEnum : return "CumBslrIce";
 		case CumBslrHydroEnum : return "CumBslrHydro";
+		case CumGmtslrEnum : return "CumGmtslr";
+		case CumGmslrEnum : return "CumGmslr";
 		case DamageC1Enum : return "DamageC1";
 		case DamageC2Enum : return "DamageC2";
@@ -698,4 +700,5 @@
 		case BslrHydroEnum : return "BslrHydro";
 		case BslrRateEnum : return "BslrRate";
+		case GmtslrEnum : return "Gmtslr";
 		case SealevelRSLEustaticEnum : return "SealevelRSLEustatic";
 		case SealevelRSLRateEnum : return "SealevelRSLRate";
Index: /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/StringToEnumx.cpp	(revision 25534)
+++ /issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/StringToEnumx.cpp	(revision 25535)
@@ -117,4 +117,6 @@
 	      else if (strcmp(name,"CumBslrIce")==0) return CumBslrIceEnum;
 	      else if (strcmp(name,"CumBslrHydro")==0) return CumBslrHydroEnum;
+	      else if (strcmp(name,"CumGmtslr")==0) return CumGmtslrEnum;
+	      else if (strcmp(name,"CumGmslr")==0) return CumGmslrEnum;
 	      else if (strcmp(name,"DamageC1")==0) return DamageC1Enum;
 	      else if (strcmp(name,"DamageC2")==0) return DamageC2Enum;
@@ -135,10 +137,10 @@
 	      else if (strcmp(name,"DomainDimension")==0) return DomainDimensionEnum;
 	      else if (strcmp(name,"DomainType")==0) return DomainTypeEnum;
-	      else if (strcmp(name,"DslModel")==0) return DslModelEnum;
-	      else if (strcmp(name,"DslModelid")==0) return DslModelidEnum;
          else stage=2;
    }
    if(stage==2){
-	      if (strcmp(name,"DslNummodels")==0) return DslNummodelsEnum;
+	      if (strcmp(name,"DslModel")==0) return DslModelEnum;
+	      else if (strcmp(name,"DslModelid")==0) return DslModelidEnum;
+	      else if (strcmp(name,"DslNummodels")==0) return DslNummodelsEnum;
 	      else if (strcmp(name,"DslComputeFingerprints")==0) return DslComputeFingerprintsEnum;
 	      else if (strcmp(name,"EarthId")==0) return EarthIdEnum;
@@ -258,10 +260,10 @@
 	      else if (strcmp(name,"LoveShNmin")==0) return LoveShNminEnum;
 	      else if (strcmp(name,"MassFluxSegments")==0) return MassFluxSegmentsEnum;
-	      else if (strcmp(name,"MassFluxSegmentsPresent")==0) return MassFluxSegmentsPresentEnum;
-	      else if (strcmp(name,"MasstransportHydrostaticAdjustment")==0) return MasstransportHydrostaticAdjustmentEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"MasstransportIsfreesurface")==0) return MasstransportIsfreesurfaceEnum;
+	      if (strcmp(name,"MassFluxSegmentsPresent")==0) return MassFluxSegmentsPresentEnum;
+	      else if (strcmp(name,"MasstransportHydrostaticAdjustment")==0) return MasstransportHydrostaticAdjustmentEnum;
+	      else if (strcmp(name,"MasstransportIsfreesurface")==0) return MasstransportIsfreesurfaceEnum;
 	      else if (strcmp(name,"MasstransportMinThickness")==0) return MasstransportMinThicknessEnum;
 	      else if (strcmp(name,"MasstransportNumRequestedOutputs")==0) return MasstransportNumRequestedOutputsEnum;
@@ -381,10 +383,10 @@
 	      else if (strcmp(name,"SmbF")==0) return SmbFEnum;
 	      else if (strcmp(name,"SmbInitDensityScaling")==0) return SmbInitDensityScalingEnum;
-	      else if (strcmp(name,"SmbIsaccumulation")==0) return SmbIsaccumulationEnum;
-	      else if (strcmp(name,"SmbIsalbedo")==0) return SmbIsalbedoEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"SmbIsclimatology")==0) return SmbIsclimatologyEnum;
+	      if (strcmp(name,"SmbIsaccumulation")==0) return SmbIsaccumulationEnum;
+	      else if (strcmp(name,"SmbIsalbedo")==0) return SmbIsalbedoEnum;
+	      else if (strcmp(name,"SmbIsclimatology")==0) return SmbIsclimatologyEnum;
 	      else if (strcmp(name,"SmbIsconstrainsurfaceT")==0) return SmbIsconstrainsurfaceTEnum;
 	      else if (strcmp(name,"SmbIsd18opd")==0) return SmbIsd18opdEnum;
@@ -504,10 +506,10 @@
 	      else if (strcmp(name,"BasalforcingsIsmip6BasinId")==0) return BasalforcingsIsmip6BasinIdEnum;
 	      else if (strcmp(name,"BasalforcingsIsmip6Tf")==0) return BasalforcingsIsmip6TfEnum;
-	      else if (strcmp(name,"BasalforcingsIsmip6TfShelf")==0) return BasalforcingsIsmip6TfShelfEnum;
-	      else if (strcmp(name,"BasalforcingsIsmip6MeltAnomaly")==0) return BasalforcingsIsmip6MeltAnomalyEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"BasalforcingsOceanSalinity")==0) return BasalforcingsOceanSalinityEnum;
+	      if (strcmp(name,"BasalforcingsIsmip6TfShelf")==0) return BasalforcingsIsmip6TfShelfEnum;
+	      else if (strcmp(name,"BasalforcingsIsmip6MeltAnomaly")==0) return BasalforcingsIsmip6MeltAnomalyEnum;
+	      else if (strcmp(name,"BasalforcingsOceanSalinity")==0) return BasalforcingsOceanSalinityEnum;
 	      else if (strcmp(name,"BasalforcingsOceanTemp")==0) return BasalforcingsOceanTempEnum;
 	      else if (strcmp(name,"BasalforcingsPicoBasinId")==0) return BasalforcingsPicoBasinIdEnum;
@@ -627,10 +629,10 @@
 	      else if (strcmp(name,"HydrologyBumpHeight")==0) return HydrologyBumpHeightEnum;
 	      else if (strcmp(name,"HydrologyBumpSpacing")==0) return HydrologyBumpSpacingEnum;
-	      else if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum;
-	      else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"HydrologydcEplThicknessOld")==0) return HydrologydcEplThicknessOldEnum;
+	      if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum;
+	      else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
+	      else if (strcmp(name,"HydrologydcEplThicknessOld")==0) return HydrologydcEplThicknessOldEnum;
 	      else if (strcmp(name,"HydrologydcEplThicknessSubstep")==0) return HydrologydcEplThicknessSubstepEnum;
 	      else if (strcmp(name,"HydrologydcEplThicknessTransient")==0) return HydrologydcEplThicknessTransientEnum;
@@ -713,4 +715,5 @@
 	      else if (strcmp(name,"BslrHydro")==0) return BslrHydroEnum;
 	      else if (strcmp(name,"BslrRate")==0) return BslrRateEnum;
+	      else if (strcmp(name,"Gmtslr")==0) return GmtslrEnum;
 	      else if (strcmp(name,"SealevelRSLEustatic")==0) return SealevelRSLEustaticEnum;
 	      else if (strcmp(name,"SealevelRSLRate")==0) return SealevelRSLRateEnum;
@@ -749,11 +752,11 @@
 	      else if (strcmp(name,"SmbDailyairdensity")==0) return SmbDailyairdensityEnum;
 	      else if (strcmp(name,"SmbDailyairhumidity")==0) return SmbDailyairhumidityEnum;
-	      else if (strcmp(name,"SmbDailydlradiation")==0) return SmbDailydlradiationEnum;
-	      else if (strcmp(name,"SmbDailydsradiation")==0) return SmbDailydsradiationEnum;
-	      else if (strcmp(name,"SmbDailypressure")==0) return SmbDailypressureEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"SmbDailyrainfall")==0) return SmbDailyrainfallEnum;
+	      if (strcmp(name,"SmbDailydlradiation")==0) return SmbDailydlradiationEnum;
+	      else if (strcmp(name,"SmbDailydsradiation")==0) return SmbDailydsradiationEnum;
+	      else if (strcmp(name,"SmbDailypressure")==0) return SmbDailypressureEnum;
+	      else if (strcmp(name,"SmbDailyrainfall")==0) return SmbDailyrainfallEnum;
 	      else if (strcmp(name,"SmbDailysnowfall")==0) return SmbDailysnowfallEnum;
 	      else if (strcmp(name,"SmbDailytemperature")==0) return SmbDailytemperatureEnum;
@@ -872,11 +875,11 @@
 	      else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
 	      else if (strcmp(name,"ThicknessAbsMisfit")==0) return ThicknessAbsMisfitEnum;
-	      else if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
-	      else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum;
-	      else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"ThicknessOld")==0) return ThicknessOldEnum;
+	      if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
+	      else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum;
+	      else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
+	      else if (strcmp(name,"ThicknessOld")==0) return ThicknessOldEnum;
 	      else if (strcmp(name,"ThicknessPositive")==0) return ThicknessPositiveEnum;
 	      else if (strcmp(name,"ThicknessResidual")==0) return ThicknessResidualEnum;
@@ -995,11 +998,11 @@
 	      else if (strcmp(name,"Outputdefinition93")==0) return Outputdefinition93Enum;
 	      else if (strcmp(name,"Outputdefinition94")==0) return Outputdefinition94Enum;
-	      else if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum;
-	      else if (strcmp(name,"Outputdefinition96")==0) return Outputdefinition96Enum;
-	      else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
+	      if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum;
+	      else if (strcmp(name,"Outputdefinition96")==0) return Outputdefinition96Enum;
+	      else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum;
+	      else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
 	      else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
 	      else if (strcmp(name,"Outputdefinition9")==0) return Outputdefinition9Enum;
@@ -1118,11 +1121,11 @@
 	      else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum;
 	      else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;
-	      else if (strcmp(name,"GaussTetra")==0) return GaussTetraEnum;
-	      else if (strcmp(name,"GaussTria")==0) return GaussTriaEnum;
-	      else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
          else stage=10;
    }
    if(stage==10){
-	      if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
+	      if (strcmp(name,"GaussTetra")==0) return GaussTetraEnum;
+	      else if (strcmp(name,"GaussTria")==0) return GaussTriaEnum;
+	      else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
+	      else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
 	      else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
 	      else if (strcmp(name,"GiaSolution")==0) return GiaSolutionEnum;
@@ -1241,11 +1244,11 @@
 	      else if (strcmp(name,"Nodal")==0) return NodalEnum;
 	      else if (strcmp(name,"Nodalvalue")==0) return NodalvalueEnum;
-	      else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
-	      else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
-	      else if (strcmp(name,"None")==0) return NoneEnum;
          else stage=11;
    }
    if(stage==11){
-	      if (strcmp(name,"Numberedcostfunction")==0) return NumberedcostfunctionEnum;
+	      if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
+	      else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
+	      else if (strcmp(name,"None")==0) return NoneEnum;
+	      else if (strcmp(name,"Numberedcostfunction")==0) return NumberedcostfunctionEnum;
 	      else if (strcmp(name,"NyeCO2")==0) return NyeCO2Enum;
 	      else if (strcmp(name,"NyeH2O")==0) return NyeH2OEnum;
@@ -1364,11 +1367,11 @@
 	      else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
 	      else if (strcmp(name,"Tria")==0) return TriaEnum;
-	      else if (strcmp(name,"TriaInput")==0) return TriaInputEnum;
-	      else if (strcmp(name,"UzawaPressureAnalysis")==0) return UzawaPressureAnalysisEnum;
-	      else if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
          else stage=12;
    }
    if(stage==12){
-	      if (strcmp(name,"Vertex")==0) return VertexEnum;
+	      if (strcmp(name,"TriaInput")==0) return TriaInputEnum;
+	      else if (strcmp(name,"UzawaPressureAnalysis")==0) return UzawaPressureAnalysisEnum;
+	      else if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
+	      else if (strcmp(name,"Vertex")==0) return VertexEnum;
 	      else if (strcmp(name,"VertexLId")==0) return VertexLIdEnum;
 	      else if (strcmp(name,"VertexPId")==0) return VertexPIdEnum;
