Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
===================================================================
--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 18666)
+++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 18667)
@@ -932,10 +932,11 @@
 	if(!element->IsOnBase() || element->IsFloating()) return;
 
 	/* Intermediaries */
+	bool			converged;
 	const int   dim=3;
 	int         i,is,state;
 	int			vertexdown,vertexup,numvertices,numsegments;
-	const int	enthalpy_enum=EnthalpyEnum;
+	int			enthalpy_enum;
 	IssmDouble  vec_heatflux[dim],normal_base[dim],d1enthalpy[dim],d1pressure[dim];
 	IssmDouble  basalfriction,alpha2,geothermalflux,heatflux;
 	IssmDouble  dt,yts;
@@ -948,11 +949,18 @@
 	/*Fetch parameters*/
 	element->GetVerticesCoordinates(&xyz_list);
 	element->GetVerticesCoordinatesBase(&xyz_list_base);
+	element->GetInputValue(&converged,ConvergedEnum);
+	element->FindParam(&dt,TimesteppingTimeStepEnum);
+	element->FindParam(&yts, ConstantsYtsEnum);
+
+	if(dt==0. && !converged) enthalpy_enum=EnthalpyPicardEnum;
+	else enthalpy_enum=EnthalpyEnum;
+
 	IssmDouble latentheat = element->GetMaterialParameter(MaterialsLatentheatEnum);
 	IssmDouble rho_ice    = element->GetMaterialParameter(MaterialsRhoIceEnum);
 	IssmDouble rho_water  = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
 	IssmDouble beta		 = element->GetMaterialParameter(MaterialsBetaEnum);
-	IssmDouble kappa		 = EnthalpyDiffusionParameterVolume(element,EnthalpyEnum);     _assert_(kappa>=0.);
+	IssmDouble kappa		 = EnthalpyDiffusionParameterVolume(element,enthalpy_enum);     _assert_(kappa>=0.);
 	IssmDouble kappa_mix;
 
 	/*retrieve inputs*/
@@ -1001,7 +1009,7 @@
 
 			case 3:
 				// temperate, thin melting base: set spc
-				// enthalpies[vertexdown]=element->PureIceEnthalpy(pressures[vertexdown]); 
+				enthalpies[vertexdown]=element->PureIceEnthalpy(pressures[vertexdown]); 
 				enthalpy_input->GetInputDerivativeValue(&d1enthalpy[0],xyz_list,gauss);
 				for(i=0;i<3;i++) vec_heatflux[i]=-kappa*d1enthalpy[i];
 				break;
@@ -1032,8 +1040,6 @@
 	}/*}}}*/
 
 	/******** UPDATE MELTINGRATES AND WATERCOLUMN **************//*{{{*/
-	element->FindParam(&dt,TimesteppingTimeStepEnum);
-	element->FindParam(&yts, ConstantsYtsEnum);
 	for(is=0;is<numsegments;is++){
 		vertexdown = pairindices[is*2+0];
 		vertexup   = pairindices[is*2+1];
@@ -1061,8 +1067,10 @@
 	}/*}}}*/
 
 	/*feed updated variables back into model*/
-	element->AddInput(EnthalpyEnum,enthalpies,P1Enum); //TODO: distinguis for steadystate and transient run
-	element->AddInput(WatercolumnEnum,watercolumns,P1Enum);
+	if(dt!=0.){
+		element->AddInput(enthalpy_enum,enthalpies,P1Enum); //TODO: distinguis for steadystate and transient run
+		element->AddInput(WatercolumnEnum,watercolumns,P1Enum);
+	}
 	element->AddInput(BasalforcingsGroundediceMeltingRateEnum,basalmeltingrates,P1Enum);
 
 	/*Clean up and return*/
