Index: /issm/trunk-jpl/src/m/classes/basalforcings.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/basalforcings.py	(revision 27577)
+++ /issm/trunk-jpl/src/m/classes/basalforcings.py	(revision 27578)
@@ -17,4 +17,5 @@
         self.groundedice_melting_rate = np.nan
         self.floatingice_melting_rate = np.nan
+        self.perturbation_melting_rate = np.nan
         self.geothermalflux = np.nan
 
@@ -25,4 +26,5 @@
         s += '{}\n'.format(fielddisplay(self, 'groundedice_melting_rate', 'basal melting rate (positive if melting) [m/yr]'))
         s += '{}\n'.format(fielddisplay(self, 'floatingice_melting_rate', 'basal melting rate (positive if melting) [m/yr]'))
+        s += '{}\n'.format(fielddisplay(self, 'perturbation_melting_rate', '(optional) perturbation in basal melting rate under floating ice [m/yr]'))
         s += '{}\n'.format(fielddisplay(self, 'geothermalflux', 'geothermal heat flux [W/m^2]'))
         return s
@@ -30,4 +32,5 @@
     def extrude(self, md):  # {{{
         self.groundedice_melting_rate = project3d(md, 'vector', self.groundedice_melting_rate, 'type', 'node', 'layer', 1)
+        self.perturbation_melting_rate = project3d(md, 'vector', self.perturbation_melting_rate, 'type', 'node', 'layer', 1)
         self.floatingice_melting_rate = project3d(md, 'vector', self.floatingice_melting_rate, 'type', 'node', 'layer', 1)
         self.geothermalflux = project3d(md, 'vector', self.geothermalflux, 'type', 'node', 'layer', 1) # Bedrock only gets geothermal flux
@@ -65,3 +68,4 @@
         WriteData(fid, prefix, 'object', self, 'fieldname', 'floatingice_melting_rate', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1 / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts)
         WriteData(fid, prefix, 'object', self, 'fieldname', 'geothermalflux', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts)
+        WriteData(fid, prefix, 'object', self, 'fieldname', 'perturbation_melting_rate', 'format', 'DoubleMat', 'name', 'md.basalforcings.perturbation_melting_rate', 'mattype', 1, 'scale', 1 / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts)
     # }}}
Index: /issm/trunk-jpl/src/m/solvers/bcgslbjacobioptions.py
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgslbjacobioptions.py	(revision 27577)
+++ /issm/trunk-jpl/src/m/solvers/bcgslbjacobioptions.py	(revision 27578)
@@ -11,6 +11,6 @@
     solverOptions['ksp_type'] = options.getfieldvalue('ksp_type', 'bcgsl')
     solverOptions['pc_type'] = options.getfieldvalue('pc_type', 'bjacobi')
-    solverOptions['ksp_max_it'] = options.getfieldvalue('ksp_max_it', 100)
-    solverOptions['ksp_rtol'] = options.getfieldvalue('ksp_rtol', 1e-15)
+    solverOptions['ksp_max_it'] = options.getfieldvalue('ksp_max_it', 300)
+    solverOptions['ksp_rtol'] = options.getfieldvalue('ksp_rtol', 1e-13)
 
     return solverOptions
