Index: /issm/trunk-jpl/src/m/classes/hydrologyshreve.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 14617)
+++ /issm/trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 14618)
@@ -19,4 +19,6 @@
 				case 0
 					obj=setdefaultparameters(obj);
+				case 1
+					obj=structtoobj(obj,varargin{1});
 				otherwise
 					error('constructor not supported');
Index: /issm/trunk-jpl/src/m/classes/model/model.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/model/model.m	(revision 14617)
+++ /issm/trunk-jpl/src/m/classes/model/model.m	(revision 14618)
@@ -73,4 +73,9 @@
 			end
 
+			%2012 June 28th
+			if numel(md.mesh.edges)>1 & any(isnan(md.mesh.edges))
+				disp('Update model edges from previous version');
+				md.mesh.edges(isnan(md.mesh.edges))=-1;
+			end
 			%2012 August 4th
 			if isa(md.materials,'materials'),
@@ -82,13 +87,14 @@
 				end
 			end
-			%2012 June 28th
-			if sum(sum(isnan(md.mesh.edges)))>0
-				disp('Update model edges from previous version');
-				md.mesh.edges(isnan(md.mesh.edges))=-1;
-			end
 			%2013 April 12
 			if numel(md.diagnostic.loadingforce==1)
 				md.diagnostic.loadingforce=0*ones(md.mesh.numberofvertices,3);
 			end
+			%2013 April 17
+			if isa(md.hydrology,'hydrology'),
+				disp('Recovering old hydrology class');
+				md.hydrology=hydrologyshreve(md.materials);
+			end
+
 
 		end% }}}
Index: /issm/trunk-jpl/src/m/classes/oldclasses/hydrology.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/oldclasses/hydrology.m	(revision 14618)
+++ /issm/trunk-jpl/src/m/classes/oldclasses/hydrology.m	(revision 14618)
@@ -0,0 +1,67 @@
+%HYDROLOGY class definition
+%
+%   Usage:
+%      hydrology=hydrology();
+
+classdef hydrology
+	properties (SetAccess=public) 
+		spcwatercolumn = NaN;
+		n              = 0;
+		CR             = 0;
+		p              = 0;
+		q              = 0;
+		kn             = 0;
+		stabilization  = 0;
+	end
+	methods
+		function obj = hydrology(varargin) % {{{
+			switch nargin
+				case 0
+					obj=setdefaultparameters(obj);
+				otherwise
+					error('constructor not supported');
+			end
+		end % }}}
+		function obj = setdefaultparameters(obj) % {{{
+
+			%Parameters from Johnson's 2002 thesis, section 3.5.4			 
+			obj.n=.02;			 
+			obj.CR=.01;
+			obj.p=2;		 
+			obj.q=1;		 
+			obj.kn=0;
+
+			%Type of stabilization to use 0:nothing 1:artificial_diffusivity
+			obj.stabilization=1;
+		end % }}}
+		function md = checkconsistency(obj,md,solution,analyses) % {{{
+
+			%Early return
+			if ~ismember(HydrologyAnalysisEnum(),analyses), return; end
+
+			md = checkfield(md,'hydrology.spcwatercolumn','forcing',1);
+			md = checkfield(md,'hydrology.stabilization','>=',0);
+		end % }}}
+		function disp(obj) % {{{
+			disp(sprintf('   hydrology solution parameters:'));
+
+			fielddisplay(obj,'spcwatercolumn','water thickness constraints (NaN means no constraint)');
+			fielddisplay(obj,'n','Manning roughness coefficient');
+			fielddisplay(obj,'CR','tortuosity parameter');
+			fielddisplay(obj,'p','dimensionless exponent in Manning velocity formula');
+			fielddisplay(obj,'q','dimensionless exponent in Manning velocity formula');
+			fielddisplay(obj,'kn','parameter in effective pressure formula');
+			fielddisplay(obj,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.');
+
+		end % }}}
+		function marshall(obj,fid) % {{{
+			WriteData(fid,'object',obj,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1);
+			WriteData(fid,'object',obj,'fieldname','n','format','Double');
+			WriteData(fid,'object',obj,'fieldname','CR','format','Double');
+			WriteData(fid,'object',obj,'fieldname','p','format','Double');
+			WriteData(fid,'object',obj,'fieldname','q','format','Double');
+			WriteData(fid,'object',obj,'fieldname','kn','format','Double');
+			WriteData(fid,'object',obj,'fieldname','stabilization','format','Double');
+		end % }}}
+	end
+end
