Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 24560)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 24561)
@@ -2928,4 +2928,12 @@
 						temp_input->SetInput(P1Enum,NUM_VERTICES,&vertexlids[0],temp_input->element_values);
 						break;
+					case P1xP2Enum:
+					case P1xP3Enum:
+					case P1xP4Enum:
+						temp_input->element_values[3] = yearlytemperatures[3];
+						temp_input->element_values[4] = yearlytemperatures[4];
+						temp_input->element_values[5] = yearlytemperatures[5];
+						temp_input->SetInput(temp_input->GetInputInterpolationType(),this->lid,this->GetNumberOfNodes(temp_input->GetInputInterpolationType()),temp_input->element_values);
+						break;
 					default:
 						_error_("Interpolation "<<EnumToStringx(temp_input->GetInputInterpolationType())<<" not supported yet");
@@ -2936,10 +2944,23 @@
 				if(isenthalpy){
 					/*Convert that to enthalpy for the enthalpy model*/
-					IssmDouble enthalpy[6];
-					GetInputListOnVertices(&enthalpy[0],EnthalpyEnum);
-					ThermalToEnthalpy(&enthalpy[3],yearlytemperatures[3],0.,0.);
-					ThermalToEnthalpy(&enthalpy[4],yearlytemperatures[4],0.,0.);
-					ThermalToEnthalpy(&enthalpy[5],yearlytemperatures[5],0.,0.);
-					this->AddInput2(EnthalpyEnum,&enthalpy[0],P1Enum);
+					PentaInput2* enth_input = xDynamicCast<PentaInput2*>(this->GetInput2(EnthalpyEnum)); _assert_(enth_input);
+					switch(enth_input->GetInputInterpolationType()){
+						case P1Enum:
+							ThermalToEnthalpy(&enth_input->element_values[3],yearlytemperatures[3],0.,0.);
+							ThermalToEnthalpy(&enth_input->element_values[4],yearlytemperatures[4],0.,0.);
+							ThermalToEnthalpy(&enth_input->element_values[5],yearlytemperatures[5],0.,0.);
+							enth_input->SetInput(P1Enum,NUM_VERTICES,&vertexlids[0],enth_input->element_values);
+							break;
+						case P1xP2Enum:
+						case P1xP3Enum:
+						case P1xP4Enum:
+							ThermalToEnthalpy(&enth_input->element_values[3],yearlytemperatures[3],0.,0.);
+							ThermalToEnthalpy(&enth_input->element_values[4],yearlytemperatures[4],0.,0.);
+							ThermalToEnthalpy(&enth_input->element_values[5],yearlytemperatures[5],0.,0.);
+							enth_input->SetInput(enth_input->GetInputInterpolationType(),this->lid,this->GetNumberOfNodes(enth_input->GetInputInterpolationType()),enth_input->element_values);
+							break;
+						default:
+							_error_("Interpolation "<<EnumToStringx(temp_input->GetInputInterpolationType())<<" not supported yet");
+					}
 				}
 			}
@@ -3075,4 +3096,9 @@
 					 * the temperatures as they are for the base of the penta and
 					 * use yearlytemperatures for the top*/
+
+					/*FIXME: look at other function Element::PositiveDegreeDay and propagate change! Just assert for now*/
+					PentaInput2* temp_input = xDynamicCast<PentaInput2*>(this->GetInput2(TemperatureEnum)); _assert_(temp_input);
+					_assert_(temp_input->GetInputInterpolationType()==P1Enum);
+
 					GetInputListOnVertices(&s[0],TemperatureEnum);
 					yearlytemperatures[0] = s[0];
