Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 3442)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 3443)
@@ -2,5 +2,4 @@
  * CreateConstraintsDiagnosticHoriz.c:
  */
-
 
 #include "../../DataSet/DataSet.h"
@@ -11,20 +10,8 @@
 #include "../IoModel.h"
 
-
 void	CreateConstraintsDiagnosticVert(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	int i;
-	int count;
-
 	DataSet* constraints = NULL;
-	Spc*    spc  = NULL;
-
-	/*spc intermediary data: */
-	int spc_sid;
-	int spc_node;
-	int spc_dof;
-	double spc_value;
-
-	double* spcvelocity=NULL;
 
 	/*Create constraints: */
@@ -35,33 +22,17 @@
 
 	/*Fetch data: */
-	IoModelFetchData(&spcvelocity,NULL,NULL,iomodel_handle,"spcvelocity");
-
-	count=0;
+	IoModelFetchData(&iomodel->spcvelocity,NULL,NULL,iomodel_handle,"spcvelocity");
 
 	/*Create spcs from x,y,z, as well as the spc values on those spcs: */
 	for (i=0;i<iomodel->numberofvertices;i++){
-      #ifdef _PARALLEL_
+
 		/*keep only this partition's nodes:*/
-		if((iomodel->my_grids[i]==1)){
-      #endif
+		if(iomodel->my_vertices[i]){
 
 			if ((int)spcvelocity[6*i+2]){
-
-				/*This grid needs to be spc'd to vx_obs and vy_obs:*/
-
-				spc_sid=count;
-				spc_node=i+1;
-				spc_dof=1; //we enforce first translation degree of freedom, for velocity
-				spc_value=spcvelocity[6*i+5];
-
-				spc = new Spc(spc_sid,spc_node,spc_dof,spc_value);
-				constraints->AddObject(spc);
-				count++;
+				constraints->AddObject(new Spc(count,i+1,1,*(iomodel->spcvelocity+6*i+5)/iomodel->yts)); //add count'th spc, on node i+1, setting dof 1 to vx.
 
 			}
-
-      #ifdef _PARALLEL_
 		} //if((my_grids[i]==1))
-      #endif
 	}
 
@@ -70,8 +41,6 @@
 	constraints->Presort();
 
-	cleanup_and_return:
-
 	/*Free data: */
-	xfree((void**)&spcvelocity);
+	xfree((void**)&iomodel->spcvelocity);
 	
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp	(revision 3442)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp	(revision 3443)
@@ -1,5 +1,4 @@
 /*! \file CreateLoadsDiagnosticVert.c:
  */
-
 
 #include "../../DataSet/DataSet.h"
@@ -11,5 +10,4 @@
 #include "../IoModel.h"
 
-
 void	CreateLoadsDiagnosticVert(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
@@ -19,13 +17,6 @@
 	loads   = new DataSet(LoadsEnum());
 
-	/*Now, is the iomodel running in 3d? : */
-	if (strcmp(iomodel->meshtype,"2d")==0)goto cleanup_and_return;
-
-	cleanup_and_return:
-	
 	/*Assign output pointer: */
 	*ploads=loads;
 
 }
-
-
