Index: /issm/trunk-jpl/src/m/classes/SMBforcing.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBforcing.m	(revision 20136)
+++ /issm/trunk-jpl/src/m/classes/SMBforcing.m	(revision 20137)
@@ -48,4 +48,6 @@
 		function md = checkconsistency(self,md,solution,analyses) % {{{
 
+			if (solution==TransientSolutionEnum & md.transient.issmb == 0), return; end
+			
 			if ismember(MasstransportAnalysisEnum(),analyses),
 				md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1);
Index: /issm/trunk-jpl/src/m/classes/friction.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/friction.m	(revision 20136)
+++ /issm/trunk-jpl/src/m/classes/friction.m	(revision 20137)
@@ -31,4 +31,6 @@
 			%Early return
 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+			if (solution==TransientSolutionEnum() &  md.transient.isstressbalance ==0 & md.transient.isthermal == 0), return; end
+
 			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1);
 			md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
Index: /issm/trunk-jpl/src/m/classes/initialization.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/initialization.m	(revision 20136)
+++ /issm/trunk-jpl/src/m/classes/initialization.m	(revision 20137)
@@ -46,5 +46,5 @@
 		end % }}}
 		function md = checkconsistency(self,md,solution,analyses) % {{{
-			if ismember(StressbalanceAnalysisEnum(),analyses)
+			if ismember(StressbalanceAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isstressbalance == 0),
 				if ~(isnan(md.initialization.vx) | isnan(md.initialization.vy)),
 					md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
@@ -52,5 +52,5 @@
 				end
 			end
-			if ismember(MasstransportAnalysisEnum(),analyses),
+			if ismember(MasstransportAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.ismasstransport == 0),
 				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
 				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
@@ -64,5 +64,5 @@
 				end
 			end
-			if ismember(ThermalAnalysisEnum(),analyses),
+			if ismember(ThermalAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isthermal == 0),
 				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
 				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
Index: /issm/trunk-jpl/src/m/classes/slr.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/slr.m	(revision 20136)
+++ /issm/trunk-jpl/src/m/classes/slr.m	(revision 20137)
@@ -17,4 +17,5 @@
 		degacc         = 0;
 		requested_outputs      = {};
+		transitions    = {};
 	end
 	methods
@@ -46,4 +47,7 @@
 		%output default:
 		self.requested_outputs={'default'};
+
+		%transitions should be a cell array of vectors: 
+		self.transitions={};
 		
 		end % }}}
@@ -82,4 +86,5 @@
 			fielddisplay(self,'eustatic','eustatic sea level rise');
 			fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions');
+			fielddisplay(self,'transitions','indices into parts of the mesh that will be icecaps');
 			fielddisplay(self,'requested_outputs','additional outputs requested');
 
@@ -96,4 +101,6 @@
 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double');
+			WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double');
+			WriteData(fid,'object',self,'class','sealevelrise','fieldname','transitions','format','MatArray');
 			
 			%process requested outputs
Index: /issm/trunk-jpl/src/m/classes/transient.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/transient.m	(revision 20136)
+++ /issm/trunk-jpl/src/m/classes/transient.m	(revision 20137)
@@ -16,4 +16,6 @@
 		iscalving         = 0;
 		ishydrology       = 0;
+		isslr             = 0;
+		iscoupler             = 0;
 		requested_outputs = {};
 	end
@@ -40,4 +42,6 @@
 			self.iscalving       =0;
 			self.ishydrology     = 0;
+			self.isslr           = 0;
+			self.iscoupler           = 0;
 
 			%default output
@@ -57,4 +61,6 @@
 			self.iscalving       = 0;
 			self.ishydrology     = 0;
+			self.isslr           = 0;
+			self.iscoupler           = 0;
 
 			%default output
@@ -84,4 +90,6 @@
 			md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0 1]);
 			md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
+			md = checkfield(md,'fieldname','transient.isslr','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','transient.iscoupler','numel',[1],'values',[0 1]);
 
 		end % }}}
@@ -99,4 +107,6 @@
 			fielddisplay(self,'iscalving','indicates whether calving is used in the transient');
 			fielddisplay(self,'ishydrology','indicates whether an hydrology model is used');
+			fielddisplay(self,'isslr','indicates whether a thermal solution is used in the transient');
+			fielddisplay(self,'iscoupler','indicates whether different models are being run with need for coupling');
 			fielddisplay(self,'requested_outputs','list of additional outputs requested');
 
@@ -113,4 +123,6 @@
 			WriteData(fid,'object',self,'fieldname','islevelset','format','Boolean');
 			WriteData(fid,'object',self,'fieldname','iscalving','format','Boolean');
+			WriteData(fid,'object',self,'fieldname','isslr','format','Boolean');
+			WriteData(fid,'object',self,'fieldname','iscoupler','format','Boolean');
 
 			%process requested outputs
@@ -135,4 +147,6 @@
 			writejsdouble(fid,[modelname '.trans.iscalving'],self.iscalving);
 			writejsdouble(fid,[modelname '.trans.ishydrology'],self.ishydrology);
+			writejsdouble(fid,[modelname '.trans.isslr'],self.isslr);
+			writejsdouble(fid,[modelname '.trans.iscoupler'],self.iscoupler);
 			writejscellstring(fid,[modelname '.trans.requested_outputs'],self.requested_outputs);
 
Index: /issm/trunk-jpl/src/m/classes/transient.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/transient.py	(revision 20136)
+++ /issm/trunk-jpl/src/m/classes/transient.py	(revision 20137)
@@ -23,4 +23,5 @@
 		self.iscalving         = False
 		self.ishydrology       = False
+		self.isslr             = False
 		self.requested_outputs = []
 
@@ -41,4 +42,5 @@
 		string="%s\n%s"%(string,fielddisplay(self,'iscalving','indicates whether calving is used in the transient'))
 		string="%s\n%s"%(string,fielddisplay(self,'ishydrology','indicates whether an hydrology model is used'))
+		string="%s\n%s"%(string,fielddisplay(self,'isslr','indicates if a sea level rise solution is used in the transient'))
 		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','list of additional outputs requested'))
 		return string
@@ -65,4 +67,5 @@
 		self.iscalving         = False
 		self.ishydrology       = False
+		self.isslr             = False
 
 		#default output
@@ -83,4 +86,5 @@
 		self.iscalving       = False
 		self.ishydrology     = False
+		self.isslr           = False
 
 		#default output
@@ -104,4 +108,5 @@
 		md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0,1])
 		md = checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0,1]);
+		md = checkfield(md,'fieldname','transient.isslr','numel',[1],'values',[0,1])
 		md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1)
 
@@ -119,4 +124,5 @@
 		WriteData(fid,'object',self,'fieldname','ishydrology','format','Boolean')
 		WriteData(fid,'object',self,'fieldname','iscalving','format','Boolean')
+		WriteData(fid,'object',self,'fieldname','isslr','format','Boolean')
 
 		#process requested outputs
