Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 9254)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 9255)
@@ -2659,4 +2659,36 @@
 }
 /*}}}*/
+/*FUNCTION Tria::GetHydrologyWaterVelocity {{{1*/
+void Tria::GetHydrologyWaterVelocity(double* v,GaussTria* gauss){
+	/*material parameters: */
+	double mu_water=0.001787;  //unit= [N s/m2]
+	double w;
+	double rho_ice, rho_water, g;
+	double dsdx,dsdy,dbdx,dbdy;
+
+	/*Retrieve all inputs and parameters*/
+	rho_ice=matpar->GetRhoIce();
+	rho_water=matpar->GetRhoWater();
+	g=matpar->GetG();
+	Input* surfaceslopex_input=inputs->GetInput(SurfaceSlopeXEnum); _assert_(surfaceslopex_input);
+	Input* surfaceslopey_input=inputs->GetInput(SurfaceSlopeYEnum); _assert_(surfaceslopey_input);
+	Input* bedslopex_input=inputs->GetInput(BedSlopeXEnum);         _assert_(bedslopex_input);
+	Input* bedslopey_input=inputs->GetInput(BedSlopeYEnum);         _assert_(bedslopey_input);
+	Input* watercolumn_input=inputs->GetInput(WatercolumnEnum);     _assert_(watercolumn_input);
+
+	/*recover slopes: */
+	surfaceslopex_input->GetParameterValue(&dsdx,gauss);
+	surfaceslopey_input->GetParameterValue(&dsdy,gauss);
+	bedslopex_input->GetParameterValue(&dbdx,gauss);
+	bedslopey_input->GetParameterValue(&dbdy,gauss);
+
+	/*recover water column: */
+	watercolumn_input->GetParameterValue(&w,gauss);
+
+	/* Water velocity x and y components */
+	v[0]=pow(w,2)/(12 * mu_water)*(rho_ice*g*dsdx+(rho_water-rho_ice)*g*dbdx);
+	v[1]=pow(w,2)/(12 * mu_water)*(rho_ice*g*dsdy+(rho_water-rho_ice)*g*dbdy);
+}
+/*}}}*/
 /*FUNCTION Tria::Gradj {{{1*/
 void  Tria::Gradj(Vec gradient,int control_type){
