Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 25953)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 25954)
@@ -14,4 +14,5 @@
 #include "../shared/io/io.h"
 #include "./classes.h"
+#include "./Inputs/TriaInput.h"
 #include "./modules/modules.h"
 #include "../shared/Enum/Enum.h"
@@ -2112,4 +2113,59 @@
 
 }/*}}}*/
+void FemModel::MmeToInputFromId(int id, int rootenum, int interpolationenum){ /*{{{*/
+
+	TransientInput* transientinput  = NULL;
+	TransientInput* transientinput2 = NULL;
+	Tria* element                    = NULL;
+	IssmDouble value;
+	IssmDouble* values               = NULL;
+	IssmDouble* times                = NULL;
+	int N;
+
+	/*find thickness dataset: */
+	DatasetInput* datasetinput = this->inputs->GetDatasetInput(rootenum);
+
+	/*Initialize new transient input: */
+	transientinput = datasetinput->GetTransientInputByOffset(0); _assert_(transientinput);
+	transientinput->GetAllTimes(&times,&N);
+	this->inputs->SetTransientInput(DummyEnum,times,N);
+	transientinput2 = this->inputs->GetTransientInput(DummyEnum);
+
+	for(Object* & object : this->elements->objects){
+		Tria*   element=xDynamicCast<Tria*>(object);
+
+		/*recover the right field from the mme: */
+		transientinput = datasetinput->GetTransientInputByOffset(id); _assert_(transientinput);
+
+		/*copy values from the transientinput to the final transientinput2: */
+		for (int j=0;j<N;j++){
+			TriaInput* tria_input=transientinput->GetTriaInput(j);
+			element->InputServe(tria_input);
+			if(interpolationenum==P0Enum){
+				value=tria_input->element_values[0];
+				transientinput2->AddTriaTimeInput( j,1,&(element->lid),&value,P0Enum);
+			}
+			else if(interpolationenum==P1Enum){
+
+				/*Get values and lid list*/
+				const int   numvertices     = element->GetNumberOfVertices();
+				int        *vertexlids      = xNew<int>(numvertices);
+				int        *vertexsids      = xNew<int>(numvertices);
+
+				/*Recover vertices ids needed to initialize inputs*/
+				element->GetVerticesLidList(&vertexlids[0]);
+				element->GetVerticesSidList(&vertexsids[0]);
+				values=tria_input->element_values;
+				transientinput2->AddTriaTimeInput( j,numvertices,vertexlids,values,P1Enum);
+			}
+		}
+	}
+
+	/*wipe out existing SurfaceloadIceThicknessChangeEnum dataset:*/
+	this->inputs->ChangeEnum(DummyEnum,rootenum);
+
+	//reconfigure:
+	transientinput2->Configure(this->parameters);
+}	//}}}
 void FemModel::OmegaAbsGradientx( IssmDouble* pJ){/*{{{*/
 
Index: /issm/trunk-jpl/src/c/classes/FemModel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 25953)
+++ /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 25954)
@@ -130,4 +130,5 @@
 		void MinVyx(IssmDouble* presponse);
 		void MinVzx(IssmDouble* presponse);
+		void MmeToInputFromId(int id, int rootenum, int interpolationenum);
 		void DistanceToFieldValue(int fieldenum,IssmDouble fieldvalue,int distanceenum);
 		void ResetLevelset();
Index: /issm/trunk-jpl/src/c/cores/sealevelchange_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/sealevelchange_core.cpp	(revision 25953)
+++ /issm/trunk-jpl/src/c/cores/sealevelchange_core.cpp	(revision 25954)
@@ -146,11 +146,9 @@
 		femmodel->parameters->FindParam(&modelid,SolidearthExternalModelidEnum);
 		/*replace dataset of forcings with only one, the modelid'th:*/
-		printf("-------------- file: sealevelchange_core.cpp line: %i\n",__LINE__); 
-		printf("TEMPORARY FIX: uncomment lines below!\n");
-		//MmeToInputFromId(femmodel,modelid,SolidearthExternalDisplacementNorthRateEnum, P1Enum);
-		//MmeToInputFromId(femmodel,modelid,SolidearthExternalDisplacementEastRateEnum, P1Enum);
-		//MmeToInputFromId(femmodel,modelid,SolidearthExternalDisplacementUpRateEnum, P1Enum);
-		//MmeToInputFromId(femmodel,modelid,SolidearthExternalGeoidRateEnum, P1Enum);
-		//MmeToInputFromId(femmodel,modelid,SolidearthExternalBarystaticSeaLevelRateEnum, P1Enum);
+		femmodel->MmeToInputFromId(modelid,SolidearthExternalDisplacementNorthRateEnum, P1Enum);
+		femmodel->MmeToInputFromId(modelid,SolidearthExternalDisplacementEastRateEnum, P1Enum);
+		femmodel->MmeToInputFromId(modelid,SolidearthExternalDisplacementUpRateEnum, P1Enum);
+		femmodel->MmeToInputFromId(modelid,SolidearthExternalGeoidRateEnum, P1Enum);
+		femmodel->MmeToInputFromId(modelid,SolidearthExternalBarystaticSeaLevelRateEnum, P1Enum);
 	}
 	
Index: /issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp	(revision 25953)
+++ /issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp	(revision 25954)
@@ -265,59 +265,4 @@
 	transientinput2->Configure(femmodel->parameters);
 }	//}}}
-void  MmeToInputFromId(FemModel* femmodel,int id, int rootenum, int interpolationenum){ /*{{{*/
-
-	TransientInput* transientinput  = NULL;
-	TransientInput* transientinput2 = NULL;
-	Tria* element                    = NULL;
-	IssmDouble value;
-	IssmDouble* values               = NULL;
-	IssmDouble* times                = NULL;
-	int N;
-
-	/*find thickness dataset: */
-	DatasetInput* datasetinput = femmodel->inputs->GetDatasetInput(rootenum);
-
-	/*Initialize new transient input: */
-	transientinput = datasetinput->GetTransientInputByOffset(0); _assert_(transientinput);
-	transientinput->GetAllTimes(&times,&N);
-	femmodel->inputs->SetTransientInput(DummyEnum,times,N);
-	transientinput2 = femmodel->inputs->GetTransientInput(DummyEnum);
-
-	for(Object* & object : femmodel->elements->objects){
-		Tria*   element=xDynamicCast<Tria*>(object);
-
-		/*recover the right field from the mme: */
-		transientinput = datasetinput->GetTransientInputByOffset(id); _assert_(transientinput);
-
-		/*copy values from the transientinput to the final transientinput2: */
-		for (int j=0;j<N;j++){
-			TriaInput* tria_input=transientinput->GetTriaInput(j);
-			element->InputServe(tria_input);
-			if(interpolationenum==P0Enum){
-				value=tria_input->element_values[0];
-				transientinput2->AddTriaTimeInput( j,1,&(element->lid),&value,P0Enum);
-			}
-			else if(interpolationenum==P1Enum){
-
-				/*Get values and lid list*/
-				const int   numvertices     = element->GetNumberOfVertices();
-				int        *vertexlids      = xNew<int>(numvertices);
-				int        *vertexsids      = xNew<int>(numvertices);
-
-				/*Recover vertices ids needed to initialize inputs*/
-				element->GetVerticesLidList(&vertexlids[0]);
-				element->GetVerticesSidList(&vertexsids[0]);
-				values=tria_input->element_values;
-				transientinput2->AddTriaTimeInput( j,numvertices,vertexlids,values,P1Enum);
-			}
-		}
-	}
-
-	/*wipe out existing SurfaceloadIceThicknessChangeEnum dataset:*/
-	femmodel->inputs->ChangeEnum(DummyEnum,rootenum);
-
-	//reconfigure:
-	transientinput2->Configure(femmodel->parameters);
-}	//}}}
 void  InputScaleFromDakotax(FemModel* femmodel,IssmDouble* distributed_values,IssmDouble* partition, int npart, int nt, int name){ /*{{{*/
 
Index: /issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.h
===================================================================
--- /issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.h	(revision 25953)
+++ /issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.h	(revision 25954)
@@ -11,5 +11,4 @@
 void  InputUpdateSpecialtyCode(FemModel* femmodel,IssmDouble* distributed_values,IssmDouble* variable_partition,int npart,char* root);
 void  MmeToInput(FemModel* femmodel,IssmDouble* distributed_values,IssmDouble* variable_partition,int npart,int rootenum, int interpolationenum);
-void  MmeToInputFromId(FemModel* femmodel,int id, int rootenum, int interpolationenum);
 void InputScaleFromDakotax(FemModel* femmodel,IssmDouble* distributed_values,IssmDouble* partition, int npart, int nt, int name);
 
