Index: /issm/trunk-jpl/src/m/classes/friction.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/friction.py	(revision 27491)
+++ /issm/trunk-jpl/src/m/classes/friction.py	(revision 27492)
@@ -8,5 +8,5 @@
 
 class friction(object):
-    """FRICTION class definition
+    """friction class definition
 
     Usage:
@@ -19,4 +19,5 @@
         self.q = np.nan
         self.coupling = 0
+        self.linearize = 0
         self.effective_pressure = np.nan
         self.effective_pressure_limit = 0
@@ -26,8 +27,9 @@
         s = 'Basal shear stress parameters: Sigma_b = coefficient^2 * Neff ^r * |u_b|^(s - 1) * u_b,\n'
         s += '(effective stress Neff = rho_ice * g * thickness + rho_water * g * base, r = q / p and s = 1 / p)\n'
-        s += '{}\n'.format(fielddisplay(self, "coefficient", "friction coefficient [SI]"))
-        s += '{}\n'.format(fielddisplay(self, "p", "p exponent"))
-        s += '{}\n'.format(fielddisplay(self, "q", "q exponent"))
+        s += '{}\n'.format(fielddisplay(self, 'coefficient', 'friction coefficient [SI]'))
+        s += '{}\n'.format(fielddisplay(self, 'p', 'p exponent'))
+        s += '{}\n'.format(fielddisplay(self, 'q', 'q exponent'))
         s += '{}\n'.format(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)'))
+        s += '{}\n'.format(fielddisplay(self, 'linearize', '0: not linearized, 1: interpolated linearly, 2: constant per element (default is 0)'))
         s += '{}\n'.format(fielddisplay(self, 'effective_pressure', 'Effective Pressure for the forcing if not coupled [Pa]'))
         s += '{}\n'.format(fielddisplay(self, 'effective_pressure_limit', 'Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0)'))
@@ -35,4 +37,6 @@
     # }}}
     def setdefaultparameters(self):  # {{{
+        self.linearize = 0
+        self.coupling = 0
         self.effective_pressure_limit = 0
         return self
@@ -59,4 +63,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.linearize', 'numel', [1], 'values', [0, 1, 2])
         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)
@@ -77,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, 'class', 'friction', 'object', self, 'fieldname', 'linearize', 'format', 'Integer')
         WriteData(fid, prefix, 'object', self, 'class', 'friction', 'fieldname', 'effective_pressure_limit', 'format', 'Double')
         if self.coupling == 3 or self.coupling == 4:
