Index: /issm/trunk-jpl/src/c/cores/hydrology_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 23942)
+++ /issm/trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 23943)
@@ -191,4 +191,15 @@
 	}
 
+	/*Using the GlaDS model*/
+	else if (hydrology_model==HydrologyGlaDSAnalysisEnum){
+		femmodel->SetCurrentConfiguration(HydrologyGlaDSAnalysisEnum);
+		InputDuplicatex(femmodel,HydraulicPotentialEnum,HydraulicPotentialOldEnum);
+		solutionsequence_shakti_nonlinear(femmodel);
+		if(VerboseSolution()) _printf0_("   updating sheet thickness\n");
+		HydrologyGlaDSAnalysis* analysis = new HydrologyGlaDSAnalysis();
+		analysis->UpdateSheetThickness(femmodel);
+		delete analysis;
+	}
+
 	/*Using the PISM hydrology model*/
 	else if (hydrology_model==HydrologypismEnum){
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 23942)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 23943)
@@ -537,4 +537,5 @@
 	GroundinglineHeightEnum,
 	HydraulicPotentialEnum,
+	HydraulicPotentialOldEnum,
 	HydrologyBasalFluxEnum,
 	HydrologySheetThicknessEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 23942)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 23943)
@@ -543,4 +543,5 @@
 		case GroundinglineHeightEnum : return "GroundinglineHeight";
 		case HydraulicPotentialEnum : return "HydraulicPotential";
+		case HydraulicPotentialOldEnum : return "HydraulicPotentialOld";
 		case HydrologyBasalFluxEnum : return "HydrologyBasalFlux";
 		case HydrologySheetThicknessEnum : return "HydrologySheetThickness";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 23942)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 23943)
@@ -555,4 +555,5 @@
 	      else if (strcmp(name,"GroundinglineHeight")==0) return GroundinglineHeightEnum;
 	      else if (strcmp(name,"HydraulicPotential")==0) return HydraulicPotentialEnum;
+	      else if (strcmp(name,"HydraulicPotentialOld")==0) return HydraulicPotentialOldEnum;
 	      else if (strcmp(name,"HydrologyBasalFlux")==0) return HydrologyBasalFluxEnum;
 	      else if (strcmp(name,"HydrologySheetThickness")==0) return HydrologySheetThicknessEnum;
@@ -628,9 +629,9 @@
 	      else if (strcmp(name,"RheologyBAbsGradient")==0) return RheologyBAbsGradientEnum;
 	      else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;
-	      else if (strcmp(name,"RheologyBInitialguessMisfit")==0) return RheologyBInitialguessMisfitEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"RheologyBInitialguess")==0) return RheologyBInitialguessEnum;
+	      if (strcmp(name,"RheologyBInitialguessMisfit")==0) return RheologyBInitialguessMisfitEnum;
+	      else if (strcmp(name,"RheologyBInitialguess")==0) return RheologyBInitialguessEnum;
 	      else if (strcmp(name,"Sealevel")==0) return SealevelEnum;
 	      else if (strcmp(name,"SealevelEustaticMask")==0) return SealevelEustaticMaskEnum;
@@ -751,9 +752,9 @@
 	      else if (strcmp(name,"StrainRateparallel")==0) return StrainRateparallelEnum;
 	      else if (strcmp(name,"StrainRateperpendicular")==0) return StrainRateperpendicularEnum;
-	      else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
+	      if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
+	      else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
 	      else if (strcmp(name,"StrainRatexz")==0) return StrainRatexzEnum;
 	      else if (strcmp(name,"StrainRateyy")==0) return StrainRateyyEnum;
@@ -874,9 +875,9 @@
 	      else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
 	      else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
-	      else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
+	      if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
+	      else if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
 	      else if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
 	      else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
@@ -997,9 +998,9 @@
 	      else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
 	      else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
-	      else if (strcmp(name,"FemModel")==0) return FemModelEnum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"FileParam")==0) return FileParamEnum;
+	      if (strcmp(name,"FemModel")==0) return FemModelEnum;
+	      else if (strcmp(name,"FileParam")==0) return FileParamEnum;
 	      else if (strcmp(name,"FixedTimestepping")==0) return FixedTimesteppingEnum;
 	      else if (strcmp(name,"FloatingArea")==0) return FloatingAreaEnum;
@@ -1120,9 +1121,9 @@
 	      else if (strcmp(name,"MeshY")==0) return MeshYEnum;
 	      else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum;
-	      else if (strcmp(name,"MINI")==0) return MINIEnum;
          else stage=10;
    }
    if(stage==10){
-	      if (strcmp(name,"MinVel")==0) return MinVelEnum;
+	      if (strcmp(name,"MINI")==0) return MINIEnum;
+	      else if (strcmp(name,"MinVel")==0) return MinVelEnum;
 	      else if (strcmp(name,"MinVx")==0) return MinVxEnum;
 	      else if (strcmp(name,"MinVy")==0) return MinVyEnum;
@@ -1243,9 +1244,9 @@
 	      else if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum;
 	      else if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum;
-	      else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
          else stage=11;
    }
    if(stage==11){
-	      if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
+	      if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
+	      else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
 	      else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
 	      else if (strcmp(name,"Tria")==0) return TriaEnum;
