Index: issm/trunk/src/m/classes/hydrologydc.m
===================================================================
--- issm/trunk/src/m/classes/hydrologydc.m	(revision 21341)
+++ issm/trunk/src/m/classes/hydrologydc.m	(revision 22758)
@@ -12,9 +12,12 @@
 		rel_tol                  = 0;
 		max_iter                 = 0;
+    steps_per_step           = 0;
 		sedimentlimit_flag       = 0;
 		sedimentlimit            = 0;
 		transfer_flag            = 0;
+		unconfined_flag          = 0;
 		leakage_factor           = 0;
 		basal_moulin_input       = NaN;
+    requested_outputs        = {};
 
 		spcsediment_head         = NaN;
@@ -58,4 +61,17 @@
 		end 
 		% }}}
+    function list = defaultoutputs(self,md) % {{{
+        list = {'SedimentHead','SedimentHeadResidual','EffectivePressure'};
+        if self.isefficientlayer,
+            list=[list,{'EplHead','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'}];
+        end
+        if self.steps_per_step>1,
+            list = [list,'EffectivePressureTimeAverage','SedimentHeadTimeAverage'];
+            if self.isefficientlayer,
+                list = [list,'EplHeadTimeAverage','HydrologydcEplThicknessTimeAverage'];
+            end
+        end
+    end % }}}    
+
 		function self = initialize(self,md) % {{{
 			if isnan(self.basal_moulin_input),
@@ -76,8 +92,12 @@
 			self.rel_tol                  = 1.0e-06;
 			self.max_iter                 = 100;
+			self.steps_per_step           = 1;
 			self.sedimentlimit_flag       = 0;
 			self.sedimentlimit            = 0;
 			self.transfer_flag            = 0;
+			self.unconfined_flag          = 0;
 			self.leakage_factor           = 10.0;
+      self.requested_outputs        = {'default'};
+
 
 			self.sediment_compressibility = 1.0e-08;
@@ -111,6 +131,9 @@
 			md = checkfield(md,'fieldname','hydrology.rel_tol','>',0,'numel',1);
 			md = checkfield(md,'fieldname','hydrology.max_iter','>',0,'numel',1);
+			md = checkfield(md,'fieldname','hydrology.steps_per_step','>',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]);
+			md = checkfield(md,'fieldname','hydrology.unconfined_flag','numel',[1],'values',[0 1]);
+      md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1);
 			if self.sedimentlimit_flag==1,
 				md = checkfield(md,'fieldname','hydrology.sedimentlimit','>',0,'numel',1);
@@ -156,4 +179,5 @@
 			fielddisplay(self,'rel_tol','tolerance of the nonlinear iteration for the transfer between layers [dimensionless]');
 			fielddisplay(self,'max_iter','maximum number of nonlinear iteration');
+			fielddisplay(self,'steps_per_step','number of hydrology steps per timestep');
 			fielddisplay(self,'sedimentlimit_flag','what kind of upper limit is applied for the inefficient layer');
 			disp(sprintf('%55s  0: no limit',' '));
@@ -170,4 +194,8 @@
 				fielddisplay(self,'leakage_factor','user defined leakage factor [m]');
 			end
+			fielddisplay(self,'unconfined_flag',['Do you want unconfined scheme to be used (transitory)']);
+			disp(sprintf('%55s  0: confined only',' '));
+			disp(sprintf('%55s  1: confined unconfined'));
+      fielddisplay(self,'requested_outputs','additional outputs requested');
 			fielddisplay(self,'basal_moulin_input','water flux at a given point [m3 s-1]');
 			disp(sprintf('   - for the sediment layer'));
@@ -205,6 +233,8 @@
 			WriteData(fid,prefix,'object',self,'fieldname','rel_tol','format','Double');
 			WriteData(fid,prefix,'object',self,'fieldname','max_iter','format','Integer');
+			WriteData(fid,prefix,'object',self,'fieldname','steps_per_step','format','Integer');
 			WriteData(fid,prefix,'object',self,'fieldname','sedimentlimit_flag','format','Integer');
 			WriteData(fid,prefix,'object',self,'fieldname','transfer_flag','format','Integer');
+			WriteData(fid,prefix,'object',self,'fieldname','unconfined_flag','format','Integer');
 			if self.sedimentlimit_flag==1,
 				WriteData(fid,prefix,'object',self,'fieldname','sedimentlimit','format','Double');
@@ -233,4 +263,11 @@
 				WriteData(fid,prefix,'object',self,'fieldname','eplflip_lock','format','Integer');
 			end
+      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 
 
