Index: /issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp	(revision 26488)
+++ /issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp	(revision 26489)
@@ -167,4 +167,8 @@
 		case BaseSlopeXEnum:    input2 = basalelement->GetInput(BaseEnum);    _assert_(input2); break;
 		case BaseSlopeYEnum:    input2 = basalelement->GetInput(BaseEnum);    _assert_(input2); break;
+		case HydrologyGapHeightXEnum:    input2 = basalelement->GetInput(HydrologyGapHeightEnum);  _assert_(input2); break;
+		case HydrologyGapHeightXXEnum:   input2 = basalelement->GetInput(HydrologyGapHeightXEnum); _assert_(input2); break;
+		case HydrologyGapHeightYEnum:    input2 = basalelement->GetInput(HydrologyGapHeightEnum);  _assert_(input2); break;
+		case HydrologyGapHeightYYEnum:   input2 = basalelement->GetInput(HydrologyGapHeightYEnum); _assert_(input2); break;
 		case LevelsetfunctionSlopeXEnum: input2 = basalelement->GetInput(MaskIceLevelsetEnum);     _assert_(input2); break;
 		case LevelsetfunctionSlopeYEnum: input2 = basalelement->GetInput(MaskIceLevelsetEnum);     _assert_(input2); break;
@@ -181,7 +185,14 @@
 		if(input2) input2->GetInputDerivativeValue(&slopes[0],xyz_list,gauss);
 		switch(input_enum){
-			case SurfaceSlopeXEnum: case BedSlopeXEnum: case BaseSlopeXEnum: case LevelsetfunctionSlopeXEnum: value = slopes[0]; break;
-			case SurfaceSlopeYEnum: case BedSlopeYEnum: case BaseSlopeYEnum: case LevelsetfunctionSlopeYEnum: value = slopes[1]; break;
-			default: input->GetInputValue(&value,gauss);
+			case SurfaceSlopeXEnum: case BedSlopeXEnum: case BaseSlopeXEnum: case LevelsetfunctionSlopeXEnum: 
+			case HydrologyGapHeightXEnum: case HydrologyGapHeightXXEnum:
+				value = slopes[0];
+				break;
+			case SurfaceSlopeYEnum: case BedSlopeYEnum: case BaseSlopeYEnum: case LevelsetfunctionSlopeYEnum: 
+			case HydrologyGapHeightYEnum: case HydrologyGapHeightYYEnum:
+				value = slopes[1];
+				break;
+			default:
+				input->GetInputValue(&value,gauss);
 		}
 
Index: /issm/trunk-jpl/src/c/cores/hydrology_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 26488)
+++ /issm/trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 26489)
@@ -171,7 +171,22 @@
 	/*Using the SHAKTI model*/
 	else if (hydrology_model==HydrologyshaktiEnum){
+
+		/*Get second derivatives of gap height*/
+		femmodel->SetCurrentConfiguration(L2ProjectionBaseAnalysisEnum);
+		femmodel->parameters->SetParam(HydrologyGapHeightXEnum,InputToL2ProjectEnum);
+		solutionsequence_linear(femmodel);
+		femmodel->parameters->SetParam(HydrologyGapHeightYEnum,InputToL2ProjectEnum);
+		solutionsequence_linear(femmodel);
+		femmodel->parameters->SetParam(HydrologyGapHeightXXEnum,InputToL2ProjectEnum);
+		solutionsequence_linear(femmodel);
+		femmodel->parameters->SetParam(HydrologyGapHeightYYEnum,InputToL2ProjectEnum);
+		solutionsequence_linear(femmodel);
+
+		/*Get new head*/
 		femmodel->SetCurrentConfiguration(HydrologyShaktiAnalysisEnum);
 		InputDuplicatex(femmodel,HydrologyHeadEnum,HydrologyHeadOldEnum);
 		solutionsequence_shakti_nonlinear(femmodel);
+
+		/*Update Gap Height*/
 		if(VerboseSolution()) _printf0_("   updating gap height\n");
 		HydrologyShaktiAnalysis* analysis = new HydrologyShaktiAnalysis();
