Index: /issm/trunk-jpl/test/NightlyRun/test127.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test127.m	(revision 26437)
+++ /issm/trunk-jpl/test/NightlyRun/test127.m	(revision 26437)
@@ -0,0 +1,50 @@
+%Test Name: SquareShelfConstrainedStressMLHO2d
+md=triangle(model(),'../Exp/Square.exp',50000.);
+md=setmask(md,'all','');
+md=parameterize(md,'../Par/SquareShelfConstrained.par');
+md=setflowequation(md,'MLHO','all');
+md.cluster=generic('name',oshostname(),'np',2);
+
+%output
+%FIXME compute the stress components for MLHO
+md.stressbalance.requested_outputs={'default','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase','MassFlux1','MassFlux2','MassFlux3','MassFlux4','MassFlux5','MassFlux6'};
+%md.stressbalance.requested_outputs={'default','DeviatoricStressxx','DeviatoricStressyy','DeviatoricStressxy','MassFlux1','MassFlux2','MassFlux3','MassFlux4','MassFlux5','MassFlux6'};
+md.outputdefinition.definitions={...
+	massfluxatgate('name','MassFlux1','profilename',['../Exp/MassFlux1.exp'],'definitionstring','Outputdefinition1'),...
+	massfluxatgate('name','MassFlux2','profilename',['../Exp/MassFlux2.exp'],'definitionstring','Outputdefinition2'),...
+	massfluxatgate('name','MassFlux3','profilename',['../Exp/MassFlux3.exp'],'definitionstring','Outputdefinition3'),...
+	massfluxatgate('name','MassFlux4','profilename',['../Exp/MassFlux4.exp'],'definitionstring','Outputdefinition4'),...
+	massfluxatgate('name','MassFlux5','profilename',['../Exp/MassFlux5.exp'],'definitionstring','Outputdefinition5'),...
+	massfluxatgate('name','MassFlux6','profilename',['../Exp/MassFlux6.exp'],'definitionstring','Outputdefinition6')...
+	};
+
+md=solve(md,'Stressbalance');
+
+%Fields and tolerances to track changes
+field_names     ={'Vx','Vy','Vel','Pressure','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase',...
+	'MassFlux1','MassFlux2','MassFlux3','MassFlux4','MassFlux5','MassFlux6'};
+	%'DeviatoricStressxx','DeviatoricStressyy','DeviatoricStressxy',...
+field_tolerances={3e-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 };
+	%$2e-13,1e-13,2e-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),...
+	(md.results.StressbalanceSolution.MassFlux1),...
+	(md.results.StressbalanceSolution.MassFlux2),...
+	(md.results.StressbalanceSolution.MassFlux3),...
+	(md.results.StressbalanceSolution.MassFlux4),...
+	(md.results.StressbalanceSolution.MassFlux5),...
+	(md.results.StressbalanceSolution.MassFlux6)...
+	};
+	%(md.results.StressbalanceSolution.DeviatoricStressxx),...
+	%(md.results.StressbalanceSolution.DeviatoricStressyy),...
+	%(md.results.StressbalanceSolution.DeviatoricStressxy),...
Index: /issm/trunk-jpl/test/NightlyRun/test127.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test127.py	(revision 26437)
+++ /issm/trunk-jpl/test/NightlyRun/test127.py	(revision 26437)
@@ -0,0 +1,56 @@
+#Test Name: SquareShelfConstrainedStressMLHO2d
+from model import *
+from socket import gethostname
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+from massfluxatgate import massfluxatgate
+from generic import generic
+
+md = triangle(model(), '../Exp/Square.exp', 50000)
+md = setmask(md, 'all', '')
+md = parameterize(md, '../Par/SquareShelfConstrained.py')
+md = setflowequation(md, 'MLHO', 'all')
+md.cluster = generic('name', gethostname(), 'np', 2)
+#outputs
+#FIXME compute the stress components for MLHO
+md.stressbalance.requested_outputs = ['default','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase', 'MassFlux1', 'MassFlux2', 'MassFlux3', 'MassFlux4', 'MassFlux5', 'MassFlux6']
+#md.stressbalance.requested_outputs = ['default', 'DeviatoricStressxx', 'DeviatoricStressyy', 'DeviatoricStressxy', 'MassFlux1', 'MassFlux2', 'MassFlux3', 'MassFlux4', 'MassFlux5', 'MassFlux6']
+md.outputdefinition.definitions = [massfluxatgate('name', 'MassFlux1', 'profilename', '../Exp/MassFlux1.exp', 'definitionstring', 'Outputdefinition1'),
+                                   massfluxatgate('name', 'MassFlux2', 'profilename', '../Exp/MassFlux2.exp', 'definitionstring', 'Outputdefinition2'),
+                                   massfluxatgate('name', 'MassFlux3', 'profilename', '../Exp/MassFlux3.exp', 'definitionstring', 'Outputdefinition3'),
+                                   massfluxatgate('name', 'MassFlux4', 'profilename', '../Exp/MassFlux4.exp', 'definitionstring', 'Outputdefinition4'),
+                                   massfluxatgate('name', 'MassFlux5', 'profilename', '../Exp/MassFlux5.exp', 'definitionstring', 'Outputdefinition5'),
+                                   massfluxatgate('name', 'MassFlux6', 'profilename', '../Exp/MassFlux6.exp', 'definitionstring', 'Outputdefinition6')]
+
+md = solve(md, 'Stressbalance')
+
+#Fields and tolerances to track changes
+field_names = ['Vx', 'Vy', 'Vel', 'Pressure','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase',
+               'MassFlux1', 'MassFlux2', 'MassFlux3', 'MassFlux4', 'MassFlux5', 'MassFlux6']
+               #'DeviatoricStressxx', 'DeviatoricStressyy', 'DeviatoricStressxy',
+field_tolerances = [3e-13, 1e-13, 1e-13, 1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
+                    2e-13, 1e-13, 2e-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,
+                md.results.StressbalanceSolution.MassFlux1,
+                md.results.StressbalanceSolution.MassFlux2,
+                md.results.StressbalanceSolution.MassFlux3,
+                md.results.StressbalanceSolution.MassFlux4,
+                md.results.StressbalanceSolution.MassFlux5,
+                md.results.StressbalanceSolution.MassFlux6]
+                #md.results.StressbalanceSolution.DeviatoricStressxx,
+                #md.results.StressbalanceSolution.DeviatoricStressyy,
+                #md.results.StressbalanceSolution.DeviatoricStressxy,
Index: /issm/trunk-jpl/test/NightlyRun/test128.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test128.m	(revision 26437)
+++ /issm/trunk-jpl/test/NightlyRun/test128.m	(revision 26437)
@@ -0,0 +1,61 @@
+%Test Name: SquareShelfConstrainedTranMLHO2d
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'all','');
+md=parameterize(md,'../Par/SquareShelfConstrained.par');
+md=setflowequation(md,'MLHO','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.transient.requested_outputs={'IceVolume','VxShear','VyShear','VxBase','VyBase','VxSurface','VySurface'};
+
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names     ={'Vx1','Vy1','Vel1','Pressure1','VxShear1','VyShear1','VxBase1','VyBase1','VxSurface1','VySurface1','Bed1','Surface1','Thickness1','Volume1',...
+						'Vx2','Vy2','Vel2','Pressure2','VxShear2','VyShear2','VxBase2','VyBase2','VxSurface2','VySurface2','Bed2','Surface2','Thickness2','Volume2',...
+						'Vx3','Vy3','Vel3','Pressure3','VxShear3','VyShear3','VxBase3','VyBase3','VxSurface3','VySurface3','Bed3','Surface3','Thickness3','Volume3'};
+field_tolerances={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,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,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).VxShear),...
+	(md.results.TransientSolution(1).VyShear),...
+	(md.results.TransientSolution(1).VxBase),...
+	(md.results.TransientSolution(1).VyBase),...
+	(md.results.TransientSolution(1).VxSurface),...
+	(md.results.TransientSolution(1).VySurface),...
+	(md.results.TransientSolution(1).Base),...
+	(md.results.TransientSolution(1).Surface),...
+	(md.results.TransientSolution(1).Thickness),...
+	(md.results.TransientSolution(1).IceVolume),...
+	(md.results.TransientSolution(2).Vx),...
+	(md.results.TransientSolution(2).Vy),...
+	(md.results.TransientSolution(2).Vel),...
+	(md.results.TransientSolution(2).Pressure),...
+	(md.results.TransientSolution(2).VxShear),...
+	(md.results.TransientSolution(2).VyShear),...
+	(md.results.TransientSolution(2).VxBase),...
+	(md.results.TransientSolution(2).VyBase),...
+	(md.results.TransientSolution(2).VxSurface),...
+	(md.results.TransientSolution(2).VySurface),...
+	(md.results.TransientSolution(2).Base),...
+	(md.results.TransientSolution(2).Surface),...
+	(md.results.TransientSolution(2).Thickness),...
+	(md.results.TransientSolution(2).IceVolume),...
+	(md.results.TransientSolution(3).Vx),...
+	(md.results.TransientSolution(3).Vy),...
+	(md.results.TransientSolution(3).Vel),...
+	(md.results.TransientSolution(3).Pressure),...
+	(md.results.TransientSolution(3).VxShear),...
+	(md.results.TransientSolution(3).VyShear),...
+	(md.results.TransientSolution(3).VxBase),...
+	(md.results.TransientSolution(3).VyBase),...
+	(md.results.TransientSolution(3).VxSurface),...
+	(md.results.TransientSolution(3).VySurface),...
+	(md.results.TransientSolution(3).Base),...
+	(md.results.TransientSolution(3).Surface),...
+	(md.results.TransientSolution(3).Thickness),...
+	(md.results.TransientSolution(3).IceVolume),...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test128.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test128.py	(revision 26437)
+++ /issm/trunk-jpl/test/NightlyRun/test128.py	(revision 26437)
@@ -0,0 +1,68 @@
+#Test Name: SquareShelfConstrainedTranMLHO2d
+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', 150000)
+md = setmask(md, 'all', '')
+md = parameterize(md, '../Par/SquareShelfConstrained.py')
+md = setflowequation(md, 'MLHO', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+md.transient.requested_outputs = ['IceVolume','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase']
+
+md = solve(md, 'Transient')
+
+#Fields and tolerances to track changes
+field_names = ['Vx1', 'Vy1', 'Vel1', 'Pressure1', 'VxShear1', 'VyShear1', 'VxBase1', 'VyBase1', 'VxSurface1', 'VySurface1', 'Bed1', 'Surface1', 'Thickness1', 'Volume1', 
+            'Vx2', 'Vy2', 'Vel2', 'Pressure2', 'VxShear2', 'VyShear2', 'VxBase2', 'VyBase2', 'VxSurface2', 'VySurface2', 'Bed2', 'Surface2', 'Thickness2', 'Volume2', 
+            'Vx3', 'Vy3', 'Vel3', 'Pressure3', 'VxShear3', 'VyShear3', 'VxBase3', 'VyBase3', 'VxSurface3', 'VySurface3', 'Bed3', 'Surface3', 'Thickness3', 'Volume3']
+field_tolerances = [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, 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, 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].VxShear,
+                md.results.TransientSolution[0].VyShear,
+                md.results.TransientSolution[0].VxBase,
+                md.results.TransientSolution[0].VyBase,
+                md.results.TransientSolution[0].VxSurface,
+                md.results.TransientSolution[0].VySurface,
+                md.results.TransientSolution[0].Base,
+                md.results.TransientSolution[0].Surface,
+                md.results.TransientSolution[0].Thickness,
+                md.results.TransientSolution[0].IceVolume,
+                md.results.TransientSolution[1].Vx,
+                md.results.TransientSolution[1].Vy,
+                md.results.TransientSolution[1].Vel,
+                md.results.TransientSolution[1].Pressure,
+                md.results.TransientSolution[1].VxShear,
+                md.results.TransientSolution[1].VyShear,
+                md.results.TransientSolution[1].VxBase,
+                md.results.TransientSolution[1].VyBase,
+                md.results.TransientSolution[1].VxSurface,
+                md.results.TransientSolution[1].VySurface,
+                md.results.TransientSolution[1].Base,
+                md.results.TransientSolution[1].Surface,
+                md.results.TransientSolution[1].Thickness,
+                md.results.TransientSolution[1].IceVolume,
+                md.results.TransientSolution[2].Vx,
+                md.results.TransientSolution[2].Vy,
+                md.results.TransientSolution[2].Vel,
+                md.results.TransientSolution[2].Pressure,
+                md.results.TransientSolution[2].VxShear,
+                md.results.TransientSolution[2].VyShear,
+                md.results.TransientSolution[2].VxBase,
+                md.results.TransientSolution[2].VyBase,
+                md.results.TransientSolution[2].VxSurface,
+                md.results.TransientSolution[2].VySurface,
+                md.results.TransientSolution[2].Base,
+                md.results.TransientSolution[2].Surface,
+                md.results.TransientSolution[2].Thickness,
+                md.results.TransientSolution[2].IceVolume]
Index: /issm/trunk-jpl/test/NightlyRun/test129.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test129.m	(revision 26437)
+++ /issm/trunk-jpl/test/NightlyRun/test129.m	(revision 26437)
@@ -0,0 +1,69 @@
+%Test Name: SquareShelfConstrainedRestartTranMLHO2d
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'all','');
+md=parameterize(md,'../Par/SquareShelfConstrained.par');
+md=setflowequation(md,'MLHO','all');
+md.cluster=generic('name',oshostname(),'np',1);
+md.transient.requested_outputs={'IceVolume','TotalSmb','VxShear','VyShear','VxBase','VyBase','VxSurface','VySurface'};
+
+md.verbose=verbose('solution',true);
+md.settings.checkpoint_frequency=4;
+
+% time steps and resolution
+md.timestepping.final_time=19;
+md.settings.output_frequency=2;
+
+md=solve(md,'Transient');
+md2=solve(md,'Transient','restart',1);
+
+%Fields and tolerances to track changes
+field_names     ={'Vx1','Vy1','Vel1','VxShear1','VyShear1','VxBase1','VyBase1','VxSurface1','VySurface1','TotalSmb1','Bed1','Surface1','Thickness1','Volume1',...
+						'Vx2','Vy2','Vel2','VxShear2','VyShear2','VxBase2','VyBase2','VxSurface2','VySurface2','TotalSmb2','Bed2','Surface2','Thickness2','Volume2',...
+						'Vx3','Vy3','Vel3','VxShear3','VyShear3','VxBase3','VyBase3','VxSurface3','VySurface3','TotalSmb3','Bed3','Surface3','Thickness3','Volume3'};
+field_tolerances={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,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,1e-13,1e-13};
+field_values={...
+	(md.results.TransientSolution(7).Vx)-(md2.results.TransientSolution(7).Vx),...
+	(md.results.TransientSolution(7).Vy)-(md2.results.TransientSolution(7).Vy),...
+	(md.results.TransientSolution(7).Vel)-(md2.results.TransientSolution(7).Vel),...
+	(md.results.TransientSolution(7).VxShear)-(md2.results.TransientSolution(7).VxShear),...
+	(md.results.TransientSolution(7).VyShear)-(md2.results.TransientSolution(7).VyShear),...
+	(md.results.TransientSolution(7).VxBase)-(md2.results.TransientSolution(7).VxBase),...
+	(md.results.TransientSolution(7).VyBase)-(md2.results.TransientSolution(7).VyBase),...
+	(md.results.TransientSolution(7).VxSurface)-(md2.results.TransientSolution(7).VxSurface),...
+	(md.results.TransientSolution(7).VySurface)-(md2.results.TransientSolution(7).VySurface),...
+	(md.results.TransientSolution(7).TotalSmb)-(md2.results.TransientSolution(7).TotalSmb),...
+	(md.results.TransientSolution(7).Base)-(md2.results.TransientSolution(7).Base),...
+	(md.results.TransientSolution(7).Surface)-(md2.results.TransientSolution(7).Surface),...
+	(md.results.TransientSolution(7).Thickness)-(md2.results.TransientSolution(7).Thickness),...
+	(md.results.TransientSolution(7).IceVolume)-(md2.results.TransientSolution(7).IceVolume),...
+	(md.results.TransientSolution(8).Vx)-(md2.results.TransientSolution(8).Vx),...
+	(md.results.TransientSolution(8).Vy)-(md2.results.TransientSolution(8).Vy),...
+	(md.results.TransientSolution(8).Vel)-(md2.results.TransientSolution(8).Vel),...
+	(md.results.TransientSolution(8).VxShear)-(md2.results.TransientSolution(8).VxShear),...
+	(md.results.TransientSolution(8).VyShear)-(md2.results.TransientSolution(8).VyShear),...
+	(md.results.TransientSolution(8).VxBase)-(md2.results.TransientSolution(8).VxBase),...
+	(md.results.TransientSolution(8).VyBase)-(md2.results.TransientSolution(8).VyBase),...
+	(md.results.TransientSolution(8).VxSurface)-(md2.results.TransientSolution(8).VxSurface),...
+	(md.results.TransientSolution(8).VySurface)-(md2.results.TransientSolution(8).VySurface),...
+	(md.results.TransientSolution(8).TotalSmb)-(md2.results.TransientSolution(8).TotalSmb),...
+	(md.results.TransientSolution(8).Base)-(md2.results.TransientSolution(8).Base),...
+	(md.results.TransientSolution(8).Surface)-(md2.results.TransientSolution(8).Surface),...
+	(md.results.TransientSolution(8).Thickness)-(md2.results.TransientSolution(8).Thickness),...
+	(md.results.TransientSolution(8).IceVolume)-(md2.results.TransientSolution(8).IceVolume),...
+	(md.results.TransientSolution(9).Vx)-(md2.results.TransientSolution(9).Vx),...
+	(md.results.TransientSolution(9).Vy)-(md2.results.TransientSolution(9).Vy),...
+	(md.results.TransientSolution(9).Vel)-(md2.results.TransientSolution(9).Vel),...
+	(md.results.TransientSolution(9).VxShear)-(md2.results.TransientSolution(9).VxShear),...
+	(md.results.TransientSolution(9).VyShear)-(md2.results.TransientSolution(9).VyShear),...
+	(md.results.TransientSolution(9).VxBase)-(md2.results.TransientSolution(9).VxBase),...
+	(md.results.TransientSolution(9).VyBase)-(md2.results.TransientSolution(9).VyBase),...
+	(md.results.TransientSolution(9).VxSurface)-(md2.results.TransientSolution(9).VxSurface),...
+	(md.results.TransientSolution(9).VySurface)-(md2.results.TransientSolution(9).VySurface),...
+	(md.results.TransientSolution(9).TotalSmb)-(md2.results.TransientSolution(9).TotalSmb),...
+	(md.results.TransientSolution(9).Base)-(md2.results.TransientSolution(9).Base),...
+	(md.results.TransientSolution(9).Surface)-(md2.results.TransientSolution(9).Surface),...
+	(md.results.TransientSolution(9).Thickness)-(md2.results.TransientSolution(9).Thickness),...
+	(md.results.TransientSolution(9).IceVolume)-(md2.results.TransientSolution(9).IceVolume),...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test129.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test129.py	(revision 26437)
+++ /issm/trunk-jpl/test/NightlyRun/test129.py	(revision 26437)
@@ -0,0 +1,77 @@
+#Test Name: SquareShelfConstrainedRestartTranMLHO2d
+from model import *
+from socket import gethostname
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+from generic import generic
+import copy
+
+md = triangle(model(), '../Exp/Square.exp', 150000.)
+md = setmask(md, 'all', '')
+md = parameterize(md, '../Par/SquareShelfConstrained.py')
+md = setflowequation(md, 'MLHO', 'all')
+md.cluster = generic('name', gethostname(), 'np', 1)
+md.transient.requested_outputs = ['IceVolume', 'TotalSmb', 'VxShear','VyShear','VxBase','VyBase','VxSurface','VySurface']
+
+md.verbose = verbose('solution', 1)
+md.settings.checkpoint_frequency = 4
+
+# time steps and resolution
+md.timestepping.final_time = 19
+md.settings.output_frequency = 2
+
+md = solve(md, 'Transient')
+md2 = copy.deepcopy(md)
+md = solve(md, 'Transient', 'restart', 1)
+
+#Fields and tolerances to track changes
+field_names = ['Vx1', 'Vy1', 'Vel1', 'VxShear1','VyShear1','VxBase1','VyBase1','VxSurface1','VySurface1', 'TotalSmb1', 'Bed1', 'Surface1', 'Thickness1', 'Volume1', 'Vx2', 'Vy2', 'Vel2', 'VxShear2','VyShear2','VxBase2','VyBase2','VxSurface2','VySurface2','TotalSmb2', 'Bed2', 'Surface2', 'Thickness2', 'Volume2', 'Vx3', 'Vy3', 'Vel3', 'VxShear3','VyShear3','VxBase3','VyBase3','VxSurface3','VySurface3','TotalSmb3', 'Bed3', 'Surface3', 'Thickness3', 'Volume3']
+field_tolerances = [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, 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, 1e-13, 1e-13]
+field_values = [md2.results.TransientSolution[6].Vx - md.results.TransientSolution[6].Vx,
+                md2.results.TransientSolution[6].Vy - md.results.TransientSolution[6].Vy,
+                md2.results.TransientSolution[6].Vel - md.results.TransientSolution[6].Vel,
+                md2.results.TransientSolution[6].VxShear - md.results.TransientSolution[6].VxShear,
+                md2.results.TransientSolution[6].VyShear - md.results.TransientSolution[6].VyShear,
+                md2.results.TransientSolution[6].VxBase - md.results.TransientSolution[6].VxBase,
+                md2.results.TransientSolution[6].VyBase - md.results.TransientSolution[6].VyBase,
+                md2.results.TransientSolution[6].VxSurface - md.results.TransientSolution[6].VxSurface,
+                md2.results.TransientSolution[6].VySurface - md.results.TransientSolution[6].VySurface,
+                md2.results.TransientSolution[6].TotalSmb - md.results.TransientSolution[6].TotalSmb,
+                md2.results.TransientSolution[6].Base - md.results.TransientSolution[6].Base,
+                md2.results.TransientSolution[6].Surface - md.results.TransientSolution[6].Surface,
+                md2.results.TransientSolution[6].Thickness - md.results.TransientSolution[6].Thickness,
+                md2.results.TransientSolution[6].IceVolume - md.results.TransientSolution[6].IceVolume,
+                md2.results.TransientSolution[7].Vx - md.results.TransientSolution[7].Vx,
+                md2.results.TransientSolution[7].Vy - md.results.TransientSolution[7].Vy,
+                md2.results.TransientSolution[7].Vel - md.results.TransientSolution[7].Vel,
+                md2.results.TransientSolution[7].VxShear - md.results.TransientSolution[7].VxShear,
+                md2.results.TransientSolution[7].VyShear - md.results.TransientSolution[7].VyShear,
+                md2.results.TransientSolution[7].VxBase - md.results.TransientSolution[7].VxBase,
+                md2.results.TransientSolution[7].VyBase - md.results.TransientSolution[7].VyBase,
+                md2.results.TransientSolution[7].VxSurface - md.results.TransientSolution[7].VxSurface,
+                md2.results.TransientSolution[7].VySurface - md.results.TransientSolution[7].VySurface,
+                md2.results.TransientSolution[7].TotalSmb - md.results.TransientSolution[7].TotalSmb,
+                md2.results.TransientSolution[7].Base - md.results.TransientSolution[7].Base,
+                md2.results.TransientSolution[7].Surface - md.results.TransientSolution[7].Surface,
+                md2.results.TransientSolution[7].Thickness - md.results.TransientSolution[7].Thickness,
+                md2.results.TransientSolution[7].IceVolume - md.results.TransientSolution[7].IceVolume,
+                md2.results.TransientSolution[8].Vx - md.results.TransientSolution[8].Vx,
+                md2.results.TransientSolution[8].Vy - md.results.TransientSolution[8].Vy,
+                md2.results.TransientSolution[8].Vel - md.results.TransientSolution[8].Vel,
+                md2.results.TransientSolution[8].VxShear - md.results.TransientSolution[8].VxShear,
+                md2.results.TransientSolution[8].VyShear - md.results.TransientSolution[8].VyShear,
+                md2.results.TransientSolution[8].VxBase - md.results.TransientSolution[8].VxBase,
+                md2.results.TransientSolution[8].VyBase - md.results.TransientSolution[8].VyBase,
+                md2.results.TransientSolution[8].VxSurface - md.results.TransientSolution[8].VxSurface,
+                md2.results.TransientSolution[8].VySurface - md.results.TransientSolution[8].VySurface,
+                md2.results.TransientSolution[8].TotalSmb - md.results.TransientSolution[8].TotalSmb,
+                md2.results.TransientSolution[8].Base - md.results.TransientSolution[8].Base,
+                md2.results.TransientSolution[8].Surface - md.results.TransientSolution[8].Surface,
+                md2.results.TransientSolution[8].Thickness - md.results.TransientSolution[8].Thickness,
+                md2.results.TransientSolution[8].IceVolume - md.results.TransientSolution[8].IceVolume]
