Index: /issm/trunk-jpl/test/NightlyRun/python_skipped_tests.txt
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/python_skipped_tests.txt	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/python_skipped_tests.txt	(revision 13643)
@@ -3,3 +3,3 @@
 test234    needs Dakota
 test235    needs Dakota
-
+test274    needs TriMeshProcessRifts module in meshprocessrifts.py
Index: /issm/trunk-jpl/test/NightlyRun/test119.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test119.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test119.m	(revision 13643)
@@ -17,6 +17,6 @@
 
 %Fields and tolerances to track changes
-field_names     ={'x1' 'y1' 'x2' 'y2' 'nbelements' 'elapsed time'};
-field_tolerances={1e-13 1e-13 1e-13 1e-13 1e-13 0.5};
+field_names     ={'x1','y1','x2','y2','nbelements','elapsed time'};
+field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,0.5};
 field_values={...
 	x1, y1,...
Index: /issm/trunk-jpl/test/NightlyRun/test212.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test212.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test212.m	(revision 13643)
@@ -21,5 +21,5 @@
 
 %Fields and tolerances to track changes
-field_names     ={'Gradient' 'Misfits' 'MaterialsRheologyBbar' 'Pressure' 'Vel' 'Vx' 'Vy'};
+field_names     ={'Gradient','Misfits','MaterialsRheologyBbar','Pressure','Vel','Vx','Vy'};
 field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
 field_values={...
Index: /issm/trunk-jpl/test/NightlyRun/test213.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test213.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test213.m	(revision 13643)
@@ -22,5 +22,5 @@
 
 %Fields and tolerances to track changes
-field_names     ={'Gradient' 'Misfits' 'MaterialsRheologyBbar' 'Pressure' 'Vel' 'Vx' 'Vy'};
+field_names     ={'Gradient','Misfits','MaterialsRheologyBbar','Pressure','Vel','Vx','Vy'};
 field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
 field_values={...
Index: /issm/trunk-jpl/test/NightlyRun/test214.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test214.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test214.m	(revision 13643)
@@ -22,5 +22,5 @@
 
 %Fields and tolerances to track changes
-field_names     ={'Gradient' 'Misfits' 'MaterialsRheologyBbar' 'Pressure' 'Vel' 'Vx' 'Vy'};
+field_names     ={'Gradient','Misfits','MaterialsRheologyBbar','Pressure','Vel','Vx','Vy'};
 field_tolerances={1e-07,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08};
 field_values={...
Index: /issm/trunk-jpl/test/NightlyRun/test215.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test215.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test215.m	(revision 13643)
@@ -22,5 +22,5 @@
 
 %Fields and tolerances to track changes
-field_names     ={'Gradient' 'Misfits' 'MaterialsRheologyBbar' 'Pressure' 'Vel' 'Vx' 'Vy'};
+field_names     ={'Gradient','Misfits','MaterialsRheologyBbar','Pressure','Vel','Vx','Vy'};
 field_tolerances={1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09};
 field_values={...
Index: /issm/trunk-jpl/test/NightlyRun/test310.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test310.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test310.m	(revision 13643)
@@ -1,3 +1,3 @@
-md=triangle(model,'../Exp/Square.exp',150000);
+md=triangle(model(),'../Exp/Square.exp',150000);
 md=meshconvert(md);
 md=setmask(md,'','');
@@ -7,5 +7,5 @@
 md.prognostic.spcthickness=md.geometry.thickness;
 md.cluster=generic('name',oshostname(),'np',3);
-md=solve(md,PrognosticSolutionEnum);
+md=solve(md,PrognosticSolutionEnum());
 
 %Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test310.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test310.py	(revision 13643)
+++ /issm/trunk-jpl/test/NightlyRun/test310.py	(revision 13643)
@@ -0,0 +1,26 @@
+from model import *
+from triangle import *
+from meshconvert import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+md=triangle(model(),'../Exp/Square.exp',150000.)
+md=meshconvert(md)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md=setflowequation(md,'macayeal','all')
+md.prognostic.stabilization=3
+md.prognostic.spcthickness=md.geometry.thickness
+md.cluster=generic('name',oshostname(),'np',3)
+md=solve(md,PrognosticSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Thickness']
+field_tolerances=[1e-13]
+field_values=[\
+	md.results['PrognosticSolution'][1]['Thickness'],\
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test311.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test311.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test311.m	(revision 13643)
@@ -1,3 +1,3 @@
-md=triangle(model,'../Exp/Square.exp',150000);
+md=triangle(model(),'../Exp/Square.exp',150000);
 md=setmask(md,'','');
 md=parameterize(md,'../Par/SquareSheetConstrained.par');
@@ -5,5 +5,5 @@
 md=extrude(md,5,0.5);
 md.cluster=generic('name',oshostname(),'np',3);
-md=solve(md,PrognosticSolutionEnum);
+md=solve(md,PrognosticSolutionEnum());
 
 %Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test311.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test311.py	(revision 13643)
+++ /issm/trunk-jpl/test/NightlyRun/test311.py	(revision 13643)
@@ -0,0 +1,23 @@
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+md=triangle(model(),'../Exp/Square.exp',150000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md=setflowequation(md,'macayeal','all')
+md.extrude(5,0.5)
+md.cluster=generic('name',oshostname(),'np',3)
+md=solve(md,PrognosticSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Thickness']
+field_tolerances=[1e-13]
+field_values=[\
+	md.results['PrognosticSolution'][1]['Thickness'],\
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test312.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test312.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test312.m	(revision 13643)
@@ -1,10 +1,10 @@
-md=triangle(model,'../Exp/Square.exp',180000);
+md=triangle(model(),'../Exp/Square.exp',180000);
 md=setmask(md,'','');
 md=parameterize(md,'../Par/SquareSheetConstrained.par');
 md=extrude(md,3,1);
 md=setflowequation(md,'macayeal','all');
-md.timestepping.time_step=0;
+md.timestepping.time_step=0.;
 md.cluster=generic('name',oshostname(),'np',3);
-md=solve(md,ThermalSolutionEnum);
+md=solve(md,ThermalSolutionEnum());
 
 %Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test312.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test312.py	(revision 13643)
+++ /issm/trunk-jpl/test/NightlyRun/test312.py	(revision 13643)
@@ -0,0 +1,25 @@
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+md=triangle(model(),'../Exp/Square.exp',180000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md.extrude(3,1)
+md=setflowequation(md,'macayeal','all')
+md.timestepping.time_step=0.
+md.cluster=generic('name',oshostname(),'np',3)
+md=solve(md,ThermalSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Temperature','BasalforcingsMeltingRate']
+field_tolerances=[1e-13,1e-13]
+field_values=[\
+	md.results['ThermalSolution'][1]['Temperature'],\
+	md.results['ThermalSolution'][1]['BasalforcingsMeltingRate'],\
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test313.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test313.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test313.m	(revision 13643)
@@ -1,3 +1,3 @@
-md=triangle(model,'../Exp/Square.exp',180000);
+md=triangle(model(),'../Exp/Square.exp',180000);
 md=setmask(md,'','');
 md=parameterize(md,'../Par/SquareSheetConstrained.par');
@@ -10,5 +10,5 @@
 md.transient.isthermal=1;
 md.transient.isgroundingline=0;
-md=solve(md,TransientSolutionEnum);
+md=solve(md,TransientSolutionEnum());
 
 %Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test313.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test313.py	(revision 13643)
+++ /issm/trunk-jpl/test/NightlyRun/test313.py	(revision 13643)
@@ -0,0 +1,29 @@
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+md=triangle(model(),'../Exp/Square.exp',180000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md.extrude(3,1)
+md=setflowequation(md,'macayeal','all')
+md.cluster=generic('name',oshostname(),'np',3)
+md.verbose=verbose('convergence',True,'solution',True)
+md.transient.isdiagnostic=0
+md.transient.isprognostic=0
+md.transient.isthermal=1
+md.transient.isgroundingline=0
+md=solve(md,TransientSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Temperature','BasalforcingsMeltingRate']
+field_tolerances=[1e-13,1e-13]
+field_values=[\
+	md.results['TransientSolution'][1]['Temperature'],\
+	md.results['TransientSolution'][1]['BasalforcingsMeltingRate'],\
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test314.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test314.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test314.m	(revision 13643)
@@ -1,8 +1,8 @@
-md=triangle(model,'../Exp/Square.exp',150000);
+md=triangle(model(),'../Exp/Square.exp',150000);
 md=setmask(md,'','');
 md=parameterize(md,'../Par/SquareSheetConstrained.par');
 md=setflowequation(md,'hutter','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md=solve(md,TransientSolutionEnum);
+md=solve(md,TransientSolutionEnum());
 
 %Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test314.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test314.py	(revision 13643)
+++ /issm/trunk-jpl/test/NightlyRun/test314.py	(revision 13643)
@@ -0,0 +1,42 @@
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+md=triangle(model(),'../Exp/Square.exp',150000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md=setflowequation(md,'hutter','all')
+md.cluster=generic('name',oshostname(),'np',3)
+md=solve(md,TransientSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3']
+field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-10,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]['Bed'],\
+	md.results['TransientSolution'][1]['Surface'],\
+	md.results['TransientSolution'][1]['Thickness'],\
+	md.results['TransientSolution'][2]['Vx'],\
+	md.results['TransientSolution'][2]['Vy'],\
+	md.results['TransientSolution'][2]['Vel'],\
+	md.results['TransientSolution'][2]['Pressure'],\
+	md.results['TransientSolution'][2]['Bed'],\
+	md.results['TransientSolution'][2]['Surface'],\
+	md.results['TransientSolution'][2]['Thickness'],\
+	md.results['TransientSolution'][3]['Vx'],\
+	md.results['TransientSolution'][3]['Vy'],\
+	md.results['TransientSolution'][3]['Vel'],\
+	md.results['TransientSolution'][3]['Pressure'],\
+	md.results['TransientSolution'][3]['Bed'],\
+	md.results['TransientSolution'][3]['Surface'],\
+	md.results['TransientSolution'][3]['Thickness'],\
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test315.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test315.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test315.m	(revision 13643)
@@ -1,3 +1,3 @@
-md=triangle(model,'../Exp/Square.exp',150000);
+md=triangle(model(),'../Exp/Square.exp',150000);
 md=setmask(md,'','');
 md=parameterize(md,'../Par/SquareSheetConstrained.par');
@@ -5,13 +5,13 @@
 md=setflowequation(md,'hutter','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md=solve(md,TransientSolutionEnum);
+md=solve(md,TransientSolutionEnum());
 
 %Fields and tolerances to track changes
-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsMeltingRate1', ...
-				      'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsMeltingRate2', ...
-					   'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsMeltingRate3'};
-field_tolerances={1e-13,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...,
-						1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
-						1e-10,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsMeltingRate1',...
+	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsMeltingRate2',...
+	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsMeltingRate3'};
+field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...,
+	1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+	1e-10,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),...
Index: /issm/trunk-jpl/test/NightlyRun/test315.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test315.py	(revision 13643)
+++ /issm/trunk-jpl/test/NightlyRun/test315.py	(revision 13643)
@@ -0,0 +1,56 @@
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+md=triangle(model(),'../Exp/Square.exp',150000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md.extrude(5,1.2)
+md=setflowequation(md,'hutter','all')
+md.cluster=generic('name',oshostname(),'np',3)
+md=solve(md,TransientSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsMeltingRate1',\
+	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsMeltingRate2',\
+	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsMeltingRate3']
+field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+	1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+	1e-10,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]['Vz'],\
+	md.results['TransientSolution'][1]['Vel'],\
+	md.results['TransientSolution'][1]['Pressure'],\
+	md.results['TransientSolution'][1]['Bed'],\
+	md.results['TransientSolution'][1]['Surface'],\
+	md.results['TransientSolution'][1]['Thickness'],\
+	md.results['TransientSolution'][1]['Temperature'],\
+	md.results['TransientSolution'][1]['BasalforcingsMeltingRate'],\
+	md.results['TransientSolution'][2]['Vx'],\
+	md.results['TransientSolution'][2]['Vy'],\
+	md.results['TransientSolution'][2]['Vz'],\
+	md.results['TransientSolution'][2]['Vel'],\
+	md.results['TransientSolution'][2]['Pressure'],\
+	md.results['TransientSolution'][2]['Bed'],\
+	md.results['TransientSolution'][2]['Surface'],\
+	md.results['TransientSolution'][2]['Thickness'],\
+	md.results['TransientSolution'][2]['Temperature'],\
+	md.results['TransientSolution'][2]['BasalforcingsMeltingRate'],\
+	md.results['TransientSolution'][3]['Vx'],\
+	md.results['TransientSolution'][3]['Vy'],\
+	md.results['TransientSolution'][3]['Vz'],\
+	md.results['TransientSolution'][3]['Vel'],\
+	md.results['TransientSolution'][3]['Pressure'],\
+	md.results['TransientSolution'][3]['Bed'],\
+	md.results['TransientSolution'][3]['Surface'],\
+	md.results['TransientSolution'][3]['Thickness'],\
+	md.results['TransientSolution'][3]['Temperature'],\
+	md.results['TransientSolution'][3]['BasalforcingsMeltingRate'],\
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test316.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test316.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test316.m	(revision 13643)
@@ -1,8 +1,8 @@
-md=triangle(model,'../Exp/Square.exp',150000);
+md=triangle(model(),'../Exp/Square.exp',150000);
 md=setmask(md,'','');
 md=parameterize(md,'../Par/SquareSheetConstrained.par');
 md=setflowequation(md,'macayeal','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md=solve(md,TransientSolutionEnum);
+md=solve(md,TransientSolutionEnum());
 
 %Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test316.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test316.py	(revision 13643)
+++ /issm/trunk-jpl/test/NightlyRun/test316.py	(revision 13643)
@@ -0,0 +1,42 @@
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+md=triangle(model(),'../Exp/Square.exp',150000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md=setflowequation(md,'macayeal','all')
+md.cluster=generic('name',oshostname(),'np',3)
+md=solve(md,TransientSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3']
+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]
+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]['Bed'],\
+	md.results['TransientSolution'][1]['Surface'],\
+	md.results['TransientSolution'][1]['Thickness'],\
+	md.results['TransientSolution'][2]['Vx'],\
+	md.results['TransientSolution'][2]['Vy'],\
+	md.results['TransientSolution'][2]['Vel'],\
+	md.results['TransientSolution'][2]['Pressure'],\
+	md.results['TransientSolution'][2]['Bed'],\
+	md.results['TransientSolution'][2]['Surface'],\
+	md.results['TransientSolution'][2]['Thickness'],\
+	md.results['TransientSolution'][3]['Vx'],\
+	md.results['TransientSolution'][3]['Vy'],\
+	md.results['TransientSolution'][3]['Vel'],\
+	md.results['TransientSolution'][3]['Pressure'],\
+	md.results['TransientSolution'][3]['Bed'],\
+	md.results['TransientSolution'][3]['Surface'],\
+	md.results['TransientSolution'][3]['Thickness'],\
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test317.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test317.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test317.m	(revision 13643)
@@ -1,3 +1,3 @@
-md=triangle(model,'../Exp/Square.exp',200000);
+md=triangle(model(),'../Exp/Square.exp',200000);
 md=setmask(md,'','');
 md=parameterize(md,'../Par/SquareSheetConstrained.par');
@@ -5,13 +5,13 @@
 md=setflowequation(md,'pattyn','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md=solve(md,TransientSolutionEnum);
+md=solve(md,TransientSolutionEnum());
 
 %Fields and tolerances to track changes
-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsMeltingRate1', ...
-				      'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsMeltingRate2', ...
-					   'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsMeltingRate3'};
+field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsMeltingRate1',...
+	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsMeltingRate2',...
+	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsMeltingRate3'};
 field_tolerances={1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
-						1e-09,1e-09,1e-10,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
-						1e-09,5e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10};
+	1e-09,1e-09,1e-10,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+	1e-09,5e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10};
 field_values={...
 	(md.results.TransientSolution(1).Vx),...
Index: /issm/trunk-jpl/test/NightlyRun/test317.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test317.py	(revision 13643)
+++ /issm/trunk-jpl/test/NightlyRun/test317.py	(revision 13643)
@@ -0,0 +1,56 @@
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+md=triangle(model(),'../Exp/Square.exp',200000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md.extrude(3,1)
+md=setflowequation(md,'pattyn','all')
+md.cluster=generic('name',oshostname(),'np',3)
+md=solve(md,TransientSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsMeltingRate1',\
+	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsMeltingRate2',\
+	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsMeltingRate3']
+field_tolerances=[1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+	1e-09,1e-09,1e-10,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+	1e-09,5e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10]
+field_values=[\
+	md.results['TransientSolution'][1]['Vx'],\
+	md.results['TransientSolution'][1]['Vy'],\
+	md.results['TransientSolution'][1]['Vz'],\
+	md.results['TransientSolution'][1]['Vel'],\
+	md.results['TransientSolution'][1]['Pressure'],\
+	md.results['TransientSolution'][1]['Bed'],\
+	md.results['TransientSolution'][1]['Surface'],\
+	md.results['TransientSolution'][1]['Thickness'],\
+	md.results['TransientSolution'][1]['Temperature'],\
+	md.results['TransientSolution'][1]['BasalforcingsMeltingRate'],\
+	md.results['TransientSolution'][2]['Vx'],\
+	md.results['TransientSolution'][2]['Vy'],\
+	md.results['TransientSolution'][2]['Vz'],\
+	md.results['TransientSolution'][2]['Vel'],\
+	md.results['TransientSolution'][2]['Pressure'],\
+	md.results['TransientSolution'][2]['Bed'],\
+	md.results['TransientSolution'][2]['Surface'],\
+	md.results['TransientSolution'][2]['Thickness'],\
+	md.results['TransientSolution'][2]['Temperature'],\
+	md.results['TransientSolution'][2]['BasalforcingsMeltingRate'],\
+	md.results['TransientSolution'][3]['Vx'],\
+	md.results['TransientSolution'][3]['Vy'],\
+	md.results['TransientSolution'][3]['Vz'],\
+	md.results['TransientSolution'][3]['Vel'],\
+	md.results['TransientSolution'][3]['Pressure'],\
+	md.results['TransientSolution'][3]['Bed'],\
+	md.results['TransientSolution'][3]['Surface'],\
+	md.results['TransientSolution'][3]['Thickness'],\
+	md.results['TransientSolution'][3]['Temperature'],\
+	md.results['TransientSolution'][3]['BasalforcingsMeltingRate'],\
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test318.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test318.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test318.m	(revision 13643)
@@ -1,3 +1,3 @@
-md=triangle(model,'../Exp/Square.exp',180000);
+md=triangle(model(),'../Exp/Square.exp',180000);
 md=setmask(md,'','');
 md=parameterize(md,'../Par/SquareSheetConstrained.par');
@@ -6,10 +6,9 @@
 md.cluster=generic('name',oshostname(),'np',3);
 md.timestepping.time_step=0;
-md=solve(md,SteadystateSolutionEnum);
+md=solve(md,SteadystateSolutionEnum());
 
 %Fields and tolerances to track changes
 field_names     ={'Vx','Vy','Vz','Vel','Pressure','Temperature','BasalforcingsMeltingRate'};
-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13
-};
+field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
 field_values={...
 	(md.results.SteadystateSolution.Vx),...
Index: /issm/trunk-jpl/test/NightlyRun/test318.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test318.py	(revision 13643)
+++ /issm/trunk-jpl/test/NightlyRun/test318.py	(revision 13643)
@@ -0,0 +1,30 @@
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+md=triangle(model(),'../Exp/Square.exp',180000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md.extrude(4,1)
+md=setflowequation(md,'hutter','all')
+md.cluster=generic('name',oshostname(),'np',3)
+md.timestepping.time_step=0
+md=solve(md,SteadystateSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Vx','Vy','Vz','Vel','Pressure','Temperature','BasalforcingsMeltingRate']
+field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+field_values=[\
+	md.results['SteadystateSolution'][1]['Vx'],\
+	md.results['SteadystateSolution'][1]['Vy'],\
+	md.results['SteadystateSolution'][1]['Vz'],\
+	md.results['SteadystateSolution'][1]['Vel'],\
+	md.results['SteadystateSolution'][1]['Pressure'],\
+	md.results['SteadystateSolution'][1]['Temperature'],\
+	md.results['SteadystateSolution'][1]['BasalforcingsMeltingRate'],\
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test319.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test319.m	(revision 13642)
+++ /issm/trunk-jpl/test/NightlyRun/test319.m	(revision 13643)
@@ -1,3 +1,3 @@
-md=triangle(model,'../Exp/Square.exp',200000);
+md=triangle(model(),'../Exp/Square.exp',200000);
 md=setmask(md,'','');
 md=parameterize(md,'../Par/SquareSheetConstrained.par');
@@ -7,10 +7,10 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
-md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
+md.inversion.min_parameters=1.*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200.*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
-md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2.*10^-7;
+md.inversion.gradient_scaling=3.*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
@@ -18,12 +18,12 @@
 
 md.cluster=generic('name',oshostname(),'np',3);
-md=solve(md,DiagnosticSolutionEnum);
+md=solve(md,DiagnosticSolutionEnum());
 
 %Fields and tolerances to track changes
-field_names     ={'Gradient' 'Misfits' 'FrictionCoefficient' 'Pressure' 'Vel' 'Vx' 'Vy'};
+field_names     ={'Gradient','Misfits','FrictionCoefficient','Pressure','Vel','Vx','Vy'};
 field_tolerances={1e-12,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
 field_values={...
 	(md.results.DiagnosticSolution.Gradient1),...
-	md.results.DiagnosticSolution.J,...
+	(md.results.DiagnosticSolution.J),...
 	(md.results.DiagnosticSolution.FrictionCoefficient),...
 	(md.results.DiagnosticSolution.Pressure),...
Index: /issm/trunk-jpl/test/NightlyRun/test319.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test319.py	(revision 13643)
+++ /issm/trunk-jpl/test/NightlyRun/test319.py	(revision 13643)
@@ -0,0 +1,45 @@
+import numpy
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+md=triangle(model(),'../Exp/Square.exp',200000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md=setflowequation(md,'macayeal','all')
+
+#control parameters
+md.inversion.iscontrol=1
+md.inversion.control_parameters=['FrictionCoefficient']
+md.inversion.min_parameters=1.*numpy.ones((md.mesh.numberofvertices,1))
+md.inversion.max_parameters=200.*numpy.ones((md.mesh.numberofvertices,1))
+md.inversion.nsteps=2
+md.inversion.cost_functions=numpy.hstack((103*numpy.ones((md.inversion.nsteps,1)),501*numpy.ones((md.inversion.nsteps,1))))
+md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
+md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
+md.inversion.gradient_scaling=3.*numpy.ones((md.inversion.nsteps,1))
+md.inversion.maxiter_per_step=2*numpy.ones(md.inversion.nsteps)
+md.inversion.step_threshold=0.3*numpy.ones(md.inversion.nsteps)
+md.inversion.vx_obs=md.initialization.vx
+md.inversion.vy_obs=md.initialization.vy
+
+md.cluster=generic('name',oshostname(),'np',3)
+md=solve(md,DiagnosticSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Gradient','Misfits','FrictionCoefficient','Pressure','Vel','Vx','Vy']
+field_tolerances=[1e-12,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+field_values=[\
+	md.results['DiagnosticSolution'][1]['Gradient1'],\
+	md.results['DiagnosticSolution'][1]['J'],\
+	md.results['DiagnosticSolution'][1]['FrictionCoefficient'],\
+	md.results['DiagnosticSolution'][1]['Pressure'],\
+	md.results['DiagnosticSolution'][1]['Vel'],\
+	md.results['DiagnosticSolution'][1]['Vx'],\
+	md.results['DiagnosticSolution'][1]['Vy'],\
+]
