Index: ../trunk-jpl/src/m/classes/flowequation.py
===================================================================
--- ../trunk-jpl/src/m/classes/flowequation.py	(revision 18308)
+++ ../trunk-jpl/src/m/classes/flowequation.py	(revision 18309)
@@ -72,34 +72,37 @@
 	#}}}
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
-		if StressbalanceAnalysisEnum() in analyses:
-			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','P2bubble'])
-			md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4'])
-			md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','XTaylorHood','OneLayerP4z','CrouzeixRaviart'])
-			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])
-			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_r','numel',[1],'>',0.)
-			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rhop','numel',[1],'>',0.)
-			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rlambda','numel',[1],'>',0.)
-			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rholambda','numel',[1],'>',0.)
-			md = checkfield(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',.5)
-			if m.strcmp(md.mesh.domaintype(),'2Dhorizontal'):
-				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 m.strcmp(md.mesh.domaintype(),'3D'):
-				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')
-			if not (self.isSIA or self.isSSA or self.isL1L2 or self.isHO or self.isFS):
-				md.checkmessage("no element types set for this model")
+		#Early return
+		if (StressbalanceAnalysisEnum() not in analyses and StressbalanceSIAAnalysisEnum() not in analyses) or (solution==TransientSolutionEnum() and not md.transient.isstressbalance):
+			return md
 
+		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','P2bubble'])
+		md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4'])
+		md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','XTaylorHood','OneLayerP4z','CrouzeixRaviart'])
+		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])
+		md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_r','numel',[1],'>',0.)
+		md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rhop','numel',[1],'>',0.)
+		md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rlambda','numel',[1],'>',0.)
+		md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rholambda','numel',[1],'>',0.)
+		md = checkfield(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',.5)
+		if m.strcmp(md.mesh.domaintype(),'2Dhorizontal'):
+			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 m.strcmp(md.mesh.domaintype(),'3D'):
+			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')
+		if not (self.isSIA or self.isSSA or self.isL1L2 or self.isHO or self.isFS):
+			md.checkmessage("no element types set for this model")
+
 		if StressbalanceSIAAnalysisEnum() in analyses:
 			if any(self.element_equation==1):
 				if numpy.any(numpy.logical_and(self.vertex_equation,md.mask.groundedice_levelset)):
Index: ../trunk-jpl/src/m/classes/flowequation.m
===================================================================
--- ../trunk-jpl/src/m/classes/flowequation.m	(revision 18308)
+++ ../trunk-jpl/src/m/classes/flowequation.m	(revision 18309)
@@ -127,40 +127,41 @@
 		end % }}}
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			if ismember(StressbalanceAnalysisEnum(),analyses),
 
-				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','P2bubble'});
-				md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4'});
-				md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','LATaylorHood','XTaylorHood','OneLayerP4z','CrouzeixRaviart'});
-				md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_r','numel',[1],'>',0.);
-				md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rlambda','numel',[1],'>',0.);
-				md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rhop','numel',[1],'>',0.);
-				md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rholambda','numel',[1],'>',0.);
-				md = checkfield(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',0.5);
-				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(domaintype(md.mesh),'2Dhorizontal')
-					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(domaintype(md.mesh),'2Dvertical')
-					md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[2,4,5]);
-					md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[2,4,5]);
-				elseif strcmp(domaintype(md.mesh),'3D'),
-					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');
-				end
-				if ~(obj.isSIA || obj.isSSA || obj.isL1L2 || obj.isHO || obj.isFS),
-					md = checkmessage(md,['no element types set for this model']);
-				end
+			%Early return
+			if (~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(StressbalanceSIAAnalysisEnum(),analyses)) | (solution==TransientSolutionEnum() & md.transient.isstressbalance==0), return; end
+
+			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','P2bubble'});
+			md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4'});
+			md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','LATaylorHood','XTaylorHood','OneLayerP4z','CrouzeixRaviart'});
+			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_r','numel',[1],'>',0.);
+			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rlambda','numel',[1],'>',0.);
+			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rhop','numel',[1],'>',0.);
+			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rholambda','numel',[1],'>',0.);
+			md = checkfield(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',0.5);
+			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(domaintype(md.mesh),'2Dhorizontal')
+				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(domaintype(md.mesh),'2Dvertical')
+				md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[2,4,5]);
+				md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[2,4,5]);
+			elseif strcmp(domaintype(md.mesh),'3D'),
+				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');
 			end
+			if ~(obj.isSIA || obj.isSSA || obj.isL1L2 || obj.isHO || obj.isFS),
+				md = checkmessage(md,['no element types set for this model']);
+			end
 			if ismember(StressbalanceSIAAnalysisEnum(),analyses),
 				if any(obj.element_equation==1),
 					if(obj.vertex_equation & md.mask.groundedice_levelset<0.),
