Index: /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 14783)
+++ /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 14784)
@@ -103,4 +103,6 @@
 	HydrologydcEplTransmitivityEnum,
 	HydrologydcIsefficientlayerEnum,
+	HydrologydcSedimentlimitFlagEnum,
+	HydrologydcSedimentlimitEnum,
 	HydrologyLayerEnum,
 	HydrologySedimentEnum,
Index: /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp	(revision 14783)
+++ /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp	(revision 14784)
@@ -26,4 +26,5 @@
 
 	bool ispdd;
+	bool isefficientlayer;
 	int  hydrology_model;
 	iomodel->Constant(&hydrology_model,HydrologyEnum);
@@ -63,9 +64,12 @@
 		iomodel->Constant(&this->sediment_transmitivity,HydrologydcSedimentTransmitivityEnum);
 		iomodel->Constant(&this->water_compressibility,HydrologydcWaterCompressibilityEnum);
-
-		iomodel->Constant(&this->epl_compressibility,HydrologydcEplCompressibilityEnum);
-		iomodel->Constant(&this->epl_porosity,HydrologydcEplPorosityEnum);
-		iomodel->Constant(&this->epl_thickness,HydrologydcEplThicknessEnum);
-		iomodel->Constant(&this->epl_transmitivity,HydrologydcEplTransmitivityEnum);
+		iomodel->Constant(&isefficientlayer,HydrologydcIsefficientlayerEnum);
+
+		if(isefficientlayer){
+				iomodel->Constant(&this->epl_compressibility,HydrologydcEplCompressibilityEnum);
+				iomodel->Constant(&this->epl_porosity,HydrologydcEplPorosityEnum);
+				iomodel->Constant(&this->epl_thickness,HydrologydcEplThicknessEnum);
+				iomodel->Constant(&this->epl_transmitivity,HydrologydcEplTransmitivityEnum);
+		}
 	}
 	else{
Index: /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 14783)
+++ /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 14784)
@@ -108,4 +108,6 @@
 		case HydrologydcEplTransmitivityEnum : return "HydrologydcEplTransmitivity";
 		case HydrologydcIsefficientlayerEnum : return "HydrologydcIsefficientlayer";
+		case HydrologydcSedimentlimitFlagEnum : return "HydrologydcSedimentlimitFlag";
+		case HydrologydcSedimentlimitEnum : return "HydrologydcSedimentlimit";
 		case HydrologyLayerEnum : return "HydrologyLayer";
 		case HydrologySedimentEnum : return "HydrologySediment";
Index: /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 14783)
+++ /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 14784)
@@ -109,4 +109,6 @@
 	      else if (strcmp(name,"HydrologydcEplTransmitivity")==0) return HydrologydcEplTransmitivityEnum;
 	      else if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum;
+	      else if (strcmp(name,"HydrologydcSedimentlimitFlag")==0) return HydrologydcSedimentlimitFlagEnum;
+	      else if (strcmp(name,"HydrologydcSedimentlimit")==0) return HydrologydcSedimentlimitEnum;
 	      else if (strcmp(name,"HydrologyLayer")==0) return HydrologyLayerEnum;
 	      else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum;
@@ -136,10 +138,10 @@
 	      else if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum;
 	      else if (strcmp(name,"MaskElementonfloatingice")==0) return MaskElementonfloatingiceEnum;
-	      else if (strcmp(name,"MaskElementongroundedice")==0) return MaskElementongroundediceEnum;
-	      else if (strcmp(name,"MaskElementonwater")==0) return MaskElementonwaterEnum;
          else stage=2;
    }
    if(stage==2){
-	      if (strcmp(name,"MaskVertexonfloatingice")==0) return MaskVertexonfloatingiceEnum;
+	      if (strcmp(name,"MaskElementongroundedice")==0) return MaskElementongroundediceEnum;
+	      else if (strcmp(name,"MaskElementonwater")==0) return MaskElementonwaterEnum;
+	      else if (strcmp(name,"MaskVertexonfloatingice")==0) return MaskVertexonfloatingiceEnum;
 	      else if (strcmp(name,"MaskVertexongroundedice")==0) return MaskVertexongroundediceEnum;
 	      else if (strcmp(name,"MaskVertexonwater")==0) return MaskVertexonwaterEnum;
@@ -259,10 +261,10 @@
 	      else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
 	      else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
-	      else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
-	      else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
+	      if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
+	      else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
+	      else if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
 	      else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum;
 	      else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum;
@@ -382,10 +384,10 @@
 	      else if (strcmp(name,"Ice")==0) return IceEnum;
 	      else if (strcmp(name,"Melange")==0) return MelangeEnum;
-	      else if (strcmp(name,"Water")==0) return WaterEnum;
-	      else if (strcmp(name,"Closed")==0) return ClosedEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"Free")==0) return FreeEnum;
+	      if (strcmp(name,"Water")==0) return WaterEnum;
+	      else if (strcmp(name,"Closed")==0) return ClosedEnum;
+	      else if (strcmp(name,"Free")==0) return FreeEnum;
 	      else if (strcmp(name,"Open")==0) return OpenEnum;
 	      else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
@@ -505,10 +507,10 @@
 	      else if (strcmp(name,"MaxVy")==0) return MaxVyEnum;
 	      else if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum;
-	      else if (strcmp(name,"MinVz")==0) return MinVzEnum;
-	      else if (strcmp(name,"MaxVz")==0) return MaxVzEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
+	      if (strcmp(name,"MinVz")==0) return MinVzEnum;
+	      else if (strcmp(name,"MaxVz")==0) return MaxVzEnum;
+	      else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
 	      else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
 	      else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum;
Index: /issm/trunk-jpl/src/m/classes/hydrologydc.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologydc.m	(revision 14783)
+++ /issm/trunk-jpl/src/m/classes/hydrologydc.m	(revision 14784)
@@ -1,3 +1,3 @@
-%HYDROLOGYDC class definition
+%Hydrologydc class definition
 %
 %   Usage:
@@ -12,4 +12,7 @@
 		sediment_transmitivity   = 0;
 		water_compressibility    = 0;
+		isefficientlayer         = 0;
+		sedimentlimit_flag       = 0;
+		sedimentlimit            = 0;
 		
 		spcepl_head         = NaN;
@@ -18,5 +21,4 @@
 		epl_thickness       = 0;
 		epl_transmitivity   = 0;
-		isefficientlayer    = 0;
 		
   end
@@ -35,13 +37,15 @@
 			obj.sediment_compressibility = 1.0e-08;
 			obj.sediment_porosity        = .4;
-			obj.sediment_thickness       = 20.0;
-			obj.sediment_transmitivity   = 8.0e-04;
-			obj.water_compressibility    = 5.04e-10;
-			
+			obj.sediment_thickness     = 20.0;
+			obj.sediment_transmitivity = 8.0e-04;
+			obj.water_compressibility  = 5.04e-10;
+			obj.isefficientlayer       = 1;
+			obj.sedimentlimit_flag     = 0;
+			obj.sedimentlimit          = 0;
+
 			obj.epl_compressibility = 1.0e-08;
 			obj.epl_porosity        = 0.4;
 			obj.epl_thickness       = 1.0;
 			obj.epl_transmitivity   = 8.0e-02;
-			obj.isefficientlayer    = 1;
 			
 		end % }}}
@@ -59,4 +63,10 @@
 			md = checkfield(md,'hydrology.sediment_transmitivity','>',0,'numel',1);
 			md = checkfield(md,'hydrology.water_compressibility','>',0,'numel',1);
+			md = checkfield(md,'hydrology.isefficientlayer','numel',[1],'values',[0 1]);
+			md = checkfield(md,'hydrology.sedimentlimit_flag','numel',[1],'values',[0 1 2 3]);
+
+			if obj.sedimentlimit_flag==1,
+				md = checkfield(md,'hydrology.sedimentlimit','>',0,'numel',1);
+	    end
 
 			if obj.isefficientlayer==1,
@@ -67,5 +77,4 @@
 				md = checkfield(md,'hydrology.epl_thickness','>',0,'numel',1);
 				md = checkfield(md,'hydrology.epl_transmitivity','>',0,'numel',1);
-				md = checkfield(md,'hydrology.isefficientlayer','numel',[1],'values',[0 1]);
 	    end
 		end % }}}
@@ -79,5 +88,13 @@
 			fielddisplay(obj,'sediment_thickness','sediment thickness [m]');
 			fielddisplay(obj,'sediment_transmitivity','sediment transmitivity [m^2/s]');
-			fielddisplay(obj,'water_compressibility','water compressibility [Pa^-1]');
+			fielddisplay(obj,'isefficientlayer','do we use an efficient drainage system [1: true; 0: false]');
+			fielddisplay(obj,'sedimentlimit_flag',['what kind of upper limit is applied for the inefficient layer']);
+			disp(sprintf('%55s  0: no limit',' '));
+			disp(sprintf('%55s  1: user defined: %s',' ','sedimentlimit'));
+			disp(sprintf('%55s  2: hydrostatic pressure',' '));
+			disp(sprintf('%55s  3: normal stress',' '));
+			if obj.sedimentlimit_flag==1,
+				fielddisplay(obj,'sedimentlimit','user defined upper limit for the inefficient layer [m]');
+	    end
 
 			if obj.isefficientlayer==1,
@@ -100,12 +117,19 @@
 			WriteData(fid,'object',obj,'fieldname','sediment_transmitivity','format','Double');			
 			WriteData(fid,'object',obj,'fieldname','water_compressibility','format','Double');
-			
-			WriteData(fid,'object',obj,'fieldname','spcepl_head','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',obj,'fieldname','epl_compressibility','format','Double');			
-			WriteData(fid,'object',obj,'fieldname','epl_porosity','format','Double');			
-			WriteData(fid,'object',obj,'fieldname','epl_thickness','format','Double');
-			WriteData(fid,'object',obj,'fieldname','epl_transmitivity','format','Double');
 			WriteData(fid,'object',obj,'fieldname','isefficientlayer','format','Boolean');
-			
+			WriteData(fid,'object',obj,'fieldname','sedimentlimit_flag','format','Integer');
+
+			if obj.sedimentlimit_flag==1,
+				WriteData(fid,'object',obj,'fieldname','sedimentlimit','format','Double');
+	    end
+
+			if obj.isefficientlayer==1,
+				
+				WriteData(fid,'object',obj,'fieldname','spcepl_head','format','DoubleMat','mattype',1);
+				WriteData(fid,'object',obj,'fieldname','epl_compressibility','format','Double');			
+				WriteData(fid,'object',obj,'fieldname','epl_porosity','format','Double');			
+				WriteData(fid,'object',obj,'fieldname','epl_thickness','format','Double');
+				WriteData(fid,'object',obj,'fieldname','epl_transmitivity','format','Double');
+			end
 		end % }}}
   end
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 14783)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 14784)
@@ -919,4 +919,24 @@
 	return StringToEnum('HydrologydcIsefficientlayer')[0]
 
+def HydrologydcSedimentlimitFlagEnum():
+	"""
+	HYDROLOGYDCSEDIMENTLIMITFLAGENUM - Enum of HydrologydcSedimentlimitFlag
+
+	   Usage:
+	      macro=HydrologydcSedimentlimitFlagEnum()
+	"""
+
+	return StringToEnum('HydrologydcSedimentlimitFlag')[0]
+
+def HydrologydcSedimentlimitEnum():
+	"""
+	HYDROLOGYDCSEDIMENTLIMITENUM - Enum of HydrologydcSedimentlimit
+
+	   Usage:
+	      macro=HydrologydcSedimentlimitEnum()
+	"""
+
+	return StringToEnum('HydrologydcSedimentlimit')[0]
+
 def HydrologyLayerEnum():
 	"""
@@ -5407,4 +5427,4 @@
 	"""
 
-	return 539
-
+	return 541
+
Index: /issm/trunk-jpl/src/m/enum/HydrologydcSedimentlimitEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologydcSedimentlimitEnum.m	(revision 14784)
+++ /issm/trunk-jpl/src/m/enum/HydrologydcSedimentlimitEnum.m	(revision 14784)
@@ -0,0 +1,11 @@
+function macro=HydrologydcSedimentlimitEnum()
+%HYDROLOGYDCSEDIMENTLIMITENUM - Enum of HydrologydcSedimentlimit
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=HydrologydcSedimentlimitEnum()
+
+macro=StringToEnum('HydrologydcSedimentlimit');
Index: /issm/trunk-jpl/src/m/enum/HydrologydcSedimentlimitFlagEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologydcSedimentlimitFlagEnum.m	(revision 14784)
+++ /issm/trunk-jpl/src/m/enum/HydrologydcSedimentlimitFlagEnum.m	(revision 14784)
@@ -0,0 +1,11 @@
+function macro=HydrologydcSedimentlimitFlagEnum()
+%HYDROLOGYDCSEDIMENTLIMITFLAGENUM - Enum of HydrologydcSedimentlimitFlag
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=HydrologydcSedimentlimitFlagEnum()
+
+macro=StringToEnum('HydrologydcSedimentlimitFlag');
Index: /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 14783)
+++ /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 14784)
@@ -9,3 +9,3 @@
 %      macro=MaximumNumberOfEnums()
 
-macro=539;
+macro=541;
