Index: /issm/trunk-jpl/src/c/classes/gauss/GaussTria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/gauss/GaussTria.cpp	(revision 15350)
+++ /issm/trunk-jpl/src/c/classes/gauss/GaussTria.cpp	(revision 15351)
@@ -43,4 +43,5 @@
 	IssmPDouble *seg_coords  = NULL;
 	IssmPDouble *seg_weights = NULL;
+	IssmDouble  a1,b1,c1,a2,b2,c2;
 	int     i,index3;
 
@@ -55,31 +56,37 @@
 	weights=xNew<IssmDouble>(numgauss);
 
-	/*Reverse index1 and 2 if necessary*/
-	if (index1>index2){
-		index3=index1; index1=index2; index2=index3;
-		for(i=0;i<numgauss;i++) seg_coords[i]=-seg_coords[i];
+	/*Figure out coords of index1 (a1,b1,c1) and index2 (a2,b2,c2)*/
+	if(index1==0){
+		a1=1; b1=0; c1=0;
+	}
+	else if(index1==1){
+		a1=0; b1=1; c1=0;
+	}
+	else if(index1==2){
+		a1=0; b1=0; c1=1;
+	}
+	else{
+		_error_("First indice provided is not supported yet (user provided " << index1 << ")");
+	}
+	if(index2==0){
+		a2=1; b2=0; c2=0;
+	}
+	else if(index2==1){
+		a2=0; b2=1; c2=0;
+	}
+	else if(index2==2){
+		a2=0; b2=0; c2=1;
+	}
+	else{
+	 _error_("Second indice provided is not supported yet (user provided " << index2 << " )");
 	}
 
 	/*Build Triangle Gauss point*/
-	if (index1==0 && index2==1){
-		for(i=0;i<numgauss;i++) coords1[i]=  0.5*(1-seg_coords[i]);
-		for(i=0;i<numgauss;i++) coords2[i]=1-0.5*(1.-seg_coords[i]);
-		for(i=0;i<numgauss;i++) coords3[i]=0;
-		for(i=0;i<numgauss;i++) weights[i]=seg_weights[i];
-	}
-	else if (index1==0 && index2==2){
-		for(i=0;i<numgauss;i++) coords1[i]=  0.5*(1-seg_coords[i]);
-		for(i=0;i<numgauss;i++) coords2[i]= 0 ;
-		for(i=0;i<numgauss;i++) coords3[i]=1-0.5*(1.-seg_coords[i]);
-		for(i=0;i<numgauss;i++) weights[i]=seg_weights[i];
-	}
-	else if (index1==1 && index2==2){
-		for(i=0;i<numgauss;i++) coords1[i]=0;
-		for(i=0;i<numgauss;i++) coords2[i]=  0.5*(1-seg_coords[i]);
-		for(i=0;i<numgauss;i++) coords3[i]=1-0.5*(1.-seg_coords[i]);
-		for(i=0;i<numgauss;i++) weights[i]=seg_weights[i];
-	}
-	else
-	 _error_("The 2 indices provided are not supported yet (user provided " << index1 << " and " << index2 << ")");
+	for(i=0;i<numgauss;i++){
+		coords1[i]=0.5*(a1+a2) + 0.5*seg_coords[i]*(a2-a1);
+		coords2[i]=0.5*(b1+b2) + 0.5*seg_coords[i]*(b2-b1);
+		coords3[i]=0.5*(c1+c2) + 0.5*seg_coords[i]*(c2-c1);
+		weights[i]=seg_weights[i];
+	}
 
 	/*Initialize static fields as undefined*/
