Index: ../trunk-jpl/src/m/classes/model.m
===================================================================
--- ../trunk-jpl/src/m/classes/model.m	(revision 18774)
+++ ../trunk-jpl/src/m/classes/model.m	(revision 18775)
@@ -130,6 +130,10 @@
 			if isa(md.seaice,'double');
 				md.seaice=seaice();
 			end
+			%2014 November 12
+			if isa(md.calving,'double');
+				md.calving=calving();
+			end
 		end% }}}
 	end
 	methods
@@ -187,13 +191,26 @@
 
 			%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);
+			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
 
-			%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);
-
 			%observations
 			if ~isnan(md.inversion.vx_obs), md.inversion.vx_obs=project2d(md,md.inversion.vx_obs,md.mesh.numberoflayers); end;
 			if ~isnan(md.inversion.vy_obs), md.inversion.vy_obs=project2d(md,md.inversion.vy_obs,md.mesh.numberoflayers); end;
@@ -736,12 +753,24 @@
 			md.mesh.long=project3d(md,'vector',md.mesh.long,'type','node');
 
 			%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');
 			md.inversion.vy_obs=project3d(md,'vector',md.inversion.vy_obs,'type','node');
Index: ../trunk-jpl/src/m/classes/frictionweertman.m
===================================================================
--- ../trunk-jpl/src/m/classes/frictionweertman.m	(revision 18774)
+++ ../trunk-jpl/src/m/classes/frictionweertman.m	(revision 18775)
@@ -38,7 +38,7 @@
 		end % }}}
 		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 % }}}
 		function marshall(obj,md,fid) % {{{
Index: ../trunk-jpl/src/m/classes/hydrologydc.py
===================================================================
--- ../trunk-jpl/src/m/classes/hydrologydc.py	(revision 18774)
+++ ../trunk-jpl/src/m/classes/hydrologydc.py	(revision 18775)
@@ -65,7 +65,6 @@
 		if self.sedimentlimit_flag==1:
 			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')
 		string="%s\n\t\t%s"%(string,'1: constant leakage factor: leakage_factor')
Index: ../trunk-jpl/src/m/classes/frictionhydro.m
===================================================================
--- ../trunk-jpl/src/m/classes/frictionhydro.m	(revision 18774)
+++ ../trunk-jpl/src/m/classes/frictionhydro.m	(revision 18775)
@@ -1,7 +1,7 @@
 %FRICTIONWEERTMAN class definition
 %
 %   Usage:
-%      frictionweertman=frictionhydro();
+%      friction=frictionhydro();
 
 classdef frictionhydro
 	properties (SetAccess=public) 
@@ -25,12 +25,12 @@
 
 			%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]');
 			fielddisplay(obj,'As','Sliding Parameter without cavitation [m Pa^-n s^-1]');
