Index: /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 23719)
+++ /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 23720)
@@ -478,21 +478,19 @@
 					}
 				}
-				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;
-							values=xNew<IssmDouble>(N);
-							spcpresent=false;
-							for(j=0;j<N;j++){
-								values[j]=(spcdata[v1*N+j]+spcdata[v2*N+j])/2.;
-								if(!xIsNan<IssmDouble>(values[j])) spcpresent=true; //NaN means no spc by default
-							}
-							if(spcpresent){
-								constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+i+1,dof,N,times,values,analysis_type));
-								count++;
-							}
-							xDelete<IssmDouble>(values);
-						}
+				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;
+						values=xNew<IssmDouble>(N);
+						spcpresent=false;
+						for(j=0;j<N;j++){
+							values[j]=(spcdata[v1*N+j]+spcdata[v2*N+j])/2.;
+							if(!xIsNan<IssmDouble>(values[j])) spcpresent=true; //NaN means no spc by default
+						}
+						if(spcpresent){
+							constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+i+1,dof,N,times,values,analysis_type));
+							count++;
+						}
+						xDelete<IssmDouble>(values);
 					}
 				}
@@ -517,30 +515,28 @@
 					}
 				}
-				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;
-							values=xNew<IssmDouble>(N);
-							spcpresent=false;
-							for(j=0;j<N;j++){
-								values[j]=2./3.*spcdata[v1*N+j]+1./3.*spcdata[v2*N+j];
-								if(!xIsNan<IssmDouble>(values[j])) spcpresent=true; //NaN means no spc by default
-							}
-							if(spcpresent){
-								constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+2*i+1,dof,N,times,values,analysis_type));
-								count++;
-							}
-							spcpresent=false;
-							for(j=0;j<N;j++){
-								values[j]=1./3.*spcdata[v1*N+j]+2./3.*spcdata[v2*N+j];
-								  if(!xIsNan<IssmDouble>(values[j])) spcpresent=true; //NaN means no spc by default
-							}
-							if(spcpresent){
-								constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+2*i+2,dof,N,times,values,analysis_type));
-								count++;
-							}
-							xDelete<IssmDouble>(values);
-						}
+				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;
+						values=xNew<IssmDouble>(N);
+						spcpresent=false;
+						for(j=0;j<N;j++){
+							values[j]=2./3.*spcdata[v1*N+j]+1./3.*spcdata[v2*N+j];
+							if(!xIsNan<IssmDouble>(values[j])) spcpresent=true; //NaN means no spc by default
+						}
+						if(spcpresent){
+							constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+2*i+1,dof,N,times,values,analysis_type));
+							count++;
+						}
+						spcpresent=false;
+						for(j=0;j<N;j++){
+							values[j]=1./3.*spcdata[v1*N+j]+2./3.*spcdata[v2*N+j];
+							if(!xIsNan<IssmDouble>(values[j])) spcpresent=true; //NaN means no spc by default
+						}
+						if(spcpresent){
+							constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+2*i+2,dof,N,times,values,analysis_type));
+							count++;
+						}
+						xDelete<IssmDouble>(values);
 					}
 				}
