Index: /issm/trunk/src/c/ModelProcessorx/CreateDataSets.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/CreateDataSets.cpp	(revision 1037)
+++ /issm/trunk/src/c/ModelProcessorx/CreateDataSets.cpp	(revision 1038)
@@ -26,9 +26,37 @@
 	if (strcmp(model->analysis_type,"control")==0){
 
-		CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, model,model_handle);
-		CreateConstraintsDiagnosticHoriz(pconstraints,model,model_handle);
-		CreateLoadsDiagnosticHoriz(ploads,model,model_handle);
-		CreateParametersControl(pparameters,model,model_handle);
-					
+		if (strcmp(model->sub_analysis_type,"horiz")==0){
+
+			CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, model,model_handle);
+			CreateConstraintsDiagnosticHoriz(pconstraints,model,model_handle);
+			CreateLoadsDiagnosticHoriz(ploads,model,model_handle);
+			CreateParametersControl(pparameters,model,model_handle);
+
+		}
+		else if (strcmp(model->sub_analysis_type,"vert")==0){
+
+			CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, model,model_handle);
+			CreateConstraintsDiagnosticVert(pconstraints,model,model_handle);
+			CreateLoadsDiagnosticVert(ploads,model,model_handle);
+			CreateParametersControl(pparameters,model,model_handle);
+
+		}
+		else if (strcmp(model->sub_analysis_type,"stokes")==0){
+
+			CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, model,model_handle);
+			CreateConstraintsDiagnosticStokes(pconstraints,model,model_handle);
+			CreateLoadsDiagnosticStokes(ploads,model,model_handle);
+			CreateParametersControl(pparameters,model,model_handle);
+
+		}
+		else if (strcmp(model->sub_analysis_type,"hutter")==0){
+
+			CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, model,model_handle);
+			CreateConstraintsDiagnosticHutter(pconstraints,model,model_handle);
+			CreateLoadsDiagnosticHutter(ploads,model,model_handle);
+			CreateParametersControl(pparameters,model,model_handle);
+
+		}
+
 	}
 	else if (strcmp(model->analysis_type,"diagnostic")==0){
Index: /issm/trunk/src/c/parallel/control.cpp
===================================================================
--- /issm/trunk/src/c/parallel/control.cpp	(revision 1037)
+++ /issm/trunk/src/c/parallel/control.cpp	(revision 1038)
@@ -26,5 +26,5 @@
 
 	/*Fem models : */
-	FemModel femmodels[1];
+	FemModel femmodels[5];
 
 	/*Results: */
@@ -60,6 +60,14 @@
 
 	_printf_("read and create finite element model:\n");
-	_printf_("\n   reading diagnostic horiz model data:\n");
-	CreateFemModel(&femmodels[0],fid,"control","");
+	_printf_("\n   reading control horiz model data:\n");
+	CreateFemModel(&femmodels[0],fid,"control","horiz");
+	_printf_("\n   reading control vert model data:\n");
+	CreateFemModel(&femmodels[1],fid,"control","vert");
+	_printf_("\n   reading control stokes model data:\n");
+	CreateFemModel(&femmodels[2],fid,"control","stokes");
+	_printf_("\n   reading control hutter model data:\n");
+	CreateFemModel(&femmodels[3],fid,"control","hutter");
+	_printf_("\n   reading surface and bed slope computation model data:\n");
+	CreateFemModel(&femmodels[4],fid,"slope_compute","");
 
 	_printf_("initialize inputs:\n");
