Index: /issm/trunk-jpl/test/NightlyRun/test518.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test518.m	(revision 26440)
+++ /issm/trunk-jpl/test/NightlyRun/test518.m	(revision 26440)
@@ -0,0 +1,25 @@
+%Test Name: PigStressMLHO2d
+md=triangle(model(),'../Exp/Pig.exp',20000.);
+md=setmask(md,'../Exp/PigShelves.exp','../Exp/PigIslands.exp');
+md=parameterize(md,'../Par/Pig.par');
+md=setflowequation(md,'MLHO','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.stressbalance.requested_outputs={'default','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase'};
+md=solve(md,'Stressbalance');
+
+%Fields and tolerances to track changes
+field_names     ={'Vx','Vy','Vel','Pressure','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase'};
+field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+field_values={...
+   (md.results.StressbalanceSolution.Vx),...
+   (md.results.StressbalanceSolution.Vy),...
+   (md.results.StressbalanceSolution.Vel),...
+   (md.results.StressbalanceSolution.Pressure),...
+   (md.results.StressbalanceSolution.VxSurface),...
+   (md.results.StressbalanceSolution.VySurface),...
+   (md.results.StressbalanceSolution.VxShear),...
+   (md.results.StressbalanceSolution.VyShear),...
+   (md.results.StressbalanceSolution.VxBase),...
+   (md.results.StressbalanceSolution.VyBase),...
+   };
+
Index: /issm/trunk-jpl/test/NightlyRun/test518.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test518.py	(revision 26440)
+++ /issm/trunk-jpl/test/NightlyRun/test518.py	(revision 26440)
@@ -0,0 +1,31 @@
+#Test Name: PigStressMLHO2d
+from model import *
+from socket import gethostname
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+
+
+md = triangle(model(), '../Exp/Pig.exp', 20000.)
+md = setmask(md, '../Exp/PigShelves.exp', '../Exp/PigIslands.exp')
+md = parameterize(md, '../Par/Pig.py')
+md = setflowequation(md, 'MLHO', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+md.stressbalance.requested_outputs = ['default', 'VxSurface', 'VySurface', 'VxShear', 'VyShear', 'VxBase', 'VyBase']
+md = solve(md, 'Stressbalance')
+
+#Fields and tolerances to track changes
+field_names = ['Vx', 'Vy', 'Vel', 'Pressure', 'VxSurface', 'VySurface', 'VxShear', 'VyShear', 'VxBase', 'VyBase']
+field_tolerances = [1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13]
+field_values = [md.results.StressbalanceSolution.Vx,
+                md.results.StressbalanceSolution.Vy,
+                md.results.StressbalanceSolution.Vel,
+                md.results.StressbalanceSolution.Pressure,
+                md.results.StressbalanceSolution.VxSurface,
+                md.results.StressbalanceSolution.VySurface,
+                md.results.StressbalanceSolution.VxShear,
+                md.results.StressbalanceSolution.VyShear,
+                md.results.StressbalanceSolution.VxBase,
+                md.results.StressbalanceSolution.VyBase]
Index: /issm/trunk-jpl/test/NightlyRun/test519.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test519.m	(revision 26440)
+++ /issm/trunk-jpl/test/NightlyRun/test519.m	(revision 26440)
@@ -0,0 +1,53 @@
+%Test Name: PigTranMLHO2d
+md=triangle(model(),'../Exp/Pig.exp',20000.);
+md=setmask(md,'../Exp/PigShelves.exp','../Exp/PigIslands.exp');
+md=parameterize(md,'../Par/Pig.par');
+md=setflowequation(md,'MLHO','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.geometry.bed=md.geometry.base;
+[md.mesh.lat,md.mesh.long] = xy2ll(md.mesh.x,md.mesh.y,-1);
+md.mesh.scale_factor=0.9*ones(md.mesh.numberofvertices,1);
+md.transient.requested_outputs={'default','IceVolume','IceVolumeScaled','GroundedArea','GroundedAreaScaled','FloatingArea','FloatingAreaScaled','TotalSmb','TotalSmbScaled','TotalFloatingBmb','TotalFloatingBmbScaled'};
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','IceVolume1','IceVolumeScaled1','GroundedArea1','GroundedAreaScaled1','FloatingArea1','FloatingAreaScaled1','TotalSmb1','TotalSmbScaled1','TotalFloatingBmb1','TotalFloatingBmbScaled1',...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','IceVolume2','IceVolumeScaled2','GroundedArea2','GroundedAreaScaled2','FloatingArea2','FloatingAreaScaled2','TotalSmb2','TotalSmbScaled2','TotalFloatingBmb2','TotalFloatingBmbScaled2'};
+field_tolerances={1e-12,2e-12,2e-12,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+	1e-12,1e-12,1e-12,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+field_values={...
+	(md.results.TransientSolution(1).Vx),...
+	(md.results.TransientSolution(1).Vy),...
+	(md.results.TransientSolution(1).Vel),...
+	(md.results.TransientSolution(1).Pressure),...
+	(md.results.TransientSolution(1).Base),...
+	(md.results.TransientSolution(1).Surface),...
+	(md.results.TransientSolution(1).Thickness),...
+	(md.results.TransientSolution(1).IceVolume),...
+	(md.results.TransientSolution(1).IceVolumeScaled),...
+	(md.results.TransientSolution(1).GroundedArea),...
+	(md.results.TransientSolution(1).GroundedAreaScaled),...
+	(md.results.TransientSolution(1).FloatingArea),...
+	(md.results.TransientSolution(1).FloatingAreaScaled),...
+	(md.results.TransientSolution(1).TotalSmb),...
+	(md.results.TransientSolution(1).TotalSmbScaled),...
+	(md.results.TransientSolution(1).TotalFloatingBmb),...
+	(md.results.TransientSolution(1).TotalFloatingBmbScaled),...
+	(md.results.TransientSolution(2).Vx),...
+	(md.results.TransientSolution(2).Vy),...
+	(md.results.TransientSolution(2).Vel),...
+	(md.results.TransientSolution(2).Pressure),...
+	(md.results.TransientSolution(2).Base),...
+	(md.results.TransientSolution(2).Surface),...
+	(md.results.TransientSolution(2).Thickness),...
+	(md.results.TransientSolution(2).IceVolume),...
+	(md.results.TransientSolution(2).IceVolumeScaled),...
+	(md.results.TransientSolution(2).GroundedArea),...
+	(md.results.TransientSolution(2).GroundedAreaScaled),...
+	(md.results.TransientSolution(2).FloatingArea),...
+	(md.results.TransientSolution(2).FloatingAreaScaled),...
+	(md.results.TransientSolution(2).TotalSmb),...
+	(md.results.TransientSolution(2).TotalSmbScaled),...
+	(md.results.TransientSolution(2).TotalFloatingBmb),...
+	(md.results.TransientSolution(2).TotalFloatingBmbScaled),...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test519.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test519.py	(revision 26440)
+++ /issm/trunk-jpl/test/NightlyRun/test519.py	(revision 26440)
@@ -0,0 +1,82 @@
+#Test Name: PigTranMLHO2d
+from model import *
+from socket import gethostname
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+
+
+md = triangle(model(), '../Exp/Pig.exp', 20000.)
+md = setmask(md, '../Exp/PigShelves.exp', '../Exp/PigIslands.exp')
+md = parameterize(md, '../Par/Pig.py')
+md = setflowequation(md, 'MLHO', 'all')
+md.mesh.scale_factor = 0.9 * np.ones((md.mesh.numberofvertices))
+md.transient.requested_outputs = ['default', 'IceVolume', 'IceVolumeScaled', 'GroundedArea', 'GroundedAreaScaled', 'FloatingArea', 'FloatingAreaScaled', 'TotalSmb', 'TotalSmbScaled', 'TotalFloatingBmb', 'TotalFloatingBmbScaled']
+md.cluster = generic('name', gethostname(), 'np', 3)
+md = solve(md, 'Transient')
+
+# Fields and tolerances to track changes
+field_names = ['Vx1', 'Vy1', 'Vel1', 'Pressure1',
+               'Bed1', 'Surface1', 'Thickness1',
+               'IceVolume1', 'IceVolumeScaled1',
+               'GroundedArea1', 'GroundedAreaScaled1',
+               'FloatingArea1', 'FloatingAreaScaled1',
+               'TotalSmb1', 'TotalSmbScaled1',
+               'TotalFloatingBmb1', 'TotalFloatingBmbScaled1',
+               'Vx2', 'Vy2', 'Vel2', 'Pressure2',
+               'Bed2', 'Surface2', 'Thickness2',
+               'IceVolume2', 'IceVolumeScaled2',
+               'GroundedArea2', 'GroundedAreaScaled2',
+               'FloatingArea2', 'FloatingAreaScaled2',
+               'TotalSmb2', 'TotalSmbScaled2',
+               'TotalFloatingBmb2', 'TotalFloatingBmbScaled2']
+field_tolerances = [1e-12, 2e-12, 2e-12, 1e-13,
+                    1e-13, 1e-13, 1e-13,
+                    1e-13, 1e-13,
+                    1e-13, 1e-13,
+                    1e-12, 1e-12,
+                    1e-12, 1e-13,
+                    1e-13, 1e-13,
+                    1e-13, 1e-13, 1e-13, 1e-13,
+                    1e-13, 1e-13, 1e-13,
+                    1e-13, 1e-13,
+                    1e-13, 1e-13,
+                    1e-13, 1e-13,
+                    1e-13, 1e-13,
+                    1e-13, 1e-13]
+field_values = [md.results.TransientSolution[0].Vx,
+                md.results.TransientSolution[0].Vy,
+                md.results.TransientSolution[0].Vel,
+                md.results.TransientSolution[0].Pressure,
+                md.results.TransientSolution[0].Base,
+                md.results.TransientSolution[0].Surface,
+                md.results.TransientSolution[0].Thickness,
+                md.results.TransientSolution[0].IceVolume,
+                md.results.TransientSolution[0].IceVolumeScaled,
+                md.results.TransientSolution[0].GroundedArea,
+                md.results.TransientSolution[0].GroundedAreaScaled,
+                md.results.TransientSolution[0].FloatingArea,
+                md.results.TransientSolution[0].FloatingAreaScaled,
+                md.results.TransientSolution[0].TotalSmb,
+                md.results.TransientSolution[0].TotalSmbScaled,
+                md.results.TransientSolution[0].TotalFloatingBmb,
+                md.results.TransientSolution[0].TotalFloatingBmbScaled,
+                md.results.TransientSolution[1].Vx,
+                md.results.TransientSolution[1].Vy,
+                md.results.TransientSolution[1].Vel,
+                md.results.TransientSolution[1].Pressure,
+                md.results.TransientSolution[1].Base,
+                md.results.TransientSolution[1].Surface,
+                md.results.TransientSolution[1].Thickness,
+                md.results.TransientSolution[1].IceVolume,
+                md.results.TransientSolution[1].IceVolumeScaled,
+                md.results.TransientSolution[1].GroundedArea,
+                md.results.TransientSolution[1].GroundedAreaScaled,
+                md.results.TransientSolution[1].FloatingArea,
+                md.results.TransientSolution[1].FloatingAreaScaled,
+                md.results.TransientSolution[1].TotalSmb,
+                md.results.TransientSolution[1].TotalSmbScaled,
+                md.results.TransientSolution[1].TotalFloatingBmb,
+                md.results.TransientSolution[1].TotalFloatingBmbScaled]
Index: /issm/trunk-jpl/test/NightlyRun/test810.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test810.m	(revision 26440)
+++ /issm/trunk-jpl/test/NightlyRun/test810.m	(revision 26440)
@@ -0,0 +1,48 @@
+%Test Name: ValleyGlacierLevelsetMLHO2d
+md=triangle(model(),'../Exp/Square.exp',50000);
+md=setmask(md,'','');
+md=parameterize(md,'../Par/ValleyGlacierShelf.par');
+md=setflowequation(md,'MLHO','all');
+md.levelset.stabilization=2;
+md.cluster=generic('name',oshostname(),'np',3);
+
+%Transient;
+md.transient.isstressbalance=1;
+md.transient.ismovingfront=1;
+md.transient.ismasstransport=1;
+md.transient.issmb=1;
+md.transient.isthermal=0;
+md.transient.isgroundingline=1;
+
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names     ={'Vx1','Vy1','Vel1','Pressure1','Thickness1','Surface1','MaskIceLevelset1',...
+		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2',...
+		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3'};
+field_tolerances={1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,...
+		1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,...
+		1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12};
+field_values={...
+	md.results.TransientSolution(1).Vx,...
+	md.results.TransientSolution(1).Vy,...
+	md.results.TransientSolution(1).Vel,...
+	md.results.TransientSolution(1).Pressure,...
+	md.results.TransientSolution(1).Thickness,...
+	md.results.TransientSolution(1).Surface,...
+	md.results.TransientSolution(1).MaskIceLevelset,...
+	md.results.TransientSolution(2).Vx,...
+	md.results.TransientSolution(2).Vy,...
+	md.results.TransientSolution(2).Vel,...
+	md.results.TransientSolution(2).Pressure,...
+	md.results.TransientSolution(2).Thickness,...
+	md.results.TransientSolution(2).Surface,...
+	md.results.TransientSolution(2).MaskIceLevelset,...
+	md.results.TransientSolution(3).Vx,...
+	md.results.TransientSolution(3).Vy,...
+	md.results.TransientSolution(3).Vel,...
+	md.results.TransientSolution(3).Pressure,...
+	md.results.TransientSolution(3).Thickness,...
+	md.results.TransientSolution(3).Surface,...
+	md.results.TransientSolution(3).MaskIceLevelset,...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test810.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test810.py	(revision 26440)
+++ /issm/trunk-jpl/test/NightlyRun/test810.py	(revision 26440)
@@ -0,0 +1,54 @@
+#Test Name: ValleyGlacierLevelsetMLHO2d
+from model import *
+from socket import gethostname
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+
+md = triangle(model(), '../Exp/Square.exp', 50000)
+md = setmask(md, '', '')
+md = parameterize(md, '../Par/ValleyGlacierShelf.py')
+md.levelset.stabilization = 2
+md = setflowequation(md, 'MLHO', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+
+#Transient
+md.transient.isstressbalance = True
+md.transient.ismovingfront = True
+md.transient.ismasstransport = True
+md.transient.issmb = True
+md.transient.isthermal = False
+md.transient.isgroundingline = True
+
+md = solve(md, 'Transient')
+
+#Fields and tolerances to track changes
+field_names = ['Vx1', 'Vy1', 'Vel1', 'Pressure1', 'Thickness1', 'Surface1', 'MaskIceLevelset1',
+               'Vx2', 'Vy2', 'Vel2', 'Pressure2', 'Thickness2', 'Surface2', 'MaskIceLevelset2',
+               'Vx3', 'Vy3', 'Vel3', 'Pressure3', 'Thickness3', 'Surface3', 'MaskIceLevelset3']
+field_tolerances = [1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12,
+                    1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12,
+                    1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12]
+field_values = [md.results.TransientSolution[0].Vx,
+                md.results.TransientSolution[0].Vy,
+                md.results.TransientSolution[0].Vel,
+                md.results.TransientSolution[0].Pressure,
+                md.results.TransientSolution[0].Thickness,
+                md.results.TransientSolution[0].Surface,
+                md.results.TransientSolution[0].MaskIceLevelset,
+                md.results.TransientSolution[1].Vx,
+                md.results.TransientSolution[1].Vy,
+                md.results.TransientSolution[1].Vel,
+                md.results.TransientSolution[1].Pressure,
+                md.results.TransientSolution[1].Thickness,
+                md.results.TransientSolution[1].Surface,
+                md.results.TransientSolution[1].MaskIceLevelset,
+                md.results.TransientSolution[2].Vx,
+                md.results.TransientSolution[2].Vy,
+                md.results.TransientSolution[2].Vel,
+                md.results.TransientSolution[2].Pressure,
+                md.results.TransientSolution[2].Thickness,
+                md.results.TransientSolution[2].Surface,
+                md.results.TransientSolution[2].MaskIceLevelset]
Index: /issm/trunk-jpl/test/NightlyRun/test811.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test811.m	(revision 26440)
+++ /issm/trunk-jpl/test/NightlyRun/test811.m	(revision 26440)
@@ -0,0 +1,51 @@
+%Test Name: ValleyGlacierLevelsetCalvingMLHO2d
+md=triangle(model(),'../Exp/Square.exp',50000);
+md=setmask(md,'','');
+md=parameterize(md,'../Par/ValleyGlacierShelf.par');
+md=setflowequation(md,'MLHO','all');
+md.cluster=generic('name',oshostname(),'np',3);
+
+%Transient
+md.transient.isstressbalance=1;
+md.transient.ismasstransport=1;
+md.transient.issmb=1;
+md.transient.isthermal=0;
+md.transient.isgroundingline=1;
+md.transient.ismovingfront=1;
+
+md.calving.calvingrate=1000.*ones(md.mesh.numberofvertices,1);
+md.frontalforcings.meltingrate=zeros(md.mesh.numberofvertices,1);
+md.levelset.migration_max = 1e10;
+
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names     ={'Vx1','Vy1','Vel1','Pressure1','Thickness1','Surface1','MaskIceLevelset1',...
+		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2',...
+		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3'};
+field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+		2e-13,2e-13,2e-13,1e-13,1e-13,1e-13,1e-13,...
+		2e-13,2e-13,2e-13,1e-13,1e-13,1e-13,1e-13};
+field_values={...
+	md.results.TransientSolution(1).Vx,...
+	md.results.TransientSolution(1).Vy,...
+	md.results.TransientSolution(1).Vel,...
+	md.results.TransientSolution(1).Pressure,...
+	md.results.TransientSolution(1).Thickness,...
+	md.results.TransientSolution(1).Surface,...
+	md.results.TransientSolution(1).MaskIceLevelset,...
+	md.results.TransientSolution(2).Vx,...
+	md.results.TransientSolution(2).Vy,...
+	md.results.TransientSolution(2).Vel,...
+	md.results.TransientSolution(2).Pressure,...
+	md.results.TransientSolution(2).Thickness,...
+	md.results.TransientSolution(2).Surface,...
+	md.results.TransientSolution(2).MaskIceLevelset,...
+	md.results.TransientSolution(3).Vx,...
+	md.results.TransientSolution(3).Vy,...
+	md.results.TransientSolution(3).Vel,...
+	md.results.TransientSolution(3).Pressure,...
+	md.results.TransientSolution(3).Thickness,...
+	md.results.TransientSolution(3).Surface,...
+	md.results.TransientSolution(3).MaskIceLevelset,...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test811.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test811.py	(revision 26440)
+++ /issm/trunk-jpl/test/NightlyRun/test811.py	(revision 26440)
@@ -0,0 +1,59 @@
+#Test Name: ValleyGlacierLevelsetCalvingMLHO2d
+import numpy as np
+from MatlabFuncs import oshostname
+from model import *
+from parameterize import *
+from setflowequation import *
+from setmask import *
+from solve import *
+from triangle import *
+
+
+md = triangle(model(), '../Exp/Square.exp', 50000)
+md = setmask(md, '', '')
+md = parameterize(md, '../Par/ValleyGlacierShelf.py')
+md = setflowequation(md, 'MLHO', 'all')
+md.cluster = generic('name', oshostname(), 'np', 3)
+
+#Transient
+md.transient.isstressbalance = True
+md.transient.ismasstransport = True
+md.transient.issmb = True
+md.transient.isthermal = False
+md.transient.isgroundingline = True
+md.transient.ismovingfront = True
+
+md.calving.calvingrate = 1000. * np.ones((md.mesh.numberofvertices))
+md.frontalforcings.meltingrate = np.zeros((md.mesh.numberofvertices))
+md.levelset.migration_max = 1e10
+
+md = solve(md, 'Transient')
+
+#Fields and tolerances to track changes
+field_names = ['Vx1', 'Vy1', 'Vel1', 'Pressure1', 'Thickness1', 'Surface1', 'MaskIceLevelset1',
+               'Vx2', 'Vy2', 'Vel2', 'Pressure2', 'Thickness2', 'Surface2', 'MaskIceLevelset2',
+               'Vx3', 'Vy3', 'Vel3', 'Pressure3', 'Thickness3', 'Surface3', 'MaskIceLevelset3']
+field_tolerances = [1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13,
+                    2e-13, 2e-13, 2e-13, 1e-13, 1e-13, 1e-13, 1e-13,
+                    2e-13, 2e-13, 2e-13, 1e-13, 1e-13, 1e-13, 1e-13]
+field_values = [md.results.TransientSolution[0].Vx,
+                md.results.TransientSolution[0].Vy,
+                md.results.TransientSolution[0].Vel,
+                md.results.TransientSolution[0].Pressure,
+                md.results.TransientSolution[0].Thickness,
+                md.results.TransientSolution[0].Surface,
+                md.results.TransientSolution[0].MaskIceLevelset,
+                md.results.TransientSolution[1].Vx,
+                md.results.TransientSolution[1].Vy,
+                md.results.TransientSolution[1].Vel,
+                md.results.TransientSolution[1].Pressure,
+                md.results.TransientSolution[1].Thickness,
+                md.results.TransientSolution[1].Surface,
+                md.results.TransientSolution[1].MaskIceLevelset,
+                md.results.TransientSolution[2].Vx,
+                md.results.TransientSolution[2].Vy,
+                md.results.TransientSolution[2].Vel,
+                md.results.TransientSolution[2].Pressure,
+                md.results.TransientSolution[2].Thickness,
+                md.results.TransientSolution[2].Surface,
+                md.results.TransientSolution[2].MaskIceLevelset]
Index: /issm/trunk-jpl/test/NightlyRun/test812.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test812.m	(revision 26440)
+++ /issm/trunk-jpl/test/NightlyRun/test812.m	(revision 26440)
@@ -0,0 +1,77 @@
+%Test Name: SquareShelfLevelsetCalvingMLHO2dLevermann
+md=triangle(model(),'../Exp/Square.exp',50000.);
+md=setmask(md,'all','');
+md=parameterize(md,'../Par/SquareShelf.par');
+md=setflowequation(md,'MLHO','all');
+md.cluster=generic('name',oshostname(),'np',3);
+
+%Do not kill ice bergs as all is floating
+md.levelset.kill_icebergs=0;
+
+x = md.mesh.x;
+xmin = min(x);
+xmax = max(x);
+Lx = (xmax-xmin);
+alpha = 2./3.;
+md.mask.ice_levelset = ((x - alpha*Lx)>0) - ((x - alpha*Lx)<0);
+
+md.timestepping.time_step=10;
+md.timestepping.final_time=30;
+
+%Transient
+md.transient.isstressbalance=1;
+md.transient.ismasstransport=1;
+md.transient.issmb=1;
+md.transient.isthermal=0;
+md.transient.isgroundingline=0;
+md.transient.ismovingfront=1;
+
+md.calving=calvinglevermann();
+md.calving.coeff=4.89e13*ones(md.mesh.numberofvertices,1);
+md.frontalforcings.meltingrate=zeros(md.mesh.numberofvertices,1);
+md.levelset.spclevelset=NaN(md.mesh.numberofvertices,1);
+md.levelset.migration_max = 1e8;
+
+md.transient.requested_outputs={'default','StrainRateparallel','StrainRateperpendicular','Calvingratex','Calvingratey','CalvingCalvingrate'};
+
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names     ={'Vx1','Vy1','Vel1','Pressure1','Thickness1','Surface1','MaskIceLevelset1','StrainRateparallel1','StrainRateperpendicular1','CalvingCalvingrate1'...
+		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','StrainRateparallel2','StrainRateperpendicular2','CalvingCalvingrate2'...
+		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','StrainRateparallel3','StrainRateperpendicular3','CalvingCalvingrate3'};
+field_tolerances={1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,...
+		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,...
+		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11,5e-11,5e-11,5e-11};
+field_values={...
+	md.results.TransientSolution(1).Vx,...
+	md.results.TransientSolution(1).Vy,...
+	md.results.TransientSolution(1).Vel,...
+	md.results.TransientSolution(1).Pressure,...
+	md.results.TransientSolution(1).Thickness,...
+	md.results.TransientSolution(1).Surface,...
+	md.results.TransientSolution(1).MaskIceLevelset,...
+	md.results.TransientSolution(1).StrainRateparallel,...
+	md.results.TransientSolution(1).StrainRateperpendicular,...
+	md.results.TransientSolution(1).CalvingCalvingrate,...
+	md.results.TransientSolution(2).Vx,...
+	md.results.TransientSolution(2).Vy,...
+	md.results.TransientSolution(2).Vel,...
+	md.results.TransientSolution(2).Pressure,...
+	md.results.TransientSolution(2).Thickness,...
+	md.results.TransientSolution(2).Surface,...
+	md.results.TransientSolution(2).MaskIceLevelset,...
+	md.results.TransientSolution(2).StrainRateparallel,...
+	md.results.TransientSolution(2).StrainRateperpendicular,...
+	md.results.TransientSolution(2).CalvingCalvingrate,...
+	md.results.TransientSolution(3).Vx,...
+	md.results.TransientSolution(3).Vy,...
+	md.results.TransientSolution(3).Vel,...
+	md.results.TransientSolution(3).Pressure,...
+	md.results.TransientSolution(3).Thickness,...
+	md.results.TransientSolution(3).Surface,...
+	md.results.TransientSolution(3).MaskIceLevelset,...
+	md.results.TransientSolution(3).StrainRateparallel,...
+	md.results.TransientSolution(3).StrainRateperpendicular,...
+	md.results.TransientSolution(3).CalvingCalvingrate,...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test812.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test812.py	(revision 26440)
+++ /issm/trunk-jpl/test/NightlyRun/test812.py	(revision 26440)
@@ -0,0 +1,84 @@
+#Test Name: SquareShelfLevelsetCalvingMLHO2dLevermann
+import numpy as np
+from MatlabFuncs import oshostname
+from model import *
+from parameterize import *
+from setflowequation import *
+from setmask import *
+from solve import *
+from triangle import *
+
+md = triangle(model(), '../Exp/Square.exp', 50000.)
+md = setmask(md, 'all', '')
+md = parameterize(md, '../Par/SquareShelf.py')
+md = setflowequation(md, 'MLHO', 'all')
+md.cluster = generic('name', oshostname(), 'np', 3)
+
+x = md.mesh.x
+xmin = min(x)
+xmax = max(x)
+Lx = (xmax - xmin)
+alpha = 2. / 3.
+md.mask.ice_levelset = np.float_((x - alpha * Lx) > 0) - np.float_((x - alpha * Lx) < 0)
+
+#Do not kill ice bergs as all is floating
+md.levelset.kill_icebergs = 0
+
+md.timestepping.time_step = 10
+md.timestepping.final_time = 30
+
+#Transient
+md.transient.isstressbalance = True
+md.transient.ismasstransport = True
+md.transient.issmb = True
+md.transient.isthermal = False
+md.transient.isgroundingline = False
+md.transient.ismovingfront = True
+
+md.calving = calvinglevermann()
+md.calving.coeff = 4.89e13 * np.ones((md.mesh.numberofvertices))
+md.frontalforcings.meltingrate = np.zeros((md.mesh.numberofvertices))
+md.levelset.spclevelset = np.nan * np.ones((md.mesh.numberofvertices))
+md.levelset.migration_max = 1e8
+
+md.transient.requested_outputs = ['default', 'StrainRateparallel', 'StrainRateperpendicular', 'Calvingratex', 'Calvingratey', 'CalvingCalvingrate']
+
+md = solve(md, 'Transient')
+
+#Fields and tolerances to track changes
+field_names = ['Vx1', 'Vy1', 'Vel1', 'Pressure1', 'Thickness1', 'Surface1', 'MaskIceLevelset1', 'StrainRateparallel1', 'StrainRateperpendicular1', 'CalvingCalvingrate1',
+               'Vx2', 'Vy2', 'Vel2', 'Pressure2', 'Thickness2', 'Surface2', 'MaskIceLevelset2', 'StrainRateparallel2', 'StrainRateperpendicular2', 'CalvingCalvingrate2',
+               'Vx3', 'Vy3', 'Vel3', 'Pressure3', 'Thickness3', 'Surface3', 'MaskIceLevelset3', 'StrainRateparallel3', 'StrainRateperpendicular3', 'CalvingCalvingrate3']
+field_tolerances = [1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11,
+                    2e-11, 2e-11, 2e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11,
+                    2e-11, 2e-11, 2e-11, 1e-11, 1e-11, 1e-11, 1e-11, 5e-11, 5e-11, 1e-11]
+field_values = [md.results.TransientSolution[0].Vx,
+                md.results.TransientSolution[0].Vy,
+                md.results.TransientSolution[0].Vel,
+                md.results.TransientSolution[0].Pressure,
+                md.results.TransientSolution[0].Thickness,
+                md.results.TransientSolution[0].Surface,
+                md.results.TransientSolution[0].MaskIceLevelset,
+                md.results.TransientSolution[0].StrainRateparallel,
+                md.results.TransientSolution[0].StrainRateperpendicular,
+                md.results.TransientSolution[0].CalvingCalvingrate,
+                md.results.TransientSolution[1].Vx,
+                md.results.TransientSolution[1].Vy,
+                md.results.TransientSolution[1].Vel,
+                md.results.TransientSolution[1].Pressure,
+                md.results.TransientSolution[1].Thickness,
+                md.results.TransientSolution[1].Surface,
+                md.results.TransientSolution[1].MaskIceLevelset,
+                md.results.TransientSolution[1].StrainRateparallel,
+                md.results.TransientSolution[1].StrainRateperpendicular,
+                md.results.TransientSolution[1].CalvingCalvingrate,
+                md.results.TransientSolution[2].Vx,
+                md.results.TransientSolution[2].Vy,
+                md.results.TransientSolution[2].Vel,
+                md.results.TransientSolution[2].Pressure,
+                md.results.TransientSolution[2].Thickness,
+                md.results.TransientSolution[2].Surface,
+                md.results.TransientSolution[2].MaskIceLevelset,
+                md.results.TransientSolution[2].StrainRateparallel,
+                md.results.TransientSolution[2].StrainRateperpendicular,
+                md.results.TransientSolution[2].CalvingCalvingrate]
