Index: /issm/trunk-jpl/src/m/classes/frictionwaterlayer.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/frictionwaterlayer.py	(revision 23783)
+++ /issm/trunk-jpl/src/m/classes/frictionwaterlayer.py	(revision 23784)
@@ -27,5 +27,5 @@
 
 		md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1)
-		md = checkfield(md,'fieldname','friction.f','size',[1,1],'NaN',1,'Inf',1)
+		md = checkfield(md,'fieldname','friction.f','size',[1],'NaN',1,'Inf',1)
 		md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
 		md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
Index: /issm/trunk-jpl/src/m/consistency/checkfield.py
===================================================================
--- /issm/trunk-jpl/src/m/consistency/checkfield.py	(revision 23783)
+++ /issm/trunk-jpl/src/m/consistency/checkfield.py	(revision 23784)
@@ -113,7 +113,10 @@
 
         else:
-            for i in range(np.size(fieldsize)):
-                if (not np.isnan(fieldsize[i])) and (np.shape(field)[i] != fieldsize[i]):
-                    md = md.checkmessage(options.getfieldvalue('message',"field {} dimension # {} should be of size {}".format(fieldname,i,fieldsize[i])))
+            if len(np.shape(field)) < len(fieldsize):
+                    md = md.checkmessage(options.getfieldvalue('message',"field {} has size {} but should be size {}".format(fieldname,np.shape(field),fieldsize)))
+            else:
+                for i in range(np.size(fieldsize)):
+                    if (not np.isnan(fieldsize[i])) and (np.shape(field)[i] != fieldsize[i]):
+                        md = md.checkmessage(options.getfieldvalue('message',"field {} dimension # {} should be of size {}".format(fieldname,i,fieldsize[i])))
 
     #Check numel
Index: /issm/trunk-jpl/test/NightlyRun/test319.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test319.py	(revision 23783)
+++ /issm/trunk-jpl/test/NightlyRun/test319.py	(revision 23784)
@@ -18,11 +18,11 @@
 md.inversion.iscontrol=1
 md.inversion.control_parameters=['FrictionCoefficient']
-md.inversion.min_parameters=1.*np.ones((md.mesh.numberofvertices))
-md.inversion.max_parameters=200.*np.ones((md.mesh.numberofvertices))
+md.inversion.min_parameters=1.*np.ones((md.mesh.numberofvertices,len(md.inversion.control_parameters)))
+md.inversion.max_parameters=200.*np.ones((md.mesh.numberofvertices,len(md.inversion.control_parameters)))
 md.inversion.nsteps=2
 md.inversion.cost_functions=[103,501]
 md.inversion.cost_functions_coefficients=np.ones((md.mesh.numberofvertices,2))
 md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
-md.inversion.gradient_scaling=3.*np.ones((md.inversion.nsteps))
+md.inversion.gradient_scaling=3.*np.ones((md.inversion.nsteps,len(md.inversion.control_parameters)))
 md.inversion.maxiter_per_step=2*np.ones(md.inversion.nsteps)
 md.inversion.step_threshold=0.3*np.ones(md.inversion.nsteps)
Index: /issm/trunk-jpl/test/NightlyRun/test511.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test511.py	(revision 23783)
+++ /issm/trunk-jpl/test/NightlyRun/test511.py	(revision 23784)
@@ -23,10 +23,10 @@
 md.inversion.iscontrol=1
 md.inversion.control_parameters=['MaterialsRheologyBbar']
-md.inversion.min_parameters=10.**6*np.ones((md.mesh.numberofvertices))
-md.inversion.max_parameters=2.*10**9*np.ones((md.mesh.numberofvertices))
+md.inversion.min_parameters=10.**6*np.ones((md.mesh.numberofvertices,len(md.inversion.control_parameters)))
+md.inversion.max_parameters=2.*10**9*np.ones((md.mesh.numberofvertices,len(md.inversion.control_parameters)))
 md.inversion.nsteps=2
 md.inversion.cost_functions=[101]
-md.inversion.cost_functions_coefficients=np.ones((md.mesh.numberofvertices))
-md.inversion.gradient_scaling=10.**8*np.ones((md.inversion.nsteps))
+md.inversion.cost_functions_coefficients=np.ones((md.mesh.numberofvertices,len(md.inversion.cost_functions)))
+md.inversion.gradient_scaling=10.**8*np.ones((md.inversion.nsteps,len(md.inversion.control_parameters)))
 md.inversion.maxiter_per_step=2.*np.ones((md.inversion.nsteps))
 md.inversion.step_threshold=0.99*np.ones((md.inversion.nsteps))
Index: /issm/trunk-jpl/test/NightlyRun/test611.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test611.py	(revision 23783)
+++ /issm/trunk-jpl/test/NightlyRun/test611.py	(revision 23784)
@@ -21,9 +21,9 @@
 md.inversion.control_parameters=['BalancethicknessThickeningRate']
 md.inversion.thickness_obs=md.geometry.thickness
-md.inversion.min_parameters=-50.*np.ones((md.mesh.numberofvertices))
-md.inversion.max_parameters=50.*np.ones((md.mesh.numberofvertices))
+md.inversion.min_parameters=-50.*np.ones((md.mesh.numberofvertices,len(md.inversion.control_parameters)))
+md.inversion.max_parameters=50.*np.ones((md.mesh.numberofvertices,len(md.inversion.control_parameters)))
 md.inversion.cost_functions=[201]
-md.inversion.cost_functions_coefficients=np.ones((md.mesh.numberofvertices))
-md.inversion.gradient_scaling=10./md.constants.yts*np.ones((md.inversion.nsteps))
+md.inversion.cost_functions_coefficients=np.ones((md.mesh.numberofvertices,len(md.inversion.cost_functions)))
+md.inversion.gradient_scaling=10./md.constants.yts*np.ones((md.inversion.nsteps,len(md.inversion.control_parameters)))
 md.inversion.maxiter_per_step=4*np.ones((md.inversion.nsteps))
 md.inversion.step_threshold=0.99*np.ones((md.inversion.nsteps))
Index: /issm/trunk-jpl/test/NightlyRun/test613.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test613.py	(revision 23783)
+++ /issm/trunk-jpl/test/NightlyRun/test613.py	(revision 23784)
@@ -33,5 +33,5 @@
 md.inversion.max_parameters=np.vstack((+2000.*np.ones((md.mesh.numberofvertices)),+2000.*np.ones((md.mesh.numberofvertices)))).T
 md.inversion.cost_functions=[201]
-md.inversion.cost_functions_coefficients=np.ones((md.mesh.numberofvertices))
+md.inversion.cost_functions_coefficients=np.ones((md.mesh.numberofvertices,len(md.inversion.cost_functions)))
 md.inversion.maxiter_per_step=4*np.ones((md.inversion.nsteps))
 md.inversion.step_threshold=0.99*np.ones((md.inversion.nsteps))
