Index: /issm/trunk-jpl/src/m/classes/frictionsommers.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/frictionsommers.m	(revision 19738)
+++ /issm/trunk-jpl/src/m/classes/frictionsommers.m	(revision 19738)
@@ -0,0 +1,45 @@
+%FRICTIONSOMMERS class definition
+%
+%   Usage:
+%      friction=frictionsommers();
+
+classdef frictionsommers
+	properties (SetAccess=public) 
+		coefficient = NaN;
+	end
+	methods
+		function self = extrude(self,md) % {{{
+			self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1);
+		end % }}}
+		function self = frictionsommers(varargin) % {{{
+			switch nargin
+				case 0
+					self=setdefaultparameters(self);
+				case 1
+					self=structtoobj(frictionsommers(),varargin{1});
+				otherwise
+					error('constructor not supported');
+			end
+		end % }}}
+		function self = setdefaultparameters(self) % {{{
+
+		end % }}}
+		function md = checkconsistency(self,md,solution,analyses) % {{{
+
+			%Early return
+			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
+		end % }}}
+		function disp(self) % {{{
+			disp(sprintf('Basal shear stress parameters: Sigma_b = coefficient^2 * Neff * u_b\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*(head-b))'));
+			fielddisplay(self,'coefficient','friction coefficient [SI]');
+		end % }}}
+		function marshall(self,md,fid) % {{{
+			yts=365.0*24.0*3600.0;
+
+			WriteData(fid,'enum',FrictionLawEnum,'data',8,'format','Integer');
+			WriteData(fid,'class','friction','object',self,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+
+		end % }}}
+	end
+end
