Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 1853)
+++ /issm/trunk/src/c/Makefile.am	(revision 1854)
@@ -21,4 +21,6 @@
 					./objects/Element.h\
 					./objects/Element.cpp\
+					./objects/Model.h\
+					./objects/Model.cpp\
 					./objects/Material.h\
 					./objects/Material.cpp\
@@ -167,5 +169,5 @@
 					./io/ParallelFetchScalar.cpp\
 					./io/ParallelFetchString.cpp\
-					./io/ModelFetchData.cpp\
+					./io/IoModelFetchData.cpp\
 					./io/WriteNodeSets.cpp\
 					./io/WriteParams.cpp\
@@ -177,6 +179,6 @@
 					./EnumDefinitions/EnumDefinitions.cpp\
 					./EnumDefinitions/AnalysisTypeAsEnum.cpp\
-					./ModelProcessorx/Model.h\
-					./ModelProcessorx/Model.cpp\
+					./ModelProcessorx/IoModel.h\
+					./ModelProcessorx/IoModel.cpp\
 					./ModelProcessorx/CreateDataSets.cpp\
 					./ModelProcessorx/CreateParameters.cpp\
@@ -314,4 +316,6 @@
 					./objects/Element.h\
 					./objects/Element.cpp\
+					./objects/Model.h\
+					./objects/Model.cpp\
 					./objects/Material.h\
 					./objects/Material.cpp\
@@ -458,5 +462,5 @@
 					./io/ParallelFetchScalar.cpp\
 					./io/ParallelFetchString.cpp\
-					./io/ModelFetchData.cpp\
+					./io/IoModelFetchData.cpp\
 					./io/WriteNodeSets.cpp\
 					./io/WriteParams.cpp\
@@ -468,6 +472,6 @@
 					./EnumDefinitions/EnumDefinitions.cpp\
 					./EnumDefinitions/AnalysisTypeAsEnum.cpp\
-					./ModelProcessorx/Model.h\
-					./ModelProcessorx/Model.cpp\
+					./ModelProcessorx/IoModel.h\
+					./ModelProcessorx/IoModel.cpp\
 					./ModelProcessorx/CreateDataSets.cpp\
 					./ModelProcessorx/CreateParameters.cpp\
@@ -601,6 +605,5 @@
 					./parallel/transient_core_3d.cpp\
 					./parallel/thermalstatic_core.cpp\
-					./parallel/OutputResults.cpp\
-					./parallel/OutputControl.cpp
+					./parallel/OutputResults.cpp
 
 libpISSM_a_CXXFLAGS = -fPIC -D_PARALLEL_   -D_C_
Index: /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp	(revision 1853)
+++ /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp	(revision 1854)
@@ -211,10 +211,10 @@
 		;
 	/*numrifts: */
-	ModelFetchData((void**)&model->riftinfo,&model->numrifts,NULL,model_handle,"riftinfo","Matrix","Mat");
+	IoModelFetchData((void**)&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,"riftinfo","Matrix","Mat");
 	count++;
 	param= new Param(count,"numrifts",INTEGER);
-	param->SetInteger(model->numrifts);
-	parameters->AddObject(param);
-	xfree((void**)&model->riftinfo); 
+	param->SetInteger(iomodel->numrifts);
+	parameters->AddObject(param);
+	xfree((void**)&iomodel->riftinfo); 
 	
 	/*All our datasets are already ordered by ids. Set presort flag so that later on, when sorting is requested on these 
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 1853)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 1854)
@@ -55,4 +55,5 @@
 	double riftfront_friction;
 	double riftfront_fraction;
+	double riftfront_fractionincrement;
 	bool   riftfront_shelf;
 	double riftfront_penalty_offset;
@@ -68,4 +69,5 @@
 	double friction;
 	double fraction;
+	double fractionincrement;
 	
 	/*Create loads: */
@@ -186,5 +188,5 @@
 			friction=*(iomodel->riftinfo+RIFTINFOSIZE*i+8);
 			fraction=*(iomodel->riftinfo+RIFTINFOSIZE*i+9);
-			fractionincrement=*(model->riftinfo+RIFTINFOSIZE*i+10);
+			fractionincrement=*(iomodel->riftinfo+RIFTINFOSIZE*i+10);
 	
 			strcpy(riftfront_type,"2d");
@@ -211,5 +213,5 @@
 			riftfront_fraction=fraction;
 			riftfront_fractionincrement=fractionincrement;
-			riftfront_shelf=(bool)model->gridoniceshelf[grid1-1];
+			riftfront_shelf=(bool)iomodel->gridoniceshelf[grid1-1];
 
 			riftfront_penalty_offset=iomodel->penalty_offset;
@@ -220,5 +222,5 @@
 			riftfront_prestable=0;
 			
-			riftfront=new Riftfront(riftfront_type,riftfront_id, riftfront_node_ids, riftfront_mparid, riftfront_h,riftfront_b,riftfront_s,riftfront_normal,riftfront_length,riftfront_fill,riftfront_friction, riftfront_fraction, riftfront_penalty_offset, riftfront_penalty_lock, riftfront_active,riftfront_counter,riftfront_prestable,riftfront_shelf);
+			riftfront=new Riftfront(riftfront_type,riftfront_id, riftfront_node_ids, riftfront_mparid, riftfront_h,riftfront_b,riftfront_s,riftfront_normal,riftfront_length,riftfront_fill,riftfront_friction, riftfront_fraction, riftfront_fractionincrement, riftfront_penalty_offset, riftfront_penalty_lock, riftfront_active,riftfront_counter,riftfront_prestable,riftfront_shelf);
 
 			loads->AddObject(riftfront);
Index: /issm/trunk/src/c/parallel/ControlInitialization.cpp
===================================================================
--- /issm/trunk/src/c/parallel/ControlInitialization.cpp	(revision 1853)
+++ /issm/trunk/src/c/parallel/ControlInitialization.cpp	(revision 1854)
@@ -97,5 +97,5 @@
 	//horizontal velocity
 	if(debug)_printf_("%s\n"," computing horizontal velocities...");
-	diagnostic_core_nonlinear(&ug,NULL,NULL,fem_dh,inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+	diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_dh,inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
 	if(debug)_printf_("%s\n"," extruding horizontal velocities...");
 	VecDuplicatePatch(&ug_horiz,ug); FieldExtrudex( ug_horiz,fem_dh->elements,fem_dh->nodes, fem_dh->loads,fem_dh-> materials,"velocity",1);
Index: /issm/trunk/src/c/parallel/objectivefunctionC.cpp
===================================================================
--- /issm/trunk/src/c/parallel/objectivefunctionC.cpp	(revision 1853)
+++ /issm/trunk/src/c/parallel/objectivefunctionC.cpp	(revision 1854)
@@ -90,5 +90,5 @@
 	if(!thermalstatic){
 		//Run diagnostic with updated parameters.
-		diagnostic_core_nonlinear(&u_g,NULL,NULL,femmodel,inputs,DiagnosticAnalysisEnum(),sub_analysis_type);
+		diagnostic_core_nonlinear(&u_g,NULL,NULL,NULL,femmodel,inputs,DiagnosticAnalysisEnum(),sub_analysis_type);
 		VecToMPISerial(&u_g_double,u_g); VecFree(&u_g);
 	}
Index: /issm/trunk/src/c/parallel/parallel.h
===================================================================
--- /issm/trunk/src/c/parallel/parallel.h	(revision 1853)
+++ /issm/trunk/src/c/parallel/parallel.h	(revision 1854)
@@ -20,5 +20,5 @@
 void thermalstatic_core(DataSet* results,Model* model, ParameterInputs* inputs);
 
-void diagnostic_core_nonlinear(Vec* pug,Mat* pK_ff0,Mat* pK_fs0, FemModel* fem,ParameterInputs* inputs,int analysis_type,int sub_analysis_type);
+void diagnostic_core_nonlinear(Vec* pug,Mat* pK_ff0,Mat* pK_fs0, DataSet* loads, FemModel* fem,ParameterInputs* inputs,int analysis_type,int sub_analysis_type);
 void diagnostic_core_linear(Vec* ppg,FemModel* fem,ParameterInputs* inputs,int  analysis_type,int sub_analysis_type);
 void convergence(int* pconverged, Mat K_ff,Vec p_f,Vec u_f,Vec u_f_old,DataSet* parameters);
