Index: /issm/trunk-jpl/src/m/classes/frictionhydro.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/frictionhydro.m	(revision 18774)
+++ /issm/trunk-jpl/src/m/classes/frictionhydro.m	(revision 18775)
@@ -2,5 +2,5 @@
 %
 %   Usage:
-%      frictionweertman=frictionhydro();
+%      friction=frictionhydro();
 
 classdef frictionhydro
@@ -26,10 +26,10 @@
 			%Early return
 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
-			md = checkfield(md,'fieldname','frictionhydro.q','NaN',1,'size',[md.mesh.numberofelements 1]);
-			md = checkfield(md,'fieldname','frictionhydro.C','NaN',1,'size',[md.mesh.numberofelements 1]);
-			md = checkfield(md,'fieldname','frictionhydro.As','NaN',1,'size',[md.mesh.numberofelements 1]);
+			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
+			md = checkfield(md,'fieldname','friction.C','NaN',1,'size',[md.mesh.numberofelements 1]);
+			md = checkfield(md,'fieldname','friction.As','NaN',1,'size',[md.mesh.numberofelements 1]);
 		end % }}}
 		function disp(obj) % {{{
-			disp(sprintf('Effective Pressure based friction law described in Gagliardini 2007')
+			disp(sprintf('Effective Pressure based friction law described in Gagliardini 2007'));
 			fielddisplay(obj,'q','friction law exponent q>=1');
 			fielddisplay(obj,'C','friction law max value [SI]');
Index: /issm/trunk-jpl/src/m/classes/frictionweertman.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/frictionweertman.m	(revision 18774)
+++ /issm/trunk-jpl/src/m/classes/frictionweertman.m	(revision 18775)
@@ -39,5 +39,5 @@
 		function disp(obj) % {{{
 			disp(sprintf('Weertman sliding law parameters: Sigma_b = C^2 * |u_b|^(1/m-1) * u_b'));
-			fielddisplay(obj,'coefficient','friction coefficient [SI]');
+			fielddisplay(obj,'C','friction coefficient [SI]');
 			fielddisplay(obj,'m','m exponent');
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/hydrologydc.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologydc.py	(revision 18774)
+++ /issm/trunk-jpl/src/m/classes/hydrologydc.py	(revision 18775)
@@ -66,5 +66,4 @@
 			string="%s\n%s"%(string,fielddisplay(self,'sedimentlimit','user defined upper limit for the inefficient layer [m]'))
 
-
 		string="%s\n%s"%(string,fielddisplay(self,'transfer_flag','what kind of transfer method is applied between the layers'))
 		string="%s\n\t\t%s"%(string,'0: no transfer')
Index: /issm/trunk-jpl/src/m/classes/model.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/model.m	(revision 18774)
+++ /issm/trunk-jpl/src/m/classes/model.m	(revision 18775)
@@ -130,4 +130,8 @@
 			if isa(md.seaice,'double');
 				md.seaice=seaice();
+			end
+			%2014 November 12
+			if isa(md.calving,'double');
+				md.calving=calving();
 			end
 		end% }}}
@@ -188,10 +192,23 @@
 			%Start with changing all the fields from the 3d mesh 
 
+			%dealing with the friciton law
 			%drag is limited to nodes that are on the bedrock.
-			md.friction.coefficient=project2d(md,md.friction.coefficient,1);
-
-			%p and q (same deal, except for element that are on the bedrock: )
-			md.friction.p=project2d(md,md.friction.p,1);
-			md.friction.q=project2d(md,md.friction.q,1);
+			if isa(md.friction,'friction'),
+				md.friction.coefficient=project2d(md,md.friction.coefficient,1);
+				md.friction.p=project2d(md,md.friction.p,1);
+				md.friction.q=project2d(md,md.friction.q,1);
+			elseif isa(md.friction,'frictionhydro'),
+				md.friction.q=project2d(md,md.friction.q,1);
+				md.friction.C=project2d(md,md.friction.C,1);
+				md.friction.As=project2d(md,md.friction.As,1);
+			elseif isa(md.friction,'frictionwaterlayer'),
+				md.friction.coefficient=project2d(md,md.friction.coefficient,1);
+				md.friction.p=project2d(md,md.friction.p,1);
+				md.friction.q=project2d(md,md.friction.q,1);
+				md.friction.water_layer=project2d(md,md.friction.water_layer,1);
+			elseif isa(md.friction,'frictionweertman'),
+				md.friction.C=project2d(md,md.friction.C,1);
+				md.friction.m=project2d(md,md.friction.m,1);
+	    end
 
 			%observations
@@ -737,10 +754,22 @@
 
 			%drag coefficient is limited to nodes that are on the bedrock.
-			md.friction.coefficient=project3d(md,'vector',md.friction.coefficient,'type','node','layer',1);
-
-			%p and q (same deal, except for element that are on the bedrock: )
-			md.friction.p=project3d(md,'vector',md.friction.p,'type','element');
-			md.friction.q=project3d(md,'vector',md.friction.q,'type','element');
-
+			if isa(md.friction,'friction'),
+				md.friction.coefficient=project3d(md,'vector',md.friction.coefficient,'type','node','layer',1);
+				md.friction.p=project3d(md,'vector',md.friction.p,'type','element');
+				md.friction.q=project3d(md,'vector',md.friction.q,'type','element');
+			elseif isa(md.friction,'frictionhydro'),
+				md.friction.q=project3d(md,'vector',md.friction.q,'type','element');
+				md.friction.C=project3d(md,'vector',md.friction.C,'type','element');
+				md.friction.As=project3d(md,'vector',md.friction.As,'type','element');
+			elseif isa(md.friction,'frictionwaterlayer'),
+				md.friction.coefficient=project3d(md,'vector',md.friction.coefficient,'type','node','layer',1);
+				md.friction.p=project3d(md,'vector',md.friction.p,'type','element');
+				md.friction.q=project3d(md,'vector',md.friction.q,'type','element');
+				md.friction.water_layer=project3d(md,'vector',md.friction.water_layer,'type','node','layer',1);
+			elseif isa(md.friction,'frictionweertman'),
+				md.friction.C=project3d(md,'vector',md.friction.C,'type','node','layer',1);
+				md.friction.m=project3d(md,'vector',md.friction.m,'type','element');
+	    end
+	 
 			%observations
 			md.inversion.vx_obs=project3d(md,'vector',md.inversion.vx_obs,'type','node');
