Index: /issm/trunk-jpl/src/m/classes/hydrologydc.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologydc.m	(revision 22282)
+++ /issm/trunk-jpl/src/m/classes/hydrologydc.m	(revision 22283)
@@ -64,9 +64,8 @@
         list = {'SedimentHead','SedimentHeadResidual','EffectivePressure'};
         if self.isefficientlayer,
-            list=[list,{'EplHead','HydrologydcMaskEplactiveNode', ...
-                        'HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'}];
+            list=[list,{'EplHead','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'}];
         end
         if self.steps_per_step>1,
-            list = [list,'TimeAverageEffectivePressure'];
+            list = [list,'EffectivePressureTimeAverage'];
         end
     end % }}}    
Index: /issm/trunk-jpl/src/m/classes/hydrologydc.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologydc.py	(revision 22282)
+++ /issm/trunk-jpl/src/m/classes/hydrologydc.py	(revision 22283)
@@ -149,8 +149,7 @@
 			list.extend(['EplHead','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'])
 		if self.steps_per_step>1:
-			list.extend(['TimeAverageEffectivePressure'])
+			list.extend(['EffectivePressureTimeAverage'])
 
 		return list
-
 	#}}}
 
@@ -178,5 +177,5 @@
 		md = checkfield(md,'fieldname','hydrology.transfer_flag','numel',[1],'values',[0,1])
 		md = checkfield(md,'fieldname','hydrology.unconfined_flag','numel',[1],'values',[0,1])
-		md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1);
+		md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1)
 
 		if self.sedimentlimit_flag==1:
Index: /issm/trunk-jpl/src/m/classes/hydrologyshreve.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 22282)
+++ /issm/trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 22283)
@@ -11,4 +11,7 @@
 		this.stabilization=1;
 
+		//default output
+		this.requested_outputs=['default'];
+
 	}// }}}
 		this.disp= function(){// {{{
@@ -17,4 +20,5 @@
 		fielddisplay(this,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]');
 		fielddisplay(this,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.');
+		fielddisplay(this,'requested_outputs','additional outputs requested');
 
 	}// }}}
@@ -37,4 +41,5 @@
 			checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1);
 			checkfield(md,'fieldname','hydrology.stabilization','>=',0);
+			checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1);
 
 		} // }}}
@@ -43,4 +48,16 @@
 			WriteData(fid,prefix,'object',this,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
 			WriteData(fid,prefix,'object',this,'fieldname','stabilization','format','Double');
+			var outputs = this.requested_outputs;
+			for (var i=0;i<outputs.length;i++){
+				if (outputs[i] == 'default') {
+					outputs.splice(i,1);
+					var newoutputs=this.defaultoutputs(md);
+					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+				}
+			}
+			WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray');
+		}//}}}
+		this.defaultoutputs = function(md) { //{{{
+				return ['Watercolumn','HydrologyWaterVx','HydrologyWaterVy'];
 		}//}}}
 		this.fix=function() { //{{{
@@ -51,4 +68,5 @@
 	this.spcwatercolumn = NaN;
 	this.stabilization  = 0;
+	this.requested_outputs = [];
 	this.setdefaultparameters();
 	//}}}
Index: /issm/trunk-jpl/src/m/classes/hydrologyshreve.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 22282)
+++ /issm/trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 22283)
@@ -6,6 +6,7 @@
 classdef hydrologyshreve
 	properties (SetAccess=public) 
-		spcwatercolumn = NaN;
-		stabilization  = 0;
+		spcwatercolumn     = NaN;
+		stabilization      = 0;
+    requested_outputs  = {};
 	end
 	methods
@@ -22,8 +23,13 @@
 			end
 		end % }}}
+    function list = defaultoutputs(self,md) % {{{
+        list = {'Watercolumn','HydrologyWaterVx','HydrologyWaterVy'};
+    end % }}}    
+
 		function self = setdefaultparameters(self) % {{{
 
 			%Type of stabilization to use 0:nothing 1:artificial_diffusivity
-			self.stabilization=1;
+			self.stabilization     = 1;
+      self.requested_outputs = {'default'};
 		end % }}}
 		function md = checkconsistency(self,md,solution,analyses) % {{{
@@ -41,4 +47,5 @@
 			fielddisplay(self,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]');
 			fielddisplay(self,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.');
+      fielddisplay(self,'requested_outputs','additional outputs requested');
 
 		end % }}}
@@ -47,4 +54,11 @@
 			WriteData(fid,prefix,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
 			WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Double');
+      outputs = self.requested_outputs;
+      pos  = find(ismember(outputs,'default'));
+      if ~isempty(pos),
+        outputs(pos) = [];  %remove 'default' from outputs
+        outputs      = [outputs defaultoutputs(self,md)]; %add defaults
+      end
+      WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray');
 		end % }}}
 		function savemodeljs(self,fid,modelname) % {{{
Index: /issm/trunk-jpl/src/m/classes/hydrologyshreve.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologyshreve.py	(revision 22282)
+++ /issm/trunk-jpl/src/m/classes/hydrologyshreve.py	(revision 22283)
@@ -14,5 +14,5 @@
 		self.spcwatercolumn = float('NaN')
 		self.stabilization  = 0
-
+		self.requested_outputs = []
 		#set defaults
 		self.setdefaultparameters()
@@ -24,4 +24,5 @@
 		string="%s\n%s"%(string,fielddisplay(self,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]'))
 		string="%s\n%s"%(string,fielddisplay(self,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.'))
+		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
 		return string
 		#}}}
@@ -33,7 +34,12 @@
 		#Type of stabilization to use 0:nothing 1:artificial_diffusivity
 		self.stabilization=1
-
+		self.requested_outputs= ['default']
 		return self
 	#}}}
+	def defaultoutputs(self,md): # {{{
+		list = ['Watercolumn','HydrologyWaterVx','HydrologyWaterVy']
+		return list
+	#}}}
+
 	def checkconsistency(self,md,solution,analyses):    # {{{
 		
@@ -44,5 +50,5 @@
 		md = checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1)
 		md = checkfield(md,'fieldname','hydrology.stabilization','>=',0)
-
+		md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1)
 		return md
 	# }}}
@@ -51,3 +57,11 @@
 		WriteData(fid,prefix,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 		WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Double')
+		#process requested outputs
+		outputs = self.requested_outputs
+		indices = [i for i, x in enumerate(outputs) if x == 'default']
+		if len(indices) > 0:
+			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
+			outputs    =outputscopy
+		WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray')
+
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/hydrologysommers.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologysommers.m	(revision 22282)
+++ /issm/trunk-jpl/src/m/classes/hydrologysommers.m	(revision 22283)
@@ -17,4 +17,5 @@
 		relaxation      = 0;
 		storage         = 0;
+    requested_outputs = {};
 	end
 	methods
@@ -31,8 +32,13 @@
 			end
 		end % }}}
+    function list = defaultoutputs(self,md) % {{{
+        list = {'HydrologyHead','HydrologyGapHeight','EffectivePressure','HydrologyBasalFlux','DegreeOfChannelization'};
+    end % }}}    
+
 		function self = setdefaultparameters(self) % {{{
 	      % Set under-relaxation parameter to be 1 (no under-relaxation of nonlinear iteration)	
 			self.relaxation=1;
 			self.storage=0;
+      self.requested_outputs={'default'};
 		end % }}}
 		function md = checkconsistency(self,md,solution,analyses) % {{{
@@ -54,4 +60,5 @@
          md = checkfield(md,'fieldname','hydrology.relaxation','>=',0);	
 			md = checkfield(md,'fieldname','hydrology.storage','>=',0);
+      md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1);
 		end % }}}
 		function disp(self) % {{{
@@ -68,4 +75,5 @@
 			fielddisplay(self,'relaxation','under-relaxation coefficient for nonlinear iteration');
 			fielddisplay(self,'storage','englacial storage coefficient (void ratio)');
+      fielddisplay(self,'requested_outputs','additional outputs requested');
 		end % }}}
 		function marshall(self,prefix,md,fid) % {{{
@@ -83,6 +91,13 @@
 			WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','neumannflux','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts);
 			WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','spchead','format','DoubleMat','mattype',1);
-         WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double');
+      WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double');
 			WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','storage','format','Double');
+      outputs = self.requested_outputs;
+      pos  = find(ismember(outputs,'default'));
+      if ~isempty(pos),
+        outputs(pos) = [];  %remove 'default' from outputs
+        outputs      = [outputs defaultoutputs(self,md)]; %add defaults
+      end
+      WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray');
 		end % }}}
 	end
Index: /issm/trunk-jpl/src/m/classes/hydrologysommers.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologysommers.py	(revision 22282)
+++ /issm/trunk-jpl/src/m/classes/hydrologysommers.py	(revision 22283)
@@ -23,4 +23,5 @@
 		self.relaxation      = 0
 		self.storage         = 0
+		self.requested_outputs = []
 
 		#set defaults
@@ -42,4 +43,5 @@
 		string="%s\n%s"%(string,fielddisplay(self,'relaxation','under-relaxation coefficient for nonlinear iteration'))
 		string="%s\n%s"%(string,fielddisplay(self,'storage','englacial storage coefficient (void ratio)'))
+		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
 		return string
 		#}}}
@@ -51,6 +53,12 @@
 		self.relaxation=1
 		self.storage=0
+		self.requested_outputs=['default']
 		return self
 	#}}}
+	def defaultoutputs(self,md): # {{{
+		list = ['HydrologyHead','HydrologyGapHeight','EffectivePressure','HydrologyBasalFlux','DegreeOfChannelization']
+		return list
+	#}}}
+
 	def checkconsistency(self,md,solution,analyses):    # {{{
 		
@@ -70,4 +78,5 @@
          	md = checkfield(md,'fieldname','hydrology.relaxation','>=',0)	
 		md = checkfield(md,'fieldname','hydrology.storage','>=',0)
+		md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1)
 
 		return md
@@ -86,5 +95,12 @@
 		WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','neumannflux','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts)
 		WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','spchead','format','DoubleMat','mattype',1)
-         	WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double')
+		WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double')
 		WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','storage','format','Double')
+		#process requested outputs
+		outputs = self.requested_outputs
+		indices = [i for i, x in enumerate(outputs) if x == 'default']
+		if len(indices) > 0:
+			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
+			outputs    =outputscopy
+		WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray')
 	# }}}
