Index: /issm/trunk-jpl/src/m/classes/frictioncoulomb.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/frictioncoulomb.m	(revision 22050)
+++ /issm/trunk-jpl/src/m/classes/frictioncoulomb.m	(revision 22051)
@@ -10,4 +10,6 @@
 		q                  = NaN;
 		coefficientcoulomb = NaN;
+		coupling	= 0;
+		effective_pressure = NaN;
 	end
 	methods
@@ -17,4 +19,13 @@
 			self.p=project3d(md,'vector',self.p,'type','element');
 			self.q=project3d(md,'vector',self.q,'type','element');
+			switch self.coupling
+				case 0
+				case 1
+					self.effective_pressure=project3d(md,'vector',self.effective_pressure,'type','node','layer',1);
+				case 2
+					error('not implemented yet');
+				otherwise
+					error('not supported yet');		
+			end
 		end % }}}
 		function self = frictioncoulomb(varargin) % {{{
@@ -37,4 +48,14 @@
 			md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
 			md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+			md = checkfield(md,'fieldname','friction.coupling','numel',[1],'values',[0 1 2]);
+			switch self.coupling
+				case 0
+				case 1
+					md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'Inf',1,'timeseries',1);
+				case 2
+					error('not implemented yet');
+				otherwise
+					error('not supported yet');		
+			end
 		end % }}}
 		function disp(self) % {{{
@@ -44,4 +65,6 @@
 			fielddisplay(self,'p','p exponent');
 			fielddisplay(self,'q','q exponent');
+			fielddisplay(self,'effective_pressure','Effective Pressure for the forcing if not coupled [Pa]');
+			fielddisplay(self,'coupling','Coupling flag: 0 for default, 1 for forcing(provide md.friction.effective_pressure)  and 2 for coupled(not implemented yet)');
 		end % }}}
 		function marshall(self,prefix,md,fid) % {{{
@@ -52,4 +75,14 @@
 			WriteData(fid,prefix,'object',self,'fieldname','p','format','DoubleMat','mattype',2);
 			WriteData(fid,prefix,'object',self,'fieldname','q','format','DoubleMat','mattype',2);
+			WriteData(fid,prefix,'class','friction','object',self,'fieldname','coupling','format','Integer');
+			switch self.coupling
+				case 0
+				case 1
+					WriteData(fid,prefix,'class','friction','object',self,'fieldname','effective_pressure','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
+				case 2
+					error('not implemented yet');
+				otherwise
+					error('not supported yet');		
+			end
 
 		end % }}}
