Index: /issm/trunk-jpl/src/c/objects/Contour.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Contour.h	(revision 12321)
+++ /issm/trunk-jpl/src/c/objects/Contour.h	(revision 12322)
@@ -20,11 +20,11 @@
 		int     id;
 		int	  nods;  //number of vertices in the contour
-		double* x;
-		double* y;
+		IssmDouble* x;
+		IssmDouble* y;
 		bool    closed; //is this contour closed?
 
 		/*Contour constructors, destructors {{{1*/
 		Contour();
-		Contour(int id, int nods, double* x, double* y,bool closed);
+		Contour(int id, int nods, IssmDouble* x, IssmDouble* y,bool closed);
 		~Contour();
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/objects/DofIndexing.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/DofIndexing.h	(revision 12321)
+++ /issm/trunk-jpl/src/c/objects/DofIndexing.h	(revision 12322)
@@ -5,4 +5,6 @@
 #ifndef _DOFINDEXING_H_
 #define  _DOFINDEXING_H_
+
+#include "../include/include.h"
 
 class DofIndexing{
@@ -21,5 +23,5 @@
 		bool*     f_set; //is dof on f-set (on which we solve)
 		bool*     s_set; //is dof on s-set (on which boundary conditions -dirichlet- are applied)
-		double*   svalues; //list of constraint values. size g_size, for ease of use.
+		IssmDouble*   svalues; //list of constraint values. size g_size, for ease of use.
 
 		/*types of dofs: */
Index: /issm/trunk-jpl/src/c/objects/IoModel.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/IoModel.h	(revision 12321)
+++ /issm/trunk-jpl/src/c/objects/IoModel.h	(revision 12322)
@@ -19,6 +19,6 @@
 	private: 
 		FILE        *fid;         //pointer to input file
-		double     **data;        //this dataset holds temporary data, memory intensive.
-		Parameters  *constants;   //this dataset holds all double, int, bool and char *parameters read in from the input file.*
+		IssmDouble     **data;        //this dataset holds temporary data, memory intensive.
+		Parameters  *constants;   //this dataset holds all IssmDouble, int, bool and char *parameters read in from the input file.*
 
 	public:
@@ -44,20 +44,20 @@
 		void    Constant(bool   *poutput,int constant_enum);
 		void    Constant(int    *poutput,int constant_enum);
-		void    Constant(double *poutput,int constant_enum);
+		void    Constant(IssmDouble *poutput,int constant_enum);
 		void    Constant(char  **poutput,int constant_enum);
 		Param  *CopyConstantObject(int constant_enum);
-		double *Data(int dataenum);
+		IssmDouble *Data(int dataenum);
 		void    DeleteData(int num,...);
 		void    FetchConstants(void);
 		void    FetchData(bool*     pboolean,int data_enum);
 		void    FetchData(int*      pinteger,int data_enum);
-		void    FetchData(double*   pscalar,int data_enum);
+		void    FetchData(IssmDouble*   pscalar,int data_enum);
 		void    FetchData(char**    pstring,int data_enum);
 		void    FetchData(int** pmatrix,int* pM,int* pN,int data_enum);
-		void    FetchData(double**  pscalarmatrix,int* pM,int* pN,int data_enum);
+		void    FetchData(IssmDouble**  pscalarmatrix,int* pM,int* pN,int data_enum);
 		void    FetchData(char***   pstringarray,int* pnumstrings,int data_enum);
-		void    FetchData(double*** pmatrixarray,int** pmdims,int** pndims, int* pnumrecords,int data_enum);
+		void    FetchData(IssmDouble*** pmatrixarray,int** pmdims,int** pndims, int* pnumrecords,int data_enum);
 		void    FetchData(int num,...);
-		void    FetchDataToInput(Elements* elements,int vector_enum,int default_vector_enum=NoneEnum,double default_value=0);
+		void    FetchDataToInput(Elements* elements,int vector_enum,int default_vector_enum=NoneEnum,IssmDouble default_value=0);
 		FILE*   SetFilePointerToData(int* pcode,int* pvector_type, int data_enum);
 };
Index: /issm/trunk-jpl/src/c/objects/Node.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Node.h	(revision 12321)
+++ /issm/trunk-jpl/src/c/objects/Node.h	(revision 12322)
@@ -32,5 +32,5 @@
 		Inputs*        inputs; //properties of this node
 		int            analysis_type;
-		double         coord_system[3][3];
+		IssmDouble         coord_system[3][3];
 
 		/*Node constructors, destructors {{{1*/
@@ -49,15 +49,15 @@
 		/*Update virtual functions definitions: {{{1*/
 		
-		void  InputUpdateFromVector(double* vector, int name, int type);
+		void  InputUpdateFromVector(IssmDouble* vector, int name, int type);
 		void  InputUpdateFromVector(int* vector, int name, int type);
 		void  InputUpdateFromVector(bool* vector, int name, int type);
-		void  InputUpdateFromMatrixDakota(double* matrix,int nrows, int ncols, int name, int type);
-		void  InputUpdateFromVectorDakota(double* vector, int name, int type);
+		void  InputUpdateFromMatrixDakota(IssmDouble* matrix,int nrows, int ncols, int name, int type);
+		void  InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type);
 		void  InputUpdateFromVectorDakota(int* vector, int name, int type);
 		void  InputUpdateFromVectorDakota(bool* vector, int name, int type);
-		void  InputUpdateFromConstant(double constant, int name);
+		void  InputUpdateFromConstant(IssmDouble constant, int name);
 		void  InputUpdateFromConstant(int constant, int name);
 		void  InputUpdateFromConstant(bool constant, int name);
-		void  InputUpdateFromSolution(double* solution){_error_("Not implemented yet!");}
+		void  InputUpdateFromSolution(IssmDouble* solution){_error_("Not implemented yet!");}
 		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("Not implemented yet!");}
 		/*}}}*/
@@ -70,5 +70,5 @@
 		int    GetVertexId(void);
 #ifdef _HAVE_DIAGNOSTIC_
-		void   GetCoordinateSystem(double* coord_system_out);
+		void   GetCoordinateSystem(IssmDouble* coord_system_out);
 #endif
 		void   SetVertexDof(int in_dof);
@@ -77,5 +77,5 @@
 		int    GetNumberOfDofs(int approximation_enum,int setenum);
 		int    IsClone();
-		void   ApplyConstraint(int dof,double value);
+		void   ApplyConstraint(int dof,IssmDouble value);
 		void   RelaxConstraint(int dof);
 		void   DofInSSet(int dof);
@@ -88,8 +88,8 @@
 		int    GetDofList1(void);
 		int    GetSidList(void);
-		double GetX();
-		double GetY();
-		double GetZ();
-		double GetSigma();
+		IssmDouble GetX();
+		IssmDouble GetY();
+		IssmDouble GetZ();
+		IssmDouble GetSigma();
 		int    IsOnBed();
 		int    IsOnSurface();
@@ -97,7 +97,7 @@
 		int    IsFloating();
 		int    IsGrounded();
-		void   UpdateSpcs(double* ys);
-		void   VecMerge(Vector* ug, double* vector_serial,int setenum);
-		void   VecReduce(Vector* vector, double* ug_serial,int setnum);
+		void   UpdateSpcs(IssmDouble* ys);
+		void   VecMerge(Vector* ug, IssmDouble* vector_serial,int setenum);
+		void   VecReduce(Vector* vector, IssmDouble* ug_serial,int setnum);
 		
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/objects/OptPars.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/OptPars.h	(revision 12321)
+++ /issm/trunk-jpl/src/c/objects/OptPars.h	(revision 12322)
@@ -8,7 +8,7 @@
 struct OptPars{
 
-	double xmin;
-	double xmax;
-	double cm_jump;
+	IssmDouble xmin;
+	IssmDouble xmax;
+	IssmDouble cm_jump;
 	int maxiter;
 
Index: /issm/trunk-jpl/src/c/objects/Patch.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Patch.h	(revision 12321)
+++ /issm/trunk-jpl/src/c/objects/Patch.h	(revision 12322)
@@ -34,5 +34,5 @@
 		int     maxnodes;    // maxnodes corresponds to the largest amout of nodes on a given element, determined by the interpolation type.
 		
-		double* values;  //result values
+		IssmDouble* values;  //result values
 
 		Patch();
@@ -40,5 +40,5 @@
 		~Patch();
 		void fillelementinfo(int row, int element_id, int* vertices_ids, int num_vertices);
-		void fillresultinfo(int row,int enum_type,int step, double time, int interpolation, double* nodal_values, int num_nodes);
+		void fillresultinfo(int row,int enum_type,int step, IssmDouble time, int interpolation, IssmDouble* nodal_values, int num_nodes);
 		void Gather(void);
 
Index: /issm/trunk-jpl/src/c/objects/Segment.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Segment.h	(revision 12321)
+++ /issm/trunk-jpl/src/c/objects/Segment.h	(revision 12322)
@@ -15,12 +15,12 @@
 	public:
 		int eid;
-		double x1;
-		double y1;
-		double x2;
-		double y2;
+		IssmDouble x1;
+		IssmDouble y1;
+		IssmDouble x2;
+		IssmDouble y2;
 
 		/*Segment constructors, destructors {{{1*/
 		Segment();
-		Segment(int eid,double x1,double y1, double x2, double y2);
+		Segment(int eid,IssmDouble x1,IssmDouble y1, IssmDouble x2, IssmDouble y2);
 		~Segment();
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/objects/Update.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Update.h	(revision 12321)
+++ /issm/trunk-jpl/src/c/objects/Update.h	(revision 12322)
@@ -15,17 +15,17 @@
 	public:
 
-		virtual void  InputUpdateFromVector(double* vector, int name, int type)=0;
+		virtual void  InputUpdateFromVector(IssmDouble* vector, int name, int type)=0;
 		virtual void  InputUpdateFromVector(int* vector, int name, int type)=0;
 		virtual void  InputUpdateFromVector(bool* vector, int name, int type)=0; 
 		#ifdef _HAVE_DAKOTA_
-		virtual void  InputUpdateFromMatrixDakota(double* matrix, int rows, int ncols, int name, int type)=0;
-		virtual void  InputUpdateFromVectorDakota(double* vector, int name, int type)=0;
+		virtual void  InputUpdateFromMatrixDakota(IssmDouble* matrix, int rows, int ncols, int name, int type)=0;
+		virtual void  InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type)=0;
 		virtual void  InputUpdateFromVectorDakota(int* vector, int name, int type)=0;
 		virtual void  InputUpdateFromVectorDakota(bool* vector, int name, int type)=0;
 		#endif
-		virtual void  InputUpdateFromConstant(double constant, int name)=0;
+		virtual void  InputUpdateFromConstant(IssmDouble constant, int name)=0;
 		virtual void  InputUpdateFromConstant(int constant, int name)=0;
 		virtual void  InputUpdateFromConstant(bool constant, int name)=0;
-		virtual void  InputUpdateFromSolution(double* solution)=0;
+		virtual void  InputUpdateFromSolution(IssmDouble* solution)=0;
 		virtual void  InputUpdateFromIoModel(int index, IoModel* iomodel)=0;
 
Index: /issm/trunk-jpl/src/c/objects/Vertex.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Vertex.h	(revision 12321)
+++ /issm/trunk-jpl/src/c/objects/Vertex.h	(revision 12322)
@@ -25,8 +25,8 @@
 		int    id;
 		int    sid;            //sid for "serial" id, ie the rank of this vertex in the vertices dataset, if the dataset was serial on 1 cpu.
-		double x;
-		double y;
-		double z;
-		double sigma;          //sigma coordinate: (z-bed)/thickness
+		IssmDouble x;
+		IssmDouble y;
+		IssmDouble z;
+		IssmDouble sigma;          //sigma coordinate: (z-bed)/thickness
 		int    connectivity;   //number of vertices connected to this vertex
 
@@ -37,6 +37,6 @@
 		/*Vertex constructors, destructors {{{1*/
 		Vertex();
-		Vertex(int id, int sid,double x, double y, double z, double sigma, int connectivity); 
-		void Init(int id, int sid, double x, double y, double z, double sigma,int connectivity);
+		Vertex(int id, int sid,IssmDouble x, IssmDouble y, IssmDouble z, IssmDouble sigma, int connectivity); 
+		void Init(int id, int sid, IssmDouble x, IssmDouble y, IssmDouble z, IssmDouble sigma,int connectivity);
 		Vertex(int id, int sid, int i, IoModel* iomodel);
 		~Vertex();
@@ -60,5 +60,5 @@
 		int   Sid(void); 
 		int   Connectivity(void); 
-		void  UpdatePosition(Vector* vz,Parameters* parameters,double* thickness,double* bed);
+		void  UpdatePosition(Vector* vz,Parameters* parameters,IssmDouble* thickness,IssmDouble* bed);
 		/*}}}*/
 };
