Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 18980)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 18981)
@@ -13,6 +13,6 @@
 	int         hydrology_model;
 	int         eplflip_lock;
+	int         eplthickcomp;
 	bool        isefficientlayer;
-
 	/*retrieve some parameters: */
 	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
@@ -30,4 +30,8 @@
 	iomodel->FetchData(&eplflip_lock,HydrologydcEplflipLockEnum);
 	parameters->AddObject(new IntParam(HydrologydcEplflipLockEnum,eplflip_lock));
+
+	iomodel->FetchData(&eplthickcomp,HydrologydcEplThickCompEnum);
+	parameters->AddObject(new IntParam(HydrologydcEplThickCompEnum,eplthickcomp));
+
 	
 }/*}}}*/
@@ -517,4 +521,5 @@
 
 	bool        active_element;
+	int         iseplthickcomp;
 	int         domaintype;
 	IssmDouble  dt,A,B;
@@ -522,4 +527,5 @@
 	IssmDouble  EPL_N;
 
+	
 	femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
 
@@ -527,4 +533,6 @@
 		
 		Element* element=(Element*)femmodel->elements->GetObjectByOffset(j);
+		element->parameters->FindParam(&iseplthickcomp,HydrologydcEplThickCompEnum);
+		if(iseplthickcomp==0) return;
 		
 		switch(domaintype){
@@ -695,4 +703,5 @@
 		/*If mask was already one, keep one*/
 		else if(old_active[i]>0.){
+			
 			vec_mask->SetValue(basalelement->nodes[i]->Sid(),1.,INS_VAL);
 			/*If epl thickness gets under colapse thickness, close the layer*/
@@ -703,4 +712,5 @@
 					vec_mask->SetValue(basalelement->nodes[i]->Sid(),0.,INS_VAL);
 					epl_thickness[i]=init_thick;
+					//If no more active nodes in the element probably colapse it two
 				}
 				else{
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 18980)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 18981)
@@ -131,4 +131,5 @@
 	HydrologydcEplThicknessEnum,
 	HydrologydcEplThicknessOldEnum,
+	HydrologydcEplThickCompEnum,
 	HydrologydcEplConductivityEnum,
 	HydrologydcIsefficientlayerEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 18980)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 18981)
@@ -139,4 +139,5 @@
 		case HydrologydcEplThicknessEnum : return "HydrologydcEplThickness";
 		case HydrologydcEplThicknessOldEnum : return "HydrologydcEplThicknessOld";
+		case HydrologydcEplThickCompEnum : return "HydrologydcEplThickComp";
 		case HydrologydcEplConductivityEnum : return "HydrologydcEplConductivity";
 		case HydrologydcIsefficientlayerEnum : return "HydrologydcIsefficientlayer";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 18980)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 18981)
@@ -142,4 +142,5 @@
 	      if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
 	      else if (strcmp(name,"HydrologydcEplThicknessOld")==0) return HydrologydcEplThicknessOldEnum;
+	      else if (strcmp(name,"HydrologydcEplThickComp")==0) return HydrologydcEplThickCompEnum;
 	      else if (strcmp(name,"HydrologydcEplConductivity")==0) return HydrologydcEplConductivityEnum;
 	      else if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum;
@@ -259,9 +260,9 @@
 	      else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
 	      else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
-	      else if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"MeshVertexonbase")==0) return MeshVertexonbaseEnum;
+	      if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
+	      else if (strcmp(name,"MeshVertexonbase")==0) return MeshVertexonbaseEnum;
 	      else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
 	      else if (strcmp(name,"MeshVertexonboundary")==0) return MeshVertexonboundaryEnum;
@@ -382,9 +383,9 @@
 	      else if (strcmp(name,"SurfaceforcingsRunoff")==0) return SurfaceforcingsRunoffEnum;
 	      else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum;
-	      else if (strcmp(name,"SurfaceforcingsMelt")==0) return SurfaceforcingsMeltEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"SurfaceforcingsRefreeze")==0) return SurfaceforcingsRefreezeEnum;
+	      if (strcmp(name,"SurfaceforcingsMelt")==0) return SurfaceforcingsMeltEnum;
+	      else if (strcmp(name,"SurfaceforcingsRefreeze")==0) return SurfaceforcingsRefreezeEnum;
 	      else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
 	      else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
@@ -505,9 +506,9 @@
 	      else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
 	      else if (strcmp(name,"Masscon")==0) return MassconEnum;
-	      else if (strcmp(name,"MassconName")==0) return MassconNameEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"MassconDefinitionenum")==0) return MassconDefinitionenumEnum;
+	      if (strcmp(name,"MassconName")==0) return MassconNameEnum;
+	      else if (strcmp(name,"MassconDefinitionenum")==0) return MassconDefinitionenumEnum;
 	      else if (strcmp(name,"MassconLevelset")==0) return MassconLevelsetEnum;
 	      else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
@@ -628,9 +629,9 @@
 	      else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
 	      else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
-	      else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
+	      if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
+	      else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
 	      else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
 	      else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
@@ -751,9 +752,9 @@
 	      else if (strcmp(name,"GroundinglineMigration")==0) return GroundinglineMigrationEnum;
 	      else if (strcmp(name,"Gset")==0) return GsetEnum;
-	      else if (strcmp(name,"Index")==0) return IndexEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"Indexed")==0) return IndexedEnum;
+	      if (strcmp(name,"Index")==0) return IndexEnum;
+	      else if (strcmp(name,"Indexed")==0) return IndexedEnum;
 	      else if (strcmp(name,"Intersect")==0) return IntersectEnum;
 	      else if (strcmp(name,"Nodal")==0) return NodalEnum;
