Index: /issm/trunk-jpl/test/NightlyRun/test341.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test341.py	(revision 20335)
+++ /issm/trunk-jpl/test/NightlyRun/test341.py	(revision 20335)
@@ -0,0 +1,46 @@
+#Test Name: SquareSheetConstrainedCMm1qn3DragHO
+import numpy
+from model import *
+from m1qn3inversion 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,'HO','all');
+
+#control parameters
+md.inversion=m1qn3inversion(md.inversion);
+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.maxsteps=2
+md.inversion.maxiter=6
+md.inversion.cost_functions=[102,501]
+md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
+md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
+md.inversion.vx_obs=md.initialization.vx;
+md.inversion.vy_obs=md.initialization.vy;
+
+md.cluster=generic('name',oshostname(),'np',3);
+md=solve(md,StressbalanceSolutionEnum());
+
+#Fields and tolerances to track changes
+field_names     =['Gradient','FrictionCoefficient','Pressure','Vel','Vx','Vy']
+field_tolerances=[1e-08,1e-9,1e-10,1e-09,1e-09,1e-09]
+field_values=[\
+	md.results.StressbalanceSolution.Gradient1,\
+	md.results.StressbalanceSolution.FrictionCoefficient,\
+	md.results.StressbalanceSolution.Pressure,\
+	md.results.StressbalanceSolution.Vel,\
+	md.results.StressbalanceSolution.Vx,\
+	md.results.StressbalanceSolution.Vy,\
+]
