Index: /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp	(revision 15372)
+++ /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp	(revision 15373)
@@ -33,7 +33,9 @@
 /*}}}*/
 /*FUNCTION Numericalflux::Numericalflux(int id, int i, IoModel* iomodel, int analysis_type) {{{*/
-Numericalflux::Numericalflux(int numericalflux_id,int i,int i1,int i2,int e1,int e2,IoModel* iomodel, int in_analysis_type){
+Numericalflux::Numericalflux(int numericalflux_id,int i, IoModel* iomodel, int in_analysis_type){
 
 	/* Intermediary */
+	int  e1,e2;
+	int  i1,i2;
 	int  j;
 	int  pos1,pos2,pos3,pos4;
@@ -57,7 +59,10 @@
 
 	/*First, see wether this is an internal or boundary edge (if e2=-1)*/
-	if(e2==-1){
+	if (iomodel->Data(MeshEdgesEnum)[4*i+3]==-1.){ //edges are [node1 node2 elem1 elem2]
 		/* Boundary edge, only one element */
-		num_elems=1; num_nodes=2;
+		e1=reCast<int>(iomodel->Data(MeshEdgesEnum)[4*i+2]);
+		e2=reCast<int>(UNDEF);
+		num_elems=1;
+		num_nodes=2;
 		numericalflux_type=BoundaryEnum;
 		numericalflux_elem_ids[0]=e1;
@@ -65,5 +70,8 @@
 	else{
 		/* internal edge: connected to 2 elements */
-		num_elems=2; num_nodes=4;
+		e1=reCast<int>(iomodel->Data(MeshEdgesEnum)[4*i+2]);
+		e2=reCast<int>(iomodel->Data(MeshEdgesEnum)[4*i+3]);
+		num_elems=2;
+		num_nodes=4;
 		numericalflux_type=InternalEnum;
 		numericalflux_elem_ids[0]=e1;
@@ -72,4 +80,6 @@
 
 	/*1: Get vertices ids*/
+	i1=reCast<int>(iomodel->Data(MeshEdgesEnum)[4*i+0]);
+	i2=reCast<int>(iomodel->Data(MeshEdgesEnum)[4*i+1]);
 	numericalflux_vertex_ids[0]=i1;
 	numericalflux_vertex_ids[1]=i2;
@@ -83,8 +93,8 @@
 		pos1=pos2=pos3=pos4=UNDEF;
 		for(j=0;j<3;j++){
-			if(iomodel->Data(MeshElementsEnum)[3*(e1-1)+j]==i1) pos1=j+1;
-			if(iomodel->Data(MeshElementsEnum)[3*(e1-1)+j]==i2) pos2=j+1;
-			if(iomodel->Data(MeshElementsEnum)[3*(e2-1)+j]==i1) pos3=j+1;
-			if(iomodel->Data(MeshElementsEnum)[3*(e2-1)+j]==i2) pos4=j+1;
+			if (iomodel->Data(MeshElementsEnum)[3*(e1-1)+j]==i1) pos1=j+1;
+			if (iomodel->Data(MeshElementsEnum)[3*(e1-1)+j]==i2) pos2=j+1;
+			if (iomodel->Data(MeshElementsEnum)[3*(e2-1)+j]==i1) pos3=j+1;
+			if (iomodel->Data(MeshElementsEnum)[3*(e2-1)+j]==i2) pos4=j+1;
 		}
 		_assert_(pos1!=UNDEF && pos2!=UNDEF && pos3!=UNDEF && pos4!=UNDEF);
@@ -102,6 +112,6 @@
 		pos1=pos2=UNDEF;
 		for(j=0;j<3;j++){
-			if(iomodel->Data(MeshElementsEnum)[3*(e1-1)+j]==i1) pos1=j+1;
-			if(iomodel->Data(MeshElementsEnum)[3*(e1-1)+j]==i2) pos2=j+1;
+			if (iomodel->Data(MeshElementsEnum)[3*(e1-1)+j]==i1) pos1=j+1;
+			if (iomodel->Data(MeshElementsEnum)[3*(e1-1)+j]==i2) pos2=j+1;
 		}
 		_assert_(pos1!=UNDEF && pos2!=UNDEF);
Index: /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.h	(revision 15372)
+++ /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.h	(revision 15373)
@@ -37,5 +37,5 @@
 		/*Numericalflux constructors,destructors {{{*/
 		Numericalflux();
-		Numericalflux(int numericalflux_id,int i,int i1,int i2,int e1,int e2,IoModel* iomodel,int analysis_type);
+		Numericalflux(int numericalflux_id,int i, IoModel* iomodel,int analysis_type);
 		~Numericalflux();
 		/*}}}*/
