Index: /issm/trunk/src/c/parallel/transient_core_2d.cpp
===================================================================
--- /issm/trunk/src/c/parallel/transient_core_2d.cpp	(revision 1816)
+++ /issm/trunk/src/c/parallel/transient_core_2d.cpp	(revision 1817)
@@ -13,5 +13,5 @@
 #include "../issm.h"
 
-void transient_core_2d(DataSet* results,FemModel* fems, ParameterInputs* inputs){
+void transient_core_2d(DataSet* results,Model* model, ParameterInputs* inputs){
 
 	extern int my_rank;
@@ -64,10 +64,11 @@
 
 	/*recover fem models: */
-	fem_dh=fems+0;
-	fem_dv=fems+1;
-	fem_ds=fems+2;
-	fem_dhu=fems+3;
-	fem_sl=fems+4;
-	fem_p=fems+5;
+	fem_dh=model->DiagnosticHorizontal();
+	fem_dv=model->DiagnosticVertical();
+	fem_ds=model->DiagnosticStokes();
+	fem_dhu=model->DiagnosticHutter();
+	fem_sl=model->Slope();
+	fem_p=model->Prognostic();
+
 
 	//first recover parameters common to all solutions
@@ -120,5 +121,5 @@
 		_printf_("%s\n","computing new velocity");
 		diagnostic_results=new DataSet(ResultsEnum()); 
-		diagnostic_core(diagnostic_results,fems, inputs);
+		diagnostic_core(diagnostic_results,model, inputs);
 
 		//extract u_g and p_g from diagnostic_results, and erase diagnostic_results;
@@ -132,5 +133,5 @@
 		inputs->Add("velocity",u_g,2,numberofnodes);
 		prognostic_results=new DataSet(ResultsEnum()); 
-		prognostic_core(prognostic_results,fem_p, inputs);
+		prognostic_core(prognostic_results,model, inputs);
 	
 		//extract h_g prognostic_results, and erase prognostic_results;
Index: /issm/trunk/src/c/parallel/transient_core_3d.cpp
===================================================================
--- /issm/trunk/src/c/parallel/transient_core_3d.cpp	(revision 1816)
+++ /issm/trunk/src/c/parallel/transient_core_3d.cpp	(revision 1817)
@@ -13,5 +13,5 @@
 #include "../issm.h"
 
-void transient_core_3d(DataSet* results,FemModel* fems, ParameterInputs* inputs){
+void transient_core_3d(DataSet* results,Model* model, ParameterInputs* inputs){
 
 	extern int my_rank;
@@ -70,13 +70,13 @@
 
 	/*recover fem models: */
-	fem_dh=fems+0;
-	fem_dv=fems+1;
-	fem_ds=fems+2;
-	fem_dhu=fems+3;
-	fem_sl=fems+4;
-	fem_p=fems+5;
-
-	fem_t=fems+6;
-	fem_m=fems+7;
+	fem_dh=model->DiagnosticHorizontal();
+	fem_dv=model->DiagnosticVertical();
+	fem_ds=model->DiagnosticStokes();
+	fem_dhu=model->DiagnosticHutter();
+	fem_sl=model->Slope();
+	fem_p=model->Prognostic();
+	fem_t=model->Thermal();
+	fem_m=model->Melting();
+
 
 	//first recover parameters common to all solutions
@@ -152,5 +152,5 @@
 		//Deal with velocities.
 		diagnostic_results=new DataSet(ResultsEnum()); 
-		diagnostic_core(diagnostic_results,fems, inputs);
+		diagnostic_core(diagnostic_results,model, inputs);
 
 		//extract u_g and p_g from diagnostic_results, and erase diagnostic_results;
@@ -163,5 +163,5 @@
 		
 		inputs->Add("velocity",u_g,3,numberofnodes);
-		prognostic_results=new DataSet(ResultsEnum()); prognostic_core(prognostic_results,fem_p, inputs);
+		prognostic_results=new DataSet(ResultsEnum()); prognostic_core(prognostic_results,model, inputs);
 	
 		//extract h_g prognostic_results, and erase prognostic_results;
