Index: /issm/trunk/src/c/solutions/hydrology_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/hydrology_core.cpp	(revision 7643)
+++ /issm/trunk/src/c/solutions/hydrology_core.cpp	(revision 7643)
@@ -0,0 +1,58 @@
+/*!\file: hydrology_core.cpp
+ * \brief: core of the hydrology solution 
+ */ 
+
+#include "../toolkits/toolkits.h"
+#include "../objects/objects.h"
+#include "../shared/shared.h"
+#include "../EnumDefinitions/EnumDefinitions.h"
+#include "./solutions.h"
+#include "../modules/modules.h"
+#include "../solvers/solvers.h"
+
+void hydrology_core(FemModel* femmodel){
+
+	int i;
+
+	/*intermediary*/
+	double time;
+	int    nsteps;
+	double ndt;
+	double dt;
+	bool control_analysis;
+	int solution_type;
+
+	//first recover parameters common to all solutions
+	femmodel->parameters->FindParam(&ndt,NdtEnum);
+	femmodel->parameters->FindParam(&dt,DtEnum);
+	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
+	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
+
+	/*first compute slopes: */
+	surfaceslope_core(femmodel);
+	bedslope_core(femmodel);
+
+	/*Compute number of time steps: */
+	if((dt==0)|| (ndt==0)){
+		dt=0;
+		nsteps=1;
+	}
+	else nsteps=(int)(ndt/dt);
+
+	/*Loop through time: */
+	for(i=0;i<nsteps;i++){
+		
+		if(nsteps)_printf_(VerboseSolution(),"time step: %i/%i\n",i+1,nsteps);
+		time=(i+1)*dt;
+
+		/*call hydrology_core step: */
+		hydrology_core_step(femmodel,i,time);
+
+		if(solution_type==HydrologySolutionEnum && !control_analysis){
+			_printf_(VerboseSolution(),"   saving results\n");
+			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WaterColumnEnum,i+1,time);
+		}
+
+	}
+}
+
Index: /issm/trunk/src/c/solutions/hydrology_core_step.cpp
===================================================================
--- /issm/trunk/src/c/solutions/hydrology_core_step.cpp	(revision 7643)
+++ /issm/trunk/src/c/solutions/hydrology_core_step.cpp	(revision 7643)
@@ -0,0 +1,26 @@
+/*!\file: hydrology_core_step.cpp
+ * \brief: core of the hydrology solution 
+ */ 
+
+#include "../toolkits/toolkits.h"
+#include "../objects/objects.h"
+#include "../shared/shared.h"
+#include "../EnumDefinitions/EnumDefinitions.h"
+#include "./solutions.h"
+#include "../modules/modules.h"
+#include "../include/include.h"
+#include "../solvers/solvers.h"
+
+void hydrology_core_step(FemModel* femmodel,int step, double time){
+	
+	bool modify_loads=true;
+
+	_printf_(VerboseSolution(),"   computing water column\n");
+	femmodel->SetCurrentConfiguration(HydrologyAnalysisEnum);
+	solver_nonlinear(femmodel,modify_loads);
+	//solver_linear(femmodel);
+
+	/*transfer water column thickness to old water column thickness: */
+	InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WaterColumnEnum,OldWaterColumnEnum);
+
+}
