Index: ../trunk-jpl/src/m/classes/transient.py
===================================================================
--- ../trunk-jpl/src/m/classes/transient.py	(revision 18709)
+++ ../trunk-jpl/src/m/classes/transient.py	(revision 18710)
@@ -57,7 +57,7 @@
 		self.isgia           = False
 		self.isdamageevolution = False
 		self.islevelset      = False
-                self.ishydrology     = False
+		self.ishydrology     = False
 
 		#default output
 		self.requested_outputs=[]
@@ -73,7 +73,7 @@
 		self.isgia           = False
 		self.isdamageevolution = False
 		self.islevelset      = False
-                self.ishydrology     = False
+		self.ishydrology     = False
 
 		#default output
 		self.requested_outputs=['default']
Index: ../trunk-jpl/src/m/classes/hydrologydc.py
===================================================================
--- ../trunk-jpl/src/m/classes/hydrologydc.py	(revision 18709)
+++ ../trunk-jpl/src/m/classes/hydrologydc.py	(revision 18710)
@@ -37,6 +37,7 @@
 		self.epl_compressibility      = 0
 		self.epl_porosity             = 0
 		self.epl_initial_thickness    = 0
+		self.epl_colapse_thickness    = 0
 		self.epl_max_thickness        = 0
 		self.epl_conductivity         = 0
 				 
@@ -53,37 +54,43 @@
 		string="%s\n%s"%(string,fielddisplay(self,'penalty_lock','stabilize unstable constraints that keep zigzagging after n iteration (default is 0, no stabilization)'))
 		string="%s\n%s"%(string,fielddisplay(self,'rel_tol','tolerance of the nonlinear iteration for the transfer between layers [dimensionless]'))
 		string="%s\n%s"%(string,fielddisplay(self,'max_iter','maximum number of nonlinear iteration'))
+		string="%s\n%s"%(string,fielddisplay(self,'basal_moulin_input','water flux at a given point [m3 s-1]'))
 		string="%s\n%s"%(string,fielddisplay(self,'sedimentlimit_flag','what kind of upper limit is applied for the inefficient layer'))
-		string='%55s  0: no limit',' '
-		string='%55s  1: user defined: %s',' ','sedimentlimit'
-		string='%55s  2: hydrostatic pressure',' '
-		string='%55s  3: normal stress',' '
-
+		string="%s\n\t\t%s"%(string,'0: no limit')
+		string="%s\n\t\t%s"%(string,'1: user defined sedimentlimit')
+		string="%s\n\t\t%s"%(string,'2: hydrostatic pressure')
+		string="%s\n\t\t%s"%(string,'3: normal stress')
+	
 		if self.sedimentlimit_flag==1:
 			string="%s\n%s"%(string,fielddisplay(self,'sedimentlimit','user defined upper limit for the inefficient layer [m]'))
-			string="%s\n%s"%(string,fielddisplay(self,'basal_moulin_input','water flux at a given point [m3 s-1]'))
-			string="%s\n%s"%(string,fielddisplay(self,'transfer_flag','what kind of transfer method is applied between the layers'))
-			string='%55s  0: no transfer',' '
-			string='%55s  1: constant leakage factor: %s',' ','leakage_factor'
+
+
+		string="%s\n%s"%(string,fielddisplay(self,'transfer_flag','what kind of transfer method is applied between the layers'))
+		string="%s\n\t\t%s"%(string,'0: no transfer')
+		string="%s\n\t\t%s"%(string,'1: constant leakage factor: leakage_factor')
 			 
 		if self.transfer_flag is 1:
 			string="%s\n%s"%(string,fielddisplay(self,'leakage_factor','user defined leakage factor [m]'))
-			string='   - for the sediment layer'
-			string="%s\n%s"%(string,fielddisplay(self,'spcsediment_head','sediment water head constraints (NaN means no constraint) [m above MSL]'))
-			string="%s\n%s"%(string,fielddisplay(self,'sediment_compressibility','sediment compressibility [Pa^-1]'))
-			string="%s\n%s"%(string,fielddisplay(self,'sediment_porosity','sediment [dimensionless]'))
-			string="%s\n%s"%(string,fielddisplay(self,'sediment_thickness','sediment thickness [m]'))
-			string="%s\n%s"%(string,fielddisplay(self,'sediment_transmitivity','sediment transmitivity [m^2/s]'))
 
+		string="%s\n%s"%(string,'   - for the sediment layer')
+		string="%s\n%s"%(string,fielddisplay(self,'spcsediment_head','sediment water head constraints (NaN means no constraint) [m above MSL]'))
+		string="%s\n%s"%(string,fielddisplay(self,'sediment_compressibility','sediment compressibility [Pa^-1]'))
+		string="%s\n%s"%(string,fielddisplay(self,'sediment_porosity','sediment [dimensionless]'))
+		string="%s\n%s"%(string,fielddisplay(self,'sediment_thickness','sediment thickness [m]'))
+		string="%s\n%s"%(string,fielddisplay(self,'sediment_transmitivity','sediment transmitivity [m^2/s]'))
+
 		if self.isefficientlayer==1:
-			string='   - for the epl layer'
+			string="%s\n%s"%(string,'   - for the epl layer')
 			string="%s\n%s"%(string,fielddisplay(self,'spcepl_head','epl water head constraints (NaN means no constraint) [m above MSL]'))
 			string="%s\n%s"%(string,fielddisplay(self,'mask_eplactive_node','active (1) or not (0) EPL'))
 			string="%s\n%s"%(string,fielddisplay(self,'epl_compressibility','epl compressibility [Pa^-1]'))
 			string="%s\n%s"%(string,fielddisplay(self,'epl_porosity','epl [dimensionless]'))
-			string="%s\n%s"%(string,fielddisplay(self,'epl_initial_thickness','epl initial thickness [m]'))
+			string="%s\n%s"%(string,fielddisplay(self,'epl_max_thickness','epl initial thickness [m]'))
+			string="%s\n%s"%(string,fielddisplay(self,'epl_initial_thickness','epl initial thickness [m]'))			
+			string="%s\n%s"%(string,fielddisplay(self,'epl_colapse_thickness','epl colapsing thickness [m]'))
 			string="%s\n%s"%(string,fielddisplay(self,'epl_conductivity','epl conductivity [m^2/s]'))
-	#}}}
+		return string
+#}}}
 	def setdefaultparameters(self): #{{{ 
 
 		#Parameters from de Fleurian 2014
@@ -105,15 +112,16 @@
 		self.epl_compressibility      = 1.0e-08
 		self.epl_porosity             = 0.4
 		self.epl_initial_thickness    = 1.0
+		self.epl_colapse_thickness    = 1.0e-3
 		self.epl_max_thickness        = 5.0
 		self.epl_conductivity         = 8.0e-02
 
 		return self
 	# }}}
 
-	def initialize(self): # {{{
+	def initialize(self,md): # {{{
 		if numpy.all(numpy.isnan(self.basal_moulin_input)):
-			self.basal_moulin_input=numpy.zeros(md.mesh.numberofvertices,1)
+			self.basal_moulin_input=numpy.zeros((md.mesh.numberofvertices,1))
 			print"      no hydrology.basal_moulin_input specified: values set as zero"
 
 		return self
@@ -121,36 +129,40 @@
 	def checkconsistency(self,md,solution,analyses): #{{{ 
 
 		#Early return
-		if HydrologyDCInefficientAnalysisEnum() not in analyses:
+		if HydrologyDCInefficientAnalysisEnum() not in analyses and HydrologyDCEfficientAnalysisEnum() not in analyses:
 			return md
 
-                md = checkfield(md,'fieldname','hydrology.water_compressibility','>',0,'numel',1)
+		md = checkfield(md,'fieldname','hydrology.water_compressibility','numel',[1],'>',0.)
 		md = checkfield(md,'fieldname','hydrology.isefficientlayer','numel',[1],'values',[0,1])
-		md = checkfield(md,'fieldname','hydrology.penalty_factor','>',0,'numel',1)
-		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.penalty_factor','>',0.,'numel',[1])
+		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.sedimentlimit_flag','numel',[1],'values',[0,1,2,3])
 		md = checkfield(md,'fieldname','hydrology.transfer_flag','numel',[1],'values',[0,1])
 
 		if self.sedimentlimit_flag==1:
-			md = checkfield(md,'fieldname','hydrology.sedimentlimit','>',0,'numel',1)
+			md = checkfield(md,'fieldname','hydrology.sedimentlimit','>',0.,'numel',[1])
 
 		if self.transfer_flag==1:
-			md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0,'numel',1)
+			md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0.,'numel',[1])
 
 		md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'forcing',1)
 		md = checkfield(md,'fieldname','hydrology.spcsediment_head','forcing',1)
-		md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0,'numel',1)
-		md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0,'numel',1)
-		md = checkfield(md,'fieldname','hydrology.sediment_thickness','>',0,'numel',1)
+		md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0.,'numel',[1])
+		md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0.,'numel',[1])
+		md = checkfield(md,'fieldname','hydrology.sediment_thickness','>',0.,'numel',[1])
 		md = checkfield(md,'fieldname','hydrology.sediment_transmitivity','>=',0,'size',[md.mesh.numberofvertices,1])
 		if self.isefficientlayer==1:
 			md = checkfield(md,'fieldname','hydrology.spcepl_head','forcing',1)
 			md = checkfield(md,'fieldname','hydrology.mask_eplactive_node','size',[md.mesh.numberofvertices,1],'values',[0,1])
-			md = checkfield(md,'fieldname','hydrology.epl_compressibility','>',0,'numel',1)
-			md = checkfield(md,'fieldname','hydrology.epl_porosity','>',0,'numel',1)
-			md = checkfield(md,'fieldname','hydrology.epl_initial_thickness','>',0,'numel',1)
-			md = checkfield(md,'fieldname','hydrology.epl_conductivity','>',0,'numel',1)
+			md = checkfield(md,'fieldname','hydrology.epl_compressibility','>',0.,'numel',[1])
+			md = checkfield(md,'fieldname','hydrology.epl_porosity','>',0.,'numel',[1])
+			md = checkfield(md,'fieldname','hydrology.epl_max_thickness','numel',[1],'>',0.)
+			md = checkfield(md,'fieldname','hydrology.epl_initial_thickness','numel',[1],'>',0.)
+			md = checkfield(md,'fieldname','hydrology.epl_colapse_thickness','numel',[1],'>',0.)
+			if self.epl_colapse_thickness > self.epl_initial_thickness:
+				md.checkmessage('Colapsing thickness for EPL larger than initial thickness')
+			md = checkfield(md,'fieldname','hydrology.epl_conductivity','numel',[1],'>',0.)
 	# }}}
 	def marshall(self,md,fid): #{{{ 
 		WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologydcEnum(),'format','Integer')
@@ -180,6 +192,8 @@
 			WriteData(fid,'object',self,'fieldname','mask_eplactive_node','format','DoubleMat','mattype',1)
 			WriteData(fid,'object',self,'fieldname','epl_compressibility','format','Double')			
 			WriteData(fid,'object',self,'fieldname','epl_porosity','format','Double')			
-			WriteData(fid,'object',self,'fieldname','epl_initial_thickness','format','Double')
+			WriteData(fid,'object',self,'fieldname','epl_max_thickness','format','Double')
+			WriteData(fid,'object',self,'fieldname','epl_initial_thickness','format','Double')			
+			WriteData(fid,'object',self,'fieldname','epl_colapse_thickness','format','Double')			
 			WriteData(fid,'object',self,'fieldname','epl_conductivity','format','Double')
 	# }}}
Index: ../trunk-jpl/src/m/classes/initialization.py
===================================================================
--- ../trunk-jpl/src/m/classes/initialization.py	(revision 18709)
+++ ../trunk-jpl/src/m/classes/initialization.py	(revision 18710)
@@ -75,7 +75,8 @@
 				md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])
 				md = checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices])
 		if HydrologyShreveAnalysisEnum() in analyses:
-			md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
+			if hasattr(md.hydrology,'hydrologyshreve'):
+				md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
 		if HydrologyDCInefficientAnalysisEnum() in analyses:
 			if hasattr(md.hydrology,'hydrologydc'):
 				md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices,1])
