Index: /issm/trunk-jpl/src/c/classes/Loads/Channel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Channel.cpp	(revision 24069)
+++ /issm/trunk-jpl/src/c/classes/Loads/Channel.cpp	(revision 24070)
@@ -48,5 +48,6 @@
 
 	/*Set channel cross section to 0*/
-	this->S = 0.;
+	this->S    = 0.;
+	this->Sold = 0.;
 
 	/*Get edge info*/
@@ -394,6 +395,7 @@
 	IssmDouble tx = xyz_list_tria[index2][0] - xyz_list_tria[index1][0];
 	IssmDouble ty = xyz_list_tria[index2][1] - xyz_list_tria[index1][1];
-	tx = tx/sqrt(tx*tx+ty*ty);
-	ty = ty/sqrt(tx*tx+ty*ty);
+	IssmDouble Lt = sqrt(tx*tx+ty*ty);
+	tx = tx/Lt;
+	ty = ty/Lt;
 
 	/* Start  looping on the number of gaussian points: */
@@ -524,6 +526,7 @@
 	IssmDouble tx = xyz_list_tria[index2][0] - xyz_list_tria[index1][0];
 	IssmDouble ty = xyz_list_tria[index2][1] - xyz_list_tria[index1][1];
-	tx = tx/sqrt(tx*tx+ty*ty);
-	ty = ty/sqrt(tx*tx+ty*ty);
+	IssmDouble Lt = sqrt(tx*tx+ty*ty);
+	tx = tx/Lt;
+	ty = ty/Lt;
 
 	/* Start  looping on the number of gaussian points: */
@@ -588,4 +591,9 @@
 }
 /*}}}*/
+void           Channel::SetChannelCrossSectionOld(void){/*{{{*/
+
+	this->Sold = this->S;
+
+} /*}}}*/
 void           Channel::UpdateChannelCrossSection(void){/*{{{*/
 
@@ -630,6 +638,7 @@
 	IssmDouble tx = xyz_list_tria[index2][0] - xyz_list_tria[index1][0];
 	IssmDouble ty = xyz_list_tria[index2][1] - xyz_list_tria[index1][1];
-	tx = tx/sqrt(tx*tx+ty*ty);
-	ty = ty/sqrt(tx*tx+ty*ty);
+	IssmDouble Lt = sqrt(tx*tx+ty*ty);
+	tx = tx/Lt;
+	ty = ty/Lt;
 
 	/*Evaluate fields on center of edge*/
@@ -681,5 +690,5 @@
 
 	/*Solve ODE*/
-	this->S = ODE1(alpha,beta,this->S,dt,2);
+	this->S = ODE1(alpha,beta,this->Sold,dt,1);
 
 	/*Make sure Area > 0*/
Index: /issm/trunk-jpl/src/c/classes/Loads/Channel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Channel.h	(revision 24069)
+++ /issm/trunk-jpl/src/c/classes/Loads/Channel.h	(revision 24070)
@@ -20,4 +20,5 @@
 	private: 
 		IssmDouble S;
+		IssmDouble Sold;
 		bool       boundary;
 
@@ -76,4 +77,5 @@
 		/*}}}*/
 		/*Channel management:{{{*/
+		void           SetChannelCrossSectionOld(void);
 		void           UpdateChannelCrossSection(void);
 		ElementVector* CreatePVectorHydrologyGlaDS(void);
