Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 10564)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 10565)
@@ -100,4 +100,5 @@
 	MaterialsRhoIceEnum,
 	MaterialsRhoWaterEnum,
+	MaterialsMuWaterEnum,
 	MaterialsThermalExchangeVelocityEnum,
 	MaterialsThermalconductivityEnum,
Index: /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 10564)
+++ /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 10565)
@@ -104,4 +104,5 @@
 		case MaterialsRhoIceEnum : return "MaterialsRhoIce";
 		case MaterialsRhoWaterEnum : return "MaterialsRhoWater";
+		case MaterialsMuWaterEnum : return "MaterialsMuWater";
 		case MaterialsThermalExchangeVelocityEnum : return "MaterialsThermalExchangeVelocity";
 		case MaterialsThermalconductivityEnum : return "MaterialsThermalconductivity";
@@ -418,4 +419,6 @@
 		case BilinearInterpEnum : return "BilinearInterp";
 		case NearestInterpEnum : return "NearestInterp";
+		case XYEnum : return "XY";
+		case XYZPEnum : return "XYZP";
 		case OptionEnum : return "Option";
 		case OptionCellEnum : return "OptionCell";
Index: /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 10564)
+++ /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 10565)
@@ -102,4 +102,5 @@
 	else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
 	else if (strcmp(name,"MaterialsRhoWater")==0) return MaterialsRhoWaterEnum;
+	else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
 	else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
 	else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
@@ -416,4 +417,6 @@
 	else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
 	else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
+	else if (strcmp(name,"XY")==0) return XYEnum;
+	else if (strcmp(name,"XYZP")==0) return XYZPEnum;
 	else if (strcmp(name,"Option")==0) return OptionEnum;
 	else if (strcmp(name,"OptionCell")==0) return OptionCellEnum;
Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 10564)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 10565)
@@ -4602,5 +4602,5 @@
 
 	/*material parameters: */
-	double mu_water=0.001787;  //unit= [N s/m2]
+	double mu_water;
 	double VelocityFactor;  // This factor represents the number 12 in laminar flow velocity which can vary by differnt hydrology.CR
 	double n_man,CR;
@@ -4618,4 +4618,5 @@
 	CR=matpar->GetHydrologyCR(); // To have Lebrocq equavalent equation: CR=0.01,n_man=0.02
 	n_man=matpar->GetHydrologyN(); 
+	mu_water=matpar->GetMuWater();
 	Input* surfaceslopex_input=inputs->GetInput(SurfaceSlopeXEnum); _assert_(surfaceslopex_input);
 	Input* surfaceslopey_input=inputs->GetInput(SurfaceSlopeYEnum); _assert_(surfaceslopey_input);
@@ -4626,5 +4627,5 @@
 	/* compute VelocityFactor */
 	VelocityFactor= n_man*pow(CR,2)*rho_water*g/mu_water;
-
+	
 	gauss=new GaussTria();
 	for (int iv=0;iv<NUMVERTICES;iv++){
Index: /issm/trunk/src/c/objects/Materials/Matpar.cpp
===================================================================
--- /issm/trunk/src/c/objects/Materials/Matpar.cpp	(revision 10564)
+++ /issm/trunk/src/c/objects/Materials/Matpar.cpp	(revision 10565)
@@ -28,4 +28,5 @@
 	iomodel->Constant(&this->rho_ice,MaterialsRhoIceEnum);
 	iomodel->Constant(&this->rho_water,MaterialsRhoWaterEnum);
+	iomodel->Constant(&this->mu_water,MaterialsMuWaterEnum);
 	iomodel->Constant(&this->heatcapacity,MaterialsHeatcapacityEnum);
 	iomodel->Constant(&this->thermalconductivity,MaterialsThermalconductivityEnum);
@@ -59,4 +60,5 @@
 	printf("   rho_ice: %g\n",rho_ice);
 	printf("   rho_water: %g\n",rho_water);
+	printf("   mu_water: %g\n",mu_water);
 	printf("   heatcapacity: %g\n",heatcapacity);
 	printf("   thermalconductivity: %g\n",thermalconductivity);
@@ -78,4 +80,5 @@
 	printf("   rho_ice: %g\n",rho_ice);
 	printf("   rho_water: %g\n",rho_water);
+	printf("   mu_water: %g\n",mu_water);
 	printf("   heatcapacity: %g\n",heatcapacity);
 	printf("   thermalconductivity: %g\n",thermalconductivity);
@@ -119,4 +122,5 @@
 	memcpy(marshalled_dataset,&rho_ice,sizeof(rho_ice));marshalled_dataset+=sizeof(rho_ice);
 	memcpy(marshalled_dataset,&rho_water,sizeof(rho_water));marshalled_dataset+=sizeof(rho_water);
+	memcpy(marshalled_dataset,&mu_water,sizeof(mu_water));marshalled_dataset+=sizeof(mu_water);
 	memcpy(marshalled_dataset,&heatcapacity,sizeof(heatcapacity));marshalled_dataset+=sizeof(heatcapacity);
 	memcpy(marshalled_dataset,&thermalconductivity,sizeof(thermalconductivity));marshalled_dataset+=sizeof(thermalconductivity);
@@ -139,4 +143,5 @@
 		sizeof(rho_ice)+
 		sizeof(rho_water)+
+		sizeof(mu_water)+
 		sizeof(heatcapacity)+
 		sizeof(thermalconductivity)+
@@ -165,4 +170,5 @@
 	memcpy(&rho_ice,marshalled_dataset,sizeof(rho_ice));marshalled_dataset+=sizeof(rho_ice);
 	memcpy(&rho_water,marshalled_dataset,sizeof(rho_water));marshalled_dataset+=sizeof(rho_water);
+	memcpy(&mu_water,marshalled_dataset,sizeof(mu_water));marshalled_dataset+=sizeof(mu_water);
 	memcpy(&heatcapacity,marshalled_dataset,sizeof(heatcapacity));marshalled_dataset+=sizeof(heatcapacity);
 	memcpy(&thermalconductivity,marshalled_dataset,sizeof(thermalconductivity));marshalled_dataset+=sizeof(thermalconductivity);
@@ -237,4 +243,8 @@
 			break;
 
+		case MaterialsMuWaterEnum:
+			this->mu_water=constant;
+			break;
+
 		case MaterialsHeatcapacityEnum:
 			this->heatcapacity=constant;
@@ -347,4 +357,9 @@
 double Matpar::GetRhoWater(){
 	return rho_water;
+}
+/*}}}1*/
+/*FUNCTION Matpar::GetMuWater {{{1*/
+double Matpar::GetMuWater(){
+	return mu_water;
 }
 /*}}}1*/
Index: /issm/trunk/src/c/objects/Materials/Matpar.h
===================================================================
--- /issm/trunk/src/c/objects/Materials/Matpar.h	(revision 10564)
+++ /issm/trunk/src/c/objects/Materials/Matpar.h	(revision 10565)
@@ -18,4 +18,5 @@
 		double	rho_ice; 
 		double	rho_water;
+		double  mu_water;
 		double  heatcapacity;
 		double  thermalconductivity;
@@ -75,4 +76,5 @@
 		double GetRhoIce();
 		double GetRhoWater();
+		double GetMuWater();
 		double GetMixedLayerCapacity();
 		double GetThermalExchangeVelocity();
Index: /issm/trunk/src/m/classes/hydrology.m
===================================================================
--- /issm/trunk/src/m/classes/hydrology.m	(revision 10564)
+++ /issm/trunk/src/m/classes/hydrology.m	(revision 10565)
@@ -41,5 +41,5 @@
 			%Parameters from Johnson's 2002 thesis, section 3.5.4			 
 			obj.n=.02;			 
-			obj.CR=2;		 
+			obj.CR=.01;
 			obj.p=2;		 
 			obj.q=1;		 
Index: /issm/trunk/src/m/classes/materials.m
===================================================================
--- /issm/trunk/src/m/classes/materials.m	(revision 10564)
+++ /issm/trunk/src/m/classes/materials.m	(revision 10565)
@@ -8,4 +8,5 @@
 		rho_ice                    = modelfield('default',0,'marshall',true,'format','Double');
 		rho_water                  = modelfield('default',0,'marshall',true,'format','Double');
+		mu_water                   = modelfield('default',0,'marshall',true,'format','Double');
 		heatcapacity               = modelfield('default',0,'marshall',true,'format','Double');
 		latentheat                 = modelfield('default',0,'marshall',true,'format','Double');
@@ -50,4 +51,7 @@
 			obj.rho_water=1023;
 
+			%water viscosity (N.s/m^2)
+			obj.mu_water=0.001787;  
+
 			%ice heat capacity cp (J/kg/K)
 			obj.heatcapacity=2093;
@@ -78,4 +82,5 @@
 			checkfield(md,'materials.rho_ice','>',0);
 			checkfield(md,'materials.rho_water','>',0);
+			checkfield(md,'materials.mu_water','>',0);
 			checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices 1]);
 			checkfield(md,'materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
@@ -87,4 +92,5 @@
 			fielddisplay(obj,'rho_ice','ice density [kg/m^3]');
 			fielddisplay(obj,'rho_water','water density [kg/m^3]');
+			fielddisplay(obj,'mu_water','water viscosity [N s/m^2]');
 			fielddisplay(obj,'heatcapacity','heat capacity [J/kg/K]');
 			fielddisplay(obj,'thermalconductivity','ice thermal conductivity [W/m/K]');
Index: /issm/trunk/src/m/enum/MaterialsMuWaterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MaterialsMuWaterEnum.m	(revision 10565)
+++ /issm/trunk/src/m/enum/MaterialsMuWaterEnum.m	(revision 10565)
@@ -0,0 +1,11 @@
+function macro=MaterialsMuWaterEnum()
+%MATERIALSMUWATERENUM - Enum of MaterialsMuWater
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=MaterialsMuWaterEnum()
+
+macro=StringToEnum('MaterialsMuWater');
Index: /issm/trunk/src/m/enum/XYEnum.m
===================================================================
--- /issm/trunk/src/m/enum/XYEnum.m	(revision 10565)
+++ /issm/trunk/src/m/enum/XYEnum.m	(revision 10565)
@@ -0,0 +1,11 @@
+function macro=XYEnum()
+%XYENUM - Enum of XY
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=XYEnum()
+
+macro=StringToEnum('XY');
Index: /issm/trunk/src/m/enum/XYZPEnum.m
===================================================================
--- /issm/trunk/src/m/enum/XYZPEnum.m	(revision 10565)
+++ /issm/trunk/src/m/enum/XYZPEnum.m	(revision 10565)
@@ -0,0 +1,11 @@
+function macro=XYZPEnum()
+%XYZPENUM - Enum of XYZP
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=XYZPEnum()
+
+macro=StringToEnum('XYZP');
Index: /issm/trunk/src/m/model/solvers/jacobicgoptions.m
===================================================================
--- /issm/trunk/src/m/model/solvers/jacobicgoptions.m	(revision 10565)
+++ /issm/trunk/src/m/model/solvers/jacobicgoptions.m	(revision 10565)
@@ -0,0 +1,31 @@
+function options=jacobiasmoptions(varargin)
+%ASMOPTIONS - return Additive Shwartz Method with Jacobi preconditioner petsc options
+%
+%   Usage:
+%      options=jacobiasmoptions;
+			 
+%retrieve options provided in varargin
+arguments=pairoptions(varargin{:});
+
+%default jacobiasm options
+options={{'mat_type','aij'},{'ksp_type','cg'},{'ksp_max_it',100},{'ksp_rtol',1e-15'}};
+
+%now, go through our arguments, and write over default options.
+for i=1:size(arguments.list,1),
+	arg1=arguments.list{i,1};
+	arg2=arguments.list{i,2};
+	found=0;
+	for j=1:size(options,2),
+		joption=options{j};
+		if strcmpi(joption{1},arg1),
+			joption{2}=arg2;
+			options{j}=joption;
+			found=1;
+			break;
+		end
+	end
+	if ~found,
+		%this option did not exist, add it: 
+		options{end+1}={arg1,arg2};
+	end
+end
Index: /issm/trunk/src/m/usr/larour/Alias/cdhydro.m
===================================================================
--- /issm/trunk/src/m/usr/larour/Alias/cdhydro.m	(revision 10564)
+++ /issm/trunk/src/m/usr/larour/Alias/cdhydro.m	(revision 10565)
@@ -1,2 +1,2 @@
-cd([issmdir '/projects/LarourHydroJGR2011']);
+cd([issmdir '/projects/LarourJGR2012Hydro']);
 
