Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 24376)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 24377)
@@ -1106,7 +1106,4 @@
 }
 /*}}}*/
-Input*     Element::GetInput(int inputenum){/*{{{*/
-	return inputs->GetInput(inputenum);
-}/*}}}*/
 void       Element::GetInputListOnNodes(IssmDouble* pvalue,int enumtype,IssmDouble defaultvalue){/*{{{*/
 
@@ -4032,140 +4029,4 @@
 }
 /*}}}*/
-void       Element::StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble dvx[3];
-	IssmDouble dvy[3];
-
-	/*Check that both inputs have been found*/
-	if(!vx_input || !vy_input){
-		_error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");
-	}
-
-	/*Get strain rate assuming that epsilon has been allocated*/
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
-	epsilon[0] = dvx[0];	// normal strain rate x-direction
-	epsilon[1] = dvy[1]; // normal strain rate y-direction
-	epsilon[2] = 0.5*(dvx[1] + dvy[0]); // shear strain rate
-	epsilon[3] = 0.5*(dvx[1] - dvy[0]); // rotation rate
-
-}/*}}}*/
-void       Element::StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
-	/*Compute the 3d Strain Rate (6 components):
-	 *
-	 * epsilon=[exx eyy ezz exy exz eyz]
-	 */
-
-	/*Intermediaries*/
-	IssmDouble dvx[3];
-	IssmDouble dvy[3];
-	IssmDouble dvz[3];
-
-	/*Check that both inputs have been found*/
-	if (!vx_input || !vy_input || !vz_input){
-		_error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << ", vz: " << vz_input << "\n");
-	}
-
-	/*Get strain rate assuming that epsilon has been allocated*/
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
-	vz_input->GetInputDerivativeValue(&dvz[0],xyz_list,gauss);
-	epsilon[0] = dvx[0];
-	epsilon[1] = dvy[1];
-	epsilon[2] = dvz[2];
-	epsilon[3] = 0.5*(dvx[1] + dvy[0]);
-	epsilon[4] = 0.5*(dvx[2] + dvz[0]);
-	epsilon[5] = 0.5*(dvy[2] + dvz[1]);
-
-}/*}}}*/
-void       Element::StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
-	/*Compute the 3d Blatter/HOStrain Rate (5 components):
-	 *
-	 * epsilon=[exx eyy exy exz eyz]
-	 *
-	 * with exz=1/2 du/dz
-	 *      eyz=1/2 dv/dz
-	 *
-	 * the contribution of vz is neglected
-	 */
-
-	/*Intermediaries*/
-	IssmDouble dvx[3];
-	IssmDouble dvy[3];
-
-	/*Check that both inputs have been found*/
-	if (!vx_input || !vy_input){
-		_error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");
-	}
-
-	/*Get strain rate assuming that epsilon has been allocated*/
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
-	epsilon[0] = dvx[0];
-	epsilon[1] = dvy[1];
-	epsilon[2] = 0.5*(dvx[1] + dvy[0]);
-	epsilon[3] = 0.5*dvx[2];
-	epsilon[4] = 0.5*dvy[2];
-
-}/*}}}*/
-void       Element::StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
-	/*Compute the 2d Blatter/HOStrain Rate (2 components):
-	 *
-	 * epsilon=[exx exz]
-	 *
-	 * with exz=1/2 du/dz
-	 *
-	 * the contribution of vz is neglected
-	 */
-
-	/*Intermediaries*/
-	IssmDouble dvx[3];
-
-	/*Check that both inputs have been found*/
-	if (!vx_input){
-		_error_("Input missing. Here are the input pointers we have for vx: " << vx_input <<"\n");
-	}
-
-	/*Get strain rate assuming that epsilon has been allocated*/
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	epsilon[0] = dvx[0];
-	epsilon[1] = 0.5*dvx[1];
-
-}/*}}}*/
-void       Element::StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble dvx[3];
-	IssmDouble dvy[3];
-
-	/*Check that both inputs have been found*/
-	if(!vx_input || !vy_input){
-		_error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");
-	}
-
-	/*Get strain rate assuming that epsilon has been allocated*/
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
-	epsilon[0] = dvx[0];
-	epsilon[1] = dvy[1];
-	epsilon[2] = 0.5*(dvx[1] + dvy[0]);
-
-}/*}}}*/
-void       Element::StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble dvx[3];
-
-	/*Check that both inputs have been found*/
-	if (!vx_input){
-		_error_("Input missing. Here are the input pointers we have for vx: " << vx_input << "\n");
-	}
-
-	/*Get strain rate assuming that epsilon has been allocated*/
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	*epsilon = dvx[0];
-
-}/*}}}*/
 void       Element::StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
 
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 24376)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 24377)
@@ -92,5 +92,4 @@
 		void	             GetDofListLocalPressure(int** pdoflist,int setenum);
 		void	             GetDofListLocalVelocity(int** pdoflist,int setenum);
-		Input*             GetInput(int inputenum);
 		void               GetInputListOnNodes(IssmDouble* pvalue,int enumtype);
 		void               GetInputListOnNodes(IssmDouble* pvalue,int enumtype,IssmDouble defaultvalue);
@@ -175,10 +174,4 @@
 		int                Sid();
 		void               SmbGemb();
-		void               StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
-		void               StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
-		void               StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
-		void               StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
-		void               StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
-		void               StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input);
 		void               StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
 		void               StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input);
Index: /issm/trunk-jpl/src/c/classes/Materials/Material.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Material.h	(revision 24376)
+++ /issm/trunk-jpl/src/c/classes/Materials/Material.h	(revision 24377)
@@ -46,15 +46,7 @@
 		virtual void       ResetHooks()=0;
 
-		virtual void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input)=0;
 		virtual void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
-		virtual void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;
 		virtual void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
-		virtual void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf)=0;
-		virtual void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;
 		virtual void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
-		virtual void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble epseff)=0;
-		virtual void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff)=0;
-		virtual void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff)=0;
-
 		virtual void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input)=0;
 		virtual void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input)=0;
Index: /issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp	(revision 24376)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp	(revision 24377)
@@ -388,5 +388,15 @@
 }
 /*}}}*/
-void  Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){/*{{{*/
+void  Matestar::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
+	this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss);
+}/*}}}*/
+void  Matestar::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
+	_error_("not implemented yet");
+}/*}}}*/
+void  Matestar::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
+	_error_("not implemented yet");
+}/*}}}*/
+
+void  Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff){/*{{{*/
 
 	/*Intermediaries*/
@@ -417,5 +427,5 @@
 }
 /*}}}*/
-void  Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/
+void  Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/
 
 	/*Intermediaries*/
@@ -445,5 +455,5 @@
 	*pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
 }/*}}}*/
-void  Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/
+void  Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/
 	/*Intermediaries*/
 	IssmDouble vx,vy,vz;
@@ -475,5 +485,5 @@
 	*pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
 }/*}}}*/
-void  Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
+void  Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/
 
 	/*Intermediaries*/
@@ -518,8 +528,5 @@
 }
 /*}}}*/
-void  Matestar::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
-	this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss);
-}/*}}}*/
-void  Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
+void  Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
 
 	/*Intermediaries*/
@@ -563,11 +570,8 @@
 	*pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
 }/*}}}*/
-void  Matestar::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
-	_error_("not implemented yet");
-}/*}}}*/
-void  Matestar::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surface_input){/*{{{*/
-	_error_("not implemented yet");
-}/*}}}*/
-void  Matestar::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
+void  Matestar::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/
+	_error_("not implemented yet");
+}/*}}}*/
+void  Matestar::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
 
 	/*Intermediaries*/
@@ -614,226 +618,2 @@
 	*pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
 }/*}}}*/
-void  Matestar::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
-	_error_("not implemented yet");
-}/*}}}*/
-
-void  Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble vx,vy,vz;
-	IssmDouble dvx[3],dvy[3],dvz[3];
-	bool isdepthaveraged=0.;
-
-	/*Get velocity derivatives in all directions*/
-	_assert_(dim>1);
-	_assert_(vx_input);
-	vx_input->GetInputValue(&vx,gauss);
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	_assert_(vy_input);
-	vy_input->GetInputValue(&vy,gauss);
-	vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
-	if(dim==3){
-		_assert_(vz_input);
-		vz_input->GetInputValue(&vz,gauss);
-		vz_input->GetInputDerivativeValue(&dvz[0],xyz_list,gauss);
-	}
-	else{
-		vz = 0.;
-		dvz[0] = 0.; dvz[1] = 0.; dvz[2] = 0.;
-	}
-
-	/*Compute dmudB*/
-	*pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
-}
-/*}}}*/
-void  Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble vx,vy,vz;
-	IssmDouble dvx[3],dvy[3],dvz[3];
-	bool isdepthaveraged=0.;
-
-	/*Get velocity derivatives in all directions*/
-	_assert_(dim==2 || dim==3);
-	_assert_(vx_input);
-	vx_input->GetInputValue(&vx,gauss);
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	if(dim==3){
-		_assert_(vy_input);
-		vy_input->GetInputValue(&vy,gauss);
-		vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
-	}
-	else{
-		dvx[2] = 0.;
-		vy = 0.;
-		dvy[0] = 0.; dvy[1] = 0.; dvy[2] = 0.;
-	}
-	vz = 0.;
-	dvz[0] = 0.; dvz[1] = 0.; dvz[2] = -dvx[0]-dvy[1];
-
-	/*Compute viscosity*/
-	*pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
-}/*}}}*/
-void  Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/
-	/*Intermediaries*/
-	IssmDouble vx,vy,vz;
-	IssmDouble dvx[3],dvy[3],dvz[3];
-	bool isdepthaveraged=1.;
-
-	/*Get velocity derivatives in all directions*/
-	_assert_(dim==1 || dim==2);
-	_assert_(vx_input);
-	vx_input->GetInputValue(&vx,gauss);
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	if(dim==2){
-		_assert_(vy_input);
-		vy_input->GetInputValue(&vy,gauss);
-		vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
-	}
-	else{
-		dvx[1] = 0.;
-		dvx[2] = 0.;
-		vy = 0.;
-		dvy[0] = 0.; dvy[1] = 0.; dvy[2] = 0.;
-	}
-	dvx[2] = 0.;
-	dvy[2] = 0.;
-	vz = 0.;
-	dvz[0] = 0.; dvz[1] = 0.; dvz[2] = -dvx[0]-dvy[1];
-
-	/*Compute viscosity*/
-	*pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
-}/*}}}*/
-void  Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble vx,vy,vz;
-	IssmDouble dvx[3],dvy[3],dvz[3];
-	IssmDouble epsilon3d[6]; /* epsilon=[exx,eyy,ezz,exy,exz,eyz];*/
-	IssmDouble epsilon2d[3]; /* epsilon=[exx,eyy,exy];*/
-	IssmDouble eps_eff,eps0=1.e-27;
-	bool isdepthaveraged=0.;
-
-	/*Get velocity derivatives in all directions*/
-	_assert_(dim>1);
-	_assert_(vx_input);
-	vx_input->GetInputValue(&vx,gauss);
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	_assert_(vy_input);
-	vy_input->GetInputValue(&vy,gauss);
-	vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
-	if(dim==3){
-		_assert_(vz_input);
-		vz_input->GetInputValue(&vz,gauss);
-		vz_input->GetInputDerivativeValue(&dvz[0],xyz_list,gauss);
-	}
-	else{
-		vz = 0.;
-		dvz[0] = 0.; dvz[1] = 0.; dvz[2] = 0.;
-	}
-
-	if(dim==3){
-      /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */
-		element->StrainRateFS(&epsilon3d[0],xyz_list,gauss,vx_input,vy_input,vz_input);
-		eps_eff = sqrt(epsilon3d[0]*epsilon3d[0] + epsilon3d[1]*epsilon3d[1] + epsilon3d[3]*epsilon3d[3] +  epsilon3d[4]*epsilon3d[4] + epsilon3d[5]*epsilon3d[5] + epsilon3d[0]*epsilon3d[1]+eps0*eps0);
-	}
-	else{
-		/* eps_eff^2 = 1/2 ( exx^2 + eyy^2 + 2*exy^2 )*/
-		element->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
-		eps_eff = 1./sqrt(2.)*sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + 2.*epsilon2d[2]*epsilon2d[2]);
-	}
-
-	/*Compute viscosity*/
-	*pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
-}
-/*}}}*/
-void  Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble vx,vy,vz;
-	IssmDouble dvx[3],dvy[3],dvz[3];
-	IssmDouble epsilon3d[5]; /* epsilon=[exx,eyy,exy,exz,eyz];*/
-	IssmDouble epsilon2d[5]; /* epsilon=[exx,exy];*/
-	IssmDouble eps_eff;
-	bool isdepthaveraged=0.;
-
-   if(dim==3){
-		/* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */
-		element->StrainRateHO(&epsilon3d[0],xyz_list,gauss,vx_input,vy_input);
-		eps_eff = sqrt(epsilon3d[0]*epsilon3d[0] + epsilon3d[1]*epsilon3d[1] + epsilon3d[2]*epsilon3d[2] +  epsilon3d[3]*epsilon3d[3] + epsilon3d[4]*epsilon3d[4] + epsilon3d[0]*epsilon3d[1]);
-	}
-	else{
-		/* eps_eff^2 = 1/2 (2*exx^2 + 2*exy^2 ) (since eps_zz = - eps_xx)*/
-		element->StrainRateHO2dvertical(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
-		eps_eff = 1./sqrt(2.)*sqrt(2*epsilon2d[0]*epsilon2d[0] + 2*epsilon2d[1]*epsilon2d[1]);
-	}
-
-	/*Get velocity derivatives in all directions*/
-	_assert_(dim==2 || dim==3);
-	_assert_(vx_input);
-	vx_input->GetInputValue(&vx,gauss);
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	if(dim==3){
-		_assert_(vy_input);
-		vy_input->GetInputValue(&vy,gauss);
-		vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
-	}
-	else{
-		dvx[2] = 0.;
-		vy = 0.;
-		dvy[0] = 0.; dvy[1] = 0.; dvy[2] = 0.;
-	}
-	vz = 0.;
-	dvz[0] = 0.; dvz[1] = 0.; dvz[2] = -dvx[0]-dvy[1];
-
-	/*Compute viscosity*/
-	*pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
-}/*}}}*/
-void  Matestar::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/
-	_error_("not implemented yet");
-}/*}}}*/
-void  Matestar::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble vx,vy,vz;
-	IssmDouble dvx[3],dvy[3],dvz[3];
-	IssmDouble epsilon2d[3];/* epsilon=[exx,eyy,exy]; */
-	IssmDouble epsilon1d;   /* epsilon=[exx];         */
-	IssmDouble eps_eff;
-	bool isdepthaveraged=1.;
-
-	/*Get velocity derivatives in all directions*/
-	_assert_(dim==1 || dim==2);
-	_assert_(vx_input);
-	vx_input->GetInputValue(&vx,gauss);
-	vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
-	if(dim==2){
-		_assert_(vy_input);
-		vy_input->GetInputValue(&vy,gauss);
-		vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
-	}
-	else{
-		dvx[1] = 0.;
-		dvx[2] = 0.;
-		vy = 0.;
-		dvy[0] = 0.; dvy[1] = 0.; dvy[2] = 0.;
-	}
-	dvx[2] = 0.;
-	dvy[2] = 0.;
-	vz = 0.;
-	dvz[0] = 0.; dvz[1] = 0.; dvz[2] = -dvx[0]-dvy[1];
-
-   if(dim==2){
-		/* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exx*eyy*/
-		element->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
-		eps_eff = sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + epsilon2d[2]*epsilon2d[2] + epsilon2d[0]*epsilon2d[1]);
-	}
-	else{
-		/* eps_eff^2 = exx^2*/
-		element->StrainRateSSA1d(&epsilon1d,xyz_list,gauss,vx_input);
-		eps_eff = fabs(epsilon1d);
-	}
-
-	/*Compute viscosity*/
-	*pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
-}/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Materials/Matestar.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matestar.h	(revision 24376)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matestar.h	(revision 24377)
@@ -71,14 +71,7 @@
 		void       SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
 
-		void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
 		void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
-		void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
 		void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
-		void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf);
-		void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
 		void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
-		void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff);
-		void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff);
-		void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff);
 
 		void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input);
Index: /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 24376)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 24377)
@@ -666,5 +666,15 @@
 }
 /*}}}*/
-void  Matice::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
+void  Matice::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
+	this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss);
+}/*}}}*/
+void  Matice::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
+	this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss);
+}/*}}}*/
+void  Matice::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
+	this->GetViscosity2dDerivativeEpsSquare(pmu_prime,epsilon,gauss);
+}/*}}}*/
+
+void  Matice::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/
 	/*The effective strain rate is defined in Paterson 3d Ed p 91 eq 9,
 	 * and Cuffey p 303 eq 8.18:
@@ -705,8 +715,5 @@
 }
 /*}}}*/
-void  Matice::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
-	this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss);
-}/*}}}*/
-void  Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
+void  Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
 
 	/*Intermediaries*/
@@ -734,8 +741,5 @@
 	*pviscosity=viscosity;
 }/*}}}*/
-void  Matice::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
-	this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss);
-}/*}}}*/
-void  Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surface_input){/*{{{*/
+void  Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/
 	/*Compute the L1L2 viscosity
 	 *
@@ -796,5 +800,5 @@
 	*pviscosity = viscosity;
 }/*}}}*/
-void  Matice::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
+void  Matice::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
 
 	/*Intermediaries*/
@@ -821,155 +825,2 @@
 	*pviscosity=viscosity;
 }/*}}}*/
-void  Matice::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
-	this->GetViscosity2dDerivativeEpsSquare(pmu_prime,epsilon,gauss);
-}/*}}}*/
-
-void  Matice::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/
-	/*The effective strain rate is defined in Paterson 3d Ed p 91 eq 9,
-	 * and Cuffey p 303 eq 8.18:
-	 *
-	 *  2 eps_eff^2 = eps_xx^2 + eps_yy^2 + eps_zz^2 + 2(eps_xy^2 + eps_xz^2 + eps_yz^2)
-	 *
-	 *  or
-	 *
-	 *  eps_eff = 1/sqrt(2) sqrt( \sum_ij eps_ij^2 )
-	 *
-	 *          = 1/sqrt(2) ||eps||_F
-	 *
-	 *  where ||.||_F is the Frobenius norm */
-
-	/*Intermediaries*/
-	IssmDouble viscosity;
-	IssmDouble epsilon3d[6]; /* epsilon=[exx,eyy,ezz,exy,exz,eyz];*/
-	IssmDouble epsilon2d[3]; /* epsilon=[exx,eyy,exy];            */
-	IssmDouble eps_eff;
-	IssmDouble eps0=1.e-27;
-
-	if(dim==3){
-		/* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */
-		element->StrainRateFS(&epsilon3d[0],xyz_list,gauss,vx_input,vy_input,vz_input);
-		eps_eff = sqrt(epsilon3d[0]*epsilon3d[0] + epsilon3d[1]*epsilon3d[1] + epsilon3d[3]*epsilon3d[3] +  epsilon3d[4]*epsilon3d[4] + epsilon3d[5]*epsilon3d[5] + epsilon3d[0]*epsilon3d[1]+eps0*eps0);
-	}
-	else{
-		/* eps_eff^2 = 1/2 ( exx^2 + eyy^2 + 2*exy^2 )*/
-		element->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
-		eps_eff = 1./sqrt(2.)*sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + 2.*epsilon2d[2]*epsilon2d[2]);
-	}
-
-	/*Get viscosity*/
-	this->GetViscosity(&viscosity,eps_eff,gauss);
-
-	/*Assign output pointer*/
-	*pviscosity=viscosity;
-}
-/*}}}*/
-void  Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble viscosity;
-	IssmDouble epsilon3d[5];/* epsilon=[exx,eyy,exy,exz,eyz];*/
-	IssmDouble epsilon2d[2];/* epsilon=[exx,exy];            */
-	IssmDouble eps_eff;
-
-	if(dim==3){
-		/* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */
-		element->StrainRateHO(&epsilon3d[0],xyz_list,gauss,vx_input,vy_input);
-		eps_eff = sqrt(epsilon3d[0]*epsilon3d[0] + epsilon3d[1]*epsilon3d[1] + epsilon3d[2]*epsilon3d[2] +  epsilon3d[3]*epsilon3d[3] + epsilon3d[4]*epsilon3d[4] + epsilon3d[0]*epsilon3d[1]);
-	}
-	else{
-		/* eps_eff^2 = 1/2 (2*exx^2 + 2*exy^2 ) (since eps_zz = - eps_xx)*/
-		element->StrainRateHO2dvertical(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
-		eps_eff = 1./sqrt(2.)*sqrt(2*epsilon2d[0]*epsilon2d[0] + 2*epsilon2d[1]*epsilon2d[1]);
-	}
-
-	/*Get viscosity*/
-	this->GetViscosity(&viscosity,eps_eff,gauss);
-	_assert_(!xIsNan<IssmDouble>(viscosity));
-
-	/*Assign output pointer*/
-	*pviscosity=viscosity;
-}/*}}}*/
-void  Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/
-	/*Compute the L1L2 viscosity
-	 *
-	 *      1
-	 * mu = - A^-1 (sigma'_e)^(1-n)
-	 *      2
-	 *
-	 * sigma'_e^2 = |sigma'_//|^2 + |sigma'_perp|^2 (see Perego 2012 eq. 17,18)
-	 *
-	 * L1L2 assumptions:
-	 *
-	 * (1) |eps_b|_// = A (|sigma'_//|^2 + |sigma'_perp|^2)^((n-1)/2) |sigma'_//|
-	 * (2) |sigma'_perp|^2 = |rho g (s-z) grad(s)|^2
-	 *
-	 * Assuming that n = 3, we have a polynom of degree 3 to solve (the only unkown is X=|sigma'_//|)
-	 *
-	 * A X^3 + A |rho g (s-z) grad(s)|^2 X - |eps_b|_// = 0     */
-
-	IssmDouble z,s,viscosity,p,q,delta;
-	IssmDouble tau_perp,tau_par,eps_b,A;
-	IssmDouble epsilon[5];   /*exx eyy exy exz eyz*/
-	IssmDouble slope[3];
-
-	/*Check that both inputs have been found*/
-	if (!vx_input || !vy_input || !surface_input) _error_("Input missing");
-
-	/*Get tau_perp*/
-	surface_input->GetInputValue(&s,gauss);
-	surface_input->GetInputDerivativeValue(&slope[0],xyz_list,gauss);
-	z=this->element->GetZcoord(xyz_list,gauss);
-	tau_perp = element->FindParam(MaterialsRhoIceEnum) * element->FindParam(ConstantsGEnum) * fabs(s-z)*sqrt(slope[0]*slope[0]+slope[1]*slope[1]);
-
-	/* Get eps_b*/
-	element->StrainRateHO(&epsilon[0],xyz_list,gauss,vx_input,vy_input);
-	eps_b = sqrt(epsilon[0]*epsilon[0] + epsilon[1]*epsilon[1] + epsilon[0]*epsilon[1] + epsilon[2]*epsilon[2]);
-	if(eps_b==0.){
-		*pviscosity = 2.5e+17;
-		return;
-	}
-
-	/*Get A*/
-	_assert_(this->GetN()==3.0);
-	A=this->GetA(gauss);
-
-	/*Solve for tau_perp (http://fr.wikipedia.org/wiki/Méthode_de_Cardan)*/
-	p     = tau_perp *tau_perp;
-	q     = - eps_b/A;
-	delta = q *q + p*p*p*4./27.;
-	_assert_(delta>0);
-	tau_par = pow(0.5*(-q+sqrt(delta)),1./3.) - pow(0.5*(q+sqrt(delta)),1./3.);
-
-	/*Viscosity*/
-	viscosity = 1./(2.*A*(tau_par*tau_par + tau_perp*tau_perp));
-	_assert_(!xIsNan(viscosity));
-	_assert_(viscosity > 0.);
-
-	/*Assign output pointer*/
-	*pviscosity = viscosity;
-}/*}}}*/
-void  Matice::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble viscosity;
-	IssmDouble epsilon2d[3];/* epsilon=[exx,eyy,exy];    */
-	IssmDouble epsilon1d;   /* epsilon=[exx];    */
-	IssmDouble eps_eff;
-
-	if(dim==2){
-		/* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exx*eyy*/
-		element->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
-		eps_eff = sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + epsilon2d[2]*epsilon2d[2] + epsilon2d[0]*epsilon2d[1]);
-	}
-	else{
-		/* eps_eff^2 = exx^2*/
-		element->StrainRateSSA1d(&epsilon1d,xyz_list,gauss,vx_input);
-		eps_eff = fabs(epsilon1d);
-	}
-
-	/*Get viscosity*/
-	this->GetViscosityBar(&viscosity,eps_eff,gauss);
-
-	/*Assign output pointer*/
-	*pviscosity=viscosity;
-}/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Materials/Matice.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matice.h	(revision 24376)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matice.h	(revision 24377)
@@ -73,14 +73,7 @@
 		void       SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
 
-		void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
 		void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
-		void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
 		void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
-		void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf);
-		void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
 		void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
-		void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){_error_("not supported");};
-		void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");};
-		void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");};
 
 		void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input);
Index: /issm/trunk-jpl/src/c/classes/Materials/Matlitho.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matlitho.h	(revision 24376)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matlitho.h	(revision 24377)
@@ -62,15 +62,7 @@
 		void       ResetHooks();
 
-		void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not supported");};
 		void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");};
-		void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
 		void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");};
-		void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf){_error_("not supported");};
-		void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
 		void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");};
-		void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble epseff){_error_("not supported");};
-		void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff){_error_("not supported");};
-		void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff){_error_("not supported");};
-
 
 		void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){_error_("not supported");};
Index: /issm/trunk-jpl/src/c/classes/Radar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Radar.cpp	(revision 24376)
+++ /issm/trunk-jpl/src/c/classes/Radar.cpp	(revision 24377)
@@ -129,6 +129,6 @@
 
 	/*Retrieve all inputs we will be needing: */
-	Input* temp_input=element->GetInput(TemperatureEnum); _assert_(temp_input);
-	Input* ice_period_input=element->GetInput(RadarIcePeriodEnum); _assert_(ice_period_input); 
+	Input2* temp_input=element->GetInput2(TemperatureEnum); _assert_(temp_input);
+	Input2* ice_period_input=element->GetInput2(RadarIcePeriodEnum); _assert_(ice_period_input); 
 
 	/* Start looping on the number of vertices: */
@@ -213,9 +213,9 @@
 	/* Get node coordinates*/
 	element->GetVerticesCoordinates(&xyz_list);
-	Input* atten_input_M07=element->GetInput(RadarAttenuationMacGregorEnum); _assert_(atten_input_M07);
-	Input* atten_input_W97=element->GetInput(RadarAttenuationWolffEnum); _assert_(atten_input_W97);
-	Input* surf_input=element->GetInput(SurfaceEnum); _assert_(surf_input);
-	Input* thick_input=element->GetInput(ThicknessEnum); _assert_(thick_input);
-	Input* temp_input=element->GetInput(TemperatureEnum); _assert_(temp_input);
+	Input2 *atten_input_M07 = element->GetInput2(RadarAttenuationMacGregorEnum); _assert_(atten_input_M07);
+	Input2 *atten_input_W97 = element->GetInput2(RadarAttenuationWolffEnum);     _assert_(atten_input_W97);
+	Input2 *surf_input      = element->GetInput2(SurfaceEnum);                   _assert_(surf_input);
+	Input2 *thick_input     = element->GetInput2(ThicknessEnum);                 _assert_(thick_input);
+	Input2 *temp_input      = element->GetInput2(TemperatureEnum);               _assert_(temp_input);
 
 	/* Start looping on the number of vertices: */
