Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/thermal.py
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/thermal.py	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/thermal.py	(revision 13040)
@@ -66,11 +66,11 @@
 		if (ThermalAnalysisEnum() not in analyses and EnthalpyAnalysisEnum() not in analyses) or (solution==TransientSolutionEnum() and not md.transient.isthermal):
 			return md
 
-		md = checkfield(md,'thermal.stabilization','numel',1,'values',[0,1,2])
+		md = checkfield(md,'thermal.stabilization','numel',[1],'values',[0,1,2])
 		md = checkfield(md,'thermal.spctemperature','forcing',1)
 		if EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy and md.mesh.dimension==3:
 			md = checkfield(md,'thermal.spctemperature','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*(md.geometry.surface-md.mesh.z),'message',"spctemperature should be below the adjusted melting point")
-			md = checkfield(md,'thermal.isenthalpy','numel',1,'values',[0,1])
+			md = checkfield(md,'thermal.isenthalpy','numel',[1],'values',[0,1])
 
 		return md
 	# }}}
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/settings.py
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/settings.py	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/settings.py	(revision 13040)
@@ -62,11 +62,11 @@
 	#}}}
 
 	def checkconsistency(self,md,solution,analyses):    # {{{
-		md = checkfield(md,'settings.io_gather','numel',1,'values',[0,1])
-		md = checkfield(md,'settings.lowmem','numel',1,'values',[0,1])
-		md = checkfield(md,'settings.results_as_patches','numel',1,'values',[0,1])
-		md = checkfield(md,'settings.output_frequency','numel',1,'>=',1)
-		md = checkfield(md,'settings.waitonlock','numel',1)
+		md = checkfield(md,'settings.io_gather','numel',[1],'values',[0,1])
+		md = checkfield(md,'settings.lowmem','numel',[1],'values',[0,1])
+		md = checkfield(md,'settings.results_as_patches','numel',[1],'values',[0,1])
+		md = checkfield(md,'settings.output_frequency','numel',[1],'>=',1)
+		md = checkfield(md,'settings.waitonlock','numel',[1])
 
 		return md
 	# }}}
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/transient.py
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/transient.py	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/transient.py	(revision 13040)
@@ -54,10 +54,10 @@
 		if not solution==TransientSolutionEnum():
 			return md
 
-		md = checkfield(md,'transient.isprognostic','numel',1,'values',[0,1])
-		md = checkfield(md,'transient.isdiagnostic','numel',1,'values',[0,1])
-		md = checkfield(md,'transient.isthermal','numel',1,'values',[0,1])
-		md = checkfield(md,'transient.isgroundingline','numel',1,'values',[0,1])
+		md = checkfield(md,'transient.isprognostic','numel',[1],'values',[0,1])
+		md = checkfield(md,'transient.isdiagnostic','numel',[1],'values',[0,1])
+		md = checkfield(md,'transient.isthermal','numel',[1],'values',[0,1])
+		md = checkfield(md,'transient.isgroundingline','numel',[1],'values',[0,1])
 		md = checkfield(md,'transient.requested_outputs','size',[float('NaN')])
 
 
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/inversion.m
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/inversion.m	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/inversion.m	(revision 13040)
@@ -86,7 +86,7 @@
 			md = checkfield(md,'inversion.tao','values',[0 1]);
 			md = checkfield(md,'inversion.incomplete_adjoint','values',[0 1]);
 			md = checkfield(md,'inversion.control_parameters','cell',1,'values',{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'});
-			md = checkfield(md,'inversion.nsteps','numel',1,'>=',1);
+			md = checkfield(md,'inversion.nsteps','numel',[1],'>=',1);
 			md = checkfield(md,'inversion.maxiter_per_step','size',[md.inversion.nsteps 1],'>=',0);
 			md = checkfield(md,'inversion.step_threshold','size',[md.inversion.nsteps 1]);
 			md = checkfield(md,'inversion.cost_functions','size',[md.inversion.nsteps num_costfunc],'values',[101:105 201 501:503 377:378]);
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/surfaceforcings.py
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/surfaceforcings.py	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/surfaceforcings.py	(revision 13040)
@@ -79,8 +79,8 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
 		if PrognosticAnalysisEnum() in analyses:
-			md = checkfield(md,'surfaceforcings.ispdd','numel',1,'values',[0,1])
-			md = checkfield(md,'surfaceforcings.issmbgradients','numel',1,'values',[0,1])
+			md = checkfield(md,'surfaceforcings.ispdd','numel',[1],'values',[0,1])
+			md = checkfield(md,'surfaceforcings.issmbgradients','numel',[1],'values',[0,1])
 			if   self.ispdd:
 				if not self.isdelta18o:
 					md = checkfield(md,'surfaceforcings.monthlytemperatures','forcing',1,'NaN',1)
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/rifts.py
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/rifts.py	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/rifts.py	(revision 13040)
@@ -39,7 +39,7 @@
 	#}}}
 
 	def checkconsistency(self,md,solution,analyses):    # {{{
-		if (not self.riftstruct) or any(isnans(self.riftstruct)):
+		if (not self.riftstruct) or numpy.any(isnans(self.riftstruct)):
 			numrifts=0
 		else:
 			numrifts=len(self.riftstruct)
@@ -49,12 +49,12 @@
 				md.checkmessage("models with rifts are only supported in 2d for now!")
 			if not isinstance(self.riftstruct,list):
 				md.checkmessage("rifts.riftstruct should be a structure!")
-			if any(md.mesh.segmentmarkers>=2):
+			if numpy.any(md.mesh.segmentmarkers>=2):
 				#We have segments with rift markers, but no rift structure!
 				md.checkmessage("model should be processed for rifts (run meshprocessrifts)!")
 			md = checkfield(md,'rifts.riftstruct.fill','values',[WaterEnum(),AirEnum(),IceEnum(),MelangeEnum()])
 		else:
-			if any(numpy.logical_not(isnans(self.riftstruct))):
+			if numpy.any(numpy.logical_not(isnans(self.riftstruct))):
 				md.checkmessage("riftstruct shoud be NaN since numrifts is 0!")
 
 		return md
@@ -63,7 +63,7 @@
 	def marshall(self,fid):    # {{{
 
 		#Process rift info
-		if (not self.riftstruct) or any(isnans(self.riftstruct)):
+		if (not self.riftstruct) or numpy.any(isnans(self.riftstruct)):
 			numrifts=0
 		else:
 			numrifts=len(self.riftstruct)
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/thermal.m
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/thermal.m	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/thermal.m	(revision 13040)
@@ -44,11 +44,11 @@
 			%Early return
 			if (~ismember(ThermalAnalysisEnum(),analyses) & ~ismember(EnthalpyAnalysisEnum(),analyses)) | (solution==TransientSolutionEnum() & md.transient.isthermal==0), return; end
 
-			md = checkfield(md,'thermal.stabilization','numel',1,'values',[0 1 2]);
+			md = checkfield(md,'thermal.stabilization','numel',[1],'values',[0 1 2]);
 			md = checkfield(md,'thermal.spctemperature','forcing',1);
 			if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy & md.mesh.dimension==3),
 				md = checkfield(md,'thermal.spctemperature','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*(md.geometry.surface-md.mesh.z),'message','spctemperature should be below the adjusted melting point');
-				md = checkfield(md,'thermal.isenthalpy','numel',1,'values',[0 1]);
+				md = checkfield(md,'thermal.isenthalpy','numel',[1],'values',[0 1]);
 			end
 		end % }}}
 		function disp(obj) % {{{
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/settings.m
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/settings.m	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/settings.m	(revision 13040)
@@ -42,11 +42,11 @@
 		end % }}}
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'settings.io_gather','numel',1,'values',[0 1]);
-			md = checkfield(md,'settings.lowmem','numel',1,'values',[0 1]);
-			md = checkfield(md,'settings.results_as_patches','numel',1,'values',[0 1]);
-			md = checkfield(md,'settings.output_frequency','numel',1,'>=',1);
-			md = checkfield(md,'settings.waitonlock','numel',1);
+			md = checkfield(md,'settings.io_gather','numel',[1],'values',[0 1]);
+			md = checkfield(md,'settings.lowmem','numel',[1],'values',[0 1]);
+			md = checkfield(md,'settings.results_as_patches','numel',[1],'values',[0 1]);
+			md = checkfield(md,'settings.output_frequency','numel',[1],'>=',1);
+			md = checkfield(md,'settings.waitonlock','numel',[1]);
 
 		end % }}}
 		function disp(obj) % {{{
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/timestepping.py
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/timestepping.py	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/timestepping.py	(revision 13040)
@@ -54,11 +54,11 @@
 
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
-		md = checkfield(md,'timestepping.start_time','numel',1,'NaN',1)
-		md = checkfield(md,'timestepping.final_time','numel',1,'NaN',1)
-		md = checkfield(md,'timestepping.time_step','numel',1,'>=',0,'NaN',1)
-		md = checkfield(md,'timestepping.time_adapt','numel',1,'values',[0,1])
-		md = checkfield(md,'timestepping.cfl_coefficient','numel',1,'>',0,'<=',1)
+		md = checkfield(md,'timestepping.start_time','numel',[1],'NaN',1)
+		md = checkfield(md,'timestepping.final_time','numel',[1],'NaN',1)
+		md = checkfield(md,'timestepping.time_step','numel',[1],'>=',0,'NaN',1)
+		md = checkfield(md,'timestepping.time_adapt','numel',[1],'values',[0,1])
+		md = checkfield(md,'timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1)
 		if self.final_time-self.start_time<0:
 			md.checkmessage("timestepping.final_time should be larger than timestepping.start_time")
 
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/diagnostic.py
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/diagnostic.py	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/diagnostic.py	(revision 13040)
@@ -124,7 +124,7 @@
 		md = checkfield(md,'diagnostic.restol','size',[1],'>',0)
 		md = checkfield(md,'diagnostic.reltol','size',[1])
 		md = checkfield(md,'diagnostic.abstol','size',[1])
-		md = checkfield(md,'diagnostic.isnewton','numel',1,'values',[0,1])
+		md = checkfield(md,'diagnostic.isnewton','numel',[1],'values',[0,1])
 		md = checkfield(md,'diagnostic.stokesreconditioning','size',[1,1],'NaN',1)
 		md = checkfield(md,'diagnostic.viscosity_overshoot','size',[1,1],'NaN',1)
 		if md.mesh.dimension==2:
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/transient.m
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/transient.m	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/transient.m	(revision 13040)
@@ -34,10 +34,10 @@
 			%Early return
 			if solution~=TransientSolutionEnum(), return; end
 
-			md = checkfield(md,'transient.isprognostic','numel',1,'values',[0 1]);
-			md = checkfield(md,'transient.isdiagnostic','numel',1,'values',[0 1]);
-			md = checkfield(md,'transient.isthermal','numel',1,'values',[0 1]);
-			md = checkfield(md,'transient.isgroundingline','numel',1,'values',[0 1]);
+			md = checkfield(md,'transient.isprognostic','numel',[1],'values',[0 1]);
+			md = checkfield(md,'transient.isdiagnostic','numel',[1],'values',[0 1]);
+			md = checkfield(md,'transient.isthermal','numel',[1],'values',[0 1]);
+			md = checkfield(md,'transient.isgroundingline','numel',[1],'values',[0 1]);
 			md = checkfield(md,'transient.requested_outputs','size',[NaN 1]);
 
 		end % }}}
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/timestepping.m
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/timestepping.m	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/timestepping.m	(revision 13040)
@@ -34,11 +34,11 @@
 		end % }}}
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'timestepping.start_time','numel',1,'NaN',1);
-			md = checkfield(md,'timestepping.final_time','numel',1,'NaN',1);
-			md = checkfield(md,'timestepping.time_step','numel',1,'>=',0,'NaN',1);
-			md = checkfield(md,'timestepping.time_adapt','numel',1,'values',[0 1]);
-			md = checkfield(md,'timestepping.cfl_coefficient','numel',1,'>',0,'<=',1);
+			md = checkfield(md,'timestepping.start_time','numel',[1],'NaN',1);
+			md = checkfield(md,'timestepping.final_time','numel',[1],'NaN',1);
+			md = checkfield(md,'timestepping.time_step','numel',[1],'>=',0,'NaN',1);
+			md = checkfield(md,'timestepping.time_adapt','numel',[1],'values',[0 1]);
+			md = checkfield(md,'timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1);
 			if obj.final_time-obj.start_time<0,
 				md = checkmessage(md,'timestepping.final_time should be larger than timestepping.start_time');
 			end 
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/surfaceforcings.m
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/surfaceforcings.m	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/surfaceforcings.m	(revision 13040)
@@ -44,8 +44,8 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
 			if ismember(PrognosticAnalysisEnum(),analyses),
-				md = checkfield(md,'surfaceforcings.ispdd','numel',1,'values',[0 1]);
-				md = checkfield(md,'surfaceforcings.issmbgradients','numel',1,'values',[0 1]);
+				md = checkfield(md,'surfaceforcings.ispdd','numel',[1],'values',[0 1]);
+				md = checkfield(md,'surfaceforcings.issmbgradients','numel',[1],'values',[0 1]);
 				if(obj.ispdd)
 					if(obj.isdelta18o==0)
 						md = checkfield(md,'surfaceforcings.monthlytemperatures','forcing',1,'NaN',1);
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/diagnostic.m
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/diagnostic.m	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/diagnostic.m	(revision 13040)
@@ -75,7 +75,7 @@
 			md = checkfield(md,'diagnostic.restol','size',[1 1],'>',0,'NaN',1);
 			md = checkfield(md,'diagnostic.reltol','size',[1 1]);
 			md = checkfield(md,'diagnostic.abstol','size',[1 1]);
-			md = checkfield(md,'diagnostic.isnewton','numel',1,'values',[0 1]);
+			md = checkfield(md,'diagnostic.isnewton','numel',[1],'values',[0 1]);
 			md = checkfield(md,'diagnostic.stokesreconditioning','size',[1 1],'NaN',1);
 			md = checkfield(md,'diagnostic.viscosity_overshoot','size',[1 1],'NaN',1);
 			if md.mesh.dimension==2,
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/inversion.py
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/inversion.py	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/inversion.py	(revision 13040)
@@ -124,7 +124,7 @@
 		md = checkfield(md,'inversion.tao','values',[0,1])
 		md = checkfield(md,'inversion.incomplete_adjoint','values',[0,1])
 		md = checkfield(md,'inversion.control_parameters','cell',1,'values',['BalancethicknessThickeningRate','FrictionCoefficient','MaterialsRheologyBbar','Vx','Vy'])
-		md = checkfield(md,'inversion.nsteps','numel',1,'>=',1)
+		md = checkfield(md,'inversion.nsteps','numel',[1],'>=',1)
 		md = checkfield(md,'inversion.maxiter_per_step','size',[md.inversion.nsteps],'>=',0)
 		md = checkfield(md,'inversion.step_threshold','size',[md.inversion.nsteps])
 		md = checkfield(md,'inversion.cost_functions','size',[md.inversion.nsteps,num_costfunc],'values',[101,102,103,104,105,201,501,502,503,377,378])
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/flowequation.py
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/flowequation.py	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/flowequation.py	(revision 13040)
@@ -53,9 +53,9 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
 		if DiagnosticHorizAnalysisEnum() in analyses:
-			md = checkfield(md,'flowequation.ismacayealpattyn','numel',1,'values',[0,1])
-			md = checkfield(md,'flowequation.ishutter','numel',1,'values',[0,1])
-			md = checkfield(md,'flowequation.isstokes','numel',1,'values',[0,1])
+			md = checkfield(md,'flowequation.ismacayealpattyn','numel',[1],'values',[0,1])
+			md = checkfield(md,'flowequation.ishutter','numel',[1],'values',[0,1])
+			md = checkfield(md,'flowequation.isstokes','numel',[1],'values',[0,1])
 			md = checkfield(md,'flowequation.bordermacayeal','size',[md.mesh.numberofvertices],'values',[0,1])
 			md = checkfield(md,'flowequation.borderpattyn','size',[md.mesh.numberofvertices],'values',[0,1])
 			md = checkfield(md,'flowequation.borderstokes','size',[md.mesh.numberofvertices],'values',[0,1])
Index: /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/flowequation.m
===================================================================
--- /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/flowequation.m	(revision 13039)
+++ /u/astrid-r1b/morlighe/issmuci/trunk-jpl/../trunk-jpl/src/m/classes/flowequation.m	(revision 13040)
@@ -30,9 +30,9 @@
 
 			if ismember(DiagnosticHorizAnalysisEnum(),analyses),
 
-				md = checkfield(md,'flowequation.ismacayealpattyn','numel',1,'values',[0 1]);
-				md = checkfield(md,'flowequation.ishutter','numel',1,'values',[0 1]);
-				md = checkfield(md,'flowequation.isstokes','numel',1,'values',[0 1]);
+				md = checkfield(md,'flowequation.ismacayealpattyn','numel',[1],'values',[0 1]);
+				md = checkfield(md,'flowequation.ishutter','numel',[1],'values',[0 1]);
+				md = checkfield(md,'flowequation.isstokes','numel',[1],'values',[0 1]);
 				md = checkfield(md,'flowequation.bordermacayeal','size',[md.mesh.numberofvertices 1],'values',[0 1]);
 				md = checkfield(md,'flowequation.borderpattyn','size',[md.mesh.numberofvertices 1],'values',[0 1]);
 				md = checkfield(md,'flowequation.borderstokes','size',[md.mesh.numberofvertices 1],'values',[0 1]);
