Index: /issm/trunk-jpl/src/m/classes/autodiff.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/autodiff.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/autodiff.m	(revision 16764)
@@ -42,13 +42,13 @@
 
 			%Driver value:
-			md = checkfield(md,'autodiff.driver','values',{'fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'});
+			md = checkfield(md,'fieldname','autodiff.driver','values',{'fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'});
 			
 			%buffer values: 
-			md = checkfield(md,'autodiff.obufsize','>=',16);
-			md = checkfield(md,'autodiff.lbufsize','>=',16);
-			md = checkfield(md,'autodiff.cbufsize','>=',16);
-			md = checkfield(md,'autodiff.tbufsize','>=',16);
-			md = checkfield(md,'autodiff.gcTriggerRatio','>=',0);
-			md = checkfield(md,'autodiff.gcTriggerMaxSize','>=',65536);
+			md = checkfield(md,'fieldname','autodiff.obufsize','>=',16);
+			md = checkfield(md,'fieldname','autodiff.lbufsize','>=',16);
+			md = checkfield(md,'fieldname','autodiff.cbufsize','>=',16);
+			md = checkfield(md,'fieldname','autodiff.tbufsize','>=',16);
+			md = checkfield(md,'fieldname','autodiff.gcTriggerRatio','>=',0);
+			md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',65536);
 
 			%go through our dependents and independents and check consistency: 
Index: /issm/trunk-jpl/src/m/classes/autodiff.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/autodiff.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/autodiff.py	(revision 16764)
@@ -62,13 +62,13 @@
 			return md 
 		
-		md = checkfield(md,'autodiff.obufsize','>=',524288)
-		md = checkfield(md,'autodiff.lbufsize','>=',524288)
-		md = checkfield(md,'autodiff.cbufsize','>=',524288)
-		md = checkfield(md,'autodiff.tbufsize','>=',524288)
-		md = checkfield(md,'autodiff.gcTriggerRatio','>=',2.0)
-		md = checkfield(md,'autodiff.gcTriggerMaxSize','>=',2000000)
+		md = checkfield(md,'fieldname','autodiff.obufsize','>=',524288)
+		md = checkfield(md,'fieldname','autodiff.lbufsize','>=',524288)
+		md = checkfield(md,'fieldname','autodiff.cbufsize','>=',524288)
+		md = checkfield(md,'fieldname','autodiff.tbufsize','>=',524288)
+		md = checkfield(md,'fieldname','autodiff.gcTriggerRatio','>=',2.0)
+		md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',2000000)
 
 		#Driver value:
-		md = checkfield(md,'autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'])
+		md = checkfield(md,'fieldname','autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'])
 
 		#go through our dependents and independents and check consistency: 
Index: /issm/trunk-jpl/src/m/classes/balancethickness.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/balancethickness.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/balancethickness.m	(revision 16764)
@@ -29,7 +29,7 @@
 			if solution~=BalancethicknessSolutionEnum(), return; end
 
-			md = checkfield(md,'balancethickness.spcthickness');
-			md = checkfield(md,'balancethickness.thickening_rate','size',[md.mesh.numberofvertices 1],'NaN',1);
-			md = checkfield(md,'balancethickness.stabilization','size',[1 1],'values',[0 1 2 3]);
+			md = checkfield(md,'fieldname','balancethickness.spcthickness');
+			md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices 1],'NaN',1);
+			md = checkfield(md,'fieldname','balancethickness.stabilization','size',[1 1],'values',[0 1 2 3]);
 		end % }}}
 		function disp(obj) % {{{
Index: /issm/trunk-jpl/src/m/classes/balancethickness.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/balancethickness.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/balancethickness.py	(revision 16764)
@@ -42,7 +42,7 @@
 			return md
 
-		md = checkfield(md,'balancethickness.spcthickness')
-		md = checkfield(md,'balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1)
-		md = checkfield(md,'balancethickness.stabilization','size',[1],'values',[0,1,2,3])
+		md = checkfield(md,'fieldname','balancethickness.spcthickness')
+		md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1)
+		md = checkfield(md,'fieldname','balancethickness.stabilization','size',[1],'values',[0,1,2,3])
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/basalforcings.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/basalforcings.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/basalforcings.m	(revision 16764)
@@ -25,12 +25,12 @@
 
 			if ismember(MasstransportAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.ismasstransport==0),
-				md = checkfield(md,'basalforcings.melting_rate','NaN',1,'forcing',1);
+				md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'forcing',1);
 			end
 			if ismember(BalancethicknessAnalysisEnum(),analyses),
-				md = checkfield(md,'basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
 			end
 			if ismember(ThermalAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isthermal==0),
-				md = checkfield(md,'basalforcings.melting_rate','NaN',1,'forcing',1);
-				md = checkfield(md,'basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0);
+				md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'forcing',1);
+				md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0);
 			end
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/basalforcings.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/basalforcings.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/basalforcings.py	(revision 16764)
@@ -36,12 +36,12 @@
 
 		if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.ismasstransport):
-			md = checkfield(md,'basalforcings.melting_rate','NaN',1,'forcing',1)
+			md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'forcing',1)
 
 		if BalancethicknessAnalysisEnum() in analyses:
-			md = checkfield(md,'basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
 
 		if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.isthermal):
-			md = checkfield(md,'basalforcings.melting_rate','NaN',1,'forcing',1)
-			md = checkfield(md,'basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0)
+			md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'forcing',1)
+			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0)
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/constants.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/constants.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/constants.m	(revision 16764)
@@ -33,7 +33,7 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-%			md = checkfield(md,'constants.g','>',0,'size',[1 1]);
-			md = checkfield(md,'constants.yts','>',0,'size',[1 1]);
-			md = checkfield(md,'constants.referencetemperature','size',[1 1]);
+%			md = checkfield(md,'fieldname','constants.g','>',0,'size',[1 1]);
+			md = checkfield(md,'fieldname','constants.yts','>',0,'size',[1 1]);
+			md = checkfield(md,'fieldname','constants.referencetemperature','size',[1 1]);
 
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/constants.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/constants.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/constants.py	(revision 16764)
@@ -45,7 +45,7 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
-		md = checkfield(md,'constants.g','>',0,'size',[1])
-		md = checkfield(md,'constants.yts','>',0,'size',[1])
-		md = checkfield(md,'constants.referencetemperature','size',[1])
+		md = checkfield(md,'fieldname','constants.g','>',0,'size',[1])
+		md = checkfield(md,'fieldname','constants.yts','>',0,'size',[1])
+		md = checkfield(md,'fieldname','constants.referencetemperature','size',[1])
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/damage.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/damage.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/damage.m	(revision 16764)
@@ -80,22 +80,22 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 			
-			md = checkfield(md,'damage.D','>=',0,'<=',obj.max_damage,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'damage.max_damage','<',1,'>=',0);
-			md = checkfield(md,'damage.law','values',{'undamaged','pralong'});
-			md = checkfield(md,'damage.spcdamage','forcing',1);
+			md = checkfield(md,'fieldname','damage.D','>=',0,'<=',obj.max_damage,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0);
+			md = checkfield(md,'fieldname','damage.law','values',{'undamaged','pralong'});
+			md = checkfield(md,'fieldname','damage.spcdamage','forcing',1);
 			
-			md = checkfield(md,'damage.stabilization','numel',[1],'values',[0 1 2]);
-			md = checkfield(md,'damage.maxiter','>=0',0);
-			md = checkfield(md,'damage.penalty_factor','>=0',0);
-			md = checkfield(md,'damage.penalty_lock','>=0',0);
-			md = checkfield(md,'damage.penalty_threshold','>=0',0);
+			md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0 1 2]);
+			md = checkfield(md,'fieldname','damage.maxiter','>=0',0);
+			md = checkfield(md,'fieldname','damage.penalty_factor','>=0',0);
+			md = checkfield(md,'fieldname','damage.penalty_lock','>=0',0);
+			md = checkfield(md,'fieldname','damage.penalty_threshold','>=0',0);
 
 			if strcmpi(obj.law,'pralong'),
-				md = checkfield(md,'damage.healing','>=',0);
-				md = checkfield(md,'damage.c1','>=',0);
-				md = checkfield(md,'damage.c2','>=',0);
-				md = checkfield(md,'damage.c3','>=',0);
-				md = checkfield(md,'damage.c4','>=',0);
-				md = checkfield(md,'damage.stress_threshold','>=',0);
+				md = checkfield(md,'fieldname','damage.healing','>=',0);
+				md = checkfield(md,'fieldname','damage.c1','>=',0);
+				md = checkfield(md,'fieldname','damage.c2','>=',0);
+				md = checkfield(md,'fieldname','damage.c3','>=',0);
+				md = checkfield(md,'fieldname','damage.c4','>=',0);
+				md = checkfield(md,'fieldname','damage.stress_threshold','>=',0);
 			elseif strcmpi(obj.law,'undamaged'),
 				if (solution==DamageEvolutionSolutionEnum),
Index: /issm/trunk-jpl/src/m/classes/damage.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/damage.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/damage.py	(revision 16764)
@@ -99,22 +99,22 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
-		md = checkfield(md,'damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'damage.max_damage','<',1,'>=',0)
-		md = checkfield(md,'damage.law','values',['undamaged','pralong'])
-		md = checkfield(md,'damage.spcdamage','forcing',1)
+		md = checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0)
+		md = checkfield(md,'fieldname','damage.law','values',['undamaged','pralong'])
+		md = checkfield(md,'fieldname','damage.spcdamage','forcing',1)
 			
-		md = checkfield(md,'damage.stabilization','numel',[1],'values',[0,1,2]);
-		md = checkfield(md,'damage.maxiter','>=0',0);
-		md = checkfield(md,'damage.penalty_factor','>=0',0);
-		md = checkfield(md,'damage.penalty_lock','>=0',0);
-		md = checkfield(md,'damage.penalty_threshold','>=0',0);
+		md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2]);
+		md = checkfield(md,'fieldname','damage.maxiter','>=0',0);
+		md = checkfield(md,'fieldname','damage.penalty_factor','>=0',0);
+		md = checkfield(md,'fieldname','damage.penalty_lock','>=0',0);
+		md = checkfield(md,'fieldname','damage.penalty_threshold','>=0',0);
 
 		if self.law == 'pralong':
-			md = checkfield(md,'damage.healing','>=',0);
-			md = checkfield(md,'damage.c1','>=',0)
-			md = checkfield(md,'damage.c2','>=',0)
-			md = checkfield(md,'damage.c3','>=',0)
-			md = checkfield(md,'damage.c4','>=',0)
-			md = checkfield(md,'damage.stress_threshold','>=',0)
+			md = checkfield(md,'fieldname','damage.healing','>=',0);
+			md = checkfield(md,'fieldname','damage.c1','>=',0)
+			md = checkfield(md,'fieldname','damage.c2','>=',0)
+			md = checkfield(md,'fieldname','damage.c3','>=',0)
+			md = checkfield(md,'fieldname','damage.c4','>=',0)
+			md = checkfield(md,'fieldname','damage.stress_threshold','>=',0)
 		elif strcmpi(self.law,'undamaged'):
 			if (solution==DamageEvolutionSolutionEnum):
Index: /issm/trunk-jpl/src/m/classes/flaim.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/flaim.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/flaim.m	(revision 16764)
@@ -37,9 +37,9 @@
 			if solution~=FlaimSolutionEnum(), return; end
 
-			md = checkfield(md,'flaim.tracks','file',1);
+			md = checkfield(md,'fieldname','flaim.tracks','file',1);
 			if any(isnan(md.flaim.criterion)) || isempty(md.flaim.criterion)
-				md = checkfield(md,'flaim.targets','file',1);
+				md = checkfield(md,'fieldname','flaim.targets','file',1);
 			else
-				md = checkfield(md,'flaim.criterion','numel',[md.mesh.numberofvertices md.mesh.numberofelements]);
+				md = checkfield(md,'fieldname','flaim.criterion','numel',[md.mesh.numberofvertices md.mesh.numberofelements]);
 			end
 
Index: /issm/trunk-jpl/src/m/classes/flaim.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/flaim.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/flaim.py	(revision 16764)
@@ -63,9 +63,9 @@
 			return md
 
-		md = checkfield(md,'flaim.tracks','file',1)
+		md = checkfield(md,'fieldname','flaim.tracks','file',1)
 		if numpy.any(numpy.isnan(md.flaim.criterion)) or not md.flaim.criterion:
-			md = checkfield(md,'flaim.targets','file',1)
+			md = checkfield(md,'fieldname','flaim.targets','file',1)
 		else:
-			md = checkfield(md,'flaim.criterion','numel',[md.mesh.numberofvertices,md.mesh.numberofelements])
+			md = checkfield(md,'fieldname','flaim.criterion','numel',[md.mesh.numberofvertices,md.mesh.numberofelements])
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/flowequation.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/flowequation.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/flowequation.m	(revision 16764)
@@ -80,24 +80,24 @@
 			if ismember(StressbalanceAnalysisEnum(),analyses),
 
-				md = checkfield(md,'flowequation.isSIA','numel',[1],'values',[0 1]);
-				md = checkfield(md,'flowequation.isSSA','numel',[1],'values',[0 1]);
-				md = checkfield(md,'flowequation.isL1L2','numel',[1],'values',[0 1]);
-				md = checkfield(md,'flowequation.isHO','numel',[1],'values',[0 1]);
-				md = checkfield(md,'flowequation.isFS','numel',[1],'values',[0 1]);
-				md = checkfield(md,'flowequation.fe_SSA','values',{'P1','P1bubble','P1bubblecondensed','P2'});
-				md = checkfield(md,'flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'});
-				md = checkfield(md,'flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'});
-				md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]);
-				md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]);
-				md = checkfield(md,'flowequation.borderFS','size',[md.mesh.numberofvertices 1],'values',[0 1]);
+				md = checkfield(md,'fieldname','flowequation.isSIA','numel',[1],'values',[0 1]);
+				md = checkfield(md,'fieldname','flowequation.isSSA','numel',[1],'values',[0 1]);
+				md = checkfield(md,'fieldname','flowequation.isL1L2','numel',[1],'values',[0 1]);
+				md = checkfield(md,'fieldname','flowequation.isHO','numel',[1],'values',[0 1]);
+				md = checkfield(md,'fieldname','flowequation.isFS','numel',[1],'values',[0 1]);
+				md = checkfield(md,'fieldname','flowequation.fe_SSA','values',{'P1','P1bubble','P1bubblecondensed','P2'});
+				md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'});
+				md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'});
+				md = checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]);
+				md = checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]);
+				md = checkfield(md,'fieldname','flowequation.borderFS','size',[md.mesh.numberofvertices 1],'values',[0 1]);
 				if strcmp(meshtype(md.mesh),'2Dhorizontal')
-					md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[1:2]);
-					md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[1:2]);
+					md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[1:2]);
+					md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[1:2]);
 				elseif strcmp(meshtype(md.mesh),'2Dvertical')
-					md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[4]);
-					md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[4]);
+					md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[4]);
+					md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[4]);
 				elseif strcmp(meshtype(md.mesh),'3D'),
-					md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0:8]);
-					md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[0:8]);
+					md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0:8]);
+					md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[0:8]);
 				else
 					error('Case not supported yet');
Index: /issm/trunk-jpl/src/m/classes/flowequation.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/flowequation.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/flowequation.py	(revision 16764)
@@ -68,21 +68,21 @@
 
 		if StressbalanceAnalysisEnum() in analyses:
-			md = checkfield(md,'flowequation.isSIA','numel',[1],'values',[0,1])
-			md = checkfield(md,'flowequation.isSSA','numel',[1],'values',[0,1])
-			md = checkfield(md,'flowequation.isL1L2','numel',[1],'values',[0,1])
-			md = checkfield(md,'flowequation.isHO','numel',[1],'values',[0,1])
-			md = checkfield(md,'flowequation.isFS','numel',[1],'values',[0,1])
-			md = checkfield(md,'flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2'])
-			md = checkfield(md,'flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'])
-			md = checkfield(md,'flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'])
-			md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1])
-			md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1])
-			md = checkfield(md,'flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1])
+			md = checkfield(md,'fieldname','flowequation.isSIA','numel',[1],'values',[0,1])
+			md = checkfield(md,'fieldname','flowequation.isSSA','numel',[1],'values',[0,1])
+			md = checkfield(md,'fieldname','flowequation.isL1L2','numel',[1],'values',[0,1])
+			md = checkfield(md,'fieldname','flowequation.isHO','numel',[1],'values',[0,1])
+			md = checkfield(md,'fieldname','flowequation.isFS','numel',[1],'values',[0,1])
+			md = checkfield(md,'fieldname','flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2'])
+			md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'])
+			md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'])
+			md = checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1])
+			md = checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1])
+			md = checkfield(md,'fieldname','flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1])
 			if strcmp(md.mesh.meshtype(),'2Dhorizontal'):
-				md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',[1,2])
-				md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements],'values',[1,2])
+				md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',[1,2])
+				md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],'values',[1,2])
 			elif strcmp(md.mesh.meshtype(),'3D'):
-				md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',numpy.arange(0,8+1))
-				md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements],'values',numpy.arange(0,8+1))
+				md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',numpy.arange(0,8+1))
+				md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],'values',numpy.arange(0,8+1))
 			else:
 				raise RuntimeError('mesh type not supported yet')
Index: /issm/trunk-jpl/src/m/classes/friction.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/friction.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/friction.m	(revision 16764)
@@ -27,7 +27,7 @@
 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
 
-			md = checkfield(md,'friction.coefficient','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
-			md = checkfield(md,'friction.p','NaN',1,'size',[md.mesh.numberofelements 1]);
+			md = checkfield(md,'fieldname','friction.coefficient','NaN',1,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
+			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements 1]);
 		end % }}}
 		function disp(obj) % {{{
Index: /issm/trunk-jpl/src/m/classes/friction.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/friction.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/friction.py	(revision 16764)
@@ -38,7 +38,7 @@
 			return md
 
-		md = checkfield(md,'friction.coefficient','NaN',1,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'friction.q','NaN',1,'size',[md.mesh.numberofelements])
-		md = checkfield(md,'friction.p','NaN',1,'size',[md.mesh.numberofelements])
+		md = checkfield(md,'fieldname','friction.coefficient','NaN',1,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])
+		md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/geometry.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/geometry.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/geometry.m	(revision 16764)
@@ -27,14 +27,14 @@
 
 			if (solution==TransientSolutionEnum() & md.transient.isgia) | (solution==GiaSolutionEnum()),
-				md = checkfield(md,'geometry.thickness','forcing',1,'NaN',1,'>=',0);
+				md = checkfield(md,'fieldname','geometry.thickness','forcing',1,'NaN',1,'>=',0);
 			else
-				md = checkfield(md,'geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices 1]);
-				md = checkfield(md,'geometry.bed'      ,'NaN',1,'size',[md.mesh.numberofvertices 1]);
-				md = checkfield(md,'geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);
+				md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','geometry.bed'      ,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);
 				if any((obj.thickness-obj.surface+obj.bed)>10^-9),
 					md = checkmessage(md,['equality thickness=surface-bed violated']);
 				end 
 				if solution==TransientSolutionEnum() & md.transient.isgroundingline,
-					md = checkfield(md,'geometry.bathymetry','NaN',1,'size',[md.mesh.numberofvertices 1]);
+					md = checkfield(md,'fieldname','geometry.bathymetry','NaN',1,'size',[md.mesh.numberofvertices 1]);
 				end
 			end
Index: /issm/trunk-jpl/src/m/classes/geometry.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/geometry.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/geometry.py	(revision 16764)
@@ -38,11 +38,11 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
-		md = checkfield(md,'geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'geometry.bed'      ,'NaN',1,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices],'>',0,'forcing',1)
+		md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','geometry.bed'      ,'NaN',1,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices],'>',0,'forcing',1)
 		if any((self.thickness-self.surface+self.bed)>10**-9):
 			md.checkmessage("equality thickness=surface-bed violated")
 		if solution==TransientSolutionEnum() and md.transient.isgroundingline:
-			md = checkfield(md,'geometry.bathymetry','NaN',1,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','geometry.bathymetry','NaN',1,'size',[md.mesh.numberofvertices])
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/gia.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/gia.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/gia.m	(revision 16764)
@@ -25,7 +25,7 @@
 
 			if ~ismember(GiaAnalysisEnum(),analyses), return; end
-			md = checkfield(md,'gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);
-			md = checkfield(md,'gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);
-			md = checkfield(md,'gia.cross_section_shape','numel',[1],'values',[1,2]);
+			md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);
+			md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);
+			md = checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2]);
 
 			%be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings 
Index: /issm/trunk-jpl/src/m/classes/gia.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/gia.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/gia.py	(revision 16764)
@@ -42,7 +42,7 @@
 			return md 
 		
-		md = checkfield(md,'gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)
-		md = checkfield(md,'gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)
-		md = checkfield(md,'gia.cross_section_shape','numel',[1],'values',[1,2])
+		md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)
+		md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)
+		md = checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2])
 
 		#be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings 
Index: /issm/trunk-jpl/src/m/classes/groundingline.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/groundingline.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/groundingline.m	(revision 16764)
@@ -29,5 +29,5 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'groundingline.migration','values',{'None' 'AgressiveMigration' 'SoftMigration' 'SubelementMigration','SubelementMigration2'});
+			md = checkfield(md,'fieldname','groundingline.migration','values',{'None' 'AgressiveMigration' 'SoftMigration' 'SubelementMigration','SubelementMigration2'});
 
 			if ~strcmp(obj.migration,'None'),
Index: /issm/trunk-jpl/src/m/classes/groundingline.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/groundingline.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/groundingline.py	(revision 16764)
@@ -42,5 +42,5 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
-		md = checkfield(md,'groundingline.migration','values',['None','AgressiveMigration','SoftMigration','SubelementMigration','SubelementMigration2'])
+		md = checkfield(md,'fieldname','groundingline.migration','values',['None','AgressiveMigration','SoftMigration','SubelementMigration','SubelementMigration2'])
 
 		if not strcmp(self.migration,'None'):
Index: /issm/trunk-jpl/src/m/classes/hydrologydc.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologydc.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/hydrologydc.m	(revision 16764)
@@ -72,30 +72,30 @@
 			end
 
-			md = checkfield(md,'hydrology.water_compressibility','>',0,'numel',1);
-			md = checkfield(md,'hydrology.isefficientlayer','numel',[1],'values',[0 1]);
-			md = checkfield(md,'hydrology.penalty_factor','>',0,'numel',1);
-			md = checkfield(md,'hydrology.rel_tol','>',0,'numel',1);
-			md = checkfield(md,'hydrology.sedimentlimit_flag','numel',[1],'values',[0 1 2 3]);
-			md = checkfield(md,'hydrology.transfer_flag','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','hydrology.water_compressibility','>',0,'numel',1);
+			md = checkfield(md,'fieldname','hydrology.isefficientlayer','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','hydrology.penalty_factor','>',0,'numel',1);
+			md = checkfield(md,'fieldname','hydrology.rel_tol','>',0,'numel',1);
+			md = checkfield(md,'fieldname','hydrology.sedimentlimit_flag','numel',[1],'values',[0 1 2 3]);
+			md = checkfield(md,'fieldname','hydrology.transfer_flag','numel',[1],'values',[0 1]);
 			if obj.sedimentlimit_flag==1,
-				md = checkfield(md,'hydrology.sedimentlimit','>',0,'numel',1);
+				md = checkfield(md,'fieldname','hydrology.sedimentlimit','>',0,'numel',1);
 	    end
 			if obj.transfer_flag==1,
-				md = checkfield(md,'hydrology.leakage_factor','>',0,'numel',1);
+				md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0,'numel',1);
 	    end
 
-			md = checkfield(md,'hydrology.spcsediment_head','forcing',1);
-			md = checkfield(md,'hydrology.sediment_compressibility','>',0,'numel',1);
-			md = checkfield(md,'hydrology.sediment_porosity','>',0,'numel',1);
-			md = checkfield(md,'hydrology.sediment_thickness','>',0,'numel',1);
-			md = checkfield(md,'hydrology.sediment_transmitivity','>',0,'numel',1);
+			md = checkfield(md,'fieldname','hydrology.spcsediment_head','forcing',1);
+			md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0,'numel',1);
+			md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0,'numel',1);
+			md = checkfield(md,'fieldname','hydrology.sediment_thickness','>',0,'numel',1);
+			md = checkfield(md,'fieldname','hydrology.sediment_transmitivity','>',0,'numel',1);
 
 			if obj.isefficientlayer==1,
-				md = checkfield(md,'hydrology.spcepl_head','forcing',1);
-				md = checkfield(md,'hydrology.mask_eplactive','size',[md.mesh.numberofvertices 1],'values',[0 1]);
-				md = checkfield(md,'hydrology.epl_compressibility','>',0,'numel',1);
-				md = checkfield(md,'hydrology.epl_porosity','>',0,'numel',1);
-				md = checkfield(md,'hydrology.epl_initial_thickness','>',0,'numel',1);
-				md = checkfield(md,'hydrology.epl_conductivity','>',0,'numel',1);
+				md = checkfield(md,'fieldname','hydrology.spcepl_head','forcing',1);
+				md = checkfield(md,'fieldname','hydrology.mask_eplactive','size',[md.mesh.numberofvertices 1],'values',[0 1]);
+				md = checkfield(md,'fieldname','hydrology.epl_compressibility','>',0,'numel',1);
+				md = checkfield(md,'fieldname','hydrology.epl_porosity','>',0,'numel',1);
+				md = checkfield(md,'fieldname','hydrology.epl_initial_thickness','>',0,'numel',1);
+				md = checkfield(md,'fieldname','hydrology.epl_conductivity','>',0,'numel',1);
 	    end
 		end 
Index: /issm/trunk-jpl/src/m/classes/hydrologyshreve.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 16764)
@@ -44,6 +44,6 @@
 			end
 
-			md = checkfield(md,'hydrology.spcwatercolumn','forcing',1);
-			md = checkfield(md,'hydrology.stabilization','>=',0);
+			md = checkfield(md,'fieldname','hydrology.spcwatercolumn','forcing',1);
+			md = checkfield(md,'fieldname','hydrology.stabilization','>=',0);
 		end % }}}
 		function disp(obj) % {{{
Index: /issm/trunk-jpl/src/m/classes/hydrologyshreve.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologyshreve.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/hydrologyshreve.py	(revision 16764)
@@ -57,6 +57,6 @@
 			return md
 
-		md = checkfield(md,'hydrology.spcwatercolumn','forcing',1)
-		md = checkfield(md,'hydrology.stabilization','>=',0)
+		md = checkfield(md,'fieldname','hydrology.spcwatercolumn','forcing',1)
+		md = checkfield(md,'fieldname','hydrology.stabilization','>=',0)
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/initialization.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/initialization.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/initialization.m	(revision 16764)
@@ -32,15 +32,15 @@
 			if ismember(StressbalanceAnalysisEnum(),analyses)
 				if ~(isnan(md.initialization.vx) | isnan(md.initialization.vy)),
-					md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
-					md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
+					md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
+					md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
 				end
 			end
 			if ismember(MasstransportAnalysisEnum(),analyses),
-				md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
-				md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
 			end
 			if ismember(BalancethicknessAnalysisEnum(),analyses) & solution==BalancethicknessSolutionEnum,
-				md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
-				md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
 				%Triangle with zero velocity
 				if any(sum(abs(md.initialization.vx(md.mesh.elements)),2)==0 & sum(abs(md.initialization.vy(md.mesh.elements)),2)==0)
@@ -49,23 +49,23 @@
 			end
 			if ismember(ThermalAnalysisEnum(),analyses),
-				md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
-				md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
 				if strcmp(meshtype(md.mesh),'3D')
-					md = checkfield(md,'initialization.vz','NaN',1,'size',[md.mesh.numberofvertices 1]);
+					md = checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices 1]);
 				end
-				md = checkfield(md,'initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices 1]);
 			end
 			if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy)
-				md = checkfield(md,'initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices 1]);
-				md = checkfield(md,'initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices 1]);
+				md = checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices 1]);
 			end
 			if ismember(HydrologyShreveAnalysisEnum(),analyses),
 				if isa(md.hydrology,'hydrologyshreve'),
-					md = checkfield(md,'initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices 1]);
+					md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices 1]);
 				end
 			end
 			if ismember(HydrologyDCInefficientAnalysisEnum(),analyses),
 				if isa(md.hydrology,'hydrologydc'),
-					md = checkfield(md,'initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
+					md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
 				end
 			end
@@ -73,5 +73,5 @@
 				if isa(md.hydrology,'hydrologydc'),
 					if md.hydrology.isefficientlayer==1,
-						md = checkfield(md,'initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
+						md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
 					end
 				end
Index: /issm/trunk-jpl/src/m/classes/initialization.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/initialization.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/initialization.py	(revision 16764)
@@ -50,12 +50,12 @@
 		if StressbalanceAnalysisEnum() in analyses:
 			if not numpy.any(numpy.logical_or(numpy.isnan(md.initialization.vx),numpy.isnan(md.initialization.vy))):
-				md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
-				md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
+				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
 		if MasstransportAnalysisEnum() in analyses:
-			md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
-			md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
 		if BalancethicknessAnalysisEnum() in analyses:
-			md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
-			md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
 			#Triangle with zero velocity
 			if numpy.any(numpy.logical_and(numpy.sum(numpy.abs(md.initialization.vx[md.mesh.elements-1]),axis=1)==0,\
@@ -63,14 +63,14 @@
 				md.checkmessage("at least one triangle has all its vertices with a zero velocity")
 		if ThermalAnalysisEnum() in analyses:
-			md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
-			md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
 			if strcmp(md.mesh.meshtype(),'3D'):
-				md = checkfield(md,'initialization.vz','NaN',1,'size',[md.mesh.numberofvertices])
-			md = checkfield(md,'initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices])
+				md = checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices])
 		if (EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy):
-			md = checkfield(md,'initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])
-			md = checkfield(md,'initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices])
 		if HydrologyShreveAnalysisEnum() in analyses:
-			md = checkfield(md,'initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
+			md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
 		return md
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/inversion.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/inversion.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/inversion.m	(revision 16764)
@@ -107,17 +107,17 @@
 			num_costfunc=size(md.inversion.cost_functions,2);
 
-			md = checkfield(md,'inversion.iscontrol','values',[0 1]);
-			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',...
+			md = checkfield(md,'fieldname','inversion.iscontrol','values',[0 1]);
+			md = checkfield(md,'fieldname','inversion.tao','values',[0 1]);
+			md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]);
+			md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',...
 				{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'DamageDbar' 'Vx' 'Vy' 'Thickness'});
-			md = checkfield(md,'inversion.nsteps','numel',1,'>=',0);
-			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',[1 num_costfunc],'values',[101:105 201 501:506]);
-			md = checkfield(md,'inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);
-			md = checkfield(md,'inversion.gradient_scaling','size',[md.inversion.nsteps num_controls]);
-			md = checkfield(md,'inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]);
-			md = checkfield(md,'inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);
+			md = checkfield(md,'fieldname','inversion.nsteps','numel',1,'>=',0);
+			md = checkfield(md,'fieldname','inversion.maxiter_per_step','size',[md.inversion.nsteps 1],'>=',0);
+			md = checkfield(md,'fieldname','inversion.step_threshold','size',[md.inversion.nsteps 1]);
+			md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]);
+			md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);
+			md = checkfield(md,'fieldname','inversion.gradient_scaling','size',[md.inversion.nsteps num_controls]);
+			md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]);
+			md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);
 
 			%Only SSA, HO and FS are supported right now
@@ -129,10 +129,10 @@
 
 			if solution==BalancethicknessSolutionEnum()
-				md = checkfield(md,'inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
 			elseif solution==BalancethicknessSoftSolutionEnum()
-				md = checkfield(md,'inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
 			else
-				md = checkfield(md,'inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
-				md = checkfield(md,'inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+				md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
 			end
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/inversion.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/inversion.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/inversion.py	(revision 16764)
@@ -116,16 +116,16 @@
 		num_costfunc=numpy.size(md.inversion.cost_functions)
 
-		md = checkfield(md,'inversion.iscontrol','values',[0,1])
-		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','DamageDbar','Vx','Vy'])
-		md = checkfield(md,'inversion.nsteps','numel',[1],'>=',0)
-		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',[num_costfunc],'values',[101,102,103,104,105,201,501,502,503,504,505])
-		md = checkfield(md,'inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0)
-		md = checkfield(md,'inversion.gradient_scaling','size',[md.inversion.nsteps,num_controls])
-		md = checkfield(md,'inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls])
-		md = checkfield(md,'inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls])
+		md = checkfield(md,'fieldname','inversion.iscontrol','values',[0,1])
+		md = checkfield(md,'fieldname','inversion.tao','values',[0,1])
+		md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1])
+		md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',['BalancethicknessThickeningRate','FrictionCoefficient','MaterialsRheologyBbar','DamageDbar','Vx','Vy'])
+		md = checkfield(md,'fieldname','inversion.nsteps','numel',[1],'>=',0)
+		md = checkfield(md,'fieldname','inversion.maxiter_per_step','size',[md.inversion.nsteps],'>=',0)
+		md = checkfield(md,'fieldname','inversion.step_threshold','size',[md.inversion.nsteps])
+		md = checkfield(md,'fieldname','inversion.cost_functions','size',[num_costfunc],'values',[101,102,103,104,105,201,501,502,503,504,505])
+		md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0)
+		md = checkfield(md,'fieldname','inversion.gradient_scaling','size',[md.inversion.nsteps,num_controls])
+		md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls])
+		md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls])
 
 		#Only SSA, HO and FS are supported right now
@@ -135,8 +135,8 @@
 
 		if solution==BalancethicknessSolutionEnum():
-			md = checkfield(md,'inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)
+			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)
 		else:
-			md = checkfield(md,'inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)
-			md = checkfield(md,'inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)
+			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)
+			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/mask.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mask.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/mask.m	(revision 16764)
@@ -23,6 +23,6 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'mask.groundedice_levelset','size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'mask.ice_levelset'        ,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices 1]);
 			isice=(md.mask.ice_levelset>0);
 			if any(sum(isice(md.mesh.elements),2)==0),
Index: /issm/trunk-jpl/src/m/classes/mask.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/mask.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/mask.py	(revision 16764)
@@ -32,5 +32,5 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
-		md = checkfield(md,'mask.ice_levelset'        ,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices])
 		isice=numpy.array(md.mask.ice_levelset>0,int)
 		totallyicefree=(numpy.sum(isice[md.mesh.elements-1],axis=1)==0).astype(int)
Index: /issm/trunk-jpl/src/m/classes/masstransport.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/masstransport.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/masstransport.m	(revision 16764)
@@ -87,10 +87,10 @@
 			if ~ismember(MasstransportAnalysisEnum(),analyses) |  (solution==TransientSolutionEnum() & md.transient.ismasstransport==0), return; end
 
-			md = checkfield(md,'masstransport.spcthickness','forcing',1);
-			md = checkfield(md,'masstransport.isfreesurface','values',[0 1]);
-			md = checkfield(md,'masstransport.hydrostatic_adjustment','values',{'Absolute' 'Incremental'});
-			md = checkfield(md,'masstransport.stabilization','values',[0 1 2 3]);
-			md = checkfield(md,'masstransport.min_thickness','>',0);
-			md = checkfield(md,'masstransport.requested_outputs','stringrow',1);
+			md = checkfield(md,'fieldname','masstransport.spcthickness','forcing',1);
+			md = checkfield(md,'fieldname','masstransport.isfreesurface','values',[0 1]);
+			md = checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',{'Absolute' 'Incremental'});
+			md = checkfield(md,'fieldname','masstransport.stabilization','values',[0 1 2 3]);
+			md = checkfield(md,'fieldname','masstransport.min_thickness','>',0);
+			md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1);
 
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/masstransport.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/masstransport.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/masstransport.py	(revision 16764)
@@ -67,10 +67,10 @@
 			return md
 
-		md = checkfield(md,'masstransport.spcthickness','forcing',1)
-		md = checkfield(md,'masstransport.isfreesurface','values',[0,1])
-		md = checkfield(md,'masstransport.hydrostatic_adjustment','values',['Absolute','Incremental'])
-		md = checkfield(md,'masstransport.stabilization','values',[0,1,2,3])
-		md = checkfield(md,'masstransport.min_thickness','>',0)
-		md = checkfield(md,'masstransport.requested_outputs','stringrow',1)
+		md = checkfield(md,'fieldname','masstransport.spcthickness','forcing',1)
+		md = checkfield(md,'fieldname','masstransport.isfreesurface','values',[0,1])
+		md = checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',['Absolute','Incremental'])
+		md = checkfield(md,'fieldname','masstransport.stabilization','values',[0,1,2,3])
+		md = checkfield(md,'fieldname','masstransport.min_thickness','>',0)
+		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/matice.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/matice.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/matice.m	(revision 16764)
@@ -98,17 +98,17 @@
 		end % }}}
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
-			md = checkfield(md,'materials.rho_ice','>',0);
-			md = checkfield(md,'materials.rho_water','>',0);
-			md = checkfield(md,'materials.rho_freshwater','>',0);
-			md = checkfield(md,'materials.mu_water','>',0);
-			md = checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
-			md = checkfield(md,'materials.rheology_law','values',{'None' 'Paterson' 'Arrhenius' 'LliboutryDuval'});
+			md = checkfield(md,'fieldname','materials.rho_ice','>',0);
+			md = checkfield(md,'fieldname','materials.rho_water','>',0);
+			md = checkfield(md,'fieldname','materials.rho_freshwater','>',0);
+			md = checkfield(md,'fieldname','materials.mu_water','>',0);
+			md = checkfield(md,'fieldname','materials.rheology_B','>',0,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
+			md = checkfield(md,'fieldname','materials.rheology_law','values',{'None' 'Paterson' 'Arrhenius' 'LliboutryDuval'});
 
 			if ismember(GiaAnalysisEnum(),analyses),
-				md = checkfield(md,'materials.lithosphere_shear_modulus','>',0,'numel',1);
-				md = checkfield(md,'materials.lithosphere_density','>',0,'numel',1);
-				md = checkfield(md,'materials.mantle_shear_modulus','>',0,'numel',1);
-				md = checkfield(md,'materials.mantle_density','>',0,'numel',1);
+				md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1);
+				md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',1);
+				md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',1);
+				md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1);
 			end
 
Index: /issm/trunk-jpl/src/m/classes/matice.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/matice.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/matice.py	(revision 16764)
@@ -113,15 +113,15 @@
 		#}}}
 	def checkconsistency(self,md,solution,analyses):    # {{{
-		md = checkfield(md,'materials.rho_ice','>',0)
-		md = checkfield(md,'materials.rho_water','>',0)
-		md = checkfield(md,'materials.rho_freshwater','>',0)
-		md = checkfield(md,'materials.mu_water','>',0)
-		md = checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'materials.rheology_n','>',0,'size',[md.mesh.numberofelements])
-		md = checkfield(md,'materials.rheology_law','values',['None','Paterson','Arrhenius','LliboutryDuval'])
-		md = checkfield(md,'materials.lithosphere_shear_modulus','>',0,'numel',[1]);
-		md = checkfield(md,'materials.lithosphere_density','>',0,'numel',[1]);
-		md = checkfield(md,'materials.mantle_shear_modulus','>',0,'numel',[1]);
-		md = checkfield(md,'materials.mantle_density','>',0,'numel',[1]);
+		md = checkfield(md,'fieldname','materials.rho_ice','>',0)
+		md = checkfield(md,'fieldname','materials.rho_water','>',0)
+		md = checkfield(md,'fieldname','materials.rho_freshwater','>',0)
+		md = checkfield(md,'fieldname','materials.mu_water','>',0)
+		md = checkfield(md,'fieldname','materials.rheology_B','>',0,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements])
+		md = checkfield(md,'fieldname','materials.rheology_law','values',['None','Paterson','Arrhenius','LliboutryDuval'])
+		md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',[1]);
+		md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',[1]);
+		md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',[1]);
+		md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',[1]);
 		return md
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/mesh.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/mesh.m	(revision 16764)
@@ -79,33 +79,33 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'mesh.z','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
+			md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
 			if(md.mesh.dimension==2),
-				md = checkfield(md,'mesh.elements','size',[md.mesh.numberofelements 3]);
-			else
-				md = checkfield(md,'mesh.elements','size',[md.mesh.numberofelements 6]);
+				md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 3]);
+			else
+				md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 6]);
 			end
 			if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:)))));
 				md = checkmessage(md,'orphan nodes have been found. Check the mesh outline');
 			end
-			md = checkfield(md,'mesh.dimension','values',[2 3]);
-			md = checkfield(md,'mesh.numberoflayers','>=',0);
-			md = checkfield(md,'mesh.numberofelements','>',0);
-			md = checkfield(md,'mesh.numberofvertices','>',0);
+			md = checkfield(md,'fieldname','mesh.dimension','values',[2 3]);
+			md = checkfield(md,'fieldname','mesh.numberoflayers','>=',0);
+			md = checkfield(md,'fieldname','mesh.numberofelements','>',0);
+			md = checkfield(md,'fieldname','mesh.numberofvertices','>',0);
 			%no checks for numberofedges lat long and hemisphere
-			md = checkfield(md,'mesh.elementonbed','size',[md.mesh.numberofelements 1],'values',[0 1]);
-			md = checkfield(md,'mesh.elementonsurface','size',[md.mesh.numberofelements 1],'values',[0 1]);
-			md = checkfield(md,'mesh.vertexonbed','size',[md.mesh.numberofvertices 1],'values',[0 1]);
-			md = checkfield(md,'mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]);
+			md = checkfield(md,'fieldname','mesh.elementonbed','size',[md.mesh.numberofelements 1],'values',[0 1]);
+			md = checkfield(md,'fieldname','mesh.elementonsurface','size',[md.mesh.numberofelements 1],'values',[0 1]);
+			md = checkfield(md,'fieldname','mesh.vertexonbed','size',[md.mesh.numberofvertices 1],'values',[0 1]);
+			md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]);
 			if (md.mesh.dimension==3),
-				md = checkfield(md,'mesh.z','>=',md.geometry.bed-10^-10,'message','''mesh.z'' lower than bedrock');
-				md = checkfield(md,'mesh.z','<=',md.geometry.surface+10^-10,'message','''mesh.z'' higher than surface elevation');
+				md = checkfield(md,'fieldname','mesh.z','>=',md.geometry.bed-10^-10,'message','''mesh.z'' lower than bedrock');
+				md = checkfield(md,'fieldname','mesh.z','<=',md.geometry.surface+10^-10,'message','''mesh.z'' higher than surface elevation');
 			end
 			if (md.mesh.dimension==2),
-				md = checkfield(md,'mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');
-			else
-				md = checkfield(md,'mesh.average_vertex_connectivity','>=',24,'message','''mesh.average_vertex_connectivity'' should be at least 24 in 3d');
+				md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');
+			else
+				md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',24,'message','''mesh.average_vertex_connectivity'' should be at least 24 in 3d');
 			end
 
@@ -114,16 +114,16 @@
 				case MasstransportSolutionEnum(),
 					if md.masstransport.stabilization==3,
-						md = checkfield(md,'mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');
+						md = checkfield(md,'fieldname','mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');
 					end
 				case BalancethicknessSolutionEnum(),
 					if md.balancethickness.stabilization==3,
-						md = checkfield(md,'mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');
+						md = checkfield(md,'fieldname','mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');
 					end
 				case TransientSolutionEnum(),
 					if md.transient.ismasstransport & md.masstransport.stabilization==3,
-						md = checkfield(md,'mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');
+						md = checkfield(md,'fieldname','mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');
 					end
 				case ThermalSolutionEnum(),
-					md = checkfield(md,'mesh.dimension','values',3,'message','thermal solution only supported on 3d meshes');
+					md = checkfield(md,'fieldname','mesh.dimension','values',3,'message','thermal solution only supported on 3d meshes');
 			end
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/mesh.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/mesh.py	(revision 16764)
@@ -123,40 +123,40 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
-		md = checkfield(md,'mesh.x','NaN',1,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'mesh.y','NaN',1,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'mesh.z','NaN',1,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
+		md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
 		if md.mesh.dimension==2:
-			md = checkfield(md,'mesh.elements','size',[md.mesh.numberofelements,3])
+			md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3])
 		else:
-			md = checkfield(md,'mesh.elements','size',[md.mesh.numberofelements,6])
+			md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,6])
 		if numpy.any(numpy.logical_not(ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))):
 			md.checkmessage("orphan nodes have been found. Check the mesh outline")
-		md = checkfield(md,'mesh.dimension','values',[2,3])
-		md = checkfield(md,'mesh.numberoflayers','>=',0)
-		md = checkfield(md,'mesh.numberofelements','>',0)
-		md = checkfield(md,'mesh.numberofvertices','>',0)
+		md = checkfield(md,'fieldname','mesh.dimension','values',[2,3])
+		md = checkfield(md,'fieldname','mesh.numberoflayers','>=',0)
+		md = checkfield(md,'fieldname','mesh.numberofelements','>',0)
+		md = checkfield(md,'fieldname','mesh.numberofvertices','>',0)
 		#no checks for numberofedges lat long and hemisphere
-		md = checkfield(md,'mesh.elementonbed','size',[md.mesh.numberofelements],'values',[0,1])
-		md = checkfield(md,'mesh.elementonsurface','size',[md.mesh.numberofelements],'values',[0,1])
-		md = checkfield(md,'mesh.vertexonbed','size',[md.mesh.numberofvertices],'values',[0,1])
-		md = checkfield(md,'mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1])
+		md = checkfield(md,'fieldname','mesh.elementonbed','size',[md.mesh.numberofelements],'values',[0,1])
+		md = checkfield(md,'fieldname','mesh.elementonsurface','size',[md.mesh.numberofelements],'values',[0,1])
+		md = checkfield(md,'fieldname','mesh.vertexonbed','size',[md.mesh.numberofvertices],'values',[0,1])
+		md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1])
 		if md.mesh.dimension==2:
-			md = checkfield(md,'mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d")
+			md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d")
 		else:
-			md = checkfield(md,'mesh.average_vertex_connectivity','>=',24,'message',"'mesh.average_vertex_connectivity' should be at least 24 in 3d")
+			md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',24,'message',"'mesh.average_vertex_connectivity' should be at least 24 in 3d")
 
 		#Solution specific checks
 		if   solution==MasstransportSolutionEnum():
 			if md.masstransport.stabilization==3:
-				md = checkfield(md,'mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")
+				md = checkfield(md,'fieldname','mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")
 		elif solution==BalancethicknessSolutionEnum():
 			if md.balancethickness.stabilization==3:
-				md = checkfield(md,'mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")
+				md = checkfield(md,'fieldname','mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")
 		elif solution==TransientSolutionEnum():
 			if md.transient.ismasstransport and md.masstransport.stabilization==3:
-				md = checkfield(md,'mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")
+				md = checkfield(md,'fieldname','mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")
 		elif solution==ThermalSolutionEnum():
-			md = checkfield(md,'mesh.dimension','values',3,'message','thermal solution only supported on 3d meshes')
+			md = checkfield(md,'fieldname','mesh.dimension','values',3,'message','thermal solution only supported on 3d meshes')
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/mesh2d.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh2d.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/mesh2d.m	(revision 16764)
@@ -49,14 +49,14 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
-			md = checkfield(md,'mesh.elements','size',[md.mesh.numberofelements 3]);
+			md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
+			md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 3]);
 			if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:)))));
 				md = checkmessage(md,'orphan nodes have been found. Check the mesh outline');
 			end
-			md = checkfield(md,'mesh.numberofelements','>',0);
-			md = checkfield(md,'mesh.numberofvertices','>',0);
-			md = checkfield(md,'mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');
+			md = checkfield(md,'fieldname','mesh.numberofelements','>',0);
+			md = checkfield(md,'fieldname','mesh.numberofvertices','>',0);
+			md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');
 
 			switch(solution),
Index: /issm/trunk-jpl/src/m/classes/mesh2d.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh2d.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/mesh2d.py	(revision 16764)
@@ -83,14 +83,14 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
-		md = checkfield(md,'mesh.x','NaN',1,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'mesh.y','NaN',1,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'mesh.z','NaN',1,'size',[md.mesh.numberofvertices])
-		md = checkfield(md,'mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
-		md = checkfield(md,'mesh.elements','size',[md.mesh.numberofelements,3])
+		md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices])
+		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
+		md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3])
 		if numpy.any(numpy.logical_not(ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))):
 			md.checkmessage("orphan nodes have been found. Check the mesh outline")
-		md = checkfield(md,'mesh.numberofelements','>',0)
-		md = checkfield(md,'mesh.numberofvertices','>',0)
-		md = checkfield(md,'mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d")
+		md = checkfield(md,'fieldname','mesh.numberofelements','>',0)
+		md = checkfield(md,'fieldname','mesh.numberofvertices','>',0)
+		md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d")
 		if solution==ThermalSolutionEnum():
 			md.checkmessage("thermal not supported for 2d mesh")
Index: /issm/trunk-jpl/src/m/classes/mesh2dvertical.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh2dvertical.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/mesh2dvertical.m	(revision 16764)
@@ -58,16 +58,16 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
-			md = checkfield(md,'mesh.elements','size',[md.mesh.numberofelements 3]);
+			md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
+			md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 3]);
 			if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:)))));
 				md = checkmessage(md,'orphan nodes have been found. Check the mesh outline');
 			end
-			md = checkfield(md,'mesh.numberofelements','>',0);
-			md = checkfield(md,'mesh.numberofvertices','>',0);
-			md = checkfield(md,'mesh.vertexonbed','size',[md.mesh.numberofvertices 1],'values',[0 1]);
-			md = checkfield(md,'mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]);
-			md = checkfield(md,'mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');
+			md = checkfield(md,'fieldname','mesh.numberofelements','>',0);
+			md = checkfield(md,'fieldname','mesh.numberofvertices','>',0);
+			md = checkfield(md,'fieldname','mesh.vertexonbed','size',[md.mesh.numberofvertices 1],'values',[0 1]);
+			md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]);
+			md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');
 
 			switch(solution),
Index: /issm/trunk-jpl/src/m/classes/miscellaneous.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/miscellaneous.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/miscellaneous.m	(revision 16764)
@@ -21,5 +21,5 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'miscellaneous.name','empty',1);
+			md = checkfield(md,'fieldname','miscellaneous.name','empty',1);
 
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/miscellaneous.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/miscellaneous.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/miscellaneous.py	(revision 16764)
@@ -34,5 +34,5 @@
 	#}}}
 	def checkconsistency(self,md,solution,analyses):    # {{{
-		md = checkfield(md,'miscellaneous.name','empty',1)
+		md = checkfield(md,'fieldname','miscellaneous.name','empty',1)
 		return md
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/outputdefinition.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/outputdefinition.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/outputdefinition.m	(revision 16764)
@@ -24,5 +24,5 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'outputdefinition.definitions','cell',1);
+			md = checkfield(md,'fieldname','outputdefinition.definitions','cell',1);
 
 			for i=1:length(obj.definitions),
Index: /issm/trunk-jpl/src/m/classes/outputdefinition.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/outputdefinition.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/outputdefinition.py	(revision 16764)
@@ -29,5 +29,5 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 		
-		md = checkfield(md,'outputdefinition.definitions','cell',1)
+		md = checkfield(md,'fieldname','outputdefinition.definitions','cell',1)
 		for definition in self.definitions:
 			definition.checkconsistency(md,solution,analyses);
Index: /issm/trunk-jpl/src/m/classes/settings.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/settings.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/settings.m	(revision 16764)
@@ -49,8 +49,8 @@
 		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.output_frequency','numel',[1],'>=',1);
-			md = checkfield(md,'settings.waitonlock','numel',[1]);
+			md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1);
+			md = checkfield(md,'fieldname','settings.waitonlock','numel',[1]);
 
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/settings.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/settings.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/settings.py	(revision 16764)
@@ -51,8 +51,8 @@
 	#}}}
 	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.output_frequency','numel',[1],'>=',1)
-		md = checkfield(md,'settings.waitonlock','numel',[1])
+		md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0,1])
+		md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0,1])
+		md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1)
+		md = checkfield(md,'fieldname','settings.waitonlock','numel',[1])
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/snowpack.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/snowpack.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/snowpack.m	(revision 16764)
@@ -219,119 +219,119 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 			%snowpack:  %{{{
-			md=checkfield(md,'snowpack.snowpack_meas_tss','values',[0 1]);
-			md=checkfield(md,'snowpack.snowpack_enforce_measured_snow_heights','values',[0 1]);
-			md=checkfield(md,'snowpack.snowpack_sw_mode','values',[0 1 2]);
-			md=checkfield(md,'snowpack.snowpack_incoming_longwave','values',[0 1]);
-			md=checkfield(md,'snowpack.snowpack_height_of_wind_value','>=',0);
-			md=checkfield(md,'snowpack.snowpack_height_of_meteo_values','>=',0);
-			md=checkfield(md,'snowpack.snowpack_neutral','values',[-1 0 1]);
-			md=checkfield(md,'snowpack.snowpack_roughness_length','>=',0);
-			md=checkfield(md,'snowpack.snowpack_number_slopes','values',[1 3 5 9]);
-			md=checkfield(md,'snowpack.snowpack_snow_redistribution','values',[0 1]);
-			md=checkfield(md,'snowpack.snowpack_calculation_step_length','>',0);
-			md=checkfield(md,'snowpack.snowpack_change_bc','values',[0 1]);
-			md=checkfield(md,'snowpack.snowpack_thresh_change_bc','<=',0);
-			md=checkfield(md,'snowpack.snowpack_snp_soil','values',[0 1]);
-			md=checkfield(md,'snowpack.snowpack_soil_flux','values',[0 1]);
-			md=checkfield(md,'snowpack.snowpack_geo_heat','>=',0);
-			md=checkfield(md,'snowpack.snowpack_canopy','values',[0 1]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_meas_tss','values',[0 1]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_enforce_measured_snow_heights','values',[0 1]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_sw_mode','values',[0 1 2]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_incoming_longwave','values',[0 1]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_height_of_wind_value','>=',0);
+			md=checkfield(md,'fieldname','snowpack.snowpack_height_of_meteo_values','>=',0);
+			md=checkfield(md,'fieldname','snowpack.snowpack_neutral','values',[-1 0 1]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_roughness_length','>=',0);
+			md=checkfield(md,'fieldname','snowpack.snowpack_number_slopes','values',[1 3 5 9]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_snow_redistribution','values',[0 1]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_calculation_step_length','>',0);
+			md=checkfield(md,'fieldname','snowpack.snowpack_change_bc','values',[0 1]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_thresh_change_bc','<=',0);
+			md=checkfield(md,'fieldname','snowpack.snowpack_snp_soil','values',[0 1]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_soil_flux','values',[0 1]);
+			md=checkfield(md,'fieldname','snowpack.snowpack_geo_heat','>=',0);
+			md=checkfield(md,'fieldname','snowpack.snowpack_canopy','values',[0 1]);
 			%}}}
 			%snowpackadvanced:  %{{{
-			md=checkfield(md,'snowpack.snowpackadvanced_variant','values',{'JAPAN','DEFAULT','ANTARCTICA'});
-			md=checkfield(md,'snowpack.snowpackadvanced_hn_density','values',{'PARAMETERIZED','EVENT','MEASURED'});
+			md=checkfield(md,'fieldname','snowpack.snowpackadvanced_variant','values',{'JAPAN','DEFAULT','ANTARCTICA'});
+			md=checkfield(md,'fieldname','snowpack.snowpackadvanced_hn_density','values',{'PARAMETERIZED','EVENT','MEASURED'});
 			%}}}
 			%general:  %{{{
-			md=checkfield(md,'snowpack.general_buff_chunk_size','>',0);
-			md=checkfield(md,'snowpack.general_buff_before','>',0);
+			md=checkfield(md,'fieldname','snowpack.general_buff_chunk_size','>',0);
+			md=checkfield(md,'fieldname','snowpack.general_buff_before','>',0);
 			%}}}
 			%input {{{
-			md=checkfield(md,'snowpack.input_coordsys','values',{'CH1903','UTM','UPS','PROJ4','LOCAL'});
-			md=checkfield(md,'snowpack.input_coordparam','values','null');
-			md=checkfield(md,'snowpack.input_time_zone','>',-12,'<',12);
-			md=checkfield(md,'snowpack.input_meteo','values',{'BORMA','COSMO','GEOTOP','GRIB','GSN','IMIS','SMET','SNOWPACK'});
-			md=checkfield(md,'snowpack.input_meteopath','empty',1);
-			md=checkfield(md,'snowpack.input_station1 ','empty',1);
-			md=checkfield(md,'snowpack.input_snowfile1','empty',1);
+			md=checkfield(md,'fieldname','snowpack.input_coordsys','values',{'CH1903','UTM','UPS','PROJ4','LOCAL'});
+			md=checkfield(md,'fieldname','snowpack.input_coordparam','values','null');
+			md=checkfield(md,'fieldname','snowpack.input_time_zone','>',-12,'<',12);
+			md=checkfield(md,'fieldname','snowpack.input_meteo','values',{'BORMA','COSMO','GEOTOP','GRIB','GSN','IMIS','SMET','SNOWPACK'});
+			md=checkfield(md,'fieldname','snowpack.input_meteopath','empty',1);
+			md=checkfield(md,'fieldname','snowpack.input_station1 ','empty',1);
+			md=checkfield(md,'fieldname','snowpack.input_snowfile1','empty',1);
 			%}}}
 			%output {{{
-			md=checkfield(md,'snowpack.output_coordsys','values',{'CH1903','UTM','UPS','PROJ4','LOCAL'});
-			md=checkfield(md,'snowpack.output_coordparam','values','null');
-			md=checkfield(md,'snowpack.output_time_zone','>',-12,'<',12);
-			md=checkfield(md,'snowpack.output_meteopath','empty',1);
-			md=checkfield(md,'snowpack.output_experiment','empty',1);
-			md=checkfield(md,'snowpack.output_ts_write','values',[0 1]);
-			md=checkfield(md,'snowpack.output_ts_start','>=',0);
-			md=checkfield(md,'snowpack.output_ts_days_between','>=',0);
-			md=checkfield(md,'snowpack.output_profile','values',{'ASCII','IMIS','ASCII IMIS'});
-			md=checkfield(md,'snowpack.output_prof_write','values',[0 1]);
-			md=checkfield(md,'snowpack.output_prof_start','>=',0);
-			md=checkfield(md,'snowpack.output_prof_days_between','>=',0);
+			md=checkfield(md,'fieldname','snowpack.output_coordsys','values',{'CH1903','UTM','UPS','PROJ4','LOCAL'});
+			md=checkfield(md,'fieldname','snowpack.output_coordparam','values','null');
+			md=checkfield(md,'fieldname','snowpack.output_time_zone','>',-12,'<',12);
+			md=checkfield(md,'fieldname','snowpack.output_meteopath','empty',1);
+			md=checkfield(md,'fieldname','snowpack.output_experiment','empty',1);
+			md=checkfield(md,'fieldname','snowpack.output_ts_write','values',[0 1]);
+			md=checkfield(md,'fieldname','snowpack.output_ts_start','>=',0);
+			md=checkfield(md,'fieldname','snowpack.output_ts_days_between','>=',0);
+			md=checkfield(md,'fieldname','snowpack.output_profile','values',{'ASCII','IMIS','ASCII IMIS'});
+			md=checkfield(md,'fieldname','snowpack.output_prof_write','values',[0 1]);
+			md=checkfield(md,'fieldname','snowpack.output_prof_start','>=',0);
+			md=checkfield(md,'fieldname','snowpack.output_prof_days_between','>=',0);
 			%}}}
 			%interpolations1d %{{{
-			md=checkfield(md,'snowpack.interpolations1d_window_size','>',0);
-			md=checkfield(md,'snowpack.interpolations1d_hnw_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});
-			md=checkfield(md,'snowpack.interpolations1d_hs_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});
-			md=checkfield(md,'snowpack.interpolations1d_tsg_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});
-			md=checkfield(md,'snowpack.interpolations1d_rho_hn_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});
-			md=checkfield(md,'snowpack.interpolations1d_vw_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});
-			md=checkfield(md,'snowpack.interpolations1d_vw_args','values',{'EXTRAPOLATE'});
+			md=checkfield(md,'fieldname','snowpack.interpolations1d_window_size','>',0);
+			md=checkfield(md,'fieldname','snowpack.interpolations1d_hnw_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});
+			md=checkfield(md,'fieldname','snowpack.interpolations1d_hs_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});
+			md=checkfield(md,'fieldname','snowpack.interpolations1d_tsg_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});
+			md=checkfield(md,'fieldname','snowpack.interpolations1d_rho_hn_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});
+			md=checkfield(md,'fieldname','snowpack.interpolations1d_vw_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});
+			md=checkfield(md,'fieldname','snowpack.interpolations1d_vw_args','values',{'EXTRAPOLATE'});
 			%}}}
 			%filters {{{
 			filter_values={'MIN_MAX','RATE_FILTER1','RATE_FILTER2','UNHEATED_RAIN_GAUGE_FILTER','WMO_UNDERCATCH_FILTER','WMO_UNDERCATCH_FILTER-SIMPLIFIED','UNVENTILLATED_TEMPERATURE_SENSOR','ADD_AN_OFFSET'};
 
-			md=checkfield(md,'snowpack.filters_ta_filter1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_ta_filter1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_ta_filter1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_ta_arg1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_ta_arg1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_ta_arg1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_rh_filter1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_rh_filter1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_rh_filter1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_rh_arg1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_rh_arg1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_rh_arg1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_rh_filter2','values',{filter_values});
-			if strcmpi(md.snowpack.filters_rh_filter2,'MIN_MAX'), md=checkfield(md,'snowpack.filters_rh_filter2','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_rh_arg2','values',{filter_values});
-			if strcmpi(md.snowpack.filters_rh_arg2,'MIN_MAX'), md=checkfield(md,'snowpack.filters_rh_arg2','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_iswr_filter1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_iswr_filter1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_iswr_filter1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_iswr_arg1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_iswr_arg1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_iswr_arg1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_iswr_filter2','values',{filter_values});
-			if strcmpi(md.snowpack.filters_iswr_filter2,'MIN_MAX'), md=checkfield(md,'snowpack.filters_iswr_filter2','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_iswr_arg2','values',{filter_values});
-			if strcmpi(md.snowpack.filters_iswr_arg2,'MIN_MAX'), md=checkfield(md,'snowpack.filters_iswr_arg2','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_rswr_filter1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_rswr_filter1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_rswr_filter1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_rswr_arg1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_rswr_arg1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_rswr_arg1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_rswr_filter2','values',{filter_values});
-			if strcmpi(md.snowpack.filters_rswr_filter2,'MIN_MAX'), md=checkfield(md,'snowpack.filters_rswr_filter2','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_rswr_arg2','values',{filter_values});
-			if strcmpi(md.snowpack.filters_rswr_arg2,'MIN_MAX'), md=checkfield(md,'snowpack.filters_rswr_arg2','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_ta_filter1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_ta_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ta_filter1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_ta_arg1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_ta_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ta_arg1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_rh_filter1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_rh_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rh_filter1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_rh_arg1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_rh_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rh_arg1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_rh_filter2','values',{filter_values});
+			if strcmpi(md.snowpack.filters_rh_filter2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rh_filter2','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_rh_arg2','values',{filter_values});
+			if strcmpi(md.snowpack.filters_rh_arg2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rh_arg2','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_iswr_filter1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_iswr_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_iswr_filter1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_iswr_arg1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_iswr_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_iswr_arg1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_iswr_filter2','values',{filter_values});
+			if strcmpi(md.snowpack.filters_iswr_filter2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_iswr_filter2','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_iswr_arg2','values',{filter_values});
+			if strcmpi(md.snowpack.filters_iswr_arg2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_iswr_arg2','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_rswr_filter1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_rswr_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rswr_filter1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_rswr_arg1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_rswr_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rswr_arg1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_rswr_filter2','values',{filter_values});
+			if strcmpi(md.snowpack.filters_rswr_filter2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rswr_filter2','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_rswr_arg2','values',{filter_values});
+			if strcmpi(md.snowpack.filters_rswr_arg2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rswr_arg2','size',[1 NaN]); end
 
 			%for ta between 190 and 280 k;
-			md=checkfield(md,'snowpack.filters_ilwr_filter1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_ilwr_filter1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_ilwr_filter1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_ilwr_arg1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_ilwr_arg1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_ilwr_arg1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_ilwr_filter2','values',{filter_values});
-			if strcmpi(md.snowpack.filters_ilwr_filter2,'MIN_MAX'), md=checkfield(md,'snowpack.filters_ilwr_filter2','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_ilwr_arg2','values',{filter_values});
-			if strcmpi(md.snowpack.filters_ilwr_arg2,'MIN_MAX'), md=checkfield(md,'snowpack.filters_ilwr_arg2','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_tss_filter1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_tss_filter1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_tss_filter1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_tss_arg1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_tss_arg1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_tss_arg1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_tsg_filter1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_tsg_filter1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_tsg_filter1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_tsg_arg1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_tsg_arg1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_tsg_arg1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_vw_filter1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_vw_filter1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_vw_filter1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_vw_arg1','values',{filter_values});
-			if strcmpi(md.snowpack.filters_vw_arg1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_vw_arg1','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_vw_filter2','values',{filter_values});
-			if strcmpi(md.snowpack.filters_vw_filter2,'MIN_MAX'), md=checkfield(md,'snowpack.filters_vw_filter2','size',[1 NaN]); end
-			md=checkfield(md,'snowpack.filters_vw_arg2','values',{filter_values});
-			if strcmpi(md.snowpack.filters_vw_arg2,'MIN_MAX'), md=checkfield(md,'snowpack.filters_vw_arg2','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_ilwr_filter1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_ilwr_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ilwr_filter1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_ilwr_arg1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_ilwr_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ilwr_arg1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_ilwr_filter2','values',{filter_values});
+			if strcmpi(md.snowpack.filters_ilwr_filter2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ilwr_filter2','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_ilwr_arg2','values',{filter_values});
+			if strcmpi(md.snowpack.filters_ilwr_arg2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ilwr_arg2','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_tss_filter1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_tss_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_tss_filter1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_tss_arg1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_tss_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_tss_arg1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_tsg_filter1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_tsg_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_tsg_filter1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_tsg_arg1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_tsg_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_tsg_arg1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_vw_filter1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_vw_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_vw_filter1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_vw_arg1','values',{filter_values});
+			if strcmpi(md.snowpack.filters_vw_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_vw_arg1','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_vw_filter2','values',{filter_values});
+			if strcmpi(md.snowpack.filters_vw_filter2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_vw_filter2','size',[1 NaN]); end
+			md=checkfield(md,'fieldname','snowpack.filters_vw_arg2','values',{filter_values});
+			if strcmpi(md.snowpack.filters_vw_arg2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_vw_arg2','size',[1 NaN]); end
 
 			%}}}
Index: /issm/trunk-jpl/src/m/classes/spheremesh.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/spheremesh.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/spheremesh.m	(revision 16764)
@@ -42,29 +42,29 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'spheremesh.x','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
-			md = checkfield(md,'spheremesh.y','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
-			md = checkfield(md,'spheremesh.z','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
-			md = checkfield(md,'spheremesh.r','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
-			md = checkfield(md,'spheremesh.theta','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
-			md = checkfield(md,'spheremesh.phi','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
-			md = checkfield(md,'spheremesh.elements','NaN',1,'>',0,'values',1:md.spheremesh.numberofvertices);
+			md = checkfield(md,'fieldname','spheremesh.x','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','spheremesh.y','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','spheremesh.z','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','spheremesh.r','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','spheremesh.theta','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','spheremesh.phi','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','spheremesh.elements','NaN',1,'>',0,'values',1:md.spheremesh.numberofvertices);
 			if(md.spheremesh.dimension==2),
-				md = checkfield(md,'spheremesh.elements','size',[md.spheremesh.numberofelements 3]);
+				md = checkfield(md,'fieldname','spheremesh.elements','size',[md.spheremesh.numberofelements 3]);
 			else
-				md = checkfield(md,'spheremesh.elements','size',[md.spheremesh.numberofelements 6]);
+				md = checkfield(md,'fieldname','spheremesh.elements','size',[md.spheremesh.numberofelements 6]);
 			end
 			if any(~ismember(1:md.spheremesh.numberofvertices,sort(unique(md.spheremesh.elements(:)))));
 				md = checkmessage(md,'orphan nodes have been found. Check the spheremesh outline');
 			end
-			md = checkfield(md,'spheremesh.dimension','values',[2 3]);
-			md = checkfield(md,'spheremesh.numberoflayers','>=',0);
-			md = checkfield(md,'spheremesh.numberofelements','>',0);
-			md = checkfield(md,'spheremesh.numberofvertices','>',0);
+			md = checkfield(md,'fieldname','spheremesh.dimension','values',[2 3]);
+			md = checkfield(md,'fieldname','spheremesh.numberoflayers','>=',0);
+			md = checkfield(md,'fieldname','spheremesh.numberofelements','>',0);
+			md = checkfield(md,'fieldname','spheremesh.numberofvertices','>',0);
 			if (md.spheremesh.dimension==2),
-				md = checkfield(md,'spheremesh.average_vertex_connectivity','>=',9,'message','''spheremesh.average_vertex_connectivity'' should be at least 9 in 2d');
+				md = checkfield(md,'fieldname','spheremesh.average_vertex_connectivity','>=',9,'message','''spheremesh.average_vertex_connectivity'' should be at least 9 in 2d');
 			else
-				md = checkfield(md,'spheremesh.average_vertex_connectivity','>=',24,'message','''spheremesh.average_vertex_connectivity'' should be at least 24 in 3d');
+				md = checkfield(md,'fieldname','spheremesh.average_vertex_connectivity','>=',24,'message','''spheremesh.average_vertex_connectivity'' should be at least 24 in 3d');
 			end
-			md = checkfield(md,'spheremesh.elementconnectivity','size',[md.spheremesh.numberofelements 3],'NaN',1);
+			md = checkfield(md,'fieldname','spheremesh.elementconnectivity','size',[md.spheremesh.numberofelements 3],'NaN',1);
 
 			%Solution specific checks
@@ -72,12 +72,12 @@
 				case MasstransportSolutionEnum(),
 					if md.masstransport.stabilization==3,
-						md = checkfield(md,'spheremesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d spheremeshes');
+						md = checkfield(md,'fieldname','spheremesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d spheremeshes');
 					end
 				case TransientSolutionEnum(),
 					if md.transient.ismasstransport & md.masstransport.stabilization==3,
-						md = checkfield(md,'spheremesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d spheremeshes');
+						md = checkfield(md,'fieldname','spheremesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d spheremeshes');
 					end
 				case ThermalSolutionEnum(),
-					md = checkfield(md,'spheremesh.dimension','values',3,'message','thermal solution only supported on 3d spheremeshes');
+					md = checkfield(md,'fieldname','spheremesh.dimension','values',3,'message','thermal solution only supported on 3d spheremeshes');
 			end
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/steadystate.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/steadystate.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/steadystate.m	(revision 16764)
@@ -42,5 +42,5 @@
 				md = checkmessage(md,['for a steadystate computation, timestepping.time_step must be zero.']);
 			end
-			md = checkfield(md,'steadystate.requested_outputs','stringrow',1);
+			md = checkfield(md,'fieldname','steadystate.requested_outputs','stringrow',1);
 
 			if isnan(md.stressbalance.reltol),
Index: /issm/trunk-jpl/src/m/classes/steadystate.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/steadystate.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/steadystate.py	(revision 16764)
@@ -58,5 +58,5 @@
 			md.checkmessage("for a steadystate computation, stressbalance.reltol (relative convergence criterion) must be defined!")
 
-		md = checkfield(md,'steadystate.requested_outputs','stringrow',1)
+		md = checkfield(md,'fieldname','steadystate.requested_outputs','stringrow',1)
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/stressbalance.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/stressbalance.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/stressbalance.m	(revision 16764)
@@ -82,17 +82,17 @@
 			if ~ismember(StressbalanceAnalysisEnum(),analyses), return; end
 
-			md = checkfield(md,'stressbalance.spcvx','forcing',1);
-			md = checkfield(md,'stressbalance.spcvy','forcing',1);
-			md = checkfield(md,'stressbalance.spcvz','forcing',1);
-			md = checkfield(md,'stressbalance.restol','size',[1 1],'>',0,'NaN',1);
-			md = checkfield(md,'stressbalance.reltol','size',[1 1]);
-			md = checkfield(md,'stressbalance.abstol','size',[1 1]);
-			md = checkfield(md,'stressbalance.isnewton','numel',[1],'values',[0 1 2]);
-			md = checkfield(md,'stressbalance.FSreconditioning','size',[1 1],'NaN',1);
-			md = checkfield(md,'stressbalance.viscosity_overshoot','size',[1 1],'NaN',1);
-			md = checkfield(md,'stressbalance.maxiter','size',[1 1],'>=',1);
-			md = checkfield(md,'stressbalance.referential','size',[md.mesh.numberofvertices 6]);
-			md = checkfield(md,'stressbalance.loadingforce','size',[md.mesh.numberofvertices 3]);
-			md = checkfield(md,'stressbalance.requested_outputs','stringrow',1);
+			md = checkfield(md,'fieldname','stressbalance.spcvx','forcing',1);
+			md = checkfield(md,'fieldname','stressbalance.spcvy','forcing',1);
+			md = checkfield(md,'fieldname','stressbalance.spcvz','forcing',1);
+			md = checkfield(md,'fieldname','stressbalance.restol','size',[1 1],'>',0,'NaN',1);
+			md = checkfield(md,'fieldname','stressbalance.reltol','size',[1 1]);
+			md = checkfield(md,'fieldname','stressbalance.abstol','size',[1 1]);
+			md = checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0 1 2]);
+			md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1 1],'NaN',1);
+			md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1 1],'NaN',1);
+			md = checkfield(md,'fieldname','stressbalance.maxiter','size',[1 1],'>=',1);
+			md = checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices 6]);
+			md = checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices 3]);
+			md = checkfield(md,'fieldname','stressbalance.requested_outputs','stringrow',1);
 
 			%singular solution
@@ -117,5 +117,5 @@
 					md = checkmessage(md,['no referential should be specified for basal vertices of grounded ice']);
 				end
-				md = checkfield(md,'stressbalance.FSreconditioning','>',0);
+				md = checkfield(md,'fieldname','stressbalance.FSreconditioning','>',0);
 			end
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/stressbalance.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/stressbalance.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/stressbalance.py	(revision 16764)
@@ -127,18 +127,18 @@
 			return md
 
-		md = checkfield(md,'stressbalance.spcvx','forcing',1)
-		md = checkfield(md,'stressbalance.spcvy','forcing',1)
+		md = checkfield(md,'fieldname','stressbalance.spcvx','forcing',1)
+		md = checkfield(md,'fieldname','stressbalance.spcvy','forcing',1)
 		if strcmp(md.mesh.meshtype(),'3D'):
-			md = checkfield(md,'stressbalance.spcvz','forcing',1)
-		md = checkfield(md,'stressbalance.restol','size',[1],'>',0)
-		md = checkfield(md,'stressbalance.reltol','size',[1])
-		md = checkfield(md,'stressbalance.abstol','size',[1])
-		md = checkfield(md,'stressbalance.isnewton','numel',[1],'values',[0,1,2])
-		md = checkfield(md,'stressbalance.FSreconditioning','size',[1],'NaN',1)
-		md = checkfield(md,'stressbalance.viscosity_overshoot','size',[1],'NaN',1)
-		md = checkfield(md,'stressbalance.maxiter','size',[1],'>=',1)
-		md = checkfield(md,'stressbalance.referential','size',[md.mesh.numberofvertices,6])
-		md = checkfield(md,'stressbalance.loadingforce','size',[md.mesh.numberofvertices,3])
-		md = checkfield(md,'stressbalance.requested_outputs','stringrow',1);
+			md = checkfield(md,'fieldname','stressbalance.spcvz','forcing',1)
+		md = checkfield(md,'fieldname','stressbalance.restol','size',[1],'>',0)
+		md = checkfield(md,'fieldname','stressbalance.reltol','size',[1])
+		md = checkfield(md,'fieldname','stressbalance.abstol','size',[1])
+		md = checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0,1,2])
+		md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1],'NaN',1)
+		md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1],'NaN',1)
+		md = checkfield(md,'fieldname','stressbalance.maxiter','size',[1],'>=',1)
+		md = checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices,6])
+		md = checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices,3])
+		md = checkfield(md,'fieldname','stressbalance.requested_outputs','stringrow',1);
 
 		#singular solution
Index: /issm/trunk-jpl/src/m/classes/surfaceforcings.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/surfaceforcings.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/surfaceforcings.m	(revision 16764)
@@ -45,30 +45,30 @@
 
 			if ismember(MasstransportAnalysisEnum(),analyses),
-				md = checkfield(md,'surfaceforcings.ispdd','numel',[1],'values',[0 1]);
-				md = checkfield(md,'surfaceforcings.issmbgradients','numel',[1],'values',[0 1]);
+				md = checkfield(md,'fieldname','surfaceforcings.ispdd','numel',[1],'values',[0 1]);
+				md = checkfield(md,'fieldname','surfaceforcings.issmbgradients','numel',[1],'values',[0 1]);
 				if(obj.ispdd)
-				  md = checkfield(md,'surfaceforcings.desfac','<=',1,'numel',1);
-				  md = checkfield(md,'surfaceforcings.s0p','>=',0,'numel',1);
+				  md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1);
+				  md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',1);
 					if(obj.isdelta18o==0)
-						md = checkfield(md,'surfaceforcings.monthlytemperatures','forcing',1,'NaN',1);
-						md = checkfield(md,'surfaceforcings.precipitation','forcing',1,'NaN',1);
+						md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','forcing',1,'NaN',1);
+						md = checkfield(md,'fieldname','surfaceforcings.precipitation','forcing',1,'NaN',1);
 					else
-						md = checkfield(md,'surfaceforcings.delta18o','NaN',1);
-						md = checkfield(md,'surfaceforcings.delta18o_surface','NaN',1);
-						md = checkfield(md,'surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
-						md = checkfield(md,'surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1);
-						md = checkfield(md,'surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+						md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1);
+						md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1);
+						md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+						md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+						md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
 					end
 				elseif(obj.issmbgradients)
-					md = checkfield(md,'surfaceforcings.href','forcing',1,'NaN',1);
-					md = checkfield(md,'surfaceforcings.smbref','forcing',1,'NaN',1);
-					md = checkfield(md,'surfaceforcings.b_pos','forcing',1,'NaN',1);
-					md = checkfield(md,'surfaceforcings.b_neg','forcing',1,'NaN',1);
+					md = checkfield(md,'fieldname','surfaceforcings.href','forcing',1,'NaN',1);
+					md = checkfield(md,'fieldname','surfaceforcings.smbref','forcing',1,'NaN',1);
+					md = checkfield(md,'fieldname','surfaceforcings.b_pos','forcing',1,'NaN',1);
+					md = checkfield(md,'fieldname','surfaceforcings.b_neg','forcing',1,'NaN',1);
 				else
-					md = checkfield(md,'surfaceforcings.mass_balance','forcing',1,'NaN',1);
+					md = checkfield(md,'fieldname','surfaceforcings.mass_balance','forcing',1,'NaN',1);
 				end
 			end
 			if ismember(BalancethicknessAnalysisEnum(),analyses),
-				md = checkfield(md,'surfaceforcings.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1);
+				md = checkfield(md,'fieldname','surfaceforcings.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1);
 			end
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/surfaceforcings.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/surfaceforcings.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/surfaceforcings.py	(revision 16764)
@@ -73,28 +73,28 @@
 
 		if MasstransportAnalysisEnum() 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,'fieldname','surfaceforcings.ispdd','numel',[1],'values',[0,1])
+			md = checkfield(md,'fieldname','surfaceforcings.issmbgradients','numel',[1],'values',[0,1])
 			if   self.ispdd:
-				md = checkfield(md,'surfaceforcings.desfac','<=',1,'numel',[1]);
-				md = checkfield(md,'surfaceforcings.s0p','>=',0,'numel',[1]);
+				md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1]);
+				md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',[1]);
 				if not self.isdelta18o:
-					md = checkfield(md,'surfaceforcings.monthlytemperatures','forcing',1,'NaN',1)
-					md = checkfield(md,'surfaceforcings.precipitation','forcing',1,'NaN',1)
+					md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','forcing',1,'NaN',1)
+					md = checkfield(md,'fieldname','surfaceforcings.precipitation','forcing',1,'NaN',1)
 				else:
-					md = checkfield(md,'surfaceforcings.delta18o','NaN',1)
-					md = checkfield(md,'surfaceforcings.delta18o_surface','NaN',1)
-					md = checkfield(md,'surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
-					md = checkfield(md,'surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1)
-					md = checkfield(md,'surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1)
+					md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1)
+					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+					md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
 			elif self.issmbgradients:
-				md = checkfield(md,'surfaceforcings.href','forcing',1,'NaN',1)
-				md = checkfield(md,'surfaceforcings.smbref','forcing',1,'NaN',1)
-				md = checkfield(md,'surfaceforcings.b_pos','forcing',1,'NaN',1)
-				md = checkfield(md,'surfaceforcings.b_neg','forcing',1,'NaN',1)
+				md = checkfield(md,'fieldname','surfaceforcings.href','forcing',1,'NaN',1)
+				md = checkfield(md,'fieldname','surfaceforcings.smbref','forcing',1,'NaN',1)
+				md = checkfield(md,'fieldname','surfaceforcings.b_pos','forcing',1,'NaN',1)
+				md = checkfield(md,'fieldname','surfaceforcings.b_neg','forcing',1,'NaN',1)
 			else:
-				md = checkfield(md,'surfaceforcings.mass_balance','forcing',1,'NaN',1)
+				md = checkfield(md,'fieldname','surfaceforcings.mass_balance','forcing',1,'NaN',1)
 
 		if BalancethicknessAnalysisEnum() in analyses:
-			md = checkfield(md,'surfaceforcings.mass_balance','size',[md.mesh.numberofvertices],'NaN',1)
+			md = checkfield(md,'fieldname','surfaceforcings.mass_balance','size',[md.mesh.numberofvertices],'NaN',1)
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/taoinversion.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/taoinversion.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/taoinversion.m	(revision 16764)
@@ -75,21 +75,21 @@
 			num_costfunc=size(md.inversion.cost_functions,2);
 
-			md = checkfield(md,'inversion.iscontrol','values',[0 1]);
-			md = checkfield(md,'inversion.incomplete_adjoint','values',[0 1]);
-			md = checkfield(md,'inversion.control_parameters','cell',1,'values',...
+			md = checkfield(md,'fieldname','inversion.iscontrol','values',[0 1]);
+			md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]);
+			md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',...
 				{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'MaterialsRheologyZbar' 'Vx' 'Vy' 'Thickness'});
-			md = checkfield(md,'inversion.nsteps','numel',1,'>=',0);
-			md = checkfield(md,'inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]);
-			md = checkfield(md,'inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);
-			md = checkfield(md,'inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]);
-			md = checkfield(md,'inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);
+			md = checkfield(md,'fieldname','inversion.nsteps','numel',1,'>=',0);
+			md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]);
+			md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);
+			md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]);
+			md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);
 
 			if solution==BalancethicknessSolutionEnum()
-				md = checkfield(md,'inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
 			elseif solution==BalancethicknessSoftSolutionEnum()
-				md = checkfield(md,'inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
 			else
-				md = checkfield(md,'inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
-				md = checkfield(md,'inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+				md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
 			end
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/thermal.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/thermal.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/thermal.m	(revision 16764)
@@ -62,18 +62,18 @@
 			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.spctemperature','forcing',1);
+			md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 1 2]);
+			md = checkfield(md,'fieldname','thermal.spctemperature','forcing',1);
 			if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy & md.mesh.dimension==3),
 				pos=find(md.thermal.spctemperature(1:md.mesh.numberofvertices,:)~=NaN);
 				replicate=repmat(md.geometry.surface-md.mesh.z,1,size(md.thermal.spctemperature,2));
-				md = checkfield(md,'thermal.spctemperature(find(md.thermal.spctemperature(1:md.mesh.numberofvertices,:)~=NaN))','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate(pos),'message','spctemperature should be below the adjusted melting point');
-				md = checkfield(md,'thermal.isenthalpy','numel',[1],'values',[0 1]);
-				md = checkfield(md,'thermal.isdynamicbasalspc','numel', [1],'values',[0 1]);
+				md = checkfield(md,'fieldname','thermal.spctemperature(find(md.thermal.spctemperature(1:md.mesh.numberofvertices,:)~=NaN))','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate(pos),'message','spctemperature should be below the adjusted melting point');
+				md = checkfield(md,'fieldname','thermal.isenthalpy','numel',[1],'values',[0 1]);
+				md = checkfield(md,'fieldname','thermal.isdynamicbasalspc','numel', [1],'values',[0 1]);
 				if(md.thermal.isenthalpy)
-					md = checkfield(md,'thermal.isdynamicbasalspc','numel', [1],'values',[1], 'message',['for enthalpy run thermal.isdynamicbasalspc should be 1']);
+					md = checkfield(md,'fieldname','thermal.isdynamicbasalspc','numel', [1],'values',[1], 'message',['for enthalpy run thermal.isdynamicbasalspc should be 1']);
 				end
 	    end
 
-		 md = checkfield(md,'thermal.requested_outputs','stringrow',1);
+		 md = checkfield(md,'fieldname','thermal.requested_outputs','stringrow',1);
     end % }}} 
 		function disp(obj) % {{{
Index: /issm/trunk-jpl/src/m/classes/thermal.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/thermal.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/thermal.py	(revision 16764)
@@ -79,13 +79,13 @@
 			return md
 
-		md = checkfield(md,'thermal.stabilization','numel',[1],'values',[0,1,2])
-		md = checkfield(md,'thermal.spctemperature','forcing',1)
+		md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0,1,2])
+		md = checkfield(md,'fieldname','thermal.spctemperature','forcing',1)
 		if EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy and md.mesh.dimension==3:
 			pos=numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices])))
 			replicate=numpy.tile(md.geometry.surface-md.mesh.z,(1,numpy.size(md.thermal.spctemperature,axis=1)))
-			md = checkfield(md,'thermal.spctemperature[numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices,:])))]','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate[pos],'message',"spctemperature should be below the adjusted melting point")
-			md = checkfield(md,'thermal.isenthalpy','numel',[1],'values',[0,1])
-			md = checkfield(md,'thermal.isdynamicbasalspc','numel',[1],'values',[0,1]);
-			md = checkfield(md,'thermal.requested_outputs','stringrow',1)
+			md = checkfield(md,'fieldname','thermal.spctemperature[numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices,:])))]','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate[pos],'message',"spctemperature should be below the adjusted melting point")
+			md = checkfield(md,'fieldname','thermal.isenthalpy','numel',[1],'values',[0,1])
+			md = checkfield(md,'fieldname','thermal.isdynamicbasalspc','numel',[1],'values',[0,1]);
+			md = checkfield(md,'fieldname','thermal.requested_outputs','stringrow',1)
 
 		return md
Index: /issm/trunk-jpl/src/m/classes/timestepping.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/timestepping.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/timestepping.m	(revision 16764)
@@ -35,9 +35,9 @@
 		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,'fieldname','timestepping.start_time','numel',[1],'NaN',1);
+			md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1);
+			md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1);
+			md = checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','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');
Index: /issm/trunk-jpl/src/m/classes/timestepping.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/timestepping.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/timestepping.py	(revision 16764)
@@ -48,9 +48,9 @@
 	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,'fieldname','timestepping.start_time','numel',[1],'NaN',1)
+		md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1)
+		md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1)
+		md = checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0,1])
+		md = checkfield(md,'fieldname','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: /issm/trunk-jpl/src/m/classes/transient.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/transient.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/transient.m	(revision 16764)
@@ -46,11 +46,11 @@
 			if solution~=TransientSolutionEnum(), return; end
 
-			md = checkfield(md,'transient.ismasstransport','numel',[1],'values',[0 1]);
-			md = checkfield(md,'transient.isstressbalance','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.isgia','numel',[1],'values',[0 1]);
-			md = checkfield(md,'transient.isdamage','numel',[1],'values',[0 1]);
-			md = checkfield(md,'transient.requested_outputs','stringrow',1);
+			md = checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','transient.isdamage','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
 
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/transient.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/transient.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/classes/transient.py	(revision 16764)
@@ -58,10 +58,10 @@
 			return md
 
-		md = checkfield(md,'transient.ismasstransport','numel',[1],'values',[0,1])
-		md = checkfield(md,'transient.isstressbalance','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.isgia','numel',[1],'values',[0,1])
-		md = checkfield(md,'transient.requested_outputs','stringrow',1)
+		md = checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0,1])
+		md = checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0,1])
+		md = checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0,1])
+		md = checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0,1])
+		md = checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0,1])
+		md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1)
 
 		return md
Index: /issm/trunk-jpl/src/m/consistency/checkfield.m
===================================================================
--- /issm/trunk-jpl/src/m/consistency/checkfield.m	(revision 16763)
+++ /issm/trunk-jpl/src/m/consistency/checkfield.m	(revision 16764)
@@ -1,6 +1,9 @@
-function md = checkfield(md,fieldname,varargin)
+function md = checkfield(md,varargin)
 %CHECKFIELD - check field consistency
 %
 %   Used to check model consistency.
+%   Requires: 
+%     'field' or 'fieldname' option. If 'fieldname' is provided, it will retrieve it from the model md. (md.(fieldname)) 
+%             If 'field' is provided, it will assume the argument following 'field' is a numeric array.
 %   Available options:
 %      - NaN: 1 if check that there is no NaN
@@ -27,6 +30,13 @@
 options=pairoptions(varargin{:});
 
-%get field from model
-eval(['field=md.' fieldname ';']);
+%get field: 
+if exist(options,'field'), 
+	field=getfieldvalue(options,'field'); 
+	fieldname=getfieldvalue(options,'fieldname','no fieldname'); 
+else
+	fieldname=getfieldvalue(options,'fieldname'); 
+	eval(['field=md.' fieldname ';']);
+end
+
 
 %check empty
Index: /issm/trunk-jpl/src/m/consistency/checkfield.py
===================================================================
--- /issm/trunk-jpl/src/m/consistency/checkfield.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/consistency/checkfield.py	(revision 16764)
@@ -4,9 +4,13 @@
 from MatlabFuncs import *
 
-def checkfield(md,fieldname,*args):
+def checkfield(md,*args):
 	"""
 	CHECKFIELD - check field consistency
 
-	   Used to check model consistency.
+	   Used to check model consistency.,
+	   Requires: 
+	   'field' or 'fieldname' option. If 'fieldname' is provided, it will retrieve it from the model md. (md.(fieldname)) 
+             If 'field' is provided, it will assume the argument following 'field' is a numeric array.
+
 	   Available options:
 	      - NaN: 1 if check that there is no NaN
@@ -35,6 +39,11 @@
 
 	#get field from model
-#	field=getattr(md,fieldname)
-	exec("field=md.%s" % fieldname)
+	if options.exist('field'):
+		field=options.getfieldvalue('field')
+		fieldname=options.getfieldvalue('fieldname','no fieldname')
+	else:
+		fieldname=options.getfieldvalue('fieldname') 
+		exec("field=md.%s" % fieldname)
+
 	if isinstance(field,(bool,int,long,float)):
 		field=numpy.array([field])
Index: /issm/trunk-jpl/src/m/interp/averaging.py
===================================================================
--- /issm/trunk-jpl/src/m/interp/averaging.py	(revision 16763)
+++ /issm/trunk-jpl/src/m/interp/averaging.py	(revision 16764)
@@ -50,4 +50,5 @@
 		numberofnodes=md.mesh.numberofvertices2d
 		numberofelements=md.mesh.numberofelements2d
+
 	
 	#build some variables
@@ -75,6 +76,8 @@
 		average_node=csc_matrix( (npy.tile(areas*data,(rep,1)).reshape(-1,),(line,npy.zeros(linesize,))), shape=(numberofnodes,1))
 		average_node=average_node/weights
+		average_node = csc_matrix(average_node)
 	else:
 		average_node=data
+
 	
 	#loop over iteration
