Index: /issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp	(revision 17608)
+++ /issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp	(revision 17609)
@@ -923,6 +923,6 @@
 
 	/*Add vx and vy as inputs to the tria element: */
-	element->AddInput(AdjointxEnum,lambdax,P1Enum);
-	element->AddInput(AdjointyEnum,lambday,P1Enum);
+	element->AddInput(AdjointxEnum,lambdax,element->GetElementType());
+	element->AddInput(AdjointyEnum,lambday,element->GetElementType());
 
 	/*Free ressources:*/
@@ -981,8 +981,8 @@
 
 	/*Add vx and vy as inputs to the tria element: */
-	element->AddInput(AdjointxEnum,lambdax,P1Enum);
-	element->AddInput(AdjointyEnum,lambday,P1Enum);
-	element->AddInput(AdjointzEnum,lambdaz,P1Enum);
-	element->AddInput(AdjointpEnum,lambdap,P1Enum);
+	element->AddInput(AdjointxEnum,lambdax,element->VelocityInterpolation());
+	element->AddInput(AdjointyEnum,lambday,element->VelocityInterpolation());
+	element->AddInput(AdjointzEnum,lambdaz,element->VelocityInterpolation());
+	element->AddInput(AdjointpEnum,lambdap,element->PressureInterpolation());
 
 	/*Free ressources:*/
Index: /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 17608)
+++ /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 17609)
@@ -802,7 +802,7 @@
 			//if(waterfraction[i]>1.) _error_("Water fraction >1 found in solution vector");
 		}
-		element->AddInput(EnthalpyEnum,values,P1Enum);
-		element->AddInput(WaterfractionEnum,waterfraction,P1Enum);
-		element->AddInput(TemperatureEnum,temperature,P1Enum);
+		element->AddInput(EnthalpyEnum,values,element->GetElementType());
+		element->AddInput(WaterfractionEnum,waterfraction,element->GetElementType());
+		element->AddInput(TemperatureEnum,temperature,element->GetElementType());
 
 		/*Update Rheology only if converged (we must make sure that the temperature is below melting point
@@ -816,18 +816,18 @@
 			case CuffeyEnum:
 				for(i=0;i<numnodes;i++) B[i]=Cuffey(temperature[i]);
-				element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
+				element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
 				break;
 			case PatersonEnum:
 				for(i=0;i<numnodes;i++) B[i]=Paterson(temperature[i]);
-				element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
+				element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
 				break;
 			case ArrheniusEnum:
 				element->GetVerticesCoordinates(&xyz_list);
 				for(i=0;i<numnodes;i++) B[i]=Arrhenius(temperature[i],surface[i]-xyz_list[i*3+2],element->GetMaterialParameter(MaterialsRheologyNEnum));
-				element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
+				element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
 				break;
 			case LliboutryDuvalEnum:
 				for(i=0;i<numnodes;i++) B[i]=LliboutryDuval(values[i],pressure[i],element->GetMaterialParameter(MaterialsRheologyNEnum),element->GetMaterialParameter(MaterialsBetaEnum),element->GetMaterialParameter(ConstantsReferencetemperatureEnum),element->GetMaterialParameter(MaterialsHeatcapacityEnum),element->GetMaterialParameter(MaterialsLatentheatEnum)); 
-				element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum); 
+				element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 
 				break; 
 			default: _error_("Rheology law " << EnumToStringx(rheology_law) << " not supported yet");
@@ -835,5 +835,5 @@
 	}
 	else{
-		element->AddInput(EnthalpyPicardEnum,values,P1Enum);
+		element->AddInput(EnthalpyPicardEnum,values,element->GetElementType());
 	}
 
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 17608)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 17609)
@@ -560,5 +560,5 @@
 			}
 		}
-		element->AddInput(HydrologydcEplThicknessEnum,thickness,P1Enum);
+		element->AddInput(HydrologydcEplThicknessEnum,thickness,element->GetElementType());
 		xDelete<IssmDouble>(thickness);
 		xDelete<IssmDouble>(eplhead);
Index: /issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp	(revision 17608)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp	(revision 17609)
@@ -310,5 +310,5 @@
 
 	/*Add input to the element: */
-	element->AddInput(WatercolumnEnum,values,P1Enum);
+	element->AddInput(WatercolumnEnum,values,element->GetElementType());
 
 	/*Free ressources:*/
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 17608)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 17609)
@@ -1743,7 +1743,7 @@
 
 	/*Add vx and vy as inputs to the tria element: */
-	element->AddBasalInput(VxEnum,vx,P1Enum);
-	if(dim==2)element->AddBasalInput(VyEnum,vy,P1Enum);
-	element->AddBasalInput(VelEnum,vel,P1Enum);
+	element->AddBasalInput(VxEnum,vx,element->GetElementType());
+	if(dim==2)element->AddBasalInput(VyEnum,vy,element->GetElementType());
+	element->AddBasalInput(VelEnum,vel,element->GetElementType());
 
 	/*Free ressources:*/
@@ -2063,7 +2063,7 @@
 
 	/*Add vx and vy as inputs to the tria element: */
-	element->AddBasalInput(VxEnum,vx,P1Enum);
-	element->AddBasalInput(VyEnum,vy,P1Enum);
-	element->AddBasalInput(VelEnum,vel,P1Enum);
+	element->AddBasalInput(VxEnum,vx,element->GetElementType());
+	element->AddBasalInput(VyEnum,vy,element->GetElementType());
+	element->AddBasalInput(VelEnum,vel,element->GetElementType());
 
 	/*Free ressources:*/
@@ -2740,7 +2740,7 @@
 	//element->AddInput(VyEnum,  vy,element->GetElementType());
 	//element->AddInput(VelEnum,vel,element->GetElementType());
-	element->AddInput(VxEnum,vx,P1Enum);
-	if(dim==3)element->AddInput(VyEnum,vy,P1Enum);
-	element->AddInput(VelEnum,vel,P1Enum);
+	element->AddInput(VxEnum,vx,element->GetElementType());
+	if(dim==3)element->AddInput(VyEnum,vy,element->GetElementType());
+	element->AddInput(VelEnum,vel,element->GetElementType());
 
 	/*Free ressources:*/
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 17608)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 17609)
@@ -443,5 +443,5 @@
 	if(approximation!=HOFSApproximationEnum && approximation!=SSAFSApproximationEnum){
 		element->InputChangeName(PressureEnum,PressurePicardEnum);
-		element->AddInput(PressureEnum,pressure,P1Enum);
+		element->AddInput(PressureEnum,pressure,element->GetElementType());
 	}
 	else if(approximation==HOFSApproximationEnum){
Index: /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 17608)
+++ /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 17609)
@@ -673,5 +673,5 @@
 	element->GetInputValue(&converged,ConvergedEnum);
 	if(converged){
-		element->AddInput(TemperatureEnum,values,P1Enum);
+		element->AddInput(TemperatureEnum,values,element->GetElementType());
 
 		/*Update Rheology only if converged (we must make sure that the temperature is below melting point
@@ -685,14 +685,14 @@
 			case CuffeyEnum:
 				for(i=0;i<numnodes;i++) B[i]=Cuffey(values[i]);
-				element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
+				element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
 				break;
 			case PatersonEnum:
 				for(i=0;i<numnodes;i++) B[i]=Paterson(values[i]);
-				element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
+				element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
 				break;
 			case ArrheniusEnum:{
 				element->GetVerticesCoordinates(&xyz_list);
 				for(i=0;i<numnodes;i++) B[i]=Arrhenius(values[i],surface[i]-xyz_list[i*3+2],element->GetMaterialParameter(MaterialsRheologyNEnum));
-				element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
+				element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
 				break;
 				}
@@ -702,5 +702,5 @@
 	}
 	else{
-		element->AddInput(TemperaturePicardEnum,values,P1Enum);
+		element->AddInput(TemperaturePicardEnum,values,element->GetElementType());
 	}
 
