Index: /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp	(revision 26369)
+++ /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp	(revision 26370)
@@ -18,10 +18,10 @@
 }
 /*}}}*/
-SpcDynamic::SpcDynamic(int spc_id,int spc_nodeid, int spc_dof,int spc_analysis_type){/*{{{*/
+SpcDynamic::SpcDynamic(int spc_id,int spc_nodeid, int spc_dof,IssmDouble value_in,int spc_analysis_type){/*{{{*/
 
 	id           = spc_id;
 	nodeid        = spc_nodeid;
 	dof           = spc_dof;
-	value         = 0;
+	value         = value_in;
 	analysis_type = spc_analysis_type;
 	isset         = false;
Index: /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.h	(revision 26369)
+++ /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.h	(revision 26370)
@@ -26,5 +26,5 @@
 		/*SpcDynamic constructors, destructors*/
 		SpcDynamic();
-		SpcDynamic(int id_in,int nodeid, int dof,int analysis_type);
+		SpcDynamic(int id_in,int nodeid, int dof,IssmDouble value_in,int analysis_type);
 		~SpcDynamic();
 
Index: /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 26369)
+++ /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 26370)
@@ -666,5 +666,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcDynamic(count+1,i+1,dof,analysis_type));
+							constraints->AddObject(new SpcDynamic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -676,19 +676,16 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcDynamic(count+1,i+1,dof,analysis_type));
-							count++;
-						}
-					}
-				}
-				for(i=0;i<iomodel->numberofedges;i++){
-					if(iomodel->edges[i*3+2]==2){
-						if(iomodel->my_edges[i]){
-							v1 = iomodel->edges[3*i+0]-1;
-							v2 = iomodel->edges[3*i+1]-1;
-							if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-								constraints->AddObject(new SpcDynamic(count+1,iomodel->numberofvertices+i+1,
-												dof,analysis_type));
-								count++;
-							}
+							constraints->AddObject(new SpcDynamic(count+1,i+1,dof,spcdata[i],analysis_type));
+							count++;
+						}
+					}
+				}
+				for(i=0;i<iomodel->numberofverticaledges;i++){
+					if(iomodel->my_vedges[i]){
+						v1 = iomodel->verticaledges[2*i+0]-1;
+						v2 = iomodel->verticaledges[2*i+1]-1;
+						if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
+							constraints->AddObject(new SpcDynamic(count+1,iomodel->numberofvertices+i+1,dof,(spcdata[v1]+spcdata[v2])/2.,analysis_type));
+							count++;
 						}
 					}
@@ -699,19 +696,19 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcDynamic(count+1,i+1,dof,analysis_type));
-							count++;
-						}
-					}
-				}
-				for(i=0;i<iomodel->numberofedges;i++){
-					if(iomodel->edges[i*3+2]==2){
-						if(iomodel->my_edges[i]){
-							v1 = iomodel->edges[3*i+0]-1;
-							v2 = iomodel->edges[3*i+1]-1;
-							if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-								constraints->AddObject(new SpcDynamic(count+1,iomodel->numberofvertices+2*i+1,dof,analysis_type));
-								constraints->AddObject(new SpcDynamic(count+2,iomodel->numberofvertices+2*i+2,dof,analysis_type));
-								count=count+2;
-							}
+							constraints->AddObject(new SpcDynamic(count+1,i+1,dof,spcdata[i],analysis_type));
+							count++;
+						}
+					}
+				}
+				for(i=0;i<iomodel->numberofverticaledges;i++){
+					if(iomodel->my_vedges[i]){
+						v1 = iomodel->verticaledges[2*i+0]-1;
+						v2 = iomodel->verticaledges[2*i+1]-1;
+						if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
+							constraints->AddObject(new SpcDynamic(count+1,iomodel->numberofvertices+2*i+1,
+											dof,2./3.*spcdata[v1]+1./3.*spcdata[v2],analysis_type));
+							constraints->AddObject(new SpcDynamic(count+2,iomodel->numberofvertices+2*i+2,
+											dof,1./3.*spcdata[v1]+2./3.*spcdata[v2],analysis_type));
+							count=count+2;
 						}
 					}
