Index: /issm/trunk-jpl/src/m/classes/frictioncoulomb.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/frictioncoulomb.py	(revision 22051)
+++ /issm/trunk-jpl/src/m/classes/frictioncoulomb.py	(revision 22052)
@@ -17,5 +17,6 @@
         self.p = float('NaN')
 	self.q = float('NaN')
-
+	self.coupling  	 = 0
+	self.effective_pressure	= float('NaN')
 	#set defaults
 	self.setdefaultparameters()
@@ -29,4 +30,6 @@
 	string="%s\n%s"%(string,fielddisplay(self,"p","p exponent"))
 	string="%s\n%s"%(string,fielddisplay(self,"q","q exponent"))
+	string="%s\n%s"%(string,fielddisplay(self,'coupling','Coupling flag: 0 for default, 1 for forcing(provide md.friction.effective_pressure)  and 2 for coupled(not implemented yet)'))
+	string="%s\n%s"%(string,fielddisplay(self,'effective_pressure','Effective Pressure for the forcing if not coupled [Pa]'))
 	return string
     #}}}
@@ -36,4 +39,10 @@
 	self.p=project3d(md,'vector',self.p,'type','element')
 	self.q=project3d(md,'vector',self.q,'type','element')
+	if self.coupling==1:
+		self.effective_pressure=project3d(md,'vector',self.effective_pressure,'type','node','layer',1)
+	elif self.coupling==2:
+		raise ValueError('coupling not supported yet')
+	elif self.coupling > 2:
+		raise ValueError('md.friction.coupling larger than 2, not supported yet')	
 	return self
     #}}}
@@ -51,6 +60,12 @@
 	md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
 	md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
+	if self.coupling==1:
+		md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'Inf',1,'timeseries',1)
+	elif self.coupling==2:
+		raise ValueError('coupling not supported yet')
+	elif self.coupling > 2:
+		raise ValueError('md.friction.coupling larger than 2, not supported yet')
+	return md
 
-	return md
     # }}}
     def marshall(self,prefix,md,fid):    # {{{
@@ -60,3 +75,10 @@
 	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')
+	if self.coupling==1:
+		WriteData(fid,prefix,'class','friction','object',self,'fieldname','effective_pressure','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
+	elif self.coupling==2:
+		raise ValueError('coupling not supported yet')
+	elif self.coupling > 2:
+		raise ValueError('md.friction.coupling larger than 2, not supported yet')	
     # }}}
