Index: /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 16812)
+++ /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 16813)
@@ -293,5 +293,5 @@
 ElementVector* EnthalpyAnalysis::CreatePVectorShelf(Element* element){/*{{{*/
 
-	IssmDouble  t_pmp,dt,Jdet,scalar_ocean,pressure;
+	IssmDouble  h_pmp,dt,Jdet,scalar_ocean,pressure;
 	IssmDouble *xyz_list_base = NULL;
 
@@ -326,7 +326,7 @@
 
 		pressure_input->GetInputValue(&pressure,gauss);
-		t_pmp=element->TMeltingPoint(pressure);
-
-		scalar_ocean=gauss->weight*Jdet*rho_water*mixed_layer_capacity*thermal_exchange_vel*(t_pmp)/(heatcapacity*rho_ice);
+		h_pmp=element->PureIceEnthalpy(pressure);
+
+		scalar_ocean=gauss->weight*Jdet*rho_water*mixed_layer_capacity*thermal_exchange_vel*h_pmp/(heatcapacity*rho_ice);
 		if(reCast<bool,IssmDouble>(dt)) scalar_ocean=dt*scalar_ocean;
 
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16812)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16813)
@@ -61,4 +61,5 @@
 		virtual void   NodalFunctionsPressure(IssmDouble* basis,Gauss* gauss)=0;
 		virtual void   NormalBase(IssmDouble* normal,IssmDouble* xyz_list)=0;
+		virtual IssmDouble PureIceEnthalpy(IssmDouble pressure)=0;
 		virtual void   TransformLoadVectorCoord(ElementVector* pe,int transformenum)=0;
 		virtual void   TransformLoadVectorCoord(ElementVector* pe,int* transformenum_list)=0;
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16812)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16813)
@@ -2640,4 +2640,10 @@
 	/*clean-up*/
 	delete gauss;
+}
+/*}}}*/
+/*FUNCTION Penta::PureIceEnthalpy{{{*/
+IssmDouble Penta::PureIceEnthalpy(IssmDouble pressure){
+
+	return this->matpar->PureIceEnthalpy(pressure);
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16812)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16813)
@@ -109,4 +109,5 @@
 		int    NumberofNodesPressure(void);
 		int    VelocityInterpolation();
+		IssmDouble PureIceEnthalpy(IssmDouble pressure);
 		int    PressureInterpolation();
 
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16812)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16813)
@@ -123,4 +123,5 @@
 	   Element*    SpawnBasalElement(void){_error_("not implemented yet");};
 		IssmDouble  StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa){_error_("not implemented yet");};
+		IssmDouble  PureIceEnthalpy(IssmDouble pressure){_error_("not implemented yet");};
 		int         PressureInterpolation(void){_error_("not implemented yet");};
 		int         VelocityInterpolation(void){_error_("not implemented yet");};
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16812)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16813)
@@ -126,4 +126,5 @@
 		IssmDouble  TMeltingPoint(IssmDouble pressure);
 		int         VelocityInterpolation();
+		IssmDouble  PureIceEnthalpy(IssmDouble pressure){_error_("not implemented yet");};
 		int         PressureInterpolation();
 		IssmDouble  SurfaceArea(void);
