Index: /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp	(revision 14383)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp	(revision 14384)
@@ -301,5 +301,5 @@
 
 		GetL(&L[0], &xyz_list[0][0], gauss,NDOF1);
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0], gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0], gauss);
 
 		D_scalar=latentheat/heatcapacity*gauss->weight*Jdet;
@@ -378,5 +378,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
 		GetL(&L[0], &xyz_list[0][0], gauss,NDOF1);
 
@@ -494,5 +494,5 @@
 		vyaverage_input->GetInputValue(&vy,gauss);
 
-		GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
 		GetL(&L[0], &xyz_list[0][0], gauss,NDOF1);
 
@@ -547,5 +547,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		D=gauss->weight*Jdet;
 
@@ -668,5 +668,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
 		GetL(&L[0], &xyz_list[0][0], gauss,NDOF1);
 
@@ -716,5 +716,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
 		GetL(&L[0], &xyz_list[0][0], gauss,NDOF1);
 
@@ -766,5 +766,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctions(basis, gauss);
 
@@ -1207,6 +1207,6 @@
 
 		/*Compute fraction of grounded element*/
-		GetJacobianDeterminant2d(&area_init, xyz_list,gauss);
-		GetJacobianDeterminant2d(&area_grounded, &xyz_bis[0][0],gauss);
+		GetJacobianDeterminant(&area_init, xyz_list,gauss);
+		GetJacobianDeterminant(&area_grounded, &xyz_bis[0][0],gauss);
 		if(mainlyfloating==true) area_grounded=area_init-area_grounded;
 		phi=area_grounded/area_init;
@@ -3080,5 +3080,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetBMacAyeal(&B[0][0], &xyz_list[0][0], gauss);
 		GetBprimeMacAyeal(&Bprime[0][0], &xyz_list[0][0], gauss);
@@ -3164,5 +3164,5 @@
 
 		GetL(&L[0][0], &xyz_list[0][0], gauss,NDOF2);
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		DL_scalar=alpha2*gauss->weight*Jdet;
 		for (i=0;i<2;i++) DL[i][i]=DL_scalar;
@@ -3235,5 +3235,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctions(basis, gauss);
 
@@ -3342,5 +3342,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctionsDerivatives(&dphi[0][0],&xyz_list[0][0],gauss);
 
@@ -3611,5 +3611,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -3821,5 +3821,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctionsDerivatives(&dbasis[0][0],&xyz_list[0][0],gauss);
 		weights_input->GetInputValue(&weight,gauss,weight_index);
@@ -3861,5 +3861,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctionsDerivatives(&dbasis[0][0],&xyz_list[0][0],gauss);
 		weights_input->GetInputValue(&weight,gauss,weight_index);
@@ -3919,5 +3919,5 @@
 		material->GetViscosityComplement(&viscosity_complement,&epsilon[0]);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctions(basis,gauss);
 
@@ -3976,5 +3976,5 @@
 		material->GetViscosityZComplement(&viscosity_complement,&epsilon[0]);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctions(basis,gauss);
 
@@ -4033,5 +4033,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctions(basis, gauss);
 
@@ -4104,5 +4104,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctionsDerivatives(&dbasis[0][0],&xyz_list[0][0],gauss);
 		weights_input->GetInputValue(&weight,gauss,weight_index);
@@ -4166,5 +4166,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctions(basis, gauss);
 
@@ -4209,5 +4209,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctions(basis, gauss);
 
@@ -4267,5 +4267,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctions(basis, gauss);
 		GetNodalFunctionsDerivatives(&dbasis[0][0],&xyz_list[0][0],gauss);
@@ -4376,5 +4376,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -4421,5 +4421,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -4481,5 +4481,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -4543,5 +4543,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -4603,5 +4603,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -4664,5 +4664,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -4722,5 +4722,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -4768,5 +4768,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -4819,5 +4819,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -4866,5 +4866,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get parameters at gauss point*/
@@ -4921,5 +4921,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctions(basis, gauss);
 		GetNodalFunctionsDerivatives(&dbasis[0][0],&xyz_list[0][0],gauss);
@@ -5018,5 +5018,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -5200,5 +5200,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -5366,5 +5366,5 @@
 
 		/* Get Jacobian determinant: */
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 
 		/*Get all parameters at gaussian point*/
@@ -5439,5 +5439,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctionsDerivatives(&dphi[0][0],&xyz_list[0][0],gauss);
 
@@ -5700,5 +5700,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
 		GetL(&L[0], &xyz_list[0][0], gauss,NDOF1);
 
@@ -5793,5 +5793,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
 		GetNodalFunctions(basis, gauss);
 
@@ -6079,5 +6079,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
 		GetBPrognostic(&B[0][0], &xyz_list[0][0], gauss);
 		GetBprimePrognostic(&Bprime[0][0], &xyz_list[0][0], gauss);
@@ -6173,5 +6173,5 @@
 		gauss->GaussPoint(ig);
 
-		GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
 		/*WARNING: B and Bprime are inverted compared to usual prognostic!!!!*/
 		GetBPrognostic(&Bprime[0][0], &xyz_list[0][0], gauss);
@@ -6242,5 +6242,5 @@
 		dhdt_input->GetInputValue(&dhdt_g,gauss);
 
-		GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
 		GetL(&L[0], &xyz_list[0][0], gauss,NDOF1);
 
@@ -6285,5 +6285,5 @@
 		dhdt_input->GetInputValue(&dhdt_g,gauss);
 
-		GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss);
+		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
 		GetL(&L[0], &xyz_list[0][0], gauss,NDOF1);
 
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/TriaRef.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/TriaRef.cpp	(revision 14383)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/TriaRef.cpp	(revision 14384)
@@ -341,6 +341,6 @@
 }
 /*}}}*/
-/*FUNCTION TriaRef::GetJacobianDeterminant2d{{{*/
-void TriaRef::GetJacobianDeterminant2d(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss){
+/*FUNCTION TriaRef::GetJacobianDeterminant{{{*/
+void TriaRef::GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss){
 	/*The Jacobian determinant is constant over the element, discard the gaussian points. 
 	 * J is assumed to have been allocated of size NDOF2xNDOF2.*/
@@ -352,26 +352,4 @@
 	/*Get Determinant*/
 	Matrix2x2Determinant(Jdet,&J[0][0]);
-	if(*Jdet<0) _error_("negative jacobian determinant!");
-
-}
-/*}}}*/
-/*FUNCTION TriaRef::GetJacobianDeterminant3d {{{*/
-void TriaRef::GetJacobianDeterminant3d(IssmDouble*  Jdet, IssmDouble* xyz_list,GaussTria* gauss){
-	/*The Jacobian determinant is constant over the element, discard the gaussian points. 
-	 * J is assumed to have been allocated of size NDOF2xNDOF2.*/
-
-	IssmDouble x1,x2,x3,y1,y2,y3,z1,z2,z3;
-
-	x1=*(xyz_list+3*0+0);
-	y1=*(xyz_list+3*0+1);
-	z1=*(xyz_list+3*0+2);
-	x2=*(xyz_list+3*1+0);
-	y2=*(xyz_list+3*1+1);
-	z2=*(xyz_list+3*1+2);
-	x3=*(xyz_list+3*2+0);
-	y3=*(xyz_list+3*2+1);
-	z3=*(xyz_list+3*2+2);
-
-	*Jdet=SQRT3/6.0*pow(pow(((y2-y1)*(z3-z1)-(z2-z1)*(y3-y1)),2.0)+pow(((z2-z1)*(x3-x1)-(x2-x1)*(z3-z1)),2.0)+pow(((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1)),2.0),0.5);
 	if(*Jdet<0) _error_("negative jacobian determinant!");
 
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/TriaRef.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/TriaRef.h	(revision 14383)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/TriaRef.h	(revision 14384)
@@ -32,6 +32,5 @@
 		void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,GaussTria* gauss);
 		void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss);
-		void GetJacobianDeterminant2d(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss);
-		void GetJacobianDeterminant3d(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss);
+		void GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss);
 		void GetJacobianInvert(IssmDouble*  Jinv, IssmDouble* xyz_list,GaussTria* gauss);
 		void GetNodalFunctions(IssmDouble* l1l2l3,GaussTria* gauss);
