Index: /issm/trunk-jpl/src/c/solutions/AnalysisConfiguration.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/AnalysisConfiguration.cpp	(revision 11589)
+++ /issm/trunk-jpl/src/c/solutions/AnalysisConfiguration.cpp	(revision 11590)
@@ -38,5 +38,5 @@
 
 		case SteadystateSolutionEnum:
-			numanalyses=7;
+			numanalyses=8;
 			analyses=(int*)xmalloc(numanalyses*sizeof(int));
 			analyses[0]=DiagnosticHorizAnalysisEnum;
@@ -45,6 +45,7 @@
 			analyses[3]=SurfaceSlopeAnalysisEnum;
 			analyses[4]=BedSlopeAnalysisEnum;
-			analyses[5]=ThermalAnalysisEnum;
-			analyses[6]=MeltingAnalysisEnum;
+			analyses[5]=EnthalpyAnalysisEnum;
+			analyses[6]=ThermalAnalysisEnum;
+			analyses[7]=MeltingAnalysisEnum;
 			break;
 
Index: /issm/trunk-jpl/src/c/solutions/steadystate_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/steadystate_core.cpp	(revision 11589)
+++ /issm/trunk-jpl/src/c/solutions/steadystate_core.cpp	(revision 11590)
@@ -25,8 +25,8 @@
 
 	/*parameters: */
-	int dim;
-	int solution_type;
-	int maxiter;
-	bool control_analysis;
+	bool control_analysis,isenthalpy;
+	int  dim;
+	int  solution_type;
+	int  maxiter;
 	int  numoutputs         = 0;
 	int  *requested_outputs = NULL;
@@ -38,4 +38,5 @@
 	femmodel->parameters->FindParam(&maxiter,SteadystateMaxiterEnum);
 	femmodel->parameters->FindParam(&numoutputs,SteadystateNumRequestedOutputsEnum);
+	femmodel->parameters->FindParam(&isenthalpy,ThermalIsenthalpyEnum);
 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SteadystateRequestedOutputsEnum);
 
@@ -47,5 +48,10 @@
 		_printf_(VerboseSolution(),"%s%i\n","   computing temperature and velocity for step: ",step);
 		#ifdef _HAVE_THERMAL_
-		thermal_core(femmodel);
+		if(isenthalpy==0){
+			thermal_core(femmodel);
+		}
+		else{
+			enthalpy_core(femmodel);
+		}
 		#else
 		_error_("ISSM was not compiled with thermal capabilities. Exiting");
Index: /issm/trunk-jpl/src/m/solutions/AnalysisConfiguration.m
===================================================================
--- /issm/trunk-jpl/src/m/solutions/AnalysisConfiguration.m	(revision 11589)
+++ /issm/trunk-jpl/src/m/solutions/AnalysisConfiguration.m	(revision 11590)
@@ -14,6 +14,6 @@
 
 	case SteadystateSolutionEnum,
-		numanalyses=7; 
-		analyses=[DiagnosticHorizAnalysisEnum;DiagnosticVertAnalysisEnum;DiagnosticHutterAnalysisEnum;SurfaceSlopeAnalysisEnum;BedSlopeAnalysisEnum;ThermalAnalysisEnum;MeltingAnalysisEnum];
+		numanalyses=8; 
+		analyses=[DiagnosticHorizAnalysisEnum;DiagnosticVertAnalysisEnum;DiagnosticHutterAnalysisEnum;SurfaceSlopeAnalysisEnum;BedSlopeAnalysisEnum;EnthalpyAnalysisEnum;ThermalAnalysisEnum;MeltingAnalysisEnum];
 
 	case ThermalSolutionEnum,
Index: /issm/trunk-jpl/src/m/solutions/steadystate_core.m
===================================================================
--- /issm/trunk-jpl/src/m/solutions/steadystate_core.m	(revision 11589)
+++ /issm/trunk-jpl/src/m/solutions/steadystate_core.m	(revision 11590)
@@ -10,4 +10,5 @@
 	control_analysis=femmodel.parameters.InversionIscontrol;
 	solution_type=femmodel.parameters.SolutionType;
+	isenthalpy=femmodel.parameters.ThermalIsenthalpy;
 
 	%Initialize counter
@@ -17,5 +18,9 @@
 
 		issmprintf(VerboseSolution,'\n%s%i\n','   computing velocities and temperatures for step: ',step);
-		femmodel=thermal_core(femmodel); 
+		if (isenthalpy==0),
+			femmodel=thermal_core(femmodel); 
+		else
+			femmodel=enthalpy_core(femmodel); 
+		end
 
 		issmprintf(VerboseSolution,'\n%s',['   computing new velocity']);
