Index: /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 22009)
+++ /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 22010)
@@ -1525,5 +1525,5 @@
 		/*Update Rheology only if converged (we must make sure that the temperature is below melting point
 		 * otherwise the rheology could be negative*/
-		rheology_law=element->material->GetRheologyLaw();
+		rheology_law=element->GetMaterialParameter(MaterialsRheologyLawEnum);
 		element->GetInputListOnNodes(&surface[0],SurfaceEnum);
 		switch(rheology_law){
Index: /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 22009)
+++ /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 22010)
@@ -809,5 +809,5 @@
 		/*Update Rheology only if converged (we must make sure that the temperature is below melting point
 		 * otherwise the rheology could be negative*/
-		rheology_law=element->material->GetRheologyLaw();
+		rheology_law=element->GetMaterialParameter(MaterialsRheologyLawEnum);
 		element->GetInputListOnNodes(&surface[0],SurfaceEnum);
 		switch(rheology_law){
Index: /issm/trunk-jpl/src/c/classes/Materials/Material.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Material.h	(revision 22009)
+++ /issm/trunk-jpl/src/c/classes/Materials/Material.h	(revision 22010)
@@ -42,5 +42,4 @@
 		virtual void       GetViscosity_D(IssmDouble* pviscosity,IssmDouble epseff)=0;
 		virtual void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon)=0;
-		virtual int        GetRheologyLaw()=0;
 		virtual bool       IsDamage()=0;
 		virtual bool       IsEnhanced()=0;
Index: /issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp	(revision 22009)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp	(revision 22010)
@@ -41,7 +41,4 @@
 	this->mid=matestar_mid;
 
-	/*rheology law:*/
-	iomodel->FetchData(&this->rheology_law,"md.materials.rheology_law");
-
 	/*Hooks: */
 	matestar_eid=index+1;
@@ -370,8 +367,4 @@
 void  Matestar::GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon){/*{{{*/
 	_error_("not implemented yet");
-}
-/*}}}*/
-int Matestar::GetRheologyLaw(){/*{{{*/
-	return this->rheology_law;
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Materials/Matestar.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matestar.h	(revision 22009)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matestar.h	(revision 22010)
@@ -64,5 +64,4 @@
 		void       GetViscosity_D(IssmDouble* pviscosity, IssmDouble eps_eff);
 		void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon);
-		int        GetRheologyLaw();
 		IssmDouble GetA();
 		IssmDouble GetAbar();
Index: /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 22009)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 22010)
@@ -40,5 +40,4 @@
    int materialtype;
    iomodel->FindConstant(&materialtype,"md.materials.type");
-   iomodel->FindConstant(&this->rheology_law,"md.materials.rheology_law");
 	this->Init(matice_mid,index,materialtype);
 
@@ -640,8 +639,4 @@
 }
 /*}}}*/
-int   Matice::GetRheologyLaw(){/*{{{*/
-	return this->rheology_law;
-}
-/*}}}*/
 void  Matice::InputUpdateFromConstant(IssmDouble constant, int name){/*{{{*/
 	/*Nothing updated yet*/
Index: /issm/trunk-jpl/src/c/classes/Materials/Matice.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matice.h	(revision 22009)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matice.h	(revision 22010)
@@ -68,5 +68,4 @@
 		void       GetViscosity_D(IssmDouble* pviscosity, IssmDouble eps_eff);
 		void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon);
-		int        GetRheologyLaw();
 		IssmDouble GetA();
 		IssmDouble GetAbar();
Index: /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 22009)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 22010)
@@ -38,4 +38,5 @@
 	rlapslgm                  = 0;
 	dpermil                   = 0;
+	rheology_law              = 0;
 
 	albedo_snow               = 0;
@@ -61,15 +62,4 @@
 	earth_density             = 0;
 
-	poisson                   = 0;
-	young_modulus             = 0;
-	ridging_exponent          = 0;
-	cohesion                  = 0;
-	internal_friction_coef    = 0;
-	compression_coef          = 0;
-	traction_coef             = 0;
-	time_relaxation_stress    = 0;
-	time_relaxation_damage    = 0;
-
-	
 	int nnat,dummy;
 	int* nature=NULL;
@@ -102,4 +92,5 @@
 			iomodel->FindConstant(&this->thermal_exchange_velocity,"md.materials.thermal_exchange_velocity");
 			iomodel->FindConstant(&this->g,"md.constants.g");
+			iomodel->FindConstant(&this->rheology_law,"md.materials.rheology_law");
 
 			switch(smb_model){
@@ -202,4 +193,5 @@
 						iomodel->FindConstant(&this->thermal_exchange_velocity,"md.materials.thermal_exchange_velocity");
 						iomodel->FindConstant(&this->g,"md.constants.g");
+						iomodel->FindConstant(&this->rheology_law,"md.materials.rheology_law");
 
 						switch(smb_model){ //{{{
@@ -328,4 +320,5 @@
 	matpar->rlapslgm=this->rlapslgm;
 	matpar->dpermil=this->dpermil;
+	matpar->rheology_law=this->rheology_law;
 
 	matpar->sediment_compressibility=this->sediment_compressibility;
@@ -379,4 +372,5 @@
 	_printf_("   rlapslgm: " << rlapslgm << "\n");
 	_printf_("   dpermil: " << dpermil << "\n");
+	_printf_("   rheology_law: " << rheology_law << "\n");
 	_printf_("   albedo_ice: " << albedo_ice << "\n");
 	_printf_("   albedo_snow: " << albedo_snow << "\n");
@@ -396,13 +390,4 @@
 	_printf_("   mantle_density: " << mantle_density << "\n");	
 	_printf_("   earth_density: " << earth_density << "\n");	
-	_printf_("   poisson: " << poisson << "\n");	
-	_printf_("   young_modulus: " << young_modulus << "\n");	
-	_printf_("   ridging_exponent: " << ridging_exponent << "\n");	
-	_printf_("   cohesion: " << cohesion << "\n");	
-	_printf_("   internal_friction_coef: " << internal_friction_coef << "\n");	
-	_printf_("   compression_coef: " << compression_coef << "\n");	
-	_printf_("   traction_coef: " << traction_coef << "\n");	
-	_printf_("   time_relaxation_stress: " << time_relaxation_stress << "\n");	
-	_printf_("   time_relaxation_damage: " << time_relaxation_damage << "\n");	
 	return;
 }
@@ -434,4 +419,5 @@
 	MARSHALLING(rlapslgm);
 	MARSHALLING(dpermil);
+	MARSHALLING(rheology_law);
 
 	//hydrology Dual Porous Continuum:
@@ -456,16 +442,4 @@
 	//slr:
 	MARSHALLING(earth_density);
-
-	//Sea ice:
-	MARSHALLING(poisson);
-	MARSHALLING(young_modulus);
-	MARSHALLING(ridging_exponent);
-	MARSHALLING(cohesion);
-	MARSHALLING(internal_friction_coef);
-	MARSHALLING(compression_coef);
-	MARSHALLING(traction_coef);
-	MARSHALLING(time_relaxation_stress);
-	MARSHALLING(time_relaxation_damage);
-
 }
 /*}}}*/
@@ -668,8 +642,9 @@
 		case HydrologydcWaterCompressibilityEnum:    return this->water_compressibility;
 		case ConstantsGEnum:                         return this->g;
-		case SmbDesfacEnum:              return this->desfac;
-		case SmbRlapsEnum:               return this->rlaps;
-		case SmbRlapslgmEnum:            return this->rlapslgm;
-		case SmbDpermilEnum:             return this->dpermil;
+		case SmbDesfacEnum:                          return this->desfac;
+		case SmbRlapsEnum:                           return this->rlaps;
+		case SmbRlapslgmEnum:                        return this->rlapslgm;
+		case SmbDpermilEnum:                         return this->dpermil;
+		case MaterialsRheologyLawEnum:               return this->rheology_law;
 		case MaterialsLithosphereShearModulusEnum:   return this->lithosphere_shear_modulus;
 		case MaterialsLithosphereDensityEnum:        return this->lithosphere_density;
Index: /issm/trunk-jpl/src/c/classes/Materials/Matpar.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 22009)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 22010)
@@ -35,4 +35,5 @@
 		IssmDouble  rlapslgm;
 		IssmDouble  dpermil;
+		int         rheology_law;
 
 		/*albedo: */
@@ -61,15 +62,4 @@
 		/*slr:*/
 		IssmDouble earth_density;
-
-		/*Sea ice*/
-		IssmDouble poisson;
-		IssmDouble young_modulus;
-		IssmDouble ridging_exponent;
-		IssmDouble cohesion;
-		IssmDouble internal_friction_coef;
-		IssmDouble compression_coef;
-		IssmDouble traction_coef;
-		IssmDouble time_relaxation_stress;
-		IssmDouble time_relaxation_damage;
 
 	public:
@@ -107,5 +97,4 @@
 		void       GetViscosity_D(IssmDouble* pviscosity,IssmDouble eps_eff){_error_("not supported");};
 		void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon){_error_("not supported");};
-		int        GetRheologyLaw(){_error_("not supported");};
 		IssmDouble GetA(){_error_("not supported");};
 		IssmDouble GetAbar(){_error_("not supported");};
