Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp	(revision 3691)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp	(revision 3692)
@@ -42,4 +42,6 @@
 		IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
 		IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+		IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+		IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 		
 		for (i=0;i<iomodel->numberofelements;i++){
@@ -62,4 +64,6 @@
 		xfree((void**)&iomodel->elementoniceshelf);
 		xfree((void**)&iomodel->elementonwater);
+		xfree((void**)&iomodel->vx);
+		xfree((void**)&iomodel->vy);
 
 	}
@@ -75,4 +79,6 @@
 		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
 		IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+		IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+		IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 	
 		for (i=0;i<iomodel->numberofelements;i++){
@@ -95,4 +101,6 @@
 		xfree((void**)&iomodel->elementonsurface);
 		xfree((void**)&iomodel->elementonwater);
+		xfree((void**)&iomodel->vx);
+		xfree((void**)&iomodel->vy);
 
 	} //if (strcmp(meshtype,"2d")==0)
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp	(revision 3691)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp	(revision 3692)
@@ -46,4 +46,6 @@
 		IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
 		IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+		IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+		IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 		
 		for (i=0;i<iomodel->numberofelements;i++){
@@ -65,4 +67,6 @@
 		xfree((void**)&iomodel->elementoniceshelf);
 		xfree((void**)&iomodel->elementonwater);
+		xfree((void**)&iomodel->vx);
+		xfree((void**)&iomodel->vy);
 
 	}
Index: /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp	(revision 3691)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp	(revision 3692)
@@ -42,4 +42,6 @@
 		IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
 		IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+		IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+		IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 		
 		for (i=0;i<iomodel->numberofelements;i++){
@@ -64,4 +66,6 @@
 		xfree((void**)&iomodel->elementoniceshelf);
 		xfree((void**)&iomodel->elementonwater);
+		xfree((void**)&iomodel->vx);
+		xfree((void**)&iomodel->vy);
 
 	}
@@ -77,4 +81,6 @@
 		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
 		IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+		IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+		IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 
 		for (i=0;i<iomodel->numberofelements;i++){
@@ -99,4 +105,6 @@
 		xfree((void**)&iomodel->elementonsurface);
 		xfree((void**)&iomodel->elementonwater);
+		xfree((void**)&iomodel->vx);
+		xfree((void**)&iomodel->vy);
 
 	} //if (strcmp(meshtype,"2d")==0)
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 3691)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 3692)
@@ -51,4 +51,11 @@
 		IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B");
 		IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n");
+		IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+		IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
+		if (iomodel->control_analysis){
+			IoModelFetchData(&iomodel->vx_obs,NULL,NULL,iomodel_handle,"vx_obs");
+			IoModelFetchData(&iomodel->vy_obs,NULL,NULL,iomodel_handle,"vy_obs");
+			IoModelFetchData(&iomodel->weights,NULL,NULL,iomodel_handle,"weights");
+		}
 		
 		for (i=0;i<iomodel->numberofelements;i++){
@@ -80,4 +87,11 @@
 		xfree((void**)&iomodel->elementoniceshelf);
 		xfree((void**)&iomodel->elementonwater);
+		xfree((void**)&iomodel->vx);
+		xfree((void**)&iomodel->vy);
+		if (iomodel->control_analysis){
+			xfree((void**)&iomodel->vx_obs);
+			xfree((void**)&iomodel->vy_obs);
+			xfree((void**)&iomodel->weights);
+		}
 		
 	}
@@ -99,4 +113,12 @@
 		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
 		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
+		IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+		IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
+		IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
+		if (iomodel->control_analysis){
+			IoModelFetchData(&iomodel->vx_obs,NULL,NULL,iomodel_handle,"vx_obs");
+			IoModelFetchData(&iomodel->vy_obs,NULL,NULL,iomodel_handle,"vy_obs");
+			IoModelFetchData(&iomodel->weights,NULL,NULL,iomodel_handle,"weights");
+		}
 	
 		for (i=0;i<iomodel->numberofelements;i++){
@@ -129,4 +151,12 @@
 		xfree((void**)&iomodel->elementonsurface);
 		xfree((void**)&iomodel->elementonwater);
+		xfree((void**)&iomodel->vx);
+		xfree((void**)&iomodel->vy);
+		xfree((void**)&iomodel->vz);
+		if (iomodel->control_analysis){
+			xfree((void**)&iomodel->vx_obs);
+			xfree((void**)&iomodel->vy_obs);
+			xfree((void**)&iomodel->weights);
+		}
 
 
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 3691)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 3692)
@@ -55,4 +55,13 @@
 	IoModelFetchData(&iomodel->melting_rate,NULL,NULL,iomodel_handle,"melting_rate");
 	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
+	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
+	
+	if (iomodel->control_analysis){
+		IoModelFetchData(&iomodel->vx_obs,NULL,NULL,iomodel_handle,"vx_obs");
+		IoModelFetchData(&iomodel->vy_obs,NULL,NULL,iomodel_handle,"vy_obs");
+		IoModelFetchData(&iomodel->weights,NULL,NULL,iomodel_handle,"weights");
+	}
 
 	for (i=0;i<iomodel->numberofelements;i++){
@@ -88,5 +97,12 @@
 	xfree((void**)&iomodel->accumulation_rate);
 	xfree((void**)&iomodel->melting_rate);
-	xfree((void**)&iomodel->elementonwater);
+	xfree((void**)&iomodel->vx);
+	xfree((void**)&iomodel->vy);
+	xfree((void**)&iomodel->vz);
+	if (iomodel->control_analysis){
+		xfree((void**)&iomodel->vx_obs);
+		xfree((void**)&iomodel->vy_obs);
+		xfree((void**)&iomodel->weights);
+	}
 
 	/*Add new constrant material property to materials, at the end: */
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp	(revision 3691)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp	(revision 3692)
@@ -48,4 +48,6 @@
 	IoModelFetchData(&iomodel->accumulation_rate,NULL,NULL,iomodel_handle,"accumulation_rate");
 	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 	
 	for (i=0;i<iomodel->numberofelements;i++){
@@ -75,4 +77,6 @@
 	xfree((void**)&iomodel->accumulation_rate);
 	xfree((void**)&iomodel->elementonwater);
+	xfree((void**)&iomodel->vx);
+	xfree((void**)&iomodel->vy);
 
 	/*Add new constrant material property to materials, at the end: */
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp	(revision 3691)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp	(revision 3692)
@@ -42,4 +42,6 @@
 		IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
 		IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+		IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+		IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 
 		for (i=0;i<iomodel->numberofelements;i++){
@@ -63,4 +65,6 @@
 		xfree((void**)&iomodel->elementoniceshelf);
 		xfree((void**)&iomodel->elementonwater);
+		xfree((void**)&iomodel->vx);
+		xfree((void**)&iomodel->vy);
 
 	}
@@ -76,4 +80,6 @@
 		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
 		IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+		IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+		IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 
 		for (i=0;i<iomodel->numberofelements;i++){
@@ -96,4 +102,6 @@
 		xfree((void**)&iomodel->elementonsurface);
 		xfree((void**)&iomodel->elementonwater);
+		xfree((void**)&iomodel->vx);
+		xfree((void**)&iomodel->vy);
 
 	} //if (strcmp(meshtype,"2d")==0)
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp	(revision 3691)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp	(revision 3692)
@@ -46,4 +46,6 @@
 		IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
 		IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+		IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+		IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 		
 		for (i=0;i<iomodel->numberofelements;i++){
@@ -65,4 +67,6 @@
 		xfree((void**)&iomodel->elementoniceshelf);
 		xfree((void**)&iomodel->elementonwater);
+		xfree((void**)&iomodel->vx);
+		xfree((void**)&iomodel->vy);
 
 	}
Index: /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp	(revision 3691)
+++ /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp	(revision 3692)
@@ -48,4 +48,6 @@
 	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n");
 	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 	
 	for (i=0;i<iomodel->numberofelements;i++){
@@ -76,4 +78,6 @@
 	xfree((void**)&iomodel->rheology_B);
 	xfree((void**)&iomodel->elementonwater);
+	xfree((void**)&iomodel->vx);
+	xfree((void**)&iomodel->vy);
 
 	/*Add new constrant material property tgo materials, at the end: */
