Index: /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 14837)
+++ /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 14838)
@@ -79,5 +79,5 @@
 	FrictionQEnum,
 	GeometryHydrostaticRatioEnum,
-	HydrologyEnum,
+	HydrologyModelEnum,
 	HydrologyshreveEnum,
 	HydrologyshreveCREnum,
@@ -105,4 +105,5 @@
 	HydrologydcSedimentlimitFlagEnum,
 	HydrologydcSedimentlimitEnum,
+	HydrologydcPenaltyFactorEnum,
 	HydrologyLayerEnum,
 	HydrologySedimentEnum,
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Pengrid.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Pengrid.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Pengrid.cpp	(revision 14838)
@@ -500,13 +500,13 @@
 	//   The penalty is stable if it doesn't change during to successive iterations.   
 
-	int    found=0;
-	const int numnodes=1;
+	int        found=0;
+	const int  numnodes=1;
 	IssmDouble pressure;
 	IssmDouble temperature;
 	IssmDouble t_pmp;
-	int    new_active;
-	int    unstable=0;
-	int    reset_penalties=0;
-	int    penalty_lock;
+	int        new_active;
+	int        unstable=0;
+	int        reset_penalties=0;
+	int        penalty_lock;
 
 	/*recover pointers: */
@@ -688,13 +688,13 @@
 
 	//   The penalty is stable if it doesn't change during two consecutive iterations.   
-	int        found           = 0;
 	const int  numnodes        = 1;
+	int        unstable        = 0;
+	int        reset_penalties = 0;
+	int        found           = 0;	
+	int        penalty_lock;
+	int        new_active;
 	IssmDouble pressure;
 	IssmDouble h;
-	IssmDouble h_max;
-	int        new_active;
-	int        unstable        = 0;
-	int        reset_penalties = 0;
-	int        penalty_lock;
+	IssmDouble h_max;	
 
 	/*check that pengrid is not a clone (penalty to be added only once)*/
@@ -730,6 +730,9 @@
 
 	const int numdof=NUMVERTICES*NDOF1;
-	IssmDouble    penalty_factor = 3.;
-
+	IssmDouble    penalty_factor;
+
+	/*Retrieve parameters*/
+	parameters->FindParam(&penalty_factor,HydrologydcPenaltyFactorEnum);
+	
 	/*Initialize Element matrix and return if necessary*/
 	if(!this->active) return NULL;
@@ -747,9 +750,12 @@
 	const int  numdof=NUMVERTICES*NDOF1;
 	IssmDouble h_max;
-	IssmDouble penalty_factor=3.;
+	IssmDouble penalty_factor;
 
 	/*Initialize Element matrix and return if necessary*/
 	if(!this->active) return NULL;
 	ElementVector* pe=new ElementVector(&node,1,this->parameters);
+
+	/*Retrieve parameters*/
+	parameters->FindParam(&penalty_factor,HydrologydcPenaltyFactorEnum);
 
 	/*Get h_max and compute penalty*/
Index: /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp	(revision 14838)
@@ -28,5 +28,5 @@
 	bool isefficientlayer;
 	int  hydrology_model;
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 	iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum);
 
Index: /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 14838)
@@ -84,5 +84,5 @@
 		case FrictionQEnum : return "FrictionQ";
 		case GeometryHydrostaticRatioEnum : return "GeometryHydrostaticRatio";
-		case HydrologyEnum : return "Hydrology";
+		case HydrologyModelEnum : return "HydrologyModel";
 		case HydrologyshreveEnum : return "Hydrologyshreve";
 		case HydrologyshreveCREnum : return "HydrologyshreveCR";
@@ -110,4 +110,5 @@
 		case HydrologydcSedimentlimitFlagEnum : return "HydrologydcSedimentlimitFlag";
 		case HydrologydcSedimentlimitEnum : return "HydrologydcSedimentlimit";
+		case HydrologydcPenaltyFactorEnum : return "HydrologydcPenaltyFactor";
 		case HydrologyLayerEnum : return "HydrologyLayer";
 		case HydrologySedimentEnum : return "HydrologySediment";
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateConstraintsHydrologyDCEfficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateConstraintsHydrologyDCEfficient.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateConstraintsHydrologyDCEfficient.cpp	(revision 14838)
@@ -23,5 +23,5 @@
 
 	/*Do we really want DC?*/
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 	if(hydrology_model!=HydrologydcEnum){
 		*pconstraints=constraints;
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateLoadsHydrologyDCEfficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateLoadsHydrologyDCEfficient.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateLoadsHydrologyDCEfficient.cpp	(revision 14838)
@@ -29,5 +29,5 @@
 
 	/*Do we really want DC?*/
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 	if(hydrology_model!=HydrologydcEnum){
 		*ploads=loads;
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateNodesHydrologyDCEfficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateNodesHydrologyDCEfficient.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateNodesHydrologyDCEfficient.cpp	(revision 14838)
@@ -32,5 +32,5 @@
 
 	/*Now, do we really want DC?*/
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 	if(hydrology_model!=HydrologydcEnum){
 		*pnodes=nodes;
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateParametersHydrologyDCEfficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateParametersHydrologyDCEfficient.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateParametersHydrologyDCEfficient.cpp	(revision 14838)
@@ -22,5 +22,5 @@
 
 	/*retrieve some parameters: */
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 
 	/*Now, do we really want DC?*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/UpdateElementsHydrologyDCEfficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/UpdateElementsHydrologyDCEfficient.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/UpdateElementsHydrologyDCEfficient.cpp	(revision 14838)
@@ -24,5 +24,5 @@
 
 	/*Now, do we really want DC?*/
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 	if(hydrology_model!=HydrologydcEnum) return;
 
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateConstraintsHydrologyDCInefficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateConstraintsHydrologyDCInefficient.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateConstraintsHydrologyDCInefficient.cpp	(revision 14838)
@@ -19,5 +19,5 @@
 
 	/*retrieve some parameters: */
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 
 	/*Create constraints if they do not exist yet*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateLoadsHydrologyDCInefficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateLoadsHydrologyDCInefficient.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateLoadsHydrologyDCInefficient.cpp	(revision 14838)
@@ -22,5 +22,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateNodesHydrologyDCInefficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateNodesHydrologyDCInefficient.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateNodesHydrologyDCInefficient.cpp	(revision 14838)
@@ -23,5 +23,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 
 	/*Recover pointer: */
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateParametersHydrologyDCInefficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateParametersHydrologyDCInefficient.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateParametersHydrologyDCInefficient.cpp	(revision 14838)
@@ -19,4 +19,5 @@
 	bool        isefficientlayer;
 	IssmDouble  sedimentlimit;
+	IssmDouble  penalty_factor;
 
 	/*Get parameters: */
@@ -24,5 +25,5 @@
 
 	/*retrieve some parameters: */
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 
 	/*Now, do we really want DC?*/
@@ -34,4 +35,5 @@
 	iomodel->FetchData(&isefficientlayer,HydrologydcIsefficientlayerEnum);
 	iomodel->FetchData(&sedimentlimit_flag,HydrologydcSedimentlimitFlagEnum);
+	iomodel->FetchData(&penalty_factor,HydrologydcPenaltyFactorEnum);
 
 	if(sedimentlimit_flag==1){
@@ -40,5 +42,6 @@
 	}
 
-	parameters->AddObject(new IntParam(HydrologyEnum,hydrology_model));
+	parameters->AddObject(new DoubleParam(HydrologydcPenaltyFactorEnum,penalty_factor));
+	parameters->AddObject(new IntParam(HydrologyModelEnum,hydrology_model));
 	parameters->AddObject(new BoolParam(HydrologydcIsefficientlayerEnum,isefficientlayer));
 	parameters->AddObject(new IntParam(HydrologydcSedimentlimitFlagEnum,sedimentlimit_flag));
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/UpdateElementsHydrologyDCInefficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/UpdateElementsHydrologyDCInefficient.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/UpdateElementsHydrologyDCInefficient.cpp	(revision 14838)
@@ -20,5 +20,5 @@
 
 	/*Fetch data needed: */
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateConstraintsHydrologyShreve.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateConstraintsHydrologyShreve.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateConstraintsHydrologyShreve.cpp	(revision 14838)
@@ -20,5 +20,5 @@
 
 	/*retrieve some parameters: */
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 
 	/*Create constraints if they do not exist yet*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateNodesHydrologyShreve.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateNodesHydrologyShreve.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateNodesHydrologyShreve.cpp	(revision 14838)
@@ -23,5 +23,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 
 	/*Recover pointer: */
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateParametersHydrologyShreve.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateParametersHydrologyShreve.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateParametersHydrologyShreve.cpp	(revision 14838)
@@ -22,5 +22,5 @@
 
 	/*retrieve some parameters: */
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 
 	/*Now, do we really want Shreve?*/
@@ -30,5 +30,5 @@
 	}
 
-	parameters->AddObject(new IntParam(HydrologyEnum,hydrology_model));
+	parameters->AddObject(new IntParam(HydrologyModelEnum,hydrology_model));
 	parameters->AddObject(iomodel->CopyConstantObject(HydrologyshreveStabilizationEnum));
 
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/UpdateElementsHydrologyShreve.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/UpdateElementsHydrologyShreve.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/UpdateElementsHydrologyShreve.cpp	(revision 14838)
@@ -20,5 +20,5 @@
 
 	/*Fetch data needed: */
-	iomodel->Constant(&hydrology_model,HydrologyEnum);
+	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 
Index: /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 14838)
@@ -85,5 +85,5 @@
 	      else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
 	      else if (strcmp(name,"GeometryHydrostaticRatio")==0) return GeometryHydrostaticRatioEnum;
-	      else if (strcmp(name,"Hydrology")==0) return HydrologyEnum;
+	      else if (strcmp(name,"HydrologyModel")==0) return HydrologyModelEnum;
 	      else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum;
 	      else if (strcmp(name,"HydrologyshreveCR")==0) return HydrologyshreveCREnum;
@@ -111,4 +111,5 @@
 	      else if (strcmp(name,"HydrologydcSedimentlimitFlag")==0) return HydrologydcSedimentlimitFlagEnum;
 	      else if (strcmp(name,"HydrologydcSedimentlimit")==0) return HydrologydcSedimentlimitEnum;
+	      else if (strcmp(name,"HydrologydcPenaltyFactor")==0) return HydrologydcPenaltyFactorEnum;
 	      else if (strcmp(name,"HydrologyLayer")==0) return HydrologyLayerEnum;
 	      else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum;
@@ -137,9 +138,9 @@
 	      else if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum;
 	      else if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum;
-	      else if (strcmp(name,"MaskElementonfloatingice")==0) return MaskElementonfloatingiceEnum;
          else stage=2;
    }
    if(stage==2){
-	      if (strcmp(name,"MaskElementongroundedice")==0) return MaskElementongroundediceEnum;
+	      if (strcmp(name,"MaskElementonfloatingice")==0) return MaskElementonfloatingiceEnum;
+	      else if (strcmp(name,"MaskElementongroundedice")==0) return MaskElementongroundediceEnum;
 	      else if (strcmp(name,"MaskElementonwater")==0) return MaskElementonwaterEnum;
 	      else if (strcmp(name,"MaskVertexonfloatingice")==0) return MaskVertexonfloatingiceEnum;
@@ -260,9 +261,9 @@
 	      else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum;
 	      else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
-	      else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
+	      if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
+	      else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
 	      else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
 	      else if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
@@ -383,9 +384,9 @@
 	      else if (strcmp(name,"Air")==0) return AirEnum;
 	      else if (strcmp(name,"Ice")==0) return IceEnum;
-	      else if (strcmp(name,"Melange")==0) return MelangeEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"Water")==0) return WaterEnum;
+	      if (strcmp(name,"Melange")==0) return MelangeEnum;
+	      else if (strcmp(name,"Water")==0) return WaterEnum;
 	      else if (strcmp(name,"Closed")==0) return ClosedEnum;
 	      else if (strcmp(name,"Free")==0) return FreeEnum;
@@ -506,9 +507,9 @@
 	      else if (strcmp(name,"MinVx")==0) return MinVxEnum;
 	      else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
-	      else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"MinVy")==0) return MinVyEnum;
+	      if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
+	      else if (strcmp(name,"MinVy")==0) return MinVyEnum;
 	      else if (strcmp(name,"MaxVy")==0) return MaxVyEnum;
 	      else if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum;
Index: /issm/trunk-jpl/src/c/solutions/hydrology_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/hydrology_core.cpp	(revision 14837)
+++ /issm/trunk-jpl/src/c/solutions/hydrology_core.cpp	(revision 14838)
@@ -31,5 +31,5 @@
 	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
 	femmodel->parameters->FindParam(&output_frequency,SettingsOutputFrequencyEnum);
-	femmodel->parameters->FindParam(&hydrology_model,HydrologyEnum);
+	femmodel->parameters->FindParam(&hydrology_model,HydrologyModelEnum);
 
 	/*first compute slopes: */
Index: /issm/trunk-jpl/src/m/classes/hydrologydc.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologydc.m	(revision 14837)
+++ /issm/trunk-jpl/src/m/classes/hydrologydc.m	(revision 14838)
@@ -13,4 +13,5 @@
 		water_compressibility    = 0;
 		isefficientlayer         = 0;
+		penalty_factor           = 0;
 		sedimentlimit_flag       = 0;
 		sedimentlimit            = 0;
@@ -37,10 +38,11 @@
 			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.isefficientlayer       = 1;
-			obj.sedimentlimit_flag     = 0;
-			obj.sedimentlimit          = 0;
+			obj.sediment_thickness       = 20.0;
+			obj.sediment_transmitivity   = 8.0e-04;
+			obj.water_compressibility    = 5.04e-10;
+			obj.isefficientlayer         = 1;
+			obj.penalty_factor           = 3;
+			obj.sedimentlimit_flag       = 0;
+			obj.sedimentlimit            = 0;
 
 			obj.epl_compressibility = 1.0e-08;
@@ -64,4 +66,5 @@
 			md = checkfield(md,'hydrology.water_compressibility','>',0,'numel',1);
 			md = checkfield(md,'hydrology.isefficientlayer','numel',[1],'values',[0 1]);
+			md = checkfield(md,'hydrology.penalty_factor','>',0,'numel',1);
 			md = checkfield(md,'hydrology.sedimentlimit_flag','numel',[1],'values',[0 1 2 3]);
 
@@ -88,6 +91,8 @@
 			fielddisplay(obj,'sediment_thickness','sediment thickness [m]');
 			fielddisplay(obj,'sediment_transmitivity','sediment transmitivity [m^2/s]');
+			fielddisplay(obj,'water_compressibility','compressibility of water [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']);
+			fielddisplay(obj,'penalty_factor','exponent of the value used in the penalisation method');
+			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'));
@@ -110,5 +115,5 @@
 		end % }}}
 		function marshall(obj,fid) % {{{ 
-			WriteData(fid,'enum',HydrologyEnum(),'data',HydrologydcEnum(),'format','Integer');
+			WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologydcEnum(),'format','Integer');
 			WriteData(fid,'object',obj,'fieldname','spcsediment_head','format','DoubleMat','mattype',1);
 			WriteData(fid,'object',obj,'fieldname','sediment_compressibility','format','Double');			
@@ -118,4 +123,5 @@
 			WriteData(fid,'object',obj,'fieldname','water_compressibility','format','Double');
 			WriteData(fid,'object',obj,'fieldname','isefficientlayer','format','Boolean');
+			WriteData(fid,'object',obj,'fieldname','penalty_factor','format','Double');
 			WriteData(fid,'object',obj,'fieldname','sedimentlimit_flag','format','Integer');
 
Index: /issm/trunk-jpl/src/m/classes/hydrologyshreve.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 14837)
+++ /issm/trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 14838)
@@ -60,5 +60,5 @@
 		end % }}}
 		function marshall(obj,fid) % {{{
-			WriteData(fid,'enum',HydrologyEnum(),'data',HydrologyshreveEnum(),'format','Integer');
+			WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologyshreveEnum(),'format','Integer');
 			WriteData(fid,'object',obj,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1);
 			WriteData(fid,'object',obj,'fieldname','n','format','Double');
Index: /issm/trunk-jpl/src/m/classes/hydrologyshreve.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologyshreve.py	(revision 14837)
+++ /issm/trunk-jpl/src/m/classes/hydrologyshreve.py	(revision 14838)
@@ -63,5 +63,5 @@
 	# }}}
 	def marshall(self,fid):    # {{{
-		WriteData(fid,'enum',HydrologyEnum(),'data',HydrologyshreveEnum(),'format','Integer');
+		WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologyshreveEnum(),'format','Integer');
 		WriteData(fid,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1)
 		WriteData(fid,'object',self,'fieldname','n','format','Double')
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 14837)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 14838)
@@ -679,13 +679,13 @@
 	return StringToEnum('GeometryHydrostaticRatio')[0]
 
-def HydrologyEnum():
-	"""
-	HYDROLOGYENUM - Enum of Hydrology
-
-	   Usage:
-	      macro=HydrologyEnum()
-	"""
-
-	return StringToEnum('Hydrology')[0]
+def HydrologyModelEnum():
+	"""
+	HYDROLOGYMODELENUM - Enum of HydrologyModel
+
+	   Usage:
+	      macro=HydrologyModelEnum()
+	"""
+
+	return StringToEnum('HydrologyModel')[0]
 
 def HydrologyshreveEnum():
@@ -939,4 +939,14 @@
 	return StringToEnum('HydrologydcSedimentlimit')[0]
 
+def HydrologydcPenaltyFactorEnum():
+	"""
+	HYDROLOGYDCPENALTYFACTORENUM - Enum of HydrologydcPenaltyFactor
+
+	   Usage:
+	      macro=HydrologydcPenaltyFactorEnum()
+	"""
+
+	return StringToEnum('HydrologydcPenaltyFactor')[0]
+
 def HydrologyLayerEnum():
 	"""
@@ -5457,4 +5467,4 @@
 	"""
 
-	return 544
-
+	return 545
+
Index: /issm/trunk-jpl/src/m/enum/HydrologyModelEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologyModelEnum.m	(revision 14838)
+++ /issm/trunk-jpl/src/m/enum/HydrologyModelEnum.m	(revision 14838)
@@ -0,0 +1,11 @@
+function macro=HydrologyModelEnum()
+%HYDROLOGYMODELENUM - Enum of HydrologyModel
+%
+%   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=HydrologyModelEnum()
+
+macro=StringToEnum('HydrologyModel');
Index: /issm/trunk-jpl/src/m/enum/HydrologydcPenaltyFactorEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologydcPenaltyFactorEnum.m	(revision 14838)
+++ /issm/trunk-jpl/src/m/enum/HydrologydcPenaltyFactorEnum.m	(revision 14838)
@@ -0,0 +1,11 @@
+function macro=HydrologydcPenaltyFactorEnum()
+%HYDROLOGYDCPENALTYFACTORENUM - Enum of HydrologydcPenaltyFactor
+%
+%   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=HydrologydcPenaltyFactorEnum()
+
+macro=StringToEnum('HydrologydcPenaltyFactor');
Index: /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 14837)
+++ /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 14838)
@@ -9,3 +9,3 @@
 %      macro=MaximumNumberOfEnums()
 
-macro=544;
+macro=545;
