Index: /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 20615)
+++ /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 20616)
@@ -49,4 +49,7 @@
 			GetAlphaHydroComplement(palpha_complement,gauss);
 			break;
+		case 4:
+			GetAlphaTempComplement(palpha_complement,gauss);
+			break;
 	  default:
 			_error_("not supported");
@@ -54,5 +57,4 @@
 
 }/*}}}*/
-
 void Friction::GetAlphaViscousComplement(IssmDouble* palpha_complement, Gauss* gauss){/*{{{*/
 
@@ -191,4 +193,31 @@
 }
 /*}}}*/
+void Friction::GetAlphaTempComplement(IssmDouble* palpha_complement, Gauss* gauss){/*{{{*/
+	/*Here, we want to parameterize the friction as a function of temperature
+	 *
+	 * alpha2 = alpha2_viscous * 1/f(T)
+	 *
+	 * where f(T) = exp((T-Tpmp)/gamma)
+	 */
+
+	/*Intermediaries: */
+	IssmDouble  f,T,pressure,Tpmp,gamma;
+	IssmDouble  alpha_complement;
+
+	/*Get viscous part*/
+	this->GetAlphaViscousComplement(&alpha_complement,gauss);
+
+	/*Get pressure melting point (Tpmp) for local pressure and get current temperature*/
+	element->GetInputValue(&T,gauss,TemperatureEnum);
+	element->GetInputValue(&pressure,gauss,PressureEnum);
+	Tpmp = element->TMeltingPoint(pressure);
+
+	/*Compute scaling parameter*/
+	element->parameters->FindParam(&gamma,FrictionGammaEnum);
+	alpha_complement = alpha_complement/ exp((T-Tpmp)/gamma);
+
+	/*Assign output pointers:*/
+	*palpha_complement=alpha_complement;
+}/*}}}*/
 void Friction::GetAlpha2(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
 
Index: /issm/trunk-jpl/src/c/classes/Loads/Friction.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Friction.h	(revision 20615)
+++ /issm/trunk-jpl/src/c/classes/Loads/Friction.h	(revision 20616)
@@ -32,4 +32,5 @@
 		void  GetAlphaViscousComplement(IssmDouble* alpha_complement,Gauss* gauss);
 		void  GetAlphaHydroComplement(IssmDouble* alpha_complement,Gauss* gauss);
+		void  GetAlphaTempComplement(IssmDouble* alpha_complement,Gauss* gauss);
 		void  GetAlpha2(IssmDouble* palpha2,Gauss* gauss);
 		void  GetAlpha2Coulomb(IssmDouble* palpha2,Gauss* gauss);
