Index: /issm/trunk/src/m/classes/basalforcings.m
===================================================================
--- /issm/trunk/src/m/classes/basalforcings.m	(revision 9748)
+++ /issm/trunk/src/m/classes/basalforcings.m	(revision 9749)
@@ -37,4 +37,6 @@
 		function checkconsistency(obj,md) % {{{
 
+			fields={'melting_rate','geothermalflux'};
+			checksize(md,'basalforcings',fields,[md.mesh.numberofvertices 1]);
 		end % }}}
 	end
Index: /issm/trunk/src/m/classes/constants.m
===================================================================
--- /issm/trunk/src/m/classes/constants.m	(revision 9748)
+++ /issm/trunk/src/m/classes/constants.m	(revision 9749)
@@ -47,4 +47,8 @@
 		function flag = checkconsistency(obj,md) % {{{
 
+			fields={'g'};
+			checknan(md,'constants',fields);
+			checkgreaterstrict(md,'constants',fields,0);
+
 		end % }}}
 	end
Index: /issm/trunk/src/m/classes/diagnostic.m
===================================================================
--- /issm/trunk/src/m/classes/diagnostic.m	(revision 9748)
+++ /issm/trunk/src/m/classes/diagnostic.m	(revision 9749)
@@ -78,4 +78,11 @@
 		end % }}}
 		function checkconsistency(obj,md) % {{{
+
+			fields={'restol','maxiter'};
+			checknan(md,'diagnostic',fields);
+
+			fields={'abstol','restol','reltol'};
+			checkgreaterstrict(md,'diagnostic',fields,0);
+
 			fields={'icefront'};
 			if (md.mesh.dimension==2),
@@ -86,4 +93,14 @@
 			fields={'icefront(:,end)'};
 			checkvalues(md,'diagnostic',fields,[0 1 2]);
+
+			fields={'referential'};
+			checksize(md,'diagnostic',fields,[md.mesh.numberofvertices 6]);
+
+			if ~isempty(md.diagnostic.requested_outputs),
+				if(size(md.diagnostic.requested_outputs,2)~=1),
+					checkmessage(['model ' md.miscellaneous.name ' requested outputs should be a column vector']);
+				end
+			end
+
 		end % }}}
 		function disp(obj) % {{{
Index: /issm/trunk/src/m/classes/friction.m
===================================================================
--- /issm/trunk/src/m/classes/friction.m	(revision 9748)
+++ /issm/trunk/src/m/classes/friction.m	(revision 9749)
@@ -38,4 +38,13 @@
 		function checkconsistency(obj,md) % {{{
 
+			fields={'coefficient','p','q'};
+			checknan(md,'friction',fields);
+			checkgreater(md,'friction',fields,0);
+
+			fields={'p','q'};
+			checksize(md,'friction',fields,[md.mesh.numberofelements 1]);
+
+			fields={'coefficient'};
+			checksize(md,'friction',fields,[md.mesh.numberofvertices 1]);
 		end % }}}
 		function disp(obj) % {{{
Index: /issm/trunk/src/m/classes/geometry.m
===================================================================
--- /issm/trunk/src/m/classes/geometry.m	(revision 9748)
+++ /issm/trunk/src/m/classes/geometry.m	(revision 9749)
@@ -39,5 +39,14 @@
 		end % }}}
 		function checkconsistency(obj,md) % {{{
+			fields={'surface','thickness','bed'};
+			checknan(md,'geometry',fields);
+			checksize(md,'geometry',fields,[md.mesh.numberofvertices 1]);
 
+			fields={'thickness'};
+			checkgreater(md,'geometry',fields,0);
+
+			if any((obj.thickness-obj.surface+obj.bed)>10^-9),
+				checkmessage(['equality thickness=surface-bed violated']);
+			end 
 		end % }}}
 	end
Index: /issm/trunk/src/m/classes/inversion.m
===================================================================
--- /issm/trunk/src/m/classes/inversion.m	(revision 9748)
+++ /issm/trunk/src/m/classes/inversion.m	(revision 9749)
@@ -88,4 +88,11 @@
 		function checkconsistency(obj,md) % {{{
 
+			%Early return
+			if ~obj.iscontrol, return; end
+
+			%Check NaN
+			fields={'nsteps','maxiter_per_step'};
+			checknan(md,'materials',fields);
+
 		end % }}}
 		function disp(obj) % {{{
Index: /issm/trunk/src/m/classes/mask.m
===================================================================
--- /issm/trunk/src/m/classes/mask.m	(revision 9748)
+++ /issm/trunk/src/m/classes/mask.m	(revision 9749)
@@ -41,4 +41,13 @@
 		function checkconsistency(obj,md) % {{{
 
+			fields=properties('mask');
+			checknan(md,'mask',fields);
+			checkvalues(md,'mask',fields,[0 1]);
+
+			fields={'elementonfloatingice','elementongroundedice','elementonwater'};
+			checksize(md,'mask',fields,[md.mesh.numberofelements 1]);
+
+			fields={'vertexonfloatingice','vertexongroundedice','vertexonwater'};
+			checksize(md,'mask',fields,[md.mesh.numberofvertices 1]);
 		end % }}}
 		function disp(obj) % {{{
Index: /issm/trunk/src/m/classes/materials.m
===================================================================
--- /issm/trunk/src/m/classes/materials.m	(revision 9748)
+++ /issm/trunk/src/m/classes/materials.m	(revision 9749)
@@ -76,5 +76,13 @@
 		end % }}}
 		function checkconsistency(obj,md) % {{{
+			fields={'rho_ice','rho_water','rheology_B','rheology_n'};
+			checknan(md,'materials',fields);
+			checkgreater(md,'materials',fields,0);
 
+			fields={'rheology_n'};
+			checksize(md,'materials',fields,[md.mesh.numberofelements 1]);
+
+			fields={'rheology_B'};
+			checksize(md,'materials',fields,[md.mesh.numberofvertices 1]);
 		end % }}}
 		function disp(obj) % {{{
Index: /issm/trunk/src/m/classes/mesh.m
===================================================================
--- /issm/trunk/src/m/classes/mesh.m	(revision 9748)
+++ /issm/trunk/src/m/classes/mesh.m	(revision 9749)
@@ -80,6 +80,18 @@
 		function checkconsistency(obj,md) % {{{
 
-			fields={'dimension'};
+			fields={'x','y','z','elements','elementonbed','elementonsurface','vertexonbed','vertexonsurface','elementconnectivity'};
+			checknan(md,'mesh',fields);
+
+			fields={'elements','elementonbed','elementonsurface','vertexonbed','vertexonsurface','elementconnectivity'};
+			checkgreater(md,'mesh',fields,0);
+
+			fields={'dimension','elements','numberofelements','numberofvertices'};
 			checkgreaterstrict(md,'mesh',fields,0);
+			
+			fields={'vertexonbed','vertexonsurface','x','y','z'};
+			checksize(md,'mesh',fields,[md.mesh.numberofvertices 1]);
+
+			fields={'elementonbed','elementonsurface'};
+			checksize(md,'mesh',fields,[md.mesh.numberofelements 1]);
 
 			fields={'elements'};
Index: /issm/trunk/src/m/classes/settings.m
===================================================================
--- /issm/trunk/src/m/classes/settings.m	(revision 9748)
+++ /issm/trunk/src/m/classes/settings.m	(revision 9749)
@@ -54,4 +54,8 @@
 		function checkconsistency(obj,md) % {{{
 
+			fields={'lowmem'};
+			checknan(md,'settings',fields);
+			checkvalues(md,'settings',fields,[0 1]);
+
 		end % }}}
 	end
