Index: /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 21159)
+++ /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 21160)
@@ -460,6 +460,14 @@
 }/*}}}*/
 void           EnthalpyAnalysis::Core(FemModel* femmodel){/*{{{*/
+
+	IssmDouble dt;
+	bool isdynamicbasalspc;
+
+	femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
+	femmodel->parameters->FindParam(&isdynamicbasalspc,ThermalIsdynamicbasalspcEnum);
+
 	if(VerboseSolution()) _printf0_("   computing enthalpy\n");
 	femmodel->SetCurrentConfiguration(EnthalpyAnalysisEnum);
+	if((dt>0.) && isdynamicbasalspc)	UpdateBasalConstraints(femmodel);
 	solutionsequence_thermal_nonlinear(femmodel);
 
@@ -467,6 +475,4 @@
 	InputDuplicatex(femmodel,EnthalpyEnum,EnthalpyPicardEnum);
 
-	IssmDouble dt;
-	femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	if(dt==0.) ComputeBasalMeltingrate(femmodel);
 	else PostProcessing(femmodel);
@@ -1535,14 +1541,10 @@
 	bool computebasalmeltingrates=true;
 	bool drainicecolumn=true;
-	bool isdynamicbasalspc;
 	IssmDouble dt;
 
-	femmodel->parameters->FindParam(&isdynamicbasalspc,ThermalIsdynamicbasalspcEnum);
 	femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 
-	//TODO: use dt to decide what to do
 	if(drainicecolumn)	DrainWaterfraction(femmodel);
 	if(computebasalmeltingrates)	ComputeBasalMeltingrate(femmodel);
-	if(isdynamicbasalspc)	UpdateBasalConstraints(femmodel);
 
 }/*}}}*/
