Index: /issm/trunk-jpl/test/NightlyRun/test131.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test131.m	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test131.m	(revision 26159)
@@ -0,0 +1,15 @@
+%Test Name: SquareShelfConstrainedMasstransp2dStreamline
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'all','');
+md=parameterize(md,'../Par/SquareShelfConstrained.par');
+md=setflowequation(md,'SSA','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.masstransport.stabilization=2;
+md=solve(md,'Masstransport');
+
+%Fields and tolerances to track changes
+field_names     ={'Thickness'};
+field_tolerances={1e-13};
+field_values={...
+	(md.results.MasstransportSolution.Thickness),...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test131.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test131.py	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test131.py	(revision 26159)
@@ -0,0 +1,24 @@
+#Test Name: SquareShelfConstrainedMasstransp2dStreamline 
+from model import *
+from socket import gethostname
+from triangle import *
+from meshconvert import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+
+
+md = triangle(model(), '../Exp/Square.exp', 150000)
+md = meshconvert(md)
+md = setmask(md, 'all', '')
+md = parameterize(md, '../Par/SquareShelfConstrained.py')
+md = setflowequation(md, 'SSA', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+md.masstransport.stabilization = 2
+md = solve(md, 'Masstransport')
+
+#Fields and tolerances to track changes
+field_names = ['Thickness']
+field_tolerances = [1e-13]
+field_values = [md.results.MasstransportSolution.Thickness]
Index: /issm/trunk-jpl/test/NightlyRun/test132.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test132.m	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test132.m	(revision 26159)
@@ -0,0 +1,15 @@
+%Test Name: SquareShelfConstrainedMasstransp2dFCT
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'all','');
+md=parameterize(md,'../Par/SquareShelfConstrained.par');
+md=setflowequation(md,'SSA','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.masstransport.stabilization=4;
+md=solve(md,'Masstransport');
+
+%Fields and tolerances to track changes
+field_names     ={'Thickness'};
+field_tolerances={1e-13};
+field_values={...
+	(md.results.MasstransportSolution.Thickness),...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test132.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test132.py	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test132.py	(revision 26159)
@@ -0,0 +1,24 @@
+#Test Name: SquareShelfConstrainedMasstransp2dFCT 
+from model import *
+from socket import gethostname
+from triangle import *
+from meshconvert import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+
+
+md = triangle(model(), '../Exp/Square.exp', 150000)
+md = meshconvert(md)
+md = setmask(md, 'all', '')
+md = parameterize(md, '../Par/SquareShelfConstrained.py')
+md = setflowequation(md, 'SSA', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+md.masstransport.stabilization = 4
+md = solve(md, 'Masstransport')
+
+#Fields and tolerances to track changes
+field_names = ['Thickness']
+field_tolerances = [1e-13]
+field_values = [md.results.MasstransportSolution.Thickness]
Index: /issm/trunk-jpl/test/NightlyRun/test133.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test133.m	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test133.m	(revision 26159)
@@ -0,0 +1,15 @@
+%Test Name: SquareShelfConstrainedMasstransp2dSUPG
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'all','');
+md=parameterize(md,'../Par/SquareShelfConstrained.par');
+md=setflowequation(md,'SSA','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.masstransport.stabilization=5;
+md=solve(md,'Masstransport');
+
+%Fields and tolerances to track changes
+field_names     ={'Thickness'};
+field_tolerances={1e-13};
+field_values={...
+	(md.results.MasstransportSolution.Thickness),...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test133.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test133.py	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test133.py	(revision 26159)
@@ -0,0 +1,24 @@
+#Test Name: SquareShelfConstrainedMasstransp2dSUPG
+from model import *
+from socket import gethostname
+from triangle import *
+from meshconvert import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+
+
+md = triangle(model(), '../Exp/Square.exp', 150000)
+md = meshconvert(md)
+md = setmask(md, 'all', '')
+md = parameterize(md, '../Par/SquareShelfConstrained.py')
+md = setflowequation(md, 'SSA', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+md.masstransport.stabilization = 5
+md = solve(md, 'Masstransport')
+
+#Fields and tolerances to track changes
+field_names = ['Thickness']
+field_tolerances = [1e-13]
+field_values = [md.results.MasstransportSolution.Thickness]
Index: /issm/trunk-jpl/test/NightlyRun/test491.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test491.m	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test491.m	(revision 26159)
@@ -0,0 +1,69 @@
+%Test Name: SquareSheetShelfTranMeltArtDiff
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'../Exp/SquareShelf.exp','');
+md=parameterize(md,'../Par/SquareSheetShelf.par');
+md.geometry.bed=md.geometry.base;
+pos=find(md.mask.ocean_levelset<0);
+md.geometry.bed(pos)=md.geometry.base(pos)-10;
+md.friction=frictioncoulomb();
+md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
+md.friction.coefficientcoulomb=0.02*ones(md.mesh.numberofvertices,1);
+md.transient.isthermal=0;
+md.transient.isgroundingline=1;
+md=setflowequation(md,'SSA','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.transient.requested_outputs={'default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb','TotalSmb'};
+md.masstransport.stabilization=1;
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names={...
+	'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1',...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2','TotalFloatingBmb2','TotalGroundedBmb2','TotalSmb2',...
+	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3','TotalFloatingBmb3','TotalGroundedBmb3','TotalSmb3'...
+};
+field_tolerances={...
+	2e-13,2e-13,2e-13,1e-13,1e-13,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,1e-13,1e-13,1e-13,1e-13,1e-13,...
+	2e-13,2e-13,2e-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).GroundedArea),...
+	(md.results.TransientSolution(1).FloatingArea),...
+	(md.results.TransientSolution(1).TotalFloatingBmb),...
+	(md.results.TransientSolution(1).TotalGroundedBmb),...
+	(md.results.TransientSolution(1).TotalSmb),...
+	(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).GroundedArea),...
+	(md.results.TransientSolution(2).FloatingArea),...
+	(md.results.TransientSolution(2).TotalFloatingBmb),...
+	(md.results.TransientSolution(2).TotalGroundedBmb),...
+	(md.results.TransientSolution(2).TotalSmb),...
+	(md.results.TransientSolution(3).Vx),...
+	(md.results.TransientSolution(3).Vy),...
+	(md.results.TransientSolution(3).Vel),...
+	(md.results.TransientSolution(3).Pressure),...
+	(md.results.TransientSolution(3).Base),...
+	(md.results.TransientSolution(3).Surface),...
+	(md.results.TransientSolution(3).Thickness),...
+	(md.results.TransientSolution(3).GroundedArea),...
+	(md.results.TransientSolution(3).FloatingArea),...
+	(md.results.TransientSolution(3).TotalFloatingBmb),...
+	(md.results.TransientSolution(3).TotalGroundedBmb),...
+	(md.results.TransientSolution(3).TotalSmb),...
+};
Index: /issm/trunk-jpl/test/NightlyRun/test491.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test491.py	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test491.py	(revision 26159)
@@ -0,0 +1,80 @@
+#Test Name: SquareSheetShelfTranMeltArtDiff 
+import numpy as np
+from model import *
+from socket import gethostname
+
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+from frictioncoulomb import frictioncoulomb
+
+md = triangle(model(), '../Exp/Square.exp', 150000.)
+md = setmask(md, '../Exp/SquareShelf.exp', '')
+md = parameterize(md, '../Par/SquareSheetShelf.py')
+md.geometry.bed = copy.deepcopy(md.geometry.base)
+pos = np.nonzero(md.mask.ocean_levelset < 0.)
+md.geometry.bed[pos] = md.geometry.bed[pos] - 10
+md.friction = frictioncoulomb()
+md.friction.coefficient = 20 * np.ones(md.mesh.numberofvertices)
+md.friction.p = 1 * np.ones(md.mesh.numberofelements)
+md.friction.q = 1 * np.ones(md.mesh.numberofelements)
+md.friction.coefficientcoulomb = 0.02 * np.ones(md.mesh.numberofvertices)
+md.transient.isthermal = False
+md.transient.isgroundingline = True
+md = setflowequation(md, 'SSA', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+md.transient.requested_outputs = ['default', 'GroundedArea', 'FloatingArea', 'TotalFloatingBmb', 'TotalGroundedBmb', 'TotalSmb']
+md.masstransport.stabilization = 1
+md = solve(md, 'Transient')
+
+#Fields and tolerances to track changes
+field_names = [
+    'Vx1', 'Vy1', 'Vel1', 'Pressure1', 'Bed1', 'Surface1', 'Thickness1', 'GroundedArea1', 'FloatingArea1', 'TotalFloatingBmb1', 'TotalGroundedBmb1', 'TotalSmb1', 
+    'Vx2', 'Vy2', 'Vel2', 'Pressure2', 'Bed2', 'Surface2', 'Thickness2', 'GroundedArea2', 'FloatingArea2', 'TotalFloatingBmb2', 'TotalGroundedBmb2', 'TotalSmb2', 
+    'Vx3', 'Vy3', 'Vel3', 'Pressure3', 'Bed3', 'Surface3', 'Thickness3', 'GroundedArea3', 'FloatingArea3', 'TotalFloatingBmb3', 'TotalGroundedBmb3', 'TotalSmb3'
+]
+field_tolerances = [
+    2e-13, 2e-13, 2e-13, 1e-13, 1e-13, 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, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 
+    2e-13, 2e-13, 2e-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].GroundedArea,
+    md.results.TransientSolution[0].FloatingArea,
+    md.results.TransientSolution[0].TotalFloatingBmb,
+    md.results.TransientSolution[0].TotalGroundedBmb,
+    md.results.TransientSolution[0].TotalSmb,
+    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].GroundedArea,
+    md.results.TransientSolution[1].FloatingArea,
+    md.results.TransientSolution[1].TotalFloatingBmb,
+    md.results.TransientSolution[1].TotalGroundedBmb,
+    md.results.TransientSolution[1].TotalSmb,
+    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].GroundedArea,
+    md.results.TransientSolution[2].FloatingArea,
+    md.results.TransientSolution[2].TotalFloatingBmb,
+    md.results.TransientSolution[2].TotalGroundedBmb,
+    md.results.TransientSolution[2].TotalSmb
+]
Index: /issm/trunk-jpl/test/NightlyRun/test492.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test492.m	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test492.m	(revision 26159)
@@ -0,0 +1,69 @@
+%Test Name: SquareSheetShelfTranMeltStreamlineUpwind
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'../Exp/SquareShelf.exp','');
+md=parameterize(md,'../Par/SquareSheetShelf.par');
+md.geometry.bed=md.geometry.base;
+pos=find(md.mask.ocean_levelset<0);
+md.geometry.bed(pos)=md.geometry.base(pos)-10;
+md.friction=frictioncoulomb();
+md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
+md.friction.coefficientcoulomb=0.02*ones(md.mesh.numberofvertices,1);
+md.transient.isthermal=0;
+md.transient.isgroundingline=1;
+md=setflowequation(md,'SSA','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.transient.requested_outputs={'default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb','TotalSmb'};
+md.masstransport.stabilization=2;
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names={...
+	'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1',...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2','TotalFloatingBmb2','TotalGroundedBmb2','TotalSmb2',...
+	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3','TotalFloatingBmb3','TotalGroundedBmb3','TotalSmb3'...
+};
+field_tolerances={...
+	2e-13,2e-13,2e-13,1e-13,1e-13,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,1e-13,1e-13,1e-13,1e-13,1e-13,...
+	2e-13,2e-13,2e-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).GroundedArea),...
+	(md.results.TransientSolution(1).FloatingArea),...
+	(md.results.TransientSolution(1).TotalFloatingBmb),...
+	(md.results.TransientSolution(1).TotalGroundedBmb),...
+	(md.results.TransientSolution(1).TotalSmb),...
+	(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).GroundedArea),...
+	(md.results.TransientSolution(2).FloatingArea),...
+	(md.results.TransientSolution(2).TotalFloatingBmb),...
+	(md.results.TransientSolution(2).TotalGroundedBmb),...
+	(md.results.TransientSolution(2).TotalSmb),...
+	(md.results.TransientSolution(3).Vx),...
+	(md.results.TransientSolution(3).Vy),...
+	(md.results.TransientSolution(3).Vel),...
+	(md.results.TransientSolution(3).Pressure),...
+	(md.results.TransientSolution(3).Base),...
+	(md.results.TransientSolution(3).Surface),...
+	(md.results.TransientSolution(3).Thickness),...
+	(md.results.TransientSolution(3).GroundedArea),...
+	(md.results.TransientSolution(3).FloatingArea),...
+	(md.results.TransientSolution(3).TotalFloatingBmb),...
+	(md.results.TransientSolution(3).TotalGroundedBmb),...
+	(md.results.TransientSolution(3).TotalSmb),...
+};
Index: /issm/trunk-jpl/test/NightlyRun/test492.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test492.py	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test492.py	(revision 26159)
@@ -0,0 +1,80 @@
+#Test Name: SquareSheetShelfTranMeltStreamlineUpwind 
+import numpy as np
+from model import *
+from socket import gethostname
+
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+from frictioncoulomb import frictioncoulomb
+
+md = triangle(model(), '../Exp/Square.exp', 150000.)
+md = setmask(md, '../Exp/SquareShelf.exp', '')
+md = parameterize(md, '../Par/SquareSheetShelf.py')
+md.geometry.bed = copy.deepcopy(md.geometry.base)
+pos = np.nonzero(md.mask.ocean_levelset < 0.)
+md.geometry.bed[pos] = md.geometry.bed[pos] - 10
+md.friction = frictioncoulomb()
+md.friction.coefficient = 20 * np.ones(md.mesh.numberofvertices)
+md.friction.p = 1 * np.ones(md.mesh.numberofelements)
+md.friction.q = 1 * np.ones(md.mesh.numberofelements)
+md.friction.coefficientcoulomb = 0.02 * np.ones(md.mesh.numberofvertices)
+md.transient.isthermal = False
+md.transient.isgroundingline = True
+md = setflowequation(md, 'SSA', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+md.transient.requested_outputs = ['default', 'GroundedArea', 'FloatingArea', 'TotalFloatingBmb', 'TotalGroundedBmb', 'TotalSmb']
+md.masstransport.stabilization = 2
+md = solve(md, 'Transient')
+
+#Fields and tolerances to track changes
+field_names = [
+    'Vx1', 'Vy1', 'Vel1', 'Pressure1', 'Bed1', 'Surface1', 'Thickness1', 'GroundedArea1', 'FloatingArea1', 'TotalFloatingBmb1', 'TotalGroundedBmb1', 'TotalSmb1', 
+    'Vx2', 'Vy2', 'Vel2', 'Pressure2', 'Bed2', 'Surface2', 'Thickness2', 'GroundedArea2', 'FloatingArea2', 'TotalFloatingBmb2', 'TotalGroundedBmb2', 'TotalSmb2', 
+    'Vx3', 'Vy3', 'Vel3', 'Pressure3', 'Bed3', 'Surface3', 'Thickness3', 'GroundedArea3', 'FloatingArea3', 'TotalFloatingBmb3', 'TotalGroundedBmb3', 'TotalSmb3'
+]
+field_tolerances = [
+    2e-13, 2e-13, 2e-13, 1e-13, 1e-13, 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, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 
+    2e-13, 2e-13, 2e-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].GroundedArea,
+    md.results.TransientSolution[0].FloatingArea,
+    md.results.TransientSolution[0].TotalFloatingBmb,
+    md.results.TransientSolution[0].TotalGroundedBmb,
+    md.results.TransientSolution[0].TotalSmb,
+    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].GroundedArea,
+    md.results.TransientSolution[1].FloatingArea,
+    md.results.TransientSolution[1].TotalFloatingBmb,
+    md.results.TransientSolution[1].TotalGroundedBmb,
+    md.results.TransientSolution[1].TotalSmb,
+    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].GroundedArea,
+    md.results.TransientSolution[2].FloatingArea,
+    md.results.TransientSolution[2].TotalFloatingBmb,
+    md.results.TransientSolution[2].TotalGroundedBmb,
+    md.results.TransientSolution[2].TotalSmb
+]
Index: /issm/trunk-jpl/test/NightlyRun/test493.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test493.m	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test493.m	(revision 26159)
@@ -0,0 +1,70 @@
+%Test Name: SquareSheetShelfTranMeltDG
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'../Exp/SquareShelf.exp','');
+md=parameterize(md,'../Par/SquareSheetShelf.par');
+md.geometry.bed=md.geometry.base;
+pos=find(md.mask.ocean_levelset<0);
+md.geometry.bed(pos)=md.geometry.base(pos)-10;
+md.friction=frictioncoulomb();
+md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
+md.friction.coefficientcoulomb=0.02*ones(md.mesh.numberofvertices,1);
+md.transient.isthermal=0;
+md.transient.isgroundingline=1;
+md=setflowequation(md,'SSA','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.transient.requested_outputs={'default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb','TotalSmb'};
+md.masstransport.stabilization=3;
+md.masstransport.spcthickness=md.geometry.thickness;
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names={...
+	'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1',...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2','TotalFloatingBmb2','TotalGroundedBmb2','TotalSmb2',...
+	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3','TotalFloatingBmb3','TotalGroundedBmb3','TotalSmb3'...
+};
+field_tolerances={...
+	2e-13,2e-13,2e-13,1e-13,1e-13,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,1e-13,1e-13,1e-13,1e-13,1e-13,...
+	2e-13,2e-13,2e-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).GroundedArea),...
+	(md.results.TransientSolution(1).FloatingArea),...
+	(md.results.TransientSolution(1).TotalFloatingBmb),...
+	(md.results.TransientSolution(1).TotalGroundedBmb),...
+	(md.results.TransientSolution(1).TotalSmb),...
+	(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).GroundedArea),...
+	(md.results.TransientSolution(2).FloatingArea),...
+	(md.results.TransientSolution(2).TotalFloatingBmb),...
+	(md.results.TransientSolution(2).TotalGroundedBmb),...
+	(md.results.TransientSolution(2).TotalSmb),...
+	(md.results.TransientSolution(3).Vx),...
+	(md.results.TransientSolution(3).Vy),...
+	(md.results.TransientSolution(3).Vel),...
+	(md.results.TransientSolution(3).Pressure),...
+	(md.results.TransientSolution(3).Base),...
+	(md.results.TransientSolution(3).Surface),...
+	(md.results.TransientSolution(3).Thickness),...
+	(md.results.TransientSolution(3).GroundedArea),...
+	(md.results.TransientSolution(3).FloatingArea),...
+	(md.results.TransientSolution(3).TotalFloatingBmb),...
+	(md.results.TransientSolution(3).TotalGroundedBmb),...
+	(md.results.TransientSolution(3).TotalSmb),...
+};
Index: /issm/trunk-jpl/test/NightlyRun/test493.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test493.py	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test493.py	(revision 26159)
@@ -0,0 +1,81 @@
+#Test Name: SquareSheetShelfTranMeltDG 
+import numpy as np
+from model import *
+from socket import gethostname
+
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+from frictioncoulomb import frictioncoulomb
+
+md = triangle(model(), '../Exp/Square.exp', 150000.)
+md = setmask(md, '../Exp/SquareShelf.exp', '')
+md = parameterize(md, '../Par/SquareSheetShelf.py')
+md.geometry.bed = copy.deepcopy(md.geometry.base)
+pos = np.nonzero(md.mask.ocean_levelset < 0.)
+md.geometry.bed[pos] = md.geometry.bed[pos] - 10
+md.friction = frictioncoulomb()
+md.friction.coefficient = 20 * np.ones(md.mesh.numberofvertices)
+md.friction.p = 1 * np.ones(md.mesh.numberofelements)
+md.friction.q = 1 * np.ones(md.mesh.numberofelements)
+md.friction.coefficientcoulomb = 0.02 * np.ones(md.mesh.numberofvertices)
+md.transient.isthermal = False
+md.transient.isgroundingline = True
+md = setflowequation(md, 'SSA', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+md.transient.requested_outputs = ['default', 'GroundedArea', 'FloatingArea', 'TotalFloatingBmb', 'TotalGroundedBmb', 'TotalSmb']
+md.masstransport.stabilization = 3
+md.masstransport.spcthickness = md.geometry.thickness
+md = solve(md, 'Transient')
+
+#Fields and tolerances to track changes
+field_names = [
+    'Vx1', 'Vy1', 'Vel1', 'Pressure1', 'Bed1', 'Surface1', 'Thickness1', 'GroundedArea1', 'FloatingArea1', 'TotalFloatingBmb1', 'TotalGroundedBmb1', 'TotalSmb1', 
+    'Vx2', 'Vy2', 'Vel2', 'Pressure2', 'Bed2', 'Surface2', 'Thickness2', 'GroundedArea2', 'FloatingArea2', 'TotalFloatingBmb2', 'TotalGroundedBmb2', 'TotalSmb2', 
+    'Vx3', 'Vy3', 'Vel3', 'Pressure3', 'Bed3', 'Surface3', 'Thickness3', 'GroundedArea3', 'FloatingArea3', 'TotalFloatingBmb3', 'TotalGroundedBmb3', 'TotalSmb3'
+]
+field_tolerances = [
+    2e-13, 2e-13, 2e-13, 1e-13, 1e-13, 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, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 
+    2e-13, 2e-13, 2e-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].GroundedArea,
+    md.results.TransientSolution[0].FloatingArea,
+    md.results.TransientSolution[0].TotalFloatingBmb,
+    md.results.TransientSolution[0].TotalGroundedBmb,
+    md.results.TransientSolution[0].TotalSmb,
+    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].GroundedArea,
+    md.results.TransientSolution[1].FloatingArea,
+    md.results.TransientSolution[1].TotalFloatingBmb,
+    md.results.TransientSolution[1].TotalGroundedBmb,
+    md.results.TransientSolution[1].TotalSmb,
+    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].GroundedArea,
+    md.results.TransientSolution[2].FloatingArea,
+    md.results.TransientSolution[2].TotalFloatingBmb,
+    md.results.TransientSolution[2].TotalGroundedBmb,
+    md.results.TransientSolution[2].TotalSmb
+]
Index: /issm/trunk-jpl/test/NightlyRun/test494.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test494.m	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test494.m	(revision 26159)
@@ -0,0 +1,69 @@
+%Test Name: SquareSheetShelfTranMeltFCT
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'../Exp/SquareShelf.exp','');
+md=parameterize(md,'../Par/SquareSheetShelf.par');
+md.geometry.bed=md.geometry.base;
+pos=find(md.mask.ocean_levelset<0);
+md.geometry.bed(pos)=md.geometry.base(pos)-10;
+md.friction=frictioncoulomb();
+md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
+md.friction.coefficientcoulomb=0.02*ones(md.mesh.numberofvertices,1);
+md.transient.isthermal=0;
+md.transient.isgroundingline=1;
+md=setflowequation(md,'SSA','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.transient.requested_outputs={'default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb','TotalSmb'};
+md.masstransport.stabilization=4;
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names={...
+	'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1',...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2','TotalFloatingBmb2','TotalGroundedBmb2','TotalSmb2',...
+	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3','TotalFloatingBmb3','TotalGroundedBmb3','TotalSmb3'...
+};
+field_tolerances={...
+	2e-13,2e-13,2e-13,1e-13,1e-13,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,1e-13,1e-13,1e-13,1e-13,1e-13,...
+	2e-13,2e-13,2e-13,1e-13,1e-13,2e-13,4e-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).GroundedArea),...
+	(md.results.TransientSolution(1).FloatingArea),...
+	(md.results.TransientSolution(1).TotalFloatingBmb),...
+	(md.results.TransientSolution(1).TotalGroundedBmb),...
+	(md.results.TransientSolution(1).TotalSmb),...
+	(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).GroundedArea),...
+	(md.results.TransientSolution(2).FloatingArea),...
+	(md.results.TransientSolution(2).TotalFloatingBmb),...
+	(md.results.TransientSolution(2).TotalGroundedBmb),...
+	(md.results.TransientSolution(2).TotalSmb),...
+	(md.results.TransientSolution(3).Vx),...
+	(md.results.TransientSolution(3).Vy),...
+	(md.results.TransientSolution(3).Vel),...
+	(md.results.TransientSolution(3).Pressure),...
+	(md.results.TransientSolution(3).Base),...
+	(md.results.TransientSolution(3).Surface),...
+	(md.results.TransientSolution(3).Thickness),...
+	(md.results.TransientSolution(3).GroundedArea),...
+	(md.results.TransientSolution(3).FloatingArea),...
+	(md.results.TransientSolution(3).TotalFloatingBmb),...
+	(md.results.TransientSolution(3).TotalGroundedBmb),...
+	(md.results.TransientSolution(3).TotalSmb),...
+};
Index: /issm/trunk-jpl/test/NightlyRun/test494.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test494.py	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test494.py	(revision 26159)
@@ -0,0 +1,80 @@
+#Test Name: SquareSheetShelfTranMeltFCT 
+import numpy as np
+from model import *
+from socket import gethostname
+
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+from frictioncoulomb import frictioncoulomb
+
+md = triangle(model(), '../Exp/Square.exp', 150000.)
+md = setmask(md, '../Exp/SquareShelf.exp', '')
+md = parameterize(md, '../Par/SquareSheetShelf.py')
+md.geometry.bed = copy.deepcopy(md.geometry.base)
+pos = np.nonzero(md.mask.ocean_levelset < 0.)
+md.geometry.bed[pos] = md.geometry.bed[pos] - 10
+md.friction = frictioncoulomb()
+md.friction.coefficient = 20 * np.ones(md.mesh.numberofvertices)
+md.friction.p = 1 * np.ones(md.mesh.numberofelements)
+md.friction.q = 1 * np.ones(md.mesh.numberofelements)
+md.friction.coefficientcoulomb = 0.02 * np.ones(md.mesh.numberofvertices)
+md.transient.isthermal = False
+md.transient.isgroundingline = True
+md = setflowequation(md, 'SSA', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+md.transient.requested_outputs = ['default', 'GroundedArea', 'FloatingArea', 'TotalFloatingBmb', 'TotalGroundedBmb', 'TotalSmb']
+md.masstransport.stabilization = 4
+md = solve(md, 'Transient')
+
+#Fields and tolerances to track changes
+field_names = [
+    'Vx1', 'Vy1', 'Vel1', 'Pressure1', 'Bed1', 'Surface1', 'Thickness1', 'GroundedArea1', 'FloatingArea1', 'TotalFloatingBmb1', 'TotalGroundedBmb1', 'TotalSmb1', 
+    'Vx2', 'Vy2', 'Vel2', 'Pressure2', 'Bed2', 'Surface2', 'Thickness2', 'GroundedArea2', 'FloatingArea2', 'TotalFloatingBmb2', 'TotalGroundedBmb2', 'TotalSmb2', 
+    'Vx3', 'Vy3', 'Vel3', 'Pressure3', 'Bed3', 'Surface3', 'Thickness3', 'GroundedArea3', 'FloatingArea3', 'TotalFloatingBmb3', 'TotalGroundedBmb3', 'TotalSmb3'
+]
+field_tolerances = [
+    2e-13, 2e-13, 2e-13, 1e-13, 1e-13, 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, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 
+    2e-13, 2e-13, 2e-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].GroundedArea,
+    md.results.TransientSolution[0].FloatingArea,
+    md.results.TransientSolution[0].TotalFloatingBmb,
+    md.results.TransientSolution[0].TotalGroundedBmb,
+    md.results.TransientSolution[0].TotalSmb,
+    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].GroundedArea,
+    md.results.TransientSolution[1].FloatingArea,
+    md.results.TransientSolution[1].TotalFloatingBmb,
+    md.results.TransientSolution[1].TotalGroundedBmb,
+    md.results.TransientSolution[1].TotalSmb,
+    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].GroundedArea,
+    md.results.TransientSolution[2].FloatingArea,
+    md.results.TransientSolution[2].TotalFloatingBmb,
+    md.results.TransientSolution[2].TotalGroundedBmb,
+    md.results.TransientSolution[2].TotalSmb
+]
Index: /issm/trunk-jpl/test/NightlyRun/test495.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test495.m	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test495.m	(revision 26159)
@@ -0,0 +1,69 @@
+%Test Name: SquareSheetShelfTranMeltSUPG
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'../Exp/SquareShelf.exp','');
+md=parameterize(md,'../Par/SquareSheetShelf.par');
+md.geometry.bed=md.geometry.base;
+pos=find(md.mask.ocean_levelset<0);
+md.geometry.bed(pos)=md.geometry.base(pos)-10;
+md.friction=frictioncoulomb();
+md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
+md.friction.coefficientcoulomb=0.02*ones(md.mesh.numberofvertices,1);
+md.transient.isthermal=0;
+md.transient.isgroundingline=1;
+md=setflowequation(md,'SSA','all');
+md.cluster=generic('name',oshostname(),'np',3);
+md.transient.requested_outputs={'default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb','TotalSmb'};
+md.masstransport.stabilization=5;
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names={...
+	'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1',...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2','TotalFloatingBmb2','TotalGroundedBmb2','TotalSmb2',...
+	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3','TotalFloatingBmb3','TotalGroundedBmb3','TotalSmb3'...
+};
+field_tolerances={...
+	2e-13,2e-13,2e-13,1e-13,1e-13,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,1e-13,1e-13,1e-13,1e-13,1e-13,...
+	2e-13,2e-13,2e-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).GroundedArea),...
+	(md.results.TransientSolution(1).FloatingArea),...
+	(md.results.TransientSolution(1).TotalFloatingBmb),...
+	(md.results.TransientSolution(1).TotalGroundedBmb),...
+	(md.results.TransientSolution(1).TotalSmb),...
+	(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).GroundedArea),...
+	(md.results.TransientSolution(2).FloatingArea),...
+	(md.results.TransientSolution(2).TotalFloatingBmb),...
+	(md.results.TransientSolution(2).TotalGroundedBmb),...
+	(md.results.TransientSolution(2).TotalSmb),...
+	(md.results.TransientSolution(3).Vx),...
+	(md.results.TransientSolution(3).Vy),...
+	(md.results.TransientSolution(3).Vel),...
+	(md.results.TransientSolution(3).Pressure),...
+	(md.results.TransientSolution(3).Base),...
+	(md.results.TransientSolution(3).Surface),...
+	(md.results.TransientSolution(3).Thickness),...
+	(md.results.TransientSolution(3).GroundedArea),...
+	(md.results.TransientSolution(3).FloatingArea),...
+	(md.results.TransientSolution(3).TotalFloatingBmb),...
+	(md.results.TransientSolution(3).TotalGroundedBmb),...
+	(md.results.TransientSolution(3).TotalSmb),...
+};
Index: /issm/trunk-jpl/test/NightlyRun/test495.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test495.py	(revision 26159)
+++ /issm/trunk-jpl/test/NightlyRun/test495.py	(revision 26159)
@@ -0,0 +1,80 @@
+#Test Name: SquareSheetShelfTranMeltSUPG 
+import numpy as np
+from model import *
+from socket import gethostname
+
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from solve import *
+from frictioncoulomb import frictioncoulomb
+
+md = triangle(model(), '../Exp/Square.exp', 150000.)
+md = setmask(md, '../Exp/SquareShelf.exp', '')
+md = parameterize(md, '../Par/SquareSheetShelf.py')
+md.geometry.bed = copy.deepcopy(md.geometry.base)
+pos = np.nonzero(md.mask.ocean_levelset < 0.)
+md.geometry.bed[pos] = md.geometry.bed[pos] - 10
+md.friction = frictioncoulomb()
+md.friction.coefficient = 20 * np.ones(md.mesh.numberofvertices)
+md.friction.p = 1 * np.ones(md.mesh.numberofelements)
+md.friction.q = 1 * np.ones(md.mesh.numberofelements)
+md.friction.coefficientcoulomb = 0.02 * np.ones(md.mesh.numberofvertices)
+md.transient.isthermal = False
+md.transient.isgroundingline = True
+md = setflowequation(md, 'SSA', 'all')
+md.cluster = generic('name', gethostname(), 'np', 3)
+md.transient.requested_outputs = ['default', 'GroundedArea', 'FloatingArea', 'TotalFloatingBmb', 'TotalGroundedBmb', 'TotalSmb']
+md.masstransport.stabilization = 5
+md = solve(md, 'Transient')
+
+#Fields and tolerances to track changes
+field_names = [
+    'Vx1', 'Vy1', 'Vel1', 'Pressure1', 'Bed1', 'Surface1', 'Thickness1', 'GroundedArea1', 'FloatingArea1', 'TotalFloatingBmb1', 'TotalGroundedBmb1', 'TotalSmb1', 
+    'Vx2', 'Vy2', 'Vel2', 'Pressure2', 'Bed2', 'Surface2', 'Thickness2', 'GroundedArea2', 'FloatingArea2', 'TotalFloatingBmb2', 'TotalGroundedBmb2', 'TotalSmb2', 
+    'Vx3', 'Vy3', 'Vel3', 'Pressure3', 'Bed3', 'Surface3', 'Thickness3', 'GroundedArea3', 'FloatingArea3', 'TotalFloatingBmb3', 'TotalGroundedBmb3', 'TotalSmb3'
+]
+field_tolerances = [
+    2e-13, 2e-13, 2e-13, 1e-13, 1e-13, 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, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 
+    2e-13, 2e-13, 2e-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].GroundedArea,
+    md.results.TransientSolution[0].FloatingArea,
+    md.results.TransientSolution[0].TotalFloatingBmb,
+    md.results.TransientSolution[0].TotalGroundedBmb,
+    md.results.TransientSolution[0].TotalSmb,
+    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].GroundedArea,
+    md.results.TransientSolution[1].FloatingArea,
+    md.results.TransientSolution[1].TotalFloatingBmb,
+    md.results.TransientSolution[1].TotalGroundedBmb,
+    md.results.TransientSolution[1].TotalSmb,
+    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].GroundedArea,
+    md.results.TransientSolution[2].FloatingArea,
+    md.results.TransientSolution[2].TotalFloatingBmb,
+    md.results.TransientSolution[2].TotalGroundedBmb,
+    md.results.TransientSolution[2].TotalSmb
+]
