Index: /issm/trunk-jpl/src/c/analyses/enthalpy_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/enthalpy_core.cpp	(revision 16218)
+++ /issm/trunk-jpl/src/c/analyses/enthalpy_core.cpp	(revision 16219)
@@ -23,5 +23,5 @@
 
 	/*transfer enthalpy to enthalpy picard for the next step: */
-	InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,EnthalpyEnum,EnthalpyPicardEnum);
+	InputDuplicatex(femmodel,EnthalpyEnum,EnthalpyPicardEnum);
 
 	if(save_results){
Index: /issm/trunk-jpl/src/c/analyses/hydrology_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/hydrology_core.cpp	(revision 16218)
+++ /issm/trunk-jpl/src/c/analyses/hydrology_core.cpp	(revision 16219)
@@ -64,5 +64,5 @@
 			/*transfer water column thickness to old water column thickness: */
 
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WatercolumnEnum,WaterColumnOldEnum);
+			InputDuplicatex(femmodel,WatercolumnEnum,WaterColumnOldEnum);
 
 			if(save_results && ((i+1)%output_frequency==0 || (i+1)==nsteps)){
@@ -79,8 +79,8 @@
 
 		else if (hydrology_model==HydrologydcEnum){
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SedimentHeadEnum,SedimentHeadOldEnum);
+			InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
 			femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
 			if (isefficientlayer){
-				InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,EplHeadEnum,EplHeadOldEnum);
+				InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum);
 			}
 
Index: /issm/trunk-jpl/src/c/analyses/masstransport_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/masstransport_core.cpp	(revision 16218)
+++ /issm/trunk-jpl/src/c/analyses/masstransport_core.cpp	(revision 16219)
@@ -36,7 +36,7 @@
 	/*for qmu analysis, reinitialize velocity so that fake sensitivities do not show up as a result of a different restart of the convergence at each trial.*/
 	if(dakota_analysis && solution_type==MasstransportSolutionEnum){
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuSurfaceEnum,SurfaceEnum);
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuThicknessEnum,ThicknessEnum);
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuBedEnum,BedEnum);
+		InputDuplicatex(femmodel,QmuSurfaceEnum,SurfaceEnum);
+		InputDuplicatex(femmodel,QmuThicknessEnum,ThicknessEnum);
+		InputDuplicatex(femmodel,QmuBedEnum,BedEnum);
 	}
 
Index: /issm/trunk-jpl/src/c/analyses/stressbalance_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/stressbalance_core.cpp	(revision 16218)
+++ /issm/trunk-jpl/src/c/analyses/stressbalance_core.cpp	(revision 16219)
@@ -39,8 +39,8 @@
 	/*for qmu analysis, reinitialize velocity so that fake sensitivities do not show up as a result of a different restart of the convergence at each trial.*/
 	if(dakota_analysis && solution_type==StressbalanceSolutionEnum){
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVxEnum,VxEnum);
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVyEnum,VyEnum);
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVzEnum,VzEnum);
-		if(isFS) InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuPressureEnum,PressureEnum);
+		InputDuplicatex(femmodel,QmuVxEnum,VxEnum);
+		InputDuplicatex(femmodel,QmuVyEnum,VyEnum);
+		InputDuplicatex(femmodel,QmuVzEnum,VzEnum);
+		if(isFS) InputDuplicatex(femmodel,QmuPressureEnum,PressureEnum);
 	}
 
Index: /issm/trunk-jpl/src/c/analyses/thermal_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/thermal_core.cpp	(revision 16218)
+++ /issm/trunk-jpl/src/c/analyses/thermal_core.cpp	(revision 16219)
@@ -23,10 +23,10 @@
 
 	if(dakota_analysis && solution_type!=TransientSolutionEnum){
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVxMeshEnum,VxMeshEnum);
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVyMeshEnum,VyMeshEnum);
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVzMeshEnum,VzMeshEnum);
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuTemperatureEnum,TemperatureEnum);
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMeltingEnum,BasalforcingsMeltingRateEnum);
-		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMaterialsRheologyBEnum,MaterialsRheologyBEnum);
+		InputDuplicatex(femmodel,QmuVxMeshEnum,VxMeshEnum);
+		InputDuplicatex(femmodel,QmuVyMeshEnum,VyMeshEnum);
+		InputDuplicatex(femmodel,QmuVzMeshEnum,VzMeshEnum);
+		InputDuplicatex(femmodel,QmuTemperatureEnum,TemperatureEnum);
+		InputDuplicatex(femmodel,QmuMeltingEnum,BasalforcingsMeltingRateEnum);
+		InputDuplicatex(femmodel,QmuMaterialsRheologyBEnum,MaterialsRheologyBEnum);
 		femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);
 		ResetConstraintsx(femmodel);
Index: /issm/trunk-jpl/src/c/analyses/transient_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/transient_core.cpp	(revision 16218)
+++ /issm/trunk-jpl/src/c/analyses/transient_core.cpp	(revision 16219)
@@ -61,29 +61,29 @@
 	if(dakota_analysis){
 		if(isstressbalance){
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVxEnum,VxEnum);
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVyEnum,VyEnum);
+			InputDuplicatex(femmodel,QmuVxEnum,VxEnum);
+			InputDuplicatex(femmodel,QmuVyEnum,VyEnum);
 			if(dim==3){
-				InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVzEnum,VzEnum);
-				if(isFS)InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuPressureEnum,PressureEnum);
+				InputDuplicatex(femmodel,QmuVzEnum,VzEnum);
+				if(isFS)InputDuplicatex(femmodel,QmuPressureEnum,PressureEnum);
 			}
 		}
 		if(ismasstransport || isgroundingline){
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuThicknessEnum,ThicknessEnum);
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuSurfaceEnum,SurfaceEnum);
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuBedEnum,BedEnum);
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMaskIceLevelsetEnum,MaskIceLevelsetEnum);
+			InputDuplicatex(femmodel,QmuThicknessEnum,ThicknessEnum);
+			InputDuplicatex(femmodel,QmuSurfaceEnum,SurfaceEnum);
+			InputDuplicatex(femmodel,QmuBedEnum,BedEnum);
+			InputDuplicatex(femmodel,QmuMaskIceLevelsetEnum,MaskIceLevelsetEnum);
 		}
-		if(isgroundingline) InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMaskGroundediceLevelsetEnum,MaskGroundediceLevelsetEnum);
-		if(dim==2)InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
+		if(isgroundingline) InputDuplicatex(femmodel,QmuMaskGroundediceLevelsetEnum,MaskGroundediceLevelsetEnum);
+		if(dim==2)InputDuplicatex(femmodel,QmuMaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
 		if(isthermal && dim==3){
 			//Update Vertex Position after updating Thickness and Bed
 			femmodel->SetCurrentConfiguration(MasstransportAnalysisEnum);
 			femmodel->UpdateVertexPositionsx();
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVxMeshEnum,VxMeshEnum);
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVyMeshEnum,VyMeshEnum);
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVzMeshEnum,VzMeshEnum);
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuTemperatureEnum,TemperatureEnum);
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMeltingEnum,BasalforcingsMeltingRateEnum);
-			InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMaterialsRheologyBEnum,MaterialsRheologyBEnum);
+			InputDuplicatex(femmodel,QmuVxMeshEnum,VxMeshEnum);
+			InputDuplicatex(femmodel,QmuVyMeshEnum,VyMeshEnum);
+			InputDuplicatex(femmodel,QmuVzMeshEnum,VzMeshEnum);
+			InputDuplicatex(femmodel,QmuTemperatureEnum,TemperatureEnum);
+			InputDuplicatex(femmodel,QmuMeltingEnum,BasalforcingsMeltingRateEnum);
+			InputDuplicatex(femmodel,QmuMaterialsRheologyBEnum,MaterialsRheologyBEnum);
 			//Reset Thermal Constraints
 			femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16218)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16219)
@@ -2426,22 +2426,9 @@
 
 	/*Intermediaries*/
-	int        i;
-	IssmDouble nodeinputs[3];
-	IssmDouble yts;
-	int        progstabilization,balancestabilization;
-	int        fe_ssa;
-	bool       dakota_analysis;
-	int        numnodes;
-	int*       tria_node_ids = NULL;
+	int  numnodes;
+	int* tria_node_ids = NULL;
 
 	/*Checks if debuging*/
 	_assert_(iomodel->elements);
-
-	/*Fetch parameters: */
-	iomodel->Constant(&yts,ConstantsYtsEnum);
-	iomodel->Constant(&progstabilization,MasstransportStabilizationEnum);
-	iomodel->Constant(&balancestabilization,BalancethicknessStabilizationEnum);
-	iomodel->Constant(&fe_ssa,FlowequationFeSSAEnum);
-	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
 
 	/*Recover element type*/
@@ -2492,5 +2479,4 @@
 	/*Fill with IoModel*/
 	this->InputUpdateFromIoModel(index,iomodel);
-
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.cpp	(revision 16218)
+++ /issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.cpp	(revision 16219)
@@ -8,14 +8,13 @@
 #include "../../toolkits/toolkits.h"
 
-void InputDuplicatex(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters,int original_enum, int new_enum){
+void InputDuplicatex(FemModel* femmodel,int original_enum, int new_enum){
 
 	/*Go through elemnets, and ask to reinitialie the input: */
-	int      i;
-	for(i=0;i<elements->Size();i++){
-		Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
+	for(int i=0;i<femmodel->elements->Size();i++){
+		Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));
 		element->InputDuplicate(original_enum,new_enum);
 	}
-	for(i=0;i<materials->Size();i++){
-		Material* material=(Material*)materials->GetObjectByOffset(i);
+	for(int i=0;i<femmodel->materials->Size();i++){
+		Material* material=(Material*)femmodel->materials->GetObjectByOffset(i);
 		material->InputDuplicate(original_enum,new_enum);
 	}
Index: /issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.h
===================================================================
--- /issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.h	(revision 16218)
+++ /issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.h	(revision 16219)
@@ -9,5 +9,5 @@
 
 /* local prototypes: */
-void InputDuplicatex(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters,int reinitialized_enum, int original_enum);
+void InputDuplicatex(FemModel* femmodel,int reinitialized_enum, int original_enum);
 
 #endif  /* _INPUTDUPLICATEX_H */
