Index: issm/trunk-jpl/src/c/objects/Node.cpp
===================================================================
--- issm/trunk-jpl/src/c/objects/Node.cpp	(revision 12014)
+++ issm/trunk-jpl/src/c/objects/Node.cpp	(revision 12345)
@@ -439,5 +439,5 @@
 #ifdef _HAVE_DIAGNOSTIC_
 /*FUNCTION Node::GetCoordinateSystem{{{1*/
-void Node::GetCoordinateSystem(double* coord_system_out){
+void Node::GetCoordinateSystem(IssmDouble* coord_system_out){
 
 	/*Copy coord_system*/
@@ -466,5 +466,5 @@
 /*Node numerics:*/
 /*FUNCTION Node::ApplyConstraints{{{1*/
-void  Node::ApplyConstraint(int dof,double value){
+void  Node::ApplyConstraint(int dof,IssmDouble value){
 
 	int index;
@@ -487,6 +487,6 @@
 void  Node::CreateVecSets(Vector* pv_g,Vector* pv_f,Vector* pv_s){
 
-	double gvalue=1.0; //all nodes are in the g set;
-	double value;
+	IssmDouble gvalue=1.0; //all nodes are in the g set;
+	IssmDouble value;
 
 	int i;
@@ -498,9 +498,9 @@
 		
 		/*f set: */
-		value=(double)this->indexing.f_set[i];
+		value=(IssmDouble)this->indexing.f_set[i];
 		pv_f->SetValue(indexing.gdoflist[i],value,INS_VAL);
 
 		/*s set: */
-		value=(double)this->indexing.s_set[i];
+		value=(IssmDouble)this->indexing.s_set[i];
 		pv_s->SetValue(indexing.gdoflist[i],value,INS_VAL);
 
@@ -514,10 +514,10 @@
 
 	int i;
-	double* values=NULL;
+	IssmDouble* values=NULL;
 	int count;
 
 	/*Recover values for s set and plug them in constraints vector: */
 	if(this->indexing.ssize){
-		values=(double*)xmalloc(this->indexing.ssize*sizeof(double));
+		values=xNew<IssmDouble>(this->indexing.ssize);
 		count=0;
 		for(i=0;i<this->indexing.gsize;i++){
@@ -534,5 +534,5 @@
 
 	/*Free ressources:*/
-	xfree((void**)&values);
+	xDelete<IssmDouble>(values);
 
 
@@ -634,5 +634,5 @@
 /*}}}*/
 /*FUNCTION Node::GetSigma {{{1*/
-double Node::GetSigma(){
+IssmDouble Node::GetSigma(){
 	Vertex* vertex=NULL;
 
@@ -642,5 +642,5 @@
 /*}}}*/
 /*FUNCTION Node::GetX {{{1*/
-double Node::GetX(){
+IssmDouble Node::GetX(){
 	Vertex* vertex=NULL;
 
@@ -650,5 +650,5 @@
 /*}}}*/
 /*FUNCTION Node::GetY {{{1*/
-double Node::GetY(){
+IssmDouble Node::GetY(){
 	Vertex* vertex=NULL;
 
@@ -658,5 +658,5 @@
 /*}}}*/
 /*FUNCTION Node::GetZ {{{1*/
-double Node::GetZ(){
+IssmDouble Node::GetZ(){
 	Vertex* vertex=NULL;
 
@@ -716,6 +716,6 @@
 }
 /*}}}*/
-/*FUNCTION Node::InputUpdateFromVector(double* vector, int name, int type){{{1*/
-void  Node::InputUpdateFromVector(double* vector, int name, int type){
+/*FUNCTION Node::InputUpdateFromVector(IssmDouble* vector, int name, int type){{{1*/
+void  Node::InputUpdateFromVector(IssmDouble* vector, int name, int type){
 
 	/*Nothing updated yet*/
@@ -734,12 +734,12 @@
 }
 /*}}}*/
-/*FUNCTION Node::InputUpdateFromVectorDakota(double* vector, int name, int type){{{1*/
-void  Node::InputUpdateFromVectorDakota(double* vector, int name, int type){
+/*FUNCTION Node::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){{{1*/
+void  Node::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){
 
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Node::InputUpdateFromMatrixDakota(double* matrix, int nrows, int ncols, int name, int type){{{1*/
-void  Node::InputUpdateFromMatrixDakota(double* matrix, int nrows, int ncols, int name, int type){
+/*FUNCTION Node::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){{{1*/
+void  Node::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){
 
 	/*Nothing updated yet*/
@@ -758,6 +758,6 @@
 }
 /*}}}*/
-/*FUNCTION Node::InputUpdateFromConstant(double constant, int name){{{1*/
-void  Node::InputUpdateFromConstant(double constant, int name){
+/*FUNCTION Node::InputUpdateFromConstant(IssmDouble constant, int name){{{1*/
+void  Node::InputUpdateFromConstant(IssmDouble constant, int name){
 
 	/*Nothing updated yet*/
@@ -777,5 +777,5 @@
 /*}}}*/
 /*FUNCTION Node::UpdateSpcs {{{1*/
-void   Node::UpdateSpcs(double* ys){
+void   Node::UpdateSpcs(IssmDouble* ys){
 
 	int     count=0;
@@ -792,7 +792,7 @@
 /*}}}*/
 /*FUNCTION Node::VecMerge {{{1*/
-void   Node::VecMerge(Vector* ug, double* vector_serial,int setenum){
-
-	double* values=NULL;
+void   Node::VecMerge(Vector* ug, IssmDouble* vector_serial,int setenum){
+
+	IssmDouble* values=NULL;
 	int*    indices=NULL;
 	int     count=0;
@@ -802,5 +802,5 @@
 		if(this->indexing.fsize){
 			indices=(int*)xmalloc(this->indexing.fsize*sizeof(int));
-			values=(double*)xmalloc(this->indexing.fsize*sizeof(double));
+			values=(IssmDouble*)xmalloc(this->indexing.fsize*sizeof(IssmDouble));
 
 			for(i=0;i<this->indexing.gsize;i++){
@@ -820,5 +820,5 @@
 		if(this->indexing.ssize){
 			indices=(int*)xmalloc(this->indexing.ssize*sizeof(int));
-			values=(double*)xmalloc(this->indexing.ssize*sizeof(double));
+			values=(IssmDouble*)xmalloc(this->indexing.ssize*sizeof(IssmDouble));
 
 			for(i=0;i<this->indexing.gsize;i++){
@@ -843,7 +843,7 @@
 /*}}}*/
 /*FUNCTION Node::VecReduce {{{1*/
-void   Node::VecReduce(Vector* vector, double* ug_serial,int setenum){
-
-	double* values=NULL;
+void   Node::VecReduce(Vector* vector, IssmDouble* ug_serial,int setenum){
+
+	IssmDouble* values=NULL;
 	int     count=0;
 	int     i;
@@ -851,5 +851,5 @@
 	if(setenum==FsetEnum){
 		if(this->indexing.fsize){
-			values=(double*)xmalloc(this->indexing.fsize*sizeof(double));
+			values=(IssmDouble*)xmalloc(this->indexing.fsize*sizeof(IssmDouble));
 
 			for(i=0;i<this->indexing.gsize;i++){
@@ -867,5 +867,5 @@
 	else if(setenum==SsetEnum){
 		if(this->indexing.ssize){
-			values=(double*)xmalloc(this->indexing.ssize*sizeof(double));
+			values=(IssmDouble*)xmalloc(this->indexing.ssize*sizeof(IssmDouble));
 
 			for(i=0;i<this->indexing.gsize;i++){
