Index: issm/trunk-jpl/src/c/io/Disk/pfclose.cpp
===================================================================
--- issm/trunk-jpl/src/c/io/Disk/pfclose.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/io/Disk/pfclose.cpp	(revision 12494)
@@ -18,4 +18,4 @@
 	extern int my_rank;
 	_assert_(fid);
-	if(fclose(fid)!=0)_error2_("" << "could not close file " << filename);
+	if(fclose(fid)!=0)_error2_("could not close file " << filename);
 }
Index: issm/trunk-jpl/src/c/io/Disk/pfopen.cpp
===================================================================
--- issm/trunk-jpl/src/c/io/Disk/pfopen.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/io/Disk/pfopen.cpp	(revision 12494)
@@ -20,5 +20,5 @@
 	/*Open handle to data on disk: */
 	fid=fopen(filename,format);
-	if(fid==NULL) _error2_("" << "could not open file " << filename << " for binary reading or writing"); 
+	if(fid==NULL) _error2_("could not open file " << filename << " for binary reading or writing"); 
 
 	return fid;
Index: issm/trunk-jpl/src/c/modules/DakotaResponsesx/DakotaResponsesx.cpp
===================================================================
--- issm/trunk-jpl/src/c/modules/DakotaResponsesx/DakotaResponsesx.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/modules/DakotaResponsesx/DakotaResponsesx.cpp	(revision 12494)
@@ -104,5 +104,5 @@
 			}
 		}
-		else _error2_("" << " flag type " << flag << " not supported yet for response analysis");
+		else _error2_(" flag type " << flag << " not supported yet for response analysis");
 	}
 
Index: issm/trunk-jpl/src/c/modules/Dakotax/DescriptorIndex.cpp
===================================================================
--- issm/trunk-jpl/src/c/modules/Dakotax/DescriptorIndex.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/modules/Dakotax/DescriptorIndex.cpp	(revision 12494)
@@ -23,10 +23,10 @@
 	/*retrieve first token, separated by underscore: */
 	pch = strtok (descriptor,"_");
-	if(!pch)_error2_("" << " descriptor " << descriptor << " is not correctly formatted!");
+	if(!pch)_error2_(" descriptor " << descriptor << " is not correctly formatted!");
 
 	if (strncmp(pch,"scaled",6)==0){
 		/*we have a scaled variable. recover the root: */
 		pch = strtok (NULL, "_");
-		if(!pch)_error2_("" << " scaled descriptor " << descriptor << " is not correctly formatted!");
+		if(!pch)_error2_(" scaled descriptor " << descriptor << " is not correctly formatted!");
 		memcpy(root,pch,(strlen(pch)+1)*sizeof(char));
 
@@ -44,9 +44,9 @@
 		/*we have an indexed variable. recover the root: */
 		pch = strtok (NULL, "_");
-		if(!pch)_error2_("" << " indexed descriptor " << descriptor << " is not correctly formatted!");
+		if(!pch)_error2_(" indexed descriptor " << descriptor << " is not correctly formatted!");
 		memcpy(root,pch,(strlen(pch)+1)*sizeof(char));
 		/*now recover  the index: */
 		pch = strtok (NULL, "_");
-		if(!pch)_error2_("" << " indexed descriptor " << descriptor << " is not correctly formatted!");
+		if(!pch)_error2_(" indexed descriptor " << descriptor << " is not correctly formatted!");
 		sscanf(pch,"%i",pindex);
 		return IndexedEnum;
@@ -55,9 +55,9 @@
 		/*we have an indexed variable. recover the root: */
 		pch = strtok (NULL, "_");
-		if(!pch)_error2_("" << " nodal descriptor " << descriptor << " is not correctly formatted!");
+		if(!pch)_error2_(" nodal descriptor " << descriptor << " is not correctly formatted!");
 		memcpy(root,pch,(strlen(pch)+1)*sizeof(char));
 		/*now recover  the index: */
 		pch = strtok (NULL, "_");
-		if(!pch)_error2_("" << " nodal descriptor " << descriptor << " is not correctly formatted!");
+		if(!pch)_error2_(" nodal descriptor " << descriptor << " is not correctly formatted!");
 		sscanf(pch,"%i",pindex);
 		return NodalEnum;
Index: issm/trunk-jpl/src/c/modules/ElementResponsex/ElementResponsex.cpp
===================================================================
--- issm/trunk-jpl/src/c/modules/ElementResponsex/ElementResponsex.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/modules/ElementResponsex/ElementResponsex.cpp	(revision 12494)
@@ -39,5 +39,5 @@
 	#ifdef _HAVE_MPI_
 	MPI_Allreduce ( &found,&sumfound,1,MPI_INT,MPI_SUM,MPI_COMM_WORLD);
-	if(!sumfound)_error2_("" << "could not find material with id" << index << " to compute ElementResponse");
+	if(!sumfound)_error2_("could not find material with id" << index << " to compute ElementResponse");
 	#endif
 
Index: issm/trunk-jpl/src/c/modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp
===================================================================
--- issm/trunk-jpl/src/c/modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp	(revision 12494)
@@ -32,5 +32,5 @@
 	}
 	else{
-		_error2_("" << " vector type: " << EnumToStringx(type) << " not supported yet!");
+		_error2_(" vector type: " << EnumToStringx(type) << " not supported yet!");
 	}
 
Index: issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp
===================================================================
--- issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp	(revision 12494)
@@ -27,5 +27,5 @@
 
 	if(migration_style==NoneEnum) return;
-	if(migration_style!=AgressiveMigrationEnum && migration_style!=SoftMigrationEnum) _error2_("" << EnumToStringx(migration_style) << " not supported yet!");
+	if(migration_style!=AgressiveMigrationEnum && migration_style!=SoftMigrationEnum) _error2_(EnumToStringx(migration_style) << " not supported yet!");
 
 	if(migration_style==SoftMigrationEnum){
Index: issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
===================================================================
--- issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 12494)
@@ -38,6 +38,6 @@
 	fid=iomodel->SetFilePointerToData(&code, &vector_layout,vector_enum);
 
-	if(code!=7)_error2_("" << " expecting a IssmDouble vector for constraints with enum " << EnumToStringx(vector_enum));
-	if(vector_layout!=1)_error2_("" << " expecting a nodal vector for constraints with enum " << EnumToStringx(vector_enum));
+	if(code!=7)_error2_(" expecting a IssmDouble vector for constraints with enum " << EnumToStringx(vector_enum));
+	if(vector_layout!=1)_error2_(" expecting a nodal vector for constraints with enum " << EnumToStringx(vector_enum));
 
 	/*Fetch vector:*/
Index: issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateDataSets.cpp
===================================================================
--- issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateDataSets.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateDataSets.cpp	(revision 12494)
@@ -124,5 +124,5 @@
 
 		default:
-			_error2_("" << " analysis_type: " << EnumToStringx(analysis_type) << " not supported yet!");
+			_error2_(" analysis_type: " << EnumToStringx(analysis_type) << " not supported yet!");
 	}
 
Index: issm/trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp
===================================================================
--- issm/trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp	(revision 12494)
@@ -38,5 +38,5 @@
 	#ifdef _HAVE_MPI_
 	MPI_Allreduce ( &found,&sumfound,1,MPI_INT,MPI_SUM,MPI_COMM_WORLD);
-	if(!sumfound)_error2_("" << "could not find element with vertex with id" << index << " to compute nodal value " << EnumToStringx(natureofdataenum));
+	if(!sumfound)_error2_("could not find element with vertex with id" << index << " to compute nodal value " << EnumToStringx(natureofdataenum));
 	#endif
 
Index: issm/trunk-jpl/src/c/modules/NodeConnectivityx/NodeConnectivityx.cpp
===================================================================
--- issm/trunk-jpl/src/c/modules/NodeConnectivityx/NodeConnectivityx.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/modules/NodeConnectivityx/NodeConnectivityx.cpp	(revision 12494)
@@ -71,5 +71,5 @@
 	 * warn the user to increase the connectivity width: */
 	for(i=0;i<nods;i++){
-		if (*(connectivity+width*i+maxels)>maxels)_error2_("" << " max connectivity width reached (" << *(connectivity+width*i+maxels) << ")! increase width of connectivity table");
+		if (*(connectivity+width*i+maxels)>maxels)_error2_(" max connectivity width reached (" << *(connectivity+width*i+maxels) << ")! increase width of connectivity table");
 	}
 
Index: issm/trunk-jpl/src/c/modules/Solverx/SolverxPetsc.cpp
===================================================================
--- issm/trunk-jpl/src/c/modules/Solverx/SolverxPetsc.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/modules/Solverx/SolverxPetsc.cpp	(revision 12494)
@@ -136,5 +136,5 @@
 	/*Check convergence*/
 	KSPGetIterationNumber(ksp,&iteration_number);
-	if (iteration_number<0) _error2_("" << " Solver diverged at iteration number: " << -iteration_number);
+	if (iteration_number<0) _error2_(" Solver diverged at iteration number: " << -iteration_number);
 
 	/*Free resources:*/
Index: issm/trunk-jpl/src/c/objects/Bamg/BamgQuadtree.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Bamg/BamgQuadtree.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Bamg/BamgQuadtree.h	(revision 12494)
@@ -29,10 +29,10 @@
 					};
 					/*Object functions*/
-					void    Echo()       {_error_("not implemented yet"); };
-					void    DeepEcho()   {_error_("not implemented yet"); };
-					int     Id()         {_error_("not implemented yet"); };
-					int     MyRank()     {_error_("not implemented yet"); };
-					int     ObjectEnum() {_error_("not implemented yet"); };
-					Object *copy()       {_error_("not implemented yet"); };
+					void    Echo()       {_error2_("not implemented yet"); };
+					void    DeepEcho()   {_error2_("not implemented yet"); };
+					int     Id()         {_error2_("not implemented yet"); };
+					int     MyRank()     {_error2_("not implemented yet"); };
+					int     ObjectEnum() {_error2_("not implemented yet"); };
+					Object *copy()       {_error2_("not implemented yet"); };
 			};
 
Index: issm/trunk-jpl/src/c/objects/Bamg/ListofIntersectionTriangles.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Bamg/ListofIntersectionTriangles.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Bamg/ListofIntersectionTriangles.h	(revision 12494)
@@ -34,5 +34,5 @@
 					double c01=lEnd-lBegin, c0=(lEnd-s)/c01, c1=(s-lBegin)/c01;
 					if (lBegin>s || s>lEnd){
-						_error_("lBegin>s || s>lEnd");
+						_error2_("lBegin>s || s>lEnd");
 					}
 					return e->F(sBegin*c0+sEnd*c1);
Index: issm/trunk-jpl/src/c/objects/Bamg/Mesh.cpp
===================================================================
--- issm/trunk-jpl/src/c/objects/Bamg/Mesh.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Bamg/Mesh.cpp	(revision 12494)
@@ -3563,5 +3563,5 @@
 	}
 	if(k) {
-		_error2_("" << k << " boundary edges (from the geometry) are not defined as mesh edges");
+		_error2_(k << " boundary edges (from the geometry) are not defined as mesh edges");
 	}
 
Index: issm/trunk-jpl/src/c/objects/DofIndexing.cpp
===================================================================
--- issm/trunk-jpl/src/c/objects/DofIndexing.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/DofIndexing.cpp	(revision 12494)
@@ -143,5 +143,5 @@
 		else this->sdoflist=NULL;
 	}
-	else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+	else _error2_(" set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 }
 /*}}}*/
Index: issm/trunk-jpl/src/c/objects/ElementResults/DoubleElementResult.h
===================================================================
--- issm/trunk-jpl/src/c/objects/ElementResults/DoubleElementResult.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/ElementResults/DoubleElementResult.h	(revision 12494)
@@ -48,6 +48,6 @@
 		/*DoubleElementResult management: {{{*/
 		int   InstanceEnum();
-		void GetVectorFromResults(Vector* vector,int* doflist,int* connectivitylist,int numdofs){_error_("not implemented");};
-		void GetElementVectorFromResults(Vector* vector,int dof){_error_("not implemented");};
+		void GetVectorFromResults(Vector* vector,int* doflist,int* connectivitylist,int numdofs){_error2_("not implemented");};
+		void GetElementVectorFromResults(Vector* vector,int dof){_error2_("not implemented");};
 		/*}}}*/
 };
Index: issm/trunk-jpl/src/c/objects/Elements/Penta.cpp
===================================================================
--- issm/trunk-jpl/src/c/objects/Elements/Penta.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Elements/Penta.cpp	(revision 12494)
@@ -1153,6 +1153,6 @@
 		new_inputs[i]=(Input*)this->inputs->GetInput(enums[2*i+0]);
 		old_inputs[i]=(Input*)this->inputs->GetInput(enums[2*i+1]);
-		if(!new_inputs[i])_error2_("" << " could not find input with enum " << EnumToStringx(enums[2*i+0]));
-		if(!old_inputs[i])_error2_("" << " could not find input with enum " << EnumToStringx(enums[2*i+0]));
+		if(!new_inputs[i])_error2_(" could not find input with enum " << EnumToStringx(enums[2*i+0]));
+		if(!old_inputs[i])_error2_(" could not find input with enum " << EnumToStringx(enums[2*i+0]));
 	}
 
@@ -1186,5 +1186,5 @@
 		this->inputs->AddInput(new DoubleInput(name,(IssmDouble)scalar));
 	}
-	else _error2_("" << " could not recognize nature of vector from code " << code);
+	else _error2_(" could not recognize nature of vector from code " << code);
 
 }
@@ -1268,5 +1268,5 @@
 				this->inputs->AddInput(new DoubleInput(vector_enum,(IssmDouble)vector[index]));
 			}
-			else _error2_("" << " could not recognize nature of vector from code " << code);
+			else _error2_(" could not recognize nature of vector from code " << code);
 		}
 		else {
Index: issm/trunk-jpl/src/c/objects/Elements/PentaRef.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Elements/PentaRef.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Elements/PentaRef.h	(revision 12494)
@@ -56,7 +56,7 @@
 		void GetLprimeStokesMacAyeal(IssmDouble* LprimeStokesMacAyeal, IssmDouble* xyz_list, GaussPenta* gauss);
 		void GetInputValue(IssmDouble* pvalue,IssmDouble* plist, GaussPenta* gauss);
-		void GetInputValue(IssmDouble* pvalue,IssmDouble* plist,GaussTria* gauss){_error_("only PentaGauss are supported");};
+		void GetInputValue(IssmDouble* pvalue,IssmDouble* plist,GaussTria* gauss){_error2_("only PentaGauss are supported");};
 		void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, GaussPenta* gauss);
-		void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, GaussTria* gauss){_error_("only PentaGauss are supported");};
+		void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, GaussTria* gauss){_error2_("only PentaGauss are supported");};
 
 };
Index: issm/trunk-jpl/src/c/objects/Elements/Tria.cpp
===================================================================
--- issm/trunk-jpl/src/c/objects/Elements/Tria.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Elements/Tria.cpp	(revision 12494)
@@ -1252,6 +1252,6 @@
 		new_inputs[i]=(Input*)this->inputs->GetInput(enums[2*i+0]);
 		old_inputs[i]=(Input*)this->inputs->GetInput(enums[2*i+1]);
-		if(!new_inputs[i])_error2_("" << " could not find input with enum " << EnumToStringx(enums[2*i+0]));
-		if(!old_inputs[i])_error2_("" << " could not find input with enum " << EnumToStringx(enums[2*i+0]));
+		if(!new_inputs[i])_error2_(" could not find input with enum " << EnumToStringx(enums[2*i+0]));
+		if(!old_inputs[i])_error2_(" could not find input with enum " << EnumToStringx(enums[2*i+0]));
 	}
 
@@ -1282,5 +1282,5 @@
 	else
 	 _error2_("object " << EnumToStringx(object_enum) << " not supported yet");
-	if(!oldinput)_error2_("" << " could not find old input with enum: " << EnumToStringx(enum_type));
+	if(!oldinput)_error2_(" could not find old input with enum: " << EnumToStringx(enum_type));
 	newinput=(Input*)oldinput->copy();
 
@@ -1657,5 +1657,5 @@
 		this->inputs->AddInput(new DoubleInput(name,(int)scalar));
 	}
-	else _error2_("" << " could not recognize nature of vector from code " << code);
+	else _error2_(" could not recognize nature of vector from code " << code);
 
 }
@@ -1739,5 +1739,5 @@
 				this->inputs->AddInput(new DoubleInput(vector_enum,(IssmDouble)vector[index]));
 			}
-			else _error2_("" << " could not recognize nature of vector from code " << code);
+			else _error2_(" could not recognize nature of vector from code " << code);
 		}
 		else {
@@ -2651,5 +2651,5 @@
 
 	/*First off, check that this segment belongs to this element: */
-	if ((int)*(segment+4)!=this->id)_error2_("" << "error message: segment with id " << (int)*(segment+4) << " does not belong to element with id:" << this->id);
+	if ((int)*(segment+4)!=this->id)_error2_("error message: segment with id " << (int)*(segment+4) << " does not belong to element with id:" << this->id);
 
 	/*Recover segment node locations: */
@@ -3538,5 +3538,5 @@
 			break;
 		default:
-			_error2_("" << "control type not supported yet: " << control_type);
+			_error2_("control type not supported yet: " << control_type);
 	}
 
Index: issm/trunk-jpl/src/c/objects/Elements/Tria.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Elements/Tria.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Elements/Tria.h	(revision 12494)
@@ -99,5 +99,5 @@
 		void   InputToResult(int enum_type,int step,IssmDouble time);
 		void   DeleteResults(void);
-		void   MaterialUpdateFromTemperature(void){_error_("not implemented yet");};
+		void   MaterialUpdateFromTemperature(void){_error2_("not implemented yet");};
 		void   MigrateGroundingLine(IssmDouble* oldfloating,IssmDouble* sheet_ungrounding);
 		int    NodalValue(IssmDouble* pvalue, int index, int natureofdataenum,bool process_units);
@@ -109,5 +109,5 @@
 		void   PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes);
 		void   ProcessResultsUnits(void);
-		void   ResetCoordinateSystem(void){_error_("not implemented yet");};
+		void   ResetCoordinateSystem(void){_error2_("not implemented yet");};
 		IssmDouble SurfaceArea(void);
 		void   Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type);
Index: issm/trunk-jpl/src/c/objects/Hook.cpp
===================================================================
--- issm/trunk-jpl/src/c/objects/Hook.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Hook.cpp	(revision 12494)
@@ -185,5 +185,5 @@
 			this->objects[i]=(Object*)dataset->GetObjectById(this->offsets+i,this->ids[i]); //remember the offset for later on.
 			/*check the id is correct!: */
-			if (this->objects[i]->Id()!=this->ids[i]) _error2_("" << " wrong id: " << this->objects[i]->Id() << " vs " << this->ids[i] << "  in resolved pointer!");
+			if (this->objects[i]->Id()!=this->ids[i]) _error2_(" wrong id: " << this->objects[i]->Id() << " vs " << this->ids[i] << "  in resolved pointer!");
 		}
 	}
@@ -194,5 +194,5 @@
 	
 	/*first, check that we only have one T object in our object list: */
-	if (this->num!=1) _error2_("" << " trying to delivery a single hook object when hook holds " << this->num << " objects" << "\n");
+	if (this->num!=1) _error2_(" trying to delivery a single hook object when hook holds " << this->num << " objects" << "\n");
 
 	/*check NULL: */
Index: issm/trunk-jpl/src/c/objects/Inputs/BoolInput.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Inputs/BoolInput.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Inputs/BoolInput.h	(revision 12494)
@@ -37,10 +37,10 @@
 		int   InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* inputB){_error_("not implemented yet");};
-		Input* PointwiseMin(Input* inputB){_error_("not implemented yet");};
-		Input* PointwiseMax(Input* inputB){_error_("not implemented yet");};
+		Input* PointwiseDivide(Input* inputB){_error2_("not implemented yet");};
+		Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");};
+		Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");};
 		ElementResult* SpawnResult(int step, IssmPDouble time);
 		void Configure(Parameters* parameters);
-		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error_("not supported yet");};
+		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};
 		/*}}}*/
 		/*numerics: {{{*/
@@ -49,32 +49,32 @@
 		void GetInputValue(IssmPDouble* pvalue);
 		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss);
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};
 		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss);
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);
-		void GetInputAverage(IssmPDouble* pvalue){_error_("not implemented yet");};
-		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetInputAverage(IssmPDouble* pvalue){_error2_("not implemented yet");};
+		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
 		void ChangeEnum(int newenumtype);
 		void SquareMin(IssmPDouble* psquaremin, bool process_units,Parameters* parameters);
-		void ConstrainMin(IssmPDouble minimum){_error_("not implemented yet");};
-		IssmPDouble InfinityNorm(void){_error_("InfinityNorm not implemented for booleans");};
-		IssmPDouble Max(void){_error_("Max not implemented for booleans");};
-		IssmPDouble MaxAbs(void){_error_("Max not implemented for booleans");};
-		IssmPDouble Min(void){_error_("Min not implemented for booleans");};
-		IssmPDouble MinAbs(void){_error_("Min not implemented for booleans");};
+		void ConstrainMin(IssmPDouble minimum){_error2_("not implemented yet");};
+		IssmPDouble InfinityNorm(void){_error2_("InfinityNorm not implemented for booleans");};
+		IssmPDouble Max(void){_error2_("Max not implemented for booleans");};
+		IssmPDouble MaxAbs(void){_error2_("Max not implemented for booleans");};
+		IssmPDouble Min(void){_error2_("Min not implemented for booleans");};
+		IssmPDouble MinAbs(void){_error2_("Min not implemented for booleans");};
 		void Scale(IssmPDouble scale_factor);
-		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error_("not implemented yet");};
+		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error2_("not implemented yet");};
 		void AXPY(Input* xinput,IssmPDouble scalar);
 		void Constrain(IssmPDouble cm_min, IssmPDouble cm_max);
 		void Extrude(void);
-		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
+		void VerticallyIntegrate(Input* thickness_input){_error2_("not supported yet");};
 		void GetVectorFromInputs(Vector* vector,int* doflist);
 		void GetValuesPtr(IssmPDouble** pvalues,int* pnum_values);
Index: issm/trunk-jpl/src/c/objects/Inputs/ControlInput.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Inputs/ControlInput.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Inputs/ControlInput.h	(revision 12494)
@@ -41,9 +41,9 @@
 		int    InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* inputB){_error_("not implemented yet");};
-		Input* PointwiseMin(Input* inputB){_error_("not implemented yet");};
-		Input* PointwiseMax(Input* inputB){_error_("not implemented yet");};
+		Input* PointwiseDivide(Input* inputB){_error2_("not implemented yet");};
+		Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");};
+		Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");};
 		ElementResult* SpawnResult(int step, IssmPDouble time);
-		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error_("not supported yet");};
+		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
@@ -54,36 +54,36 @@
 		void GetInputValue(IssmPDouble* pvalue);
 		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss);
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};
 		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss);
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);
 		void GetInputAverage(IssmPDouble* pvalue);
-		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void ChangeEnum(int newenumtype){_error_("not implemented yet");};
-		void SquareMin(IssmPDouble* psquaremin, bool process_units,Parameters* parameters){_error_("not implemented yet");};
-		void ConstrainMin(IssmPDouble minimum){_error_("not implemented yet");};
-		void Scale(IssmPDouble scale_factor){_error_("not implemented yet");};
-		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error_("not implemented yet");};
-		void AXPY(Input* xinput,IssmPDouble scalar){_error_("not implemented yet");};
+		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void ChangeEnum(int newenumtype){_error2_("not implemented yet");};
+		void SquareMin(IssmPDouble* psquaremin, bool process_units,Parameters* parameters){_error2_("not implemented yet");};
+		void ConstrainMin(IssmPDouble minimum){_error2_("not implemented yet");};
+		void Scale(IssmPDouble scale_factor){_error2_("not implemented yet");};
+		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error2_("not implemented yet");};
+		void AXPY(Input* xinput,IssmPDouble scalar){_error2_("not implemented yet");};
 		void Constrain(void);
 		void Constrain(IssmPDouble min,IssmPDouble max);
-		IssmPDouble InfinityNorm(void){_error_("not implemented yet");};
-		IssmPDouble Max(void){_error_("not implemented yet");};
-		IssmPDouble MaxAbs(void){_error_("not implemented yet");};
-		IssmPDouble Min(void){_error_("not implemented yet");};
-		IssmPDouble MinAbs(void){_error_("not implemented yet");};
+		IssmPDouble InfinityNorm(void){_error2_("not implemented yet");};
+		IssmPDouble Max(void){_error2_("not implemented yet");};
+		IssmPDouble MaxAbs(void){_error2_("not implemented yet");};
+		IssmPDouble Min(void){_error2_("not implemented yet");};
+		IssmPDouble MinAbs(void){_error2_("not implemented yet");};
 		void Extrude(void);
 		void VerticallyIntegrate(Input* thickness_input);
 		void GetVectorFromInputs(Vector* vector,int* doflist,const char* data);
 		void GetVectorFromInputs(Vector* vector,int* doflist);
-		void GetValuesPtr(IssmPDouble** pvalues,int* pnum_values){_error_("not implemented yet");};
+		void GetValuesPtr(IssmPDouble** pvalues,int* pnum_values){_error2_("not implemented yet");};
 		ElementResult* SpawnGradient(int step, IssmPDouble time);
 		void GetGradient(Vector* gradient_vec,int* doflist);
Index: issm/trunk-jpl/src/c/objects/Inputs/DatasetInput.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Inputs/DatasetInput.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Inputs/DatasetInput.h	(revision 12494)
@@ -37,53 +37,53 @@
 		int    InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* inputB){_error_("not implemented yet");};
-		Input* PointwiseMin(Input* inputB){_error_("not implemented yet");};
-		Input* PointwiseMax(Input* inputB){_error_("not implemented yet");};
-		ElementResult* SpawnResult(int step, IssmPDouble time){_error_("not implemented yet");};
-		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error_("not supported yet");};
+		Input* PointwiseDivide(Input* inputB){_error2_("not implemented yet");};
+		Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");};
+		Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");};
+		ElementResult* SpawnResult(int step, IssmPDouble time){_error2_("not implemented yet");};
+		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
 		/*numeriics: {{{*/
-		void GetInputValue(bool* pvalue){_error_("not implemented yet");};
-		void GetInputValue(int* pvalue){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss){_error_("not implemented yet");};
+		void GetInputValue(bool* pvalue){_error2_("not implemented yet");};
+		void GetInputValue(int* pvalue){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");};
 		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index);
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
-		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetInputAverage(IssmPDouble* pvalue){_error_("not implemented yet");};
-		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void ChangeEnum(int newenumtype){_error_("not implemented yet");};
-		void SquareMin(IssmPDouble* psquaremin, bool process_units,Parameters* parameters){_error_("not implemented yet");};
-		void ConstrainMin(IssmPDouble minimum){_error_("not implemented yet");};
-		void Scale(IssmPDouble scale_factor){_error_("not implemented yet");};
-		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error_("not implemented yet");};
-		void AXPY(Input* xinput,IssmPDouble scalar){_error_("not implemented yet");};
-		void Constrain(void){_error_("not implemented yet");};
-		void Constrain(IssmPDouble min,IssmPDouble max){_error_("not implemented yet");};
-		IssmPDouble InfinityNorm(void){_error_("not implemented yet");};
-		IssmPDouble Max(void){_error_("not implemented yet");};
-		IssmPDouble MaxAbs(void){_error_("not implemented yet");};
-		IssmPDouble Min(void){_error_("not implemented yet");};
-		IssmPDouble MinAbs(void){_error_("not implemented yet");};
-		void Extrude(void){_error_("not implemented yet");};
-		void VerticallyIntegrate(Input* thickness_input){_error_("not implemented yet");};
-		void GetVectorFromInputs(Vector* vector,int* doflist){_error_("not implemented yet");};
-		void GetValuesPtr(IssmPDouble** pvalues,int* pnum_values){_error_("not implemented yet");};
-		ElementResult* SpawnGradient(int step, IssmPDouble time){_error_("not implemented yet");};
-		void GetGradient(Vector* gradient_vec,int* doflist){_error_("not implemented yet");};
-		void ScaleGradient(IssmPDouble scale){_error_("not implemented yet");};
-		void SetGradient(Input* gradient_in){_error_("not implemented yet");};
-		void UpdateValue(IssmPDouble scalar){_error_("not implemented yet");};
-		void SaveValue(void){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetInputAverage(IssmPDouble* pvalue){_error2_("not implemented yet");};
+		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void ChangeEnum(int newenumtype){_error2_("not implemented yet");};
+		void SquareMin(IssmPDouble* psquaremin, bool process_units,Parameters* parameters){_error2_("not implemented yet");};
+		void ConstrainMin(IssmPDouble minimum){_error2_("not implemented yet");};
+		void Scale(IssmPDouble scale_factor){_error2_("not implemented yet");};
+		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error2_("not implemented yet");};
+		void AXPY(Input* xinput,IssmPDouble scalar){_error2_("not implemented yet");};
+		void Constrain(void){_error2_("not implemented yet");};
+		void Constrain(IssmPDouble min,IssmPDouble max){_error2_("not implemented yet");};
+		IssmPDouble InfinityNorm(void){_error2_("not implemented yet");};
+		IssmPDouble Max(void){_error2_("not implemented yet");};
+		IssmPDouble MaxAbs(void){_error2_("not implemented yet");};
+		IssmPDouble Min(void){_error2_("not implemented yet");};
+		IssmPDouble MinAbs(void){_error2_("not implemented yet");};
+		void Extrude(void){_error2_("not implemented yet");};
+		void VerticallyIntegrate(Input* thickness_input){_error2_("not implemented yet");};
+		void GetVectorFromInputs(Vector* vector,int* doflist){_error2_("not implemented yet");};
+		void GetValuesPtr(IssmPDouble** pvalues,int* pnum_values){_error2_("not implemented yet");};
+		ElementResult* SpawnGradient(int step, IssmPDouble time){_error2_("not implemented yet");};
+		void GetGradient(Vector* gradient_vec,int* doflist){_error2_("not implemented yet");};
+		void ScaleGradient(IssmPDouble scale){_error2_("not implemented yet");};
+		void SetGradient(Input* gradient_in){_error2_("not implemented yet");};
+		void UpdateValue(IssmPDouble scalar){_error2_("not implemented yet");};
+		void SaveValue(void){_error2_("not implemented yet");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/Inputs/DoubleInput.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Inputs/DoubleInput.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Inputs/DoubleInput.h	(revision 12494)
@@ -40,5 +40,5 @@
 		Input* PointwiseMax(Input* inputB);
 		ElementResult* SpawnResult(int step, IssmPDouble time);
-		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error_("not supported yet");};
+		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
@@ -48,8 +48,8 @@
 		void GetInputValue(IssmPDouble* pvalue);
 		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss);
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};
 		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss);
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);
@@ -66,13 +66,13 @@
 		void ConstrainMin(IssmPDouble minimum);
 		void Scale(IssmPDouble scale_factor);
-		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error_("not implemented yet");};
+		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error2_("not implemented yet");};
 		void AXPY(Input* xinput,IssmPDouble scalar);
 		void Constrain(IssmPDouble cm_min, IssmPDouble cm_max);
-		IssmPDouble InfinityNorm(void){_error_("not implemented yet");};
+		IssmPDouble InfinityNorm(void){_error2_("not implemented yet");};
 		IssmPDouble Max(void);
 		IssmPDouble MaxAbs(void);
 		IssmPDouble Min(void);
 		IssmPDouble MinAbs(void);
-		void Extrude(void){_error_("not supported yet");};
+		void Extrude(void){_error2_("not supported yet");};
 		void VerticallyIntegrate(Input* thickness_input);
 		void GetVectorFromInputs(Vector* vector,int* doflist);
Index: issm/trunk-jpl/src/c/objects/Inputs/IntInput.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Inputs/IntInput.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Inputs/IntInput.h	(revision 12494)
@@ -37,9 +37,9 @@
 		int   InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* inputB){_error_("not implemented yet");};
-		Input* PointwiseMin(Input* inputB){_error_("not implemented yet");};
-		Input* PointwiseMax(Input* inputB){_error_("not implemented yet");};
+		Input* PointwiseDivide(Input* inputB){_error2_("not implemented yet");};
+		Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");};
+		Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");};
 		ElementResult* SpawnResult(int step, IssmPDouble time);
-		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error_("not supported yet");};
+		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
@@ -49,32 +49,32 @@
 		void GetInputValue(IssmPDouble* pvalue);
 		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss);
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};
 		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss);
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);
-		void GetInputAverage(IssmPDouble* pvalue){_error_("not implemented yet");};
-		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetInputAverage(IssmPDouble* pvalue){_error2_("not implemented yet");};
+		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
 		void ChangeEnum(int newenumtype);
 		void SquareMin(IssmPDouble* psquaremin, bool process_units,Parameters* parameters);
-		void ConstrainMin(IssmPDouble minimum){_error_("not implemented yet");};
+		void ConstrainMin(IssmPDouble minimum){_error2_("not implemented yet");};
 		void Scale(IssmPDouble scale_factor);
-		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error_("not implemented yet");};
+		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error2_("not implemented yet");};
 		void AXPY(Input* xinput,IssmPDouble scalar);
 		void Constrain(IssmPDouble cm_min, IssmPDouble cm_max);
-		IssmPDouble InfinityNorm(void){_error_("InfinityNorm not implemented for integers");};
-		IssmPDouble Max(void){_error_("Max not implemented for integers");};
-		IssmPDouble MaxAbs(void){_error_("Max not implemented for integers");};
-		IssmPDouble Min(void){_error_("Min not implemented for integers");};
-		IssmPDouble MinAbs(void){_error_("Min not implemented for integers");};
-		void Extrude(void){_error_("not supported yet");};
-		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
+		IssmPDouble InfinityNorm(void){_error2_("InfinityNorm not implemented for integers");};
+		IssmPDouble Max(void){_error2_("Max not implemented for integers");};
+		IssmPDouble MaxAbs(void){_error2_("Max not implemented for integers");};
+		IssmPDouble Min(void){_error2_("Min not implemented for integers");};
+		IssmPDouble MinAbs(void){_error2_("Min not implemented for integers");};
+		void Extrude(void){_error2_("not supported yet");};
+		void VerticallyIntegrate(Input* thickness_input){_error2_("not supported yet");};
 		void GetVectorFromInputs(Vector* vector,int* doflist);
 		void GetValuesPtr(IssmPDouble** pvalues,int* pnum_values);
Index: issm/trunk-jpl/src/c/objects/Inputs/PentaP1Input.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Inputs/PentaP1Input.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Inputs/PentaP1Input.h	(revision 12494)
@@ -41,21 +41,21 @@
 		Input* PointwiseMax(Input* inputB);
 		ElementResult* SpawnResult(int step, IssmPDouble time);
-		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error_("not supported yet");};
+		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
 		/*numerics: {{{*/
-		void GetInputValue(bool* pvalue){_error_("not implemented yet");};
-		void GetInputValue(int* pvalue){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error_("not implemented yet");};
+		void GetInputValue(bool* pvalue){_error2_("not implemented yet");};
+		void GetInputValue(int* pvalue){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};
 		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss);
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
-		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);
 		void GetInputAverage(IssmPDouble* pvalue);
-		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
 		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss);
 		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss);
@@ -68,5 +68,5 @@
 		void ConstrainMin(IssmPDouble minimum);
 		void Scale(IssmPDouble scale_factor);
-		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error_("not implemented yet");};
+		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error2_("not implemented yet");};
 		void AXPY(Input* xinput,IssmPDouble scalar);
 		void Constrain(IssmPDouble cm_min, IssmPDouble cm_max);
Index: issm/trunk-jpl/src/c/objects/Inputs/TransientInput.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Inputs/TransientInput.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Inputs/TransientInput.h	(revision 12494)
@@ -40,37 +40,37 @@
 		int    InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* forcingB){_error_("not implemented yet");};
-		Input* PointwiseMin(Input* forcingB){_error_("not implemented yet");};
-		Input* PointwiseMax(Input* forcingB){_error_("not implemented yet");};
+		Input* PointwiseDivide(Input* forcingB){_error2_("not implemented yet");};
+		Input* PointwiseMin(Input* forcingB){_error2_("not implemented yet");};
+		Input* PointwiseMax(Input* forcingB){_error2_("not implemented yet");};
 		ElementResult* SpawnResult(int step, IssmPDouble time);
 		void Configure(Parameters* parameters);
 		/*}}}*/
 		/*numerics: {{{*/
-		void GetInputValue(bool* pvalue){_error_("not implemented yet");};
-		void GetInputValue(int* pvalue){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue){_error_("not implemented yet");};
+		void GetInputValue(bool* pvalue){_error2_("not implemented yet");};
+		void GetInputValue(int* pvalue){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue){_error2_("not implemented yet");};
 		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss);
 		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time);
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);
-		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
 		void GetInputAverage(IssmPDouble* pvalue);
-		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
 		void ChangeEnum(int newenumtype);
 
 		void SquareMin(IssmPDouble* psquaremin, bool process_units,Parameters* parameters);
-		void ConstrainMin(IssmPDouble minimum){_error_("not implemented yet");};
-		void Scale(IssmPDouble scale_factor){_error_("not implemented yet");};
-		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error_("not implemented yet");};
-		void AXPY(Input* xforcing,IssmPDouble scalar){_error_("not implemented yet");};
-		void Constrain(IssmPDouble cm_min, IssmPDouble cm_max){_error_("not implemented yet");};
+		void ConstrainMin(IssmPDouble minimum){_error2_("not implemented yet");};
+		void Scale(IssmPDouble scale_factor){_error2_("not implemented yet");};
+		void ArtificialNoise(IssmPDouble min,IssmPDouble max){_error2_("not implemented yet");};
+		void AXPY(Input* xforcing,IssmPDouble scalar){_error2_("not implemented yet");};
+		void Constrain(IssmPDouble cm_min, IssmPDouble cm_max){_error2_("not implemented yet");};
 		IssmPDouble InfinityNorm(void);
 		IssmPDouble Max(void);
@@ -78,9 +78,9 @@
 		IssmPDouble Min(void);
 		IssmPDouble MinAbs(void);
-		void Extrude(void){_error_("not supported yet");}
-		void VerticallyIntegrate(Input* thickness_forcing){_error_("not supported yet");};
+		void Extrude(void){_error2_("not supported yet");}
+		void VerticallyIntegrate(Input* thickness_forcing){_error2_("not supported yet");};
 		void GetVectorFromInputs(Vector* vector,int* doflist);
-		void GetValuesPtr(IssmPDouble** pvalues,int* pnum_values){_error_("not supported yet");};
-      void GetTimeValues(IssmPDouble* values,IssmPDouble time){_error_("not implemented yet");};
+		void GetValuesPtr(IssmPDouble** pvalues,int* pnum_values){_error2_("not supported yet");};
+      void GetTimeValues(IssmPDouble* values,IssmPDouble time){_error2_("not implemented yet");};
 		Input* GetTimeInput(IssmPDouble time);
 		/*}}}*/
Index: issm/trunk-jpl/src/c/objects/Inputs/TriaP1Input.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Inputs/TriaP1Input.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Inputs/TriaP1Input.h	(revision 12494)
@@ -37,30 +37,30 @@
 		int   InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* inputB){_error_("not implemented yet");};
+		Input* PointwiseDivide(Input* inputB){_error2_("not implemented yet");};
 		Input* PointwiseMin(Input* inputB);
 		Input* PointwiseMax(Input* inputB);
 		ElementResult* SpawnResult(int step, IssmPDouble time);
-		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error_("not supported yet");};
+		void AddTimeValues(IssmPDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
 		/*numerics: {{{*/
-		void GetInputValue(bool* pvalue){_error_("not implemented yet");}
-		void GetInputValue(int* pvalue){_error_("not implemented yet");}
-		void GetInputValue(IssmPDouble* pvalue){_error_("not implemented yet");}
+		void GetInputValue(bool* pvalue){_error2_("not implemented yet");}
+		void GetInputValue(int* pvalue){_error2_("not implemented yet");}
+		void GetInputValue(IssmPDouble* pvalue){_error2_("not implemented yet");}
 		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss);
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
-		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmPDouble* pvalue,GaussPenta* gauss,int index){_error2_("not implemented yet");};
 		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);
-		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetInputDerivativeValue(IssmPDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
 		void GetInputAverage(IssmPDouble* pvalue);
 		void GetVxStrainRate2d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss);
 		void GetVyStrainRate2d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss);
-		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3d(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3d(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVzStrainRate3d(IssmPDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmPDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmPDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
 		void ChangeEnum(int newenumtype);
 
@@ -76,6 +76,6 @@
 		IssmPDouble Min(void);
 		IssmPDouble MinAbs(void);
-		void Extrude(void){_error_("not supported yet");};
-		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
+		void Extrude(void){_error2_("not supported yet");};
+		void VerticallyIntegrate(Input* thickness_input){_error2_("not supported yet");};
 		void GetVectorFromInputs(Vector* vector,int* doflist);
 		void GetValuesPtr(IssmPDouble** pvalues,int* pnum_values);
Index: issm/trunk-jpl/src/c/objects/IoModel.cpp
===================================================================
--- issm/trunk-jpl/src/c/objects/IoModel.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/IoModel.cpp	(revision 12494)
@@ -360,5 +360,5 @@
 
 					default: 
-						_error2_("" << "unknown record type:" << record_code); 
+						_error2_("unknown record type:" << record_code); 
 						break;;
 				}
@@ -428,5 +428,5 @@
 
 				default: 
-					_error2_("" << "unknown record type:" << record_code); 
+					_error2_("unknown record type:" << record_code); 
 					break;;
 				}
@@ -826,5 +826,5 @@
 
 			if(my_rank==0){  
-				if(fread(&M,sizeof(int),1,fid)!=1) _error2_("" << "could not read number of rows in " << i << "th matrix of matrix array");
+				if(fread(&M,sizeof(int),1,fid)!=1) _error2_("could not read number of rows in " << i << "th matrix of matrix array");
 			}
 			#ifdef _HAVE_MPI_
@@ -833,5 +833,5 @@
 
 			if(my_rank==0){  
-				if(fread(&N,sizeof(int),1,fid)!=1) _error2_("" << "could not read number of columns in " << i << "th matrix of matrix array");
+				if(fread(&N,sizeof(int),1,fid)!=1) _error2_("could not read number of columns in " << i << "th matrix of matrix array");
 			}
 			#ifdef _HAVE_MPI_
@@ -1137,5 +1137,5 @@
 			break; /*}}}*/
 		default: /*{{{*/
-			_error2_("" << "data code " << code << " not supported yet!");
+			_error2_("data code " << code << " not supported yet!");
 			break;
 			/*}}}*/
@@ -1228,5 +1228,5 @@
 #ifdef _HAVE_MPI_
 	MPI_Bcast(&found,1,MPI_INT,0,MPI_COMM_WORLD); 
-	if(!found)_error2_("" << "could not find data with name" << " " << EnumToStringx(data_enum) << " ");
+	if(!found)_error2_("could not find data with name" << " " << EnumToStringx(data_enum) << " ");
 #endif
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Attribute.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Attribute.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Attribute.h	(revision 12494)
@@ -30,11 +30,11 @@
 		virtual void  DeepEcho();
 		virtual void  DeepEcho(const char* indent);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_ColorStyle.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_ColorStyle.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_ColorStyle.h	(revision 12494)
@@ -35,11 +35,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Comment.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Comment.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Comment.h	(revision 12494)
@@ -30,11 +30,11 @@
 		virtual void  DeepEcho();
 		virtual void  DeepEcho(const char* indent);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Container.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Container.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Container.h	(revision 12494)
@@ -33,11 +33,11 @@
 		void  Read(FILE* fid,char* kstr);
 		void  WriteExp(FILE* fid,const char* nstr,int sgn,double cm,double sp);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Document.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Document.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Document.h	(revision 12494)
@@ -30,11 +30,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Feature.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Feature.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Feature.h	(revision 12494)
@@ -44,11 +44,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_File.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_File.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_File.h	(revision 12494)
@@ -31,11 +31,11 @@
 		void  Read(FILE* fid,char* kstr);
 		void  WriteExp(FILE* fid,const char* nstr,int sgn,double cm,double sp);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Folder.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Folder.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Folder.h	(revision 12494)
@@ -30,11 +30,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Geometry.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Geometry.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Geometry.h	(revision 12494)
@@ -29,11 +29,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_GroundOverlay.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_GroundOverlay.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_GroundOverlay.h	(revision 12494)
@@ -36,11 +36,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Icon.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Icon.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Icon.h	(revision 12494)
@@ -44,11 +44,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_LatLonBox.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_LatLonBox.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_LatLonBox.h	(revision 12494)
@@ -35,11 +35,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_LineString.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_LineString.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_LineString.h	(revision 12494)
@@ -38,11 +38,11 @@
 		void  Read(FILE* fid,char* kstr);
 		void  WriteExp(FILE* fid,const char* nstr,int sgn,double cm,double sp);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_LineStyle.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_LineStyle.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_LineStyle.h	(revision 12494)
@@ -31,11 +31,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_LinearRing.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_LinearRing.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_LinearRing.h	(revision 12494)
@@ -38,11 +38,11 @@
 		void  Read(FILE* fid,char* kstr);
 		void  WriteExp(FILE* fid,const char* nstr,int sgn,double cm,double sp);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_MultiGeometry.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_MultiGeometry.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_MultiGeometry.h	(revision 12494)
@@ -34,11 +34,11 @@
 		void  Read(FILE* fid,char* kstr);
 		void  WriteExp(FILE* fid,const char* nstr,int sgn,double cm,double sp);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Object.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Object.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Object.h	(revision 12494)
@@ -31,11 +31,11 @@
 		virtual void  DeepEcho();
 		virtual void  DeepEcho(const char* indent);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Overlay.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Overlay.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Overlay.h	(revision 12494)
@@ -36,11 +36,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Placemark.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Placemark.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Placemark.h	(revision 12494)
@@ -34,11 +34,11 @@
 		void  Read(FILE* fid,char* kstr);
 		void  WriteExp(FILE* fid,const char* nstr,int sgn,double cm,double sp);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Point.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Point.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Point.h	(revision 12494)
@@ -36,11 +36,11 @@
 		void  Read(FILE* fid,char* kstr);
 		void  WriteExp(FILE* fid,const char* nstr,int sgn,double cm,double sp);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_PolyStyle.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_PolyStyle.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_PolyStyle.h	(revision 12494)
@@ -32,11 +32,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Polygon.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Polygon.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Polygon.h	(revision 12494)
@@ -40,11 +40,11 @@
 		void  Read(FILE* fid,char* kstr);
 		void  WriteExp(FILE* fid,const char* nstr,int sgn,double cm,double sp);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Style.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Style.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Style.h	(revision 12494)
@@ -38,11 +38,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_StyleSelector.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_StyleSelector.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_StyleSelector.h	(revision 12494)
@@ -29,11 +29,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_SubStyle.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_SubStyle.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_SubStyle.h	(revision 12494)
@@ -29,11 +29,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/KML/KML_Unknown.h
===================================================================
--- issm/trunk-jpl/src/c/objects/KML/KML_Unknown.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/KML/KML_Unknown.h	(revision 12494)
@@ -32,11 +32,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		int   Id(){_error_("Not implemented yet.");};
-		int   MyRank(){_error_("Not implemented yet.");};
-		void  Marshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   MarshallSize(){_error_("Not implemented yet.");};
-		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
-		int   ObjectEnum(){_error_("Not implemented yet.");};
-		Object* copy(){_error_("Not implemented yet.");};
+		int   Id(){_error2_("Not implemented yet.");};
+		int   MyRank(){_error2_("Not implemented yet.");};
+		void  Marshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   MarshallSize(){_error2_("Not implemented yet.");};
+		void  Demarshall(char** pmarshalled_dataset){_error2_("Not implemented yet.");};
+		int   ObjectEnum(){_error2_("Not implemented yet.");};
+		Object* copy(){_error2_("Not implemented yet.");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/Kriging/ExponentialVariogram.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Kriging/ExponentialVariogram.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Kriging/ExponentialVariogram.h	(revision 12494)
@@ -23,9 +23,9 @@
 		/*Object virtual functions definitions*/
 		void  Echo();
-		void  DeepEcho(){_error_("Not implemented yet");};
-		int   Id(){_error_("Not implemented yet");}; 
-		int   MyRank(){_error_("Not implemented yet");};
-		int   ObjectEnum(){_error_("Not implemented yet");};
-		Object* copy(){_error_("Not implemented yet");};
+		void  DeepEcho(){_error2_("Not implemented yet");};
+		int   Id(){_error2_("Not implemented yet");}; 
+		int   MyRank(){_error2_("Not implemented yet");};
+		int   ObjectEnum(){_error2_("Not implemented yet");};
+		Object* copy(){_error2_("Not implemented yet");};
 
 		/*Variogram functions*/
Index: issm/trunk-jpl/src/c/objects/Kriging/GaussianVariogram.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Kriging/GaussianVariogram.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Kriging/GaussianVariogram.h	(revision 12494)
@@ -23,9 +23,9 @@
 		/*Object virtual functions definitions*/
 		void  Echo();
-		void  DeepEcho(){_error_("Not implemented yet");};
-		int   Id(){_error_("Not implemented yet");}; 
-		int   MyRank(){_error_("Not implemented yet");};
-		int   ObjectEnum(){_error_("Not implemented yet");};
-		Object* copy(){_error_("Not implemented yet");};
+		void  DeepEcho(){_error2_("Not implemented yet");};
+		int   Id(){_error2_("Not implemented yet");}; 
+		int   MyRank(){_error2_("Not implemented yet");};
+		int   ObjectEnum(){_error2_("Not implemented yet");};
+		Object* copy(){_error2_("Not implemented yet");};
 
 		/*Variogram functions*/
Index: issm/trunk-jpl/src/c/objects/Kriging/Observation.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Kriging/Observation.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Kriging/Observation.h	(revision 12494)
@@ -24,9 +24,9 @@
 		/*Object virtual functions definitions*/
 		void    Echo();
-		void    DeepEcho()  {_error_("Not implemented yet"); };
-		int     Id()        {_error_("Not implemented yet"); };
-		int     MyRank()    {_error_("Not implemented yet"); };
-		int     ObjectEnum(){_error_("Not implemented yet"); };
-		Object *copy()      {_error_("Not implemented yet"); };
+		void    DeepEcho()  {_error2_("Not implemented yet"); };
+		int     Id()        {_error2_("Not implemented yet"); };
+		int     MyRank()    {_error2_("Not implemented yet"); };
+		int     ObjectEnum(){_error2_("Not implemented yet"); };
+		Object *copy()      {_error2_("Not implemented yet"); };
 
 		/*Management*/
Index: issm/trunk-jpl/src/c/objects/Kriging/PowerVariogram.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Kriging/PowerVariogram.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Kriging/PowerVariogram.h	(revision 12494)
@@ -23,9 +23,9 @@
 		/*Object virtual functions definitions*/
 		void  Echo();
-		void  DeepEcho(){_error_("Not implemented yet");};
-		int   Id(){_error_("Not implemented yet");}; 
-		int   MyRank(){_error_("Not implemented yet");};
-		int   ObjectEnum(){_error_("Not implemented yet");};
-		Object* copy(){_error_("Not implemented yet");};
+		void  DeepEcho(){_error2_("Not implemented yet");};
+		int   Id(){_error2_("Not implemented yet");}; 
+		int   MyRank(){_error2_("Not implemented yet");};
+		int   ObjectEnum(){_error2_("Not implemented yet");};
+		Object* copy(){_error2_("Not implemented yet");};
 
 		/*Variogram functions*/
Index: issm/trunk-jpl/src/c/objects/Kriging/Quadtree.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Kriging/Quadtree.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Kriging/Quadtree.h	(revision 12494)
@@ -27,9 +27,9 @@
 				/*Object functions (Needed because the Quadtree uses a Container*/
 				void    Echo();
-				void    DeepEcho()  {_error_("not implemented yet"); };
-				int     Id()        {_error_("not implemented yet"); };
-				int     MyRank()    {_error_("not implemented yet"); };
-				int     ObjectEnum(){_error_("not implemented yet"); };
-				Object *copy()      {_error_("not implemented yet"); };
+				void    DeepEcho()  {_error2_("not implemented yet"); };
+				int     Id()        {_error2_("not implemented yet"); };
+				int     MyRank()    {_error2_("not implemented yet"); };
+				int     ObjectEnum(){_error2_("not implemented yet"); };
+				Object *copy()      {_error2_("not implemented yet"); };
 
 				/*Methods*/
Index: issm/trunk-jpl/src/c/objects/Kriging/SphericalVariogram.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Kriging/SphericalVariogram.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Kriging/SphericalVariogram.h	(revision 12494)
@@ -23,9 +23,9 @@
 		/*Object virtual functions definitions*/
 		void  Echo();
-		void  DeepEcho(){_error_("Not implemented yet");};
-		int   Id(){_error_("Not implemented yet");}; 
-		int   MyRank(){_error_("Not implemented yet");};
-		int   ObjectEnum(){_error_("Not implemented yet");};
-		Object* copy(){_error_("Not implemented yet");};
+		void  DeepEcho(){_error2_("Not implemented yet");};
+		int   Id(){_error2_("Not implemented yet");}; 
+		int   MyRank(){_error2_("Not implemented yet");};
+		int   ObjectEnum(){_error2_("Not implemented yet");};
+		Object* copy(){_error2_("Not implemented yet");};
 
 		/*Variogram functions*/
Index: issm/trunk-jpl/src/c/objects/Loads/Icefront.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Loads/Icefront.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Loads/Icefront.h	(revision 12494)
@@ -64,5 +64,5 @@
 		void  InputUpdateFromConstant(bool constant, int name);
 		void  InputUpdateFromSolution(IssmDouble* solution);
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
 		/*}}}*/
 		/*Load virtual functions definitions: {{{*/
Index: issm/trunk-jpl/src/c/objects/Loads/Numericalflux.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Loads/Numericalflux.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Loads/Numericalflux.h	(revision 12494)
@@ -50,15 +50,15 @@
 		/*Update virtual functions resolution: {{{*/
 		void    InputUpdateFromVector(IssmDouble* vector, int name, int type){/*Do nothing*/}
-		void    InputUpdateFromVector(int* vector, int name, int type){_error_("Not implemented yet!");}
-		void    InputUpdateFromVector(bool* vector, int name, int type){_error_("Not implemented yet!");}
+		void    InputUpdateFromVector(int* vector, int name, int type){_error2_("Not implemented yet!");}
+		void    InputUpdateFromVector(bool* vector, int name, int type){_error2_("Not implemented yet!");}
 		void    InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){/*Do nothing*/}
 		void    InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){/*Do nothing*/}
-		void    InputUpdateFromVectorDakota(int* vector, int name, int type){_error_("Not implemented yet!");}
-		void    InputUpdateFromVectorDakota(bool* vector, int name, int type){_error_("Not implemented yet!");}
+		void    InputUpdateFromVectorDakota(int* vector, int name, int type){_error2_("Not implemented yet!");}
+		void    InputUpdateFromVectorDakota(bool* vector, int name, int type){_error2_("Not implemented yet!");}
 		void    InputUpdateFromConstant(IssmDouble constant, int name){/*Do nothing*/};
 		void    InputUpdateFromConstant(int constant, int name){/*Do nothing*/};
-		void    InputUpdateFromConstant(bool constant, int name){_error_("Not implemented yet!");}
-		void    InputUpdateFromSolution(IssmDouble* solution){_error_("Not implemented yet!");}
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
+		void    InputUpdateFromConstant(bool constant, int name){_error2_("Not implemented yet!");}
+		void    InputUpdateFromSolution(IssmDouble* solution){_error2_("Not implemented yet!");}
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
 		/*}}}*/
 		/*Load virtual functions definitions: {{{*/
@@ -67,6 +67,6 @@
 		void  CreateKMatrix(Matrix* Kff, Matrix* Kfs);
 		void  CreatePVector(Vector* pf);
-		void  CreateJacobianMatrix(Matrix* Jff){_error_("Not implemented yet");};
-		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error_("Not implemented yet");};
+		void  CreateJacobianMatrix(Matrix* Jff){_error2_("Not implemented yet");};
+		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error2_("Not implemented yet");};
 		void  PenaltyCreateKMatrix(Matrix* Kff, Matrix* kfs, IssmDouble kmax);
 		void  PenaltyCreatePVector(Vector* pf, IssmDouble kmax);
Index: issm/trunk-jpl/src/c/objects/Loads/Pengrid.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Loads/Pengrid.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Loads/Pengrid.h	(revision 12494)
@@ -65,5 +65,5 @@
 		void  InputUpdateFromConstant(bool constant, int name);
 		void  InputUpdateFromSolution(IssmDouble* solution);
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
 		/*}}}*/
 		/*Load virtual functions definitions: {{{*/
@@ -72,6 +72,6 @@
 		void  CreateKMatrix(Matrix* Kff, Matrix* Kfs);
 		void  CreatePVector(Vector* pf);
-		void  CreateJacobianMatrix(Matrix* Jff){_error_("Not implemented yet");};
-		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error_("Not implemented yet");};
+		void  CreateJacobianMatrix(Matrix* Jff){_error2_("Not implemented yet");};
+		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error2_("Not implemented yet");};
 		void  PenaltyCreateKMatrix(Matrix* Kff, Matrix* kfs, IssmDouble kmax);
 		void  PenaltyCreatePVector(Vector* pf, IssmDouble kmax);
Index: issm/trunk-jpl/src/c/objects/Loads/Penpair.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Loads/Penpair.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Loads/Penpair.h	(revision 12494)
@@ -44,13 +44,13 @@
 		void  InputUpdateFromVector(int* vector, int name, int type);
 		void  InputUpdateFromVector(bool* vector, int name, int type);
-		void  InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrow, int ncols,int name, int type){_error_("Not implemented yet!");}
-		void  InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error_("Not implemented yet!");}
-		void  InputUpdateFromVectorDakota(int* vector, int name, int type){_error_("Not implemented yet!");}
-		void  InputUpdateFromVectorDakota(bool* vector, int name, int type){_error_("Not implemented yet!");}
+		void  InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrow, int ncols,int name, int type){_error2_("Not implemented yet!");}
+		void  InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error2_("Not implemented yet!");}
+		void  InputUpdateFromVectorDakota(int* vector, int name, int type){_error2_("Not implemented yet!");}
+		void  InputUpdateFromVectorDakota(bool* vector, int name, int type){_error2_("Not implemented yet!");}
 		void  InputUpdateFromConstant(IssmDouble constant, int name);
 		void  InputUpdateFromConstant(int constant, int name);
 		void  InputUpdateFromConstant(bool constant, int name);
-		void  InputUpdateFromSolution(IssmDouble* solution){_error_("Not implemented yet!");}
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
+		void  InputUpdateFromSolution(IssmDouble* solution){_error2_("Not implemented yet!");}
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
 		/*}}}*/
 			/*Load virtual functions definitions: {{{*/
Index: issm/trunk-jpl/src/c/objects/Loads/Riftfront.cpp
===================================================================
--- issm/trunk-jpl/src/c/objects/Loads/Riftfront.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Loads/Riftfront.cpp	(revision 12494)
@@ -536,5 +536,5 @@
 	else if(fill==MelangeEnum){ //icefront finding itself against another icefront (pressure imbalance is fully compensated, ice vs ice)
 
-		if(!shelf) _error2_("" << "fill type " << fill << " not supported on ice sheets yet.");
+		if(!shelf) _error2_("fill type " << fill << " not supported on ice sheets yet.");
 
 		pressure_litho=rho_ice*gravity*pow(thickness,(IssmDouble)2)/(IssmDouble)2;
@@ -546,5 +546,5 @@
 	}
 	else{
-		_error2_("" << "fill type " << fill << " not supported yet.");
+		_error2_("fill type " << fill << " not supported yet.");
 	}
 
Index: issm/trunk-jpl/src/c/objects/Loads/Riftfront.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Loads/Riftfront.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Loads/Riftfront.h	(revision 12494)
@@ -62,15 +62,15 @@
 		/*Update virtual functions resolution: {{{*/
 		void    InputUpdateFromVector(IssmDouble* vector, int name, int type);
-		void    InputUpdateFromVector(int* vector, int name, int type){_error_("Not implemented yet!");}
-		void    InputUpdateFromVector(bool* vector, int name, int type){_error_("Not implemented yet!");}
-		void    InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows,int ncols, int name, int type){_error_("Not implemented yet!");}
-		void    InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error_("Not implemented yet!");}
-		void    InputUpdateFromVectorDakota(int* vector, int name, int type){_error_("Not implemented yet!");}
-		void    InputUpdateFromVectorDakota(bool* vector, int name, int type){_error_("Not implemented yet!");}
+		void    InputUpdateFromVector(int* vector, int name, int type){_error2_("Not implemented yet!");}
+		void    InputUpdateFromVector(bool* vector, int name, int type){_error2_("Not implemented yet!");}
+		void    InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows,int ncols, int name, int type){_error2_("Not implemented yet!");}
+		void    InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error2_("Not implemented yet!");}
+		void    InputUpdateFromVectorDakota(int* vector, int name, int type){_error2_("Not implemented yet!");}
+		void    InputUpdateFromVectorDakota(bool* vector, int name, int type){_error2_("Not implemented yet!");}
 		void    InputUpdateFromConstant(IssmDouble constant, int name);
-		void    InputUpdateFromConstant(int constant, int name){_error_("Not implemented yet!");}
+		void    InputUpdateFromConstant(int constant, int name){_error2_("Not implemented yet!");}
 		void    InputUpdateFromConstant(bool constant, int name);
-		void    InputUpdateFromSolution(IssmDouble* solution){_error_("Not implemented yet!");}
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
+		void    InputUpdateFromSolution(IssmDouble* solution){_error2_("Not implemented yet!");}
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
 		/*}}}*/
 		/*Load virtual functions definitions: {{{*/
@@ -79,6 +79,6 @@
 		void  CreateKMatrix(Matrix* Kff, Matrix* Kfs);
 		void  CreatePVector(Vector* pf);
-		void  CreateJacobianMatrix(Matrix* Jff){_error_("Not implemented yet");};
-		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error_("Not implemented yet");};
+		void  CreateJacobianMatrix(Matrix* Jff){_error2_("Not implemented yet");};
+		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error2_("Not implemented yet");};
 		void  PenaltyCreateKMatrix(Matrix* Kff, Matrix* kfs, IssmDouble kmax);
 		void  PenaltyCreatePVector(Vector* pf, IssmDouble kmax);
Index: issm/trunk-jpl/src/c/objects/Materials/Matpar.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Materials/Matpar.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Materials/Matpar.h	(revision 12494)
@@ -62,8 +62,8 @@
 		void   InputUpdateFromConstant(bool constant, int name);
 		void   InputUpdateFromSolution(IssmDouble* solution);
-		void   InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
+		void   InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
 		/*}}}*/
 		/*Material virtual functions resolution: {{{*/
-		void   InputDuplicate(int original_enum,int new_enum){_error_("not implemented yet");};
+		void   InputDuplicate(int original_enum,int new_enum){_error2_("not implemented yet");};
 		void   Configure(Elements* elements);
 		void   GetVectorFromInputs(Vector* vector,int input_enum){return;}
Index: issm/trunk-jpl/src/c/objects/Node.cpp
===================================================================
--- issm/trunk-jpl/src/c/objects/Node.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Node.cpp	(revision 12494)
@@ -231,5 +231,5 @@
 		return indexing.sdoflist[dofindex];
 	}
-	else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+	else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 
 }
@@ -303,5 +303,5 @@
 			else for(i=0;i<this->indexing.ssize;i++) outdoflist[i]=indexing.sdoflist[i];
 		}
-		else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+		else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 	}
 }
@@ -343,5 +343,5 @@
 			}
 		}
-		else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+		else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 	}
 	else{
@@ -412,5 +412,5 @@
 			}
 		}
-		else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+		else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 	}
 }
@@ -598,5 +598,5 @@
 		else if (setenum==FsetEnum) numdofs=this->indexing.fsize;
 		else if (setenum==SsetEnum) numdofs=this->indexing.ssize;
-		else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+		else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 	}
 	else{
@@ -628,5 +628,5 @@
 			else numdofs=this->indexing.ssize;
 		}
-		else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+		else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 	}
 	return numdofs;
@@ -928,5 +928,5 @@
 		dofcount+=this->indexing.ssize;
 	}
-	else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+	else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 
 
@@ -957,5 +957,5 @@
 		for(i=0;i<this->indexing.ssize;i++) indexing.sdoflist[i]+=dofcount;
 	}
-	else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+	else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 }
 /*}}}*/
@@ -973,5 +973,5 @@
 	else if(setenum==FsetEnum)for(j=0;j<this->indexing.fsize;j++)  *(truedofs+ncols*sid+j)=indexing.fdoflist[j];
 	else if(setenum==SsetEnum)for(j=0;j<this->indexing.ssize;j++)  *(truedofs+ncols*sid+j)=indexing.sdoflist[j];
-	else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+	else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 
 }
@@ -992,5 +992,5 @@
 	else if(setenum==FsetEnum)for(j=0;j<this->indexing.fsize;j++) indexing.fdoflist[j]=*(alltruedofs+ncols*sid+j);
 	else if(setenum==SsetEnum)for(j=0;j<this->indexing.ssize;j++) indexing.sdoflist[j]=*(alltruedofs+ncols*sid+j);
-	else _error2_("" << " set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+	else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 
 }
Index: issm/trunk-jpl/src/c/objects/Node.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Node.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Node.h	(revision 12494)
@@ -45,5 +45,5 @@
 		int   MyRank();
 		int   ObjectEnum();
-		Object* copy(){_error_("Not implemented yet (similar to Elements)");};
+		Object* copy(){_error2_("Not implemented yet (similar to Elements)");};
 		/*}}}*/
 		/*Update virtual functions definitions: {{{*/
@@ -59,6 +59,6 @@
 		void  InputUpdateFromConstant(int constant, int name);
 		void  InputUpdateFromConstant(bool constant, int name);
-		void  InputUpdateFromSolution(IssmDouble* solution){_error_("Not implemented yet!");}
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("Not implemented yet!");}
+		void  InputUpdateFromSolution(IssmDouble* solution){_error2_("Not implemented yet!");}
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("Not implemented yet!");}
 		/*}}}*/
 		/*Node numerical routines {{{*/
Index: issm/trunk-jpl/src/c/objects/Options/Option.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Options/Option.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Options/Option.h	(revision 12494)
@@ -31,8 +31,8 @@
 		virtual void  DeepEcho();
 		virtual void  DeepEcho(char* indent);
-		int   Id(){_error_("Not implemented yet");};
-		int   MyRank(){_error_("Not implemented yet");};
+		int   Id(){_error2_("Not implemented yet");};
+		int   MyRank(){_error2_("Not implemented yet");};
 		int   ObjectEnum(){return OptionEnum;};
-		Object* copy(){_error_("Not implemented yet");};
+		Object* copy(){_error2_("Not implemented yet");};
 		/*}}}*/
 
Index: issm/trunk-jpl/src/c/objects/Options/OptionCell.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Options/OptionCell.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Options/OptionCell.h	(revision 12494)
@@ -28,8 +28,8 @@
 		void  DeepEcho();
 		void  DeepEcho(char* indent);
-		int   Id(){_error_("Not implemented yet");};
-		int   MyRank(){_error_("Not implemented yet");};
+		int   Id(){_error2_("Not implemented yet");};
+		int   MyRank(){_error2_("Not implemented yet");};
 		int   ObjectEnum(){return OptionCellEnum;};
-		Object* copy(){_error_("Not implemented yet");};
+		Object* copy(){_error2_("Not implemented yet");};
 		/*}}}*/
 
@@ -39,12 +39,12 @@
 		int   NDims();
 		int*  Size();
-		void  Get(int* pvalue){_error_("An OptionCell object cannot return a int");};
-		void  Get(IssmPDouble* pvalue){_error_("An OptionCell object cannot return a IssmPDouble");};
-		void  Get(bool* pvalue){  _error_("An OptionCell object cannot return a bool");};
-		void  Get(char** pvalue){ _error_("An OptionCell object cannot return a string");};
-		void  Get(char*** ppvalue,int *pnumel){ _error_("An OptionCell object cannot return a string vec");};
-		void  Get(IssmPDouble** pvalue,int *pnumel){ _error_("An OptionCell object cannot return a IssmPDouble vec");};
+		void  Get(int* pvalue){_error2_("An OptionCell object cannot return a int");};
+		void  Get(IssmPDouble* pvalue){_error2_("An OptionCell object cannot return a IssmPDouble");};
+		void  Get(bool* pvalue){  _error2_("An OptionCell object cannot return a bool");};
+		void  Get(char** pvalue){ _error2_("An OptionCell object cannot return a string");};
+		void  Get(char*** ppvalue,int *pnumel){ _error2_("An OptionCell object cannot return a string vec");};
+		void  Get(IssmPDouble** pvalue,int *pnumel){ _error2_("An OptionCell object cannot return a IssmPDouble vec");};
 		void  Get(Options** pvalue);
-		void  Get(Options*** ppvalue,int *pnumel){ _error_("An OptionCell object cannot return an Options DataSet vec");};
+		void  Get(Options*** ppvalue,int *pnumel){ _error2_("An OptionCell object cannot return an Options DataSet vec");};
 
 };
Index: issm/trunk-jpl/src/c/objects/Options/OptionChar.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Options/OptionChar.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Options/OptionChar.h	(revision 12494)
@@ -28,8 +28,8 @@
 		void  DeepEcho();
 		void  DeepEcho(char* indent);
-		int   Id(){_error_("Not implemented yet");};
-		int   MyRank(){_error_("Not implemented yet");};
+		int   Id(){_error2_("Not implemented yet");};
+		int   MyRank(){_error2_("Not implemented yet");};
 		int   ObjectEnum(){return OptionCharEnum;};
-		Object* copy(){_error_("Not implemented yet");};
+		Object* copy(){_error2_("Not implemented yet");};
 		/*}}}*/
 
@@ -39,12 +39,12 @@
 		int   NDims();
 		int*  Size();
-		void  Get(int* pvalue){_error_("An OptionChar object cannot return a int");};
-		void  Get(IssmPDouble* pvalue){_error_("An OptionChar object cannot return a IssmPDouble");};
-		void  Get(bool* pvalue){  _error_("An OptionChar object cannot return a bool");};
+		void  Get(int* pvalue){_error2_("An OptionChar object cannot return a int");};
+		void  Get(IssmPDouble* pvalue){_error2_("An OptionChar object cannot return a IssmPDouble");};
+		void  Get(bool* pvalue){  _error2_("An OptionChar object cannot return a bool");};
 		void  Get(char** pvalue);
 		void  Get(char*** ppvalue,int *pnumel);
-		void  Get(IssmPDouble** pvalue,int *pnumel){ _error_("An OptionChar object cannot return a IssmPDouble vec");};
-		void  Get(Options** pvalue){ _error_("An OptionChar object cannot return an Options DataSet");};
-		void  Get(Options*** ppvalue,int *pnumel){ _error_("An OptionChar object cannot return an Options DataSet vec");};
+		void  Get(IssmPDouble** pvalue,int *pnumel){ _error2_("An OptionChar object cannot return a IssmPDouble vec");};
+		void  Get(Options** pvalue){ _error2_("An OptionChar object cannot return an Options DataSet");};
+		void  Get(Options*** ppvalue,int *pnumel){ _error2_("An OptionChar object cannot return an Options DataSet vec");};
 
 };
Index: issm/trunk-jpl/src/c/objects/Options/OptionDouble.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Options/OptionDouble.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Options/OptionDouble.h	(revision 12494)
@@ -28,8 +28,8 @@
 		void  DeepEcho();
 		void  DeepEcho(char* indent);
-		int   Id(){_error_("Not implemented yet");};
-		int   MyRank(){_error_("Not implemented yet");};
+		int   Id(){_error2_("Not implemented yet");};
+		int   MyRank(){_error2_("Not implemented yet");};
 		int   ObjectEnum(){return OptionDoubleEnum;};
-		Object* copy(){_error_("Not implemented yet");};
+		Object* copy(){_error2_("Not implemented yet");};
 		/*}}}*/
 
@@ -41,10 +41,10 @@
 		void  Get(int* pvalue);
 		void  Get(IssmPDouble* pvalue);
-		void  Get(bool* pvalue){  _error_("An OptionDouble object cannot return a bool");};
-		void  Get(char** pvalue){ _error_("An OptionDouble object cannot return a string");};
-		void  Get(char*** ppvalue,int *pnumel){ _error_("An OptionDouble object cannot return a string vec");};
+		void  Get(bool* pvalue){  _error2_("An OptionDouble object cannot return a bool");};
+		void  Get(char** pvalue){ _error2_("An OptionDouble object cannot return a string");};
+		void  Get(char*** ppvalue,int *pnumel){ _error2_("An OptionDouble object cannot return a string vec");};
 		void  Get(IssmPDouble** pvalue,int* pnumel);
-		void  Get(Options** pvalue){ _error_("An OptionDouble object cannot return an Options DataSet");};
-		void  Get(Options*** ppvalue,int *pnumel){ _error_("An OptionDouble object cannot return an Options DataSet vec");};
+		void  Get(Options** pvalue){ _error2_("An OptionDouble object cannot return an Options DataSet");};
+		void  Get(Options*** ppvalue,int *pnumel){ _error2_("An OptionDouble object cannot return an Options DataSet vec");};
 
 };
Index: issm/trunk-jpl/src/c/objects/Options/OptionLogical.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Options/OptionLogical.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Options/OptionLogical.h	(revision 12494)
@@ -28,8 +28,8 @@
 		void  DeepEcho();
 		void  DeepEcho(char* indent);
-		int   Id(){_error_("Not implemented yet");};
-		int   MyRank(){_error_("Not implemented yet");};
+		int   Id(){_error2_("Not implemented yet");};
+		int   MyRank(){_error2_("Not implemented yet");};
 		int   ObjectEnum(){return OptionLogicalEnum;};
-		Object* copy(){_error_("Not implemented yet");};
+		Object* copy(){_error2_("Not implemented yet");};
 		/*}}}*/
 
@@ -39,12 +39,12 @@
 		int   NDims();
 		int*  Size();
-		void  Get(int* pvalue){_error_("An OptionLogical object cannot return a int");};
-		void  Get(IssmPDouble* pvalue){_error_("An OptionLogical object cannot return a IssmPDouble");};
+		void  Get(int* pvalue){_error2_("An OptionLogical object cannot return a int");};
+		void  Get(IssmPDouble* pvalue){_error2_("An OptionLogical object cannot return a IssmPDouble");};
 		void  Get(bool* pvalue);
-		void  Get(char** pvalue){ _error_("An OptionLogical object cannot return a string");};
-		void  Get(char*** ppvalue,int *pnumel){ _error_("An OptionLogical object cannot return a string vec");};
-		void  Get(IssmPDouble** pvalue,int *pnumel){ _error_("An OptionLogical object cannot return a IssmPDouble vec");};
-		void  Get(Options** pvalue){ _error_("An OptionLogical object cannot return an Options DataSet");};
-		void  Get(Options*** ppvalue,int *pnumel){ _error_("An OptionLogical object cannot return an Options DataSet vec");};
+		void  Get(char** pvalue){ _error2_("An OptionLogical object cannot return a string");};
+		void  Get(char*** ppvalue,int *pnumel){ _error2_("An OptionLogical object cannot return a string vec");};
+		void  Get(IssmPDouble** pvalue,int *pnumel){ _error2_("An OptionLogical object cannot return a IssmPDouble vec");};
+		void  Get(Options** pvalue){ _error2_("An OptionLogical object cannot return an Options DataSet");};
+		void  Get(Options*** ppvalue,int *pnumel){ _error2_("An OptionLogical object cannot return an Options DataSet vec");};
 
 };
Index: issm/trunk-jpl/src/c/objects/Options/OptionStruct.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Options/OptionStruct.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Options/OptionStruct.h	(revision 12494)
@@ -28,8 +28,8 @@
 		void  DeepEcho();
 		void  DeepEcho(char* indent);
-		int   Id(){_error_("Not implemented yet");};
-		int   MyRank(){_error_("Not implemented yet");};
+		int   Id(){_error2_("Not implemented yet");};
+		int   MyRank(){_error2_("Not implemented yet");};
 		int   ObjectEnum(){return OptionStructEnum;};
-		Object* copy(){_error_("Not implemented yet");};
+		Object* copy(){_error2_("Not implemented yet");};
 		/*}}}*/
 
@@ -39,10 +39,10 @@
 		int   NDims();
 		int*  Size();
-		void  Get(int* pvalue){_error_("An OptionStruct object cannot return a int");};
-		void  Get(IssmPDouble* pvalue){_error_("An OptionStruct object cannot return a IssmPDouble");};
-		void  Get(bool* pvalue){  _error_("An OptionStruct object cannot return a bool");};
-		void  Get(char** pvalue){ _error_("An OptionStruct object cannot return a string");};
-		void  Get(char*** ppvalue,int *pnumel){ _error_("An OptionStruct object cannot return a string vec");};
-		void  Get(IssmPDouble** pvalue,int *pnumel){ _error_("An OptionStruct object cannot return a IssmPDouble vec");};
+		void  Get(int* pvalue){_error2_("An OptionStruct object cannot return a int");};
+		void  Get(IssmPDouble* pvalue){_error2_("An OptionStruct object cannot return a IssmPDouble");};
+		void  Get(bool* pvalue){  _error2_("An OptionStruct object cannot return a bool");};
+		void  Get(char** pvalue){ _error2_("An OptionStruct object cannot return a string");};
+		void  Get(char*** ppvalue,int *pnumel){ _error2_("An OptionStruct object cannot return a string vec");};
+		void  Get(IssmPDouble** pvalue,int *pnumel){ _error2_("An OptionStruct object cannot return a IssmPDouble vec");};
 		void  Get(Options** pvalue);
 		void  Get(Options*** ppvalue,int *pnumel);
Index: issm/trunk-jpl/src/c/objects/Params/BoolParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/BoolParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/BoolParam.h	(revision 12494)
@@ -43,30 +43,30 @@
 		int   InstanceEnum(){return enum_type;}
 		void  GetParameterValue(bool* pbool){*pbool=value;}
-		void  GetParameterValue(int* pinteger){_error_("Bool param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM){_error_("Bool param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Bool param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Bool param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("Bool param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Bool param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Bool param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Bool param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Bool param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("Bool param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("Bool param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(FILE** pfid){_error_("Bool param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(int* pinteger){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
 		void  SetValue(bool boolean){this->value=boolean;}
 		void  SetValue(int integer){this->value=(bool)integer;}
 		void  SetValue(IssmPDouble scalar){this->value=(bool)scalar;}
-		void  SetValue(char* string){_error_("Bool param of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("Bool param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Bool param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Bool param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M){_error_("Bool param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* pintarray,int M,int N){_error_("Bool param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Vector* vec){_error_("Bool param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("Bool param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("Bool param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Bool param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(char* string){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(Vector* vec){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 		
Index: issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.h	(revision 12494)
@@ -45,30 +45,30 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error_("DoubleMatArray param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int* pinteger){_error_("DoubleMatArray param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM){_error_("DoubleMatArray param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("DoubleMatArray param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("DoubleMatArray param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("DoubleMatArray param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("DoubleMatArray param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("DoubleMatArray param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("DoubleMatArray param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
 		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims);
-		void  GetParameterValue(Vector** pvec){_error_("DoubleMatArray param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("DoubleMatArray param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(FILE** pfid){_error_("DoubleMatArray param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(Vector** pvec){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error_("DoubleMatArray param of enum %i (%s) cannot hold a boolean",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int integer){_error_("DoubleMatArray param of enum %i (%s) cannot hold an integer",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble scalar){_error_("DoubleMatArray param of enum %i (%s) cannot hold a scalar",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char* string){_error_("DoubleMatArray param of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("DoubleMatArray param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("DoubleMatArray param of enum %i (%s) cannot hold a IssmDouble vec array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M,int N){_error_("DoubleMatArray param of enum %i (%s) cannot hold a IssmDouble mat array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M){_error_("DoubleMatArray param of enum %i (%s) cannot hold a int vec array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M,int N){_error_("DoubleMatArray param of enum %i (%s) cannot hold a int mat array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Vector* vec){_error_("DoubleMatArray param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("DoubleMatArray param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("Bool param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(bool boolean){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a boolean");}
+		void  SetValue(int integer){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a scalar");}
+		void  SetValue(char* string){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble vec array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M,int N){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble mat array");}
+		void  SetValue(int* intarray,int M){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int vec array");}
+		void  SetValue(int* intarray,int M,int N){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int mat array");}
+		void  SetValue(Vector* vec){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("DoubleMatArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
 		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array);
 		void  UnitConversion(int direction_enum);
Index: issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.h	(revision 12494)
@@ -44,31 +44,31 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error_("DoubleMat param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int* pinteger){_error_("DoubleMat param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM){_error_("DoubleMat param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
 		void  GetParameterValue(int** pintarray,int* pM,int* pN);
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("DoubleMat param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("DoubleMat param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("DoubleMat param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("DoubleMat param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
 		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN);
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("DoubleMat param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("DoubleMat param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("DoubleMat param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(FILE** pfid){_error_("DoubleMat param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error_("DoubleMat param of enum %i (%s) cannot hold a boolean",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int integer){_error_("DoubleMat param of enum %i (%s) cannot hold an integer",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble scalar){_error_("DoubleMat param of enum %i (%s) cannot hold a scalar",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char* string){_error_("DoubleMat param of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("DoubleMat param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("DoubleMat param of enum %i (%s) cannot hold a IssmDouble vec array",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(bool boolean){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a boolean");}
+		void  SetValue(int integer){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a scalar");}
+		void  SetValue(char* string){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble vec array");}
 		void  SetValue(IssmDouble* IssmDoublearray,int M,int N);
-		void  SetValue(int* intarray,int M){_error_("DoubleMat param of enum %i (%s) cannot hold a int vec array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M,int N){_error_("DoubleMat param of enum %i (%s) cannot hold a int mat array",enum_type,EnumToStringx(enum_type));};
-		void  SetValue(Vector* vec){_error_("DoubleMat param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("DoubleMat param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("DoubleMat param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("DoubleMat param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(int* intarray,int M){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int vec array");}
+		void  SetValue(int* intarray,int M,int N){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int mat array");};
+		void  SetValue(Vector* vec){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("DoubleMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 		IssmDouble* GetPointer(void);
Index: issm/trunk-jpl/src/c/objects/Params/DoubleParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/DoubleParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/DoubleParam.h	(revision 12494)
@@ -48,26 +48,26 @@
 		void  GetParameterValue(int** pintarray,int* pM,int* pN);
 		void  GetParameterValue(IssmDouble* pIssmDouble){*pIssmDouble=value;}
-		void  GetParameterValue(char** pstring){_error_("Double param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Double param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(char** pstring){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
 		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM);
 		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN);
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Double param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("Double param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("Double param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(FILE** pfid){_error_("Double param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
 		void  SetValue(bool boolean){this->value=(IssmDouble)boolean;}
 		void  SetValue(int integer){this->value=(IssmDouble)integer;}
 		void  SetValue(IssmDouble scalar){this->value=(IssmDouble)scalar;}
-		void  SetValue(char* string){_error_("Double param of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("Double param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Double param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Double param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M){_error_("Double param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* pintarray,int M,int N){_error_("Double param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Vector* vec){_error_("Double param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("Double param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("Double param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Double param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(char* string){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(Vector* vec){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: issm/trunk-jpl/src/c/objects/Params/DoubleVecParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/DoubleVecParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/DoubleVecParam.h	(revision 12494)
@@ -43,31 +43,31 @@
 		/*Param virtual functions definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error_("DoubleVec param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int* pinteger){_error_("DoubleVec param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");}
 		void  GetParameterValue(int** pintarray,int* pM);
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("DoubleVec param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));};
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("DoubleVec param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("DoubleVec param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("DoubleVec param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");};
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
 		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM);
 		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN);
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("DoubleVec param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("DoubleVec param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("DoubleVec param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(FILE** pfid){_error_("DoubleVec param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error_("DoubleVec param of enum %i (%s) cannot hold a boolean",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int integer){_error_("DoubleVec param of enum %i (%s) cannot hold an integer",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble scalar){_error_("DoubleVec param of enum %i (%s) cannot hold a scalar",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char* string){_error_("DoubleVec param of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("DoubleVec param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(bool boolean){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a boolean");}
+		void  SetValue(int integer){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a scalar");}
+		void  SetValue(char* string){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
 		void  SetValue(IssmDouble* IssmDoublearray,int M);
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("DoubleVec param of enum %i (%s) cannot hold a IssmDouble mat array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M){_error_("DoubleVec param of enum %i (%s) cannot hold a int mat array",enum_type,EnumToStringx(enum_type));};
-		void  SetValue(int* pintarray,int M,int N){_error_("DoubleVec param of enum %i (%s) cannot hold a int mat array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Vector* vec){_error_("DoubleVec param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("DoubleVec param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("DoubleVec param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("DoubleVec param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble mat array");}
+		void  SetValue(int* intarray,int M){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int mat array");};
+		void  SetValue(int* pintarray,int M,int N){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int mat array");}
+		void  SetValue(Vector* vec){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 		
Index: issm/trunk-jpl/src/c/objects/Params/FileParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/FileParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/FileParam.h	(revision 12494)
@@ -42,31 +42,31 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){  _error_("FileParam of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int* pinteger){_error_("FileParam of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM){_error_("FileParam of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("FileParam of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("FileParam of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("FileParam of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("FileParam of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("FileParam of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("FileParam of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("File param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("FileParam of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("FileParam of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){  _error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(int** pintarray,int* pM){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("File param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
 		void  GetParameterValue(FILE** pfid){*pfid=value;};
 
-		void  SetValue(bool boolean){_error_("FileParam of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int integer){_error_("FileParam of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble scalar){_error_("FileParam of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char* string){_error_("FileParam of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("FileParam of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("FileParam of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("FileParam of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M){_error_("FileParam of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* pintarray,int M,int N){_error_("FileParam of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Vector* vec){_error_("FileParam of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("FileParam of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("File param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("File param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(bool boolean){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(int integer){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(IssmDouble scalar){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char* string){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(Vector* vec){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("FileParam of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("File param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("File param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: issm/trunk-jpl/src/c/objects/Params/IntMatParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/IntMatParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/IntMatParam.h	(revision 12494)
@@ -44,31 +44,31 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error_("IntMat param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int* pinteger){_error_("IntMat param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM){_error_("IntMat param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
 		void  GetParameterValue(int** pintarray,int* pM,int* pN);
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("IntMat param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("IntMat param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("IntMat param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("IntMat param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){_error_("IntMat param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));};
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("IntMat param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("IntMat param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("IntMat param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(FILE** pfid){_error_("IntMat param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");};
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error_("IntMat param of enum %i (%s) cannot hold a boolean",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int integer){_error_("IntMat param of enum %i (%s) cannot hold an integer",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble scalar){_error_("IntMat param of enum %i (%s) cannot hold a scalar",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char* string){_error_("IntMat param of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("IntMat param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("IntMat param of enum %i (%s) cannot hold a IssmDouble vec array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M,int N){_error_("IntMat param of enum %i (%s) cannot hold a IssmDouble vec array",enum_type,EnumToStringx(enum_type));};
-		void  SetValue(int* intarray,int M){_error_("IntMat param of enum %i (%s) cannot hold a int vec array",enum_type,EnumToStringx(enum_type));};
+		void  SetValue(bool boolean){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a boolean");}
+		void  SetValue(int integer){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a scalar");}
+		void  SetValue(char* string){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble vec array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M,int N){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble vec array");};
+		void  SetValue(int* intarray,int M){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int vec array");};
 		void  SetValue(int* intarray,int M,int N);
-		void  SetValue(Vector* vec){_error_("IntMat param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("IntMat param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("IntMat param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("IntMat param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(Vector* vec){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("IntMat param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: issm/trunk-jpl/src/c/objects/Params/IntParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/IntParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/IntParam.h	(revision 12494)
@@ -43,31 +43,31 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error_("Int param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
 		void  GetParameterValue(int* pinteger){*pinteger=value;}
-		void  GetParameterValue(int** pintarray,int* pM){_error_("Int param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Int param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Int param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("Int param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Int param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Int param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Int param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Int param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("Int param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("Int param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(FILE** pfid){_error_("Int param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(int** pintarray,int* pM){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
 		void  SetValue(bool boolean){this->value=(int)boolean;}
 		void  SetValue(int integer){this->value=integer;}
-		void  SetValue(int* intarray,int M){_error_("Int param of enum %i (%s) cannot hold an int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M,int N){_error_("Int param of enum %i (%s) cannot hold an int array",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(int* intarray,int M){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an int array");}
+		void  SetValue(int* intarray,int M,int N){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an int array");}
 		void  SetValue(IssmPDouble scalar){this->value=(int)scalar;}
-		void  SetValue(char* string){_error_("Int param of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("Int param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Int param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Int param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Vector* vec){_error_("Int param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("Int param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("Int param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Int param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(char* string){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(Vector* vec){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Int param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: issm/trunk-jpl/src/c/objects/Params/IntVecParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/IntVecParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/IntVecParam.h	(revision 12494)
@@ -44,31 +44,31 @@
 		/*Param virtual functions definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error_("IntVec param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int* pinteger){_error_("IntVec param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");}
 		void  GetParameterValue(int** pintarray,int* pM);
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("IntVec param of enum %i (%s) cannot return a matrix",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("IntVec param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("IntVec param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("IntVec param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("IntVec param of enum %i (%s) cannot return a IssmDouble array (maybe in serial?)",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("IntVec param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("IntVec param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("IntVec param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("IntVec param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(FILE** pfid){_error_("IntVec param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array (maybe in serial?)");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error_("IntVec param of enum %i (%s) cannot hold a boolean",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int integer){_error_("IntVec param of enum %i (%s) cannot hold an integer",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble scalar){_error_("IntVec param of enum %i (%s) cannot hold a scalar",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char* string){_error_("IntVec param of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("IntVec param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("IntVec param of enum %i (%s) cannot hold a IssmDouble mat array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("IntVec param of enum %i (%s) cannot hold a IssmDouble mat array",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(bool boolean){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a boolean");}
+		void  SetValue(int integer){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a scalar");}
+		void  SetValue(char* string){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble mat array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble mat array");}
 		void  SetValue(int* intarray,int M);
-		void  SetValue(int* pintarray,int M,int N){_error_("IntVec param of enum %i (%s) cannot hold a int mat array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Vector* vec){_error_("IntVec param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("IntVec param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("IntVec param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("IntVec param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(int* pintarray,int M,int N){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int mat array");}
+		void  SetValue(Vector* vec){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("IntVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 		
Index: issm/trunk-jpl/src/c/objects/Params/MatrixParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/MatrixParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/MatrixParam.h	(revision 12494)
@@ -43,31 +43,31 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error_("Matrix param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int* pinteger){_error_("Matrix param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM){_error_("Matrix param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Matrix param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Matrix param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("Matrix param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Matrix param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Matrix param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Matrix param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Matrix param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("Matrix param of enum %i (%s) cannot return a vec",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a vec");}
 		void  GetParameterValue(Matrix** poutput);
-		void  GetParameterValue(FILE** pfid){_error_("Matrix param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(FILE** pfid){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error_("Matrix param of enum %i (%s) cannot hold a boolean",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int integer){_error_("Matrix param of enum %i (%s) cannot hold an integer",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble scalar){_error_("Matrix param of enum %i (%s) cannot hold a scalar",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char* string){_error_("Matrix param of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("Matrix param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Matrix param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Matrix param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M){_error_("Matrix param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* pintarray,int M,int N){_error_("Matrix param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Vector* vec){_error_("Matrix param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(bool boolean){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a boolean");}
+		void  SetValue(int integer){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a scalar");}
+		void  SetValue(char* string){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(Vector* vec){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
 		void  SetValue(Matrix* mat);
-		void  SetValue(FILE* fid){_error_("Matrix param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Matrix param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(FILE* fid){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Matrix param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: issm/trunk-jpl/src/c/objects/Params/StringArrayParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/StringArrayParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/StringArrayParam.h	(revision 12494)
@@ -45,31 +45,31 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error_("StringArray param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int* pinteger){_error_("StringArray param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM){_error_("StringArray param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("StringArray param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("StringArray param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("StringArray param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
 		void  GetParameterValue(char*** pstringarray,int* pM);
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("StringArray param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("StringArray param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Vec param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("StringArray param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("StringArray param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(FILE** pfid){_error_("StringArray param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Vec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error_("StringArray param of enum %i (%s) cannot hold a boolean",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int integer){_error_("StringArray param of enum %i (%s) cannot hold an integer",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble scalar){_error_("StringArray param of enum %i (%s) cannot hold a scalar",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char* string){_error_("StringArray param of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(bool boolean){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a boolean");}
+		void  SetValue(int integer){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a scalar");}
+		void  SetValue(char* string){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
 		void  SetValue(char** stringarray,int M);
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("StringArray param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("StringArray param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M){_error_("StringArray param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* pintarray,int M,int N){_error_("StringArray param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Vector* vec){_error_("StringArray param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("StringArray param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("StringArray param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("StringArray param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(Vector* vec){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("StringArray param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: issm/trunk-jpl/src/c/objects/Params/StringParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/StringParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/StringParam.h	(revision 12494)
@@ -43,31 +43,31 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error_("String param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int* pinteger){_error_("String param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM){_error_("String param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("String param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("String param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
 		void  GetParameterValue(char** pstring);
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("String param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("String param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("String param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("String param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Vector** pvec){_error_("String param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("String param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(FILE** pfid){_error_("Bool param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error2_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error_("String param of enum %i (%s) cannot hold a boolean",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int integer){_error_("String param of enum %i (%s) cannot hold an integer",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble scalar){_error_("String param of enum %i (%s) cannot hold a scalar",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(bool boolean){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a boolean");}
+		void  SetValue(int integer){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a scalar");}
 		void  SetValue(char* string);
-		void  SetValue(char** stringarray,int M){_error_("String param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("String param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("String param of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M){_error_("String param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* pintarray,int M,int N){_error_("String param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Vector* vec){_error_("String param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(Matrix* mat){_error_("String param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("String param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("String param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(char** stringarray,int M){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(Vector* vec){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("String param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: issm/trunk-jpl/src/c/objects/Params/VectorParam.h
===================================================================
--- issm/trunk-jpl/src/c/objects/Params/VectorParam.h	(revision 12493)
+++ issm/trunk-jpl/src/c/objects/Params/VectorParam.h	(revision 12494)
@@ -43,31 +43,31 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error_("Vector param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int* pinteger){_error_("Vector param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM){_error_("Vector param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Vector param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Vector param of enum %i (%s) cannot return a IssmDouble",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char** pstring){_error_("Vector param of enum %i (%s) cannot return a string",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Vector param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Vector param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Vector param of enum %i (%s) cannot return a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Vector param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
-		void  GetParameterValue(Matrix** pmat){_error_("Vector param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(bool* pbool){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(char** pstring){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Matrix** pmat){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a Mat");}
 		void  GetParameterValue(Vector** poutput);
-		void  GetParameterValue(FILE** pfid){_error_("Vector of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
+		void  GetParameterValue(FILE** pfid){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error_("Vector of enum %i (%s) cannot hold a boolean",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int integer){_error_("Vector of enum %i (%s) cannot hold an integer",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble scalar){_error_("Vector of enum %i (%s) cannot hold a scalar",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char* string){_error_("Vector of enum %i (%s) cannot hold a string",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(char** stringarray,int M){_error_("Vector of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Vector of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Vector of enum %i (%s) cannot hold a IssmDouble array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* intarray,int M){_error_("Vector of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(int* pintarray,int M,int N){_error_("Vector of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(bool boolean){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a boolean");}
+		void  SetValue(int integer){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a scalar");}
+		void  SetValue(char* string){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
 		void  SetValue(Vector* vec);
-		void  SetValue(Matrix* mat){_error_("Vector of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(FILE* fid){_error_("Vector of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Vector param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
+		void  SetValue(Matrix* mat){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Vector param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: issm/trunk-jpl/src/c/shared/Exp/DomainOutlineRead.cpp
===================================================================
--- issm/trunk-jpl/src/c/shared/Exp/DomainOutlineRead.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/shared/Exp/DomainOutlineRead.cpp	(revision 12494)
@@ -38,5 +38,5 @@
 	/*open domain outline file for reading: */
 	if ((fid=fopen(domainname,"r"))==NULL){
-		_error2_("" << "could not find domain file " << domainname); 
+		_error2_("could not find domain file " << domainname); 
 	}
 
Index: issm/trunk-jpl/src/c/shared/Exp/DomainOutlineWrite.cpp
===================================================================
--- issm/trunk-jpl/src/c/shared/Exp/DomainOutlineWrite.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/shared/Exp/DomainOutlineWrite.cpp	(revision 12494)
@@ -23,5 +23,5 @@
 	/*open domain outline file for writing: */
 	if ((fid=fopen(domainname,"w"))==NULL){
-		_error2_("" << "could not open domain file " << domainname); 
+		_error2_("could not open domain file " << domainname); 
 		noerr=0; goto cleanupandreturn;
 	}
Index: issm/trunk-jpl/src/c/shared/Numerics/GaussPoints.cpp
===================================================================
--- issm/trunk-jpl/src/c/shared/Numerics/GaussPoints.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/shared/Numerics/GaussPoints.cpp	(revision 12494)
@@ -1670,5 +1670,5 @@
 		if (iter >= MAX_GAUS_ITER) {
 			xDelete<IssmPDouble>(work);
-			_error2_("" << " Max iterations exceeded for l=" << MAX_GAUS_ITER);
+			_error2_(" Max iterations exceeded for l=" << MAX_GAUS_ITER);
 		}
 	}
Index: issm/trunk-jpl/src/c/shared/Numerics/IsInputConverged.cpp
===================================================================
--- issm/trunk-jpl/src/c/shared/Numerics/IsInputConverged.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/shared/Numerics/IsInputConverged.cpp	(revision 12494)
@@ -53,5 +53,5 @@
 		else eps=0;
 	}
-	else _error2_("" << " convergence criterion " << EnumToStringx(criterion_enum) << " not supported yet!");
+	else _error2_(" convergence criterion " << EnumToStringx(criterion_enum) << " not supported yet!");
 
 	/*Assign output pointers:*/
Index: issm/trunk-jpl/src/c/shared/Numerics/OptionsFromAnalysis.cpp
===================================================================
--- issm/trunk-jpl/src/c/shared/Numerics/OptionsFromAnalysis.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/shared/Numerics/OptionsFromAnalysis.cpp	(revision 12494)
@@ -57,5 +57,5 @@
 	if (found==-1){
 		/*ok, we did not find anything, this is not good! error out: */
-		_error2_("" << "could find neither a default analysis  nor analysis " << EnumToStringx(analysis_type));
+		_error2_("could find neither a default analysis  nor analysis " << EnumToStringx(analysis_type));
 	}
 
Index: issm/trunk-jpl/src/c/shared/String/DescriptorIndex.cpp
===================================================================
--- issm/trunk-jpl/src/c/shared/String/DescriptorIndex.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/shared/String/DescriptorIndex.cpp	(revision 12494)
@@ -23,10 +23,10 @@
 	/*retrieve first token, separated by underscore: */
 	pch = strtok (descriptor,"_");
-	if(!pch)_error2_("" << " descriptor " << descriptor << " is not correctly formatted!");
+	if(!pch)_error2_(" descriptor " << descriptor << " is not correctly formatted!");
 
 	if (strncmp(pch,"scaled",6)==0){
 		/*we have a scaled variable. recover the root: */
 		pch = strtok (NULL, "_");
-		if(!pch)_error2_("" << " scaled descriptor " << descriptor << " is not correctly formatted!");
+		if(!pch)_error2_(" scaled descriptor " << descriptor << " is not correctly formatted!");
 		memcpy(root,pch,(strlen(pch)+1)*sizeof(char));
 
@@ -44,9 +44,9 @@
 		/*we have an indexed variable. recover the root: */
 		pch = strtok (NULL, "_");
-		if(!pch)_error2_("" << " indexed descriptor " << descriptor << " is not correctly formatted!");
+		if(!pch)_error2_(" indexed descriptor " << descriptor << " is not correctly formatted!");
 		memcpy(root,pch,(strlen(pch)+1)*sizeof(char));
 		/*now recover  the index: */
 		pch = strtok (NULL, "_");
-		if(!pch)_error2_("" << " indexed descriptor " << descriptor << " is not correctly formatted!");
+		if(!pch)_error2_(" indexed descriptor " << descriptor << " is not correctly formatted!");
 		sscanf(pch,"%i",pindex);
 		return IndexedEnum;
@@ -55,9 +55,9 @@
 		/*we have an indexed variable. recover the root: */
 		pch = strtok (NULL, "_");
-		if(!pch)_error2_("" << " nodal descriptor " << descriptor << " is not correctly formatted!");
+		if(!pch)_error2_(" nodal descriptor " << descriptor << " is not correctly formatted!");
 		memcpy(root,pch,(strlen(pch)+1)*sizeof(char));
 		/*now recover  the index: */
 		pch = strtok (NULL, "_");
-		if(!pch)_error2_("" << " nodal descriptor " << descriptor << " is not correctly formatted!");
+		if(!pch)_error2_(" nodal descriptor " << descriptor << " is not correctly formatted!");
 		sscanf(pch,"%i",pindex);
 		return NodalEnum;
Index: issm/trunk-jpl/src/c/solutions/AnalysisConfiguration.cpp
===================================================================
--- issm/trunk-jpl/src/c/solutions/AnalysisConfiguration.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/solutions/AnalysisConfiguration.cpp	(revision 12494)
@@ -110,5 +110,5 @@
 		
 		default:
-			_error2_("" << " solution type: " << EnumToStringx(solutiontype) << " not supported yet!");
+			_error2_("solution type: " << EnumToStringx(solutiontype) << " not supported yet!");
 			break;
 	}
Index: issm/trunk-jpl/src/c/solutions/CorePointerFromSolutionEnum.cpp
===================================================================
--- issm/trunk-jpl/src/c/solutions/CorePointerFromSolutionEnum.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/solutions/CorePointerFromSolutionEnum.cpp	(revision 12494)
@@ -96,5 +96,5 @@
 			break;
 		default:
-			_error2_("" << " solution type: " << EnumToStringx(solutiontype) << " not supported yet!");
+			_error2_("solution type: " << EnumToStringx(solutiontype) << " not supported yet!");
 			break;
 	}
Index: issm/trunk-jpl/src/c/solutions/WriteLockFile.cpp
===================================================================
--- issm/trunk-jpl/src/c/solutions/WriteLockFile.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/solutions/WriteLockFile.cpp	(revision 12494)
@@ -17,8 +17,8 @@
 	if(my_rank==0){
 		fid=fopen(filename,"w");
-		if(fid==NULL) _error2_("" << "error message: could not open lock file " << filename);
+		if(fid==NULL) _error2_("error message: could not open lock file " << filename);
 
 		/*Close file: */
-		if(fclose(fid)!=0) _error2_("" << "could not close lock file " << filename);
+		if(fclose(fid)!=0) _error2_("could not close lock file " << filename);
 	}
 
Index: issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsInsertMultipleString.cpp
===================================================================
--- issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsInsertMultipleString.cpp	(revision 12493)
+++ issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsInsertMultipleString.cpp	(revision 12494)
@@ -55,5 +55,5 @@
 			if(first[0]!='-'){
 				/*This is not good, the option does not have '-'! Get out*/
-				_error2_("" << "Option " << first << " should be preceded by '-'!");
+				_error2_("Option " << first << " should be preceded by '-'!");
 			}
 			/*Reduce first to bare option value*/
