Index: /issm/trunk-jpl/src/m/classes/friction.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/friction.py	(revision 24666)
+++ /issm/trunk-jpl/src/m/classes/friction.py	(revision 24667)
@@ -19,4 +19,5 @@
         self.coupling = 0
         self.effective_pressure = float('NaN')
+	self.effective_pressure_limit = 0
     #set defaults
         self.setdefaultparameters()
@@ -32,4 +33,5 @@
         string = "%s\n%s" % (string, fielddisplay(self, 'coupling', 'Coupling flag 0: uniform sheet (negative pressure ok, default), 1: ice pressure only, 2: water pressure assuming uniform sheet (no negative pressure), 3: use provided effective_pressure, 4: used coupled model (not implemented yet)'))
         string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure', 'Effective Pressure for the forcing if not coupled [Pa]'))
+	string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure_limit','Neff do not allow to fall below a certain limit: effective_pressure_limit*rho_ice*g*thickness (default 0)'))
         string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested'))
         return string
@@ -50,4 +52,5 @@
     def setdefaultparameters(self):  # {{{
         self.requested_outputs = ['default']
+	self.effective_pressure_limit = 0
         return self
     #}}}
@@ -68,4 +71,5 @@
         md = checkfield(md, 'fieldname', 'friction.p', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements])
         md = checkfield(md, 'fieldname', 'friction.coupling', 'numel', [1], 'values', [0, 1, 2, 3, 4])
+	md = checkfield(md, 'fieldname', 'friction.effective_pressure_limit','numel',[1],'>=',0)
         if self.coupling == 3:
             md = checkfield(md, 'fieldname', 'friction.effective_pressure', 'NaN', 1, 'Inf', 1, 'timeseries', 1)
@@ -82,4 +86,5 @@
         WriteData(fid, prefix, 'object', self, 'fieldname', 'q', 'format', 'DoubleMat', 'mattype', 2)
         WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'coupling', 'format', 'Integer')
+	WriteData(fid, prefix, 'object', self,'class','friction','fieldname','effective_pressure_limit','format','Double')
         if self.coupling == 3:
             WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'effective_pressure', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts)
Index: /issm/trunk-jpl/src/m/classes/frictioncoulomb.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/frictioncoulomb.py	(revision 24666)
+++ /issm/trunk-jpl/src/m/classes/frictioncoulomb.py	(revision 24667)
@@ -20,4 +20,5 @@
         self.coupling = 0
         self.effective_pressure = float('NaN')
+	self.effective_pressure_limit = 0
     #set defaults
         self.setdefaultparameters()
@@ -32,4 +33,5 @@
         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]'))
+	string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure_limit','Neff do not allow to fall below a certain limit: effective_pressure_limit*rho_ice*g*thickness (default 0)'))
         return string
     #}}}
@@ -50,5 +52,6 @@
 
     def setdefaultparameters(self):  # {{{
-        return self
+	self.effective_pressure_limit = 0
+	return self
     #}}}
 
@@ -62,4 +65,5 @@
         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])
+	md = checkfield(md, 'fieldname', 'friction.effective_pressure_limit','numel',[1],'>=',0)
         if self.coupling == 1:
             md = checkfield(md, 'fieldname', 'friction.effective_pressure', 'NaN', 1, 'Inf', 1, 'timeseries', 1)
@@ -78,4 +82,5 @@
         WriteData(fid, prefix, 'object', self, 'fieldname', 'q', 'format', 'DoubleMat', 'mattype', 2)
         WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'coupling', 'format', 'Integer')
+	WriteData(fid, prefix, 'object', self,'class','friction','fieldname','effective_pressure_limit','format','Double')
         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)
Index: /issm/trunk-jpl/src/m/classes/frictionhydro.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/frictionhydro.py	(revision 24666)
+++ /issm/trunk-jpl/src/m/classes/frictionhydro.py	(revision 24667)
@@ -19,4 +19,5 @@
         self.As = np.nan
         self.effective_pressure = np.nan
+	self.effective_pressure_limit = 0
     #set defaults
 
@@ -31,4 +32,5 @@
         string = "%s\n%s" % (string, fielddisplay(self, 'As', 'Sliding Parameter without cavitation [m Pa^ - n s^ - 1]'))
         string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure', 'Effective Pressure for the forcing if not coupled [Pa]'))
+	string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure_limit','Neff do not allow to fall below a certain limit: effective_pressure_limit*rho_ice*g*thickness (default 0)'))
 
         return string
@@ -49,5 +51,5 @@
         self.coupling = 0
         self.effective_pressure = np.nan
-
+	self.effective_pressure_limit = 0
         return self
     # }}}
@@ -62,4 +64,5 @@
         md = checkfield(md, 'fieldname', 'friction.C', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements])
         md = checkfield(md, 'fieldname', 'friction.As', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements])
+	md = checkfield(md, 'fieldname', 'friction.effective_pressure_limit','numel',[1],'>=',0)
         if self.coupling == 3:
             md = checkfield(md, 'fieldname', 'friction.effective_pressure', 'NaN', 1, 'Inf', 1, 'timeseries', 1)
@@ -74,4 +77,5 @@
         WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'C', 'format', 'DoubleMat', 'mattype', 2)
         WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'As', 'format', 'DoubleMat', 'mattype', 2)
+	WriteData(fid, prefix, 'object', self,'class','friction','fieldname','effective_pressure_limit','format','Double')
         if self.coupling in[3, 4]:
             WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'effective_pressure', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts)
