Index: /issm/trunk-jpl/configure.ac
===================================================================
--- /issm/trunk-jpl/configure.ac	(revision 14572)
+++ /issm/trunk-jpl/configure.ac	(revision 14573)
@@ -21,5 +21,5 @@
 #Initialize automake and declare foreign so that we don't need a ChangeLog, INSTALL, etc
 AM_INIT_AUTOMAKE([foreign])
-AM_CONFIG_HEADER([./config.h])   #Config file must be config.h
+AC_CONFIG_HEADERS([./config.h])   #Config file must be config.h
 AM_SILENT_RULES([yes])           #Do not show compilation command by default
 AM_PROG_CC_C_O
Index: /issm/trunk-jpl/externalpackages/matlab/install.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/matlab/install.sh	(revision 14572)
+++ /issm/trunk-jpl/externalpackages/matlab/install.sh	(revision 14573)
@@ -10,5 +10,5 @@
 #ln -s /usr/local/matlab704/ install
 #ln -s /usr/local/matlab711/ install
-ln -s /usr/local/matlab712/ install
+#ln -s /usr/local/matlab712/ install
 
 # Macintosh (OSX) simlink 
@@ -16,5 +16,5 @@
 #ln -s /Applications/MATLAB_R2009a.app/ install
 #ln -s /Applications/MATLAB_R2010a.app/ install
-#ln -s /Applications/MATLAB_R2012a.app/ install
+ln -s /Applications/MATLAB_R2012a.app/ install
 #ln -s /Applications/MATLAB_R2011a.app/ install
 #ln -s /Applications/MATLAB*.app/ install
Index: /issm/trunk-jpl/externalpackages/vim/addons/vimrc
===================================================================
--- /issm/trunk-jpl/externalpackages/vim/addons/vimrc	(revision 14572)
+++ /issm/trunk-jpl/externalpackages/vim/addons/vimrc	(revision 14573)
@@ -194,34 +194,34 @@
 " Abbreviations {{{
 " ----------------------------------------------------------------------
-"func Eatchar(pat)
-"	let c = nr2char(getchar())
-"	return (c =~ a:pat) ? '' : c
-"endfunc
-"au BufRead,BufNewFile *.html     iabbr <silent> H1 <h1></h1><Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.html     iabbr <silent> H2 <h2></h2><Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.html     iabbr <silent> H3 <h3></h3><Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.html     iabbr <silent> CO <code></code><Left><Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.html     iabbr <silent> PP <p></p><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.m        iabbr <silent> p1  disp('');<Left><Left><Left><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.m        iab <expr> p0  "disp('-------------- file: ".expand('%')." line: ".line(".")."');"
-"au BufRead,BufNewFile *.c*       iabbr <silent> p1  printf("\n");<Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.c*,*.h   iabbr <silent> ER  _error_("");<Left><Left><Left><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.c*       ab VV VecView(ug,PETSC_VIEWER_STDOUT_WORLD);
-"au BufRead,BufNewFile *.c*       ab AS _assert_();
-"au BufRead,BufNewFile *.c*       iab <expr> p0  "printf(\"-------------- file: ".expand('%')." line: %i\\n\",__LINE__);"
-"au BufRead,BufNewFile *.c*       iab <expr> pp0 "PetscSynchronizedPrintf(MPI_COMM_WORLD,\"-------------- file: ".expand('%')." line: %i\\n\",__LINE__);\nPetscSynchronizedFlush(MPI_COMM_WORLD);"
-""tex
-"au BufRead,BufNewFile *.tex iab EQ 
-"			\\begin{equation}
-"			\<CR>\end{equation}<up><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.tex iab IT 
-"			\\begin{itemize}
-"			\<CR>\item 
-"			\<CR>\end{itemize}<up><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.tex iab EN 
-"			\\begin{enumerate}
-"			\<CR>\item 
-"			\<CR>\end{enumerate}<up><C-R>=Eatchar('\s')<CR>
-"au BufRead,BufNewFile *.tex ab (()) \left( \right)
+func Eatchar(pat)
+	let c = nr2char(getchar())
+	return (c =~ a:pat) ? '' : c
+endfunc
+au BufRead,BufNewFile *.html     iabbr <silent> H1 <h1></h1><Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.html     iabbr <silent> H2 <h2></h2><Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.html     iabbr <silent> H3 <h3></h3><Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.html     iabbr <silent> CO <code></code><Left><Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.html     iabbr <silent> PP <p></p><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.m        iabbr <silent> p1  disp('');<Left><Left><Left><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.m        iab <expr> p0  "disp('-------------- file: ".expand('%')." line: ".line(".")."');"
+au BufRead,BufNewFile *.c*       iabbr <silent> p1  printf("\n");<Left><Left><Left><Left><Left><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.c*,*.h   iabbr <silent> ER  _error_("");<Left><Left><Left><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.c*       ab VV VecView(ug,PETSC_VIEWER_STDOUT_WORLD);
+au BufRead,BufNewFile *.c*       ab AS _assert_();
+au BufRead,BufNewFile *.c*       iab <expr> p0  "printf(\"-------------- file: ".expand('%')." line: %i\\n\",__LINE__);"
+au BufRead,BufNewFile *.c*       iab <expr> pp0 "PetscSynchronizedPrintf(MPI_COMM_WORLD,\"-------------- file: ".expand('%')." line: %i\\n\",__LINE__);\nPetscSynchronizedFlush(MPI_COMM_WORLD);"
+"tex
+au BufRead,BufNewFile *.tex iab EQ 
+			\\begin{equation}
+			\<CR>\end{equation}<up><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.tex iab IT 
+			\\begin{itemize}
+			\<CR>\item 
+			\<CR>\end{itemize}<up><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.tex iab EN 
+			\\begin{enumerate}
+			\<CR>\item 
+			\<CR>\end{enumerate}<up><C-R>=Eatchar('\s')<CR>
+au BufRead,BufNewFile *.tex ab (()) \left( \right)
 "}}}
 " Skeletons {{{
Index: /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 14572)
+++ /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 14573)
@@ -90,6 +90,12 @@
 	HydrologydcEnum,
 	SedimentheadEnum,
-	HydrologydcSedimentporosityEnum,
-	HydrologydcSpcsedimentheadEnum,
+	WaterpressureEnum,
+       	HydrologydcSpcsedimentHeadEnum,
+	HydrologydcSedimentCompressibilityEnum,
+	HydrologydcSedimentPorosityEnum,
+	HydrologydcSedimentThicknessEnum,
+	HydrologydcSedimentTransmitivityEnum,
+	HydrologydcWaterDensityEnum,
+	HydrologydcWaterCompressibilityEnum,
 	IndependentObjectEnum,
 	InversionControlParametersEnum,
Index: /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp	(revision 14572)
+++ /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp	(revision 14573)
@@ -51,5 +51,10 @@
 	}
 	else if(hydrology_model==HydrologydcEnum){
-		iomodel->Constant(&this->sediment_porosity,HydrologydcSedimentporosityEnum);
+		iomodel->Constant(&this->sediment_compressibility,HydrologydcSedimentCompressibilityEnum);
+		iomodel->Constant(&this->sediment_porosity,HydrologydcSedimentPorosityEnum);
+		iomodel->Constant(&this->sediment_thickness,HydrologydcSedimentThicknessEnum);
+		iomodel->Constant(&this->sediment_transmitivity,HydrologydcSedimentTransmitivityEnum);
+		iomodel->Constant(&this->water_compressibility,HydrologydcWaterCompressibilityEnum);
+		iomodel->Constant(&this->water_density,HydrologydcWaterDensityEnum);
 	}
 	else{
@@ -311,7 +316,32 @@
 }		 
 /*}}}*/ 
+/*FUNCTION Matpar::GetSedimentCompressibility {{{*/
+IssmDouble Matpar::GetSedimentCompressibility(){
+	return sediment_compressibility;		 
+}		 
+/*}}}*/ 
 /*FUNCTION Matpar::GetSedimentPorosity {{{*/
 IssmDouble Matpar::GetSedimentPorosity(){
 	return sediment_porosity;		 
+}		 
+/*}}}*/ 
+/*FUNCTION Matpar::GetSedimentThickness {{{*/
+IssmDouble Matpar::GetSedimentThickness(){
+	return sediment_thickness;		 
+}		 
+/*}}}*/ 
+/*FUNCTION Matpar::GetSedimentTransitivity {{{*/
+IssmDouble Matpar::GetSedimentTransmitivity(){
+	return sediment_transmitivity;		 
+}		 
+/*}}}*/ 
+/*FUNCTION Matpar::GetWaterCompressibility {{{*/
+IssmDouble Matpar::GetWaterCompressibility(){
+	return water_compressibility;		 
+}		 
+/*}}}*/ 
+/*FUNCTION Matpar::GetWaterDensity {{{*/
+IssmDouble Matpar::GetWaterDensity(){
+	return water_density;		 
 }		 
 /*}}}*/			 
Index: /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.h	(revision 14572)
+++ /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.h	(revision 14573)
@@ -38,6 +38,10 @@
 
 		/*hydrology Dual Porous Continuum: */	 
-		IssmDouble  sediment_porosity;
-
+		IssmDouble  sediment_compressibility;
+		IssmDouble  sediment_porosity;	 
+		IssmDouble  sediment_thickness;
+		IssmDouble  sediment_transmitivity;	 
+		IssmDouble  water_compressibility;
+		IssmDouble  water_density;
 	public:
 		Matpar();
@@ -103,5 +107,10 @@
 		IssmDouble GetHydrologyCR();
 		IssmDouble GetHydrologyN();
+		IssmDouble GetSedimentCompressibility();
 		IssmDouble GetSedimentPorosity();
+		IssmDouble GetSedimentThickness();
+		IssmDouble GetSedimentTransmitivity();
+		IssmDouble GetWaterCompressibility();
+		IssmDouble GetWaterDensity();
 		IssmDouble TMeltingPoint(IssmDouble pressure);
 		IssmDouble PureIceEnthalpy(IssmDouble pressure);
Index: /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 14572)
+++ /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 14573)
@@ -95,6 +95,12 @@
 		case HydrologydcEnum : return "Hydrologydc";
 		case SedimentheadEnum : return "Sedimenthead";
-		case HydrologydcSedimentporosityEnum : return "HydrologydcSedimentporosity";
-		case HydrologydcSpcsedimentheadEnum : return "HydrologydcSpcsedimenthead";
+		case WaterpressureEnum : return "Waterpressure";
+		case HydrologydcSpcsedimentHeadEnum : return "HydrologydcSpcsedimentHead";
+		case HydrologydcSedimentCompressibilityEnum : return "HydrologydcSedimentCompressibility";
+		case HydrologydcSedimentPorosityEnum : return "HydrologydcSedimentPorosity";
+		case HydrologydcSedimentThicknessEnum : return "HydrologydcSedimentThickness";
+		case HydrologydcSedimentTransmitivityEnum : return "HydrologydcSedimentTransmitivity";
+		case HydrologydcWaterDensityEnum : return "HydrologydcWaterDensity";
+		case HydrologydcWaterCompressibilityEnum : return "HydrologydcWaterCompressibility";
 		case IndependentObjectEnum : return "IndependentObject";
 		case InversionControlParametersEnum : return "InversionControlParameters";
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Hydrology/CreateConstraintsHydrology.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Hydrology/CreateConstraintsHydrology.cpp	(revision 14572)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Hydrology/CreateConstraintsHydrology.cpp	(revision 14573)
@@ -28,5 +28,5 @@
 	}
 	else if(hydrology_model==HydrologydcEnum){
-		IoModelToConstraintsx(constraints,iomodel,HydrologydcSpcsedimentheadEnum,HydrologyAnalysisEnum);
+		IoModelToConstraintsx(constraints,iomodel,HydrologydcSpcsedimentHeadEnum,HydrologyAnalysisEnum);
 	}
 	else{
Index: /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 14572)
+++ /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 14573)
@@ -96,6 +96,12 @@
 	      else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
 	      else if (strcmp(name,"Sedimenthead")==0) return SedimentheadEnum;
-	      else if (strcmp(name,"HydrologydcSedimentporosity")==0) return HydrologydcSedimentporosityEnum;
-	      else if (strcmp(name,"HydrologydcSpcsedimenthead")==0) return HydrologydcSpcsedimentheadEnum;
+	      else if (strcmp(name,"Waterpressure")==0) return WaterpressureEnum;
+	      else if (strcmp(name,"HydrologydcSpcsedimentHead")==0) return HydrologydcSpcsedimentHeadEnum;
+	      else if (strcmp(name,"HydrologydcSedimentCompressibility")==0) return HydrologydcSedimentCompressibilityEnum;
+	      else if (strcmp(name,"HydrologydcSedimentPorosity")==0) return HydrologydcSedimentPorosityEnum;
+	      else if (strcmp(name,"HydrologydcSedimentThickness")==0) return HydrologydcSedimentThicknessEnum;
+	      else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
+	      else if (strcmp(name,"HydrologydcWaterDensity")==0) return HydrologydcWaterDensityEnum;
+	      else if (strcmp(name,"HydrologydcWaterCompressibility")==0) return HydrologydcWaterCompressibilityEnum;
 	      else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
 	      else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
@@ -132,5 +138,8 @@
 	      else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum;
 	      else if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum;
-	      else if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum;
+         else stage=2;
+   }
+   if(stage==2){
+	      if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum;
 	      else if (strcmp(name,"MaterialsRheologyBbar")==0) return MaterialsRheologyBbarEnum;
 	      else if (strcmp(name,"MaterialsRheologyLaw")==0) return MaterialsRheologyLawEnum;
@@ -138,8 +147,5 @@
 	      else if (strcmp(name,"MaterialsRheologyZ")==0) return MaterialsRheologyZEnum;
 	      else if (strcmp(name,"MaterialsRheologyZbar")==0) return MaterialsRheologyZbarEnum;
-         else stage=2;
-   }
-   if(stage==2){
-	      if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
+	      else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
 	      else if (strcmp(name,"MaterialsRhoWater")==0) return MaterialsRhoWaterEnum;
 	      else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
@@ -255,5 +261,8 @@
 	      else if (strcmp(name,"DiagnosticHorizAnalysis")==0) return DiagnosticHorizAnalysisEnum;
 	      else if (strcmp(name,"DiagnosticHutterAnalysis")==0) return DiagnosticHutterAnalysisEnum;
-	      else if (strcmp(name,"DiagnosticSolution")==0) return DiagnosticSolutionEnum;
+         else stage=3;
+   }
+   if(stage==3){
+	      if (strcmp(name,"DiagnosticSolution")==0) return DiagnosticSolutionEnum;
 	      else if (strcmp(name,"DiagnosticVertAnalysis")==0) return DiagnosticVertAnalysisEnum;
 	      else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum;
@@ -261,8 +270,5 @@
 	      else if (strcmp(name,"FlaimAnalysis")==0) return FlaimAnalysisEnum;
 	      else if (strcmp(name,"FlaimSolution")==0) return FlaimSolutionEnum;
-         else stage=3;
-   }
-   if(stage==3){
-	      if (strcmp(name,"HydrologyAnalysis")==0) return HydrologyAnalysisEnum;
+	      else if (strcmp(name,"HydrologyAnalysis")==0) return HydrologyAnalysisEnum;
 	      else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
 	      else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
@@ -378,5 +384,8 @@
 	      else if (strcmp(name,"MaxPenetration")==0) return MaxPenetrationEnum;
 	      else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
-	      else if (strcmp(name,"Misfit")==0) return MisfitEnum;
+         else stage=4;
+   }
+   if(stage==4){
+	      if (strcmp(name,"Misfit")==0) return MisfitEnum;
 	      else if (strcmp(name,"NumberNodeToElementConnectivity")==0) return NumberNodeToElementConnectivityEnum;
 	      else if (strcmp(name,"Pressure")==0) return PressureEnum;
@@ -384,8 +393,5 @@
 	      else if (strcmp(name,"QmuPressure")==0) return QmuPressureEnum;
 	      else if (strcmp(name,"QmuVx")==0) return QmuVxEnum;
-         else stage=4;
-   }
-   if(stage==4){
-	      if (strcmp(name,"QmuVy")==0) return QmuVyEnum;
+	      else if (strcmp(name,"QmuVy")==0) return QmuVyEnum;
 	      else if (strcmp(name,"QmuVz")==0) return QmuVzEnum;
 	      else if (strcmp(name,"QmuThickness")==0) return QmuThicknessEnum;
@@ -501,5 +507,8 @@
 	      else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum;
 	      else if (strcmp(name,"Fset")==0) return FsetEnum;
-	      else if (strcmp(name,"Gradient1")==0) return Gradient1Enum;
+         else stage=5;
+   }
+   if(stage==5){
+	      if (strcmp(name,"Gradient1")==0) return Gradient1Enum;
 	      else if (strcmp(name,"Gradient2")==0) return Gradient2Enum;
 	      else if (strcmp(name,"Gradient3")==0) return Gradient3Enum;
@@ -507,8 +516,5 @@
 	      else if (strcmp(name,"GroundinglineMigration")==0) return GroundinglineMigrationEnum;
 	      else if (strcmp(name,"Gset")==0) return GsetEnum;
-         else stage=5;
-   }
-   if(stage==5){
-	      if (strcmp(name,"Index")==0) return IndexEnum;
+	      else if (strcmp(name,"Index")==0) return IndexEnum;
 	      else if (strcmp(name,"Indexed")==0) return IndexedEnum;
 	      else if (strcmp(name,"Intersect")==0) return IntersectEnum;
Index: /issm/trunk-jpl/src/c/solutions/hydrology_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/hydrology_core.cpp	(revision 14572)
+++ /issm/trunk-jpl/src/c/solutions/hydrology_core.cpp	(revision 14573)
@@ -24,5 +24,5 @@
 	IssmDouble starttime,final_time;
 	IssmDouble time,dt;
-
+	
 	/*first recover parameters common to all solutions*/
 	femmodel->parameters->FindParam(&starttime,TimesteppingStartTimeEnum);
Index: /issm/trunk-jpl/src/m/classes/hydrologydc.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologydc.m	(revision 14572)
+++ /issm/trunk-jpl/src/m/classes/hydrologydc.m	(revision 14573)
@@ -5,43 +5,68 @@
 
 classdef hydrologydc
-	properties (SetAccess=public) 
-		spcsedimenthead  = NaN;
-		sedimentporosity = 0;
-	end
-	methods
-		function obj = hydrologydc(varargin) % {{{
-			switch nargin
-				case 0
-					obj=setdefaultparameters(obj);
-				otherwise
-					error('constructor not supported');
-			end
-		end % }}}
-		function obj = setdefaultparameters(obj) % {{{
-
-			%Parameters from de Fleurian 2013
-			obj.sedimentporosity = .01;
-
-		end % }}}
-		function md = checkconsistency(obj,md,solution,analyses) % {{{
-
-			%Early return
-			if ~ismember(HydrologyAnalysisEnum(),analyses), return; end
-
-			md = checkfield(md,'hydrology.spcsedimenthead','forcing',1);
-			md = checkfield(md,'hydrology.sedimentporosity','>',0,'numel',1);
-		end % }}}
-		function disp(obj) % {{{
-			disp(sprintf('   hydrology Dual Porous Continuum Equivalent parameters:'));
-
-			fielddisplay(obj,'spcsedimenthead','sediment water head constraints (NaN means no constraint, meters above MSL)');
-			fielddisplay(obj,'sedimentporosity','sediment porosity (dimensionless)');
-
-		end % }}}
-		function marshall(obj,fid) % {{{
+    properties (SetAccess=public) 
+        spcsediment_head          = NaN;
+        sediment_compressibility = 0;
+        sediment_porosity         = 0;
+        ssediment_thickness      = 0;
+        sediment_transmitivity    = 0;
+        water_compressibility     = 0;
+        water_density             = 0;
+    end
+    methods
+        function obj = hydrologydc(varargin) % {{{
+            switch nargin
+              case 0
+                obj=setdefaultparameters(obj);
+              otherwise
+                error('constructor not supported');
+            end
+        end % }}}
+        function obj = setdefaultparameters(obj) % {{{
+            
+        %Parameters from de Fleurian 2013
+            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.water_density             = 1.0e+03;
+            
+        end % }}}
+        function md = checkconsistency(obj,md,solution,analyses) % {{{
+            
+        %Early return
+            if ~ismember(HydrologyAnalysisEnum(),analyses), return; end
+            
+            md = checkfield(md,'hydrology.spcsediment_head','forcing',1);
+            md = checkfield(md,'hydrology.sediment_compressibility','>',0,'numel',1);
+            md = checkfield(md,'hydrology.sediment_porosity','>',0,'numel',1);
+            md = checkfield(md,'hydrology.sediment_thickness','>',0,'numel',1);
+            md = checkfield(md,'hydrology.sediment_transmitivity','>',0,'numel',1);
+            md = checkfield(md,'hydrology.water_compressibility','>',0,'numel',1);
+            md = checkfield(md,'hydrology.water_density','>',0,'numel',1);
+        end % }}}
+        function disp(obj) % {{{
+            disp(sprintf('   hydrology Dual Porous Continuum Equivalent parameters:'));
+            
+            fielddisplay(obj,'spcsediment_head','sediment water head constraints (NaN means no constraint, meters above MSL)');
+            fielddisplay(obj,'sediment_compressibility','sediment compressibility (Pa -1)');
+            fielddisplay(obj,'sediment_porosity','sediment(dimensionless)');
+            fielddisplay(obj,'sediment_thickness','sediment thickness (meters)');
+            fielddisplay(obj,'sediment_transmitivity','sediment transmitivity (m2 s-1)');
+            fielddisplay(obj,'water_compressibility','water compressibility (Pa -1)');
+            fielddisplay(obj,'water_density','water density (kg m 3)');
+            
+        end % }}}
+        function marshall(obj,fid) % {{{
 			WriteData(fid,'enum',HydrologyEnum(),'data',HydrologydcEnum(),'format','Integer');
-			WriteData(fid,'object',obj,'fieldname','spcsedimenthead','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',obj,'fieldname','sedimentporosity','format','Double');
-		end % }}}
-	end
+			WriteData(fid,'object',obj,'fieldname','spcsediment_head','format','DoubleMat','mattype',1);
+			WriteData(fid,'object',obj,'fieldname','sediment_compressibility','format','Double');			
+                        WriteData(fid,'object',obj,'fieldname','sediment_porosity','format','Double');			
+                        WriteData(fid,'object',obj,'fieldname','sediment_thickness','format','Double');
+                        WriteData(fid,'object',obj,'fieldname','sediment_transmitivity','format','Double');			
+                        WriteData(fid,'object',obj,'fieldname','water_compressibility','format','Double');			
+                        WriteData(fid,'object',obj,'fieldname','water_density','format','Double');
+                    end % }}}
+    end
 end
Index: /issm/trunk-jpl/src/m/classes/initialization.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/initialization.m	(revision 14572)
+++ /issm/trunk-jpl/src/m/classes/initialization.m	(revision 14573)
@@ -6,15 +6,16 @@
 classdef initialization
 	properties (SetAccess=public) 
-		vx            = NaN;
-		vy            = NaN;
-		vz            = NaN;
-		vel           = NaN;
-		pressure      = NaN;
-		temperature   = NaN;
-		surfacetemp   = NaN;
-		basaltemp     = NaN;
-		watercolumn   = NaN;
-		sedimenthead  = NaN;
-		waterfraction = NaN;
+		vx             = NaN;
+		vy             = NaN;
+		vz             = NaN;
+		vel            = NaN;
+		pressure       = NaN;
+		temperature    = NaN;
+		surfacetemp    = NaN;
+		basaltemp      = NaN;
+		waterfraction  = NaN;
+		sediment_head  = NaN;
+                water_pressure = NaN;
+		watercolumn    = NaN;
 	end
 	methods
@@ -41,11 +42,4 @@
 				md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
 			end
-			if ismember(HydrologyAnalysisEnum(),analyses),
-				if isa(md.hydrology,'hydrologydc'),
-					md = checkfield(md,'initialization.sedimenthead','NaN',1,'size',[md.mesh.numberofvertices 1]);
-				else
-					md = checkfield(md,'initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices 1]);
-				end
-			end
 			if ismember(BalancethicknessAnalysisEnum(),analyses),
 				md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
@@ -65,4 +59,12 @@
 				md = checkfield(md,'initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices 1]);
 			end
+			if ismember(HydrologyAnalysisEnum(),analyses),
+				if isa(md.hydrology,'hydrologydc'),
+					md = checkfield(md,'initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
+                                        md = checkfield(md,'initialization.water_pressure','NaN',1,'size',[md.mesh.numberofvertices 1]);
+				else
+					md = checkfield(md,'initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices 1]);
+				end
+			end
 		end % }}}
 		function disp(obj) % {{{
@@ -77,7 +79,8 @@
 			fielddisplay(obj,'surfacetemp','surface temperature in Kelvins');
 			fielddisplay(obj,'basaltemp','basal temperature in Kelvins');
+			fielddisplay(obj,'waterfraction','fraction of water in the ice');
+			fielddisplay(obj,'sediment_head','sediment water head of subglacial system (meters)');
+			fielddisplay(obj,'water_pressure','pressure due to the sediment water head (Pa)');
 			fielddisplay(obj,'watercolumn','thickness of subglacial water');
-			fielddisplay(obj,'sedimenthead','sediment water head of subglacial system (meters)');
-			fielddisplay(obj,'waterfraction','fraction of water in the ice');
 
 		end % }}}
@@ -88,7 +91,8 @@
 			WriteData(fid,'data',obj.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum);
 			WriteData(fid,'data',obj.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum);
+			WriteData(fid,'data',obj.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum);
+			WriteData(fid,'data',obj.sediment_head,'format','DoubleMat','mattype',1,'enum',SedimentHeadEnum);
+			WriteData(fid,'data',obj.water_pressure,'format','DoubleMat','mattype',1,'enum',WaterPressureEnum);
 			WriteData(fid,'data',obj.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum);
-			WriteData(fid,'data',obj.sedimenthead,'format','DoubleMat','mattype',1,'enum',SedimentheadEnum);
-			WriteData(fid,'data',obj.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum);
 		end % }}}
 	end
Index: /issm/trunk-jpl/src/m/classes/initialization.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/initialization.py	(revision 14572)
+++ /issm/trunk-jpl/src/m/classes/initialization.py	(revision 14573)
@@ -26,7 +26,8 @@
 		self.surfacetemp   = float('NaN')
 		self.basaltemp     = float('NaN')
+		self.waterfraction = float('NaN')
 		self.watercolumn   = float('NaN')
-		self.sedimenthead  = float('NaN')
-		self.waterfraction = float('NaN')
+		self.sediment_head  = float('NaN')
+		self.water_pressure = float('NaN')
 
 		#set defaults
@@ -46,7 +47,8 @@
 		string="%s\n%s"%(string,fielddisplay(self,'surfacetemp','surface temperature in Kelvins'))
 		string="%s\n%s"%(string,fielddisplay(self,'basaltemp','basal temperature in Kelvins'))
+		string="%s\n%s"%(string,fielddisplay(self,'waterfraction','fraction of water in the ice'))
 		string="%s\n%s"%(string,fielddisplay(self,'watercolumn','thickness of subglacial water'))
-		string="%s\n%s"%(string,fielddisplay(self,'sedimenthead','sediment water head of subglacial system (meters)'))
-		string="%s\n%s"%(string,fielddisplay(self,'waterfraction','fraction of water in the ice'))
+		string="%s\n%s"%(string,fielddisplay(self,'sediment_head','sediment water head of subglacial system (meters)'))
+		string="%s\n%s"%(string,fielddisplay(self,'water_pressure','water pressure due to the sediment head (Pa)'))
 
 		return string
@@ -66,6 +68,4 @@
 			md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
 			md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
-		if HydrologyAnalysisEnum() in analyses:
-			md = checkfield(md,'initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
 		if BalancethicknessAnalysisEnum() in analyses:
 			md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
@@ -82,5 +82,6 @@
 		if (EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy) or solution==EnthalpySolutionEnum():
 			md = checkfield(md,'initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])
-
+		if HydrologyAnalysisEnum() in analyses:
+			md = checkfield(md,'initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
 		return md
 	# }}}
@@ -92,7 +93,8 @@
 		WriteData(fid,'data',self.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum())
 		WriteData(fid,'data',self.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum())
+		WriteData(fid,'data',self.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum())
 		WriteData(fid,'data',self.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum())
-		WriteData(fid,'data',self.sedimenthead,'format','DoubleMat','mattype',1,'enum',SedimentheadEnum())
-		WriteData(fid,'data',self.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum())
+		WriteData(fid,'data',self.sediment_head,'format','DoubleMat','mattype',1,'enum',SedimentHeadEnum())
+		WriteData(fid,'data',self.water_pressure,'format','DoubleMat','mattype',1,'enum',WaterPressureEnum())
 	# }}}
 
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 14572)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 14573)
@@ -789,23 +789,83 @@
 	return StringToEnum('Sedimenthead')[0]
 
-def HydrologydcSedimentporosityEnum():
-	"""
-	HYDROLOGYDCSEDIMENTPOROSITYENUM - Enum of HydrologydcSedimentporosity
-
-	   Usage:
-	      macro=HydrologydcSedimentporosityEnum()
-	"""
-
-	return StringToEnum('HydrologydcSedimentporosity')[0]
-
-def HydrologydcSpcsedimentheadEnum():
-	"""
-	HYDROLOGYDCSPCSEDIMENTHEADENUM - Enum of HydrologydcSpcsedimenthead
-
-	   Usage:
-	      macro=HydrologydcSpcsedimentheadEnum()
-	"""
-
-	return StringToEnum('HydrologydcSpcsedimenthead')[0]
+def WaterpressureEnum():
+	"""
+	WATERPRESSUREENUM - Enum of Waterpressure
+
+	   Usage:
+	      macro=WaterpressureEnum()
+	"""
+
+	return StringToEnum('Waterpressure')[0]
+
+def HydrologydcSpcsedimentHeadEnum():
+	"""
+	HYDROLOGYDCSPCSEDIMENTHEADENUM - Enum of HydrologydcSpcsedimentHead
+
+	   Usage:
+	      macro=HydrologydcSpcsedimentHeadEnum()
+	"""
+
+	return StringToEnum('HydrologydcSpcsedimentHead')[0]
+
+def HydrologydcSedimentCompressibilityEnum():
+	"""
+	HYDROLOGYDCSEDIMENTCOMPRESSIBILITYENUM - Enum of HydrologydcSedimentCompressibility
+
+	   Usage:
+	      macro=HydrologydcSedimentCompressibilityEnum()
+	"""
+
+	return StringToEnum('HydrologydcSedimentCompressibility')[0]
+
+def HydrologydcSedimentPorosityEnum():
+	"""
+	HYDROLOGYDCSEDIMENTPOROSITYENUM - Enum of HydrologydcSedimentPorosity
+
+	   Usage:
+	      macro=HydrologydcSedimentPorosityEnum()
+	"""
+
+	return StringToEnum('HydrologydcSedimentPorosity')[0]
+
+def HydrologydcSedimentThicknessEnum():
+	"""
+	HYDROLOGYDCSEDIMENTTHICKNESSENUM - Enum of HydrologydcSedimentThickness
+
+	   Usage:
+	      macro=HydrologydcSedimentThicknessEnum()
+	"""
+
+	return StringToEnum('HydrologydcSedimentThickness')[0]
+
+def HydrologydcSedimentTransmitivityEnum():
+	"""
+	HYDROLOGYDCSEDIMENTTRANSMITIVITYENUM - Enum of HydrologydcSedimentTransmitivity
+
+	   Usage:
+	      macro=HydrologydcSedimentTransmitivityEnum()
+	"""
+
+	return StringToEnum('HydrologydcSedimentTransmitivity')[0]
+
+def HydrologydcWaterDensityEnum():
+	"""
+	HYDROLOGYDCWATERDENSITYENUM - Enum of HydrologydcWaterDensity
+
+	   Usage:
+	      macro=HydrologydcWaterDensityEnum()
+	"""
+
+	return StringToEnum('HydrologydcWaterDensity')[0]
+
+def HydrologydcWaterCompressibilityEnum():
+	"""
+	HYDROLOGYDCWATERCOMPRESSIBILITYENUM - Enum of HydrologydcWaterCompressibility
+
+	   Usage:
+	      macro=HydrologydcWaterCompressibilityEnum()
+	"""
+
+	return StringToEnum('HydrologydcWaterCompressibility')[0]
 
 def IndependentObjectEnum():
@@ -5137,4 +5197,4 @@
 	"""
 
-	return 512
-
+	return 518
+
Index: /issm/trunk-jpl/src/m/enum/HydrologydcSedimentCompressibilityEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologydcSedimentCompressibilityEnum.m	(revision 14573)
+++ /issm/trunk-jpl/src/m/enum/HydrologydcSedimentCompressibilityEnum.m	(revision 14573)
@@ -0,0 +1,11 @@
+function macro=HydrologydcSedimentCompressibilityEnum()
+%HYDROLOGYDCSEDIMENTCOMPRESSIBILITYENUM - Enum of HydrologydcSedimentCompressibility
+%
+%   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=HydrologydcSedimentCompressibilityEnum()
+
+macro=StringToEnum('HydrologydcSedimentCompressibility');
Index: /issm/trunk-jpl/src/m/enum/HydrologydcSedimentThicknessEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologydcSedimentThicknessEnum.m	(revision 14573)
+++ /issm/trunk-jpl/src/m/enum/HydrologydcSedimentThicknessEnum.m	(revision 14573)
@@ -0,0 +1,11 @@
+function macro=HydrologydcSedimentThicknessEnum()
+%HYDROLOGYDCSEDIMENTTHICKNESSENUM - Enum of HydrologydcSedimentThickness
+%
+%   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=HydrologydcSedimentThicknessEnum()
+
+macro=StringToEnum('HydrologydcSedimentThickness');
Index: /issm/trunk-jpl/src/m/enum/HydrologydcSedimentTransmitivityEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologydcSedimentTransmitivityEnum.m	(revision 14573)
+++ /issm/trunk-jpl/src/m/enum/HydrologydcSedimentTransmitivityEnum.m	(revision 14573)
@@ -0,0 +1,11 @@
+function macro=HydrologydcSedimentTransmitivityEnum()
+%HYDROLOGYDCSEDIMENTTRANSMITIVITYENUM - Enum of HydrologydcSedimentTransmitivity
+%
+%   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=HydrologydcSedimentTransmitivityEnum()
+
+macro=StringToEnum('HydrologydcSedimentTransmitivity');
Index: sm/trunk-jpl/src/m/enum/HydrologydcSedimentporosityEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologydcSedimentporosityEnum.m	(revision 14572)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=HydrologydcSedimentporosityEnum()
-%HYDROLOGYDCSEDIMENTPOROSITYENUM - Enum of HydrologydcSedimentporosity
-%
-%   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=HydrologydcSedimentporosityEnum()
-
-macro=StringToEnum('HydrologydcSedimentporosity');
Index: sm/trunk-jpl/src/m/enum/HydrologydcSpcsedimentheadEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologydcSpcsedimentheadEnum.m	(revision 14572)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=HydrologydcSpcsedimentheadEnum()
-%HYDROLOGYDCSPCSEDIMENTHEADENUM - Enum of HydrologydcSpcsedimenthead
-%
-%   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=HydrologydcSpcsedimentheadEnum()
-
-macro=StringToEnum('HydrologydcSpcsedimenthead');
Index: /issm/trunk-jpl/src/m/enum/HydrologydcWaterCompressibilityEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologydcWaterCompressibilityEnum.m	(revision 14573)
+++ /issm/trunk-jpl/src/m/enum/HydrologydcWaterCompressibilityEnum.m	(revision 14573)
@@ -0,0 +1,11 @@
+function macro=HydrologydcWaterCompressibilityEnum()
+%HYDROLOGYDCWATERCOMPRESSIBILITYENUM - Enum of HydrologydcWaterCompressibility
+%
+%   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=HydrologydcWaterCompressibilityEnum()
+
+macro=StringToEnum('HydrologydcWaterCompressibility');
Index: /issm/trunk-jpl/src/m/enum/HydrologydcWaterDensityEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/HydrologydcWaterDensityEnum.m	(revision 14573)
+++ /issm/trunk-jpl/src/m/enum/HydrologydcWaterDensityEnum.m	(revision 14573)
@@ -0,0 +1,11 @@
+function macro=HydrologydcWaterDensityEnum()
+%HYDROLOGYDCWATERDENSITYENUM - Enum of HydrologydcWaterDensity
+%
+%   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=HydrologydcWaterDensityEnum()
+
+macro=StringToEnum('HydrologydcWaterDensity');
Index: /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 14572)
+++ /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 14573)
@@ -9,3 +9,3 @@
 %      macro=MaximumNumberOfEnums()
 
-macro=512;
+macro=518;
Index: /issm/trunk-jpl/src/m/enum/WaterpressureEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/WaterpressureEnum.m	(revision 14573)
+++ /issm/trunk-jpl/src/m/enum/WaterpressureEnum.m	(revision 14573)
@@ -0,0 +1,11 @@
+function macro=WaterpressureEnum()
+%WATERPRESSUREENUM - Enum of Waterpressure
+%
+%   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=WaterpressureEnum()
+
+macro=StringToEnum('Waterpressure');
