Index: /issm/trunk-jpl/test/NightlyRun/test3300.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3300.py	(revision 21281)
+++ /issm/trunk-jpl/test/NightlyRun/test3300.py	(revision 21281)
@@ -0,0 +1,75 @@
+import numpy as np
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from transient import *
+from setflowequation import *
+from solve import *
+from MatlabFuncs import *
+
+from generic import generic
+
+md=triangle(model(),'../Exp/Square.exp',100000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md.transient=transient.setallnullparameters(md.transient)
+md.transient.ishydrology=True
+md.transient.issmb=True
+md=setflowequation(md,'SSA','all')
+md.cluster=generic('name',oshostname(),'np',1)
+md.hydrology=hydrologydc()
+md.hydrology=md.hydrology.initialize(md)
+
+md.hydrology.isefficientlayer=1
+md.hydrology.sedimentlimit_flag=1
+md.hydrology.sedimentlimit=400.0
+md.hydrology.sediment_thickness=20.0
+md.initialization.sediment_head=np.zeros((md.mesh.numberofvertices,1))
+md.hydrology.spcsediment_head=float('NaN')*np.ones((md.mesh.numberofvertices,1))
+md.basalforcings.groundedice_melting_rate = 2.0*np.ones((md.mesh.numberofvertices,1))
+md.hydrology.sediment_transmitivity=1.5e-4*np.ones((md.mesh.numberofvertices,1))
+
+md.initialization.epl_head=np.zeros((md.mesh.numberofvertices,1))
+md.initialization.epl_thickness=np.ones((md.mesh.numberofvertices,1))
+md.hydrology.spcepl_head=float('NaN')*np.ones((md.mesh.numberofvertices,1))
+md.hydrology.mask_eplactive_node=np.zeros((md.mesh.numberofvertices,1))
+
+md.hydrology.epl_conductivity=1.5e-2
+md.hydrology.epl_initial_thickness=1.0
+md.hydrology.epl_colapse_thickness=1.0e-6
+md.hydrology.epl_thick_comp=1
+md.hydrology.epl_max_thickness=5.0
+
+md.hydrology.transfer_flag=1.0
+md.hydrology.leakage_factor=3.9e-13
+
+times=np.arange(0,8.001,0.002)
+md.basalforcings.groundedice_melting_rate=np.zeros((md.mesh.numberofvertices+1,len(times)))
+
+md.basalforcings.groundedice_melting_rate[:,np.where(times<=6.0)]=-0.2
+md.basalforcings.groundedice_melting_rate[:,np.where(times<=1.0)]=1.0
+md.basalforcings.groundedice_melting_rate[-1,:]=times
+
+md.timestepping.time_step=0.002
+md.timestepping.final_time=8.0
+
+md=solve(md,'Transient')
+
+sedvol=np.zeros(4000)
+eplvol=np.zeros(4000)
+totvol=np.zeros(4001)
+time=np.arange(0.002,8.001,0.002)
+store=md.constants.g*md.hydrology.sediment_porosity*md.materials.rho_freshwater*((md.hydrology.sediment_compressibility/md.hydrology.sediment_porosity)+md.hydrology.water_compressibility);
+sedstore=20.0*store;
+for i in range(0,4000):
+	sedvol[i]=np.mean(md.results.TransientSolution[i].SedimentHead)*sedstore
+	eplvol[i]=np.mean(md.results.TransientSolution[i].EplHead)*store*np.mean(md.results.TransientSolution[i].HydrologydcEplThickness)
+	totvol[i+1]=totvol[i]+md.basalforcings.groundedice_melting_rate[0,i]*0.002
+
+field_names     =['SedimentWaterHead5','EplWaterHead5','SedimentWaterHead40','EplWaterHead40']
+field_tolerances=[1e-13, 1e-13, 1e-13, 1e-13, 1e-13]
+field_values=[md.results.TransientSolution[5].SedimentHead,
+							md.results.TransientSolution[5].EplHead,
+							md.results.TransientSolution[40].SedimentHead,
+							md.results.TransientSolution[40].EplHead]
Index: /issm/trunk-jpl/test/NightlyRun/test333.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test333.m	(revision 21280)
+++ /issm/trunk-jpl/test/NightlyRun/test333.m	(revision 21281)
@@ -41,5 +41,4 @@
 %			mean(md.results.HydrologySolution(i).SedimentHead)*sedstore-0.4*i)
 %end
-
 %Fields and tolerances to track changes
 field_names     ={'SedimentWaterHead1','EplWaterHead1','SedimentHeadResidual1',...
Index: /issm/trunk-jpl/test/NightlyRun/test333.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test333.py	(revision 21280)
+++ /issm/trunk-jpl/test/NightlyRun/test333.py	(revision 21281)
@@ -1,4 +1,4 @@
 #Test Name: SquareSheetHydrologyDCTwoLayers
-import numpy
+import numpy as np
 from model import *
 from triangle import *
@@ -26,15 +26,15 @@
 md.hydrology.sedimentlimit_flag=1
 md.hydrology.sedimentlimit=800.0
-md.initialization.sediment_head=numpy.zeros((md.mesh.numberofvertices,1))
-md.hydrology.spcsediment_head=float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
+md.initialization.sediment_head=np.zeros((md.mesh.numberofvertices,1))
+md.hydrology.spcsediment_head=float('NaN')*np.ones((md.mesh.numberofvertices,1))
 
-md.basalforcings.groundedice_melting_rate = 2.0*numpy.ones((md.mesh.numberofvertices,1))
-md.basalforcings.floatingice_melting_rate = 0.0*numpy.ones((md.mesh.numberofvertices,1))
-md.hydrology.sediment_transmitivity= 3.0*numpy.ones((md.mesh.numberofvertices,1))
+md.basalforcings.groundedice_melting_rate = 2.0*np.ones((md.mesh.numberofvertices,1))
+md.basalforcings.floatingice_melting_rate = 0.0*np.ones((md.mesh.numberofvertices,1))
+md.hydrology.sediment_transmitivity= 3.0*np.ones((md.mesh.numberofvertices,1))
 
-md.initialization.epl_head=numpy.zeros((md.mesh.numberofvertices,1))
-md.initialization.epl_thickness=numpy.ones((md.mesh.numberofvertices,1))
-md.hydrology.spcepl_head=float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
-md.hydrology.mask_eplactive_node=numpy.zeros((md.mesh.numberofvertices,1))
+md.initialization.epl_head=np.zeros((md.mesh.numberofvertices,1))
+md.initialization.epl_thickness=np.ones((md.mesh.numberofvertices,1))
+md.hydrology.spcepl_head=float('NaN')*np.ones((md.mesh.numberofvertices,1))
+md.hydrology.mask_eplactive_node=np.zeros((md.mesh.numberofvertices,1))
 md.hydrology.epl_conductivity=30
 md.hydrology.epl_initial_thickness=1
@@ -47,23 +47,31 @@
 md=solve(md,'Transient')
 
-field_names     =['SedimentWaterHead1','EplWaterHead1','SedimentHeadResidual1', \
-						'SedimentWaterHead4','EplWaterHead4','SedimentHeadResidual4', \
-						'SedimentWaterHead5','EplWaterHead5','SedimentHeadResidual5', \
-						'SedimentWaterHead9','EplWaterHead9','SedimentHeadResidual9']
-field_tolerances=[ \
-	1e-13, 1e-13, 1e-13, \
-	1e-13, 1e-13, 1e-13, \
-	1e-13, 5e-12, 1e-11, \
-	1e-13, 5e-12, 1e-11]
-field_values=[md.results.TransientSolution[0].SedimentHead, \
-							md.results.TransientSolution[0].EplHead, \
-							md.results.TransientSolution[0].SedimentHeadResidual, \
-							md.results.TransientSolution[3].SedimentHead, \
-							md.results.TransientSolution[3].EplHead, \
-							md.results.TransientSolution[3].SedimentHeadResidual, \
-							md.results.TransientSolution[4].SedimentHead, \
-							md.results.TransientSolution[4].EplHead, \
-							md.results.TransientSolution[4].SedimentHeadResidual, \
-							md.results.TransientSolution[8].SedimentHead, \
-							md.results.TransientSolution[8].EplHead, \
+sedvol=np.zeros(10)
+eplvol=np.zeros(10)
+time=np.arange(0.2,2.1,0.2)
+store=md.constants.g*md.hydrology.sediment_porosity*md.materials.rho_freshwater*((md.hydrology.sediment_compressibility/md.hydrology.sediment_porosity)+md.hydrology.water_compressibility);
+sedstore=20.0*store;
+for i in range(0,10):
+	sedvol[i]=np.mean(md.results.TransientSolution[i].SedimentHead)*sedstore
+	eplvol[i]=np.mean(md.results.TransientSolution[i].EplHead)*store*np.mean(md.results.TransientSolution[i].HydrologydcEplThickness)
+
+field_names=['SedimentWaterHead1','EplWaterHead1','SedimentHeadResidual1',
+						 'SedimentWaterHead4','EplWaterHead4','SedimentHeadResidual4',
+						 'SedimentWaterHead5','EplWaterHead5','SedimentHeadResidual5',
+						 'SedimentWaterHead9','EplWaterHead9','SedimentHeadResidual9']
+field_tolerances=[1e-13, 1e-13, 1e-13,
+									1e-13, 1e-13, 1e-13,
+									1e-13, 5e-12, 1e-11,
+									1e-13, 5e-12, 1e-11]
+field_values=[md.results.TransientSolution[0].SedimentHead,
+							md.results.TransientSolution[0].EplHead,
+							md.results.TransientSolution[0].SedimentHeadResidual,
+							md.results.TransientSolution[3].SedimentHead,
+							md.results.TransientSolution[3].EplHead,
+							md.results.TransientSolution[3].SedimentHeadResidual,
+							md.results.TransientSolution[4].SedimentHead,
+							md.results.TransientSolution[4].EplHead,
+							md.results.TransientSolution[4].SedimentHeadResidual,
+							md.results.TransientSolution[8].SedimentHead,
+							md.results.TransientSolution[8].EplHead,
 							md.results.TransientSolution[8].SedimentHeadResidual]
Index: /issm/trunk-jpl/test/NightlyRun/test334.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test334.py	(revision 21281)
+++ /issm/trunk-jpl/test/NightlyRun/test334.py	(revision 21281)
@@ -0,0 +1,47 @@
+#Test Name: SquareSheetConstrainedExtrudedHydrologyDC
+import numpy as np
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from transient import *
+from setflowequation import *
+from solve import *
+from MatlabFuncs import *
+
+from generic import generic
+
+md=triangle(model(),'../Exp/Square.exp',100000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md.transient=transient.setallnullparameters(md.transient)
+md.transient.ishydrology=True
+md=setflowequation(md,'SSA','all')
+md.cluster=generic('name',oshostname(),'np',1)
+md.hydrology=hydrologydc()
+md.hydrology=md.hydrology.initialize(md)
+
+md.hydrology.isefficientlayer=0
+md.hydrology.sedimentlimit_flag=1
+md.hydrology.sedimentlimit=8000.0
+md.initialization.sediment_head=np.zeros((md.mesh.numberofvertices,1))
+md.hydrology.spcsediment_head=float('NaN')*np.ones((md.mesh.numberofvertices,1))
+md.hydrology.spcsediment_head[np.where(md.mesh.y==0)]=0.0
+
+md.basalforcings.groundedice_melting_rate = 2.0*np.ones((md.mesh.numberofvertices,1))
+md.basalforcings.floatingice_melting_rate = 0.0*np.ones((md.mesh.numberofvertices,1))
+md.hydrology.sediment_transmitivity= 3.0*np.ones((md.mesh.numberofvertices,1))
+
+md.timestepping.time_step=0
+md.timestepping.final_time=1.0
+md.extrude(3,1.)
+md=solve(md,'Hydrology')
+
+#Fields and tolerances to track changes
+#you can also compare with an analitic solution, but it is exact
+#only if no limits are applied
+#analitic=(md.mesh.y.^2-2*md.mesh.y*1.0e6)*(-2.0/(2*md.constants.yts*md.hydrology.sediment_transmitivity))
+field_names     =['SedimentWaterHead','SedimentHeadResidual']
+field_tolerances=[1e-13, 3e-10]
+field_values=[md.results.HydrologySolution.SedimentHead,
+							md.results.HydrologySolution.SedimentHeadResidual]
Index: /issm/trunk-jpl/test/NightlyRun/test335.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test335.py	(revision 21281)
+++ /issm/trunk-jpl/test/NightlyRun/test335.py	(revision 21281)
@@ -0,0 +1,69 @@
+#Test Name: SquareSheetExtrudedHydrologyDCTwoLayers
+import numpy as np 
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from transient import *
+from setflowequation import *
+from solve import *
+from MatlabFuncs import *
+
+from generic import generic
+
+md=triangle(model(),'../Exp/Square.exp',100000.)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/SquareSheetConstrained.py')
+md.transient=transient.setallnullparameters(md.transient)
+md.transient.ishydrology=True
+md.transient.issmb=True
+md=setflowequation(md,'SSA','all')
+md.cluster=generic('name',oshostname(),'np',1)
+md.hydrology=hydrologydc()
+md.hydrology=md.hydrology.initialize(md)
+
+md.hydrology.isefficientlayer=1
+md.hydrology.sedimentlimit_flag=1
+md.hydrology.sedimentlimit=800.0
+md.initialization.sediment_head=np.zeros((md.mesh.numberofvertices,1))
+md.hydrology.spcsediment_head=float('NaN')*np.ones((md.mesh.numberofvertices,1))
+md.basalforcings.groundedice_melting_rate = 2.0*np.ones((md.mesh.numberofvertices,1))
+md.basalforcings.floatingice_melting_rate = np.zeros((md.mesh.numberofvertices,1))
+md.hydrology.sediment_transmitivity=3*np.ones((md.mesh.numberofvertices,1))
+
+md.initialization.epl_head=np.zeros((md.mesh.numberofvertices,1))
+md.initialization.epl_thickness=np.ones((md.mesh.numberofvertices,1))
+md.hydrology.spcepl_head=float('NaN')*np.ones((md.mesh.numberofvertices,1))
+md.hydrology.mask_eplactive_node=np.zeros((md.mesh.numberofvertices,1))
+md.hydrology.epl_conductivity=30
+md.hydrology.epl_initial_thickness=1
+md.hydrology.epl_colapse_thickness=1.0e-3
+md.hydrology.epl_thick_comp=1
+md.hydrology.epl_max_thickness=1
+md.timestepping.time_step=0.2
+md.timestepping.final_time=2.0
+
+md.extrude(3,1.)
+md=solve(md,'Transient')
+
+#Fields and tolerances to track changes
+field_names=['SedimentWaterHead1','EplWaterHead1','SedimentHeadResidual1',
+						 'SedimentWaterHead4','EplWaterHead4','SedimentHeadResidual4',
+						 'SedimentWaterHead5','EplWaterHead5','SedimentHeadResidual5',
+						 'SedimentWaterHead9','EplWaterHead9','SedimentHeadResidual9']
+field_tolerances=[1e-13, 1e-13, 1e-13,
+									1e-13, 1e-13, 1e-13,
+									1e-13, 5e-12, 2e-11,
+									1e-13, 5e-12, 2e-11]
+field_values=[md.results.TransientSolution[0].SedimentHead,
+							md.results.TransientSolution[0].EplHead,
+							md.results.TransientSolution[0].SedimentHeadResidual,
+							md.results.TransientSolution[3].SedimentHead,
+							md.results.TransientSolution[3].EplHead,
+							md.results.TransientSolution[3].SedimentHeadResidual,
+							md.results.TransientSolution[4].SedimentHead,
+							md.results.TransientSolution[4].EplHead,
+							md.results.TransientSolution[4].SedimentHeadResidual,
+							md.results.TransientSolution[8].SedimentHead,
+							md.results.TransientSolution[8].EplHead,
+							md.results.TransientSolution[8].SedimentHeadResidual]
