Index: /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 17942)
+++ /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 17943)
@@ -588,5 +588,5 @@
 			geothermalflux_input->GetInputValue(&geothermalflux,gauss);
 
-			friction->GetAlpha2(&alpha2,gauss,vx_input,vy_input,vz_input);
+			friction->GetAlpha2(&alpha2,gauss);
 			vx_input->GetInputValue(&vx,gauss);
 			vy_input->GetInputValue(&vy,gauss);
@@ -990,5 +990,5 @@
 
 			/*basal friction*/
-			friction->GetAlpha2(&alpha2,gauss,vx_input,vy_input,vz_input);
+			friction->GetAlpha2(&alpha2,gauss);
 			vx_input->GetInputValue(&vx,gauss);
 			vy_input->GetInputValue(&vy,gauss);
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 17942)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 17943)
@@ -1221,8 +1221,5 @@
 	element->FindParam(&migration_style,GroundinglineMigrationEnum);
 	Input* surface_input    = element->GetInput(SurfaceEnum); _assert_(surface_input);
-	Input* vx_input         = element->GetInput(VxEnum);      _assert_(vx_input);
 	Input* gllevelset_input = NULL;
-	Input* vy_input         = NULL;
-	if(dim==2){vy_input     = element->GetInput(VyEnum);      _assert_(vy_input);}
 
 	/*build friction object, used later on: */
@@ -1244,5 +1241,5 @@
 		gauss->GaussPoint(ig);
 
-		friction->GetAlpha2(&alpha2, gauss,vx_input,vy_input,NULL);
+		friction->GetAlpha2(&alpha2,gauss);
 		if(migration_style==SubelementMigrationEnum) alpha2=phi*alpha2;
 		if(migration_style==SubelementMigration2Enum){
@@ -2249,9 +2246,5 @@
 	element->GetVerticesCoordinatesBase(&xyz_list_base);
 	element->FindParam(&migration_style,GroundinglineMigrationEnum);
-	Input* vx_input = element->GetInput(VxEnum);   _assert_(vx_input);
-	Input* vy_input = element->GetInput(VyEnum);   _assert_(vy_input);
-	Input* vz_input = NULL;
 	Input* gllevelset_input = NULL;
-	if(dim==3){vz_input=element->GetInput(VzEnum); _assert_(vz_input);}
 
 	/*build friction object, used later on: */
@@ -2274,5 +2267,5 @@
 		gauss->GaussPoint(ig);
 
-		friction->GetAlpha2(&alpha2,gauss,vx_input,vy_input,vz_input);
+		friction->GetAlpha2(&alpha2,gauss);
 		if(migration_style==SubelementMigrationEnum) alpha2=phi*alpha2;
 		if(migration_style==SubelementMigration2Enum){
@@ -3222,8 +3215,4 @@
 	element->GetVerticesCoordinatesBase(&xyz_list_base);
 	element->FindParam(&migration_style,GroundinglineMigrationEnum);
-	Input* vx_input         = element->GetInput(VxEnum);      _assert_(vx_input);
-	Input* vy_input         = element->GetInput(VyEnum);      _assert_(vy_input);
-	Input* vz_input         = NULL;
-	if(dim==3){    vz_input = element->GetInput(VzEnum);      _assert_(vz_input);}
 	Input* gllevelset_input = NULL;
 
@@ -3248,5 +3237,5 @@
 		gauss->GaussPoint(ig);
 
-		friction->GetAlpha2(&alpha2,gauss,vx_input,vy_input,vz_input);
+		friction->GetAlpha2(&alpha2,gauss);
 		if(migration_style==SubelementMigrationEnum) alpha2=phi*alpha2;
 		if(migration_style==SubelementMigration2Enum){
@@ -4814,7 +4803,4 @@
 	/*retrieve inputs :*/
 	element->GetVerticesCoordinatesBase(&xyz_list_tria);
-	Input* vx_input=element->GetInput(VxEnum);  _assert_(vx_input);
-	Input* vy_input=element->GetInput(VyEnum);  _assert_(vy_input);
-	Input* vz_input=element->GetInput(VzEnum);  _assert_(vz_input);
 
 	/*build friction object, used later on: */
@@ -4828,5 +4814,5 @@
 
 		/*Friction: */
-		friction->GetAlpha2(&alpha2,gauss,vx_input,vy_input,vz_input);
+		friction->GetAlpha2(&alpha2,gauss);
 		element->JacobianDeterminantBase(&Jdet2d, xyz_list_tria,gauss);
 		this->GetBHOFriction(L,element,3,xyz_list_tria,gauss);
@@ -5039,5 +5025,5 @@
 
 		element->NormalBase(&bed_normal[0],xyz_list_tria);
-		friction->GetAlpha2(&alpha2_gauss, gauss,vx_input,vy_input,vz_input);
+		friction->GetAlpha2(&alpha2_gauss,gauss);
 
 		DLSSAFS[0][0]=alpha2_gauss*gauss->weight*Jdet2d;
@@ -5319,5 +5305,5 @@
 		element->NormalBase(&bed_normal[0],xyz_list_tria);
 		element->ViscosityFS(&viscosity,dim,xyz_list,gauss,vx_input,vy_input,vz_input);
-		friction->GetAlpha2(&alpha2_gauss, gauss,vx_input,vy_input,vz_input);
+		friction->GetAlpha2(&alpha2_gauss,gauss);
 
 		for(i=0;i<3;i++){
@@ -5480,5 +5466,5 @@
 		element->NormalBase(&bed_normal[0],xyz_list_tria);
 		element->ViscosityFS(&viscosity,dim,xyz_list,gauss,vx_input,vy_input,vz_input);
-		friction->GetAlpha2(&alpha2_gauss, gauss,vx_input,vy_input,vz_input);
+		friction->GetAlpha2(&alpha2_gauss,gauss);
 
 		for(i=0;i<3;i++){
Index: /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 17942)
+++ /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 17943)
@@ -476,5 +476,5 @@
 
 		geothermalflux_input->GetInputValue(&geothermalflux,gauss);
-		friction->GetAlpha2(&alpha2,gauss,vx_input,vy_input,vz_input);
+		friction->GetAlpha2(&alpha2,gauss);
 		vx_input->GetInputValue(&vx,gauss);
 		vy_input->GetInputValue(&vy,gauss);
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 17942)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 17943)
@@ -3234,5 +3234,5 @@
 
 		/*Build alpha_complement_list: */
-		friction->GetAlphaComplement(&alpha_complement,gauss,vx_input,vy_input,NULL);
+		friction->GetAlphaComplement(&alpha_complement,gauss);
 
 		dragcoefficient_input->GetInputValue(&drag, gauss);
@@ -3306,5 +3306,5 @@
 
 		/*Recover alpha_complement and drag: */
-		friction->GetAlphaComplement(&alpha_complement,gauss,vx_input,vy_input,vz_input);
+		friction->GetAlphaComplement(&alpha_complement,gauss);
 		drag_input->GetInputValue(&drag,gauss);
 
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 17942)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 17943)
@@ -3242,5 +3242,5 @@
 
 		/*Build alpha_complement_list: */
-		friction->GetAlphaComplement(&alpha_complement,gauss,vx_input,vy_input,NULL);
+		friction->GetAlphaComplement(&alpha_complement,gauss);
 
 		dragcoefficient_input->GetInputValue(&drag, gauss);
@@ -3267,5 +3267,5 @@
 	//for (int iv=0;iv<NUMVERTICES;iv++){
 	//	gauss->GaussVertex(iv);
-	//	friction->GetAlphaComplement(&alpha_complement,gauss,vx_input,vy_input,vz_input);
+	//	friction->GetAlphaComplement(&alpha_complement,gauss);
 	//	dragcoefficient_input->GetInputValue(&drag, gauss);
 	//	adjointx_input->GetInputValue(&lambda, gauss);
Index: /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 17942)
+++ /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 17943)
@@ -42,5 +42,5 @@
 /*}}}*/
 /*FUNCTION Friction::GetAlpha2{{{*/
-void Friction::GetAlpha2(IssmDouble* palpha2, Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){
+void Friction::GetAlpha2(IssmDouble* palpha2, Gauss* gauss){
 
 	/*This routine calculates the basal friction coefficient 
@@ -76,16 +76,16 @@
 	switch(dim){
 		case 1:
-			vx_input->GetInputValue(&vx,gauss);
+			element->GetInputValue(&vx,gauss,VxEnum);
 			vmag=sqrt(vx*vx);
 			break;
 		case 2:
-			vx_input->GetInputValue(&vx,gauss);
-			vy_input->GetInputValue(&vy,gauss);
+			element->GetInputValue(&vx,gauss,VxEnum);
+			element->GetInputValue(&vy,gauss,VyEnum);
 			vmag=sqrt(vx*vx+vy*vy);
 			break;
 		case 3:
-			vx_input->GetInputValue(&vx,gauss);
-			vy_input->GetInputValue(&vy,gauss);
-			vz_input->GetInputValue(&vz,gauss);
+			element->GetInputValue(&vx,gauss,VxEnum);
+			element->GetInputValue(&vy,gauss,VyEnum);
+			element->GetInputValue(&vz,gauss,VzEnum);
 			vmag=sqrt(vx*vx+vy*vy+vz*vz);
 			break;
@@ -101,8 +101,7 @@
 	/*Assign output pointers:*/
 	*palpha2=alpha2;
-}
-/*}}}*/
+}/*}}}*/
 /*FUNCTION Friction::GetAlphaComplement(IssmDouble* palpha_complement, Gauss* gauss,int vxenum,int vyenum,int vzenum) {{{*/
-void Friction::GetAlphaComplement(IssmDouble* palpha_complement, Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){
+void Friction::GetAlphaComplement(IssmDouble* palpha_complement, Gauss* gauss){
 
 	/* FrictionGetAlpha2 computes alpha2= drag^2 * Neff ^r * vel ^s, with Neff=rho_ice*g*thickness+rho_ice*g*bed, r=q/p and s=1/p. 
@@ -140,16 +139,16 @@
 	switch(dim){
 		case 1:
-			vx_input->GetInputValue(&vx,gauss);
+			element->GetInputValue(&vx,gauss,VxEnum);
 			vmag=sqrt(vx*vx);
 			break;
 		case 2:
-			vx_input->GetInputValue(&vx,gauss);
-			vy_input->GetInputValue(&vy,gauss);
+			element->GetInputValue(&vx,gauss,VxEnum);
+			element->GetInputValue(&vy,gauss,VyEnum);
 			vmag=sqrt(vx*vx+vy*vy);
 			break;
 		case 3:
-			vx_input->GetInputValue(&vx,gauss);
-			vy_input->GetInputValue(&vy,gauss);
-			vz_input->GetInputValue(&vz,gauss);
+			element->GetInputValue(&vx,gauss,VxEnum);
+			element->GetInputValue(&vy,gauss,VyEnum);
+			element->GetInputValue(&vz,gauss,VzEnum);
 			vmag=sqrt(vx*vx+vy*vy+vz*vz);
 			break;
Index: /issm/trunk-jpl/src/c/classes/Loads/Friction.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Friction.h	(revision 17942)
+++ /issm/trunk-jpl/src/c/classes/Loads/Friction.h	(revision 17943)
@@ -28,6 +28,6 @@
 
 		void  Echo(void);
-		void  GetAlpha2(IssmDouble* palpha2, Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
-		void  GetAlphaComplement(IssmDouble* alpha_complement,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
+		void  GetAlpha2(IssmDouble* palpha2,Gauss* gauss);
+		void  GetAlphaComplement(IssmDouble* alpha_complement,Gauss* gauss);
 };
 
