Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 22284)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 22285)
@@ -4476,5 +4476,5 @@
 }
 /*}}}*/
-void FemModel::StackTransientOutputx(int* input_enum,IssmDouble hydrotime,int numoutputs){ /*{{{*/
+void FemModel::StackTransientOutputx(int* input_enum,int* stackedinput_enum,IssmDouble hydrotime,int numoutputs){ /*{{{*/
 
   for(int i=0;i<numoutputs;i++){
@@ -4487,5 +4487,5 @@
 				Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
 				TransientInput* stacking_input=NULL;
-				Input* input=element->inputs->GetInput(EffectivePressureStackedEnum); _assert_(input);
+				Input* input=element->inputs->GetInput(stackedinput_enum[i]); _assert_(input);
 				Input* input_to_stack=element->GetInput(input_enum[i]); _assert_(input_to_stack);
 				stacking_input=dynamic_cast<TransientInput*>(input);
@@ -4496,11 +4496,11 @@
 				switch(element->ObjectEnum()){
 				case TriaEnum:
-					stacking_input->AddTimeInput(new TriaInput(EffectivePressureStackedEnum,&N[0],P1Enum),hydrotime);
+					stacking_input->AddTimeInput(new TriaInput(stackedinput_enum[i],&N[0],P1Enum),hydrotime);
 					break;
 				case PentaEnum:
-					stacking_input->AddTimeInput(new PentaInput(EffectivePressureStackedEnum,&N[0],P1Enum),hydrotime);
+					stacking_input->AddTimeInput(new PentaInput(stackedinput_enum[i],&N[0],P1Enum),hydrotime);
 					break;
 				case TetraEnum:
-					stacking_input->AddTimeInput(new TetraInput(EffectivePressureStackedEnum,&N[0],P1Enum),hydrotime);
+					stacking_input->AddTimeInput(new TetraInput(stackedinput_enum[i],&N[0],P1Enum),hydrotime);
 					break;
 				default: _error_("Not implemented yet");
@@ -4512,5 +4512,5 @@
 }
 /*}}}*/
-void FemModel::AverageTransientOutputx(int* input_enum,IssmDouble init_time,int numoutputs){ /*{{{*/
+void FemModel::AverageTransientOutputx(int* input_enum,int* averagedinput_enum,IssmDouble init_time,int numoutputs){ /*{{{*/
 
   for(int i=0;i<numoutputs;i++){
@@ -4530,5 +4530,5 @@
 				stacking_input->GetInputAverageOnTimes(&time_averaged,init_time);
 
-				element->AddInput(EffectivePressureTimeAverageEnum,&time_averaged[0],P1Enum);
+				element->AddInput(averagedinput_enum[i],&time_averaged[0],P1Enum);
 				xDelete<IssmDouble>(time_averaged);
 			}
Index: /issm/trunk-jpl/src/c/classes/FemModel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 22284)
+++ /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 22285)
@@ -150,6 +150,6 @@
 		void UpdateConstraintsL2ProjectionEPLx(IssmDouble* pL2count);
 		void InitTransientOutputx(int* input_enum, int numoutputs);
-		void StackTransientOutputx(int* input_enum, IssmDouble hydrotime, int numoutputs);
-		void AverageTransientOutputx(int* input_enum,IssmDouble hydrotime,int numoutputs);
+		void StackTransientOutputx(int* input_enum,int* stackedinput_enum, IssmDouble hydrotime, int numoutputs);
+		void AverageTransientOutputx(int* input_enum,int* averagedinput_enum,IssmDouble hydrotime,int numoutputs);
 		void UpdateConstraintsx(void);
 		int  UpdateVertexPositionsx(void);
Index: /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 22284)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 22285)
@@ -70,6 +70,8 @@
 	output->numtimesteps=this->numtimesteps;
 	output->timesteps=xNew<IssmDouble>(this->numtimesteps);
-	xMemCpy(output->timesteps,this->timesteps,this->numtimesteps);
-	output->inputs=static_cast<Inputs*>(this->inputs->Copy());
+	if(this->numtimesteps>0){
+		xMemCpy(output->timesteps,this->timesteps,this->numtimesteps);
+		output->inputs=static_cast<Inputs*>(this->inputs->Copy());
+	}
 	output->parameters=this->parameters;
 
Index: /issm/trunk-jpl/src/c/cores/hydrology_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 22284)
+++ /issm/trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 22285)
@@ -18,5 +18,4 @@
 	bool save_results;
 	bool modify_loads=true;
-	bool isefficientlayer;
 	char **requested_outputs = NULL;
 
@@ -27,5 +26,4 @@
 	femmodel->parameters->FindParam(&numoutputs,HydrologyNumRequestedOutputsEnum);
 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,HydrologyRequestedOutputsEnum);
-
 	/*Using the Shreve based Model*/
 	if (hydrology_model==HydrologyshreveEnum){
@@ -42,8 +40,4 @@
 		InputDuplicatex(femmodel,WatercolumnEnum,WaterColumnOldEnum);
 		
-		if(save_results){
-			if(VerboseSolution()) _printf0_("   saving results \n");
-			femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
-		}
 	}
 
@@ -51,8 +45,10 @@
 	else if (hydrology_model==HydrologydcEnum){
 		/*intermediary: */
+		bool       isefficientlayer;
 		int        step,hydroslices;
 		IssmDouble time,init_time,hydrotime,yts;
 		IssmDouble dt,hydrodt;
 
+		femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
 		femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 		femmodel->parameters->FindParam(&step,StepEnum);
@@ -60,37 +56,50 @@
 		femmodel->parameters->FindParam(&hydroslices,HydrologyStepsPerStepEnum);
 		femmodel->parameters->FindParam(&yts,ConstantsYtsEnum);
+
 		init_time = time-dt; //getting the time back to the start of the timestep
 		hydrotime=init_time;
 		hydrodt=dt/hydroslices; //computing hydro dt from dt and a divider
 		femmodel->parameters->AddObject(new DoubleParam(HydrologydtEnum,hydrodt));
-
-		if(dt>0){
-			if(hydroslices>1){
-				int trans_input[1]={EffectivePressureStackedEnum};
-				femmodel->InitTransientOutputx(&trans_input[0],1);
-			}
-			while(hydrotime<time-(yts*DBL_EPSILON)){ //loop on hydro dts
-				hydrotime+=hydrodt;
-				InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
-				femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
-				if (isefficientlayer){
+		if(hydroslices>1){
+			/*define which variable needs to be averaged on the sub-timestep and initialize as needed*/
+			if (isefficientlayer){
+				int inputtostack[4]={EffectivePressureEnum,SedimentHeadEnum,EplHeadEnum,HydrologydcEplThicknessEnum};
+				int stackedinput[4]={EffectivePressureStackedEnum,SedimentHeadStackedEnum,EplHeadStackedEnum,HydrologydcEplThicknessStackedEnum};
+				int averagedinput[4]={EffectivePressureTimeAverageEnum,SedimentHeadTimeAverageEnum,EplHeadTimeAverageEnum,HydrologydcEplThicknessTimeAverageEnum};
+				femmodel->InitTransientOutputx(&stackedinput[0],4);
+				while(hydrotime<time-(yts*DBL_EPSILON)){ //loop on hydro dts
+					hydrotime+=hydrodt;
+					/*save preceding timestep*/
+					InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
 					InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum);
 					InputDuplicatex(femmodel,HydrologydcEplThicknessEnum,HydrologydcEplThicknessOldEnum);
+					/*Proceed now to heads computations*/
+					solutionsequence_hydro_nonlinear(femmodel);
+					/*If we have a sub-timestep we stack the variables here*/
+					femmodel->StackTransientOutputx(&inputtostack[0],&stackedinput[0],hydrotime,4);
 				}
-				/*Proceed now to heads computations*/
-				solutionsequence_hydro_nonlinear(femmodel);
-				if (hydroslices>1){
-					int output[1]={EffectivePressureEnum};
-					femmodel->StackTransientOutputx(&output[0],hydrotime,1);
+				femmodel->AverageTransientOutputx(&stackedinput[0],&averagedinput[0],init_time,4);
+			}
+			else{
+				int inputtostack[2]={EffectivePressureEnum,SedimentHeadEnum};
+				int stackedinput[2]={EffectivePressureStackedEnum,SedimentHeadStackedEnum};
+				int averagedinput[2]={EffectivePressureTimeAverageEnum,SedimentHeadTimeAverageEnum};
+				femmodel->InitTransientOutputx(&stackedinput[0],2);
+				while(hydrotime<time-(yts*DBL_EPSILON)){ //loop on hydro dts
+					hydrotime+=hydrodt;
+					/*save preceding timestep*/
+					InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
+					InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum);
+					InputDuplicatex(femmodel,HydrologydcEplThicknessEnum,HydrologydcEplThicknessOldEnum);
+					/*Proceed now to heads computations*/
+					solutionsequence_hydro_nonlinear(femmodel);
+					/*If we have a sub-timestep we stack the variables here*/
+					femmodel->StackTransientOutputx(&inputtostack[0],&stackedinput[0],hydrotime,2);
 				}
+				femmodel->AverageTransientOutputx(&stackedinput[0],&averagedinput[0],init_time,2);
 			}
-			if(hydroslices>1){
-				int output[1]={EffectivePressureStackedEnum};
-				femmodel->AverageTransientOutputx(&output[0],init_time,1);
-			}		
 		}
 		else{
 			InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
-			femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
 			if (isefficientlayer){
 				InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum);
@@ -100,10 +109,5 @@
 			solutionsequence_hydro_nonlinear(femmodel);
 		}
-		if(save_results){
-			if(VerboseSolution()) _printf0_("   saving results \n");
-			femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
-		}
 	}
-	
 	else if (hydrology_model==HydrologysommersEnum){	
 		femmodel->SetCurrentConfiguration(HydrologySommersAnalysisEnum);	
@@ -114,13 +118,11 @@
 		analysis->UpdateGapHeight(femmodel);
 		delete analysis;
-		
-		if(save_results){
-			if(VerboseSolution()) _printf0_("   saving results \n");
-			femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
-		}
 	}
-
 	else{
 		_error_("Hydrology model "<< EnumToStringx(hydrology_model) <<" not supported yet");
+	}
+	if(save_results){
+		if(VerboseSolution()) _printf0_("   saving results \n");
+		femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
 	}
 	/*Free ressources:*/	
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 22284)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 22285)
@@ -128,9 +128,9 @@
 	GeometryHydrostaticRatioEnum,
 	HydrologyModelEnum,
+	HydrologyNumRequestedOutputsEnum,
+	HydrologyRequestedOutputsEnum,
 	HydrologyshreveEnum,
 	HydrologyshreveStabilizationEnum,
 	HydrologydcEnum,
-	HydrologyNumRequestedOutputsEnum,
-	HydrologyRequestedOutputsEnum,
 	HydrologydtEnum,
 	HydrologyStepsPerStepEnum,
@@ -150,5 +150,4 @@
 	EplHeadSlopeYEnum,
 	EplZigZagCounterEnum,
-	MeanEffectivePressureEnum,
 	HydrologydcMaxIterEnum,
 	HydrologydcRelTolEnum,
@@ -181,7 +180,4 @@
 	HydrologydcEplflipLockEnum,
 	HydrologydcBasalMoulinInputEnum,
-	HydrologyLayerEnum,
-	HydrologySedimentEnum,
-	HydrologyEfficientEnum,
 	HydrologySedimentKmaxEnum,
 	HydrologysommersEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 22284)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 22285)
@@ -134,9 +134,9 @@
 		case GeometryHydrostaticRatioEnum : return "GeometryHydrostaticRatio";
 		case HydrologyModelEnum : return "HydrologyModel";
+		case HydrologyNumRequestedOutputsEnum : return "HydrologyNumRequestedOutputs";
+		case HydrologyRequestedOutputsEnum : return "HydrologyRequestedOutputs";
 		case HydrologyshreveEnum : return "Hydrologyshreve";
 		case HydrologyshreveStabilizationEnum : return "HydrologyshreveStabilization";
 		case HydrologydcEnum : return "Hydrologydc";
-		case HydrologyNumRequestedOutputsEnum : return "HydrologyNumRequestedOutputs";
-		case HydrologyRequestedOutputsEnum : return "HydrologyRequestedOutputs";
 		case HydrologydtEnum : return "Hydrologydt";
 		case HydrologyStepsPerStepEnum : return "HydrologyStepsPerStep";
@@ -156,5 +156,4 @@
 		case EplHeadSlopeYEnum : return "EplHeadSlopeY";
 		case EplZigZagCounterEnum : return "EplZigZagCounter";
-		case MeanEffectivePressureEnum : return "MeanEffectivePressure";
 		case HydrologydcMaxIterEnum : return "HydrologydcMaxIter";
 		case HydrologydcRelTolEnum : return "HydrologydcRelTol";
@@ -187,7 +186,4 @@
 		case HydrologydcEplflipLockEnum : return "HydrologydcEplflipLock";
 		case HydrologydcBasalMoulinInputEnum : return "HydrologydcBasalMoulinInput";
-		case HydrologyLayerEnum : return "HydrologyLayer";
-		case HydrologySedimentEnum : return "HydrologySediment";
-		case HydrologyEfficientEnum : return "HydrologyEfficient";
 		case HydrologySedimentKmaxEnum : return "HydrologySedimentKmax";
 		case HydrologysommersEnum : return "Hydrologysommers";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 22284)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 22285)
@@ -134,12 +134,12 @@
 	      else if (strcmp(name,"GeometryHydrostaticRatio")==0) return GeometryHydrostaticRatioEnum;
 	      else if (strcmp(name,"HydrologyModel")==0) return HydrologyModelEnum;
+	      else if (strcmp(name,"HydrologyNumRequestedOutputs")==0) return HydrologyNumRequestedOutputsEnum;
+	      else if (strcmp(name,"HydrologyRequestedOutputs")==0) return HydrologyRequestedOutputsEnum;
 	      else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum;
-	      else if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
-	      else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
          else stage=2;
    }
    if(stage==2){
-	      if (strcmp(name,"HydrologyNumRequestedOutputs")==0) return HydrologyNumRequestedOutputsEnum;
-	      else if (strcmp(name,"HydrologyRequestedOutputs")==0) return HydrologyRequestedOutputsEnum;
+	      if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
+	      else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
 	      else if (strcmp(name,"Hydrologydt")==0) return HydrologydtEnum;
 	      else if (strcmp(name,"HydrologyStepsPerStep")==0) return HydrologyStepsPerStepEnum;
@@ -159,5 +159,4 @@
 	      else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
 	      else if (strcmp(name,"EplZigZagCounter")==0) return EplZigZagCounterEnum;
-	      else if (strcmp(name,"MeanEffectivePressure")==0) return MeanEffectivePressureEnum;
 	      else if (strcmp(name,"HydrologydcMaxIter")==0) return HydrologydcMaxIterEnum;
 	      else if (strcmp(name,"HydrologydcRelTol")==0) return HydrologydcRelTolEnum;
@@ -190,7 +189,4 @@
 	      else if (strcmp(name,"HydrologydcEplflipLock")==0) return HydrologydcEplflipLockEnum;
 	      else if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum;
-	      else if (strcmp(name,"HydrologyLayer")==0) return HydrologyLayerEnum;
-	      else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum;
-	      else if (strcmp(name,"HydrologyEfficient")==0) return HydrologyEfficientEnum;
 	      else if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
 	      else if (strcmp(name,"Hydrologysommers")==0) return HydrologysommersEnum;
@@ -260,12 +256,12 @@
 	      else if (strcmp(name,"DamageLaw")==0) return DamageLawEnum;
 	      else if (strcmp(name,"DamageC1")==0) return DamageC1Enum;
+	      else if (strcmp(name,"DamageC2")==0) return DamageC2Enum;
+	      else if (strcmp(name,"DamageC3")==0) return DamageC3Enum;
+	      else if (strcmp(name,"DamageC4")==0) return DamageC4Enum;
+	      else if (strcmp(name,"DamageElementinterp")==0) return DamageElementinterpEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"DamageC2")==0) return DamageC2Enum;
-	      else if (strcmp(name,"DamageC3")==0) return DamageC3Enum;
-	      else if (strcmp(name,"DamageC4")==0) return DamageC4Enum;
-	      else if (strcmp(name,"DamageElementinterp")==0) return DamageElementinterpEnum;
-	      else if (strcmp(name,"DamageHealing")==0) return DamageHealingEnum;
+	      if (strcmp(name,"DamageHealing")==0) return DamageHealingEnum;
 	      else if (strcmp(name,"DamageStressThreshold")==0) return DamageStressThresholdEnum;
 	      else if (strcmp(name,"DamageKappa")==0) return DamageKappaEnum;
@@ -383,12 +379,12 @@
 	      else if (strcmp(name,"GiaMantleViscosity")==0) return GiaMantleViscosityEnum;
 	      else if (strcmp(name,"GiaLithosphereThickness")==0) return GiaLithosphereThicknessEnum;
+	      else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
+	      else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum;
+	      else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum;
+	      else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"Thickness")==0) return ThicknessEnum;
-	      else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum;
-	      else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum;
-	      else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum;
-	      else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
+	      if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
 	      else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum;
 	      else if (strcmp(name,"TimesteppingInterpForcings")==0) return TimesteppingInterpForcingsEnum;
@@ -506,12 +502,12 @@
 	      else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
 	      else if (strcmp(name,"SmbSmbref")==0) return SmbSmbrefEnum;
+	      else if (strcmp(name,"SmbBPos")==0) return SmbBPosEnum;
+	      else if (strcmp(name,"SmbBNeg")==0) return SmbBNegEnum;
+	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
+	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"SmbBPos")==0) return SmbBPosEnum;
-	      else if (strcmp(name,"SmbBNeg")==0) return SmbBNegEnum;
-	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
-	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
-	      else if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum;
+	      if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum;
 	      else if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum;
 	      else if (strcmp(name,"SmbRunoff")==0) return SmbRunoffEnum;
@@ -629,12 +625,12 @@
 	      else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
 	      else if (strcmp(name,"IntMatExternalResult")==0) return IntMatExternalResultEnum;
+	      else if (strcmp(name,"J")==0) return JEnum;
+	      else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
+	      else if (strcmp(name,"Step")==0) return StepEnum;
+	      else if (strcmp(name,"Time")==0) return TimeEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"J")==0) return JEnum;
-	      else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
-	      else if (strcmp(name,"Step")==0) return StepEnum;
-	      else if (strcmp(name,"Time")==0) return TimeEnum;
-	      else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum;
+	      if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum;
 	      else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
 	      else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
@@ -752,12 +748,12 @@
 	      else if (strcmp(name,"AugmentedLagrangianRlambda")==0) return AugmentedLagrangianRlambdaEnum;
 	      else if (strcmp(name,"AugmentedLagrangianRholambda")==0) return AugmentedLagrangianRholambdaEnum;
+	      else if (strcmp(name,"AugmentedLagrangianTheta")==0) return AugmentedLagrangianThetaEnum;
+	      else if (strcmp(name,"None")==0) return NoneEnum;
+	      else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
+	      else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"AugmentedLagrangianTheta")==0) return AugmentedLagrangianThetaEnum;
-	      else if (strcmp(name,"None")==0) return NoneEnum;
-	      else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
-	      else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
-	      else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
+	      if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
 	      else if (strcmp(name,"SubelementMigration2")==0) return SubelementMigration2Enum;
 	      else if (strcmp(name,"SubelementMigration3")==0) return SubelementMigration3Enum;
@@ -875,12 +871,12 @@
 	      else if (strcmp(name,"EsaHElastic")==0) return EsaHElasticEnum;
 	      else if (strcmp(name,"EsaTransitions")==0) return EsaTransitionsEnum;
+	      else if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum;
+	      else if (strcmp(name,"EsaNumRequestedOutputs")==0) return EsaNumRequestedOutputsEnum;
+	      else if (strcmp(name,"TransientAmrFrequency")==0) return TransientAmrFrequencyEnum;
+	      else if (strcmp(name,"AmrType")==0) return AmrTypeEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum;
-	      else if (strcmp(name,"EsaNumRequestedOutputs")==0) return EsaNumRequestedOutputsEnum;
-	      else if (strcmp(name,"TransientAmrFrequency")==0) return TransientAmrFrequencyEnum;
-	      else if (strcmp(name,"AmrType")==0) return AmrTypeEnum;
-	      else if (strcmp(name,"AmrRestart")==0) return AmrRestartEnum;
+	      if (strcmp(name,"AmrRestart")==0) return AmrRestartEnum;
 	      else if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum;
 	      else if (strcmp(name,"AmrLevelMax")==0) return AmrLevelMaxEnum;
@@ -998,12 +994,12 @@
 	      else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
 	      else if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
+	      else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
+	      else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
+	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
+	      else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
-	      else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
-	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
-	      else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
-	      else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
+	      if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
 	      else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
 	      else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
Index: /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 22284)
+++ /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 22285)
@@ -47,5 +47,4 @@
 	IssmDouble ndu_epl,nu_epl;
 	IssmDouble ThickCount,L2Count;
-	
 	/*Recover parameters: */
 	femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);
@@ -53,5 +52,4 @@
 	femmodel->parameters->FindParam(&hydro_maxiter,HydrologydcMaxIterEnum);
 	femmodel->parameters->FindParam(&eps_hyd,HydrologydcRelTolEnum);
-
 	hydrocount=1;
 	hydroconverged=false;
@@ -62,5 +60,4 @@
 	GetSolutionFromInputsx(&ug_sed,femmodel);	
 	Reducevectorgtofx(&uf_sed, ug_sed, femmodel->nodes,femmodel->parameters);
-
 	if(isefficientlayer) {
 		inefanalysis = new HydrologyDCInefficientAnalysis();
@@ -90,5 +87,4 @@
 		InputUpdateFromConstantx(femmodel,false,ConvergedEnum);
 		femmodel->UpdateConstraintsx();
-		//femmodel->parameters->SetParam(HydrologySedimentEnum,HydrologyLayerEnum);
 		
 		/*Reset constraint on the ZigZag Lock*/
@@ -163,5 +159,4 @@
 			InputUpdateFromConstantx(femmodel,true,ResetPenaltiesEnum);
 			InputUpdateFromConstantx(femmodel,false,ConvergedEnum);
-			//femmodel->parameters->SetParam(HydrologyEfficientEnum,HydrologyLayerEnum);
 
 			for(;;){
