Index: /issm/trunk-jpl/src/c/Container/DataSet.cpp
===================================================================
--- /issm/trunk-jpl/src/c/Container/DataSet.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/Container/DataSet.cpp	(revision 13036)
@@ -133,5 +133,5 @@
 	vector<Object*>::iterator object;
 
-	if(this==NULL)_error2_("trying to echo a NULL dataset");
+	if(this==NULL)_error_("trying to echo a NULL dataset");
 
 	_pprintLine_("DataSet echo: " << objects.size() << " objects");
@@ -150,5 +150,5 @@
 	vector<Object*>::iterator object;
 
-	if(this==NULL)_error2_("trying to echo a NULL dataset");
+	if(this==NULL)_error_("trying to echo a NULL dataset");
 
 	_pprintLine_("DataSet echo: " << objects.size() << " objects");
@@ -194,9 +194,9 @@
 
 	_assert_(this);
-	if(!sorted)_error2_("trying to binary search on a non-sorted dataset!");
+	if(!sorted)_error_("trying to binary search on a non-sorted dataset!");
 
 	/*Carry out a binary search on the sorted_ids: */
 	if(!binary_search(&id_offset,eid, sorted_ids,objects.size())){
-		_error2_("could not find object with id " << eid << " in DataSet " << EnumToStringx(enum_type));
+		_error_("could not find object with id " << eid << " in DataSet " << EnumToStringx(enum_type));
 	}
 
@@ -259,6 +259,6 @@
 	/*Only sort if we are not already sorted: */
 	if(!sorted){
-		_error2_("not implemented yet!");
-	}
-}
-/*}}}*/
+		_error_("not implemented yet!");
+	}
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/c/Container/Elements.cpp
===================================================================
--- /issm/trunk-jpl/src/c/Container/Elements.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/Container/Elements.cpp	(revision 13036)
@@ -203,5 +203,5 @@
 		/*see what the first element of this partition has in stock (this is common to all partitions)*/
 		if(my_rank==minrank){
-			if(this->Size()==0) _error2_("Cannot write results because there is no element??");
+			if(this->Size()==0) _error_("Cannot write results because there is no element??");
 			Element* element=(Element*)this->GetObjectByOffset(0);
 			element->ListResultsInfo(&resultsenums,&resultssizes,&resultstimes,&resultssteps,&numberofresults);
@@ -232,5 +232,5 @@
 			if(resultssizes[i]==P1Enum)      vectorsize=numberofvertices;
 			else if(resultssizes[i]==P0Enum) vectorsize=numberofelements;
-			else _error2_("Unkown result size: " << EnumToStringx(resultssizes[i]));
+			else _error_("Unkown result size: " << EnumToStringx(resultssizes[i]));
 			vector=new Vector(vectorsize);
 
Index: /issm/trunk-jpl/src/c/Container/Inputs.cpp
===================================================================
--- /issm/trunk-jpl/src/c/Container/Inputs.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/Container/Inputs.cpp	(revision 13036)
@@ -57,5 +57,5 @@
 		/*we could not find an input with the correct enum type. No defaults values were provided, 
 		 * error out: */
-		_error2_("could not find input with enum type " << enum_type << " (" << EnumToStringx(enum_type) << ")");
+		_error_("could not find input with enum type " << enum_type << " (" << EnumToStringx(enum_type) << ")");
 	}
 
@@ -85,5 +85,5 @@
 		/*we could not find an input with the correct enum type. No defaults values were provided, 
 		 * error out: */
-		_error2_("could not find input with enum type " << enum_type << " (" << EnumToStringx(enum_type) << ")");
+		_error_("could not find input with enum type " << enum_type << " (" << EnumToStringx(enum_type) << ")");
 	}
 
@@ -113,5 +113,5 @@
 		/*we could not find an input with the correct enum type. No defaults values were provided, 
 		 * error out: */
-		_error2_("could not find input with enum type " << enum_type << " (" << EnumToStringx(enum_type) << ")");
+		_error_("could not find input with enum type " << enum_type << " (" << EnumToStringx(enum_type) << ")");
 	}
 
@@ -141,5 +141,5 @@
 		/*we could not find an input with the correct enum type. No defaults values were provided, 
 		 * error out: */
-		_error2_("could not find input with enum type " << enum_type << " (" << EnumToStringx(enum_type) << ")");
+		_error_("could not find input with enum type " << enum_type << " (" << EnumToStringx(enum_type) << ")");
 	}
 
@@ -213,5 +213,5 @@
 
 	/*some checks: */
-	if(!constrain_input) _error2_("input " << EnumToStringx(constrain_enum) << " could not be found!");
+	if(!constrain_input) _error_("input " << EnumToStringx(constrain_enum) << " could not be found!");
 
 	/*Apply ContrainMin: */
@@ -254,5 +254,5 @@
 	}
 	else{
-		_error2_("Input " << EnumToStringx(enumtype) << " not found");
+		_error_("Input " << EnumToStringx(enumtype) << " not found");
 	}
 
@@ -275,5 +275,5 @@
 	}
 	else{
-		_error2_("Input " << EnumToStringx(enumtype) << " not found");
+		_error_("Input " << EnumToStringx(enumtype) << " not found");
 	}
 
@@ -296,5 +296,5 @@
 	}
 	else{
-		_error2_("Input " << EnumToStringx(enumtype) << " not found");
+		_error_("Input " << EnumToStringx(enumtype) << " not found");
 	}
 
@@ -317,5 +317,5 @@
 	}
 	else{
-		_error2_("Input " << EnumToStringx(enumtype) << " not found");
+		_error_("Input " << EnumToStringx(enumtype) << " not found");
 	}
 
@@ -369,5 +369,5 @@
 	/*Make a copy of the original input: */
 	original=(Input*)this->GetInput(original_enum);
-	if(!original)_error2_("could not find input with enum: " << EnumToStringx(original_enum)); 
+	if(!original)_error_("could not find input with enum: " << EnumToStringx(original_enum)); 
 	copy=(Input*)original->copy();
 
@@ -416,6 +416,6 @@
 
 	/*some checks: */
-	if(!xinput) _error2_("input " << EnumToStringx(MeshXEnum) << " could not be found!");
-	if(!yinput) _error2_("input " << EnumToStringx(MeshYEnum) << " could not be found!");
+	if(!xinput) _error_("input " << EnumToStringx(MeshXEnum) << " could not be found!");
+	if(!yinput) _error_("input " << EnumToStringx(MeshYEnum) << " could not be found!");
 
 	/*Apply AXPY: */
Index: /issm/trunk-jpl/src/c/Container/Observations.cpp
===================================================================
--- /issm/trunk-jpl/src/c/Container/Observations.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/Container/Observations.cpp	(revision 13036)
@@ -58,10 +58,10 @@
 	options->Get(&maxtrimming,"maxtrimming",+1.e+21);
 	options->Get(&minspacing,"minspacing",0.01);
-	if(minspacing<=0) _error2_("minspacing must > 0");
+	if(minspacing<=0) _error_("minspacing must > 0");
 
 	/*Get Minimum box size*/
 	if(options->GetOption("boxlength")){
 		options->Get(&minlength,"boxlength");
-		if(minlength<=0)_error2_("boxlength should be a positive number");
+		if(minlength<=0)_error_("boxlength should be a positive number");
 		maxdepth=int(log(max(xmax-xmin,ymax-ymin)/minlength +1)/log(2.0));
 	}
@@ -383,5 +383,5 @@
 	SolverxSeq(&GinvZ, Gamma,obs,n_obs);    // Gamma^-1 Z
 #else
-	_error2_("GSL is required");
+	_error_("GSL is required");
 #endif
 
Index: /issm/trunk-jpl/src/c/Container/Options.cpp
===================================================================
--- /issm/trunk-jpl/src/c/Container/Options.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/Container/Options.cpp	(revision 13036)
@@ -47,8 +47,8 @@
 
 	/*Also, check the option name*/
-	if(!in_option->name) _error2_("input option has an empty name");
-	if(strchr(in_option->name,'.')) _error2_("Option \"" << in_option->name << "\" has a protected character \".\"");
-	if(strchr(in_option->name,'[')) _error2_("Option \"" << in_option->name << "\" has a protected character \"[\"");
-	if(strchr(in_option->name,']')) _error2_("Option \"" << in_option->name << "\" has a protected character \"]\"");
+	if(!in_option->name) _error_("input option has an empty name");
+	if(strchr(in_option->name,'.')) _error_("Option \"" << in_option->name << "\" has a protected character \".\"");
+	if(strchr(in_option->name,'[')) _error_("Option \"" << in_option->name << "\" has a protected character \"[\"");
+	if(strchr(in_option->name,']')) _error_("Option \"" << in_option->name << "\" has a protected character \"]\"");
 
 	/*Finally, check that no option of the same name already exists in the dataset*/
@@ -57,5 +57,5 @@
 		option=(Option*)(*object); 
 		if (!strcmp(option->name,in_option->name)){
-			_error2_("Options \"" << in_option->name << "\" found multiple times");
+			_error_("Options \"" << in_option->name << "\" found multiple times");
 			break;
 		}
@@ -83,5 +83,5 @@
 	/*Else, the Option does not exist, no default provided*/
 	else{
-		_error2_("option of name \"" << name << "\" not found, and no default value has been provided");
+		_error_("option of name \"" << name << "\" not found, and no default value has been provided");
 	}
 }
@@ -121,5 +121,5 @@
 	/*Else, the Option does not exist, no default provided*/
 	else{
-		_error2_("option of name \"" << name << "\" not found, and no default value has been provided");
+		_error_("option of name \"" << name << "\" not found, and no default value has been provided");
 	}
 }
@@ -159,5 +159,5 @@
 	/*Else, the Option does not exist, no default provided*/
 	else{
-		_error2_("option of name \"" << name << "\" not found, and no default value has been provided");
+		_error_("option of name \"" << name << "\" not found, and no default value has been provided");
 	}
 }
@@ -199,5 +199,5 @@
 	/*Else, the Option does not exist, no default provided*/
 	else{
-		_error2_("option of name \"" << name << "\" not found, and no default value has been provided");
+		_error_("option of name \"" << name << "\" not found, and no default value has been provided");
 	}
 
@@ -264,5 +264,5 @@
 		/*Else: not supported*/
 		else{
-			_error2_("Cannot recover field \"" << name << "\" for an option of type " << EnumToStringx(option->ObjectEnum()));
+			_error_("Cannot recover field \"" << name << "\" for an option of type " << EnumToStringx(option->ObjectEnum()));
 		}
 	}
@@ -290,5 +290,5 @@
 	/*Else, the Option does not exist, no default provided*/
 	else{
-		_error2_("option of name \"" << name << "\" not found, and no default value has been provided");
+		_error_("option of name \"" << name << "\" not found, and no default value has been provided");
 	}
 }
@@ -324,5 +324,5 @@
 				/*Else: not supported*/
 				else{
-					_error2_("Cannot recover field \"" << name << "\" for an option of type " << EnumToStringx(option->ObjectEnum()));
+					_error_("Cannot recover field \"" << name << "\" for an option of type " << EnumToStringx(option->ObjectEnum()));
 				}
 			}
Index: /issm/trunk-jpl/src/c/Container/Parameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/Container/Parameters.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/Container/Parameters.cpp	(revision 13036)
@@ -65,5 +65,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 }
 /*}}}*/
@@ -82,5 +82,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 }
 /*}}}*/
@@ -99,5 +99,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 }
 /*}}}*/
@@ -116,5 +116,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 }
 /*}}}*/
@@ -133,5 +133,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 
 }
@@ -151,5 +151,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 
 }
@@ -169,5 +169,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 
 }
@@ -187,5 +187,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 
 }
@@ -205,5 +205,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 
 }
@@ -223,5 +223,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 
 }
@@ -241,5 +241,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 }
 /*}}}*/
@@ -258,5 +258,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 
 }
@@ -276,5 +276,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 
 }
@@ -294,5 +294,5 @@
 		}
 	}
-	_error2_("could not find parameter " << EnumToStringx(enum_type));
+	_error_("could not find parameter " << EnumToStringx(enum_type));
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/DofIndexing.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/DofIndexing.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/DofIndexing.cpp	(revision 13036)
@@ -143,5 +143,5 @@
 		else this->sdoflist=NULL;
 	}
-	else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+	else _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 13036)
@@ -129,5 +129,5 @@
 	}
 	if(found!=-1) analysis_counter=found;
-	else _error2_("Could not find alias for analysis_type " << EnumToStringx(configuration_type) << " in list of FemModel analyses");
+	else _error_("Could not find alias for analysis_type " << EnumToStringx(configuration_type) << " in list of FemModel analyses");
 
 	/*Now, plug analysis_counter and analysis_type inside the parameters: */
Index: /issm/trunk-jpl/src/c/classes/Hook.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Hook.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/Hook.cpp	(revision 13036)
@@ -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]) _error_("wrong id: " << this->objects[i]->Id() << " vs " << this->ids[i] << "  in resolved pointer!");
 		}
 	}
@@ -194,8 +194,8 @@
 	
 	/*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) _error_("trying to delivery a single hook object when hook holds " << this->num << " objects" << "\n");
 
 	/*check NULL: */
-	if (this->objects==NULL) _error2_("hook is not pointing to any object, objects pointer is NULL");
+	if (this->objects==NULL) _error_("hook is not pointing to any object, objects pointer is NULL");
 
 	return *objects;
@@ -246,9 +246,9 @@
 
 	/*Else, check that we are requesting a half of num*/
-	if (numindices>this->num) _error2_("Cannot spawn hook with " << numindices << " objects from a Hook of " << this->num << " objects");
+	if (numindices>this->num) _error_("Cannot spawn hook with " << numindices << " objects from a Hook of " << this->num << " objects");
 
 	/*go pickup the correct objects, ids and offsets :*/
 	output->num=numindices;
-	if(output->num<1) _error2_("Trying to spawn an empty ElementProperties!");
+	if(output->num<1) _error_("Trying to spawn an empty ElementProperties!");
 
 	output->objects=xNew<Object*>(output->num);
Index: /issm/trunk-jpl/src/c/classes/IoModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 13036)
@@ -110,5 +110,5 @@
 		/*Get first Enum*/
 		if(fread(&record_enum,sizeof(int),1,this->fid)==0){
-			_error2_("Marshalled file is empty");
+			_error_("Marshalled file is empty");
 		}
 		else{
@@ -128,5 +128,5 @@
 				_printLine_("=========================================================================");
 				_printLine_("");
-				_error2_("Enums not consistent (See error message above)");
+				_error_("Enums not consistent (See error message above)");
 			}
 		}
@@ -177,5 +177,5 @@
 	/*Find constant*/
 	Param* param=(Param*)this->constants->FindParamObject(constant_enum);
-	if(!param) _error2_("Constant " << EnumToStringx(constant_enum) << " not found in iomodel");
+	if(!param) _error_("Constant " << EnumToStringx(constant_enum) << " not found in iomodel");
 
 	return (Param*)param->copy();
@@ -266,5 +266,5 @@
 					case 1: 
 						/*Read the boolean and broadcast it to other cpus:*/
-						if(fread(&booleanint,sizeof(int),1,this->fid)!=1) _error2_("could not read boolean ");
+						if(fread(&booleanint,sizeof(int),1,this->fid)!=1) _error_("could not read boolean ");
 						#ifdef _HAVE_MPI_
 						MPI_Bcast(&booleanint,1,MPI_INT,0,MPI_COMM_WORLD); 
@@ -277,5 +277,5 @@
 					case 2:
 						/*Read the integer and broadcast it to other cpus:*/
-						if(fread(&integer,sizeof(int),1,this->fid)!=1) _error2_("could not read integer ");
+						if(fread(&integer,sizeof(int),1,this->fid)!=1) _error_("could not read integer ");
 						#ifdef _HAVE_MPI_
 						MPI_Bcast(&integer,1,MPI_INT,0,MPI_COMM_WORLD); 
@@ -288,5 +288,5 @@
 					case 3:
 						/*Read the scalar and broadcast it to other cpus:*/
-						if(fread(&scalar,sizeof(IssmPDouble),1,this->fid)!=1) _error2_("could not read scalar ");
+						if(fread(&scalar,sizeof(IssmPDouble),1,this->fid)!=1) _error_("could not read scalar ");
 						#ifdef _HAVE_MPI_
 						MPI_Bcast(&scalar,1,MPI_DOUBLE,0,MPI_COMM_WORLD); 
@@ -299,5 +299,5 @@
 					case 4: 
 						/*We have to read a string from disk. First read the dimensions of the string, then the string: */
-						if(fread(&string_size,sizeof(int),1,this->fid)!=1) _error2_("could not read length of string ");
+						if(fread(&string_size,sizeof(int),1,this->fid)!=1) _error_("could not read length of string ");
 						#ifdef _HAVE_MPI_
 						MPI_Bcast(&string_size,1,MPI_INT,0,MPI_COMM_WORLD); 
@@ -309,5 +309,5 @@
 
 							/*Read string, then broadcast: */
-							if(fread(string,string_size*sizeof(char),1,this->fid)!=1)_error2_(" could not read string ");
+							if(fread(string,string_size*sizeof(char),1,this->fid)!=1)_error_(" could not read string ");
 							#ifdef _HAVE_MPI_
 							MPI_Bcast(string,string_size,MPI_CHAR,0,MPI_COMM_WORLD); 
@@ -360,5 +360,5 @@
 
 					default: 
-						_error2_("unknown record type:" << record_code); 
+						_error_("unknown record type:" << record_code); 
 						break;;
 				}
@@ -428,5 +428,5 @@
 
 				default: 
-					_error2_("unknown record type:" << record_code); 
+					_error_("unknown record type:" << record_code); 
 					break;;
 				}
@@ -453,9 +453,9 @@
 	fid=this->SetFilePointerToData(&code,NULL,data_enum);
 
-	if(code!=1)_error2_("expecting a boolean for enum " << EnumToStringx(data_enum));
+	if(code!=1)_error_("expecting a boolean for enum " << EnumToStringx(data_enum));
 	
 	/*We have to read a boolean from disk. */
 	if(my_rank==0){  
-		if(fread(&booleanint,sizeof(int),1,fid)!=1) _error2_("could not read boolean ");
+		if(fread(&booleanint,sizeof(int),1,fid)!=1) _error_("could not read boolean ");
 	}
 	#ifdef _HAVE_MPI_
@@ -482,9 +482,9 @@
 	fid=this->SetFilePointerToData(&code,NULL,data_enum);
 	
-	if(code!=2)_error2_("expecting an integer for enum " << EnumToStringx(data_enum));
+	if(code!=2)_error_("expecting an integer for enum " << EnumToStringx(data_enum));
 	
 	/*We have to read a integer from disk. First read the dimensions of the integer, then the integer: */
 	if(my_rank==0){  
-		if(fread(&integer,sizeof(int),1,fid)!=1) _error2_("could not read integer ");
+		if(fread(&integer,sizeof(int),1,fid)!=1) _error_("could not read integer ");
 	}
 
@@ -512,9 +512,9 @@
 	fid=this->SetFilePointerToData(&code,NULL,data_enum);
 	
-	if(code!=3)_error2_("expecting a IssmDouble for enum " << EnumToStringx(data_enum));
+	if(code!=3)_error_("expecting a IssmDouble for enum " << EnumToStringx(data_enum));
 	
 	/*We have to read a scalar from disk. First read the dimensions of the scalar, then the scalar: */
 	if(my_rank==0){
-		if(fread(&scalar,sizeof(IssmPDouble),1,fid)!=1)_error2_("could not read scalar ");
+		if(fread(&scalar,sizeof(IssmPDouble),1,fid)!=1)_error_("could not read scalar ");
 	}
 	#ifdef _HAVE_MPI_
@@ -542,5 +542,5 @@
 	fid=this->SetFilePointerToData(&code,NULL,data_enum);
 	
-	if(code!=4)_error2_("expecting a string for enum " << EnumToStringx(data_enum));
+	if(code!=4)_error_("expecting a string for enum " << EnumToStringx(data_enum));
 	
 	/*Now fetch: */
@@ -548,5 +548,5 @@
 	/*We have to read a string from disk. First read the dimensions of the string, then the string: */
 	if(my_rank==0){  
-		if(fread(&string_size,sizeof(int),1,fid)!=1) _error2_("could not read length of string ");
+		if(fread(&string_size,sizeof(int),1,fid)!=1) _error_("could not read length of string ");
 	}
 
@@ -562,5 +562,5 @@
 		/*Read string on node 0, then broadcast: */
 		if(my_rank==0){  
-			if(fread(string,string_size*sizeof(char),1,fid)!=1)_error2_(" could not read string ");
+			if(fread(string,string_size*sizeof(char),1,fid)!=1)_error_(" could not read string ");
 		}
 		#ifdef _HAVE_MPI_
@@ -596,5 +596,5 @@
 	fid=this->SetFilePointerToData(&code,&vector_type,data_enum);
 
-	if((code!=5) && (code!=6) && (code!=7))_error2_("expecting a IssmDouble, integer or boolean matrix for enum " << EnumToStringx(data_enum));
+	if((code!=5) && (code!=6) && (code!=7))_error_("expecting a IssmDouble, integer or boolean matrix for enum " << EnumToStringx(data_enum));
 	
 	/*Now fetch: */
@@ -603,5 +603,5 @@
 	/*numberofelements: */
 	if(my_rank==0){  
-		if(fread(&M,sizeof(int),1,fid)!=1) _error2_("could not read number of rows for matrix ");
+		if(fread(&M,sizeof(int),1,fid)!=1) _error_("could not read number of rows for matrix ");
 	}
 
@@ -611,5 +611,5 @@
 
 	if(my_rank==0){  
-		if(fread(&N,sizeof(int),1,fid)!=1) _error2_("could not read number of columns for matrix ");
+		if(fread(&N,sizeof(int),1,fid)!=1) _error_("could not read number of columns for matrix ");
 	}
 	#ifdef _HAVE_MPI_
@@ -623,5 +623,5 @@
 		/*Read matrix on node 0, then broadcast: */
 		if(my_rank==0){  
-			if(fread(matrix,M*N*sizeof(IssmPDouble),1,fid)!=1) _error2_("could not read matrix ");
+			if(fread(matrix,M*N*sizeof(IssmPDouble),1,fid)!=1) _error_("could not read matrix ");
 		}
 		
@@ -667,5 +667,5 @@
 	/*Set file pointer to beginning of the data: */
 	fid=this->SetFilePointerToData(&code,&vector_type,data_enum);
-	if((code!=5) && (code!=6) && (code!=7))_error2_("expecting a IssmDouble, integer or boolean matrix for enum " << EnumToStringx(data_enum));
+	if((code!=5) && (code!=6) && (code!=7))_error_("expecting a IssmDouble, integer or boolean matrix for enum " << EnumToStringx(data_enum));
 	
 	/*Now fetch: */
@@ -674,5 +674,5 @@
 	/*numberofelements: */
 	if(my_rank==0){  
-		if(fread(&M,sizeof(int),1,fid)!=1) _error2_("could not read number of rows for matrix ");
+		if(fread(&M,sizeof(int),1,fid)!=1) _error_("could not read number of rows for matrix ");
 	}
 	#ifdef _HAVE_MPI_
@@ -681,5 +681,5 @@
 
 	if(my_rank==0){  
-		if(fread(&N,sizeof(int),1,fid)!=1) _error2_("could not read number of columns for matrix ");
+		if(fread(&N,sizeof(int),1,fid)!=1) _error_("could not read number of columns for matrix ");
 	}
 	#ifdef _HAVE_MPI_
@@ -693,5 +693,5 @@
 		/*Read matrix on node 0, then broadcast: */
 		if(my_rank==0){  
-			if(fread(matrix,M*N*sizeof(IssmPDouble),1,fid)!=1) _error2_("could not read matrix ");
+			if(fread(matrix,M*N*sizeof(IssmPDouble),1,fid)!=1) _error_("could not read matrix ");
 		}
 		#ifdef _HAVE_MPI_
@@ -729,9 +729,9 @@
 	fid=this->SetFilePointerToData(&code,NULL,data_enum);
 	
-	if(code!=9)_error2_("expecting a string array for enum " << EnumToStringx(data_enum));
+	if(code!=9)_error_("expecting a string array for enum " << EnumToStringx(data_enum));
 	
 	/*We have to read a bunch of strings from disk. First read the number of strings, and allocate: */
 	if(my_rank==0){  
-		if(fread(&numstrings,sizeof(int),1,fid)!=1) _error2_("could not read length of string array");
+		if(fread(&numstrings,sizeof(int),1,fid)!=1) _error_("could not read length of string array");
 	}
 	#ifdef _HAVE_MPI_
@@ -748,5 +748,5 @@
 			
 			if(my_rank==0){  
-				if(fread(&string_size,sizeof(int),1,fid)!=1) _error2_("could not read length of string ");
+				if(fread(&string_size,sizeof(int),1,fid)!=1) _error_("could not read length of string ");
 			}
 			#ifdef _HAVE_MPI_
@@ -759,5 +759,5 @@
 				/*Read string on node 0, then broadcast: */
 				if(my_rank==0){  
-					if(fread(string,string_size*sizeof(char),1,fid)!=1)_error2_(" could not read string ");
+					if(fread(string,string_size*sizeof(char),1,fid)!=1)_error_(" could not read string ");
 				}
 				#ifdef _HAVE_MPI_
@@ -800,9 +800,9 @@
 	/*Set file pointer to beginning of the data: */
 	fid=this->SetFilePointerToData(&code,NULL,data_enum);
-	if(code!=8)_error2_("expecting a IssmDouble mat array for enum " << EnumToStringx(data_enum));
+	if(code!=8)_error_("expecting a IssmDouble mat array for enum " << EnumToStringx(data_enum));
 	
 	/*Now fetch: */
 	if(my_rank==0){  
-		if(fread(&numrecords,sizeof(int),1,fid)!=1) _error2_("could not read number of records in matrix array ");
+		if(fread(&numrecords,sizeof(int),1,fid)!=1) _error_("could not read number of records in matrix array ");
 	}
 	#ifdef _HAVE_MPI_
@@ -827,5 +827,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) _error_("could not read number of rows in " << i << "th matrix of matrix array");
 			}
 			#ifdef _HAVE_MPI_
@@ -834,5 +834,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) _error_("could not read number of columns in " << i << "th matrix of matrix array");
 			}
 			#ifdef _HAVE_MPI_
@@ -846,5 +846,5 @@
 				/*Read matrix on node 0, then broadcast: */
 				if(my_rank==0){  
-					if(fread(matrix,M*N*sizeof(IssmPDouble),1,fid)!=1) _error2_("could not read matrix ");
+					if(fread(matrix,M*N*sizeof(IssmPDouble),1,fid)!=1) _error_("could not read matrix ");
 				}
 
@@ -912,5 +912,5 @@
 			  }
 		default:
-			  _error2_("Option of format " << code << " not supported yet");
+			  _error_("Option of format " << code << " not supported yet");
 	}
 
@@ -941,5 +941,5 @@
 		_assert_(dataenum<MaximumNumberOfEnums);
 		if(this->data[dataenum]){
-			_error2_("Info: trying to fetch " << EnumToStringx(dataenum) << " but previous pointer has not been freed (DeleteData has not been called)");
+			_error_("Info: trying to fetch " << EnumToStringx(dataenum) << " but previous pointer has not been freed (DeleteData has not been called)");
 		}
 		#endif
@@ -1141,5 +1141,5 @@
 			break; /*}}}*/
 		default: /*{{{*/
-			_error2_("data code " << code << " not supported yet!");
+			_error_("data code " << code << " not supported yet!");
 			break;
 			/*}}}*/
@@ -1232,5 +1232,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)_error_("could not find data with name" << " " << EnumToStringx(data_enum) << " ");
 #endif
 
Index: /issm/trunk-jpl/src/c/classes/bamg/BamgOpts.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/BamgOpts.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/BamgOpts.cpp	(revision 13036)
@@ -60,28 +60,28 @@
 	int i;
 
-	if (this->anisomax<1) _error2_("'anisomax' option should be >=1");
-	if (this->coeff==0) _error2_("'coeff' should be positive");
-	if (this->errg<0) _error2_("'errg' option should be >0");
-	if (this->gradation<1) _error2_("'gradation' option should be >=1");
-	if (this->Hessiantype!=0  && this->Hessiantype!=1) _error2_("'Hessiantype' supported options are 0 and 1");
-	if (this->maxnbv<3) _error2_("'maxnbv' option should be >3");
-	if (this->maxsubdiv<=1) _error2_("'maxsubdiv' should be >1");
-	if (this->Metrictype!=0   && this->Metrictype!=1 && this->Metrictype!=2) _error2_("'Metrictype' supported options are 0, 1 and 2");
-	if (this->nbjacobi<=0) _error2_("'nbjacobi' option should be >0");
-	if (this->nbsmooth<=0) _error2_("'nbsmooth' option should be >0");
+	if (this->anisomax<1) _error_("'anisomax' option should be >=1");
+	if (this->coeff==0) _error_("'coeff' should be positive");
+	if (this->errg<0) _error_("'errg' option should be >0");
+	if (this->gradation<1) _error_("'gradation' option should be >=1");
+	if (this->Hessiantype!=0  && this->Hessiantype!=1) _error_("'Hessiantype' supported options are 0 and 1");
+	if (this->maxnbv<3) _error_("'maxnbv' option should be >3");
+	if (this->maxsubdiv<=1) _error_("'maxsubdiv' should be >1");
+	if (this->Metrictype!=0   && this->Metrictype!=1 && this->Metrictype!=2) _error_("'Metrictype' supported options are 0, 1 and 2");
+	if (this->nbjacobi<=0) _error_("'nbjacobi' option should be >0");
+	if (this->nbsmooth<=0) _error_("'nbsmooth' option should be >0");
 
-	if (this->Crack!=0  && this->Crack!=1) _error2_("'Crack' supported options are 0 and 1");
-	if (this->KeepVertices!=0 && this->KeepVertices!=1) _error2_("'KeepVertices' supported options are 0 and 1");
-	if (this->geometricalmetric!=0  && this->geometricalmetric!=1) _error2_("'geometricalmetric' supported options are 0 and 1");
+	if (this->Crack!=0  && this->Crack!=1) _error_("'Crack' supported options are 0 and 1");
+	if (this->KeepVertices!=0 && this->KeepVertices!=1) _error_("'KeepVertices' supported options are 0 and 1");
+	if (this->geometricalmetric!=0  && this->geometricalmetric!=1) _error_("'geometricalmetric' supported options are 0 and 1");
 
-	if (this->hmin<=0) _error2_("'hmin' option should be >0");
-	if (this->hmax<=0 || this->hmax<this->hmin) _error2_("'hmax' option should be between 0 and hmin=" << this->hmin);
-	if (this->hminVertices && this->hminVerticesSize[1]!=1) _error2_("'hminVertices' should be a column");
-	if (this->hmaxVertices && this->hmaxVerticesSize[1]!=1) _error2_("'hmaxVertices' should be a column");
-	if (this->hVertices && this->hVerticesSize[1]!=1) _error2_("'hVertices' should be a column");
-	if (this->metric && (this->metricSize[1]!=1 && this->metricSize[1]!=3)) _error2_("'metric' should have either 1 (iso) or 3 (aniso) columns.");
+	if (this->hmin<=0) _error_("'hmin' option should be >0");
+	if (this->hmax<=0 || this->hmax<this->hmin) _error_("'hmax' option should be between 0 and hmin=" << this->hmin);
+	if (this->hminVertices && this->hminVerticesSize[1]!=1) _error_("'hminVertices' should be a column");
+	if (this->hmaxVertices && this->hmaxVerticesSize[1]!=1) _error_("'hmaxVertices' should be a column");
+	if (this->hVertices && this->hVerticesSize[1]!=1) _error_("'hVertices' should be a column");
+	if (this->metric && (this->metricSize[1]!=1 && this->metricSize[1]!=3)) _error_("'metric' should have either 1 (iso) or 3 (aniso) columns.");
 	if (this->field){
-		if (this->errSize[0]!=1 || this->errSize[1]!=this->fieldSize[1]) _error2_("'err' should be of size " << 1 << " x " << this->fieldSize[1]);
-		for (i=0;i<this->fieldSize[1];i++) {if (this->err[i]<=0) _error2_("'err' option should be >0");};
+		if (this->errSize[0]!=1 || this->errSize[1]!=this->fieldSize[1]) _error_("'err' should be of size " << 1 << " x " << this->fieldSize[1]);
+		for (i=0;i<this->fieldSize[1];i++) {if (this->err[i]<=0) _error_("'err' option should be >0");};
 	}
 
Index: /issm/trunk-jpl/src/c/classes/bamg/BamgQuadtree.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/BamgQuadtree.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/BamgQuadtree.h	(revision 13036)
@@ -31,10 +31,10 @@
 					};
 					/*Object functions*/
-					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"); };
+					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"); };
 			};
 
Index: /issm/trunk-jpl/src/c/classes/bamg/BamgVertex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/BamgVertex.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/BamgVertex.cpp	(revision 13036)
@@ -76,5 +76,5 @@
 		}
 		else{
-			_error2_("Metrictype " << Metrictype << " not supported yet (use 0,1 or 2(default))");
+			_error_("Metrictype " << Metrictype << " not supported yet (use 0,1 or 2(default))");
 		}
 
@@ -146,5 +146,5 @@
 			j = NextEdge[jc];
 			if (k>=2000){
-				_error2_("k>=2000 (Maximum number of iterations reached)");
+				_error_("k>=2000 (Maximum number of iterations reached)");
 			}
 		} while ( tbegin != tria); 
@@ -213,5 +213,5 @@
 				j = NextEdge[jc];
 				if (k>=2000){
-					_error2_("k>=2000");
+					_error_("k>=2000");
 				}
 			}while ( tbegin != tria); 
Index: /issm/trunk-jpl/src/c/classes/bamg/Edge.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/Edge.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/Edge.cpp	(revision 13036)
@@ -45,5 +45,5 @@
 
 		/*some shecks*/
-		if (!(adj[0]==&e || adj[1]==&e)){ _error2_("Intersection bug"); }
+		if (!(adj[0]==&e || adj[1]==&e)){ _error_("Intersection bug"); }
 		_assert_(adj[0]==&e || adj[1]==&e);
 
Index: /issm/trunk-jpl/src/c/classes/bamg/Geometry.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/Geometry.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/Geometry.cpp	(revision 13036)
@@ -76,11 +76,11 @@
 
 		//some checks
-		if (bamggeom->Vertices==NULL) _error2_("the domain provided does not contain any vertex");
-		if (bamggeom->Edges==NULL) _error2_("the domain provided does not contain any edge");
+		if (bamggeom->Vertices==NULL) _error_("the domain provided does not contain any vertex");
+		if (bamggeom->Edges==NULL) _error_("the domain provided does not contain any edge");
 
 		//Vertices
 		if (bamggeom->Vertices){
 			if(verbose>5) _printLine_("      processing Vertices");
-			if (bamggeom->VerticesSize[1]!=3) _error2_("Vertices should have 3 columns");
+			if (bamggeom->VerticesSize[1]!=3) _error_("Vertices should have 3 columns");
 			vertices = new GeomVertex[nbv];
 			for (i=0;i<nbv;i++) {
@@ -115,8 +115,8 @@
 			 */
 			coefIcoor=(MaxICoor)/(Max(pmax.x-pmin.x,pmax.y-pmin.y));
-			if(coefIcoor<=0) _error2_("coefIcoor should be positive");
+			if(coefIcoor<=0) _error_("coefIcoor should be positive");
 		}
 		else{
-			_error2_("No BamgVertex provided");
+			_error_("No BamgVertex provided");
 		}
 
@@ -127,5 +127,5 @@
 
 			if(verbose>5) _printLine_("      processing Edges");
-			if (bamggeom->EdgesSize[1]!=3) _error2_("Edges should have 3 columns");
+			if (bamggeom->EdgesSize[1]!=3) _error_("Edges should have 3 columns");
 			edges = new GeomEdge[nbe];
 
@@ -176,5 +176,5 @@
 		}
 		else{
-			_error2_("No edges provided");
+			_error_("No edges provided");
 		}
 
@@ -206,5 +206,5 @@
 		if (bamggeom->TangentAtEdges){
 			if(verbose>5) _printString_("      processing TangentAtEdges");
-			if (bamggeom->TangentAtEdgesSize[1]!=4) _error2_("TangentAtEdges should have 4 columns");
+			if (bamggeom->TangentAtEdgesSize[1]!=4) _error_("TangentAtEdges should have 4 columns");
 			int n,i,j,k;
 			R2 tg;
@@ -216,6 +216,6 @@
 				tg.x=bamggeom->TangentAtEdges[k*4+2];
 				tg.y=bamggeom->TangentAtEdges[k*4+3];
-				if (i<0 || i>=nbe) _error2_("TangentAtEdges first index exceeds matrix dimension");
-				if (j!=0 && j!=1)  _error2_("TangentAtEdges second index should be 1 or 2 only");
+				if (i<0 || i>=nbe) _error_("TangentAtEdges first index exceeds matrix dimension");
+				if (j!=0 && j!=1)  _error_("TangentAtEdges second index should be 1 or 2 only");
 				edges[i].tg[j] = tg;
 			}
@@ -225,9 +225,9 @@
 		if(bamggeom->Corners){
 			if(verbose>5) _printString_("      processing Corners");
-			if (bamggeom->CornersSize[1]!=1) _error2_("Corners should have 1 column");
+			if (bamggeom->CornersSize[1]!=1) _error_("Corners should have 1 column");
 			n=bamggeom->CornersSize[0];
 			for (i=0;i<n;i++) {     
 				j=(int)bamggeom->Corners[i]-1; //for C indexing
-				if (j>nbv-1 || j<0) _error2_("Bad corner definition: should in [0 " << nbv << "]");
+				if (j>nbv-1 || j<0) _error_("Bad corner definition: should in [0 " << nbv << "]");
 				/*Required => at the same time SetRequired and SetCorner*/
 				vertices[j].SetCorner();
@@ -239,9 +239,9 @@
 		if(bamggeom->RequiredVertices){
 			if(verbose>5) _printLine_("      processing RequiredVertices");
-			if (bamggeom->RequiredVerticesSize[1]!=1) _error2_("RequiredVertices should have 1 column");
+			if (bamggeom->RequiredVerticesSize[1]!=1) _error_("RequiredVertices should have 1 column");
 			n=bamggeom->RequiredVerticesSize[0];
 			for (i=0;i<n;i++) {     
 				j=(int)bamggeom->RequiredVertices[i]-1; //for C indexing
-				if (j>nbv-1 || j<0) _error2_("Bad RequiredVerticess  definition: should in [0 " << nbv << "]");
+				if (j>nbv-1 || j<0) _error_("Bad RequiredVerticess  definition: should in [0 " << nbv << "]");
 				vertices[j].SetRequired();
 			}
@@ -251,9 +251,9 @@
 		if(bamggeom->RequiredEdges){
 			if(verbose>5) _printLine_("      processing RequiredEdges");
-			if (bamggeom->RequiredEdgesSize[1]!=1) _error2_("RequiredEdges should have 1 column");
+			if (bamggeom->RequiredEdgesSize[1]!=1) _error_("RequiredEdges should have 1 column");
 			n=bamggeom->RequiredEdgesSize[0];
 			for (i=0;i<n;i++) {     
 				j=(int)bamggeom->RequiredEdges[i]-1; //for C indexing
-				if (j>nbe-1 || j<0) _error2_("Bad RequiredEdges definition: should in [0 " << nbe << "]");
+				if (j>nbe-1 || j<0) _error_("Bad RequiredEdges definition: should in [0 " << nbe << "]");
 				edges[j].SetRequired();  
 			}
@@ -263,5 +263,5 @@
 		if(bamggeom->SubDomains){
 			if(verbose>5) _printLine_("      processing SubDomains");
-			if (bamggeom->SubDomainsSize[1]!=4) _error2_("SubDomains should have 4 columns");
+			if (bamggeom->SubDomainsSize[1]!=4) _error_("SubDomains should have 4 columns");
 			nbsubdomains=bamggeom->SubDomainsSize[0];
 			subdomains = new GeomSubDomain[nbsubdomains];
@@ -271,6 +271,6 @@
 				i2=(int)bamggeom->SubDomains[i*4+2];
 				i3=(int)bamggeom->SubDomains[i*4+3];
-				if (i0!=2) _error2_("Bad Subdomain definition: first number should be 2 (for Edges)");
-				if (i1>nbe || i1<=0) _error2_("Bad Subdomain definition: second number should in [1 " << nbe << "] (edge number)");
+				if (i0!=2) _error_("Bad Subdomain definition: first number should be 2 (for Edges)");
+				if (i1>nbe || i1<=0) _error_("Bad Subdomain definition: second number should in [1 " << nbe << "] (edge number)");
 				subdomains[i].edge=edges + (i1-1);
 				subdomains[i].direction = (int) i2;
@@ -532,5 +532,5 @@
 				delete [] head_v;
 				delete [] eangle;
-				_error2_("two points of the geometry are very closed to each other (see reference numbers above)");
+				_error_("two points of the geometry are very closed to each other (see reference numbers above)");
 			}
 
@@ -610,5 +610,5 @@
 				delete [] head_v;
 				delete [] eangle;
-				_error2_("Length of edge " << i << " is 0");
+				_error_("Length of edge " << i << " is 0");
 			}
 			//compute angle in [-Pi Pi]
@@ -704,5 +704,5 @@
 				long i1 = n1/2 ,j1=n1%2;
 
-				if( edges[i1].v[j1] != edges[i].v[j]) _error2_("Problem while processing edges: check the edge list");
+				if( edges[i1].v[j1] != edges[i].v[j]) _error_("Problem while processing edges: check the edge list");
 
 				edges[i1].Adj[j1] = edges + i;
@@ -831,8 +831,8 @@
 		GeomEdge* on=e.GeomEdgeHook;
 		if (!on){
-			_error2_("ProjectOnCurve error message: edge provided should be on geometry");
+			_error_("ProjectOnCurve error message: edge provided should be on geometry");
 		}
 		if (!e[0].GeomEdgeHook ||  !e[1].GeomEdgeHook){
-			_error2_("ProjectOnCurve error message: at least one of the vertex of the edge provided is not on geometry");
+			_error_("ProjectOnCurve error message: at least one of the vertex of the edge provided is not on geometry");
 		}
 
@@ -875,5 +875,5 @@
 					_printLine_(" 2)  code bug : be sure that we call   Mesh::SetVertexFieldOn() before");
 					_printLine_("To solve the problem do a coarsening of the geometrical mesh or change the constant value of mxe (dangerous)");
-					_error2_("see above");
+					_error_("see above");
 				}
 				NbTry++;
@@ -895,5 +895,5 @@
 				_printLine_(" 2)  code bug : be sure that we call   Mesh::SetVertexFieldOn() before");
 				_printLine_("To solve the problem do a coarsening of the geometrical mesh or change the constant value of mxe (dangerous)");
-				_error2_("see above");
+				_error_("see above");
 			}
 			GeomEdge* tmpge = eg1;
Index: /issm/trunk-jpl/src/c/classes/bamg/ListofIntersectionTriangles.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/ListofIntersectionTriangles.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/ListofIntersectionTriangles.cpp	(revision 13036)
@@ -38,5 +38,5 @@
 		// check Size
 		if (Size<=0){
-			_error2_("Size<=0");
+			_error_("Size<=0");
 		}
 
@@ -268,5 +268,5 @@
 				k=(*t)(0) ?  ((  (*t)(1) ? ( (*t)(2) ? -1 : 2) : 1  )) : 0;
 				if (k<0){
-					_error2_("k<0");
+					_error_("k<0");
 				}
 				ocut = OppositeEdge[k];
@@ -312,5 +312,5 @@
 				double dij = detj-deti;
 				if (i+j+k != 0 + 1 +2){
-					_error2_("i+j+k != 0 + 1 +2");
+					_error_("i+j+k != 0 + 1 +2");
 				}
 				ba[j] =  detj/dij;
@@ -384,5 +384,5 @@
 					}
 					else {
-						_error2_("Bug Split Edge");
+						_error_("Bug Split Edge");
 					}
 				}
Index: /issm/trunk-jpl/src/c/classes/bamg/ListofIntersectionTriangles.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/ListofIntersectionTriangles.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/ListofIntersectionTriangles.h	(revision 13036)
@@ -34,5 +34,5 @@
 					double c01=lEnd-lBegin, c0=(lEnd-s)/c01, c1=(s-lBegin)/c01;
 					if (lBegin>s || s>lEnd){
-						_error2_("lBegin>s || s>lEnd");
+						_error_("lBegin>s || s>lEnd");
 					}
 					return e->F(sBegin*c0+sEnd*c1);
Index: /issm/trunk-jpl/src/c/classes/bamg/Mesh.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/Mesh.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/Mesh.cpp	(revision 13036)
@@ -117,5 +117,5 @@
 			  delete [] kk;
 			  delete [] refv;
-			  _error2_("imaxnbv != nbv");
+			  _error_("imaxnbv != nbv");
 		  }
 		  for (i=0;i<Tho.nbt;i++)
@@ -128,8 +128,8 @@
 				if (i0<0 || i1<0 || i2<0){
 					delete [] refv;
-					_error2_("i0<0 || i1<0 || i2< 0");
+					_error_("i0<0 || i1<0 || i2< 0");
 				}
 				if (i0>=Tho.nbv || i1>=Tho.nbv || i2>=Tho.nbv){
-					_error2_("i0>=Tho.nbv || i1>=Tho.nbv || i2>=Tho.nbv");
+					_error_("i0>=Tho.nbv || i1>=Tho.nbv || i2>=Tho.nbv");
 				}
 				triangles[nbt] = Triangle(this,kk[i0],kk[i1],kk[i2]);
@@ -138,8 +138,8 @@
 			  }
 		  if (kt!=nbt){
-			  _error2_("kt!=nbt");
+			  _error_("kt!=nbt");
 		  }
 		  if (nbt==0 && nbv==0) {
-			  _error2_("All triangles have been removed");
+			  _error_("All triangles have been removed");
 		  }
 		  delete [] kk;
@@ -153,8 +153,8 @@
 
 		  if (!nbsubdomains){
-			  _error2_("nbsubdomains==0");
+			  _error_("nbsubdomains==0");
 		  }
 		  if (!subdomains[0].head || !subdomains[0].head->link){
-			  _error2_("!subdomains[0].head || !subdomains[0].head->link");
+			  _error_("!subdomains[0].head || !subdomains[0].head->link");
 		  }
 
@@ -323,5 +323,5 @@
 			}
 		}
-		if(isorphan) _error2_("Orphan found in mesh, see ids above");
+		if(isorphan) _error_("Orphan found in mesh, see ids above");
 
 		/*Clean up*/
@@ -362,5 +362,5 @@
 		}
 		else{
-			if(verbose>5) _error2_("no Vertices found in the initial mesh");
+			if(verbose>5) _error_("no Vertices found in the initial mesh");
 		}
 
@@ -380,5 +380,5 @@
 		}
 		else{
-			if(verbose>5) _error2_("no Triangles found in the initial mesh");
+			if(verbose>5) _error_("no Triangles found in the initial mesh");
 		}
 
@@ -506,5 +506,5 @@
 				//Check value
 				if(!(i>=0 && j>=0 && i<nbe && j<Gh.nbe)) {
-					_error2_("ReadMesh error: EdgesOnGeomEdge edge provided (line " << i1+1 << ": [" << i+1 << " " << j+1 << "]) is incorrect (must be positive, [0<i<nbe=" << nbe << " 0<j<Gh.nbe=" << Gh.nbe << "]");
+					_error_("ReadMesh error: EdgesOnGeomEdge edge provided (line " << i1+1 << ": [" << i+1 << " " << j+1 << "]) is incorrect (must be positive, [0<i<nbe=" << nbe << " 0<j<Gh.nbe=" << Gh.nbe << "]");
 				}
 				edges[i].GeomEdgeHook=Gh.edges+j;
@@ -522,6 +522,6 @@
 				head=(int)bamgmesh->SubDomains[i*3+1]-1;//C indexing
 				direction=(int)bamgmesh->SubDomains[i*3+2];
-				if (i3!=23) _error2_("Bad Subdomain definition: first number should be 3");
-				if (head<0 || head>=nbt) _error2_("Bad Subdomain definition: head should in [1 " << nbt << "] (triangle number)");
+				if (i3!=23) _error_("Bad Subdomain definition: first number should be 3");
+				if (head<0 || head>=nbt) _error_("Bad Subdomain definition: head should in [1 " << nbt << "] (triangle number)");
 				subdomains[i].head = triangles+head;
 			}
@@ -567,7 +567,7 @@
 				for (j=0;j<3;j++){
 					int v=GetId(triangles[i][j]); //jth vertex of the ith triangle
-					if (k>3*nbt-1 || k<0) _error2_("k = " << k << ", nbt = " << nbt);
+					if (k>3*nbt-1 || k<0) _error_("k = " << k << ", nbt = " << nbt);
 					next_1[k]=head_1[v];
-					if (v>nbv-1 || v<0)   _error2_("v = " << v << ", nbv = " << nbv);
+					if (v>nbv-1 || v<0)   _error_("v = " << v << ", nbv = " << nbv);
 					head_1[v]=k++;
 					connectivitysize_1[v]+=1;
@@ -707,5 +707,5 @@
 				}
 				if (!stop){
-					_error2_("Element holding segment [" << i1+1 << " " << i2+1 << "] not found...");
+					_error_("Element holding segment [" << i1+1 << " " << i2+1 << "] not found...");
 				}
 			}
@@ -805,5 +805,5 @@
 				const VertexOnGeom &v=VerticesOnGeomEdge[i];
 				if (!v.OnGeomEdge()){
-					_error2_("A vertices supposed to be OnGeomEdge is actually not");
+					_error_("A vertices supposed to be OnGeomEdge is actually not");
 				}
 				bamgmesh->VerticesOnGeomEdge[i*3+0]=GetId((BamgVertex*)v)+1; //back to Matlab indexing
@@ -888,7 +888,7 @@
 			for (j=0;j<2;j++){
 				int v=(int)bamgmesh->IssmEdges[i*i2+j]-1; //back to C indexing
-				if (k>2*i1-1 || k<0) _error2_("Index exceed matrix dimensions (k=" << k << " not in [0 " << 2*i1-1 << "]");
+				if (k>2*i1-1 || k<0) _error_("Index exceed matrix dimensions (k=" << k << " not in [0 " << 2*i1-1 << "]");
 				next_2[k]=head_2[v];
-				if (v>nbv-1 || v<0)   _error2_("Index exceed matrix dimensions (v=" << v << " not in [0 " << nbv-1 << "])");
+				if (v>nbv-1 || v<0)   _error_("Index exceed matrix dimensions (v=" << v << " not in [0 " << nbv-1 << "])");
 				head_2[v]=k++;
 				connectivitysize_2[v]+=1;
@@ -1061,5 +1061,5 @@
 		//check that hmax is positive
 		if (hmax<=0){
-			_error2_("hmax<=0");
+			_error_("hmax<=0");
 		}
 
@@ -1090,5 +1090,5 @@
 
 				if (ht<=0 || hn<=0){
-					_error2_("ht<=0 || hn<=0");
+					_error_("ht<=0 || hn<=0");
 				}
 				EigenMetric Vp(1/(ht*ht),1/(hn*hn),tg);
@@ -1115,5 +1115,5 @@
 		}
 		else{
-			_error2_("Hessiantype " << Hessiantype << " not supported yet (1->use Green formula, 0-> double P2 projection)");
+			_error_("Hessiantype " << Hessiantype << " not supported yet (1->use Green formula, 0-> double P2 projection)");
 		}
 	}
@@ -1159,5 +1159,5 @@
 		//some checks
 		if (( infvertexindex <0 ) && (detOld <0) ||  ( infvertexindex >=0  ) && (detOld >0) ){
-			_error2_("inconsistent configuration (Contact ISSM developers)");
+			_error_("inconsistent configuration (Contact ISSM developers)");
 		}
 
@@ -1201,5 +1201,5 @@
 			}
 			else{
-				_error2_("Cannot add a vertex more than once. Check duplicates");
+				_error_("Cannot add a vertex more than once. Check duplicates");
 			}
 		}
@@ -1214,5 +1214,5 @@
 		tt[2]= &triangles[nbt++];
 
-		if (nbt>maxnbt) _error2_("Not enough triangles");
+		if (nbt>maxnbt) _error_("Not enough triangles");
 
 		*tt[1]=*tt[2]=*t;
@@ -1251,5 +1251,5 @@
 
 			if (!rswap) {
-				_error2_("swap the point s is on a edge");
+				_error_("swap the point s is on a edge");
 			}
 		}
@@ -1318,5 +1318,5 @@
 		//check that the mesh is not empty
 		if (nbt<=0 || nbv <=0 ) {
-			_error2_("nbt or nbv is negative (Mesh empty?)");
+			_error_("nbt or nbv is negative (Mesh empty?)");
 		}
 
@@ -1340,5 +1340,5 @@
 		if (nbe !=  edge4->nb()){ 
 			delete [] st;
-			_error2_("Some Double edge in the mesh, the number is " << nbe << ", nbe4=" << edge4->nb()); 
+			_error_("Some Double edge in the mesh, the number is " << nbe << ", nbe4=" << edge4->nb()); 
 		}
 		//keep nbe in nbeold
@@ -1360,5 +1360,5 @@
 					//check that it is not an edge on boundary (should not already exist)
 					if (triangles[i].TriangleAdj(j) || triangles[st[k]/3].TriangleAdj((int) (st[k]%3))){
-						_error2_("problem in Geometry reconstruction: an edge on boundary is duplicated (double element?)");
+						_error_("problem in Geometry reconstruction: an edge on boundary is duplicated (double element?)");
 					}
 					//OK, the element is not on boundary, is belongs to 2 triangles -> build Adjacent triangles list
@@ -1378,5 +1378,5 @@
 					_printLine_("Edge " << (-st[k]+2)%3 << " of triangle " << (-st[k]+2)/3);
 					_printLine_("Edge " << triangles[(-st[k]+2)/3].NuEdgeTriangleAdj((int)((-st[k]+2)%3)) << " of triangle " << GetId(triangles[(-st[k]+2)/3].TriangleAdj((int)((-st[k]+2)%3))));
-					_error2_("An edge belongs to more than 2 triangles");
+					_error_("An edge belongs to more than 2 triangles");
 				}	
 			}
@@ -1460,5 +1460,5 @@
 			//check that we have been through all edges
 			if (k!=nbe){
-				_error2_("problem in edge construction process: k!=nbe (should not happen)");
+				_error_("problem in edge construction process: k!=nbe (should not happen)");
 			}
 			//delete edgessave
@@ -1505,5 +1505,5 @@
 					//check that we have the correct vertex
 					if (v!=edges[i0 ].v[j0]){
-						_error2_("v!=edges[i0 ].v[j0]: this should not happen as the vertex belongs to this edge");
+						_error_("v!=edges[i0 ].v[j0]: this should not happen as the vertex belongs to this edge");
 					}
 
@@ -1522,5 +1522,5 @@
 		//check that nbsubdomains is empty
 		if (nbsubdomains){
-			_error2_("nbsubdomains should be 0");
+			_error_("nbsubdomains should be 0");
 		}
 		nbsubdomains=0;
@@ -1591,5 +1591,5 @@
 		if (k!= nbsubdomains){
 			delete [] colorT;
-			_error2_("k!= nbsubdomains");
+			_error_("k!= nbsubdomains");
 		}
 		//delete colorT and st
@@ -1652,5 +1652,5 @@
 		if (Gh.coefIcoor<=0){
 			delete [] colorV;
-			_error2_("Gh.coefIcoor<=0 in infered Geometry (this should not happen)");
+			_error_("Gh.coefIcoor<=0 in infered Geometry (this should not happen)");
 		}
 
@@ -1705,5 +1705,5 @@
 				delete [] len;
 				delete [] colorV;
-				_error2_("problem in Edge4 construction: k != i");
+				_error_("problem in Edge4 construction: k != i");
 			}
 		}
@@ -1734,5 +1734,5 @@
 			}
 			else
-			 _error2_("%i should be >=0");
+			 _error_("%i should be >=0");
 		  }
 
@@ -1768,5 +1768,5 @@
 
 		/*Check size*/
-		if (bamgopts->fieldSize[0] != nbv) _error2_("'field' should have " << nbv << " rows");
+		if (bamgopts->fieldSize[0] != nbv) _error_("'field' should have " << nbv << " rows");
 
 		//initialization of some variables
@@ -1973,5 +1973,5 @@
 
 		/*Check size*/
-		if (bamgopts->fieldSize[0] != nbv) _error2_("'field' should have " << nbv << " rows");
+		if (bamgopts->fieldSize[0] != nbv) _error_("'field' should have " << nbv << " rows");
 
 		//initialization of some variables
@@ -2298,5 +2298,5 @@
 				if (splitvertex[i1]==3 || splitvertex[i2]==3){
 					delete [] splitvertex;
-					_error2_("Crossing rifts not supported yet");
+					_error_("Crossing rifts not supported yet");
 				}
 			}
@@ -2376,5 +2376,5 @@
 				//_printLine_(element_renu[GetId(ta.t)] << " -> " << GetId((*ta.t)[0])+1 << " " << GetId((*ta.t)[1])+1 << " " << GetId((*ta.t)[2])+1 << ", edge [" << i1 << "->" << j1 << " " << i2 << "->" << j2 << "]");
 				ta = Next(ta).Adj(); 
-				if (count++>50) _error2_("Maximum number of iteration exceeded");
+				if (count++>50) _error_("Maximum number of iteration exceeded");
 			}while ((tbegin != ta)); 
 		}
@@ -2383,5 +2383,5 @@
 		for(i=0;i<NbCrackedEdges;i++){
 			if (Edgeflags[i]!=2){
-				_error2_("A problem occured: at least one crack edge (number " << i+1 << ") does not belong to 2 elements");
+				_error_("A problem occured: at least one crack edge (number " << i+1 << ") does not belong to 2 elements");
 			}
 		}
@@ -2433,5 +2433,5 @@
 			}
 			if (k!=0) {
-				_error2_("there is " << k << " triangles of mes = 0");
+				_error_("there is " << k << " triangles of mes = 0");
 			}
 
@@ -2447,10 +2447,10 @@
 				if (nbswp) nbfe++;
 				if ( nbswp < 0 && k < 5){
-					_error2_("Missing Edge " << i << ", v0=" << GetId(edges[i][0]) << ",v1=" << GetId(edges[i][1]));
+					_error_("Missing Edge " << i << ", v0=" << GetId(edges[i][0]) << ",v1=" << GetId(edges[i][1]));
 				}
 			}
 
 			if (k!=0) {
-				_error2_("There are " << k << " lost edges, the boundary might be crossing");
+				_error_("There are " << k << " lost edges, the boundary might be crossing");
 			}
 			for (int j=0;j<nbv;j++){
@@ -2534,5 +2534,5 @@
 			if (nbt == nbtout ||  !NbSubDomTot) {
 				delete [] HeapArete;
-				_error2_("The boundary is not close: all triangles are outside");
+				_error_("The boundary is not close: all triangles are outside");
 			}
 
@@ -2572,5 +2572,5 @@
 						if (k!=nbsubdomains){
 							delete [] mark;
-							_error2_("k!=nbsubdomains");
+							_error_("k!=nbsubdomains");
 						}
 						if(OutSide) 
@@ -2662,5 +2662,5 @@
 							 subdomains[i].head=t=ta;
 							if(t<triangles || t >= triangles+nbt || t->det < 0 || t->link == 0) {
-								_error2_("bad definition of SubSomain " << i);
+								_error_("bad definition of SubSomain " << i);
 							}
 							long it = GetId(t);
@@ -2677,5 +2677,5 @@
 								kkk++;
 								if (mark[GetId(tt)]>=0){
-									_error2_("mark[GetId(tt)]>=0");
+									_error_("mark[GetId(tt)]>=0");
 								}
 								mark[GetId(tt)]=i;
@@ -2686,5 +2686,5 @@
 						ta = Previous(Adj(ta));         
 						if(t == (Triangle *) ta) {
-							_error2_("bad definition of SubSomain " << i);
+							_error_("bad definition of SubSomain " << i);
 						}
 					}
@@ -2848,5 +2848,5 @@
 			//if i is higher than nbv, it means that all the determinants are 0,
 			//all vertices are aligned!
-			if  (++i>=nbv) _error2_("all the vertices are aligned");
+			if  (++i>=nbv) _error_("all the vertices are aligned");
 		}
 		// exchange i et 2 in "orderedvertices" so that
@@ -2984,5 +2984,5 @@
 				long  j=vj.ReferenceNumber; 
 				if (&vj!=orderedvertices[j]){
-					_error2_("&vj!= orderedvertices[j]");
+					_error_("&vj!= orderedvertices[j]");
 				}
 				if(i!=j){ 
@@ -2994,5 +2994,5 @@
 				if (tcvj && !tcvj->link){
 					tcvj->Echo();
-					_error2_("problem inserting point in InsertNewPoints (tcvj=" << tcvj << " and tcvj->link=" << tcvj->link << ")");
+					_error_("problem inserting point in InsertNewPoints (tcvj=" << tcvj << " and tcvj->link=" << tcvj->link << ")");
 				}
 				quadtree->Add(vj);
@@ -3026,5 +3026,5 @@
 
 		if (!Gh.nbe){
-			_error2_("!Gh.nbe");
+			_error_("!Gh.nbe");
 		}
 		Edge **e= new (Edge* [Gh.nbe]);
@@ -3059,5 +3059,5 @@
 			}
 		}
-		if(kk) _error2_("See above");
+		if(kk) _error_("See above");
 
 		return e;
@@ -3258,5 +3258,5 @@
 				//check i
 				if (i<0 || i>=nbt ){
-					_error2_("Index problem in NewPoints (i=" << i << " not in [0 " << nbt-1 << "])");
+					_error_("Index problem in NewPoints (i=" << i << " not in [0 " << nbt-1 << "])");
 				}
 				//change first_np_or_next_t[i]
@@ -3309,5 +3309,5 @@
 					}
 					if (ta.EdgeVertex(0)!=s){
-						_error2_("ta.EdgeVertex(0)!=s");
+						_error_("ta.EdgeVertex(0)!=s");
 					}
 					ta = Next(Adj(ta));
@@ -3344,5 +3344,5 @@
 		}
 		else {
-			_error2_("ProjectOnCurve On BamgVertex " << BTh.GetId(vA) << " forget call to SetVertexFieldOnBTh");
+			_error_("ProjectOnCurve On BamgVertex " << BTh.GetId(vA) << " forget call to SetVertexFieldOnBTh");
 		} 
 
@@ -3355,9 +3355,9 @@
 		}
 		else {
-			_error2_("ProjectOnCurve On BamgVertex " << BTh.GetId(vB) << " forget call to SetVertexFieldOnBTh");
+			_error_("ProjectOnCurve On BamgVertex " << BTh.GetId(vB) << " forget call to SetVertexFieldOnBTh");
 		} 
 		Edge * e = &BhAB;
 		if (!pA || !pB || !e){
-			_error2_("!pA || !pB || !e");
+			_error_("!pA || !pB || !e");
 		}
 		// be carefull the back ground edge e is on same geom edge 
@@ -3365,5 +3365,5 @@
 		//check Is a background Mesh;   
 		if (e<BTh.edges || e>=BTh.edges+BTh.nbe){
-			_error2_("e<BTh.edges || e>=BTh.edges+BTh.nbe");
+			_error_("e<BTh.edges || e>=BTh.edges+BTh.nbe");
 		}
 		// walk on BTh edge 
@@ -3388,5 +3388,5 @@
 		  } 
 		else{ // do the search by walking 
-			_error2_("case not supported yet");
+			_error_("case not supported yet");
 		  }
 
@@ -3452,5 +3452,5 @@
 
 		  }
-		_error2_("Big bug...");
+		_error_("Big bug...");
 		return 0; // just for the compiler 
 	}                  
@@ -3493,5 +3493,5 @@
 	}
 	if (kk != nbe){ 
-		_error2_("There are " << kk-nbe << " double edges in the mesh");
+		_error_("There are " << kk-nbe << " double edges in the mesh");
 	}
 
@@ -3525,5 +3525,5 @@
 			//An edge belongs to 2 triangles
 			else {
-				_error2_("The edge (" << GetId(triangles[i][VerticesOfTriangularEdge[j][0]]) << " , " << GetId(triangles[i][VerticesOfTriangularEdge[j][1]]) << ") belongs to more than 2 triangles");
+				_error_("The edge (" << GetId(triangles[i][VerticesOfTriangularEdge[j][0]]) << " , " << GetId(triangles[i][VerticesOfTriangularEdge[j][1]]) << ") belongs to more than 2 triangles");
 			}
 		}
@@ -3563,5 +3563,5 @@
 	}
 	if(k) {
-		_error2_(k << " boundary edges (from the geometry) are not defined as mesh edges");
+		_error_(k << " boundary edges (from the geometry) are not defined as mesh edges");
 	}
 
@@ -3590,5 +3590,5 @@
 	for (i=2;det(orderedvertices[0]->i,orderedvertices[1]->i,orderedvertices[i]->i)==0;) 
 	 if  (++i>=nbvb) {
-		 _error2_("ReconstructExistingMesh: All the vertices are aligned");
+		 _error_("ReconstructExistingMesh: All the vertices are aligned");
 	 }
 	//Move this vertex (i) to the 2d position in orderedvertices
@@ -3650,5 +3650,5 @@
 	}
 	if(nbloss) {
-		_error2_("we lost " << nbloss << " existing edges other " << knbe);
+		_error_("we lost " << nbloss << " existing edges other " << knbe);
 	}
 
@@ -3725,5 +3725,5 @@
 	subdomains = savesubdomains;
 	if (k) {
-		_error2_("number of triangles edges alone = " << k);
+		_error_("number of triangles edges alone = " << k);
 	}
 	FindSubDomain();
@@ -3755,5 +3755,5 @@
 
 						_printLine_("This edge is on geometry and has no adjacent edge (open curve) and one of the tip is not required");
-						_error2_("See above (might be cryptic...)");
+						_error_("See above (might be cryptic...)");
 					}
 				}
@@ -3778,13 +3778,13 @@
 			t=t0=subdomains[i].head;
 			if (!t0){ // not empty sub domain
-				_error2_("!t0");
+				_error_("!t0");
 			}
 			do { 
 				long kt = GetId(t);
 				if (kt<0 || kt >= nbt ){
-					_error2_("kt<0 || kt >= nbt");
+					_error_("kt<0 || kt >= nbt");
 				}
 				if (renu[kt]!=-1){
-					_error2_("renu[kt]!=-1");
+					_error_("renu[kt]!=-1");
 				}
 				renu[kt]=k++;
@@ -3803,5 +3803,5 @@
 		}
 		if (k != nbt){
-			_error2_("k != nbt");
+			_error_("k != nbt");
 		}
 		// do the change on all the pointeur 
@@ -3929,5 +3929,5 @@
 	coefIcoor= (MaxICoor)/(Max(pmax.x-pmin.x,pmax.y-pmin.y));
 	if (coefIcoor<=0){
-		_error2_("coefIcoor should be positive, a problem in the geometry is likely");
+		_error_("coefIcoor should be positive, a problem in the geometry is likely");
 	}
 
@@ -3965,5 +3965,5 @@
 	}
 
-	if (number_of_errors) _error2_("Fatal error: some triangles have negative areas, see above");
+	if (number_of_errors) _error_("Fatal error: some triangles have negative areas, see above");
 }
 /*}}}*/
@@ -4146,5 +4146,5 @@
 			register Triangle* t= vertices[i].t;
 			if (!t){
-				_error2_("!t");
+				_error_("!t");
 			}
 			BamgVertex & vi = vertices[i];
@@ -4154,5 +4154,5 @@
 				ta=Previous(Adj(ta));
 				if (vertices+i != ta.EdgeVertex(1)){
-					_error2_("vertices+i != ta.EdgeVertex(1)");
+					_error_("vertices+i != ta.EdgeVertex(1)");
 				}
 				BamgVertex & vj = *(ta.EdgeVertex(0));
@@ -4160,5 +4160,5 @@
 					j= &vj-vertices;
 					if (j<0 || j >= nbv){
-						_error2_("j<0 || j >= nbv");
+						_error_("j<0 || j >= nbv");
 					}
 					R2 Aij = (R2) vj - (R2) vi;
@@ -4284,5 +4284,5 @@
 					// the first PB is to now a background edge between the 2 vertices
 					if (!edgesGtoB){
-						_error2_("!edgesGtoB");
+						_error_("!edgesGtoB");
 					}
 					ong= ProjectOnCurve(*edgesGtoB[Gh.GetId(edges[i].GeomEdgeHook)],
@@ -4356,5 +4356,5 @@
 			Triangle & t = triangles[i];
 			if (!t.link){
-				_error2_("!t.link");
+				_error_("!t.link");
 			}
 			for(int j=0;j<3;j++)
@@ -4383,5 +4383,5 @@
 										||   (cc=Area2( t[0].r , t[1].r , A.r    )) < 0.0)){
 							_printLine_(ke + nbvold << " not in triangle " << i << " In= " << !!t.link << " " << aa << " " << bb << " " << cc << " " << dd);
-							_error2_("Number of triangles with P2 interpolation Problem");
+							_error_("Number of triangles with P2 interpolation Problem");
 						}
 					}
@@ -4391,5 +4391,5 @@
 										||   (cc=Area2( tt[0].r , tt[1].r , A.r     )) < 0)){
 							_printLine_(ke + nbvold << " not in triangle " << ii << " In= " << !!tt.link << " " << aa << " " << bb << " " << cc << " " << dd);
-							_error2_("Number of triangles with P2 interpolation Problem");
+							_error_("Number of triangles with P2 interpolation Problem");
 						}
 					} 
@@ -4439,5 +4439,5 @@
 						  } // tt 
 						else
-						 _error2_("Bug...");
+						 _error_("Bug...");
 					  } // ke<0	       
 					else
@@ -4452,5 +4452,5 @@
 			  } 
 			if (nbinvisible>=2){
-				_error2_("nbinvisible>=2");
+				_error_("nbinvisible>=2");
 			}
 			switch (nbsplitedge) {
@@ -4464,5 +4464,5 @@
 			} 
 			if (ksplit[i]<40){
-				_error2_("ksplit[i]<40");
+				_error_("ksplit[i]<40");
 			}
 		  }
@@ -4481,5 +4481,5 @@
 			int  ke=(int) (ksplit[i]%10);
 			if (kk>=7 || kk<=0){
-				_error2_("kk>=7 || kk<=0");
+				_error_("kk>=7 || kk<=0");
 			}
 
@@ -4498,5 +4498,5 @@
 
 			if (nbmkadj>=10){
-				_error2_("nbmkadj>=10");
+				_error_("nbmkadj>=10");
 			}
 			// --------------------------
@@ -4516,5 +4516,5 @@
 							t1=t0;
 							if (kedge[3*i+i0]<0){
-								_error2_("kedge[3*i+i0]<0");
+								_error_("kedge[3*i+i0]<0");
 							}
 							BamgVertex * v3 = vertices + kedge[3*i+k0];
@@ -4532,8 +4532,8 @@
 							t2=t1=t0;
 							if (kedge[3*i+k1]<0){
-								_error2_("kedge[3*i+k1]<0");
+								_error_("kedge[3*i+k1]<0");
 							}
 							if (kedge[3*i+k2]<0){
-								_error2_("kedge[3*i+k2]<0");
+								_error_("kedge[3*i+k2]<0");
 							}
 
@@ -4559,5 +4559,5 @@
 							t3=t2=t1=t0;
 							if (kedge[3*i+k0] <0 || kedge[3*i+k1]<0 || kedge[3*i+k2]<0){
-								_error2_("kedge[3*i+k0] <0 || kedge[3*i+k1]<0 || kedge[3*i+k2]<0");
+								_error_("kedge[3*i+k0] <0 || kedge[3*i+k1]<0 || kedge[3*i+k2]<0");
 							}
 							BamgVertex * v12 = vertices + kedge[3*i+k0];
@@ -4633,5 +4633,5 @@
 				}
 			if (nbmkadj>13){// 13 = 6 + 4 +
-				_error2_("nbmkadj>13");
+				_error_("nbmkadj>13");
 			}
 
@@ -4759,5 +4759,5 @@
 			quadtree->Add(vi);
 			if (!tcvi || tcvi->det<0){// internal
-				_error2_("!tcvi || tcvi->det < 0");
+				_error_("!tcvi || tcvi->det < 0");
 			}
 			AddVertex(vi,tcvi,det3);
@@ -4802,5 +4802,5 @@
 
 		/*Check that the quadtree does exist*/
-		if (!quadtree) _error2_("no starting triangle provided and no quadtree available");
+		if (!quadtree) _error_("no starting triangle provided and no quadtree available");
 
 		/*Call NearestVertex*/
@@ -4808,6 +4808,6 @@
 
 		/*Check output (Vertex a)*/
-		if (!a)    _error2_("problem while trying to find nearest vertex from a given point. No output found");
-		if (!a->t) _error2_("no triangle is associated to vertex number " << GetId(a)+1 << " (orphan?)");
+		if (!a)    _error_("problem while trying to find nearest vertex from a given point. No output found");
+		if (!a->t) _error_("no triangle is associated to vertex number " << GetId(a)+1 << " (orphan?)");
 		_assert_(a>=vertices && a<vertices+nbv);
 
@@ -4844,5 +4844,5 @@
 
 		/*Increase counter*/
-		if (++counter>=10000) _error2_("Maximum number of iteration reached (threshold = " << counter << ").");
+		if (++counter>=10000) _error_("Maximum number of iteration reached (threshold = " << counter << ").");
 
 		j= OppositeVertex[jj];
@@ -4908,5 +4908,5 @@
 
 		//check that the subdomain is not empty
-		if (!t0){ _error2_("At least one subdomain is empty");}
+		if (!t0){ _error_("At least one subdomain is empty");}
 
 		//loop
@@ -4991,5 +4991,5 @@
 		//allocate
 		VerticesOnGeomVertex = new VertexOnGeom[NbVerticesOnGeomVertex];  
-		if(NbVerticesOnGeomVertex >= maxnbv) _error2_("too many vertices on geometry: " << NbVerticesOnGeomVertex << " >= " << maxnbv);
+		if(NbVerticesOnGeomVertex >= maxnbv) _error_("too many vertices on geometry: " << NbVerticesOnGeomVertex << " >= " << maxnbv);
 		_assert_(nbv==0);
 		//Build VerticesOnGeomVertex
@@ -5080,5 +5080,5 @@
 								NbNewPoints=0;
 								NbEdgeCurve=0;
-								if (nbvend>=maxnbv) _error2_("maximum number of vertices too low! Check the domain outline or increase maxnbv");
+								if (nbvend>=maxnbv) _error_("maximum number of vertices too low! Check the domain outline or increase maxnbv");
 								lcurve =0;
 								s = lstep; //-1 initially, then length of each sub edge
@@ -5322,5 +5322,5 @@
 		printf("\n");
 		if(NbVerticesOnGeomVertex >= maxnbv){
-			_error2_("too many vertices on geometry: " << NbVerticesOnGeomVertex << " >= " << maxnbv);
+			_error_("too many vertices on geometry: " << NbVerticesOnGeomVertex << " >= " << maxnbv);
 		}
 
@@ -5393,5 +5393,5 @@
 		if (bfind!=Gh.nbcurves){
 			delete [] bcurve;
-			_error2_("problem generating number of curves (" << Gh.nbcurves << " found in the geometry but " << bfind << " curve found in the mesh)");
+			_error_("problem generating number of curves (" << Gh.nbcurves << " found in the geometry but " << bfind << " curve found in the mesh)");
 		}
 
@@ -5492,9 +5492,9 @@
 									double se= (sNew-L0)/LAB;
 									if (se<0 || se>=1.000000001){
-										_error2_("Problem creating point on a boundary: se=" << se << " should be in [0 1]");
+										_error_("Problem creating point on a boundary: se=" << se << " should be in [0 1]");
 									}
 									se = abscisseInterpole(v0.m,v1.m,AB,se,1);
 									if (se<0 || se>1){
-										_error2_("Problem creating point on a boundary: se=" << se << " should be in [0 1]");
+										_error_("Problem creating point on a boundary: se=" << se << " should be in [0 1]");
 									}
 									se = k1         ? se : 1. - se;
@@ -5528,5 +5528,5 @@
 							}
 							if (!ee.adj[k1]) {
-								_error2_("adj edge " << BTh.GetId(ee) << ", nbe=" << nbe << ", Gh.vertices=" << Gh.vertices);
+								_error_("adj edge " << BTh.GetId(ee) << ", nbe=" << nbe << ", Gh.vertices=" << Gh.vertices);
 							}
 							pe = ee.adj[k1]; // next edge
@@ -5566,5 +5566,5 @@
 			if(step==0){
 				if(nbv+NbOfNewPoints > maxnbv) {
-					_error2_("too many vertices on geometry: " << nbv+NbOfNewPoints << " >= " << maxnbv);
+					_error_("too many vertices on geometry: " << nbv+NbOfNewPoints << " >= " << maxnbv);
 				}
 				edges = new Edge[NbOfNewEdge];
@@ -5611,5 +5611,5 @@
 		int dir=0;
 		if (k<0){
-			_error2_("k<0");
+			_error_("k<0");
 		}
 		int kkk=0;  
@@ -5619,5 +5619,5 @@
 			kkk++;
 			if (kkk>=1000){
-				_error2_("kkk>=1000");
+				_error_("kkk>=1000");
 			}
 			BamgVertex  &vI =  *edge.EdgeVertex(0);
@@ -5636,5 +5636,5 @@
 							double IJ2 = IJ_IA + IJ_AJ;
 							if (IJ2==0){
-								_error2_("IJ2==0");
+								_error_("IJ2==0");
 							}
 							a= IJ_AJ/IJ2;
@@ -5650,5 +5650,5 @@
 	int NbSwap =0;
 	if (!a.t || !b.t){ // the 2 vertex is in a mesh
-		_error2_("!a.t || !b.t");
+		_error_("!a.t || !b.t");
 	}
 	int k=0;
@@ -5667,5 +5667,5 @@
 		vbegin =v2;
 		if (!v2){
-			_error2_("!v2");
+			_error_("!v2");
 		}
 		det2 = det(*v2,a,b);
@@ -5684,10 +5684,10 @@
 			tc = Previous(tc);
 			if (!v1 || !v2){
-				_error2_("!v1 || !v2");
+				_error_("!v1 || !v2");
 			}
 			Icoor2 detss = 0,l=0,ks;
 			while ((ks=SwapForForcingEdge(  va,  vb, tc, detss, det1,det2,NbSwap)))
 			 if(l++ > 10000000) {
-				 _error2_("Loop in forcing Egde, nb de swap=" << NbSwap << ", nb of try swap (" << l << ") too big");
+				 _error_("Loop in forcing Egde, nb de swap=" << NbSwap << ", nb of try swap (" << l << ") too big");
 			 }
 			BamgVertex *aa = tc.EdgeVertex(0), *bb = tc.EdgeVertex(1);
@@ -5708,5 +5708,5 @@
 		k++;
 		if (k>=2000){
-			_error2_("k>=2000");
+			_error_("k>=2000");
 		}
 		if ( vbegin == v2 ) return -1;// error 
@@ -5780,5 +5780,5 @@
 		short a1=tt1,a2=tt2;// les 2 numero de l arete dans les 2 triangles
 		if ( a1<0 || a1>=3 ){
-			_error2_("a1<0 || a1>=3");
+			_error_("a1<0 || a1>=3");
 		}
 
@@ -5792,8 +5792,8 @@
 		Icoor2 detT = det1+det2;
 		if ((det1<=0 ) || (det2<=0)){
-			_error2_("(det1<=0 ) || (det2<=0)");
+			_error_("(det1<=0 ) || (det2<=0)");
 		}
 		if ( (detsa>=0) || (detsb<=0) ){ // [a,b] cut infinite line va,bb
-			_error2_("(detsa>=0) || (detsb<=0)");
+			_error_("(detsa>=0) || (detsb<=0)");
 		}
 		Icoor2 ndet1 = bamg::det(s1,sa,s2);
Index: /issm/trunk-jpl/src/c/classes/bamg/Metric.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/Metric.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/Metric.cpp	(revision 13036)
@@ -197,5 +197,5 @@
 		// warning for optimisation S is in [0:0.5] not in [0:1]
 		if (i>=512){
-			_error2_("i>=512");
+			_error_("i>=512");
 		}
 		LastMetricInterpole.lab=l;
@@ -345,5 +345,5 @@
 		}
 		if (r>1 || r<0){
-			_error2_("r>1 || r<0");
+			_error_("r>1 || r<0");
 		}
 		return r ;
Index: /issm/trunk-jpl/src/c/classes/bamg/SetOfE4.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/SetOfE4.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/SetOfE4.cpp	(revision 13036)
@@ -50,5 +50,5 @@
 		//check that nbax <=NbOfEdges
 		if (nbax <=NbOfEdges ) {
-			_error2_("SetOfEdges4::add overflow: NbOfEdges=" << NbOfEdges << " > nbax=" << nbax);
+			_error_("SetOfEdges4::add overflow: NbOfEdges=" << NbOfEdges << " > nbax=" << nbax);
 		}
 
Index: /issm/trunk-jpl/src/c/classes/bamg/SubDomain.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/SubDomain.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/SubDomain.cpp	(revision 13036)
@@ -16,9 +16,9 @@
 		*this = Th.subdomains[i];
 		if ( head-Th.triangles<0 || head-Th.triangles>=Th.nbt){
-			_error2_("head-Th.triangles<0 || head-Th.triangles>=Th.nbt");
+			_error_("head-Th.triangles<0 || head-Th.triangles>=Th.nbt");
 		}
 		head = ThNew.triangles + Th.GetId(head) ; 
 		if (edge-Th.edges<0 || edge-Th.edges>=Th.nbe);{
-			_error2_("edge-Th.edges<0 || edge-Th.edges>=Th.nbe");
+			_error_("edge-Th.edges<0 || edge-Th.edges>=Th.nbe");
 		}
 		edge = ThNew.edges+ Th.GetId(edge);
Index: /issm/trunk-jpl/src/c/classes/bamg/Triangle.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/Triangle.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/bamg/Triangle.cpp	(revision 13036)
@@ -19,8 +19,8 @@
 		long nbv = Th->nbv;
 		if (i<0 || j<0 || k<0){
-			_error2_("i<0 || j<0 || k<0");
+			_error_("i<0 || j<0 || k<0");
 		}
 		if (i>=nbv || j>=nbv || k>=nbv){
-			_error2_("i>=nbv || j>=nbv || k>=nbv");
+			_error_("i>=nbv || j>=nbv || k>=nbv");
 		}
 		vertices[0]=v+i;
@@ -173,5 +173,5 @@
 			//check number of iterations
 			if (k>=2000){
-				_error2_("too many iteration in Triangle::FindBoundaryEdge (k>=2000)");
+				_error_("too many iteration in Triangle::FindBoundaryEdge (k>=2000)");
 			}
 		} while (this!= t);
@@ -213,5 +213,5 @@
 		do {
 			while (t->swap(j,koption)){
-				if (k>=20000) _error2_("k>=20000");
+				if (k>=20000) _error_("k>=20000");
 				NbSwap++;
 				k++;
Index: /issm/trunk-jpl/src/c/classes/gauss/GaussPenta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/gauss/GaussPenta.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/gauss/GaussPenta.cpp	(revision 13036)
@@ -119,5 +119,5 @@
 	}
 	else{
-		_error2_("Penta not supported yet");
+		_error_("Penta not supported yet");
 	}
 
@@ -159,5 +159,5 @@
 	}
 	else{
-		_error2_("Tria not supported yet");
+		_error_("Tria not supported yet");
 	}
 
@@ -221,5 +221,5 @@
 	}
 	else{
-		_error2_("Tria not supported yet (user provided indices " << index1 << " " << index2 << " " << index3 << " " << index4 << ")");
+		_error_("Tria not supported yet (user provided indices " << index1 << " " << index2 << " " << index3 << " " << index4 << ")");
 	}
 
@@ -340,5 +340,5 @@
 			break;
 		default:
-			_error2_("vertex index should be in [0 5]");
+			_error_("vertex index should be in [0 5]");
 
 	}
@@ -359,5 +359,5 @@
 	}
 	else{
-		_error2_("Tria not supported yet");
+		_error_("Tria not supported yet");
 	}
 
Index: /issm/trunk-jpl/src/c/classes/gauss/GaussTria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/gauss/GaussTria.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/gauss/GaussTria.cpp	(revision 13036)
@@ -80,5 +80,5 @@
 	}
 	else
-	 _error2_("The 2 indices provided are not supported yet (user provided " << index1 << " and " << index2 << ")");
+	 _error_("The 2 indices provided are not supported yet (user provided " << index1 << " and " << index2 << ")");
 
 	/*Initialize static fields as undefined*/
@@ -178,5 +178,5 @@
 	}
 	else
-	 _error2_("The 2 indices provided are not supported yet (user provided " << index1 << " and " << index2 << ")");
+	 _error_("The 2 indices provided are not supported yet (user provided " << index1 << " and " << index2 << ")");
 
 }
@@ -241,5 +241,5 @@
 			break;
 		default:
-			_error2_("vertex index should be in [0 2]");
+			_error_("vertex index should be in [0 2]");
 
 	}
Index: /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.cpp	(revision 13036)
@@ -39,5 +39,5 @@
 
 	/*Checks*/
-	if(nugget==sill) _error2_("nugget and sill cannot be equal (constant semivariogram not allowed)");
+	if(nugget==sill) _error_("nugget and sill cannot be equal (constant semivariogram not allowed)");
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.h	(revision 13036)
@@ -23,9 +23,9 @@
 		/*Object virtual functions definitions*/
 		void  Echo();
-		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");};
+		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");};
 
 		/*Variogram functions*/
Index: /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.cpp	(revision 13036)
@@ -39,5 +39,5 @@
 
 	/*Checks*/
-	if(nugget==sill) _error2_("nugget and sill cannot be equal (constant semivariogram not allowed)");
+	if(nugget==sill) _error_("nugget and sill cannot be equal (constant semivariogram not allowed)");
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.h	(revision 13036)
@@ -24,9 +24,9 @@
 		/*Object virtual functions definitions*/
 		void  Echo();
-		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");};
+		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");};
 
 		/*Variogram functions*/
Index: /issm/trunk-jpl/src/c/classes/kriging/Observation.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/Observation.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/Observation.h	(revision 13036)
@@ -24,9 +24,9 @@
 		/*Object virtual functions definitions*/
 		void    Echo();
-		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"); };
+		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"); };
 
 		/*Management*/
Index: /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.cpp	(revision 13036)
@@ -39,6 +39,6 @@
 
 	/*Checks*/
-	if(power<=0 || power>=2) _error2_("power must be betwwen 0 and 2 (0 < power < 2)");
-	if(slope<=0) _error2_("slope must be positive");
+	if(power<=0 || power>=2) _error_("power must be betwwen 0 and 2 (0 < power < 2)");
+	if(slope<=0) _error_("slope must be positive");
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.h	(revision 13036)
@@ -23,9 +23,9 @@
 		/*Object virtual functions definitions*/
 		void  Echo();
-		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");};
+		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");};
 
 		/*Variogram functions*/
Index: /issm/trunk-jpl/src/c/classes/kriging/Quadtree.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/Quadtree.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/Quadtree.cpp	(revision 13036)
@@ -83,5 +83,5 @@
 /*FUNCTION Quadtree::Quadtree(){{{*/
 Quadtree::Quadtree(){
-	_error2_("Constructor not supported");
+	_error_("Constructor not supported");
 
 }
@@ -248,5 +248,5 @@
 	}
 	else{
-		_error2_("Box is not full");
+		_error_("Box is not full");
 	}
 }/*}}}*/
@@ -397,5 +397,5 @@
 			break;
 		default:
-			_error2_("Case " << index << " not supported");
+			_error_("Case " << index << " not supported");
 	}
 	newbox->length=master->length/2;
@@ -574,5 +574,5 @@
 			break;
 		default:
-			_error2_("Case " << this->IsWithinRange(x,y,range) << " not supported");
+			_error_("Case " << this->IsWithinRange(x,y,range) << " not supported");
 	}
 
Index: /issm/trunk-jpl/src/c/classes/kriging/Quadtree.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/Quadtree.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/Quadtree.h	(revision 13036)
@@ -27,9 +27,9 @@
 				/*Object functions (Needed because the Quadtree uses a Container*/
 				void    Echo();
-				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"); };
+				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"); };
 
 				/*Methods*/
Index: /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.cpp	(revision 13036)
@@ -39,5 +39,5 @@
 
 	/*Checks*/
-	if(nugget==sill) _error2_("nugget and sill cannot be equal (constant semivariogram not allowed)");
+	if(nugget==sill) _error_("nugget and sill cannot be equal (constant semivariogram not allowed)");
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.h	(revision 13036)
@@ -23,9 +23,9 @@
 		/*Object virtual functions definitions*/
 		void  Echo();
-		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");};
+		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");};
 
 		/*Variogram functions*/
Index: /issm/trunk-jpl/src/c/classes/matrix/ElementMatrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/matrix/ElementMatrix.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/matrix/ElementMatrix.cpp	(revision 13036)
@@ -47,5 +47,5 @@
 ElementMatrix::ElementMatrix(ElementMatrix* Ke){
 
-	if(!Ke) _error2_("Input Element Matrix is a NULL pointer");
+	if(!Ke) _error_("Input Element Matrix is a NULL pointer");
 	this->Init(Ke);
 	return;
@@ -63,5 +63,5 @@
 	/*If one of the two matrix is NULL, we copy the other one*/
 	if(!Ke1 && !Ke2){
-		_error2_("Two input element matrices are NULL");
+		_error_("Two input element matrices are NULL");
 	}
 	else if(!Ke1){
@@ -75,5 +75,5 @@
 
 	/*General Case: Ke1 and Ke2 are not empty*/
-	if(!Ke1->dofsymmetrical || !Ke2->dofsymmetrical) _error2_("merging 2 non dofsymmetrical matrices not implemented yet");
+	if(!Ke1->dofsymmetrical || !Ke2->dofsymmetrical) _error_("merging 2 non dofsymmetrical matrices not implemented yet");
 
 	/*Initialize itransformation matrix Ke[P[i]] = Ke2[i]*/
@@ -295,5 +295,5 @@
 	}
 	else{
-		_error2_("non dofsymmetrical matrix AddToGlobal routine not support yet!");
+		_error_("non dofsymmetrical matrix AddToGlobal routine not support yet!");
 	}
 
@@ -332,5 +332,5 @@
 	}
 	else{
-		_error2_("non dofsymmetrical matrix AddToGlobal routine not support yet!");
+		_error_("non dofsymmetrical matrix AddToGlobal routine not support yet!");
 	}
 
@@ -343,6 +343,6 @@
 	for (int i=0;i<this->nrows;i++){
 		for(int j=0;j<this->ncols;j++){
-			if (xIsNan<IssmDouble>(this->values[i*this->ncols+j])) _error2_("NaN found in Element Matrix");
-			if (fabs(this->values[i*this->ncols+j])>1.e+50) _error2_("Element Matrix values exceeds 1.e+50");
+			if (xIsNan<IssmDouble>(this->values[i*this->ncols+j])) _error_("NaN found in Element Matrix");
+			if (fabs(this->values[i*this->ncols+j])>1.e+50) _error_("Element Matrix values exceeds 1.e+50");
 		}
 	}
@@ -365,5 +365,5 @@
 	/*Transpose indices*/
 	if(!dofsymmetrical){
-		_error2_("not supported yet");
+		_error_("not supported yet");
 	}
 
@@ -488,5 +488,5 @@
 	int i;
 
-	if(this->nrows!=this->ncols)_error2_("need square matrix in input!");
+	if(this->nrows!=this->ncols)_error_("need square matrix in input!");
 
 	for(i=0;i<this->nrows;i++){
Index: /issm/trunk-jpl/src/c/classes/matrix/ElementVector.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/matrix/ElementVector.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/matrix/ElementVector.cpp	(revision 13036)
@@ -42,5 +42,5 @@
 	/*If one of the two matrix is NULL, we copy the other one*/
 	if(!pe1 && !pe2){
-		_error2_("Two input element matrices are NULL");
+		_error_("Two input element matrices are NULL");
 	}
 	else if(!pe1){
@@ -210,6 +210,6 @@
 #ifdef _ISSM_DEBUG_ 
 	for (int i=0;i<this->nrows;i++){
-		if (xIsNan<IssmDouble>(this->values[i])) _error2_("NaN found in Element Vector");
-		if (fabs( this->values[i])>1.e+50) _error2_("Element Vector values exceeds 1.e+50");
+		if (xIsNan<IssmDouble>(this->values[i])) _error_("NaN found in Element Vector");
+		if (fabs( this->values[i])>1.e+50) _error_("Element Vector values exceeds 1.e+50");
 	}
 #endif
Index: /issm/trunk-jpl/src/c/classes/matrix/Matrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/matrix/Matrix.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/matrix/Matrix.cpp	(revision 13036)
@@ -51,5 +51,5 @@
 		this->pmatrix=new PetscMat(M,N);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -57,5 +57,5 @@
 		this->smatrix=new SeqMat(M,N);
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 
 }
@@ -74,5 +74,5 @@
 		this->pmatrix=new PetscMat(M,N,sparsity);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -80,5 +80,5 @@
 		this->smatrix=new SeqMat(M,N,sparsity);
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 }
 /*}}}*/
@@ -96,5 +96,5 @@
 		this->pmatrix=new PetscMat(serial_mat,M,N,sparsity);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -102,5 +102,5 @@
 		this->smatrix=new SeqMat(serial_mat,M,N,sparsity);
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 	
 }
@@ -119,5 +119,5 @@
 		this->pmatrix=new PetscMat(M,N,connectivity,numberofdofspernode);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -125,5 +125,5 @@
 		this->smatrix=new SeqMat(M,N,connectivity,numberofdofspernode);
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 	
 }
@@ -136,5 +136,5 @@
 		delete this->pmatrix;
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -142,5 +142,5 @@
 		delete this->smatrix;
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 
 }
@@ -159,5 +159,5 @@
 		this->smatrix->Echo();
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 
 }
@@ -175,5 +175,5 @@
 	}
 	else{
-		_error2_("Matrix type: " << type << " not supported yet!");
+		_error_("Matrix type: " << type << " not supported yet!");
 	}
 }
@@ -192,5 +192,5 @@
 		norm=this->smatrix->Norm(norm_type);
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 
 	return norm;
@@ -208,5 +208,5 @@
 		this->smatrix->GetSize(pM,pN);
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 	
 }
@@ -223,5 +223,5 @@
 		this->smatrix->GetLocalSize(pM,pN);
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 
 }
@@ -238,5 +238,5 @@
 		this->smatrix->MatMult(X->svector,AX->svector);
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 
 }
@@ -257,5 +257,5 @@
 		output->smatrix=this->smatrix->Duplicate();
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 	
 	return output;
@@ -275,5 +275,5 @@
 		output=this->smatrix->ToSerial();
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 
 
@@ -292,5 +292,5 @@
 		this->smatrix->SetValues(m,idxm,n,idxn,values,mode);
 	}
-	else _error2_("Matrix type: " << type << " not supported yet!");
+	else _error_("Matrix type: " << type << " not supported yet!");
 }
 /*}}}*/
@@ -307,7 +307,7 @@
 	}
 	else{
-		_error2_("Matrix type: " << type << " not supported yet!");
-	}
-
-}
-/*}}}*/
+		_error_("Matrix type: " << type << " not supported yet!");
+	}
+
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/matrix/Vector.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/matrix/Vector.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/matrix/Vector.cpp	(revision 13036)
@@ -51,5 +51,5 @@
 		this->pvector=new PetscVec(M,fromlocalsize);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -57,5 +57,5 @@
 		this->svector=new SeqVec(M,fromlocalsize);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -86,5 +86,5 @@
 		this->pvector=new PetscVec(serial_vec,M);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -92,5 +92,5 @@
 		this->svector=new SeqVec(serial_vec,M);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -103,5 +103,5 @@
 		delete this->pvector;
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -109,5 +109,5 @@
 		delete this->svector;
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 }
 /*}}}*/
@@ -121,5 +121,5 @@
 		this->pvector->Echo();
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -127,5 +127,5 @@
 		this->svector->Echo();
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -138,5 +138,5 @@
 		this->pvector->Assemble();
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -144,5 +144,5 @@
 		this->svector->Assemble();
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -156,5 +156,5 @@
 		this->pvector->SetValues(ssize,list,values,mode);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -162,5 +162,5 @@
 		this->svector->SetValues(ssize,list,values,mode);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 		
@@ -175,5 +175,5 @@
 		this->pvector->SetValue(dof,value,mode);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -181,5 +181,5 @@
 		this->svector->SetValue(dof,value,mode);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -193,5 +193,5 @@
 		this->pvector->GetValue(pvalue,dof);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -199,5 +199,5 @@
 		this->svector->GetValue(pvalue,dof);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -210,5 +210,5 @@
 		this->pvector->GetSize(pM);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -216,5 +216,5 @@
 		this->svector->GetSize(pM);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -241,5 +241,5 @@
 		this->pvector->GetLocalSize(pM);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -247,5 +247,5 @@
 		this->svector->GetLocalSize(pM);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -262,5 +262,5 @@
 		output->pvector=this->pvector->Duplicate();
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -269,5 +269,5 @@
 		output->svector=this->svector->Duplicate();
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 	return output;
@@ -283,5 +283,5 @@
 		this->pvector->Set(value);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -289,5 +289,5 @@
 		this->svector->Set(value);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -301,5 +301,5 @@
 		this->pvector->AXPY(X->pvector,a);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -307,5 +307,5 @@
 		this->svector->AXPY(X->svector,a);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -319,5 +319,5 @@
 		this->pvector->AYPX(X->pvector,a);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -325,5 +325,5 @@
 		this->svector->AYPX(X->svector,a);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 
@@ -339,5 +339,5 @@
 		vec_serial=this->pvector->ToMPISerial();
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -345,5 +345,5 @@
 		vec_serial=this->svector->ToMPISerial();
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 	return vec_serial;
@@ -359,5 +359,5 @@
 		this->pvector->Copy(to->pvector);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -365,5 +365,5 @@
 		this->svector->Copy(to->svector);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 
@@ -379,5 +379,5 @@
 		norm=this->pvector->Norm(norm_type);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -385,5 +385,5 @@
 		norm=this->svector->Norm(norm_type);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 	return norm;
@@ -398,5 +398,5 @@
 		this->pvector->Scale(scale_factor);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -404,5 +404,5 @@
 		this->svector->Scale(scale_factor);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 }
@@ -417,5 +417,5 @@
 		dot=this->pvector->Dot(vector->pvector);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -423,5 +423,5 @@
 		dot=this->svector->Dot(vector->svector);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
+	else _error_("Vector type: " << type << " not supported yet!");
 
 	return dot;
@@ -436,5 +436,5 @@
 		this->pvector->PointwiseDivide(x->pvector,y->pvector);
 		#else
-		_error2_("Petsc matrix format not usable, as Petsc has not been compiled!");
+		_error_("Petsc matrix format not usable, as Petsc has not been compiled!");
 		#endif
 	}
@@ -442,6 +442,6 @@
 		this->svector->PointwiseDivide(x->svector,y->svector);
 	}
-	else _error2_("Vector type: " << type << " not supported yet!");
-
-}
-/*}}}*/
+	else _error_("Vector type: " << type << " not supported yet!");
+
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/objects/Constraints/SpcTransient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Constraints/SpcTransient.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Constraints/SpcTransient.cpp	(revision 13036)
@@ -146,5 +146,5 @@
 		}
 
-		if(!found)_error2_("could not find time segment for constraint");
+		if(!found)_error_("could not find time segment for constraint");
 
 		/*Apply or relax constraint: */
Index: /issm/trunk-jpl/src/c/classes/objects/ElementResults/BoolElementResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/ElementResults/BoolElementResult.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/ElementResults/BoolElementResult.cpp	(revision 13036)
@@ -128,5 +128,5 @@
 void BoolElementResult::GetVectorFromResults(Vector* vector,int* doflist,int* connectivitylist,int numdofs){
 
-	_error2_("cannot return vector on vertices");
+	_error_("cannot return vector on vertices");
 } /*}}}*/
 /*FUNCTION BoolElementResult::GetElementVectorFromResults{{{*/
Index: /issm/trunk-jpl/src/c/classes/objects/ElementResults/DoubleElementResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/ElementResults/DoubleElementResult.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/ElementResults/DoubleElementResult.cpp	(revision 13036)
@@ -129,5 +129,5 @@
 void DoubleElementResult::GetVectorFromResults(Vector* vector,int* doflist,int* connectivitylist,int numdofs){
 
-	_error2_("cannot return vector on vertices");
+	_error_("cannot return vector on vertices");
 } /*}}}*/
 /*FUNCTION DoubleElementResult::GetElementVectorFromResults{{{1*/
Index: /issm/trunk-jpl/src/c/classes/objects/ElementResults/PentaP1ElementResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/ElementResults/PentaP1ElementResult.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/ElementResults/PentaP1ElementResult.cpp	(revision 13036)
@@ -142,5 +142,5 @@
 	IssmDouble data[6];
 
-	if(numdofs!=6)_error2_("Result " << EnumToStringx(this->enum_type) << " is a PentaP1ElementResult and cannot write vector of " << numdofs << " dofs");
+	if(numdofs!=6)_error_("Result " << EnumToStringx(this->enum_type) << " is a PentaP1ElementResult and cannot write vector of " << numdofs << " dofs");
 	for(int i=0;i<6;i++) data[i]=this->values[i]/(IssmDouble)connectivitylist[i];
 	vector->SetValues(numdofs,doflist,&data[0],ADD_VAL);
@@ -150,4 +150,4 @@
 void PentaP1ElementResult::GetElementVectorFromResults(Vector* vector,int dof){
 
-	_error2_("Result " << EnumToStringx(enum_type) << " is a PentaP1ElementResult and should not write vector of size numberofelemenrs");
+	_error_("Result " << EnumToStringx(enum_type) << " is a PentaP1ElementResult and should not write vector of size numberofelemenrs");
 } /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/objects/ElementResults/TriaP1ElementResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/ElementResults/TriaP1ElementResult.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/ElementResults/TriaP1ElementResult.cpp	(revision 13036)
@@ -130,5 +130,5 @@
 	IssmDouble data[3];
 
-	if(numdofs!=3)_error2_("Result " << EnumToStringx(this->enum_type) << " is a TriaP1ElementResult and cannot write vector of " << numdofs << " dofs");
+	if(numdofs!=3)_error_("Result " << EnumToStringx(this->enum_type) << " is a TriaP1ElementResult and cannot write vector of " << numdofs << " dofs");
 	for(int i=0;i<3;i++) data[i]=this->values[i]/(IssmDouble)connectivitylist[i];
 	vector->SetValues(numdofs,doflist,&data[0],ADD_VAL);
@@ -137,4 +137,4 @@
 /*FUNCTION TriaP1ElementResult::GetElementVectorFromResults{{{*/
 void TriaP1ElementResult::GetElementVectorFromResults(Vector* vector,int dof){
-	_error2_("Result " << EnumToStringx(enum_type) << " is a TriaP1ElementResult and should not write vector of size numberofelemenrs");
+	_error_("Result " << EnumToStringx(enum_type) << " is a TriaP1ElementResult and should not write vector of size numberofelemenrs");
 } /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/Penta.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/Penta.cpp	(revision 13036)
@@ -146,5 +146,5 @@
 /*FUNCTION Penta::AverageOntoPartition {{{*/
 void  Penta::AverageOntoPartition(Vector* partition_contributions,Vector* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part){
-	_error2_("Not supported yet!");
+	_error_("Not supported yet!");
 }
 /*}}}*/
@@ -252,6 +252,6 @@
 
 	/*Check analysis_types*/
-	if (analysis_type!=DiagnosticHorizAnalysisEnum) _error2_("Not supported yet!");
-	if (approximation!=StokesApproximationEnum) _error2_("Not supported yet!");
+	if (analysis_type!=DiagnosticHorizAnalysisEnum) _error_("Not supported yet!");
+	if (approximation!=StokesApproximationEnum) _error_("Not supported yet!");
 
 	/*retrieve some parameters: */
@@ -318,5 +318,5 @@
 void  Penta::ComputeStrainRate(Vector* eps){
 
-	_error2_("Not implemented yet");
+	_error_("Not implemented yet");
 
 }
@@ -464,5 +464,5 @@
 		#endif
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -569,5 +569,5 @@
 		#endif
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -638,5 +638,5 @@
 #endif
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -888,5 +888,5 @@
 		 return i;
 	}
-	_error2_("Node provided not found among element nodes");
+	_error_("Node provided not found among element nodes");
 
 }
@@ -901,5 +901,5 @@
 	/*Recover input*/
 	Input* input=inputs->GetInput(enumtype);
-	if (!input) _error2_("Input " << EnumToStringx(enumtype) << " not found in element");
+	if (!input) _error_("Input " << EnumToStringx(enumtype) << " not found in element");
 
 	/*Checks in debugging mode*/
@@ -950,5 +950,5 @@
 
 	Input* input=inputs->GetInput(enumtype);
-	if(!input) _error2_("No input of type " << EnumToStringx(enumtype) << " found in tria");
+	if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria");
 
 	GaussPenta* gauss=new GaussPenta();
@@ -1045,5 +1045,5 @@
 	#endif
 	default:
-		_error2_("analysis: " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+		_error_("analysis: " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 }
@@ -1085,5 +1085,5 @@
 	/*Check that both inputs have been found*/
 	if (!vx_input || !vy_input){
-		_error2_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");
+		_error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");
 	}
 
@@ -1110,5 +1110,5 @@
 	/*Check that both inputs have been found*/
 	if (!vx_input || !vy_input || !vz_input){
-		_error2_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << ", vz: " << vz_input << "\n");
+		_error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << ", vz: " << vz_input << "\n");
 	}
 
@@ -1145,5 +1145,5 @@
 	/*Get input (either in element or material)*/
 	Input* input=inputs->GetInput(input_enum);
-	if(!input) _error2_("Input " << EnumToStringx(input_enum) << " not found in element");
+	if(!input) _error_("Input " << EnumToStringx(input_enum) << " not found in element");
 
 	/*We found the enum.  Use its values to fill into the vector, using the vertices ids: */
@@ -1157,5 +1157,5 @@
 	ElementResult* elementresult=(ElementResult*)this->results->GetObjectByOffset(offset);
 	if(elementresult->InstanceEnum()!=enum_in){
-		_error2_("Results of offset "<<offset<<" is "<<EnumToStringx(elementresult->InstanceEnum())<<" when "<<EnumToStringx(enum_in)<<" was expected");
+		_error_("Results of offset "<<offset<<" is "<<EnumToStringx(elementresult->InstanceEnum())<<" when "<<EnumToStringx(enum_in)<<" was expected");
 	}  
 	if(interp==P1Enum){
@@ -1208,5 +1208,5 @@
 	/*Make a copy of the original input: */
 	input=(Input*)this->inputs->GetInput(enum_type);
-	if(!input)_error2_("could not find old input with enum: " << EnumToStringx(enum_type));
+	if(!input)_error_("could not find old input with enum: " << EnumToStringx(enum_type));
 
 	/*ArtificialNoise: */
@@ -1228,6 +1228,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])_error_("could not find input with enum " << EnumToStringx(enums[2*i+0]));
+		if(!old_inputs[i])_error_("could not find input with enum " << EnumToStringx(enums[2*i+0]));
 	}
 
@@ -1261,5 +1261,5 @@
 		this->inputs->AddInput(new DoubleInput(name,(IssmDouble)scalar));
 	}
-	else _error2_("could not recognize nature of vector from code " << code);
+	else _error_("could not recognize nature of vector from code " << code);
 
 }
@@ -1327,5 +1327,5 @@
 			this->inputs->AddInput(transientinput);
 		}
-		else _error2_("nodal vector is either numberofnodes (" << numberofvertices << "), or numberofnodes+1 long. Field provided is " << M << " long. Enum " << EnumToStringx(vector_enum));
+		else _error_("nodal vector is either numberofnodes (" << numberofvertices << "), or numberofnodes+1 long. Field provided is " << M << " long. Enum " << EnumToStringx(vector_enum));
 	}
 	else if(vector_type==2){ //element vector
@@ -1344,12 +1344,12 @@
 				this->inputs->AddInput(new DoubleInput(vector_enum,(IssmDouble)vector[index]));
 			}
-			else _error2_("could not recognize nature of vector from code " << code);
+			else _error_("could not recognize nature of vector from code " << code);
 		}
 		else {
-			_error2_("transient elementary inputs not supported yet!");
+			_error_("transient elementary inputs not supported yet!");
 		}
 	}
 	else{
-		_error2_("Cannot add input for vector type " << vector_type << " (not supported)");
+		_error_("Cannot add input for vector type " << vector_type << " (not supported)");
 	}
 
@@ -1390,6 +1390,6 @@
 		 original_input=(Input*)penta->matice->inputs->GetInput(enum_type);
 		else
-		 _error2_("object " << EnumToStringx(object_enum) << " not supported yet");
-		if(!original_input) _error2_("could not find input with enum " << EnumToStringx(enum_type));
+		 _error_("object " << EnumToStringx(object_enum) << " not supported yet");
+		if(!original_input) _error_("could not find input with enum " << EnumToStringx(enum_type));
 
 		/*If first time, initialize total_integrated_input*/
@@ -1402,5 +1402,5 @@
 			 total_integrated_input=new DoubleInput(average_enum_type,0.0);
 			else
-			 _error2_("object " << EnumToStringx(original_input->ObjectEnum()) << " not supported yet");
+			 _error_("object " << EnumToStringx(original_input->ObjectEnum()) << " not supported yet");
 		}
 
@@ -1450,5 +1450,5 @@
 	 this->matice->inputs->AddInput((Input*)depth_averaged_input);
 	else
-	 _error2_("object " << EnumToStringx(object_enum) << " not supported yet");
+	 _error_("object " << EnumToStringx(object_enum) << " not supported yet");
 }
 /*}}}*/
@@ -1491,8 +1491,8 @@
 	}
 	else{
-		_error2_("object of type " << EnumToStringx(object_type) << " not supported yet");
+		_error_("object of type " << EnumToStringx(object_type) << " not supported yet");
 	}
 	for(i=0;i<num_inputs;i++){
-		if(!base_inputs[i]) _error2_("could not find input with enum " << EnumToStringx(enum_type) << " in object " << EnumToStringx(object_type));
+		if(!base_inputs[i]) _error_("could not find input with enum " << EnumToStringx(enum_type) << " in object " << EnumToStringx(object_type));
 		base_inputs[i]->Extrude();
 	}
@@ -1521,5 +1521,5 @@
 			}
 			else{
-				_error2_("object of type " << EnumToStringx(object_type) << " not supported yet");
+				_error_("object of type " << EnumToStringx(object_type) << " not supported yet");
 			}
 		}
@@ -1540,5 +1540,5 @@
 	/*Make a copy of the original input: */
 	input=(Input*)this->inputs->GetInput(enum_type);
-	if(!input)_error2_("could not find old input with enum: " << EnumToStringx(enum_type));
+	if(!input)_error_("could not find old input with enum: " << EnumToStringx(enum_type));
 
 	/*Scale: */
@@ -1556,5 +1556,5 @@
 	if (enum_type==MaterialsRheologyBbarEnum) input=this->matice->inputs->GetInput(MaterialsRheologyBEnum);
 	else input=this->inputs->GetInput(enum_type);
-	//if (!input) _error2_("Input " << EnumToStringx(enum_type) << " not found in penta->inputs"); why error out? if the requested input does not exist, we should still 
+	//if (!input) _error_("Input " << EnumToStringx(enum_type) << " not found in penta->inputs"); why error out? if the requested input does not exist, we should still 
 	//try and output whatever we can instead of just failing.
 	if(!input)return;
@@ -1669,5 +1669,5 @@
 					/*Matice will take care of it*/ break;
 				default:
-					_error2_("Control " << EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i]) << " not implemented yet");
+					_error_("Control " << EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i]) << " not implemented yet");
 			}
 		}
@@ -1702,5 +1702,5 @@
 		}
 		else{
-			_error2_("Approximation type " << EnumToStringx((int)*(iomodel->Data(FlowequationElementEquationEnum)+index)) << " not supported yet");
+			_error_("Approximation type " << EnumToStringx((int)*(iomodel->Data(FlowequationElementEquationEnum)+index)) << " not supported yet");
 		}
 	}
@@ -1786,5 +1786,5 @@
 	#endif
 	default: 
-		_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+		_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 }
@@ -1817,5 +1817,5 @@
 	for(i=0;i<numdof2d;i++){
 		newthickness[i]=solution[doflist[i]];
-		if(xIsNan<IssmDouble>(newthickness[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(newthickness[i])) _error_("NaN found in solution vector");
 		/*Constrain thickness to be at least 1m*/
 		if(newthickness[i]<minthickness) newthickness[i]=minthickness;
@@ -1850,5 +1850,5 @@
 				newbed[i]=oldbed[i]-rho_ice/rho_water*(newthickness[i]-oldthickness[i]); //bed = oldbed + di * dH
 			}
-			else _error2_("Hydrostatic adjustment " << hydroadjustment << " (" << EnumToStringx(hydroadjustment) << ") not supported yet");
+			else _error_("Hydrostatic adjustment " << hydroadjustment << " (" << EnumToStringx(hydroadjustment) << ") not supported yet");
 		}
 	}
@@ -1887,5 +1887,5 @@
 	for(int i=0;i<numdof;i++){
 		values[i]=solution[doflist[i]];
-		if(xIsNan<IssmDouble>(values[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
 	}
 
@@ -1917,5 +1917,5 @@
 		values[i]         =solution[doflist[i]];
 		values[i+numdof2d]=values[i];
-		if(xIsNan<IssmDouble>(values[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
 	}
 
@@ -1963,5 +1963,5 @@
 		default:
 
-			_error2_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
+			_error_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
 	}
 }
@@ -1969,10 +1969,10 @@
 /*FUNCTION Penta::InputUpdateFromVector(int* vector, int name, int type);{{{*/
 void  Penta::InputUpdateFromVector(int* vector, int name, int type){
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 }
 /*}}}*/
 /*FUNCTION Penta::InputUpdateFromVector(bool* vector, int name, int type);{{{*/
 void  Penta::InputUpdateFromVector(bool* vector, int name, int type){
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 }
 /*}}}*/
@@ -2575,5 +2575,5 @@
 void  Penta::SetClone(int* minranks){
 
-	_error2_("not implemented yet");
+	_error_("not implemented yet");
 }
 /*}}}*/
@@ -2942,5 +2942,5 @@
 				this->inputs->AddInput(new PentaP1Input(EnthalpyEnum,nodeinputs));
 			}
-			else _error2_("temperature and waterfraction required for the enthalpy solution");
+			else _error_("temperature and waterfraction required for the enthalpy solution");
 			break;
 
@@ -3021,5 +3021,5 @@
 /*FUNCTION Penta::SmearFunction {{{*/
 void  Penta::SmearFunction(Vector* smearedvector,IssmDouble (*WeightFunction)(IssmDouble distance,IssmDouble radius),IssmDouble radius){
-	_error2_("not implemented yet");
+	_error_("not implemented yet");
 }
 /*}}}*/
@@ -3239,5 +3239,5 @@
 			*presponse=vel;
 		default:  
-			_error2_("Response type " << EnumToStringx(response_enum) << " not supported yet!");
+			_error_("Response type " << EnumToStringx(response_enum) << " not supported yet!");
 	}
 
@@ -4314,5 +4314,5 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(values[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
 		//if(values[i]<0)      _printLine_("temperature < 0°K found in solution vector");
 		//if(values[i]>275)    _printLine_("temperature > 275°K found in solution vector (Paterson's rheology associated is negative)");
@@ -4348,5 +4348,5 @@
 				break;
 			default:
-				_error2_("Rheology law " << EnumToStringx(rheology_law) << " not supported yet");
+				_error_("Rheology law " << EnumToStringx(rheology_law) << " not supported yet");
 
 		}
@@ -4384,5 +4384,5 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(values[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
 	}
 
@@ -4397,6 +4397,6 @@
 		for(i=0;i<numdof;i++){
 			matpar->EnthalpyToThermal(&temperatures[i],&waterfraction[i],values[i],pressure[i]);
-			if(waterfraction[i]<0) _error2_("Negative water fraction found in solution vector");
-			//if(waterfraction[i]>1) _error2_("Water fraction >1 found in solution vector");
+			if(waterfraction[i]<0) _error_("Negative water fraction found in solution vector");
+			//if(waterfraction[i]>1) _error_("Water fraction >1 found in solution vector");
 		}
 			
@@ -4426,5 +4426,5 @@
 				break;
 			default:
-				_error2_("Rheology law " << EnumToStringx(rheology_law) << " not supported yet");
+				_error_("Rheology law " << EnumToStringx(rheology_law) << " not supported yet");
 
 		}
@@ -4454,6 +4454,6 @@
 		input=inputs->GetInput(enum_type);
 	}
-	if (!input) _error2_("Input " << EnumToStringx(enum_type) << " not found");
-	if (input->ObjectEnum()!=ControlInputEnum) _error2_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
+	if (!input) _error_("Input " << EnumToStringx(enum_type) << " not found");
+	if (input->ObjectEnum()!=ControlInputEnum) _error_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
 
 	GradientIndexing(&doflist1[0],control_index);
@@ -4472,6 +4472,6 @@
 		input=inputs->GetInput(enum_type);
 	}
-	if (!input) _error2_("Input " << EnumToStringx(enum_type) << " not found");
-	if (input->ObjectEnum()!=ControlInputEnum) _error2_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
+	if (!input) _error_("Input " << EnumToStringx(enum_type) << " not found");
+	if (input->ObjectEnum()!=ControlInputEnum) _error_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
 
 	((ControlInput*)input)->ScaleGradient(scale);
@@ -4491,6 +4491,6 @@
 		input=inputs->GetInput(enum_type);
 	}
-	if (!input) _error2_("Input " << EnumToStringx(enum_type) << " not found");
-	if (input->ObjectEnum()!=ControlInputEnum) _error2_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
+	if (!input) _error_("Input " << EnumToStringx(enum_type) << " not found");
+	if (input->ObjectEnum()!=ControlInputEnum) _error_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
 
 	GradientIndexing(&doflist1[0],control_index);
@@ -4516,5 +4516,5 @@
 			return NULL;
 		default:
-			_error2_("Approximation " << EnumToStringx(approximation) << " not supported yet");
+			_error_("Approximation " << EnumToStringx(approximation) << " not supported yet");
 	}
 }
@@ -4706,5 +4706,5 @@
 			return CreatePVectorAdjointStokes();
 		default:
-			_error2_("Approximation " << EnumToStringx(approximation) << " not supported yet");
+			_error_("Approximation " << EnumToStringx(approximation) << " not supported yet");
 	}
 }
@@ -4795,5 +4795,5 @@
 					break;
 				default:
-					_error2_("approximation " << EnumToStringx(approximation) << " not supported yet");
+					_error_("approximation " << EnumToStringx(approximation) << " not supported yet");
 			}
 			break;
@@ -4815,10 +4815,10 @@
 					break;
 				default:
-					_error2_("approximation " << EnumToStringx(approximation) << " not supported yet");
+					_error_("approximation " << EnumToStringx(approximation) << " not supported yet");
 			}
 			break;
 
 		default:
-			_error2_("control type " << EnumToStringx(control_type) << " not supported yet: ");
+			_error_("control type " << EnumToStringx(control_type) << " not supported yet: ");
 	}
 
@@ -4852,5 +4852,5 @@
 			break;
 		default:
-			_error2_("response " << EnumToStringx(responses[resp]) << " not supported yet");
+			_error_("response " << EnumToStringx(responses[resp]) << " not supported yet");
 	}
 	xDelete<int>(responses);
@@ -5106,5 +5106,5 @@
 		}
 
-		if (input->ObjectEnum()!=ControlInputEnum) _error2_("input " << EnumToStringx(control_type[i]) << " is not a ControlInput");
+		if (input->ObjectEnum()!=ControlInputEnum) _error_("input " << EnumToStringx(control_type[i]) << " is not a ControlInput");
 
 		((ControlInput*)input)->UpdateValue(scalar);
@@ -5149,8 +5149,8 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(lambdax[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(lambday[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(lambdaz[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(lambdap[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(lambdax[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(lambday[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(lambdaz[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(lambdap[i])) _error_("NaN found in solution vector");
 	}
 
@@ -5188,6 +5188,6 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(lambdax[i]))       _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(lambday[i]))       _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(lambdax[i]))       _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(lambday[i]))       _error_("NaN found in solution vector");
 	}
 
@@ -5390,5 +5390,5 @@
 IssmDouble Penta::ThicknessAbsGradient(bool process_units,int weight_index){
 
-	_error2_("Not implemented yet");
+	_error_("Not implemented yet");
 }
 /*}}}*/
@@ -5405,5 +5405,5 @@
 	/*If on water, return 0: */
 	if(IsOnWater())return 0;
-	_error2_("Not implemented yet");
+	_error_("Not implemented yet");
 
 	tria=(Tria*)SpawnTria(0,1,2);
@@ -5456,9 +5456,9 @@
 	/*Get input (either in element or material)*/
 	Input* input=inputs->GetInput(control_enum);
-	if(!input) _error2_("Input " << EnumToStringx(control_enum) << " not found in element");
+	if(!input) _error_("Input " << EnumToStringx(control_enum) << " not found in element");
 
 	/*Check that it is a ControlInput*/
 	if (input->ObjectEnum()!=ControlInputEnum){
-		_error2_("input " << EnumToStringx(control_enum) << " is not a ControlInput");
+		_error_("input " << EnumToStringx(control_enum) << " is not a ControlInput");
 	}
 
@@ -5495,5 +5495,5 @@
 
 	if (input->ObjectEnum()!=ControlInputEnum){
-		_error2_("input " << EnumToStringx(control_enum) << " is not a ControlInput");
+		_error_("input " << EnumToStringx(control_enum) << " is not a ControlInput");
 	}
 
@@ -5601,5 +5601,5 @@
 
 		default:
-			_error2_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
+			_error_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
 	}
 
@@ -5608,10 +5608,10 @@
 /*FUNCTION Penta::InputUpdateFromVectorDakota(int* vector, int name, int type);{{{*/
 void  Penta::InputUpdateFromVectorDakota(int* vector, int name, int type){
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 }
 /*}}}*/
 /*FUNCTION Penta::InputUpdateFromVectorDakota(bool* vector, int name, int type);{{{*/
 void  Penta::InputUpdateFromVectorDakota(bool* vector, int name, int type){
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 }
 /*}}}*/
@@ -5656,5 +5656,5 @@
 
 		default:
-			_error2_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
+			_error_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
 	}
 
@@ -6215,5 +6215,5 @@
 			return CreateKMatrixDiagnosticPattynStokes();
 		default:
-			_error2_("Approximation " << EnumToStringx(approximation) << " not supported yet");
+			_error_("Approximation " << EnumToStringx(approximation) << " not supported yet");
 	}
 }
@@ -6383,5 +6383,5 @@
 			matice->GetViscosity3dStokes(&newviscosity,&epsilons[0]);
 		}
-		else _error2_("approximation " << approximation << " (" << EnumToStringx(approximation) << ") not supported yet");
+		else _error_("approximation " << approximation << " (" << EnumToStringx(approximation) << ") not supported yet");
 
 		D_scalar=2*newviscosity*gauss->weight*Jdet;
@@ -7206,5 +7206,5 @@
 			return CreatePVectorDiagnosticPattynStokes();
 		default:
-			_error2_("Approximation " << EnumToStringx(approximation) << " not supported yet");
+			_error_("Approximation " << EnumToStringx(approximation) << " not supported yet");
 	}
 }
@@ -7719,5 +7719,5 @@
 			return NULL;
 		default:
-			_error2_("Approximation " << EnumToStringx(approximation) << " not supported yet");
+			_error_("Approximation " << EnumToStringx(approximation) << " not supported yet");
 	}
 }
@@ -8114,6 +8114,6 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(vx[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vy[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vx[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vy[i])) _error_("NaN found in solution vector");
 	}
 
@@ -8212,6 +8212,6 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(vx[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vy[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vx[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vy[i])) _error_("NaN found in solution vector");
 	}
 
@@ -8300,8 +8300,8 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(vx[i]))       _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vy[i]))       _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vzstokes[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(pressure[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vx[i]))       _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vy[i]))       _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vzstokes[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(pressure[i])) _error_("NaN found in solution vector");
 	}
 
@@ -8310,10 +8310,10 @@
 	if (vzmacayeal_input){
 		if (vzmacayeal_input->ObjectEnum()!=PentaP1InputEnum){
-			_error2_("Cannot compute Vel as VzMacAyeal is of type " << EnumToStringx(vzmacayeal_input->ObjectEnum()));
+			_error_("Cannot compute Vel as VzMacAyeal is of type " << EnumToStringx(vzmacayeal_input->ObjectEnum()));
 		}
 		GetInputListOnVertices(&vzmacayeal[0],VzMacAyealEnum);
 	}
 	else{
-		_error2_("Cannot update solution as VzMacAyeal is not present");
+		_error_("Cannot update solution as VzMacAyeal is not present");
 	}
 
@@ -8379,6 +8379,6 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(vx[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vy[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vx[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vy[i])) _error_("NaN found in solution vector");
 	}
 
@@ -8468,8 +8468,8 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(vx[i]))       _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vy[i]))       _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vzstokes[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(pressure[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vx[i]))       _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vy[i]))       _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vzstokes[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(pressure[i])) _error_("NaN found in solution vector");
 	}
 
@@ -8478,10 +8478,10 @@
 	if (vzpattyn_input){
 		if (vzpattyn_input->ObjectEnum()!=PentaP1InputEnum){
-			_error2_("Cannot compute Vel as VzPattyn is of type " << EnumToStringx(vzpattyn_input->ObjectEnum()));
+			_error_("Cannot compute Vel as VzPattyn is of type " << EnumToStringx(vzpattyn_input->ObjectEnum()));
 		}
 		GetInputListOnVertices(&vzpattyn[0],VzPattynEnum);
 	}
 	else{
-		_error2_("Cannot update solution as VzPattyn is not present");
+		_error_("Cannot update solution as VzPattyn is not present");
 	}
 
@@ -8544,6 +8544,6 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(vx[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vy[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vx[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vy[i])) _error_("NaN found in solution vector");
 	}
 
@@ -8613,5 +8613,5 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(vz[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vz[i])) _error_("NaN found in solution vector");
 	}
 
@@ -8624,8 +8624,8 @@
 		Input* vzstokes_input=inputs->GetInput(VzStokesEnum);
 		if (vzstokes_input){
-			if (vzstokes_input->ObjectEnum()!=PentaP1InputEnum) _error2_("Cannot compute Vel as VzStokes is of type " << EnumToStringx(vzstokes_input->ObjectEnum()));
+			if (vzstokes_input->ObjectEnum()!=PentaP1InputEnum) _error_("Cannot compute Vel as VzStokes is of type " << EnumToStringx(vzstokes_input->ObjectEnum()));
 			GetInputListOnVertices(&vzstokes[0],VzStokesEnum);
 		}
-		else _error2_("Cannot compute Vz as VzStokes in not present in PattynStokes element");
+		else _error_("Cannot compute Vz as VzStokes in not present in PattynStokes element");
 		for(i=0;i<NUMVERTICES;i++){
 			vzpattyn[i]=vz[i];
@@ -8636,8 +8636,8 @@
 		Input* vzstokes_input=inputs->GetInput(VzStokesEnum);
 		if (vzstokes_input){
-			if (vzstokes_input->ObjectEnum()!=PentaP1InputEnum) _error2_("Cannot compute Vel as VzStokes is of type " << EnumToStringx(vzstokes_input->ObjectEnum()));
+			if (vzstokes_input->ObjectEnum()!=PentaP1InputEnum) _error_("Cannot compute Vel as VzStokes is of type " << EnumToStringx(vzstokes_input->ObjectEnum()));
 			GetInputListOnVertices(&vzstokes[0],VzStokesEnum);
 		}
-		else _error2_("Cannot compute Vz as VzStokes in not present in MacAyealStokes element");
+		else _error_("Cannot compute Vz as VzStokes in not present in MacAyealStokes element");
 		for(i=0;i<NUMVERTICES;i++){
 			vzmacayeal[i]=vz[i];
@@ -8711,8 +8711,8 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(vx[i]))       _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vy[i]))       _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vz[i]))       _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(pressure[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vx[i]))       _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vy[i]))       _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vz[i]))       _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(pressure[i])) _error_("NaN found in solution vector");
 	}
 
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/Penta.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/Penta.h	(revision 13036)
@@ -162,6 +162,6 @@
 		IssmDouble SurfaceAverageVelMisfit(bool process_units,int weight_index);
 		IssmDouble ThicknessAbsGradient(bool process_units,int weight_index);
-		IssmDouble ThicknessAlongGradient( bool process_units,int weight_index){_error2_("not supported");};
-		IssmDouble ThicknessAcrossGradient(bool process_units,int weight_index){_error2_("not supported");};
+		IssmDouble ThicknessAlongGradient( bool process_units,int weight_index){_error_("not supported");};
+		IssmDouble ThicknessAcrossGradient(bool process_units,int weight_index){_error_("not supported");};
 		void   InputControlUpdate(IssmDouble scalar,bool save_parameter);
 		#endif
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/PentaRef.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/PentaRef.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/PentaRef.cpp	(revision 13036)
@@ -949,5 +949,5 @@
 	/*Get Determinant*/
 	Matrix3x3Determinant(Jdet,&J[0][0]);
-	if(*Jdet<0) _error2_("negative jacobian determinant!");
+	if(*Jdet<0) _error_("negative jacobian determinant!");
 
 }
@@ -972,5 +972,5 @@
 	/*Jdet = norm( AB ^ AC ) / (2 * area of the reference triangle), with areaRef=sqrt(3) */
 	*Jdet=SQRT3/6.0*pow(pow(((y2-y1)*(z3-z1)-(z2-z1)*(y3-y1)),2.0)+pow(((z2-z1)*(x3-x1)-(x2-x1)*(z3-z1)),2.0)+pow(((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1)),2.0),0.5);
-	if(*Jdet<0) _error2_("negative jacobian determinant!");
+	if(*Jdet<0) _error_("negative jacobian determinant!");
 }
 /*}}}*/
@@ -990,5 +990,5 @@
 
 	*Jdet=1.0/2.0*sqrt(pow(x2-x1,2.) + pow(y2-y1,2.) + pow(z2-z1,2.));
-	if(*Jdet<0) _error2_("negative jacobian determinant!");
+	if(*Jdet<0) _error_("negative jacobian determinant!");
 
 }
@@ -1226,5 +1226,5 @@
 	/*Area of a trabezoid = altitude * (base1 + base2)/2 */
 	*Jdet= pow(pow(x2-x1,2.) + pow(y2-y1,2.),0.5) * (z4-z1 + z3-z2)/8;
-	if(*Jdet<0) _error2_("negative jacobian determinant!");
+	if(*Jdet<0) _error_("negative jacobian determinant!");
 
 }
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/PentaRef.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/PentaRef.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/PentaRef.h	(revision 13036)
@@ -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){_error2_("only PentaGauss are supported");};
+		void GetInputValue(IssmDouble* pvalue,IssmDouble* plist,GaussTria* gauss){_error_("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){_error2_("only PentaGauss are supported");};
+		void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, GaussTria* gauss){_error_("only PentaGauss are supported");};
 
 };
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp	(revision 13036)
@@ -214,5 +214,5 @@
 		#endif
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -277,5 +277,5 @@
 			return CreateKMatrixPrognostic_DG();
 		default:
-			_error2_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
+			_error_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
 	}
 
@@ -568,5 +568,5 @@
 		#endif
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -587,5 +587,5 @@
 			return CreatePVectorPrognostic_DG();
 		default:
-			_error2_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
+			_error_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
 	}
 }
@@ -763,5 +763,5 @@
 #endif
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -775,10 +775,10 @@
 /*FUNCTION Tria::ComputeBasalStress {{{*/
 void  Tria::ComputeBasalStress(Vector* eps){
-	_error2_("Not Implemented yet");
+	_error_("Not Implemented yet");
 }
 /*}}}*/
 /*FUNCTION Tria::ComputeStrainRate {{{*/
 void  Tria::ComputeStrainRate(Vector* eps){
-	_error2_("Not Implemented yet");
+	_error_("Not Implemented yet");
 }
 /*}}}*/
@@ -1088,5 +1088,5 @@
 		 return i;
 	}
-	_error2_("Node provided not found among element nodes");
+	_error_("Node provided not found among element nodes");
 }
 /*}}}*/
@@ -1100,5 +1100,5 @@
 	/*Recover input*/
 	Input* input=inputs->GetInput(enumtype);
-	if (!input) _error2_("Input " << EnumToStringx(enumtype) << " not found in element");
+	if (!input) _error_("Input " << EnumToStringx(enumtype) << " not found in element");
 
 	/*Checks in debugging mode*/
@@ -1172,5 +1172,5 @@
 
 	Input* input=inputs->GetInput(enumtype);
-	if(!input) _error2_("No input of type " << EnumToStringx(enumtype) << " found in tria");
+	if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria");
 
 	GaussTria* gauss=new GaussTria();
@@ -1214,5 +1214,5 @@
 	#endif
 	default:
-		_error2_("analysis: " << EnumToStringx(analysis_type) << " not supported yet");
+		_error_("analysis: " << EnumToStringx(analysis_type) << " not supported yet");
 	}
 
@@ -1230,5 +1230,5 @@
 	/*Check that both inputs have been found*/
 	if (!vx_input || !vy_input){
-		_error2_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");
+		_error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");
 	}
 
@@ -1254,5 +1254,5 @@
 	/*Get input (either in element or material)*/
 	Input* input=inputs->GetInput(input_enum);
-	if(!input) _error2_("Input " << EnumToStringx(input_enum) << " not found in element");
+	if(!input) _error_("Input " << EnumToStringx(input_enum) << " not found in element");
 
 	/*We found the enum.  Use its values to fill into the vector, using the vertices ids: */
@@ -1266,5 +1266,5 @@
 	ElementResult* elementresult=(ElementResult*)this->results->GetObjectByOffset(offset);
 	if(elementresult->InstanceEnum()!=enum_in){
-		_error2_("Results of offset "<<offset<<" is "<<EnumToStringx(elementresult->InstanceEnum())<<" when "<<EnumToStringx(enum_in)<<" was expected");
+		_error_("Results of offset "<<offset<<" is "<<EnumToStringx(elementresult->InstanceEnum())<<" when "<<EnumToStringx(enum_in)<<" was expected");
 	}
 	if(interp==P1Enum){
@@ -1304,5 +1304,5 @@
 	/*Make a copy of the original input: */
 	input=(Input*)this->inputs->GetInput(enum_type);
-	if(!input)_error2_("could not find old input with enum: " << EnumToStringx(enum_type));
+	if(!input)_error_("could not find old input with enum: " << EnumToStringx(enum_type));
 
 	/*ArtificialNoise: */
@@ -1324,6 +1324,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])_error_("could not find input with enum " << EnumToStringx(enums[2*i+0]));
+		if(!old_inputs[i])_error_("could not find input with enum " << EnumToStringx(enums[2*i+0]));
 	}
 
@@ -1353,6 +1353,6 @@
 	 oldinput=(Input*)this->matice->inputs->GetInput(enum_type);
 	else
-	 _error2_("object " << EnumToStringx(object_enum) << " not supported yet");
-	if(!oldinput)_error2_("could not find old input with enum: " << EnumToStringx(enum_type));
+	 _error_("object " << EnumToStringx(object_enum) << " not supported yet");
+	if(!oldinput)_error_("could not find old input with enum: " << EnumToStringx(enum_type));
 	newinput=(Input*)oldinput->copy();
 
@@ -1366,5 +1366,5 @@
 	 this->matice->inputs->AddInput((Input*)newinput);
 	else
-	 _error2_("object " << EnumToStringx(object_enum) << " not supported yet");
+	 _error_("object " << EnumToStringx(object_enum) << " not supported yet");
 }
 /*}}}*/
@@ -1384,5 +1384,5 @@
 	/*Make a copy of the original input: */
 	input=(Input*)this->inputs->GetInput(enum_type);
-	if(!input)_error2_("could not find old input with enum: " << EnumToStringx(enum_type));
+	if(!input)_error_("could not find old input with enum: " << EnumToStringx(enum_type));
 
 	/*Scale: */
@@ -1399,5 +1399,5 @@
 	if (enum_type==MaterialsRheologyBbarEnum) input=this->matice->inputs->GetInput(enum_type);
 	else input=this->inputs->GetInput(enum_type);
-	//if (!input) _error2_("Input " << EnumToStringx(enum_type) << " not found in tria->inputs");
+	//if (!input) _error_("Input " << EnumToStringx(enum_type) << " not found in tria->inputs");
 	if(!input)return;
 
@@ -1505,5 +1505,5 @@
 					/*Matice will take care of it*/ break;
 				default:
-					_error2_("Control " << EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i]) << " not implemented yet");
+					_error_("Control " << EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i]) << " not implemented yet");
 			}
 		}
@@ -1577,5 +1577,5 @@
 			break;
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 }
@@ -1595,5 +1595,5 @@
 	for(int i=0;i<numdof;i++){
 		values[i]=solution[doflist[i]];
-		if(xIsNan<IssmDouble>(values[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
 	}
 
@@ -1628,5 +1628,5 @@
 	for(i=0;i<numdof;i++){
 		newthickness[i]=solution[doflist[i]];
-		if(xIsNan<IssmDouble>(newthickness[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(newthickness[i])) _error_("NaN found in solution vector");
 		/*Constrain thickness to be at least 1m*/
 		if(newthickness[i]<minthickness) newthickness[i]=minthickness;
@@ -1659,5 +1659,5 @@
 				newbed[i]=oldbed[i]-rho_ice/rho_water*(newthickness[i]-oldthickness[i]); //bed = oldbed + di * dH
 			}
-			else _error2_("Hydrostatic adjustment " << hydroadjustment << " (" << EnumToStringx(hydroadjustment) << ") not supported yet");
+			else _error_("Hydrostatic adjustment " << hydroadjustment << " (" << EnumToStringx(hydroadjustment) << ") not supported yet");
 		}
 	}
@@ -1700,5 +1700,5 @@
 		}
 		default:
-			_error2_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
+			_error_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
 	}
 }
@@ -1706,10 +1706,10 @@
 /*FUNCTION Tria::InputUpdateFromVector(int* vector, int name, int type);{{{*/
 void  Tria::InputUpdateFromVector(int* vector, int name, int type){
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 }
 /*}}}*/
 /*FUNCTION Tria::InputUpdateFromVector(bool* vector, int name, int type);{{{*/
 void  Tria::InputUpdateFromVector(bool* vector, int name, int type){
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 }
 /*}}}*/
@@ -1729,5 +1729,5 @@
 		this->inputs->AddInput(new DoubleInput(name,reCast<int>(scalar)));
 	}
-	else _error2_("could not recognize nature of vector from code " << code);
+	else _error_("could not recognize nature of vector from code " << code);
 
 }
@@ -1795,5 +1795,5 @@
 			this->inputs->AddInput(transientinput);
 		}
-		else _error2_("nodal vector is either numberofnodes or numberofnodes+1 long. Field provided (" << EnumToStringx(vector_enum) << ") is " << M << " long");
+		else _error_("nodal vector is either numberofnodes or numberofnodes+1 long. Field provided (" << EnumToStringx(vector_enum) << ") is " << M << " long");
 	}
 	else if(vector_type==2){ //element vector
@@ -1812,12 +1812,12 @@
 				this->inputs->AddInput(new DoubleInput(vector_enum,vector[index]));
 			}
-			else _error2_("could not recognize nature of vector from code " << code);
+			else _error_("could not recognize nature of vector from code " << code);
 		}
 		else {
-			_error2_("transient elementary inputs not supported yet!");
+			_error_("transient elementary inputs not supported yet!");
 		}
 	}
 	else{
-		_error2_("Cannot add input for vector type " << vector_type << " (not supported)");
+		_error_("Cannot add input for vector type " << vector_type << " (not supported)");
 	}
 
@@ -2246,10 +2246,10 @@
 void  Tria::SetClone(int* minranks){
 
-	_error2_("not implemented yet");
+	_error_("not implemented yet");
 }
 /*}}}*/
 /*FUNCTION Tria::SmearFunction {{{*/
 void  Tria::SmearFunction(Vector*  smearedvector,IssmDouble (*WeightFunction)(IssmDouble distance,IssmDouble radius),IssmDouble radius){
-	_error2_("not implemented yet");
+	_error_("not implemented yet");
 
 }
@@ -2398,5 +2398,5 @@
 	this->MaxAbsVy(&maxabsvy,false);
 	#else
-		_error2_("ISSM was not compiled with responses compiled in, exiting!");
+		_error_("ISSM was not compiled with responses compiled in, exiting!");
 	#endif
 
@@ -2591,5 +2591,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)_error_("error message: segment with id " << (int)*(segment+4) << " does not belong to element with id:" << this->id);
 
 	/*Recover segment node locations: */
@@ -2810,5 +2810,5 @@
 			*presponse=vel;
 		default:  
-			_error2_("Response type " << EnumToStringx(response_enum) << " not supported yet!");
+			_error_("Response type " << EnumToStringx(response_enum) << " not supported yet!");
 	}
 
@@ -3297,6 +3297,6 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(vx[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vy[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vx[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vy[i])) _error_("NaN found in solution vector");
 	}
 
@@ -3357,6 +3357,6 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(vx[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vy[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vx[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(vy[i])) _error_("NaN found in solution vector");
 	}
 
@@ -3413,5 +3413,5 @@
 
 		if (input->ObjectEnum()!=ControlInputEnum){
-			_error2_("input " << EnumToStringx(control_type[i]) << " is not a ControlInput");
+			_error_("input " << EnumToStringx(control_type[i]) << " is not a ControlInput");
 		}
 
@@ -3438,6 +3438,6 @@
 		input=inputs->GetInput(enum_type);
 	}
-	if (!input) _error2_("Input " << EnumToStringx(enum_type) << " not found");
-	if (input->ObjectEnum()!=ControlInputEnum) _error2_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
+	if (!input) _error_("Input " << EnumToStringx(enum_type) << " not found");
+	if (input->ObjectEnum()!=ControlInputEnum) _error_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
 
 	GradientIndexing(&doflist1[0],control_index);
@@ -3456,6 +3456,6 @@
 		input=inputs->GetInput(enum_type);
 	}
-	if (!input) _error2_("Input " << EnumToStringx(enum_type) << " not found");
-	if (input->ObjectEnum()!=ControlInputEnum) _error2_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
+	if (!input) _error_("Input " << EnumToStringx(enum_type) << " not found");
+	if (input->ObjectEnum()!=ControlInputEnum) _error_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
 
 	((ControlInput*)input)->ScaleGradient(scale);
@@ -3475,6 +3475,6 @@
 		input=inputs->GetInput(enum_type);
 	}
-	if (!input) _error2_("Input " << EnumToStringx(enum_type) << " not found");
-	if (input->ObjectEnum()!=ControlInputEnum) _error2_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
+	if (!input) _error_("Input " << EnumToStringx(enum_type) << " not found");
+	if (input->ObjectEnum()!=ControlInputEnum) _error_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
 
 	GradientIndexing(&doflist1[0],control_index);
@@ -3510,5 +3510,5 @@
 			break;
 		default:
-			_error2_("control type not supported yet: " << control_type);
+			_error_("control type not supported yet: " << control_type);
 	}
 
@@ -3540,5 +3540,5 @@
 			break;
 		default:
-			_error2_("response " << EnumToStringx(responses[resp]) << " not supported yet");
+			_error_("response " << EnumToStringx(responses[resp]) << " not supported yet");
 	}
 
@@ -4521,5 +4521,5 @@
 				break;
 			default:
-				_error2_("response " << EnumToStringx(responses[resp]) << " not supported yet");
+				_error_("response " << EnumToStringx(responses[resp]) << " not supported yet");
 		}
 	}
@@ -4705,5 +4705,5 @@
 					break;
 				default:
-					_error2_("response " << EnumToStringx(responses[resp]) << " not supported yet");
+					_error_("response " << EnumToStringx(responses[resp]) << " not supported yet");
 			}
 		}
@@ -4888,5 +4888,5 @@
 					break;
 				default:
-					_error2_("response " << EnumToStringx(responses[resp]) << " not supported yet");
+					_error_("response " << EnumToStringx(responses[resp]) << " not supported yet");
 			}
 		}
@@ -4957,5 +4957,5 @@
 			break;
 		default:
-			_error2_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
+			_error_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
 	}
 
@@ -5058,6 +5058,6 @@
 
 		/*Check solution*/
-		if(xIsNan<IssmDouble>(lambdax[i])) _error2_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(lambday[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(lambdax[i])) _error_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(lambday[i])) _error_("NaN found in solution vector");
 	}
 
@@ -5089,5 +5089,5 @@
 	for(i=0;i<numdof;i++){
 		lambda[i]=values[i];
-		if(xIsNan<IssmDouble>(lambda[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(lambda[i])) _error_("NaN found in solution vector");
 	}
 
@@ -5121,5 +5121,5 @@
 	/*Check that it is a ControlInput*/
 	if (input->ObjectEnum()!=ControlInputEnum){
-		_error2_("input " << EnumToStringx(control_enum) << " is not a ControlInput");
+		_error_("input " << EnumToStringx(control_enum) << " is not a ControlInput");
 	}
 
@@ -5155,5 +5155,5 @@
 
 	if (input->ObjectEnum()!=ControlInputEnum){
-		_error2_("input " << EnumToStringx(control_enum) << " is not a ControlInput");
+		_error_("input " << EnumToStringx(control_enum) << " is not a ControlInput");
 	}
 
@@ -5425,5 +5425,5 @@
 	for(i=0;i<numdof;i++){
 		values[i]=solution[doflist[i]];
-		if(xIsNan<IssmDouble>(values[i])) _error2_("NaN found in solution vector");
+		if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
 		if (values[i]<pow((IssmDouble)10,(IssmDouble)-10))values[i]=pow((IssmDouble)10,(IssmDouble)-10); //correcting the water column to positive values
  
@@ -5524,5 +5524,5 @@
 
 		default:
-			_error2_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
+			_error_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
 	}
 
@@ -5531,10 +5531,10 @@
 /*FUNCTION Tria::InputUpdateFromVectorDakota(int* vector, int name, int type);{{{*/
 void  Tria::InputUpdateFromVectorDakota(int* vector, int name, int type){
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 }
 /*}}}*/
 /*FUNCTION Tria::InputUpdateFromVectorDakota(bool* vector, int name, int type);{{{*/
 void  Tria::InputUpdateFromVectorDakota(bool* vector, int name, int type){
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 }
 /*}}}*/
@@ -5578,5 +5578,5 @@
 
 		default:
-			_error2_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
+			_error_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
 	}
 
@@ -5595,5 +5595,5 @@
 			return CreateKMatrixBalancethickness_DG();
 		default:
-			_error2_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
+			_error_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
 	}
 
@@ -5774,5 +5774,5 @@
 			return CreatePVectorBalancethickness_DG();
 		default:
-			_error2_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
+			_error_("Element type " << EnumToStringx(GetElementType()) << " not supported yet");
 	}
 }
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.h	(revision 13036)
@@ -100,5 +100,5 @@
 		void   InputToResult(int enum_type,int step,IssmDouble time);
 		void   DeleteResults(void);
-		void   MaterialUpdateFromTemperature(void){_error2_("not implemented yet");};
+		void   MaterialUpdateFromTemperature(void){_error_("not implemented yet");};
 		void   MigrateGroundingLine(IssmDouble* oldfloating,IssmDouble* sheet_ungrounding);
 		int    NodalValue(IssmDouble* pvalue, int index, int natureofdataenum,bool process_units);
@@ -110,5 +110,5 @@
 		void   PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes);
 		void   ProcessResultsUnits(void);
-		void   ResetCoordinateSystem(void){_error2_("not implemented yet");};
+		void   ResetCoordinateSystem(void){_error_("not implemented yet");};
 		void	 SmbGradients();
 		IssmDouble SurfaceArea(void);
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/TriaRef.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/TriaRef.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/TriaRef.cpp	(revision 13036)
@@ -338,5 +338,5 @@
 
 	*Jdet=1.0/2.0*sqrt(pow(x2-x1,2.) + pow(y2-y1,2.));
-	if(*Jdet<0) _error2_("negative jacobian determinant!");
+	if(*Jdet<0) _error_("negative jacobian determinant!");
 
 }
@@ -353,5 +353,5 @@
 	/*Get Determinant*/
 	Matrix2x2Determinant(Jdet,&J[0][0]);
-	if(*Jdet<0) _error2_("negative jacobian determinant!");
+	if(*Jdet<0) _error_("negative jacobian determinant!");
 
 }
@@ -375,5 +375,5 @@
 
 	*Jdet=SQRT3/6.0*pow(pow(((y2-y1)*(z3-z1)-(z2-z1)*(y3-y1)),2.0)+pow(((z2-z1)*(x3-x1)-(x2-x1)*(z3-z1)),2.0)+pow(((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1)),2.0),0.5);
-	if(*Jdet<0) _error2_("negative jacobian determinant!");
+	if(*Jdet<0) _error_("negative jacobian determinant!");
 
 }
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/BoolInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/BoolInput.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/BoolInput.cpp	(revision 13036)
@@ -112,20 +112,20 @@
 /*}}}*/
 /*FUNCTION BoolInput::GetInputValue(int* pvalue){{{*/
-void BoolInput::GetInputValue(int* pvalue){_error2_("not supported yet!");}
+void BoolInput::GetInputValue(int* pvalue){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION BoolInput::GetInputValue(IssmDouble* pvalue){{{*/
-void BoolInput::GetInputValue(IssmDouble* pvalue){_error2_("not supported yet!");}
+void BoolInput::GetInputValue(IssmDouble* pvalue){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION BoolInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){{{*/
-void BoolInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error2_("not supported yet!");}
+void BoolInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION BoolInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){{{*/
-void BoolInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error2_("not supported yet!");}
+void BoolInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION BoolInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){{{*/
-void BoolInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){_error2_("not supported yet!");}
+void BoolInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION BoolInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){{{*/
-void BoolInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not supported yet!");}
+void BoolInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION BoolInput::ChangeEnum{{{*/
@@ -161,5 +161,5 @@
 
 		default:
-			_error2_("not implemented yet");
+			_error_("not implemented yet");
 	}
 
@@ -176,5 +176,5 @@
 void BoolInput::GetVectorFromInputs(Vector* vector,int* doflist){
 
-	_error2_("not supporte yet!");
+	_error_("not supporte yet!");
 
 }
@@ -183,5 +183,5 @@
 void BoolInput::GetValuesPtr(IssmDouble** pvalues,int* pnum_values){
 
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 
 }
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/BoolInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/BoolInput.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/BoolInput.h	(revision 13036)
@@ -37,10 +37,10 @@
 		int   InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* inputB){_error2_("not implemented yet");};
-		Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");};
-		Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");};
+		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, IssmDouble time);
 		void Configure(Parameters* parameters);
-		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");};
+		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
 		/*}}}*/
 		/*numerics: {{{*/
@@ -50,32 +50,32 @@
 		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss);
 		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss);
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss);
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss);
-		void GetInputAverage(IssmDouble* pvalue){_error2_("not implemented yet");};
-		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
+		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
 		void ChangeEnum(int newenumtype);
 		void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters);
-		void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");};
-		IssmDouble InfinityNorm(void){_error2_("InfinityNorm not implemented for booleans");};
-		IssmDouble Max(void){_error2_("Max not implemented for booleans");};
-		IssmDouble MaxAbs(void){_error2_("Max not implemented for booleans");};
-		IssmDouble Min(void){_error2_("Min not implemented for booleans");};
-		IssmDouble MinAbs(void){_error2_("Min not implemented for booleans");};
+		void ConstrainMin(IssmDouble minimum){_error_("not implemented yet");};
+		IssmDouble InfinityNorm(void){_error_("InfinityNorm not implemented for booleans");};
+		IssmDouble Max(void){_error_("Max not implemented for booleans");};
+		IssmDouble MaxAbs(void){_error_("Max not implemented for booleans");};
+		IssmDouble Min(void){_error_("Min not implemented for booleans");};
+		IssmDouble MinAbs(void){_error_("Min not implemented for booleans");};
 		void Scale(IssmDouble scale_factor);
-		void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");};
+		void ArtificialNoise(IssmDouble min,IssmDouble max){_error_("not implemented yet");};
 		void AXPY(Input* xinput,IssmDouble scalar);
-		void Constrain(IssmDouble cm_min, IssmDouble cm_max){_error2_("Constrain not implemented for booleans");};
+		void Constrain(IssmDouble cm_min, IssmDouble cm_max){_error_("Constrain not implemented for booleans");};
 		void Extrude(void);
-		void VerticallyIntegrate(Input* thickness_input){_error2_("not supported yet");};
+		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		void GetVectorFromInputs(Vector* vector,int* doflist);
 		void GetValuesPtr(IssmDouble** pvalues,int* pnum_values);
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/ControlInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/ControlInput.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/ControlInput.cpp	(revision 13036)
@@ -48,5 +48,5 @@
 			break;
 		default:
-			_error2_("Input of Enum " << EnumToStringx(enum_input) << " not supported yet by ControlInput");
+			_error_("Input of Enum " << EnumToStringx(enum_input) << " not supported yet by ControlInput");
 	}
 	gradient   =NULL;
@@ -152,5 +152,5 @@
 /*FUNCTION ControlInput::ScaleGradient{{{*/
 void ControlInput::ScaleGradient(IssmDouble scaling_factor){
-	if(!gradient) _error2_("Gradient of ControlInput " << EnumToStringx(enum_type) << " not found");
+	if(!gradient) _error_("Gradient of ControlInput " << EnumToStringx(enum_type) << " not found");
 	gradient->Scale(scaling_factor);
 }/*}}}*/
@@ -170,5 +170,5 @@
 			break;
 		default:
-			_error2_("more than 3 controls not implemented yet (Gradient " << this->control_id << " was requested). EnumDefinitions.h needs to be updated.");
+			_error_("more than 3 controls not implemented yet (Gradient " << this->control_id << " was requested). EnumDefinitions.h needs to be updated.");
 	}
 
@@ -221,5 +221,5 @@
 	 }
 	 else{
-		 _error2_("Data " << data << " not supported yet");
+		 _error_("Data " << data << " not supported yet");
 	 }
 }/*}}}*/
@@ -258,5 +258,5 @@
 /*FUNCTION ControlInput::SaveValue{{{*/
 void ControlInput::SaveValue(void){
-	if(!values) _error2_("Values of " << EnumToStringx(this->enum_type) << " not found");
+	if(!values) _error_("Values of " << EnumToStringx(this->enum_type) << " not found");
 
 	if(savedvalues) delete this->savedvalues;
@@ -265,6 +265,6 @@
 /*FUNCTION ControlInput::UpdateValue{{{*/
 void ControlInput::UpdateValue(IssmDouble scalar){
-	if(!gradient)    _error2_("Gradient of " << EnumToStringx(this->enum_type) << " not found");
-	if(!savedvalues) _error2_("Values of " << EnumToStringx(this->enum_type) << " not found");
+	if(!gradient)    _error_("Gradient of " << EnumToStringx(this->enum_type) << " not found");
+	if(!savedvalues) _error_("Values of " << EnumToStringx(this->enum_type) << " not found");
 
 	if(values) delete this->values;
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/ControlInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/ControlInput.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/ControlInput.h	(revision 13036)
@@ -41,9 +41,9 @@
 		int    InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* inputB){_error2_("not implemented yet");};
-		Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");};
-		Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");};
+		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, IssmDouble time);
-		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");};
+		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
@@ -55,36 +55,36 @@
 		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss);
 		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss);
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss);
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss);
 		void GetInputAverage(IssmDouble* pvalue);
-		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void ChangeEnum(int newenumtype){_error2_("not implemented yet");};
-		void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){_error2_("not implemented yet");};
-		void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");};
-		void Scale(IssmDouble scale_factor){_error2_("not implemented yet");};
-		void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");};
-		void AXPY(Input* xinput,IssmDouble scalar){_error2_("not implemented yet");};
+		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void ChangeEnum(int newenumtype){_error_("not implemented yet");};
+		void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){_error_("not implemented yet");};
+		void ConstrainMin(IssmDouble minimum){_error_("not implemented yet");};
+		void Scale(IssmDouble scale_factor){_error_("not implemented yet");};
+		void ArtificialNoise(IssmDouble min,IssmDouble max){_error_("not implemented yet");};
+		void AXPY(Input* xinput,IssmDouble scalar){_error_("not implemented yet");};
 		void Constrain(void);
 		void Constrain(IssmDouble min,IssmDouble max);
-		IssmDouble InfinityNorm(void){_error2_("not implemented yet");};
-		IssmDouble Max(void){_error2_("not implemented yet");};
-		IssmDouble MaxAbs(void){_error2_("not implemented yet");};
-		IssmDouble Min(void){_error2_("not implemented yet");};
-		IssmDouble MinAbs(void){_error2_("not implemented yet");};
+		IssmDouble InfinityNorm(void){_error_("not implemented yet");};
+		IssmDouble Max(void){_error_("not implemented yet");};
+		IssmDouble MaxAbs(void){_error_("not implemented yet");};
+		IssmDouble Min(void){_error_("not implemented yet");};
+		IssmDouble MinAbs(void){_error_("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(IssmDouble** pvalues,int* pnum_values){_error2_("not implemented yet");};
+		void GetValuesPtr(IssmDouble** pvalues,int* pnum_values){_error_("not implemented yet");};
 		ElementResult* SpawnGradient(int step, IssmDouble time);
 		void GetGradient(Vector* gradient_vec,int* doflist);
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/DatasetInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/DatasetInput.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/DatasetInput.cpp	(revision 13036)
@@ -115,5 +115,5 @@
 
 	/*Get requested input within dataset*/
-	if(index<0 || index > inputs->Size()-1) _error2_("index requested (" << index << ") exceeds dataset size (" << inputs->Size() << ")");
+	if(index<0 || index > inputs->Size()-1) _error_("index requested (" << index << ") exceeds dataset size (" << inputs->Size() << ")");
 	Input* input=(Input*)this->inputs->GetObjectByOffset(index);
 	
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/DatasetInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/DatasetInput.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/DatasetInput.h	(revision 13036)
@@ -37,54 +37,54 @@
 		int    InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		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, IssmDouble time){_error2_("not implemented yet");};
-		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");};
+		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, IssmDouble time){_error_("not implemented yet");};
+		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
 		/*numerics: {{{*/
-		void GetInputValue(bool* pvalue){_error2_("not implemented yet");};
-		void GetInputValue(int* pvalue){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error2_("not implemented yet");};
+		void GetInputValue(bool* pvalue){_error_("not implemented yet");};
+		void GetInputValue(int* pvalue){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error_("not implemented yet");};
 		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index);
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
-		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetInputAverage(IssmDouble* pvalue){_error2_("not implemented yet");};
-		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void ChangeEnum(int newenumtype){_error2_("not implemented yet");};
-		void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){_error2_("not implemented yet");};
-		void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");};
-		void Scale(IssmDouble scale_factor){_error2_("not implemented yet");};
-		void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");};
-		void AXPY(Input* xinput,IssmDouble scalar){_error2_("not implemented yet");};
-		void Constrain(void){_error2_("not implemented yet");};
-		void Constrain(IssmDouble min,IssmDouble max){_error2_("not implemented yet");};
-		IssmDouble InfinityNorm(void){_error2_("not implemented yet");};
-		IssmDouble Max(void){_error2_("not implemented yet");};
-		IssmDouble MaxAbs(void){_error2_("not implemented yet");};
-		IssmDouble Min(void){_error2_("not implemented yet");};
-		IssmDouble 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(IssmDouble** pvalues,int* pnum_values){_error2_("not implemented yet");};
-		ElementResult* SpawnGradient(int step, IssmDouble time){_error2_("not implemented yet");};
-		void GetGradient(Vector* gradient_vec,int* doflist){_error2_("not implemented yet");};
-		void ScaleGradient(IssmDouble scale){_error2_("not implemented yet");};
-		void SetGradient(Input* gradient_in){_error2_("not implemented yet");};
-		void UpdateValue(IssmDouble scalar){_error2_("not implemented yet");};
-		void SaveValue(void){_error2_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
+		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
+		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void ChangeEnum(int newenumtype){_error_("not implemented yet");};
+		void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){_error_("not implemented yet");};
+		void ConstrainMin(IssmDouble minimum){_error_("not implemented yet");};
+		void Scale(IssmDouble scale_factor){_error_("not implemented yet");};
+		void ArtificialNoise(IssmDouble min,IssmDouble max){_error_("not implemented yet");};
+		void AXPY(Input* xinput,IssmDouble scalar){_error_("not implemented yet");};
+		void Constrain(void){_error_("not implemented yet");};
+		void Constrain(IssmDouble min,IssmDouble max){_error_("not implemented yet");};
+		IssmDouble InfinityNorm(void){_error_("not implemented yet");};
+		IssmDouble Max(void){_error_("not implemented yet");};
+		IssmDouble MaxAbs(void){_error_("not implemented yet");};
+		IssmDouble Min(void){_error_("not implemented yet");};
+		IssmDouble 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(IssmDouble** pvalues,int* pnum_values){_error_("not implemented yet");};
+		ElementResult* SpawnGradient(int step, IssmDouble time){_error_("not implemented yet");};
+		void GetGradient(Vector* gradient_vec,int* doflist){_error_("not implemented yet");};
+		void ScaleGradient(IssmDouble scale){_error_("not implemented yet");};
+		void SetGradient(Input* gradient_in){_error_("not implemented yet");};
+		void UpdateValue(IssmDouble scalar){_error_("not implemented yet");};
+		void SaveValue(void){_error_("not implemented yet");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/DoubleInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/DoubleInput.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/DoubleInput.cpp	(revision 13036)
@@ -108,5 +108,5 @@
 /*FUNCTION DoubleInput::GetInputValue(bool* pvalue) {{{*/
 void DoubleInput::GetInputValue(bool* pvalue){
-	_error2_("Double input of enum " << EnumToStringx(enum_type) << " cannot return a boolean");
+	_error_("Double input of enum " << EnumToStringx(enum_type) << " cannot return a boolean");
 
 }
@@ -114,5 +114,5 @@
 /*FUNCTION DoubleInput::GetInputValue(int* pvalue){{{*/
 void DoubleInput::GetInputValue(int* pvalue){
-	_error2_("Double input of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");
+	_error_("Double input of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");
 
 }
@@ -132,8 +132,8 @@
 /*}}}*/
 /*FUNCTION DoubleInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){{{*/
-void DoubleInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){_error2_("not supported yet!");}
+void DoubleInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION DoubleInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){{{*/
-void DoubleInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not supported yet!");}
+void DoubleInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){{{*/
@@ -217,5 +217,5 @@
 
 		default:
-			_error2_("not implemented yet");
+			_error_("not implemented yet");
 	}
 
@@ -253,5 +253,5 @@
 void DoubleInput::GetVectorFromInputs(Vector* vector,int* doflist){
 
-	_error2_("not supporte yet!");
+	_error_("not supporte yet!");
 
 }
@@ -260,5 +260,5 @@
 void DoubleInput::GetValuesPtr(IssmDouble** pvalues,int* pnum_values){
 
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 
 }
@@ -276,5 +276,5 @@
 
 	/*Check that input provided is a thickness*/
-	if (thickness_input->InstanceEnum()!=ThicknessEnum) _error2_("Input provided is not a Thickness (enum_type is " << EnumToStringx(thickness_input->InstanceEnum()) << ")");
+	if (thickness_input->InstanceEnum()!=ThicknessEnum) _error_("Input provided is not a Thickness (enum_type is " << EnumToStringx(thickness_input->InstanceEnum()) << ")");
 
 	/*vertically integrate depending on type:*/
@@ -287,5 +287,5 @@
 
 		default:
-			_error2_("not implemented yet");
+			_error_("not implemented yet");
 	}
 }
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/DoubleInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/DoubleInput.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/DoubleInput.h	(revision 13036)
@@ -40,5 +40,5 @@
 		Input* PointwiseMax(Input* inputB);
 		ElementResult* SpawnResult(int step, IssmDouble time);
-		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");};
+		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
@@ -49,8 +49,8 @@
 		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss);
 		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss);
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss);
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss);
@@ -67,13 +67,13 @@
 		void ConstrainMin(IssmDouble minimum);
 		void Scale(IssmDouble scale_factor);
-		void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");};
+		void ArtificialNoise(IssmDouble min,IssmDouble max){_error_("not implemented yet");};
 		void AXPY(Input* xinput,IssmDouble scalar);
 		void Constrain(IssmDouble cm_min, IssmDouble cm_max);
-		IssmDouble InfinityNorm(void){_error2_("not implemented yet");};
+		IssmDouble InfinityNorm(void){_error_("not implemented yet");};
 		IssmDouble Max(void);
 		IssmDouble MaxAbs(void);
 		IssmDouble Min(void);
 		IssmDouble MinAbs(void);
-		void Extrude(void){_error2_("not supported yet");};
+		void Extrude(void){_error_("not supported yet");};
 		void VerticallyIntegrate(Input* thickness_input);
 		void GetVectorFromInputs(Vector* vector,int* doflist);
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/IntInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/IntInput.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/IntInput.cpp	(revision 13036)
@@ -99,5 +99,5 @@
 ElementResult* IntInput::SpawnResult(int step, IssmDouble time){
 	
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 
 }
@@ -106,5 +106,5 @@
 /*Object functions*/
 /*FUNCTION IntInput::GetInputValue(bool* pvalue) {{{*/
-void IntInput::GetInputValue(bool* pvalue){_error2_("not supported yet!");}
+void IntInput::GetInputValue(bool* pvalue){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION IntInput::GetInputValue(int* pvalue){{{*/
@@ -115,18 +115,18 @@
 /*FUNCTION IntInput::GetInputValue(IssmDouble* pvalue){{{*/
 void IntInput::GetInputValue(IssmDouble* pvalue){
-	_error2_("IntInput cannot return a IssmDouble in parallel");
+	_error_("IntInput cannot return a IssmDouble in parallel");
 }
 /*}}}*/
 /*FUNCTION IntInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){{{*/
-void IntInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error2_("not supported yet!");}
+void IntInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION IntInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){{{*/
-void IntInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error2_("not supported yet!");}
+void IntInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION IntInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){{{*/
-void IntInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){_error2_("not supported yet!");}
+void IntInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION IntInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){{{*/
-void IntInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not supported yet!");}
+void IntInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error_("not supported yet!");}
 /*}}}*/
 /*FUNCTION IntInput::ChangeEnum{{{*/
@@ -166,5 +166,5 @@
 
 		default:
-			_error2_("not implemented yet");
+			_error_("not implemented yet");
 	}
 
@@ -182,5 +182,5 @@
 void IntInput::GetVectorFromInputs(Vector* vector,int* doflist){
 
-	_error2_("not supporte yet!");
+	_error_("not supporte yet!");
 
 }
@@ -189,5 +189,5 @@
 void IntInput::GetValuesPtr(IssmDouble** pvalues,int* pnum_values){
 
-	_error2_("not supported yet!");
+	_error_("not supported yet!");
 
 }
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/IntInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/IntInput.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/IntInput.h	(revision 13036)
@@ -37,9 +37,9 @@
 		int   InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* inputB){_error2_("not implemented yet");};
-		Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");};
-		Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");};
+		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, IssmDouble time);
-		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");};
+		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
@@ -50,32 +50,32 @@
 		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss);
 		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss);
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss);
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss);
-		void GetInputAverage(IssmDouble* pvalue){_error2_("not implemented yet");};
-		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
+		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
 		void ChangeEnum(int newenumtype);
 		void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters);
-		void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");};
+		void ConstrainMin(IssmDouble minimum){_error_("not implemented yet");};
 		void Scale(IssmDouble scale_factor);
-		void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");};
+		void ArtificialNoise(IssmDouble min,IssmDouble max){_error_("not implemented yet");};
 		void AXPY(Input* xinput,IssmDouble scalar);
 		void Constrain(IssmDouble cm_min, IssmDouble cm_max);
-		IssmDouble InfinityNorm(void){_error2_("InfinityNorm not implemented for integers");};
-		IssmDouble Max(void){_error2_("Max not implemented for integers");};
-		IssmDouble MaxAbs(void){_error2_("Max not implemented for integers");};
-		IssmDouble Min(void){_error2_("Min not implemented for integers");};
-		IssmDouble MinAbs(void){_error2_("Min not implemented for integers");};
-		void Extrude(void){_error2_("not supported yet");};
-		void VerticallyIntegrate(Input* thickness_input){_error2_("not supported yet");};
+		IssmDouble InfinityNorm(void){_error_("InfinityNorm not implemented for integers");};
+		IssmDouble Max(void){_error_("Max not implemented for integers");};
+		IssmDouble MaxAbs(void){_error_("Max not implemented for integers");};
+		IssmDouble Min(void){_error_("Min not implemented for integers");};
+		IssmDouble MinAbs(void){_error_("Min not implemented for integers");};
+		void Extrude(void){_error_("not supported yet");};
+		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		void GetVectorFromInputs(Vector* vector,int* doflist);
 		void GetValuesPtr(IssmDouble** pvalues,int* pnum_values);
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/PentaP1Input.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/PentaP1Input.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/PentaP1Input.cpp	(revision 13036)
@@ -455,10 +455,10 @@
 		case ControlInputEnum:{
 			ControlInput* cont_input=(ControlInput*)xinput;
-			if(cont_input->values->ObjectEnum()!=PentaP1InputEnum) _error2_("not supported yet");
+			if(cont_input->values->ObjectEnum()!=PentaP1InputEnum) _error_("not supported yet");
 			PentaP1Input* cast_input=(PentaP1Input*)cont_input->values;
 			for(i=0;i<numnodes;i++)this->values[i]=this->values[i]+scalar*(cast_input->values[i]);}
 			return;
 		default:
-			_error2_("not implemented yet");
+			_error_("not implemented yet");
 	}
 
@@ -495,5 +495,5 @@
 
 	/*Check that input provided is a thickness*/
-	if (thickness_input->InstanceEnum()!=ThicknessEnum) _error2_("Input provided is not a Thickness (enum_type is " << EnumToStringx(thickness_input->InstanceEnum()) << ")");
+	if (thickness_input->InstanceEnum()!=ThicknessEnum) _error_("Input provided is not a Thickness (enum_type is " << EnumToStringx(thickness_input->InstanceEnum()) << ")");
 
 	/*Get Thickness value pointer*/
@@ -511,5 +511,5 @@
 
 		default:
-			_error2_("not implemented yet");
+			_error_("not implemented yet");
 	}
 }
@@ -529,5 +529,5 @@
 
 	/*Check that inputB is of the same type*/
-	if (inputB->ObjectEnum()!=PentaP1InputEnum) _error2_("Operation not permitted because inputB is of type " << EnumToStringx(inputB->ObjectEnum()));
+	if (inputB->ObjectEnum()!=PentaP1InputEnum) _error_("Operation not permitted because inputB is of type " << EnumToStringx(inputB->ObjectEnum()));
 	xinputB=(PentaP1Input*)inputB;
 
@@ -560,5 +560,5 @@
 
 	/*Check that inputB is of the same type*/
-	if (inputB->ObjectEnum()!=PentaP1InputEnum) _error2_("Operation not permitted because inputB is of type " << EnumToStringx(inputB->ObjectEnum()));
+	if (inputB->ObjectEnum()!=PentaP1InputEnum) _error_("Operation not permitted because inputB is of type " << EnumToStringx(inputB->ObjectEnum()));
 	xinputB=(PentaP1Input*)inputB;
 
@@ -591,5 +591,5 @@
 
 	/*Check that inputB is of the same type*/
-	if (inputB->ObjectEnum()!=PentaP1InputEnum) _error2_("Operation not permitted because inputB is of type " << EnumToStringx(inputB->ObjectEnum()));
+	if (inputB->ObjectEnum()!=PentaP1InputEnum) _error_("Operation not permitted because inputB is of type " << EnumToStringx(inputB->ObjectEnum()));
 	xinputB=(PentaP1Input*)inputB;
 
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/PentaP1Input.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/PentaP1Input.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/PentaP1Input.h	(revision 13036)
@@ -41,22 +41,22 @@
 		Input* PointwiseMax(Input* inputB);
 		ElementResult* SpawnResult(int step, IssmDouble time);
-		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");};
+		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
 		/*numerics: {{{*/
-		void GetInputValue(bool* pvalue){_error2_("not implemented yet");};
-		void GetInputValue(int* pvalue){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error2_("not implemented yet");};
+		void GetInputValue(bool* pvalue){_error_("not implemented yet");};
+		void GetInputValue(int* pvalue){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error_("not implemented yet");};
 		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss);
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
-		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
+		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss);
 		void GetInputAverage(IssmDouble* pvalue);
-		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
 		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss);
 		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss);
@@ -69,5 +69,5 @@
 		void ConstrainMin(IssmDouble minimum);
 		void Scale(IssmDouble scale_factor);
-		void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");};
+		void ArtificialNoise(IssmDouble min,IssmDouble max){_error_("not implemented yet");};
 		void AXPY(Input* xinput,IssmDouble scalar);
 		void Constrain(IssmDouble cm_min, IssmDouble cm_max);
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/TransientInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/TransientInput.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/TransientInput.cpp	(revision 13036)
@@ -482,5 +482,5 @@
 		}
 	}
-	if(!found)_error2_("did not find time interval on which to interpolate forcing values!");
+	if(!found)_error_("did not find time interval on which to interpolate forcing values!");
 
 	/*Assign output pointer*/
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/TransientInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/TransientInput.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/TransientInput.h	(revision 13036)
@@ -40,38 +40,38 @@
 		int    InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* forcingB){_error2_("not implemented yet");};
-		Input* PointwiseMin(Input* forcingB){_error2_("not implemented yet");};
-		Input* PointwiseMax(Input* forcingB){_error2_("not implemented yet");};
+		Input* PointwiseDivide(Input* forcingB){_error_("not implemented yet");};
+		Input* PointwiseMin(Input* forcingB){_error_("not implemented yet");};
+		Input* PointwiseMax(Input* forcingB){_error_("not implemented yet");};
 		ElementResult* SpawnResult(int step, IssmDouble time);
 		void Configure(Parameters* parameters);
 		/*}}}*/
 		/*numerics: {{{*/
-		void GetInputValue(bool* pvalue){_error2_("not implemented yet");};
-		void GetInputValue(int* pvalue){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue){_error2_("not implemented yet");};
+		void GetInputValue(bool* pvalue){_error_("not implemented yet");};
+		void GetInputValue(int* pvalue){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue){_error_("not implemented yet");};
 		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss);
 		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss);
 		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time);
 		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time);
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss);
-		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
 		void GetInputAverage(IssmDouble* pvalue);
-		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
 		void ChangeEnum(int newenumtype);
 
 		void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters);
-		void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");};
-		void Scale(IssmDouble scale_factor){_error2_("not implemented yet");};
-		void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");};
-		void AXPY(Input* xforcing,IssmDouble scalar){_error2_("not implemented yet");};
-		void Constrain(IssmDouble cm_min, IssmDouble cm_max){_error2_("not implemented yet");};
+		void ConstrainMin(IssmDouble minimum){_error_("not implemented yet");};
+		void Scale(IssmDouble scale_factor){_error_("not implemented yet");};
+		void ArtificialNoise(IssmDouble min,IssmDouble max){_error_("not implemented yet");};
+		void AXPY(Input* xforcing,IssmDouble scalar){_error_("not implemented yet");};
+		void Constrain(IssmDouble cm_min, IssmDouble cm_max){_error_("not implemented yet");};
 		IssmDouble InfinityNorm(void);
 		IssmDouble Max(void);
@@ -80,8 +80,8 @@
 		IssmDouble MinAbs(void);
 		void Extrude(void);
-		void VerticallyIntegrate(Input* thickness_forcing){_error2_("not supported yet");};
+		void VerticallyIntegrate(Input* thickness_forcing){_error_("not supported yet");};
 		void GetVectorFromInputs(Vector* vector,int* doflist);
-		void GetValuesPtr(IssmDouble** pvalues,int* pnum_values){_error2_("not supported yet");};
-      void GetTimeValues(IssmDouble* values,IssmDouble time){_error2_("not implemented yet");};
+		void GetValuesPtr(IssmDouble** pvalues,int* pnum_values){_error_("not supported yet");};
+      void GetTimeValues(IssmDouble* values,IssmDouble time){_error_("not implemented yet");};
 		Input* GetTimeInput(IssmDouble time);
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/TriaP1Input.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/TriaP1Input.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/TriaP1Input.cpp	(revision 13036)
@@ -323,5 +323,5 @@
 
 		default :
-			_error2_("not implemented yet");
+			_error_("not implemented yet");
 	}
 
@@ -368,5 +368,5 @@
 
 	/*Check that inputB is of the same type*/
-	if (inputB->ObjectEnum()!=TriaP1InputEnum) _error2_("Operation not permitted because inputB is of type " << EnumToStringx(inputB->ObjectEnum()));
+	if (inputB->ObjectEnum()!=TriaP1InputEnum) _error_("Operation not permitted because inputB is of type " << EnumToStringx(inputB->ObjectEnum()));
 	xinputB=(TriaP1Input*)inputB;
 
@@ -399,5 +399,5 @@
 
 	/*Check that inputB is of the same type*/
-	if (inputB->ObjectEnum()!=TriaP1InputEnum) _error2_("Operation not permitted because inputB is of type " << EnumToStringx(inputB->ObjectEnum()));
+	if (inputB->ObjectEnum()!=TriaP1InputEnum) _error_("Operation not permitted because inputB is of type " << EnumToStringx(inputB->ObjectEnum()));
 	xinputB=(TriaP1Input*)inputB;
 
Index: /issm/trunk-jpl/src/c/classes/objects/Inputs/TriaP1Input.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Inputs/TriaP1Input.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Inputs/TriaP1Input.h	(revision 13036)
@@ -37,31 +37,31 @@
 		int   InstanceEnum();
 		Input* SpawnTriaInput(int* indices);
-		Input* PointwiseDivide(Input* inputB){_error2_("not implemented yet");};
+		Input* PointwiseDivide(Input* inputB){_error_("not implemented yet");};
 		Input* PointwiseMin(Input* inputB);
 		Input* PointwiseMax(Input* inputB);
 		ElementResult* SpawnResult(int step, IssmDouble time);
-		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");};
+		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
 		void Configure(Parameters* parameters);
 		/*}}}*/
 		/*numerics: {{{*/
-		void GetInputValue(bool* pvalue){_error2_("not implemented yet");}
-		void GetInputValue(int* pvalue){_error2_("not implemented yet");}
-		void GetInputValue(IssmDouble* pvalue){_error2_("not implemented yet");}
+		void GetInputValue(bool* pvalue){_error_("not implemented yet");}
+		void GetInputValue(int* pvalue){_error_("not implemented yet");}
+		void GetInputValue(IssmDouble* pvalue){_error_("not implemented yet");}
 		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss);
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
-		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,int index){_error2_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
+		void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,int index){_error_("not implemented yet");};
 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss);
-		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
 		void GetInputAverage(IssmDouble* pvalue);
 		void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss);
 		void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss);
-		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
-		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
+		void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
+		void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
 		void ChangeEnum(int newenumtype);
 
@@ -77,6 +77,6 @@
 		IssmDouble Min(void);
 		IssmDouble MinAbs(void);
-		void Extrude(void){_error2_("not supported yet");};
-		void VerticallyIntegrate(Input* thickness_input){_error2_("not supported yet");};
+		void Extrude(void){_error_("not supported yet");};
+		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		void GetVectorFromInputs(Vector* vector,int* doflist);
 		void GetValuesPtr(IssmDouble** pvalues,int* pnum_values);
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KMLFileReadUtils.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KMLFileReadUtils.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KMLFileReadUtils.cpp	(revision 13036)
@@ -259,5 +259,5 @@
 
 	if (strncmp(&ktag[0],"<"        ,1) || strncmp(&ktag[strlen(ktag)-1],">",1))
-		_error2_("KMLFileTagName -- Missing tag delimiters in " << ktag << ".\n");
+		_error_("KMLFileTagName -- Missing tag delimiters in " << ktag << ".\n");
 
 /*  strtok modifies ktag, so work on copy  */
@@ -355,5 +355,5 @@
 							NULL,NULL)) ||
 		(kstr[0] == '<'))
-		_error2_("KMLFileTokenParse -- Missing integer field for " << ktag << ".\n");
+		_error_("KMLFileTokenParse -- Missing integer field for " << ktag << ".\n");
 
 	sscanf(kstr,"%d",pival);
@@ -368,5 +368,5 @@
 			(kstr[1] != '/') ||
 			(strncmp(&(kstr[2]),&(ktag[1]),strlen(ktag)-1)))
-		  {_error2_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
+		  {_error_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
 		else
 			xDelete<char>(kstr);
@@ -388,5 +388,5 @@
 							NULL,NULL)) ||
 		(kstr[0] == '<'))
-	  {_error2_("KMLFileTokenParse -- Missing bool field for " << ktag << ".\n");}
+	  {_error_("KMLFileTokenParse -- Missing bool field for " << ktag << ".\n");}
 
 	sscanf(kstr,"%d",&ival);
@@ -402,5 +402,5 @@
 			(kstr[1] != '/') ||
 			(strncmp(&(kstr[2]),&(ktag[1]),strlen(ktag)-1)))
-		  {_error2_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
+		  {_error_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
 		else
 			xDelete<char>(kstr);
@@ -433,5 +433,5 @@
 							NULL,NULL)) ||
 		(kstr[0] == '<'))
-		_error2_("KMLFileTokenParse -- Missing string field for " << ktag << ".\n");
+		_error_("KMLFileTokenParse -- Missing string field for " << ktag << ".\n");
 
 	if (!pstr) {
@@ -463,5 +463,5 @@
 			(kstr[1] != '/') ||
 			(strncmp(&(kstr[2]),&(ktag[1]),strlen(ktag)-1)))
-		  {_error2_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
+		  {_error_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
 		else
 			xDelete<char>(kstr);
@@ -484,5 +484,5 @@
 							NULL,NULL)) ||
 		(kstr[0] == '<'))
-	  {_error2_("KMLFileTokenParse -- Missing integer field for " << ktag << ".\n");}
+	  {_error_("KMLFileTokenParse -- Missing integer field for " << ktag << ".\n");}
 
 	sscanf(kstr,"%g",pfval);
@@ -497,5 +497,5 @@
 			(kstr[1] != '/') ||
 			(strncmp(&(kstr[2]),&(ktag[1]),strlen(ktag)-1)))
-		  {_error2_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
+		  {_error_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
 		else
 			xDelete<char>(kstr);
@@ -518,5 +518,5 @@
 							NULL,NULL)) ||
 		(kstr[0] == '<'))
-		_error2_("KMLFileTokenParse -- Missing integer field for " << ktag << ".\n");
+		_error_("KMLFileTokenParse -- Missing integer field for " << ktag << ".\n");
 
 	sscanf(kstr,"%lg",pdval);
@@ -531,5 +531,5 @@
 			(kstr[1] != '/') ||
 			(strncmp(&(kstr[2]),&(ktag[1]),strlen(ktag)-1)))
-		  {_error2_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
+		  {_error_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
 		else
 			xDelete<char>(kstr);
@@ -556,5 +556,5 @@
 							NULL,NULL)) ||
 		(kstr[0] == '<'))
-		_error2_("KMLFileTokenParse -- Missing double [m] field for " << ktag << ".\n");
+		_error_("KMLFileTokenParse -- Missing double [m] field for " << ktag << ".\n");
 
 	if (!*pdval)
@@ -570,5 +570,5 @@
 		i++;
 		if (maxlen && (maxlen < i+1))
-			_error2_("KMLFileTokenParse -- Double [m] field too short for " << ktag << ".\n");
+			_error_("KMLFileTokenParse -- Double [m] field too short for " << ktag << ".\n");
 		sscanf(ktok,"%lg",&((*pdval)[i]));
 		ktok=strtok(NULL,delim);
@@ -595,5 +595,5 @@
 			(kstr[1] != '/') ||
 			(strncmp(&(kstr[2]),&(ktag[1]),strlen(ktag)-1)))
-		  {_error2_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
+		  {_error_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
 		else
 			xDelete<char>(kstr);
@@ -622,5 +622,5 @@
 							NULL,NULL)) ||
 		(kstr[0] == '<'))
-		_error2_("KMLFileTokenParse -- Missing double [m x n] field for " << ktag << ".\n");
+		_error_("KMLFileTokenParse -- Missing double [m x n] field for " << ktag << ".\n");
 
 	if (!*pdval)
@@ -636,5 +636,5 @@
 		i++;
 		if (maxlen && (maxlen*n < i+1))
-			_error2_("KMLFileTokenParse -- Double [m x n] field too short for " << ktag << ".\n");
+			_error_("KMLFileTokenParse -- Double [m x n] field too short for " << ktag << ".\n");
 		j=(j+1) % n;
 		sscanf(ktok,"%lg",&((*pdval)[i]));
@@ -665,5 +665,5 @@
 			(kstr[1] != '/') ||
 			(strncmp(&(kstr[2]),&(ktag[1]),strlen(ktag)-1)))
-		  {_error2_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
+		  {_error_("KMLFileTokenParse -- Missing closing tag for " << ktag << ".\n");}
 		else
 			xDelete<char>(kstr);
@@ -712,5 +712,5 @@
 		else if ((kstr[0] == '<') &&
 				 (kstr[1] == '/')) {
-			_error2_("KMLFileTagSkip -- Unexpected closing tag " << kstr << ".\n");
+			_error_("KMLFileTagSkip -- Unexpected closing tag " << kstr << ".\n");
 		}
 
@@ -718,5 +718,5 @@
 	}
 
-	_error2_("KMLFileTokenParse -- Corresponding closing tag for " << ktag << " not found.\n");
+	_error_("KMLFileTokenParse -- Corresponding closing tag for " << ktag << " not found.\n");
 
 	return(0);
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Attribute.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Attribute.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Attribute.h	(revision 13036)
@@ -30,11 +30,11 @@
 		virtual void  DeepEcho();
 		virtual void  DeepEcho(const char* indent);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_ColorStyle.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_ColorStyle.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_ColorStyle.cpp	(revision 13036)
@@ -93,7 +93,7 @@
 		return;
 	else if (!strncmp(kstr,"</",2))
-	  {_error2_("KML_ColorStyle::Read -- Unexpected closing tag " << kstr);}
+	  {_error_("KML_ColorStyle::Read -- Unexpected closing tag " << kstr);}
 	else if (strncmp(kstr,"<",1))
-	  {_error2_("KML_ColorStyle::Read -- Unexpected field \"" << kstr << "\"");}
+	  {_error_("KML_ColorStyle::Read -- Unexpected field \"" << kstr << "\"");}
 
 	else if (!strcmp(kstr,"<color>"))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_ColorStyle.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_ColorStyle.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_ColorStyle.h	(revision 13036)
@@ -35,11 +35,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Comment.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Comment.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Comment.h	(revision 13036)
@@ -30,11 +30,11 @@
 		virtual void  DeepEcho();
 		virtual void  DeepEcho(const char* indent);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Container.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Container.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Container.cpp	(revision 13036)
@@ -120,7 +120,7 @@
 	}
 	else if (!strncmp(kstr,"</",2))
-	  {_error2_("KML_Container::Read -- Unexpected closing tag " << kstr );}
+	  {_error_("KML_Container::Read -- Unexpected closing tag " << kstr );}
 	else if (strncmp(kstr,"<",1))
-	  {_error2_("KML_Container::Read -- Unexpected field \"" << kstr << "\"");}
+	  {_error_("KML_Container::Read -- Unexpected field \"" << kstr << "\"");}
 
 	else if (!strncmp(kstr,"<Placemark",10)) {
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Container.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Container.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Container.h	(revision 13036)
@@ -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(){_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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Document.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Document.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Document.cpp	(revision 13036)
@@ -106,7 +106,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_Document::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_Document::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_Document::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_Document::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strncmp(kstri,"<",1))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Document.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Document.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Document.h	(revision 13036)
@@ -30,11 +30,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Feature.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Feature.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Feature.cpp	(revision 13036)
@@ -149,7 +149,7 @@
 		return;
 	else if (!strncmp(kstr,"</",2))
-	  {_error2_("KML_Feature::Read -- Unexpected closing tag " << kstr);}
+	  {_error_("KML_Feature::Read -- Unexpected closing tag " << kstr);}
 	else if (strncmp(kstr,"<",1))
-	  {_error2_("KML_Feature::Read -- Unexpected field \"" << kstr << "\"");}
+	  {_error_("KML_Feature::Read -- Unexpected field \"" << kstr << "\"");}
 
 	else if (!strncmp(kstr,"<Style", 6)) {
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Feature.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Feature.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Feature.h	(revision 13036)
@@ -44,11 +44,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_File.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_File.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_File.cpp	(revision 13036)
@@ -107,7 +107,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_File::Read -- Unexpected closing tag " << kstri << ".");}
+		  {_error_("KML_File::Read -- Unexpected closing tag " << kstri << ".");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_File::Read -- Unexpected field \"" << kstri << "\"");}
+		  {_error_("KML_File::Read -- Unexpected field \"" << kstri << "\"");}
 
 		else if (!strncmp(kstri,"<",1))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_File.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_File.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_File.h	(revision 13036)
@@ -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(){_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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Folder.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Folder.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Folder.cpp	(revision 13036)
@@ -106,7 +106,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_Folder::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_Folder::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_Folder::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_Folder::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strncmp(kstri,"<",1))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Folder.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Folder.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Folder.h	(revision 13036)
@@ -30,11 +30,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Geometry.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Geometry.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Geometry.cpp	(revision 13036)
@@ -79,7 +79,7 @@
 		return;
 	else if (!strncmp(kstr,"</",2))
-	  {_error2_("KML_Geometry::Read -- Unexpected closing tag " << kstr << ".\n");}
+	  {_error_("KML_Geometry::Read -- Unexpected closing tag " << kstr << ".\n");}
 	else if (strncmp(kstr,"<",1))
-	  {_error2_("KML_Geometry::Read -- Unexpected field \"" << kstr << "\".\n");}
+	  {_error_("KML_Geometry::Read -- Unexpected field \"" << kstr << "\".\n");}
 
 	else if (!strncmp(kstr,"<",1))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Geometry.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Geometry.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Geometry.h	(revision 13036)
@@ -29,11 +29,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_GroundOverlay.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_GroundOverlay.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_GroundOverlay.cpp	(revision 13036)
@@ -131,7 +131,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_GroundOverlay::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_GroundOverlay::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_GroundOverlay::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_GroundOverlay::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strcmp(kstri,"<altitude>"))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_GroundOverlay.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_GroundOverlay.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_GroundOverlay.h	(revision 13036)
@@ -36,11 +36,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Icon.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Icon.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Icon.cpp	(revision 13036)
@@ -145,7 +145,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_Icon::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_Icon::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_Icon::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_Icon::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strcmp(kstri,"<href>"))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Icon.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Icon.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Icon.h	(revision 13036)
@@ -44,11 +44,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_LatLonBox.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_LatLonBox.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_LatLonBox.cpp	(revision 13036)
@@ -121,7 +121,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_LatLonBox::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_LatLonBox::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_LatLonBox::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_LatLonBox::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strcmp(kstri,"<north>"))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_LatLonBox.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_LatLonBox.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_LatLonBox.h	(revision 13036)
@@ -35,11 +35,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineString.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineString.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineString.cpp	(revision 13036)
@@ -141,7 +141,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_LineString::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_LineString::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_LineString::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_LineString::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strcmp(kstri,"<extrude>"))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineString.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineString.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineString.h	(revision 13036)
@@ -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(){_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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineStyle.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineStyle.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineStyle.cpp	(revision 13036)
@@ -113,7 +113,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_LineStyle::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_LineStyle::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_LineStyle::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_LineStyle::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strcmp(kstri,"<width>"))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineStyle.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineStyle.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_LineStyle.h	(revision 13036)
@@ -31,11 +31,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_LinearRing.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_LinearRing.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_LinearRing.cpp	(revision 13036)
@@ -139,7 +139,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_LinearRing::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_LinearRing::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_LinearRing::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_LinearRing::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strcmp(kstri,"<extrude>"))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_LinearRing.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_LinearRing.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_LinearRing.h	(revision 13036)
@@ -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(){_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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_MultiGeometry.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_MultiGeometry.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_MultiGeometry.cpp	(revision 13036)
@@ -140,7 +140,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_MultiGeometry::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_MultiGeometry::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_MultiGeometry::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_MultiGeometry::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strncmp(kstri,"<Point", 6)) {
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_MultiGeometry.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_MultiGeometry.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_MultiGeometry.h	(revision 13036)
@@ -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(){_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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Object.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Object.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Object.cpp	(revision 13036)
@@ -146,7 +146,7 @@
 		return;
 	else if (!strncmp(kstr,"</",2))
-	  {_error2_("KML_Object::Read -- Unexpected closing tag " << kstr << ".\n");}
+	  {_error_("KML_Object::Read -- Unexpected closing tag " << kstr << ".\n");}
 	else if (strncmp(kstr,"<",1))
-	  {_error2_("KML_Object::Read -- Unexpected field \"" << kstr << "\".\n");}
+	  {_error_("KML_Object::Read -- Unexpected field \"" << kstr << "\".\n");}
 
 	else if (!strncmp(kstr,"<Placemark",10)) {
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Object.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Object.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Object.h	(revision 13036)
@@ -31,11 +31,11 @@
 		virtual void  DeepEcho();
 		virtual void  DeepEcho(const char* indent);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Overlay.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Overlay.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Overlay.cpp	(revision 13036)
@@ -110,7 +110,7 @@
 	}
 	else if (!strncmp(kstr,"</",2))
-	  {_error2_("KML_Overlay::Read -- Unexpected closing tag " << kstr << ".\n");}
+	  {_error_("KML_Overlay::Read -- Unexpected closing tag " << kstr << ".\n");}
 	else if (strncmp(kstr,"<",1))
-	  {_error2_("KML_Overlay::Read -- Unexpected field \"" << kstr << "\".\n");}
+	  {_error_("KML_Overlay::Read -- Unexpected field \"" << kstr << "\".\n");}
 
 	else if (!strcmp(kstr,"<color>"))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Overlay.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Overlay.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Overlay.h	(revision 13036)
@@ -36,11 +36,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Placemark.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Placemark.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Placemark.cpp	(revision 13036)
@@ -140,7 +140,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_Placemark::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_Placemark::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_Placemark::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_Placemark::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strncmp(kstri,"<Point", 6)) {
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Placemark.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Placemark.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Placemark.h	(revision 13036)
@@ -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(){_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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Point.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Point.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Point.cpp	(revision 13036)
@@ -126,7 +126,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_Point::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_Point::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_Point::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_Point::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strcmp(kstri,"<extrude>"))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Point.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Point.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Point.h	(revision 13036)
@@ -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(){_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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_PolyStyle.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_PolyStyle.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_PolyStyle.cpp	(revision 13036)
@@ -117,7 +117,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_PolyStyle::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_PolyStyle::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_PolyStyle::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_PolyStyle::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strcmp(kstri,"<fill>"))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_PolyStyle.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_PolyStyle.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_PolyStyle.h	(revision 13036)
@@ -32,11 +32,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Polygon.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Polygon.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Polygon.cpp	(revision 13036)
@@ -179,7 +179,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_Polygon::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_Polygon::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_Polygon::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_Polygon::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 		else if (!strcmp(kstri,"<extrude>"))
@@ -207,7 +207,7 @@
 				}
 				else if (!strncmp(kstrj,"</",2))
-				  {_error2_("KML_Polygon::Read -- Unexpected closing tag " << kstrj << ".\n");}
+				  {_error_("KML_Polygon::Read -- Unexpected closing tag " << kstrj << ".\n");}
 				else if (strncmp(kstrj,"<",1))
-				  {_error2_("KML_Polygon::Read -- Unexpected field \"" << kstrj << "\".\n");}
+				  {_error_("KML_Polygon::Read -- Unexpected field \"" << kstrj << "\".\n");}
 
 				else if (!strncmp(kstrj,"<LinearRing",11)) {
@@ -234,7 +234,7 @@
 				}
 				else if (!strncmp(kstrj,"</",2))
-				  {_error2_("KML_Polygon::Read -- Unexpected closing tag " << kstrj << ".\n");}
+				  {_error_("KML_Polygon::Read -- Unexpected closing tag " << kstrj << ".\n");}
 				else if (strncmp(kstrj,"<",1))
-				  {_error2_("KML_Polygon::Read -- Unexpected field \"" << kstrj << "\".\n");}
+				  {_error_("KML_Polygon::Read -- Unexpected field \"" << kstrj << "\".\n");}
 
 				else if (!strncmp(kstrj,"<LinearRing",11)) {
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Polygon.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Polygon.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Polygon.h	(revision 13036)
@@ -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(){_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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Style.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Style.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Style.cpp	(revision 13036)
@@ -189,7 +189,7 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_Style::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_Style::Read -- Unexpected closing tag " << kstri << ".\n");}
 		else if (strncmp(kstri,"<",1))
-		  {_error2_("KML_Style::Read -- Unexpected field \"" << kstri << "\".\n");}
+		  {_error_("KML_Style::Read -- Unexpected field \"" << kstri << "\".\n");}
 
 //		else if (!strncmp(kstri,"<IconStyle",10)) {
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Style.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Style.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Style.h	(revision 13036)
@@ -38,11 +38,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_StyleSelector.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_StyleSelector.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_StyleSelector.cpp	(revision 13036)
@@ -83,7 +83,7 @@
 		return;
 	else if (!strncmp(kstr,"</",2))
-	  {_error2_("KML_StyleSelector::Read -- Unexpected closing tag " << kstr << ".\n");}
+	  {_error_("KML_StyleSelector::Read -- Unexpected closing tag " << kstr << ".\n");}
 	else if (strncmp(kstr,"<",1))
-	  {_error2_("KML_StyleSelector::Read -- Unexpected field \"" << kstr << "\".\n");}
+	  {_error_("KML_StyleSelector::Read -- Unexpected field \"" << kstr << "\".\n");}
 
 	else if (!strncmp(kstr,"<",1))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_StyleSelector.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_StyleSelector.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_StyleSelector.h	(revision 13036)
@@ -29,11 +29,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_SubStyle.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_SubStyle.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_SubStyle.cpp	(revision 13036)
@@ -83,7 +83,7 @@
 		return;
 	else if (!strncmp(kstr,"</",2))
-	  {_error2_("KML_SubStyle::Read -- Unexpected closing tag " << kstr << ".\n");}
+	  {_error_("KML_SubStyle::Read -- Unexpected closing tag " << kstr << ".\n");}
 	else if (strncmp(kstr,"<",1))
-	  {_error2_("KML_SubStyle::Read -- Unexpected field \"" << kstr << "\".\n");}
+	  {_error_("KML_SubStyle::Read -- Unexpected field \"" << kstr << "\".\n");}
 
 	else if (!strncmp(kstr,"<",1))
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_SubStyle.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_SubStyle.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_SubStyle.h	(revision 13036)
@@ -29,11 +29,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Unknown.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Unknown.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Unknown.cpp	(revision 13036)
@@ -160,5 +160,5 @@
 		}
 		else if (!strncmp(kstri,"</",2))
-		  {_error2_("KML_Unknown::Read -- Unexpected closing tag " << kstri << ".\n");}
+		  {_error_("KML_Unknown::Read -- Unexpected closing tag " << kstri << ".\n");}
 
 		else if (strncmp(kstri,"<",1)) {
Index: /issm/trunk-jpl/src/c/classes/objects/KML/KML_Unknown.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/KML/KML_Unknown.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/KML/KML_Unknown.h	(revision 13036)
@@ -32,11 +32,11 @@
 		void  Write(FILE* fid,const char* indent);
 		void  Read(FILE* fid,char* kstr);
-		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.");};
+		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.");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Friction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Friction.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Friction.cpp	(revision 13036)
@@ -107,8 +107,8 @@
 		vmag=sqrt(pow(vx,2)+pow(vy,2)+pow(vz,2));
 	}
-	else _error2_("element_type "<< element_type << " not supported yet");
+	else _error_("element_type "<< element_type << " not supported yet");
 
 	/*Checks that s-1>0 if v=0*/
-        if(vmag==0 && (s-1)<0) _error2_("velocity is 0 and (s-1)=" << (s-1) << "<0, alpha_complement is Inf");
+        if(vmag==0 && (s-1)<0) _error_("velocity is 0 and (s-1)=" << (s-1) << "<0, alpha_complement is Inf");
 
 	alpha2=pow(drag_coefficient,2)*pow(Neff,r)*pow(vmag,(s-1));
@@ -171,8 +171,8 @@
 		vmag=sqrt(pow(vx,2)+pow(vy,2)+pow(vz,2));
 	}
-	else _error2_("element_type "<< element_type << " not supported yet");
+	else _error_("element_type "<< element_type << " not supported yet");
 
 	/*Checks that s-1>0 if v=0*/
-	if(vmag==0 && (s-1)<0) _error2_("velocity is 0 and (s-1)=" << (s-1) << "<0, alpha_complement is Inf");
+	if(vmag==0 && (s-1)<0) _error_("velocity is 0 and (s-1)=" << (s-1) << "<0, alpha_complement is Inf");
 
 	alpha2=pow(drag_coefficient,2)*pow(Neff,r)*pow(vmag,(s-1));
@@ -238,8 +238,8 @@
 		vmag=sqrt(pow(vx,2)+pow(vy,2)+pow(vz,2));
 	}
-	else _error2_("element_type "<< element_type << " not supported yet");
+	else _error_("element_type "<< element_type << " not supported yet");
 
 	/*Checks that s-1>0 if v=0*/
-	if(vmag==0 && (s-1)<0) _error2_("velocity is 0 and (s-1)=" << (s-1) << "<0, alpha_complement is Inf");
+	if(vmag==0 && (s-1)<0) _error_("velocity is 0 and (s-1)=" << (s-1) << "<0, alpha_complement is Inf");
 
 	alpha_complement=pow(Neff,r)*pow(vmag,(s-1));            _assert_(!xIsNan<IssmDouble>(alpha_complement));
@@ -304,8 +304,8 @@
 		vmag=sqrt(pow(vx,2)+pow(vy,2)+pow(vz,2));
 	}
-	else _error2_("element_type "<< element_type << " not supported yet");
+	else _error_("element_type "<< element_type << " not supported yet");
 
 	/*Checks that s-1>0 if v=0*/
-	if(vmag==0 && (s-1)<0) _error2_("velocity is 0 and (s-1)=" << (s-1) << "<0, alpha_complement is Inf");
+	if(vmag==0 && (s-1)<0) _error_("velocity is 0 and (s-1)=" << (s-1) << "<0, alpha_complement is Inf");
 
 	alpha_complement=pow(Neff,r)*pow(vmag,(s-1));            _assert_(!xIsNan<IssmDouble>(alpha_complement));
@@ -319,5 +319,5 @@
 
 	Input* input=inputs->GetInput(enum_type);
-	if(!input) _error2_("input " << EnumToStringx(enum_type) << " not found");
+	if(!input) _error_("input " << EnumToStringx(enum_type) << " not found");
 	input->GetInputValue(pvalue,gauss);
 
@@ -328,5 +328,5 @@
 
 	Input* input=inputs->GetInput(enum_type);
-	if(!input) _error2_("input " << EnumToStringx(enum_type) << " not found");
+	if(!input) _error_("input " << EnumToStringx(enum_type) << " not found");
 	input->GetInputValue(pvalue,gauss);
 
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Icefront.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Icefront.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Icefront.cpp	(revision 13036)
@@ -81,5 +81,5 @@
 		icefront_node_ids[3]=iomodel->nodecounter+reCast<int>(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+3));
 	}
-	else _error2_("in_icefront_type " << EnumToStringx(in_icefront_type) << " not supported yet!");
+	else _error_("in_icefront_type " << EnumToStringx(in_icefront_type) << " not supported yet!");
 
 	if (in_icefront_type==PattynIceFrontEnum || in_icefront_type==StokesIceFrontEnum)
@@ -263,5 +263,5 @@
 		#endif
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -379,5 +379,5 @@
 	    #endif
 		default:
-			_error2_("Icefront type " << EnumToStringx(type) << " not supported yet");
+			_error_("Icefront type " << EnumToStringx(type) << " not supported yet");
 	}
 }
@@ -441,5 +441,5 @@
 				break;
 			default:
-				_error2_("fill type " << EnumToStringx(fill) << " not supported yet");
+				_error_("fill type " << EnumToStringx(fill) << " not supported yet");
 		}
 		ice_pressure=1.0/2.0*gravity*rho_ice*pow(thickness,2);
@@ -564,5 +564,5 @@
 				break;
 			default:
-				_error2_("fill type " << EnumToStringx(fill) << " not supported yet");
+				_error_("fill type " << EnumToStringx(fill) << " not supported yet");
 		}
 		ice_pressure=rho_ice*gravity*(surface-z_g);
@@ -638,5 +638,5 @@
 				break;
 			default:
-				_error2_("fill type " << EnumToStringx(fill) << " not supported yet");
+				_error_("fill type " << EnumToStringx(fill) << " not supported yet");
 		}
 		air_pressure=0;
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Icefront.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Icefront.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Icefront.h	(revision 13036)
@@ -64,5 +64,5 @@
 		void  InputUpdateFromConstant(bool constant, int name);
 		void  InputUpdateFromSolution(IssmDouble* solution);
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
 		/*}}}*/
 		/*Load virtual functions definitions: {{{*/
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Numericalflux.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Numericalflux.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Numericalflux.cpp	(revision 13036)
@@ -270,5 +270,5 @@
 			break;
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -300,5 +300,5 @@
 			break;
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -347,5 +347,5 @@
 			return CreateKMatrixPrognosticBoundary();
 		default:
-			_error2_("type not supported yet");
+			_error_("type not supported yet");
 	}
 }
@@ -500,5 +500,5 @@
 			return CreateKMatrixBalancethicknessBoundary();
 		default:
-			_error2_("type not supported yet");
+			_error_("type not supported yet");
 	}
 }
@@ -651,5 +651,5 @@
 			return CreateKMatrixAdjointBalancethicknessBoundary();
 		default:
-			_error2_("type not supported yet");
+			_error_("type not supported yet");
 	}
 }
@@ -683,5 +683,5 @@
 			return CreatePVectorPrognosticBoundary();
 		default:
-			_error2_("type not supported yet");
+			_error_("type not supported yet");
 	}
 }
@@ -751,5 +751,5 @@
 		vyaverage_input->GetInputValue(&vy,gauss);
 		spcthickness_input->GetInputValue(&thickness,gauss);
-		if(xIsNan<IssmDouble>(thickness)) _error2_("Cannot weakly apply constraint because NaN was provided");
+		if(xIsNan<IssmDouble>(thickness)) _error_("Cannot weakly apply constraint because NaN was provided");
 
 		UdotN=vx*normal[0]+vy*normal[1];
@@ -777,5 +777,5 @@
 			return CreatePVectorBalancethicknessBoundary();
 		default:
-			_error2_("type not supported yet");
+			_error_("type not supported yet");
 	}
 }
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Numericalflux.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Numericalflux.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Numericalflux.h	(revision 13036)
@@ -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){_error2_("Not implemented yet!");}
-		void    InputUpdateFromVector(bool* vector, int name, int type){_error2_("Not implemented yet!");}
+		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){/*Do nothing*/}
 		void    InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){/*Do nothing*/}
-		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    InputUpdateFromVectorDakota(int* vector, int name, int type){_error_("Not implemented yet!");}
+		void    InputUpdateFromVectorDakota(bool* vector, int name, int type){_error_("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){_error2_("Not implemented yet!");}
-		void    InputUpdateFromSolution(IssmDouble* solution){_error2_("Not implemented yet!");}
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
+		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");};
 		/*}}}*/
 		/*Load virtual functions definitions: {{{*/
@@ -67,6 +67,6 @@
 		void  CreateKMatrix(Matrix* Kff, Matrix* Kfs);
 		void  CreatePVector(Vector* pf);
-		void  CreateJacobianMatrix(Matrix* Jff){_error2_("Not implemented yet");};
-		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error2_("Not implemented yet");};
+		void  CreateJacobianMatrix(Matrix* Jff){_error_("Not implemented yet");};
+		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error_("Not implemented yet");};
 		void  PenaltyCreateKMatrix(Matrix* Kff, Matrix* kfs, IssmDouble kmax);
 		void  PenaltyCreatePVector(Vector* pf, IssmDouble kmax);
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Pengrid.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Pengrid.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Pengrid.cpp	(revision 13036)
@@ -239,5 +239,5 @@
 		#endif
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -271,5 +271,5 @@
 		#endif
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -379,5 +379,5 @@
 	}
 	else{
-		_error2_("analysis: " << EnumToStringx(analysis_type) << " not supported yet");
+		_error_("analysis: " << EnumToStringx(analysis_type) << " not supported yet");
 	}
 
@@ -616,5 +616,5 @@
 /*FUNCTION Pengrid::UpdateInputs {{{*/
 void  Pengrid::UpdateInputs(IssmDouble* solution){
-	_error2_("not supported yet!");
-}
-/*}}}*/
+	_error_("not supported yet!");
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Pengrid.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Pengrid.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Pengrid.h	(revision 13036)
@@ -65,5 +65,5 @@
 		void  InputUpdateFromConstant(bool constant, int name);
 		void  InputUpdateFromSolution(IssmDouble* solution);
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("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){_error2_("Not implemented yet");};
-		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error2_("Not implemented yet");};
+		void  CreateJacobianMatrix(Matrix* Jff){_error_("Not implemented yet");};
+		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error_("Not implemented yet");};
 		void  PenaltyCreateKMatrix(Matrix* Kff, Matrix* kfs, IssmDouble kmax);
 		void  PenaltyCreatePVector(Vector* pf, IssmDouble kmax);
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Penpair.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Penpair.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Penpair.cpp	(revision 13036)
@@ -172,5 +172,5 @@
 			break;
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -244,5 +244,5 @@
 				case MacAyealApproximationEnum: return PenaltyCreateKMatrixDiagnosticMacAyealPattyn(kmax); 
 				case PattynApproximationEnum:   return PenaltyCreateKMatrixDiagnosticMacAyealPattyn(kmax); 
-				default: _error2_("not supported yet");
+				default: _error_("not supported yet");
 			}
 		case PattynApproximationEnum:
@@ -250,5 +250,5 @@
 				case MacAyealApproximationEnum: return PenaltyCreateKMatrixDiagnosticMacAyealPattyn(kmax); 
 				case PattynApproximationEnum:   return PenaltyCreateKMatrixDiagnosticMacAyealPattyn(kmax); 
-				default: _error2_("not supported yet");
+				default: _error_("not supported yet");
 			}
 		case StokesApproximationEnum:
@@ -256,5 +256,5 @@
 				case StokesApproximationEnum: return PenaltyCreateKMatrixDiagnosticStokes(kmax); 
 				case NoneApproximationEnum: return   PenaltyCreateKMatrixDiagnosticStokes(kmax); 
-				default: _error2_("not supported yet");
+				default: _error_("not supported yet");
 			}
 		case NoneApproximationEnum:
@@ -262,7 +262,7 @@
 				case StokesApproximationEnum: return PenaltyCreateKMatrixDiagnosticStokes(kmax); 
 				case NoneApproximationEnum: return   PenaltyCreateKMatrixDiagnosticStokes(kmax); 
-				default: _error2_("not supported yet");
+				default: _error_("not supported yet");
 			}
-		default: _error2_("not supported yet");
+		default: _error_("not supported yet");
 	}
 }
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Penpair.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Penpair.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Penpair.h	(revision 13036)
@@ -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){_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  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  InputUpdateFromConstant(IssmDouble constant, int name);
 		void  InputUpdateFromConstant(int constant, int name);
 		void  InputUpdateFromConstant(bool constant, int name);
-		void  InputUpdateFromSolution(IssmDouble* solution){_error2_("Not implemented yet!");}
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
+		void  InputUpdateFromSolution(IssmDouble* solution){_error_("Not implemented yet!");}
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
 		/*}}}*/
 			/*Load virtual functions definitions: {{{*/
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Riftfront.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Riftfront.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Riftfront.cpp	(revision 13036)
@@ -276,5 +276,5 @@
 
 	/*update input*/
-	_error2_("not implemented yet");
+	_error_("not implemented yet");
 	//this->inputs->AddInput(new DoubleInput(name,constant));
 
@@ -324,5 +324,5 @@
 			break;
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -350,5 +350,5 @@
 			break;
 		default:
-			_error2_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
+			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
 	}
 
@@ -397,5 +397,5 @@
 
 	/*enum of element? */
-	if(elements[0]->ObjectEnum()!=TriaEnum)_error2_("only Tria element allowed for Riftfront load!");
+	if(elements[0]->ObjectEnum()!=TriaEnum)_error_("only Tria element allowed for Riftfront load!");
 	tria1=(Tria*)elements[0];
 	tria2=(Tria*)elements[1];
@@ -410,5 +410,5 @@
 	tria1->GetInputValue(&h[0],nodes[0],ThicknessEnum);
 	tria2->GetInputValue(&h[1],nodes[1],ThicknessEnum);
-	if (h[0]!=h[1])_error2_("different thicknesses not supported for rift fronts");
+	if (h[0]!=h[1])_error_("different thicknesses not supported for rift fronts");
 	thickness=h[0];
 
@@ -488,5 +488,5 @@
 
 	/*enum of element? */
-	if(elements[0]->ObjectEnum()!=TriaEnum)_error2_("only Tria element allowed for Riftfront load!");
+	if(elements[0]->ObjectEnum()!=TriaEnum)_error_("only Tria element allowed for Riftfront load!");
 	tria1=(Tria*)elements[0];
 	tria2=(Tria*)elements[1];
@@ -504,9 +504,9 @@
 	tria1->GetInputValue(&h[0],nodes[0],ThicknessEnum);
 	tria2->GetInputValue(&h[1],nodes[1],ThicknessEnum);
-	if (h[0]!=h[1])_error2_("different thicknesses not supported for rift fronts");
+	if (h[0]!=h[1])_error_("different thicknesses not supported for rift fronts");
 	thickness=h[0];
 	tria1->GetInputValue(&b[0],nodes[0],BedEnum);
 	tria2->GetInputValue(&b[1],nodes[1],BedEnum);
-	if (b[0]!=b[1])_error2_("different beds not supported for rift fronts");
+	if (b[0]!=b[1])_error_("different beds not supported for rift fronts");
 	bed=b[0];
 
@@ -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) _error_("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.");
+		_error_("fill type " << fill << " not supported yet.");
 	}
 
@@ -585,5 +585,5 @@
 
 	/*enum of element? */
-	if(elements[0]->ObjectEnum()!=TriaEnum)_error2_("only Tria element allowed for Riftfront load!");
+	if(elements[0]->ObjectEnum()!=TriaEnum)_error_("only Tria element allowed for Riftfront load!");
 
 	/*recover elements on both side of rift: */
@@ -706,5 +706,5 @@
 
 	/*enum of element? */
-	if(elements[0]->ObjectEnum()!=TriaEnum)_error2_("only Tria element allowed for Riftfront load!");
+	if(elements[0]->ObjectEnum()!=TriaEnum)_error_("only Tria element allowed for Riftfront load!");
 
 	/*recover elements on both side of rift: */
@@ -751,5 +751,5 @@
 
 	/*enum of element? */
-	if(elements[0]->ObjectEnum()!=TriaEnum)_error2_("only Tria element allowed for Riftfront load!");
+	if(elements[0]->ObjectEnum()!=TriaEnum)_error_("only Tria element allowed for Riftfront load!");
 
 	/*recover elements on both side of rift: */
@@ -794,5 +794,5 @@
 
 	/*enum of element? */
-	if(elements[0]->ObjectEnum()!=TriaEnum)_error2_("only Tria element allowed for Riftfront load!");
+	if(elements[0]->ObjectEnum()!=TriaEnum)_error_("only Tria element allowed for Riftfront load!");
 
 	/*recover elements on both side of rift: */
@@ -844,5 +844,5 @@
 
 	/*enum of element? */
-	if(elements[0]->ObjectEnum()!=TriaEnum)_error2_("only Tria element allowed for Riftfront load!");
+	if(elements[0]->ObjectEnum()!=TriaEnum)_error_("only Tria element allowed for Riftfront load!");
 
 	/*recover elements on both side of rift: */
Index: /issm/trunk-jpl/src/c/classes/objects/Loads/Riftfront.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Loads/Riftfront.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Loads/Riftfront.h	(revision 13036)
@@ -62,15 +62,15 @@
 		/*Update virtual functions resolution: {{{*/
 		void    InputUpdateFromVector(IssmDouble* vector, int name, int type);
-		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    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    InputUpdateFromConstant(IssmDouble constant, int name);
-		void    InputUpdateFromConstant(int constant, int name){_error2_("Not implemented yet!");}
+		void    InputUpdateFromConstant(int constant, int name){_error_("Not implemented yet!");}
 		void    InputUpdateFromConstant(bool constant, int name);
-		void    InputUpdateFromSolution(IssmDouble* solution){_error2_("Not implemented yet!");}
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
+		void    InputUpdateFromSolution(IssmDouble* solution){_error_("Not implemented yet!");}
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("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){_error2_("Not implemented yet");};
-		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error2_("Not implemented yet");};
+		void  CreateJacobianMatrix(Matrix* Jff){_error_("Not implemented yet");};
+		void  PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){_error_("Not implemented yet");};
 		void  PenaltyCreateKMatrix(Matrix* Kff, Matrix* kfs, IssmDouble kmax);
 		void  PenaltyCreatePVector(Vector* pf, IssmDouble kmax);
Index: /issm/trunk-jpl/src/c/classes/objects/Materials/Matice.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Materials/Matice.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Materials/Matice.cpp	(revision 13036)
@@ -180,5 +180,5 @@
 			/*Get input (either in element or material)*/
 			Input* input=inputs->GetInput(input_enum);
-			if(!input) _error2_("Input " << EnumToStringx(input_enum) << " not found in material");
+			if(!input) _error_("Input " << EnumToStringx(input_enum) << " not found in material");
 
 			/*We found the enum.  Use its values to fill into the vector, using the vertices ids: */
@@ -186,5 +186,5 @@
 			break;
 
-		default: _error2_("element " << EnumToStringx(element->ObjectEnum()) << " not implemented yet");
+		default: _error_("element " << EnumToStringx(element->ObjectEnum()) << " not implemented yet");
 	}
 }
@@ -246,5 +246,5 @@
 
 	/*Checks in debugging mode*/
-	if(viscosity<=0) _error2_("Negative viscosity");
+	if(viscosity<=0) _error_("Negative viscosity");
 	_assert_(B>0);
 	_assert_(n>0);
@@ -317,5 +317,5 @@
 
 	/*Checks in debugging mode*/
-	if(viscosity3d<=0) _error2_("Negative viscosity");
+	if(viscosity3d<=0) _error_("Negative viscosity");
 	_assert_(B>0);
 	_assert_(n>0);
@@ -389,5 +389,5 @@
 
 	/*Checks in debugging mode*/
-	if(viscosity3d<=0) _error2_("Negative viscosity");
+	if(viscosity3d<=0) _error_("Negative viscosity");
 	_assert_(B>0);
 	_assert_(n>0);
@@ -550,7 +550,7 @@
 					return;
 				}
-				default: _error2_("element " << EnumToStringx(element->ObjectEnum()) << " not implemented yet");
-			}
-		default: _error2_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
+				default: _error_("element " << EnumToStringx(element->ObjectEnum()) << " not implemented yet");
+			}
+		default: _error_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
 	}
 }
@@ -608,7 +608,7 @@
 					return;
 				}
-				default: _error2_("element " << EnumToStringx(element->ObjectEnum()) << " not implemented yet");
-			}
-		default: _error2_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
+				default: _error_("element " << EnumToStringx(element->ObjectEnum()) << " not implemented yet");
+			}
+		default: _error_("type " << type << " (" << EnumToStringx(type) << ") not implemented yet");
 	}
 
@@ -750,5 +750,5 @@
 	#endif
 	else{
-		_error2_("Mesh type not supported yet!");
+		_error_("Mesh type not supported yet!");
 	}
 
Index: /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.h	(revision 13036)
@@ -62,8 +62,8 @@
 		void   InputUpdateFromConstant(bool constant, int name);
 		void   InputUpdateFromSolution(IssmDouble* solution);
-		void   InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("not implemented yet");};
+		void   InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
 		/*}}}*/
 		/*Material virtual functions resolution: {{{*/
-		void   InputDuplicate(int original_enum,int new_enum){_error2_("not implemented yet");};
+		void   InputDuplicate(int original_enum,int new_enum){_error_("not implemented yet");};
 		void   Configure(Elements* elements);
 		void   GetVectorFromInputs(Vector* vector,int input_enum){return;}
Index: /issm/trunk-jpl/src/c/classes/objects/Node.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Node.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Node.cpp	(revision 13036)
@@ -70,5 +70,5 @@
 
 	/*spc all nodes on water*/
-	if (!iomodel->Data(MaskVertexonwaterEnum)) _error2_("iomodel->nodeonwater is NULL");
+	if (!iomodel->Data(MaskVertexonwaterEnum)) _error_("iomodel->nodeonwater is NULL");
 	if (reCast<IssmBool>(iomodel->Data(MaskVertexonwaterEnum)[io_index])){
 		for(k=1;k<=gsize;k++){
@@ -114,5 +114,5 @@
 	/*Diagnostic Hutter*/
 	if (analysis_type==DiagnosticHutterAnalysisEnum){
-		if (!iomodel->Data(FlowequationVertexEquationEnum)) _error2_("iomodel->vertices_type is NULL");
+		if (!iomodel->Data(FlowequationVertexEquationEnum)) _error_("iomodel->vertices_type is NULL");
 		/*Constrain all nodes that are not Hutter*/
 		if (reCast<int>(iomodel->Data(FlowequationVertexEquationEnum)[io_index])!=HutterApproximationEnum){
@@ -230,5 +230,5 @@
 		return indexing.sdoflist[dofindex];
 	}
-	else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+	else _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 
 }
@@ -302,5 +302,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 _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 	}
 }
@@ -342,5 +342,5 @@
 			}
 		}
-		else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+		else _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 	}
 	else{
@@ -411,5 +411,5 @@
 			}
 		}
-		else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+		else _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 	}
 }
@@ -597,5 +597,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 _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 	}
 	else{
@@ -627,5 +627,5 @@
 			else numdofs=this->indexing.ssize;
 		}
-		else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+		else _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 	}
 	return numdofs;
@@ -834,5 +834,5 @@
 		}
 	}
-	else _error2_("VecMerge can only merge from the s or f-set onto the g-set!");
+	else _error_("VecMerge can only merge from the s or f-set onto the g-set!");
 
 	/*Free ressources:*/
@@ -880,5 +880,5 @@
 		}
 	}
-	else _error2_("VecReduce can only merge from the s or f-set onto the g-set!");
+	else _error_("VecReduce can only merge from the s or f-set onto the g-set!");
 
 	/*Free ressources:*/
@@ -927,5 +927,5 @@
 		dofcount+=this->indexing.ssize;
 	}
-	else _error2_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
+	else _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 
 
@@ -956,5 +956,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 _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 }
 /*}}}*/
@@ -972,5 +972,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 _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 
 }
@@ -991,5 +991,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 _error_("set of enum type " << EnumToStringx(setenum) << " not supported yet!");
 
 }
Index: /issm/trunk-jpl/src/c/classes/objects/Node.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Node.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Node.h	(revision 13036)
@@ -45,5 +45,5 @@
 		int   MyRank();
 		int   ObjectEnum();
-		Object* copy(){_error2_("Not implemented yet (similar to Elements)");};
+		Object* copy(){_error_("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){_error2_("Not implemented yet!");}
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error2_("Not implemented yet!");}
+		void  InputUpdateFromSolution(IssmDouble* solution){_error_("Not implemented yet!");}
+		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("Not implemented yet!");}
 		/*}}}*/
 		/*Node numerical routines {{{*/
Index: /issm/trunk-jpl/src/c/classes/objects/Options/Option.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/Option.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/Option.h	(revision 13036)
@@ -31,8 +31,8 @@
 		virtual void  DeepEcho();
 		virtual void  DeepEcho(char* indent);
-		int   Id(){_error2_("Not implemented yet");};
-		int   MyRank(){_error2_("Not implemented yet");};
+		int   Id(){_error_("Not implemented yet");};
+		int   MyRank(){_error_("Not implemented yet");};
 		int   ObjectEnum(){return OptionEnum;};
-		Object* copy(){_error2_("Not implemented yet");};
+		Object* copy(){_error_("Not implemented yet");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/objects/Options/OptionCell.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/OptionCell.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/OptionCell.h	(revision 13036)
@@ -28,8 +28,8 @@
 		void  DeepEcho();
 		void  DeepEcho(char* indent);
-		int   Id(){_error2_("Not implemented yet");};
-		int   MyRank(){_error2_("Not implemented yet");};
+		int   Id(){_error_("Not implemented yet");};
+		int   MyRank(){_error_("Not implemented yet");};
 		int   ObjectEnum(){return OptionCellEnum;};
-		Object* copy(){_error2_("Not implemented yet");};
+		Object* copy(){_error_("Not implemented yet");};
 		/*}}}*/
 
@@ -39,12 +39,12 @@
 		int   NDims();
 		int*  Size();
-		void  Get(int* pvalue){_error2_("An OptionCell object cannot return a int");};
-		void  Get(IssmDouble* pvalue){_error2_("An OptionCell object cannot return a IssmDouble");};
-		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(IssmDouble** pvalue,int *pnumel){ _error2_("An OptionCell object cannot return a IssmDouble vec");};
+		void  Get(int* pvalue){_error_("An OptionCell object cannot return a int");};
+		void  Get(IssmDouble* pvalue){_error_("An OptionCell object cannot return a IssmDouble");};
+		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(IssmDouble** pvalue,int *pnumel){ _error_("An OptionCell object cannot return a IssmDouble vec");};
 		void  Get(Options** pvalue);
-		void  Get(Options*** ppvalue,int *pnumel){ _error2_("An OptionCell object cannot return an Options DataSet vec");};
+		void  Get(Options*** ppvalue,int *pnumel){ _error_("An OptionCell object cannot return an Options DataSet vec");};
 
 };
Index: /issm/trunk-jpl/src/c/classes/objects/Options/OptionChar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/OptionChar.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/OptionChar.cpp	(revision 13036)
@@ -153,5 +153,5 @@
 	/*We should first check that the size is at least one*/
 	if(this->NumEl()<=0){
-		_error2_("option \"" << this->name << "\" is empty and cannot return a string vector");
+		_error_("option \"" << this->name << "\" is empty and cannot return a string vector");
 	}
 
Index: /issm/trunk-jpl/src/c/classes/objects/Options/OptionChar.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/OptionChar.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/OptionChar.h	(revision 13036)
@@ -28,8 +28,8 @@
 		void  DeepEcho();
 		void  DeepEcho(char* indent);
-		int   Id(){_error2_("Not implemented yet");};
-		int   MyRank(){_error2_("Not implemented yet");};
+		int   Id(){_error_("Not implemented yet");};
+		int   MyRank(){_error_("Not implemented yet");};
 		int   ObjectEnum(){return OptionCharEnum;};
-		Object* copy(){_error2_("Not implemented yet");};
+		Object* copy(){_error_("Not implemented yet");};
 		/*}}}*/
 
@@ -39,12 +39,12 @@
 		int   NDims();
 		int*  Size();
-		void  Get(int* pvalue){_error2_("An OptionChar object cannot return a int");};
-		void  Get(IssmDouble* pvalue){_error2_("An OptionChar object cannot return a IssmDouble");};
-		void  Get(bool* pvalue){  _error2_("An OptionChar object cannot return a bool");};
+		void  Get(int* pvalue){_error_("An OptionChar object cannot return a int");};
+		void  Get(IssmDouble* pvalue){_error_("An OptionChar object cannot return a IssmDouble");};
+		void  Get(bool* pvalue){  _error_("An OptionChar object cannot return a bool");};
 		void  Get(char** pvalue);
 		void  Get(char*** ppvalue,int *pnumel);
-		void  Get(IssmDouble** pvalue,int *pnumel){ _error2_("An OptionChar object cannot return a IssmDouble 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");};
+		void  Get(IssmDouble** pvalue,int *pnumel){ _error_("An OptionChar object cannot return a IssmDouble 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");};
 
 };
Index: /issm/trunk-jpl/src/c/classes/objects/Options/OptionDouble.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/OptionDouble.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/OptionDouble.cpp	(revision 13036)
@@ -125,5 +125,5 @@
 	/*We should first check that the size is one*/
 	if(this->NumEl()!=1){
-		_error2_("option \"" << this->name << "\" has " << this->NumEl() << " elements and cannot return a single int");
+		_error_("option \"" << this->name << "\" has " << this->NumEl() << " elements and cannot return a single int");
 	}
 
@@ -137,5 +137,5 @@
 	/*We should first check that the size is one*/
 	if(this->NumEl()!=1){
-		_error2_("option \"" << this->name << "\" has " << this->NumEl() << " elements and cannot return a single IssmDouble");
+		_error_("option \"" << this->name << "\" has " << this->NumEl() << " elements and cannot return a single IssmDouble");
 	}
 
@@ -149,5 +149,5 @@
 	/*We should first check that the size is at least one*/
 	if(this->NumEl()<=0){
-		_error2_("option \"" << this->name << "\" is empty and cannot return a IssmDouble vector");
+		_error_("option \"" << this->name << "\" is empty and cannot return a IssmDouble vector");
 	}
 
Index: /issm/trunk-jpl/src/c/classes/objects/Options/OptionDouble.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/OptionDouble.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/OptionDouble.h	(revision 13036)
@@ -28,8 +28,8 @@
 		void  DeepEcho();
 		void  DeepEcho(char* indent);
-		int   Id(){_error2_("Not implemented yet");};
-		int   MyRank(){_error2_("Not implemented yet");};
+		int   Id(){_error_("Not implemented yet");};
+		int   MyRank(){_error_("Not implemented yet");};
 		int   ObjectEnum(){return OptionDoubleEnum;};
-		Object* copy(){_error2_("Not implemented yet");};
+		Object* copy(){_error_("Not implemented yet");};
 		/*}}}*/
 
@@ -41,10 +41,10 @@
 		void  Get(int* pvalue);
 		void  Get(IssmDouble* pvalue);
-		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(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(IssmDouble** pvalue,int* pnumel);
-		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");};
+		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");};
 
 };
Index: /issm/trunk-jpl/src/c/classes/objects/Options/OptionLogical.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/OptionLogical.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/OptionLogical.cpp	(revision 13036)
@@ -125,5 +125,5 @@
 	/*We should first check that the size is one*/
 	if(this->NumEl()!=1){
-		_error2_("option \"" << this->name << "\" has " << this->NumEl() << " elements and cannot return a single bool");
+		_error_("option \"" << this->name << "\" has " << this->NumEl() << " elements and cannot return a single bool");
 	}
 
Index: /issm/trunk-jpl/src/c/classes/objects/Options/OptionLogical.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/OptionLogical.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/OptionLogical.h	(revision 13036)
@@ -28,8 +28,8 @@
 		void  DeepEcho();
 		void  DeepEcho(char* indent);
-		int   Id(){_error2_("Not implemented yet");};
-		int   MyRank(){_error2_("Not implemented yet");};
+		int   Id(){_error_("Not implemented yet");};
+		int   MyRank(){_error_("Not implemented yet");};
 		int   ObjectEnum(){return OptionLogicalEnum;};
-		Object* copy(){_error2_("Not implemented yet");};
+		Object* copy(){_error_("Not implemented yet");};
 		/*}}}*/
 
@@ -39,12 +39,12 @@
 		int   NDims();
 		int*  Size();
-		void  Get(int* pvalue){_error2_("An OptionLogical object cannot return a int");};
-		void  Get(IssmDouble* pvalue){_error2_("An OptionLogical object cannot return a IssmDouble");};
+		void  Get(int* pvalue){_error_("An OptionLogical object cannot return a int");};
+		void  Get(IssmDouble* pvalue){_error_("An OptionLogical object cannot return a IssmDouble");};
 		void  Get(bool* pvalue);
-		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(IssmDouble** pvalue,int *pnumel){ _error2_("An OptionLogical object cannot return a IssmDouble 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");};
+		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(IssmDouble** pvalue,int *pnumel){ _error_("An OptionLogical object cannot return a IssmDouble 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");};
 
 };
Index: /issm/trunk-jpl/src/c/classes/objects/Options/OptionStruct.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/OptionStruct.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/OptionStruct.cpp	(revision 13036)
@@ -132,5 +132,5 @@
 	/*We should first check that the size is one*/
 	if(this->NumEl()!=1){
-		_error2_("option \"" << this->name << "\" has " << this->NumEl() << " elements and cannot return a single options dataset");
+		_error_("option \"" << this->name << "\" has " << this->NumEl() << " elements and cannot return a single options dataset");
 	}
 
@@ -144,5 +144,5 @@
 	/*We should first check that the size is at least one*/
 	if(this->NumEl()<=0){
-		_error2_("option \"" << this->name << "\" is empty and cannot return an options dataset vector");
+		_error_("option \"" << this->name << "\" is empty and cannot return an options dataset vector");
 	}
 
Index: /issm/trunk-jpl/src/c/classes/objects/Options/OptionStruct.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/OptionStruct.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/OptionStruct.h	(revision 13036)
@@ -28,8 +28,8 @@
 		void  DeepEcho();
 		void  DeepEcho(char* indent);
-		int   Id(){_error2_("Not implemented yet");};
-		int   MyRank(){_error2_("Not implemented yet");};
+		int   Id(){_error_("Not implemented yet");};
+		int   MyRank(){_error_("Not implemented yet");};
 		int   ObjectEnum(){return OptionStructEnum;};
-		Object* copy(){_error2_("Not implemented yet");};
+		Object* copy(){_error_("Not implemented yet");};
 		/*}}}*/
 
@@ -39,10 +39,10 @@
 		int   NDims();
 		int*  Size();
-		void  Get(int* pvalue){_error2_("An OptionStruct object cannot return a int");};
-		void  Get(IssmDouble* pvalue){_error2_("An OptionStruct object cannot return a IssmDouble");};
-		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(IssmDouble** pvalue,int *pnumel){ _error2_("An OptionStruct object cannot return a IssmDouble vec");};
+		void  Get(int* pvalue){_error_("An OptionStruct object cannot return a int");};
+		void  Get(IssmDouble* pvalue){_error_("An OptionStruct object cannot return a IssmDouble");};
+		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(IssmDouble** pvalue,int *pnumel){ _error_("An OptionStruct object cannot return a IssmDouble vec");};
 		void  Get(Options** pvalue);
 		void  Get(Options*** ppvalue,int *pnumel);
Index: /issm/trunk-jpl/src/c/classes/objects/Options/OptionUtilities.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/OptionUtilities.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/OptionUtilities.cpp	(revision 13036)
@@ -27,5 +27,5 @@
 	/*check for index too large  */
 	for (i=0;i<ndims;i++) aprod*=size[i];
-	if (index >= aprod) _error2_("Index " << index << " exceeds number of elements " << aprod << ".");
+	if (index >= aprod) _error_("Index " << index << " exceeds number of elements " << aprod << ".");
 
 	/*calculate the dimensions (being careful of integer division)  */
@@ -46,5 +46,5 @@
 	/*check for any dimension too large  */
 	for (i=0;i<ndims;i++){
-		if (dims[i] >= size[i]) _error2_("Dimension " << i << " of " << dims[i] << " exceeds size of " << size[i] << ".");
+		if (dims[i] >= size[i]) _error_("Dimension " << i << " of " << dims[i] << " exceeds size of " << size[i] << ".");
 	}
 
@@ -65,5 +65,5 @@
 	/*check for index too large  */
 	for (i=0; i<ndims; i++) aprod*=size[i];
-	if (index >= aprod) _error2_("Index " << index << " exceeds number of elements " << aprod << ".");
+	if (index >= aprod) _error_("Index " << index << " exceeds number of elements " << aprod << ".");
 
 	/*calculate the dimensions (being careful of integer division)  */
@@ -84,5 +84,5 @@
 	/*check for any dimension too large  */
 	for (i=0; i<ndims; i++){
-		if (dims[i] >= size[i]) _error2_("Dimension " << i << " of " << dims[i] << " exceeds size of " << size[i] << ".");
+		if (dims[i] >= size[i]) _error_("Dimension " << i << " of " << dims[i] << " exceeds size of " << size[i] << ".");
 	}
 
Index: /issm/trunk-jpl/src/c/classes/objects/Params/BoolParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/BoolParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/BoolParam.h	(revision 13036)
@@ -43,31 +43,31 @@
 		int   InstanceEnum(){return enum_type;}
 		void  GetParameterValue(bool* pbool){*pbool=value;}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return an integer");}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return an array of integers");}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return an array of integers");}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return a matrix array");}
-		void  GetParameterValue(Vector** pvec){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return a Mat");}
-		void  GetParameterValue(FILE** pfid){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot return a FILE");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Param "<< EnumToStringx(enum_type) << ") cannot return a FILE");}
 
 		void  SetValue(bool boolean){this->value=boolean;}
-		void  SetValue(int integer){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold an int");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold an IssmPDouble");}
-		void  SetValue(char* string){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold a int array");}
-		void  SetValue(int* pintarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold a int array");}
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold a Mat");}
-		void  SetValue(FILE* fid){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Param "<< EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
+		void  SetValue(int integer){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold an int");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold an IssmPDouble");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << ") cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 		
Index: /issm/trunk-jpl/src/c/classes/objects/Params/DoubleMatArrayParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/DoubleMatArrayParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/DoubleMatArrayParam.h	(revision 13036)
@@ -45,31 +45,31 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return an integer");}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return an array of integers");}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return an array of integers");}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return a IssmDouble array");}
+		void  GetParameterValue(bool* pbool){_error_("Param "<< EnumToStringx(enum_type) << "cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << "cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << "cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << "cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << "cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << "cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << "cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << "cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Param "<< EnumToStringx(enum_type) << "cannot return a IssmDouble array");}
 		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims);
-		void  GetParameterValue(Vector** pvec){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return a Mat");}
-		void  GetParameterValue(FILE** pfid){_error2_("Param "<< EnumToStringx(enum_type) << "cannot return a FILE");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << "cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << "cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Param "<< EnumToStringx(enum_type) << "cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error2_("Param "<< EnumToStringx(enum_type) << "cannot hold a boolean");}
-		void  SetValue(int integer){_error2_("Param "<< EnumToStringx(enum_type) << "cannot hold an integer");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << "cannot hold a scalar");}
-		void  SetValue(char* string){_error2_("Param "<< EnumToStringx(enum_type) << "cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << "cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << "cannot hold a IssmDouble vec array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << "cannot hold a IssmDouble mat array");}
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << "cannot hold a int vec array");}
-		void  SetValue(int* intarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << "cannot hold a int mat array");}
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << "cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< 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(bool boolean){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold a boolean");}
+		void  SetValue(int integer){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold a scalar");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold a IssmDouble vec array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold a IssmDouble mat array");}
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold a int vec array");}
+		void  SetValue(int* intarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold a int mat array");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << "cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("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/classes/objects/Params/DoubleMatParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/DoubleMatParam.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/DoubleMatParam.cpp	(revision 13036)
@@ -109,5 +109,5 @@
 /*FUNCTION DoubleMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){{{*/
 void  DoubleMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){
-	_error2_("DoubleMat of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of int");
+	_error_("DoubleMat of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of int");
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/objects/Params/DoubleMatParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/DoubleMatParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/DoubleMatParam.h	(revision 13036)
@@ -44,32 +44,32 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(bool* pbool){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
 		void  GetParameterValue(int** pintarray,int* pM,int* pN);
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< 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){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
-		void  GetParameterValue(Vector** pvec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
-		void  GetParameterValue(FILE** pfid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
-		void  SetValue(int integer){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
-		void  SetValue(char* string){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble vec array");}
+		void  SetValue(bool boolean){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
+		void  SetValue(int integer){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble vec array");}
 		void  SetValue(IssmDouble* IssmDoublearray,int M,int N);
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int vec array");}
-		void  SetValue(int* intarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int mat array");};
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
-		void  SetValue(FILE* fid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int vec array");}
+		void  SetValue(int* intarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int mat array");};
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: /issm/trunk-jpl/src/c/classes/objects/Params/DoubleParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/DoubleParam.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/DoubleParam.cpp	(revision 13036)
@@ -82,30 +82,30 @@
 /*FUNCTION DoubleParam::GetParameterValue(int* pinteger){{{*/
 void DoubleParam::GetParameterValue(int* pinteger){
-	_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");
+	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");
 }
 /*}}}*/
 /*FUNCTION DoubleParam::GetParameterValue(bool* pbool){{{*/
 void DoubleParam::GetParameterValue(bool* pbool){
-	_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an bool");
+	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an bool");
 }
 /*}}}*/
 /*FUNCTION DoubleParam::GetParameterValue(int** pintarray,int* pM){{{*/
 void DoubleParam::GetParameterValue(int** pintarray,int* pM){
-	_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");
+	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");
 }
 /*}}}*/
 /*FUNCTION DoubleParam::GetParameterValue(int** pintarray,int* pM,int* pN){{{*/
 void DoubleParam::GetParameterValue(int** pintarray,int* pM,int* pN){
-	_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");
+	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");
 }
 /*}}}*/
 /*FUNCTION DoubleParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){{{*/
 void DoubleParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){
-	_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of IssmDouble");
+	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of IssmDouble");
 }
 /*}}}*/
 /*FUNCTION DoubleParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){{{*/
 void DoubleParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){
-	_error2_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of IssmDouble");
+	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of IssmDouble");
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/objects/Params/DoubleParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/DoubleParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/DoubleParam.h	(revision 13036)
@@ -48,27 +48,27 @@
 		void  GetParameterValue(int** pintarray,int* pM,int* pN);
 		void  GetParameterValue(IssmDouble* pIssmDouble){*pIssmDouble=value;}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< 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){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
-		void  GetParameterValue(Vector** pvec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
-		void  GetParameterValue(FILE** pfid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Param "<< 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){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
-		void  SetValue(int* pintarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
-		void  SetValue(FILE* fid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: /issm/trunk-jpl/src/c/classes/objects/Params/DoubleVecParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/DoubleVecParam.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/DoubleVecParam.cpp	(revision 13036)
@@ -124,5 +124,5 @@
 /*FUNCTION DoubleVecParam::GetParameterValue(int** pintarray,int* pM){{{*/
 void  DoubleVecParam::GetParameterValue(int** pintarray,int* pM){
-	_error2_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of int");
+	_error_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of int");
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/objects/Params/DoubleVecParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/DoubleVecParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/DoubleVecParam.h	(revision 13036)
@@ -43,32 +43,32 @@
 		/*Param virtual functions definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
+		void  GetParameterValue(bool* pbool){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
 		void  GetParameterValue(int** pintarray,int* pM);
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");};
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");};
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< 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){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
-		void  GetParameterValue(Vector** pvec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
-		void  GetParameterValue(FILE** pfid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
-		void  SetValue(int integer){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
-		void  SetValue(char* string){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
+		void  SetValue(bool boolean){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
+		void  SetValue(int integer){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
 		void  SetValue(IssmDouble* IssmDoublearray,int M);
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble mat array");}
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int mat array");};
-		void  SetValue(int* pintarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int mat array");}
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
-		void  SetValue(FILE* fid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble mat array");}
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int mat array");};
+		void  SetValue(int* pintarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int mat array");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 		
Index: /issm/trunk-jpl/src/c/classes/objects/Params/FileParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/FileParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/FileParam.h	(revision 13036)
@@ -42,32 +42,32 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){  _error2_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Param "<< 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_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(bool* pbool){  _error_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("File param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
 		void  GetParameterValue(FILE** pfid){*pfid=value;};
 
-		void  SetValue(bool boolean){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(int integer){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(char* string){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
-		void  SetValue(int* pintarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< 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  SetValue(bool boolean){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(int integer){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("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){_error_("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/classes/objects/Params/IntMatParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/IntMatParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/IntMatParam.h	(revision 13036)
@@ -44,32 +44,32 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(bool* pbool){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
 		void  GetParameterValue(int** pintarray,int* pM,int* pN);
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");};
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
-		void  GetParameterValue(Vector** pvec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
-		void  GetParameterValue(FILE** pfid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");};
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
-		void  SetValue(int integer){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
-		void  SetValue(char* string){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble vec array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble vec array");};
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int vec array");};
+		void  SetValue(bool boolean){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
+		void  SetValue(int integer){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble vec array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble vec array");};
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int vec array");};
 		void  SetValue(int* intarray,int M,int N);
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
-		void  SetValue(FILE* fid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: /issm/trunk-jpl/src/c/classes/objects/Params/IntParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/IntParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/IntParam.h	(revision 13036)
@@ -43,32 +43,32 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(bool* pbool){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
 		void  GetParameterValue(int* pinteger){*pinteger=value;}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
-		void  GetParameterValue(Vector** pvec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
-		void  GetParameterValue(FILE** pfid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a bool");}
+		void  SetValue(bool boolean){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a bool");}
 		void  SetValue(int integer){this->value=integer;}
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an int array");}
-		void  SetValue(int* intarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an int array");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an IssmDouble");}
-		void  SetValue(char* string){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
-		void  SetValue(FILE* fid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an int array");}
+		void  SetValue(int* intarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an int array");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an IssmDouble");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: /issm/trunk-jpl/src/c/classes/objects/Params/IntVecParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/IntVecParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/IntVecParam.h	(revision 13036)
@@ -44,32 +44,32 @@
 		/*Param virtual functions definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
+		void  GetParameterValue(bool* pbool){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
 		void  GetParameterValue(int** pintarray,int* pM);
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix");}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array (maybe in serial?)");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
-		void  GetParameterValue(Vector** pvec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
-		void  GetParameterValue(FILE** pfid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array (maybe in serial?)");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
-		void  SetValue(int integer){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
-		void  SetValue(char* string){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble mat array");}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble mat array");}
+		void  SetValue(bool boolean){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
+		void  SetValue(int integer){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble mat array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble mat array");}
 		void  SetValue(int* intarray,int M);
-		void  SetValue(int* pintarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int mat array");}
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
-		void  SetValue(FILE* fid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(int* pintarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int mat array");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 		
Index: /issm/trunk-jpl/src/c/classes/objects/Params/MatrixParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/MatrixParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/MatrixParam.h	(revision 13036)
@@ -43,32 +43,32 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
-		void  GetParameterValue(Vector** pvec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a vec");}
+		void  GetParameterValue(bool* pbool){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a vec");}
 		void  GetParameterValue(Matrix** poutput);
-		void  GetParameterValue(FILE** pfid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
+		void  GetParameterValue(FILE** pfid){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
-		void  SetValue(int integer){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
-		void  SetValue(char* string){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
-		void  SetValue(int* pintarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(bool boolean){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
+		void  SetValue(int integer){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
 		void  SetValue(Matrix* mat);
-		void  SetValue(FILE* fid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: /issm/trunk-jpl/src/c/classes/objects/Params/StringArrayParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/StringArrayParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/StringArrayParam.h	(revision 13036)
@@ -45,32 +45,32 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(bool* pbool){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
 		void  GetParameterValue(char*** pstringarray,int* pM);
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Param "<< 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_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
-		void  GetParameterValue(FILE** pfid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Vec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
-		void  SetValue(int integer){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
-		void  SetValue(char* string){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(bool boolean){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
+		void  SetValue(int integer){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
+		void  SetValue(char* string){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string");}
 		void  SetValue(char** stringarray,int M);
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
-		void  SetValue(int* pintarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
-		void  SetValue(FILE* fid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: /issm/trunk-jpl/src/c/classes/objects/Params/StringParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/StringParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/StringParam.h	(revision 13036)
@@ -43,32 +43,32 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(bool* pbool){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
 		void  GetParameterValue(char** pstring);
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
-		void  GetParameterValue(Vector** pvec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< 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  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
-		void  SetValue(int integer){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
-		void  SetValue(IssmDouble scalar){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
+		void  SetValue(bool boolean){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a boolean");}
+		void  SetValue(int integer){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a scalar");}
 		void  SetValue(char* string);
-		void  SetValue(char** stringarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(int* intarray,int M){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
-		void  SetValue(int* pintarray,int M,int N){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
-		void  SetValue(Vector* vec){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
-		void  SetValue(FILE* fid){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(char** stringarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a int array");}
+		void  SetValue(Vector* vec){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: /issm/trunk-jpl/src/c/classes/objects/Params/TransientParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/TransientParam.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/TransientParam.cpp	(revision 13036)
@@ -136,5 +136,5 @@
 		}
 	}
-	if(!found)_error2_("did not find time interval on which to interpolate values");
+	if(!found)_error_("did not find time interval on which to interpolate values");
 	*pdouble=output;
 }
Index: /issm/trunk-jpl/src/c/classes/objects/Params/TransientParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/TransientParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/TransientParam.h	(revision 13036)
@@ -44,32 +44,32 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return an integer");}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a array of integers");}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(bool* pbool){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a IssmDouble");}
 		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time);
-		void  GetParameterValue(char** pstring){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a matrix array");}
-		void  GetParameterValue(Vector** pvec){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a Vec");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a Mat");}
-		void  GetParameterValue(FILE** pfid){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot return a FILE");}
+		void  GetParameterValue(char** pstring){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a matrix array");}
+		void  GetParameterValue(Vector** pvec){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a Vec");}
+		void  GetParameterValue(Matrix** pmat){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(FILE** pfid){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot return a FILE");}
 
-		void  SetValue(bool boolean){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a boolean");}
-		void  SetValue(int integer){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold an integer");}
-		void  SetValue(IssmDouble scalar){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a scalar");}
-		void  SetValue(char* string){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a string");}
-		void  SetValue(char** stringarray,int M){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a string array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a IssmDouble vec array");}
-		void  SetValue(IssmDouble* IssmDoublearray,int M,int N){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
-		void  SetValue(int* intarray,int M){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a int vec array");}
-		void  SetValue(int* intarray,int M,int N){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a int mat array");};
-		void  SetValue(Vector* vec){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a Vec");}
-		void  SetValue(Matrix* mat){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a Mat");}
-		void  SetValue(FILE* fid){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a FILE");}
-		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error2_("Parameter " <<EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(bool boolean){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a boolean");}
+		void  SetValue(int integer){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a scalar");}
+		void  SetValue(char* string){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a IssmDouble vec array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M,int N){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a int vec array");}
+		void  SetValue(int* intarray,int M,int N){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a int mat array");};
+		void  SetValue(Vector* vec){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a Vec");}
+		void  SetValue(Matrix* mat){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: /issm/trunk-jpl/src/c/classes/objects/Params/VectorParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Params/VectorParam.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/classes/objects/Params/VectorParam.h	(revision 13036)
@@ -43,32 +43,32 @@
 		/*Param vritual function definitions: {{{*/
 		int   InstanceEnum(){return enum_type;}
-		void  GetParameterValue(bool* pbool){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
-		void  GetParameterValue(int* pinteger){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
-		void  GetParameterValue(int** pintarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
-		void  GetParameterValue(IssmDouble* pIssmDouble){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
-		void  GetParameterValue(char** pstring){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
-		void  GetParameterValue(char*** pstringarray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
-		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
-		void  GetParameterValue(Matrix** pmat){_error2_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
+		void  GetParameterValue(bool* pbool){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a bool");}
+		void  GetParameterValue(int* pinteger){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an integer");}
+		void  GetParameterValue(int** pintarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(int** pintarray,int* pM,int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return an array of integers");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble");}
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
+		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble** pIssmDoublearray,int* pM, int* pN){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble array");}
+		void  GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a matrix array");}
+		void  GetParameterValue(Matrix** pmat){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a Mat");}
 		void  GetParameterValue(Vector** poutput);
-		void  GetParameterValue(FILE** pfid){_error2_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
+		void  GetParameterValue(FILE** pfid){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return a FILE");}
 
-		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(bool boolean){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a boolean");}
+		void  SetValue(int integer){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an integer");}
+		void  SetValue(IssmDouble scalar){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a scalar");}
+		void  SetValue(char* string){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string");}
+		void  SetValue(char** stringarray,int M){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a string array");}
+		void  SetValue(IssmDouble* IssmDoublearray,int M){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(IssmDouble* pIssmDoublearray,int M,int N){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a IssmDouble array");}
+		void  SetValue(int* intarray,int M){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
+		void  SetValue(int* pintarray,int M,int N){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a int array");}
 		void  SetValue(Vector* vec);
-		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_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+		void  SetValue(Matrix* mat){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a Mat");}
+		void  SetValue(FILE* fid){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");}
+		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
 		void  UnitConversion(int direction_enum);
 
Index: /issm/trunk-jpl/src/c/include/macros.h
===================================================================
--- /issm/trunk-jpl/src/c/include/macros.h	(revision 13035)
+++ /issm/trunk-jpl/src/c/include/macros.h	(revision 13036)
@@ -26,10 +26,10 @@
 /*new Error exception macro*/
 #ifdef _INTEL_WIN_
-#define _error2_(StreamArgs)\
+#define _error_(StreamArgs)\
    do{std::ostringstream aLoNgAnDwEiRdLoCaLnAmeFoRtHiSmAcRoOnLy; \
    aLoNgAnDwEiRdLoCaLnAmeFoRtHiSmAcRoOnLy << StreamArgs << std::ends; \
    throw ErrorException(aLoNgAnDwEiRdLoCaLnAmeFoRtHiSmAcRoOnLy.str());}while(0)
 #else
-#define _error2_(StreamArgs)\
+#define _error_(StreamArgs)\
 	do{std::ostringstream aLoNgAnDwEiRdLoCaLnAmeFoRtHiSmAcRoOnLy; \
    aLoNgAnDwEiRdLoCaLnAmeFoRtHiSmAcRoOnLy << StreamArgs << std::ends; \
@@ -65,5 +65,5 @@
 #ifdef _ISSM_DEBUG_ 
 #define _assert_(statement)\
-  if (!(statement)) _error2_("Assertion \""<<#statement<<"\" failed, please report bug to "<<PACKAGE_BUGREPORT)
+  if (!(statement)) _error_("Assertion \""<<#statement<<"\" failed, please report bug to "<<PACKAGE_BUGREPORT)
 #else
 #define _assert_(ignore)\
Index: /issm/trunk-jpl/src/c/io/Disk/pfclose.cpp
===================================================================
--- /issm/trunk-jpl/src/c/io/Disk/pfclose.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/io/Disk/pfclose.cpp	(revision 13036)
@@ -18,4 +18,4 @@
 	extern int my_rank;
 	_assert_(fid);
-	if(fclose(fid)!=0)_error2_("could not close file " << filename);
+	if(fclose(fid)!=0)_error_("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 13035)
+++ /issm/trunk-jpl/src/c/io/Disk/pfopen.cpp	(revision 13036)
@@ -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) _error_("could not open file " << filename << " for binary reading or writing"); 
 
 	return fid;
Index: /issm/trunk-jpl/src/c/matlab/io/CheckNumMatlabArguments.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/CheckNumMatlabArguments.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/matlab/io/CheckNumMatlabArguments.cpp	(revision 13036)
@@ -22,9 +22,9 @@
 		/* special case: */
 		function();
-		_error2_("usage: see above");
+		_error_("usage: see above");
 	}
 	else if (nlhs!=NLHS || nrhs!=NRHS ) {
 		function(); 
-		_error2_("usage error.");
+		_error_("usage error.");
 	}
 	return 1;
Index: /issm/trunk-jpl/src/c/matlab/io/FetchMatlabData.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/FetchMatlabData.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/matlab/io/FetchMatlabData.cpp	(revision 13036)
@@ -48,5 +48,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 			
@@ -89,5 +89,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 			
@@ -134,5 +134,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 
@@ -176,5 +176,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 
@@ -238,5 +238,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 			
@@ -269,5 +269,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 
@@ -301,5 +301,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 
@@ -333,5 +333,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 
@@ -365,5 +365,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 
@@ -381,5 +381,5 @@
 	/*Ok, the string should be coming directly from the matlab workspace: */
 	if (!mxIsClass(dataref,"char")){
-		_error2_("input data_type is not a string!");
+		_error_("input data_type is not a string!");
 	}
 	else{
@@ -416,5 +416,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 			
@@ -434,5 +434,5 @@
 
 	if (!mxIsClass(dataref,"double")){
-		_error2_("input data_type is not a double!");
+		_error_("input data_type is not a double!");
 	}
 	else{
@@ -451,5 +451,5 @@
 
 	if (!mxIsClass(dataref,"double")){
-		_error2_("input data_type is not a scalar!");
+		_error_("input data_type is not a scalar!");
 	}
 	else{
@@ -468,10 +468,10 @@
 
 	if (mxIsClass(dataref,"logical")){
-		if(mxGetM(dataref)!=1) _error2_("input data is not of size 1x1");
-		if(mxGetN(dataref)!=1) _error2_("input data is not of size 1x1");
+		if(mxGetM(dataref)!=1) _error_("input data is not of size 1x1");
+		if(mxGetN(dataref)!=1) _error_("input data is not of size 1x1");
 		mxbool_ptr=mxGetLogicals(dataref);
 	}
 	else{
-		_error2_("input data_type is not a bool!");
+		_error_("input data_type is not a bool!");
 	}
 
@@ -495,5 +495,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 
@@ -519,5 +519,5 @@
 	else{
 		/*This is an error: we don't have the correct input!: */
-		_error2_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
+		_error_("Input parameter of class " << mxGetClassName(dataref) << " not supported yet");
 	}
 
@@ -620,8 +620,8 @@
 	/*Fetch all options*/
 	for (int i=istart; i<nrhs; i=i+2){
-		if (!mxIsClass(pdataref[i],"char")) _error2_("Argument " << i+1 << " must be name of option");
+		if (!mxIsClass(pdataref[i],"char")) _error_("Argument " << i+1 << " must be name of option");
 
 		FetchData(&name,pdataref[i]);
-		if(i+1 == nrhs) _error2_("Argument " << i+2 << " must exist and be value of option \"" << name << "\".");
+		if(i+1 == nrhs) _error_("Argument " << i+2 << " must exist and be value of option \"" << name << "\".");
 
 		option=(Option*)OptionParse(name,&pdataref[i+1]);
Index: /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToDoubleMatrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToDoubleMatrix.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/matlab/io/MatlabMatrixToDoubleMatrix.cpp	(revision 13036)
@@ -119,5 +119,5 @@
 	}
 	else{
-		_error2_("Matlab matrix type Not implemented yet");
+		_error_("Matlab matrix type Not implemented yet");
 	}
 
Index: /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToDoubleVector.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToDoubleVector.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/matlab/io/MatlabVectorToDoubleVector.cpp	(revision 13036)
@@ -46,5 +46,5 @@
 		
 		/*Check that input is actualy a vector*/
-		if (cols!=1) _error2_("input vector of size " << rows << "x" << cols << " should have only one column");
+		if (cols!=1) _error_("input vector of size " << rows << "x" << cols << " should have only one column");
 
 		nz=(int)((double)nnz/(double)rows);
@@ -77,5 +77,5 @@
 
 		/*Check that input is actualy a vector*/
-		if (cols!=1) _error2_("input vector of size " << rows << "x" << cols << " should have only one column");
+		if (cols!=1) _error_("input vector of size " << rows << "x" << cols << " should have only one column");
 
 		/*allocate and memcpy*/
Index: /issm/trunk-jpl/src/c/matlab/io/OptionParse.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/OptionParse.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/matlab/io/OptionParse.cpp	(revision 13036)
@@ -27,5 +27,5 @@
 	/*check and parse the value  */
 	if (!mxIsClass(prhs[0],"double")){
-		_error2_("Value of option \"" << odouble->name  << "\" must be class \"double\", not class \"" << mxGetClassName(prhs[0]) <<"\".");
+		_error_("Value of option \"" << odouble->name  << "\" must be class \"double\", not class \"" << mxGetClassName(prhs[0]) <<"\".");
 	}
 	FetchData(&odouble->values,&odouble->numel,&odouble->ndims,&odouble->size,prhs[0]);
@@ -45,5 +45,5 @@
 	/*check and parse the value  */
 	if (!mxIsClass(prhs[0],"logical")){
-		_error2_("Value of option \"" << ological->name  << "\" must be class \"logical\", not class \"" << mxGetClassName(prhs[0]) <<"\".");
+		_error_("Value of option \"" << ological->name  << "\" must be class \"logical\", not class \"" << mxGetClassName(prhs[0]) <<"\".");
 	}
 	FetchData(&ological->values,&ological->numel,&ological->ndims,&ological->size,prhs[0]);
@@ -63,5 +63,5 @@
 	/*check and parse the value  */
 	if (!mxIsClass(prhs[0],"char")){
-		_error2_("Value of option \"" << ochar->name  << "\" must be class \"char\", not class \"" << mxGetClassName(prhs[0]) <<"\".");
+		_error_("Value of option \"" << ochar->name  << "\" must be class \"char\", not class \"" << mxGetClassName(prhs[0]) <<"\".");
 	}
 	FetchData(&ochar->values,&ochar->numel,&ochar->ndims,&ochar->size,prhs[0]);
@@ -87,5 +87,5 @@
 	/*check and parse the value  */
 	if (!mxIsClass(prhs[0],"struct")){
-		_error2_("Value of option \"" << ostruct->name  << "\" must be class \"struct\", not class \"" << mxGetClassName(prhs[0]) <<"\".");
+		_error_("Value of option \"" << ostruct->name  << "\" must be class \"struct\", not class \"" << mxGetClassName(prhs[0]) <<"\".");
 	}
 	ostruct->numel=mxGetNumberOfElements(prhs[0]);
@@ -133,5 +133,5 @@
 	/*check and parse the value  */
 	if (!mxIsClass(prhs[0],"cell")){
-		_error2_("Value of option \"" << ocell->name  << "\" must be class \"cell\", not class \"" << mxGetClassName(prhs[0]) <<"\".");
+		_error_("Value of option \"" << ocell->name  << "\" must be class \"cell\", not class \"" << mxGetClassName(prhs[0]) <<"\".");
 	}
 
@@ -181,5 +181,5 @@
 			mxDestroyArray(lhs[0]);
 		}
-		else _error2_("Second argument value of option \""<< name <<"\" is of unrecognized class \""<< mxGetClassName(prhs[0]) <<"\".");
+		else _error_("Second argument value of option \""<< name <<"\" is of unrecognized class \""<< mxGetClassName(prhs[0]) <<"\".");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/DakotaResponsesx/DakotaResponsesx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/DakotaResponsesx/DakotaResponsesx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/DakotaResponsesx/DakotaResponsesx.cpp	(revision 13036)
@@ -86,5 +86,5 @@
 		}
 		else if (flag==NodalEnum){
-			_error2_("nodal response functions not supported yet!");
+			_error_("nodal response functions not supported yet!");
 
 			/*increment response_pointer :*/
@@ -104,5 +104,5 @@
 			}
 		}
-		else _error2_("flag type " << flag << " not supported yet for response analysis");
+		else _error_("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 13035)
+++ /issm/trunk-jpl/src/c/modules/Dakotax/DescriptorIndex.cpp	(revision 13036)
@@ -23,10 +23,10 @@
 	/*retrieve first token, separated by underscore: */
 	pch = strtok (descriptor,"_");
-	if(!pch)_error2_("descriptor " << descriptor << " is not correctly formatted!");
+	if(!pch)_error_("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)_error_("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)_error_("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)_error_("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)_error_("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)_error_("nodal descriptor " << descriptor << " is not correctly formatted!");
 		sscanf(pch,"%i",pindex);
 		return NodalEnum;
Index: /issm/trunk-jpl/src/c/modules/Dakotax/SpawnCoreParallel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Dakotax/SpawnCoreParallel.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Dakotax/SpawnCoreParallel.cpp	(revision 13036)
@@ -72,5 +72,5 @@
 	if(control_analysis)solutioncore=&control_core;
 	#else
-	_error2_("ISSM was not compiled with control capabilities, exiting!");
+	_error_("ISSM was not compiled with control capabilities, exiting!");
 	#endif
 
Index: /issm/trunk-jpl/src/c/modules/ElementResponsex/ElementResponsex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ElementResponsex/ElementResponsex.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ElementResponsex/ElementResponsex.cpp	(revision 13036)
@@ -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)_error_("could not find material with id" << index << " to compute ElementResponse");
 	#endif
 
Index: /issm/trunk-jpl/src/c/modules/Exp2Kmlx/Exp2Kmlx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Exp2Kmlx/Exp2Kmlx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Exp2Kmlx/Exp2Kmlx.cpp	(revision 13036)
@@ -55,5 +55,5 @@
 
 	if (!DomainOutlineRead(&nprof,&pnvert,&pprofx,&pprofy,&closed,filexp))
-		_error2_("Error reading exp file.");
+		_error_("Error reading exp file.");
 	_pprintLine_("Exp2Kmlx -- Reading " << nprof << " exp profiles from file \"" << filexp << "\".");
 //	for (i=0; i<nprof; i++)
Index: /issm/trunk-jpl/src/c/modules/GetSolutionFromInputsx/GetSolutionFromInputsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/GetSolutionFromInputsx/GetSolutionFromInputsx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/GetSolutionFromInputsx/GetSolutionFromInputsx.cpp	(revision 13036)
@@ -26,5 +26,5 @@
 	/*Get size of vector: */
 	gsize=nodes->NumberOfDofs(configuration_type,GsetEnum);
-	if (gsize==0) _error2_("Allocating a Vec of size 0 as gsize=0 for configuration: " << EnumToStringx(configuration_type));
+	if (gsize==0) _error_("Allocating a Vec of size 0 as gsize=0 for configuration: " << EnumToStringx(configuration_type));
 	
 	/*Initialize solution: */
Index: /issm/trunk-jpl/src/c/modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp	(revision 13036)
@@ -32,5 +32,5 @@
 	}
 	else{
-		_error2_("vector type: " << EnumToStringx(type) << " not supported yet!");
+		_error_("vector type: " << EnumToStringx(type) << " not supported yet!");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/Gradjx/Gradjx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Gradjx/Gradjx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Gradjx/Gradjx.cpp	(revision 13036)
@@ -54,6 +54,6 @@
 	/*Check that gradient is clean*/
 	norm_inf=gradient->Norm(NORM_INF);
-	if(norm_inf<=0)    _error2_("||∂J/∂α||∞ = 0    gradient norm is zero");
-	if(xIsNan<IssmDouble>(norm_inf))_error2_("||∂J/∂α||∞ = NaN  gradient norm is NaN");
+	if(norm_inf<=0)    _error_("||∂J/∂α||∞ = 0    gradient norm is zero");
+	if(xIsNan<IssmDouble>(norm_inf))_error_("||∂J/∂α||∞ = NaN  gradient norm is NaN");
 
 	/*Clean-up and assign output pointer*/
Index: /issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp	(revision 13036)
@@ -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) _error_(EnumToStringx(migration_style) << " not supported yet!");
 
 	if(migration_style==SoftMigrationEnum){
Index: /issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp	(revision 13036)
@@ -95,8 +95,8 @@
 		}
 		else if (strncmp(descriptor,"indexed_",8)==0){
-			_error2_("indexed variables not supported yet!");
+			_error_("indexed variables not supported yet!");
 		}
 		else if (strncmp(descriptor,"nodal_",8)==0){
-			_error2_("nodal variables not supported yet!");
+			_error_("nodal variables not supported yet!");
 		}
 		else{
Index: /issm/trunk-jpl/src/c/modules/InterpFromGridToMeshx/InterpFromGridToMeshx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/InterpFromGridToMeshx/InterpFromGridToMeshx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/InterpFromGridToMeshx/InterpFromGridToMeshx.cpp	(revision 13036)
@@ -37,11 +37,11 @@
 	/*Some checks on arguments: */
 	if ((M<2) || (N<2) || (nods<=0)){
-		_error2_("nothing to be done according to the dimensions of input matrices and vectors.");
+		_error_("nothing to be done according to the dimensions of input matrices and vectors.");
 	}
 	if (x_in[1]-x_in[0]<0){
-		_error2_("x coordinate vector should be increasing.\n   use Matlab's command x=flipud(x), also flip the data matrix data=fliplr(data)");
+		_error_("x coordinate vector should be increasing.\n   use Matlab's command x=flipud(x), also flip the data matrix data=fliplr(data)");
 	}
 	if (y_in[1]-y_in[0]<0){
-		_error2_("y coordinate vector should be increasing.\n   use Matlab's command y=flipud(y), also flip the data matrix data=flipud(data)");
+		_error_("y coordinate vector should be increasing.\n   use Matlab's command y=flipud(y), also flip the data matrix data=flipud(data)");
 	}
 
@@ -69,5 +69,5 @@
 	}
 	else{
-		_error2_("x and y vectors length should be 1 or 0 more than data number of rows.");
+		_error_("x and y vectors length should be 1 or 0 more than data number of rows.");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/InterpFromMesh2dx/InterpFromMesh2dx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/InterpFromMesh2dx/InterpFromMesh2dx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/InterpFromMesh2dx/InterpFromMesh2dx.cpp	(revision 13036)
@@ -40,5 +40,5 @@
 	/*some checks*/
 	if (nels_data<1 || nods_data<3 || nods_prime==0){
-		_error2_("nothing to be done according to the mesh given in input");
+		_error_("nothing to be done according to the mesh given in input");
 	}
 
@@ -54,9 +54,9 @@
 	}
 	else{
-		_error2_("length of vector data not supported yet. It should be of length (number of nodes) or (number of elements)!");
+		_error_("length of vector data not supported yet. It should be of length (number of nodes) or (number of elements)!");
 	}
 
 	if((numcontours) && (interpolation_type==2)){
-		_error2_("element interpolation_type with contours not supported yet!");
+		_error_("element interpolation_type with contours not supported yet!");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/InterpFromMeshToGridx/InterpFromMeshToGridx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/InterpFromMeshToGridx/InterpFromMeshToGridx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/InterpFromMeshToGridx/InterpFromMeshToGridx.cpp	(revision 13036)
@@ -30,5 +30,5 @@
 	/*some checks*/
 	if (nels<1 || nods<3 || nlines<1 || ncols<1 || xposting==0 || yposting==0){
-		_error2_("nothing to be done according to the mesh given in input");
+		_error_("nothing to be done according to the mesh given in input");
 	}
 
@@ -41,5 +41,5 @@
 	}
 	else{
-		_error2_("length of vector data not supported yet. It should be of length (number of nodes) or (number of elements)!");
+		_error_("length of vector data not supported yet. It should be of length (number of nodes) or (number of elements)!");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp	(revision 13036)
@@ -35,5 +35,5 @@
 	/*Checks*/
 	if (M_data!=nods_data && M_data!=nels_data){
-		_error2_("data provided should have either " << nods_data << " or " << nels_data << " lines (not " << M_data << ")");
+		_error_("data provided should have either " << nods_data << " or " << nels_data << " lines (not " << M_data << ")");
 	}
 
@@ -138,5 +138,5 @@
 			for (j=0;j<N_data;j++){
 				if (it<0 || it>=nels_data){
-					_error2_("Triangle number " << it << " not in [0 " << nels_data << "], report bug to developers");
+					_error_("Triangle number " << it << " not in [0 " << nels_data << "], report bug to developers");
 				}
 				data_interp[i*N_data+j]=data[N_data*it+j];
Index: /issm/trunk-jpl/src/c/modules/InterpFromMeshToMesh3dx/InterpFromMeshToMesh3dx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/InterpFromMeshToMesh3dx/InterpFromMeshToMesh3dx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/InterpFromMeshToMesh3dx/InterpFromMeshToMesh3dx.cpp	(revision 13036)
@@ -27,5 +27,5 @@
 	/*some checks*/
 	if (nels_data<1 || nods_data<6 || nods_prime==0){
-		_error2_("nothing to be done according to the mesh given in input");
+		_error_("nothing to be done according to the mesh given in input");
 	}
 
@@ -41,5 +41,5 @@
 	}
 	else{
-		_error2_("length of vector data not supported yet. It should be of length (number of nodes) or (number of elements)!");
+		_error_("length of vector data not supported yet. It should be of length (number of nodes) or (number of elements)!");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 13036)
@@ -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)_error_("expecting a IssmDouble vector for constraints with enum " << EnumToStringx(vector_enum));
+	if(vector_layout!=1)_error_("expecting a nodal vector for constraints with enum " << EnumToStringx(vector_enum));
 
 	/*Fetch vector:*/
@@ -99,5 +99,5 @@
 	}
 	else{
-		_error2_("Size of field " << EnumToStringx(vector_enum) << " not supported");
+		_error_("Size of field " << EnumToStringx(vector_enum) << " not supported");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/KMLMeshWritex/KMLMeshWritex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/KMLMeshWritex/KMLMeshWritex.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/KMLMeshWritex/KMLMeshWritex.cpp	(revision 13036)
@@ -133,5 +133,5 @@
 					}
 					else
-						_error2_("Nodal connectivity table needs more than specified " << mxepg << " columns.\n");
+						_error_("Nodal connectivity table needs more than specified " << mxepg << " columns.\n");
 				}
 				jpt++;
@@ -173,5 +173,5 @@
 
 		else
-			_error2_("Data matrix has incorrect number of " << mdata << " rows.\n");
+			_error_("Data matrix has incorrect number of " << mdata << " rows.\n");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/Kml2Expx/Kml2Expx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Kml2Expx/Kml2Expx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Kml2Expx/Kml2Expx.cpp	(revision 13036)
@@ -44,5 +44,5 @@
 	fidi=fopen(filkml,"r");
 	if (!(kobj=KMLFileReadx(fidi)))
-		_error2_("Error reading kml file.");
+		_error_("Error reading kml file.");
 	fclose(fidi);
 
Index: /issm/trunk-jpl/src/c/modules/Krigingx/Krigingx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Krigingx/Krigingx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Krigingx/Krigingx.cpp	(revision 13036)
@@ -138,5 +138,5 @@
 	}
 	else{
-		_error2_("output '" << output << "' not supported yet");
+		_error_("output '" << output << "' not supported yet");
 	}
 
@@ -305,5 +305,5 @@
 		else if(strcmp(model,"spherical")==0)   variogram = new SphericalVariogram(options);
 		else if(strcmp(model,"power")==0)       variogram = new PowerVariogram(options);
-		else _error2_("variogram " << model << " not supported yet (list of supported variogram: gaussian, exponential, spherical and power)");
+		else _error_("variogram " << model << " not supported yet (list of supported variogram: gaussian, exponential, spherical and power)");
 	}
 	else variogram = new GaussianVariogram(options);
Index: /issm/trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp	(revision 13036)
@@ -103,5 +103,5 @@
 	}
 	else{
-		_error2_("output '" << output << "' not supported yet");
+		_error_("output '" << output << "' not supported yet");
 	}
 
@@ -126,5 +126,5 @@
 		else if(strcmp(model,"spherical")==0)   variogram = new SphericalVariogram(options);
 		else if(strcmp(model,"power")==0)       variogram = new PowerVariogram(options);
-		else _error2_("variogram " << model << " not supported yet (list of supported variogram: gaussian, exponential, spherical and power)");
+		else _error_("variogram " << model << " not supported yet (list of supported variogram: gaussian, exponential, spherical and power)");
 	}
 	else variogram = new GaussianVariogram(options);
Index: /issm/trunk-jpl/src/c/modules/Ll2xyx/Ll2xyx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Ll2xyx/Ll2xyx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Ll2xyx/Ll2xyx.cpp	(revision 13036)
@@ -52,5 +52,5 @@
 	double  T,rho,sl,tc,mc;
 
-	if((sgn!=1) && (sgn!=-1)) _error2_("Sign should be either +1 or -1.\n");
+	if((sgn!=1) && (sgn!=-1)) _error_("Sign should be either +1 or -1.\n");
 
 	delta = central_meridian;
@@ -123,5 +123,5 @@
 		if(flag) _pprintLine_("Info: creating coordinates in polar stereographic (Std Latitude: 71S Meridian: 0).");
 	}
-	else _error2_("Sign should be either +1 or -1.\n");
+	else _error_("Sign should be either +1 or -1.\n");
 
 	return;
Index: /issm/trunk-jpl/src/c/modules/MeshPartitionx/MeshPartitionx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/MeshPartitionx/MeshPartitionx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/MeshPartitionx/MeshPartitionx.cpp	(revision 13036)
@@ -51,5 +51,5 @@
 			for (i=0;i<numberofnodes;i++)    npart[i]=0;
 		}
-		else _error2_("At least one processor is required");
+		else _error_("At least one processor is required");
 	}
 	else{
@@ -78,5 +78,5 @@
 			for (i=0;i<numberofnodes2d;i++)    npart2d[i]=0;
 		}
-		else _error2_("At least one processor is required");
+		else _error_("At least one processor is required");
 
 		/*Extrude epart2d to epart, using numlayers: */
Index: /issm/trunk-jpl/src/c/modules/MeshProfileIntersectionx/ElementSegment.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/MeshProfileIntersectionx/ElementSegment.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/MeshProfileIntersectionx/ElementSegment.cpp	(revision 13036)
@@ -38,5 +38,5 @@
 	if(    (edge1==IntersectEnum) && (edge2==IntersectEnum) && (edge3==IntersectEnum)   ){
 		/*This case is impossible: */
-		_error2_("error: a line cannot go through 3 different vertices!");
+		_error_("error: a line cannot go through 3 different vertices!");
 	}
 	else if(    ((edge1==IntersectEnum) && (edge2==IntersectEnum)) || ((edge2==IntersectEnum) && (edge3==IntersectEnum)) || ((edge3==IntersectEnum) && (edge1==IntersectEnum))   ){
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp	(revision 13036)
@@ -46,5 +46,5 @@
 
 	/*Check in 3d*/
-	if(stabilization==3 && dim==3) _error2_("DG 3d not implemented yet");
+	if(stabilization==3 && dim==3) _error_("DG 3d not implemented yet");
 
 	/*First fetch data: */
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 13036)
@@ -48,5 +48,5 @@
 			case FrictionCoefficientEnum: iomodel->FetchData(1,FrictionCoefficientEnum); break;
 			case MaterialsRheologyBbarEnum:    iomodel->FetchData(1,MaterialsRheologyBEnum); break;
-			default: _error2_("Control " << EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i]) << " not implemented yet");
+			default: _error_("Control " << EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i]) << " not implemented yet");
 		}
 	}
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateDataSets.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateDataSets.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateDataSets.cpp	(revision 13036)
@@ -124,5 +124,5 @@
 
 		default:
-			_error2_("analysis_type: " << EnumToStringx(analysis_type) << " not supported yet!");
+			_error_("analysis_type: " << EnumToStringx(analysis_type) << " not supported yet!");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp	(revision 13036)
@@ -153,5 +153,5 @@
 			/*Fetch the mass flux segments necessary to compute the mass fluxes.  Build a DoubleMatArrayParam object out of them: */ 
 			iomodel->FetchData(&array,&mdims_array,&ndims_array,&qmu_mass_flux_num_profiles,QmuMassFluxSegmentsEnum);
-			if(qmu_mass_flux_num_profiles==0)_error2_("qmu_mass_flux_num_profiles is 0, when MassFlux computations were requested!");
+			if(qmu_mass_flux_num_profiles==0)_error_("qmu_mass_flux_num_profiles is 0, when MassFlux computations were requested!");
 
 			/*Go through segments, and extract those that belong to this cpu: */
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 13036)
@@ -145,5 +145,5 @@
 
 					}
-					else _error2_("if vertices_type is MacAyealPattyn, you shoud have nodeonpattyn or nodeonmacayeal");
+					else _error_("if vertices_type is MacAyealPattyn, you shoud have nodeonpattyn or nodeonmacayeal");
 			}
 			/*Also add spcs of coupling: zero at the border pattyn/stokes for the appropriate dofs*/
@@ -185,5 +185,5 @@
 						}
 					}
-					else _error2_("if vertices_type is PattynStokes, you shoud have nodeonpattyn or nodeonstokes");
+					else _error_("if vertices_type is PattynStokes, you shoud have nodeonpattyn or nodeonstokes");
 			}
 			/*Also add spcs of coupling: zero at the border pattyn/stokes for the appropriate dofs*/
@@ -225,5 +225,5 @@
 						}
 					}
-					else _error2_("if vertices_type is MacAyealStokes, you shoud have nodeonmacayeal or nodeonstokes");
+					else _error_("if vertices_type is MacAyealStokes, you shoud have nodeonmacayeal or nodeonstokes");
 			}
 			/*Now add the regular spcs*/
@@ -318,5 +318,5 @@
 						count++;
 						break;
-					default: _error2_("Vertex approximation " << EnumToStringx((int)vertices_type[i]) << " not supported");
+					default: _error_("Vertex approximation " << EnumToStringx((int)vertices_type[i]) << " not supported");
 				}
 			}
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp	(revision 13036)
@@ -61,5 +61,5 @@
 			doftype[5]=StokesApproximationEnum;
 		}
-		else _error2_("Approximationtype " << reCast<int>(*vertices_type) << " (" << EnumToStringx(reCast<int>(*vertices_type)) << ") not implemented yet for DiagnosticHoriz");
+		else _error_("Approximationtype " << reCast<int>(*vertices_type) << " (" << EnumToStringx(reCast<int>(*vertices_type)) << ") not implemented yet for DiagnosticHoriz");
 	}
 	else if (analysis_type==DiagnosticVertAnalysisEnum){
@@ -90,5 +90,5 @@
 		numdofs=1;
 	}
-	else _error2_("analysis type: " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not implemented yet");
+	else _error_("analysis type: " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not implemented yet");
 
 	/*Now initialize the index*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp	(revision 13036)
@@ -106,5 +106,5 @@
 	}
 	else{
-		_error2_("Size of field " << EnumToStringx(ThermalSpctemperatureEnum) << " not supported");
+		_error_("Size of field " << EnumToStringx(ThermalSpctemperatureEnum) << " not supported");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 13036)
@@ -26,5 +26,5 @@
 
 	/*if 2d: Error*/
-	if (dim==2) _error2_("2d meshes not supported yet");
+	if (dim==2) _error_("2d meshes not supported yet");
 
 	/*Recover pointer: */
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/NodesPartitioning.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/NodesPartitioning.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/NodesPartitioning.cpp	(revision 13036)
@@ -103,5 +103,5 @@
 	}
 	else{
-		_error2_("not implemented yet");
+		_error_("not implemented yet");
 	}
 
@@ -111,5 +111,5 @@
 	iomodel->FetchData(&edges,&numberofedges,&cols,MeshEdgesEnum);
 	iomodel->FetchData(&elements,NULL,NULL,MeshElementsEnum);
-	if (cols!=4) _error2_("field edges should have 4 columns");
+	if (cols!=4) _error_("field edges should have 4 columns");
 
 	/*!All elements have been partitioned above, only create elements for this CPU: */
@@ -152,5 +152,5 @@
 			}
 			else{
-				_error2_("Problem in edges creation");
+				_error_("Problem in edges creation");
 			}
 		}
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 13036)
@@ -46,5 +46,5 @@
 
 	/*Check in 3d*/
-	if(stabilization==3 && dim==3) _error2_("DG 3d not implemented yet");
+	if(stabilization==3 && dim==3) _error_("DG 3d not implemented yet");
 
 	/*First fetch data: */
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 13036)
@@ -33,5 +33,5 @@
 
 	/*return if 2d mesh*/
-	if (dim==2) _error2_("2d meshes not supported yet");
+	if (dim==2) _error_("2d meshes not supported yet");
 
 	//create penalties for nodes: no node can have a temperature over the melting point
Index: /issm/trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp	(revision 13036)
@@ -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)_error_("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 13035)
+++ /issm/trunk-jpl/src/c/modules/NodeConnectivityx/NodeConnectivityx.cpp	(revision 13036)
@@ -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)_error_("max connectivity width reached (" << *(connectivity+width*i+maxels) << ")! increase width of connectivity table");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/ParsePetscOptionsx/ParsePetscOptionsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ParsePetscOptionsx/ParsePetscOptionsx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ParsePetscOptionsx/ParsePetscOptionsx.cpp	(revision 13036)
@@ -106,5 +106,5 @@
 		char* string=strings[i];
 		if(my_rank==0){
-			if(string==NULL) _error2_("PETSc options for analysis " << EnumToStringx(reCast<int>(analyses[i])) << " have been declared but were not found");
+			if(string==NULL) _error_("PETSc options for analysis " << EnumToStringx(reCast<int>(analyses[i])) << " have been declared but were not found");
 		}
 		if(my_rank==0)stringlength=(strlen(string)+1)*sizeof(char);
Index: /issm/trunk-jpl/src/c/modules/ResetConstraintsx/ResetConstraintsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ResetConstraintsx/ResetConstraintsx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/ResetConstraintsx/ResetConstraintsx.cpp	(revision 13036)
@@ -30,5 +30,5 @@
 	 * management routine, otherwise, skip : */
 	if (RiftIsPresent(loads,analysis_type)){
-		_error2_("rift constraints reset not supported yet!");
+		_error_("rift constraints reset not supported yet!");
 	}
 	else if(ThermalIsPresent(loads,analysis_type)){
Index: /issm/trunk-jpl/src/c/modules/Responsex/Responsex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Responsex/Responsex.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Responsex/Responsex.cpp	(revision 13036)
@@ -49,7 +49,7 @@
 		case VelEnum:ElementResponsex(responses, elements,nodes, vertices, loads, materials, parameters,VelEnum,process_units); break;
 		case FrictionCoefficientEnum:NodalValuex(responses, FrictionCoefficientEnum,elements,nodes, vertices, loads, materials, parameters,process_units); break;
-		default: _error2_("response descriptor \"" << response_descriptor << "\" not supported yet!"); break;
+		default: _error_("response descriptor \"" << response_descriptor << "\" not supported yet!"); break;
 		#else
-		default: _error2_("ISSM was not compiled with responses capabilities, exiting!");
+		default: _error_("ISSM was not compiled with responses capabilities, exiting!");
 		#endif
 	}
Index: /issm/trunk-jpl/src/c/modules/Shp2Kmlx/Shp2Kmlx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Shp2Kmlx/Shp2Kmlx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Shp2Kmlx/Shp2Kmlx.cpp	(revision 13036)
@@ -75,5 +75,5 @@
 
 	hSHP = SHPOpen( filshp, "rb" );
-	if (!hSHP) _error2_("Error opening shp/shx files.");
+	if (!hSHP) _error_("Error opening shp/shx files.");
 
 /*  read header and print out file bounds  */
Index: /issm/trunk-jpl/src/c/modules/Solverx/Solverx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Solverx/Solverx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Solverx/Solverx.cpp	(revision 13036)
@@ -44,5 +44,5 @@
 			break;}
 		default:
-			  _error2_("Matrix type: " << Kff->type << " not supported yet!");
+			  _error_("Matrix type: " << Kff->type << " not supported yet!");
 	}
 
Index: /issm/trunk-jpl/src/c/modules/Solverx/SolverxPetsc.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Solverx/SolverxPetsc.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Solverx/SolverxPetsc.cpp	(revision 13036)
@@ -96,5 +96,5 @@
 		#if _PETSC_MAJOR_ >=3
 			#ifndef _HAVE_MUMPS_
-			_error2_("requested MUMPS solver, which was not compiled into ISSM!\n");
+			_error_("requested MUMPS solver, which was not compiled into ISSM!\n");
 			#endif
 		#endif
@@ -120,5 +120,5 @@
 	if (solver_type==StokesSolverEnum){
 		/*Make indices out of doftypes: */
-		if(!df)_error2_("need doftypes for Stokes solver!\n");
+		if(!df)_error_("need doftypes for Stokes solver!\n");
 		DofTypesToIndexSet(&isv,&isp,df,StokesSolverEnum);
 
@@ -151,5 +151,5 @@
 	/*Check convergence*/
 	KSPGetIterationNumber(ksp,&iteration_number);
-	if (iteration_number<0) _error2_("Solver diverged at iteration number: " << -iteration_number);
+	if (iteration_number<0) _error_("Solver diverged at iteration number: " << -iteration_number);
 
 	/*Free resources:*/
Index: /issm/trunk-jpl/src/c/modules/Solverx/SolverxSeq.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Solverx/SolverxSeq.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Solverx/SolverxSeq.cpp	(revision 13036)
@@ -30,6 +30,6 @@
 	pf->GetSize(&N2);
 
-	if(N!=N2)_error2_("Right hand side vector of size " << N2 << ", when matrix is of size " << M << "-" << N << " !");
-	if(M!=N)_error2_("Stiffness matrix should be square!");
+	if(N!=N2)_error_("Right hand side vector of size " << N2 << ", when matrix is of size " << M << "-" << N << " !");
+	if(M!=N)_error_("Stiffness matrix should be square!");
 
 	SolverxSeq(&x,Kff->matrix,pf->vector,N);
@@ -40,5 +40,5 @@
 
 	#else
-		_error2_("GSL support not compiled in!");
+		_error_("GSL support not compiled in!");
 	#endif
 
Index: /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 13036)
@@ -488,4 +488,4 @@
    }
 	/*If we reach this point, the string provided has not been found*/
-	_error2_("Enum " << name << " not found");
+	_error_("Enum " << name << " not found");
 }
Index: /issm/trunk-jpl/src/c/modules/Xy2llx/Xy2llx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Xy2llx/Xy2llx.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/modules/Xy2llx/Xy2llx.cpp	(revision 13036)
@@ -53,5 +53,5 @@
 	double  sl,rho,cm,T,chi;
 
-	if((sgn!=1) && (sgn!=-1)) _error2_("Sign should be either +1 or -1.\n");
+	if((sgn!=1) && (sgn!=-1)) _error_("Sign should be either +1 or -1.\n");
 
 	delta = central_meridian;
@@ -131,5 +131,5 @@
 		if(flag) _pprintLine_("Warning: expecting coordinates in polar stereographic (Std Latitude: 71S Meridian: 0).");
 	}
-	else _error2_("Sign should be either +1 or -1.\n");
+	else _error_("Sign should be either +1 or -1.\n");
 
 	return;
Index: /issm/trunk-jpl/src/c/python/io/CheckNumPythonArguments.cpp
===================================================================
--- /issm/trunk-jpl/src/c/python/io/CheckNumPythonArguments.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/python/io/CheckNumPythonArguments.cpp	(revision 13036)
@@ -27,9 +27,9 @@
 	if (size==0){
 		function();
-		_error2_("usage: see above");
+		_error_("usage: see above");
 	}
 	else if (size!=NRHS ) {
 		function(); 
-		_error2_("usage error.");
+		_error_("usage error.");
 	}
 	return 1;
Index: /issm/trunk-jpl/src/c/python/io/FetchPythonData.cpp
===================================================================
--- /issm/trunk-jpl/src/c/python/io/FetchPythonData.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/python/io/FetchPythonData.cpp	(revision 13036)
@@ -48,5 +48,5 @@
 	
 	/*check this is indeed a subtype of long type: */
-	if(!PyBool_Check(py_boolean))_error2_("expecting a boolean in input!");
+	if(!PyBool_Check(py_boolean))_error_("expecting a boolean in input!");
 
 	/*extract boolean: */
@@ -69,5 +69,5 @@
 	/*retrive dimensions: */
 	ndim=PyArray_NDIM((const PyArrayObject*)py_matrix);
-	if(ndim!=2)_error2_("expecting an MxN matrix in input!");
+	if(ndim!=2)_error_("expecting an MxN matrix in input!");
 	dims=PyArray_DIMS((PyArrayObject*)py_matrix);
 	M=dims[0]; N=dims[1];
@@ -97,5 +97,5 @@
 	/*retrive dimensions: */
 	ndim=PyArray_NDIM((const PyArrayObject*)py_matrix);
-	if(ndim!=2)_error2_("expecting an MxN matrix in input!");
+	if(ndim!=2)_error_("expecting an MxN matrix in input!");
 	dims=PyArray_DIMS((PyArrayObject*)py_matrix);
 	M=dims[0]; N=dims[1];
@@ -125,5 +125,5 @@
 	/*retrive dimensions: */
 	ndim=PyArray_NDIM((const PyArrayObject*)py_vector);
-	if(ndim!=1)_error2_("expecting an Mx1 vector in input!");
+	if(ndim!=1)_error_("expecting an Mx1 vector in input!");
 	dims=PyArray_DIMS((PyArrayObject*)py_vector);
 	M=dims[0]; 
Index: /issm/trunk-jpl/src/c/shared/Alloc/alloc.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Alloc/alloc.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Alloc/alloc.cpp	(revision 13036)
@@ -31,9 +31,9 @@
 	void* memptr=NULL;
 
-	if(!size)_error2_("attempting to 0 size allocation!");
+	if(!size)_error_("attempting to 0 size allocation!");
 
 	/* Use the c library to do the allocation: */
 	memptr=malloc(size);
-	if(!memptr) _error2_("memory allocation failed!");
+	if(!memptr) _error_("memory allocation failed!");
 
 	return memptr;
@@ -44,9 +44,9 @@
 	void* memptr=NULL;
 	
-	if(!size)_error2_("attempting to 0 size allocation!");
+	if(!size)_error_("attempting to 0 size allocation!");
 
 	/* Use the c library to do the allocation: */
 	memptr=calloc(n,size);
-	if(!memptr) _error2_("memory allocation failed!");
+	if(!memptr) _error_("memory allocation failed!");
 
 	return memptr;
@@ -88,9 +88,9 @@
 	register void* value=NULL;
 	
-	if(!size)_error2_("attempting to realloc to zero");
+	if(!size)_error_("attempting to realloc to zero");
 	value = (void*)realloc(pv,size);
 
 	if (value == NULL) {
-		_error2_("virtual memory exhausted");
+		_error_("virtual memory exhausted");
 	}
 	return value;
Index: /issm/trunk-jpl/src/c/shared/Elements/CoordinateSystemTransform.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Elements/CoordinateSystemTransform.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Elements/CoordinateSystemTransform.cpp	(revision 13036)
@@ -22,5 +22,5 @@
 			case XYEnum:   numdofs+=2; break;
 			case XYZPEnum: numdofs+=4; break;
-			default: _error2_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
+			default: _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
 		}
 	}
@@ -67,5 +67,5 @@
 				break;
 			default:
-				_error2_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
+				_error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
 		}
 	}
Index: /issm/trunk-jpl/src/c/shared/Elements/TransformInvStiffnessMatrixCoord.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Elements/TransformInvStiffnessMatrixCoord.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Elements/TransformInvStiffnessMatrixCoord.cpp	(revision 13036)
@@ -31,5 +31,5 @@
 			case XYEnum:   numdofs+=2; break;
 			case XYZPEnum: numdofs+=4; break;
-			default: _error2_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
+			default: _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
 		}
 	}
Index: /issm/trunk-jpl/src/c/shared/Elements/TransformLoadVectorCoord.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Elements/TransformLoadVectorCoord.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Elements/TransformLoadVectorCoord.cpp	(revision 13036)
@@ -30,5 +30,5 @@
 			case XYEnum:   numdofs+=2; break;
 			case XYZPEnum: numdofs+=4; break;
-			default: _error2_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
+			default: _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
 		}
 	}
Index: /issm/trunk-jpl/src/c/shared/Elements/TransformSolutionCoord.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Elements/TransformSolutionCoord.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Elements/TransformSolutionCoord.cpp	(revision 13036)
@@ -31,5 +31,5 @@
 			case XYEnum:   numdofs+=2; break;
 			case XYZPEnum: numdofs+=4; break;
-			default: _error2_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
+			default: _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
 		}
 	}
Index: /issm/trunk-jpl/src/c/shared/Elements/TransformStiffnessMatrixCoord.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Elements/TransformStiffnessMatrixCoord.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Elements/TransformStiffnessMatrixCoord.cpp	(revision 13036)
@@ -31,5 +31,5 @@
 			case XYEnum:   numdofs+=2; break;
 			case XYZPEnum: numdofs+=4; break;
-			default: _error2_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
+			default: _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet");
 		}
 	}
Index: /issm/trunk-jpl/src/c/shared/Exp/DomainOutlineRead.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Exp/DomainOutlineRead.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Exp/DomainOutlineRead.cpp	(revision 13036)
@@ -39,5 +39,5 @@
 	/*open domain outline file for reading: */
 	if ((fid=fopen(domainname,"r"))==NULL){
-		_error2_("could not find domain file " << domainname); 
+		_error_("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 13035)
+++ /issm/trunk-jpl/src/c/shared/Exp/DomainOutlineWrite.cpp	(revision 13036)
@@ -23,5 +23,5 @@
 	/*open domain outline file for writing: */
 	if ((fid=fopen(domainname,"w"))==NULL){
-		_error2_("could not open domain file " << domainname); 
+		_error_("could not open domain file " << domainname); 
 		noerr=0; goto cleanupandreturn;
 	}
Index: /issm/trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp	(revision 13036)
@@ -36,5 +36,5 @@
 	if (!itrnb) {
 		if (nrowb != idimb) {
-			_error2_("Matrix A and B inner vectors not equal size.");
+			_error_("Matrix A and B inner vectors not equal size.");
 		}
 		idimc=ncolb;
@@ -42,5 +42,5 @@
 	else {
 		if (ncolb != idimb) {
-			_error2_("Matrix A and B inner vectors not equal size.");
+			_error_("Matrix A and B inner vectors not equal size.");
 		}
 		idimc=nrowb;
@@ -49,5 +49,5 @@
 	if (!itrnc) {
 		if (nrowc != idimc) {
-			_error2_("Matrix B and C inner vectors not equal size.");
+			_error_("Matrix B and C inner vectors not equal size.");
 		}
 		idimd=ncolc;
@@ -55,5 +55,5 @@
 	else {
 		if (ncolc != idimc) {
-			_error2_("Matrix B and C inner vectors not equal size.");
+			_error_("Matrix B and C inner vectors not equal size.");
 		}
 		idimd=nrowc;
@@ -124,5 +124,5 @@
 
 	if (ntrma != ntrmb) {
-		_error2_("Matrix A and B inner vectors not equal size");
+		_error_("Matrix A and B inner vectors not equal size");
 	    noerr=0;	
 		return noerr;
@@ -175,5 +175,5 @@
 
 	if (!b && nvec) {
-		_error2_("No right-hand side for nvec=" << nvec << ".");
+		_error_("No right-hand side for nvec=" << nvec << ".");
 		noerr=0;
 		return noerr;
@@ -214,5 +214,5 @@
 			xDelete<int>(pivrc2);
 			xDelete<int>(pindx);
-			_error2_("Pivot " << pivot << " less than machine epsilon");
+			_error_("Pivot " << pivot << " less than machine epsilon");
 			noerr=0;
 			return noerr;
@@ -349,5 +349,5 @@
 	/*Compute determinant*/
 	Matrix2x2Determinant(&det,A);
-	if (fabs(det) < DBL_EPSILON) _error2_("Determinant smaller that machine epsilon");
+	if (fabs(det) < DBL_EPSILON) _error_("Determinant smaller that machine epsilon");
 
 	/*Compute invert*/
@@ -374,5 +374,5 @@
 	/*Compute determinant*/
 	Matrix3x3Determinant(&det,A);
-	if (fabs(det) < DBL_EPSILON) _error2_("Determinant smaller that machine epsilon");
+	if (fabs(det) < DBL_EPSILON) _error_("Determinant smaller that machine epsilon");
 
 	/*Compute invert*/
Index: /issm/trunk-jpl/src/c/shared/Numerics/BrentSearch.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/BrentSearch.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Numerics/BrentSearch.cpp	(revision 13036)
@@ -44,5 +44,5 @@
 	iter=0;
 	fxmin = (*f)(xmin,optargs);
-	if (xIsNan<IssmDouble>(fxmin)) _error2_("Function evaluation returned NaN");
+	if (xIsNan<IssmDouble>(fxmin)) _error_("Function evaluation returned NaN");
 	cout<<setprecision(5);
 	if(VerboseControl()) _pprintLine_("");
@@ -51,5 +51,5 @@
 	if(VerboseControl()) _pprintLine_("           N/A    "<<setw(12)<<xmin<<"  "<<setw(12)<<fxmin<<"           N/A         boundary");
 	fxmax = (*f)(xmax,optargs);
-	if (xIsNan<IssmDouble>(fxmax)) _error2_("Function evaluation returned NaN");
+	if (xIsNan<IssmDouble>(fxmax)) _error_("Function evaluation returned NaN");
 	if(VerboseControl()) _pprintLine_("           N/A    "<<setw(12)<<xmax<<"  "<<setw(12)<<fxmax<<"           N/A         boundary");
 
@@ -75,5 +75,5 @@
 	/*2: call the function to be evaluated*/
 	fxbest = (*f)(x,optargs);
-	if(xIsNan<IssmDouble>(fxbest)) _error2_("Function evaluation returned NaN");
+	if(xIsNan<IssmDouble>(fxbest)) _error_("Function evaluation returned NaN");
 	iter=iter+1;
 
@@ -159,5 +159,5 @@
 		//evaluate function on x
 		fx = (*f)(x,optargs);
-		if(xIsNan<IssmDouble>(fx)) _error2_("Function evaluation returned NaN");
+		if(xIsNan<IssmDouble>(fx)) _error_("Function evaluation returned NaN");
 		iter=iter+1;
 
Index: /issm/trunk-jpl/src/c/shared/Numerics/GaussPoints.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/GaussPoints.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Numerics/GaussPoints.cpp	(revision 13036)
@@ -1670,5 +1670,5 @@
 		if (iter >= MAX_GAUS_ITER) {
 			xDelete<IssmPDouble>(work);
-			_error2_("Max iterations exceeded for l=" << MAX_GAUS_ITER);
+			_error_("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 13035)
+++ /issm/trunk-jpl/src/c/shared/Numerics/IsInputConverged.cpp	(revision 13036)
@@ -53,5 +53,5 @@
 		else eps=0;
 	}
-	else _error2_("convergence criterion " << EnumToStringx(criterion_enum) << " not supported yet!");
+	else _error_("convergence criterion " << EnumToStringx(criterion_enum) << " not supported yet!");
 
 	/*Assign output pointers:*/
Index: /issm/trunk-jpl/src/c/shared/Numerics/OptimalSearch.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/OptimalSearch.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Numerics/OptimalSearch.cpp	(revision 13036)
@@ -41,5 +41,5 @@
 	//get the value of the function at the first boundary
 	fx1= (*f)(x1,optargs);
-	if (xIsNan<IssmDouble>(fx1)) _error2_("Function evaluation returned NaN");
+	if (xIsNan<IssmDouble>(fx1)) _error_("Function evaluation returned NaN");
 	cout<<setprecision(5);
 	if(VerboseControl()) _pprintLine_("");
@@ -57,5 +57,5 @@
 		iter++;
 		fx2 = (*f)(x2,optargs);
-		if (xIsNan<IssmDouble>(fx2)) _error2_("Function evaluation returned NaN");
+		if (xIsNan<IssmDouble>(fx2)) _error_("Function evaluation returned NaN");
 		if(VerboseControl())
 		 _pprintLine_("         "<<setw(5)<<iter<<"    "<<setw(12)<<x2<<"  "<<setw(12)<<fx2<<"  "<<(fabs(x2-x1)>fabs(fx2-fx1)?fabs(fx2-fx1):fabs(x2-x1)));
Index: /issm/trunk-jpl/src/c/shared/Numerics/OptionsFromAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/OptionsFromAnalysis.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Numerics/OptionsFromAnalysis.cpp	(revision 13036)
@@ -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));
+		_error_("could find neither a default analysis  nor analysis " << EnumToStringx(analysis_type));
 	}
 
Index: /issm/trunk-jpl/src/c/shared/Numerics/UnitConversion.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/UnitConversion.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Numerics/UnitConversion.cpp	(revision 13036)
@@ -29,5 +29,5 @@
 	if(direction_enum==IuToExtEnum) for(i=0;i<numvalues;i++)values[i]=values[i]*scale; 
 	else if(direction_enum==ExtToIuEnum) for(i=0;i<numvalues;i++)values[i]=values[i]/scale; 
-	else _error2_("wrong direction for unit conversion, either IuToExtEnum or ExtToIuEnum. ");
+	else _error_("wrong direction for unit conversion, either IuToExtEnum or ExtToIuEnum. ");
 
 }
Index: /issm/trunk-jpl/src/c/shared/Numerics/Verbosity.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/Verbosity.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Numerics/Verbosity.cpp	(revision 13036)
@@ -34,5 +34,5 @@
 void SetVerbosityLevel(int level){
 
-	if(level<0) _error2_("vebosity level should be a positive integer (user provided " << level << ")");
+	if(level<0) _error_("vebosity level should be a positive integer (user provided " << level << ")");
 
 	verbositylevel = level;
Index: /issm/trunk-jpl/src/c/shared/String/DescriptorIndex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/String/DescriptorIndex.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/String/DescriptorIndex.cpp	(revision 13036)
@@ -23,10 +23,10 @@
 	/*retrieve first token, separated by underscore: */
 	pch = strtok (descriptor,"_");
-	if(!pch)_error2_("descriptor " << descriptor << " is not correctly formatted!");
+	if(!pch)_error_("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)_error_("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)_error_("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)_error_("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)_error_("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)_error_("nodal descriptor " << descriptor << " is not correctly formatted!");
 		sscanf(pch,"%i",pindex);
 		return NodalEnum;
Index: /issm/trunk-jpl/src/c/shared/Sys/ProfilingEnd.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Sys/ProfilingEnd.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Sys/ProfilingEnd.cpp	(revision 13036)
@@ -30,5 +30,5 @@
 	_pprintLine_("PETSc memory used   : " << memUse << "  Bytes");
 	#else
-		_error2_("Profiling not supported under this numerical toolkit");
+		_error_("Profiling not supported under this numerical toolkit");
 	#endif
 
Index: /issm/trunk-jpl/src/c/shared/Sys/ProfilingStart.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Sys/ProfilingStart.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Sys/ProfilingStart.cpp	(revision 13036)
@@ -23,5 +23,5 @@
 		PetscGetFlops(&Flops_start );
 	#else
-		_error2_("Profiling not supported under this numerical toolkit");
+		_error_("Profiling not supported under this numerical toolkit");
 	#endif
 
Index: /issm/trunk-jpl/src/c/shared/Threads/LaunchThread.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Threads/LaunchThread.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/shared/Threads/LaunchThread.cpp	(revision 13036)
@@ -44,10 +44,10 @@
 
 		if(pthread_create(threads+i,NULL,function,(void*)(handles+i))){
-			_error2_("pthread_create error");
+			_error_("pthread_create error");
 		}
 	}
 	for(i=0;i<num_threads;i++){
 		if(pthread_join(threads[i],(void**)&status)){
-			_error2_("pthread_join error");
+			_error_("pthread_join error");
 		}
 	}
Index: /issm/trunk-jpl/src/c/solutions/AdjointCorePointerFromSolutionEnum.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/AdjointCorePointerFromSolutionEnum.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/AdjointCorePointerFromSolutionEnum.cpp	(revision 13036)
@@ -35,5 +35,5 @@
 			break;
 		default:
-			_error2_("No adjoint has been implemented for solution " << EnumToStringx(solutiontype) << " yet");
+			_error_("No adjoint has been implemented for solution " << EnumToStringx(solutiontype) << " yet");
 			break;
 	}
Index: /issm/trunk-jpl/src/c/solutions/AnalysisConfiguration.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/AnalysisConfiguration.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/AnalysisConfiguration.cpp	(revision 13036)
@@ -110,5 +110,5 @@
 		
 		default:
-			_error2_("solution type: " << EnumToStringx(solutiontype) << " not supported yet!");
+			_error_("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 13035)
+++ /issm/trunk-jpl/src/c/solutions/CorePointerFromSolutionEnum.cpp	(revision 13036)
@@ -29,5 +29,5 @@
 			solutioncore=&diagnostic_core;
 			#else
-			_error2_("ISSM was not compiled with diagnostic capabilities. Exiting");
+			_error_("ISSM was not compiled with diagnostic capabilities. Exiting");
 			#endif
 			break;
@@ -36,5 +36,5 @@
 			solutioncore=&steadystate_core;
 			#else
-			_error2_("ISSM was not compiled with steady state capabilities. Exiting");
+			_error_("ISSM was not compiled with steady state capabilities. Exiting");
 			#endif
 			break;
@@ -43,5 +43,5 @@
 			solutioncore=&thermal_core;
 			#else
-			_error2_("ISSM was not compiled with thermal capabilities. Exiting");
+			_error_("ISSM was not compiled with thermal capabilities. Exiting");
 			#endif
 			break;
@@ -50,5 +50,5 @@
 			solutioncore=&enthalpy_core;
 			#else
-			_error2_("ISSM was not compiled with thermal capabilities. Exiting");
+			_error_("ISSM was not compiled with thermal capabilities. Exiting");
 			#endif
 			break;
@@ -57,5 +57,5 @@
 			solutioncore=&balancethickness_core;
 			#else
-			_error2_("ISSM was not compiled with balanced capabilities. Exiting");
+			_error_("ISSM was not compiled with balanced capabilities. Exiting");
 			#endif
 			break;
@@ -64,5 +64,5 @@
 			solutioncore=&hydrology_core;
 			#else
-			_error2_("ISSM was not compiled with hydrology capabilities. Exiting");
+			_error_("ISSM was not compiled with hydrology capabilities. Exiting");
 			#endif
 			break;
@@ -71,5 +71,5 @@
 			solutioncore=&surfaceslope_core;
 			#else
-			_error2_("ISSM was not compiled with slope capabilities. Exiting");
+			_error_("ISSM was not compiled with slope capabilities. Exiting");
 			#endif
 			break;
@@ -78,5 +78,5 @@
 			solutioncore=&bedslope_core;
 			#else
-			_error2_("ISSM was not compiled with slope capabilities. Exiting");
+			_error_("ISSM was not compiled with slope capabilities. Exiting");
 			#endif
 			break;
@@ -85,5 +85,5 @@
 			solutioncore=&transient_core;
 			#else
-			_error2_("ISSM was not compiled with transient capabilities. Exiting");
+			_error_("ISSM was not compiled with transient capabilities. Exiting");
 			#endif
 			break;
@@ -92,9 +92,9 @@
 			solutioncore=&prognostic_core;
 			#else
-			_error2_("ISSM was not compiled with prognostic capabilities. Exiting");
+			_error_("ISSM was not compiled with prognostic capabilities. Exiting");
 			#endif
 			break;
 		default:
-			_error2_("solution type: " << EnumToStringx(solutiontype) << " not supported yet!");
+			_error_("solution type: " << EnumToStringx(solutiontype) << " not supported yet!");
 			break;
 	}
Index: /issm/trunk-jpl/src/c/solutions/ProcessArguments.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/ProcessArguments.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/ProcessArguments.cpp	(revision 13036)
@@ -17,7 +17,7 @@
 	char *lockfilename   = NULL;
 
-	if(argc<2)_error2_("Usage error: no solution requested");
+	if(argc<2)_error_("Usage error: no solution requested");
 	*solution_type=StringToEnumx(argv[1]);
-	if(argc<3)_error2_("Usage error: missing model name");
+	if(argc<3)_error_("Usage error: missing model name");
 	modelname=argv[3];
 	binfilename    = xNew<char>(strlen(modelname)+strlen(".bin")   +1); sprintf(binfilename,   "%s%s",modelname,".bin");
Index: /issm/trunk-jpl/src/c/solutions/WriteLockFile.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/WriteLockFile.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/WriteLockFile.cpp	(revision 13036)
@@ -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) _error_("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) _error_("could not close lock file " << filename);
 	}
 
Index: /issm/trunk-jpl/src/c/solutions/controltao_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/controltao_core.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/controltao_core.cpp	(revision 13036)
@@ -42,5 +42,5 @@
 	PetscGetArgs(&argc,&args);
 	ierr = TaoInitialize(&argc,&args,(char*)0,"");
-	if(ierr) _error2_("Could not initialize Tao");
+	if(ierr) _error_("Could not initialize Tao");
 
 	/*Recover some parameters*/
@@ -185,5 +185,5 @@
 #else
 void controltao_core(FemModel* femmodel){
-	_error2_("TAO not installed or PETSc version not supported");
+	_error_("TAO not installed or PETSc version not supported");
 }
 #endif //_HAVE_TAO_ 
Index: /issm/trunk-jpl/src/c/solutions/convergence.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/convergence.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/convergence.cpp	(revision 13036)
@@ -72,5 +72,5 @@
 	if (xIsNan<IssmDouble>(res)){
 		_pprintLine_("norm nf = " << nF << "f and norm kuold = " << nKUoldF << "f");
-		_error2_("mechanical equilibrium convergence criterion is NaN!");
+		_error_("mechanical equilibrium convergence criterion is NaN!");
 	}
 
@@ -96,5 +96,5 @@
 		ndu=duf->Norm(NORM_TWO); nu=old_uf->Norm(NORM_TWO);
 
-		if (xIsNan<IssmDouble>(ndu) || xIsNan<IssmDouble>(nu)) _error2_("convergence criterion is NaN!");
+		if (xIsNan<IssmDouble>(ndu) || xIsNan<IssmDouble>(nu)) _error_("convergence criterion is NaN!");
 
 		//clean up
@@ -121,5 +121,5 @@
 		duf=old_uf->Duplicate(); old_uf->Copy(duf); duf->AYPX(uf,-1.0);
 		ndu=duf->Norm(NORM_TWO); nduinf=duf->Norm(NORM_INF);
-		if (xIsNan<IssmDouble>(ndu) || xIsNan<IssmDouble>(nu)) _error2_("convergence criterion is NaN!");
+		if (xIsNan<IssmDouble>(ndu) || xIsNan<IssmDouble>(nu)) _error_("convergence criterion is NaN!");
 
 		//clean up
Index: /issm/trunk-jpl/src/c/solutions/gradient_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/gradient_core.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/gradient_core.cpp	(revision 13036)
@@ -37,6 +37,6 @@
 	/*Check that gradient is clean*/
 	norm_inf=new_gradient->Norm(NORM_INF);
-	if(norm_inf<=0)    _error2_("||∂J/∂α||∞ = 0    gradient norm is zero");
-	if(xIsNan<IssmDouble>(norm_inf))_error2_("||∂J/∂α||∞ = NaN  gradient norm is NaN");
+	if(norm_inf<=0)    _error_("||∂J/∂α||∞ = 0    gradient norm is zero");
+	if(xIsNan<IssmDouble>(norm_inf))_error_("||∂J/∂α||∞ = NaN  gradient norm is NaN");
 
 	/*plug back into inputs: */
Index: /issm/trunk-jpl/src/c/solutions/issm.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/issm.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/issm.cpp	(revision 13036)
@@ -53,5 +53,5 @@
 	#ifdef _HAVE_PETSC_
 	ierr=PetscInitialize(&argc,&argv,(char*)0,"");  
-	if(ierr) _error2_("Could not initialize Petsc");
+	if(ierr) _error_("Could not initialize Petsc");
 	#else
 	#ifdef _HAVE_MPI_
@@ -128,5 +128,5 @@
 		Dakotax(femmodel);
 		#else
-		_error2_("ISSM was not compiled with dakota support, cannot carry out dakota analysis!");
+		_error_("ISSM was not compiled with dakota support, cannot carry out dakota analysis!");
 		#endif
 	}
@@ -138,5 +138,5 @@
 		 control_core(femmodel);
 		#else
-		_error2_("ISSM was not compiled with control support, cannot carry out dakota analysis!");
+		_error_("ISSM was not compiled with control support, cannot carry out dakota analysis!");
 		#endif
 	}
Index: /issm/trunk-jpl/src/c/solutions/kriging.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/kriging.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/kriging.cpp	(revision 13036)
@@ -40,5 +40,5 @@
 #ifdef _HAVE_PETSC_
 	int ierr=PetscInitialize(&argc,&argv,(char*)0,"");  
-	if(ierr) _error2_("Could not initialize Petsc");
+	if(ierr) _error_("Could not initialize Petsc");
 #else
 #ifdef _HAVE_MPI_
@@ -122,5 +122,5 @@
 	char *lockfilename   = NULL;
 
-	if(argc<2)_error2_("Usage error: missing model name");
+	if(argc<2)_error_("Usage error: missing model name");
 	modelname=argv[2];
 	binfilename    = xNew<char>((strlen(modelname)+strlen(".bin")   +1)); sprintf(binfilename,   "%s%s",modelname,".bin");
Index: /issm/trunk-jpl/src/c/solutions/objectivefunction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/objectivefunction.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/objectivefunction.cpp	(revision 13036)
@@ -49,5 +49,5 @@
 	}
 	else{
-		_error2_("Solution " << EnumToStringx(solution_type) << " not implemented yet");
+		_error_("Solution " << EnumToStringx(solution_type) << " not implemented yet");
 	}
 
@@ -66,5 +66,5 @@
 	}
 	else{
-		_error2_("Solution " << EnumToStringx(solution_type) << " not implemented yet");
+		_error_("Solution " << EnumToStringx(solution_type) << " not implemented yet");
 	}
 
Index: /issm/trunk-jpl/src/c/solutions/steadystate_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/steadystate_core.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/steadystate_core.cpp	(revision 13036)
@@ -52,5 +52,5 @@
 		}
 		#else
-		_error2_("ISSM was not compiled with thermal capabilities. Exiting");
+		_error_("ISSM was not compiled with thermal capabilities. Exiting");
 		#endif
 
Index: /issm/trunk-jpl/src/c/solutions/transient_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/transient_core.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/solutions/transient_core.cpp	(revision 13036)
@@ -104,5 +104,5 @@
 			}
 			#else
-			_error2_("ISSM was not compiled with thermal capabilities. Exiting");
+			_error_("ISSM was not compiled with thermal capabilities. Exiting");
 			#endif
 		}
@@ -113,5 +113,5 @@
 			diagnostic_core(femmodel);
 			#else
-			_error2_("ISSM was not compiled with diagnostic capabilities. Exiting");
+			_error_("ISSM was not compiled with diagnostic capabilities. Exiting");
 			#endif
 		}
@@ -129,5 +129,5 @@
 			GroundinglineMigrationx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
 			#else
-			_error2_("ISSM was not compiled with grounding line migration capabilities. Exiting");
+			_error_("ISSM was not compiled with grounding line migration capabilities. Exiting");
 			#endif
 		}
Index: /issm/trunk-jpl/src/c/toolkits/issm/SeqMat.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/issm/SeqMat.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/issm/SeqMat.cpp	(revision 13036)
@@ -119,5 +119,5 @@
 			break;
 		default:
-			_error2_("unknown norm !");
+			_error_("unknown norm !");
 			break;
 	}
@@ -150,6 +150,6 @@
 	AX->GetSize(&AXM);
 
-	if(M!=AXM)_error2_("A and AX should have the same number of rows!");
-	if(N!=XM)_error2_("A and X should have the same number of columns!");
+	if(M!=AXM)_error_("A and AX should have the same number of rows!");
+	if(N!=XM)_error_("A and X should have the same number of columns!");
 
 	for(i=0;i<M;i++){
@@ -197,5 +197,5 @@
 			break;
 		default:
-			_error2_("unknown insert mode!");
+			_error_("unknown insert mode!");
 			break;
 	}
Index: /issm/trunk-jpl/src/c/toolkits/issm/SeqVec.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/issm/SeqVec.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/issm/SeqVec.cpp	(revision 13036)
@@ -85,5 +85,5 @@
 			break;
 		default:
-			_error2_("unknown insert mode!");
+			_error_("unknown insert mode!");
 			break;
 	}
@@ -102,5 +102,5 @@
 			break;
 		default:
-			_error2_("unknown insert mode!");
+			_error_("unknown insert mode!");
 			break;
 	}
@@ -204,5 +204,5 @@
 			break;
 		default:
-			_error2_("unknown norm !");
+			_error_("unknown norm !");
 			break;
 	}
Index: /issm/trunk-jpl/src/c/toolkits/metis/patches/METIS_PartMeshNodalPatch.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/metis/patches/METIS_PartMeshNodalPatch.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/metis/patches/METIS_PartMeshNodalPatch.cpp	(revision 13036)
@@ -60,5 +60,5 @@
 
 	#else
-	_error2_("METIS version not supported yet");
+	_error_("METIS version not supported yet");
 	#endif
 }
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/ISSMToPetscInsertMode.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/ISSMToPetscInsertMode.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/ISSMToPetscInsertMode.cpp	(revision 13036)
@@ -30,5 +30,5 @@
 			break;
 		default: 
-			_error2_("unknown insert mode!");
+			_error_("unknown insert mode!");
 			break;
 	}
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/ISSMToPetscMatrixType.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/ISSMToPetscMatrixType.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/ISSMToPetscMatrixType.cpp	(revision 13036)
@@ -30,5 +30,5 @@
 			break;
 		default: 
-			_error2_("unknown matrix type !");
+			_error_("unknown matrix type !");
 			break;
 	}
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/ISSMToPetscNormMode.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/ISSMToPetscNormMode.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/ISSMToPetscNormMode.cpp	(revision 13036)
@@ -30,5 +30,5 @@
 			break;
 		default: 
-			_error2_("unknown norm !");
+			_error_("unknown norm !");
 			break;
 	}
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatInvert.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatInvert.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatInvert.cpp	(revision 13036)
@@ -29,5 +29,5 @@
 	/*Some checks: */
 	MatGetSize(matrix,&M,&N);
-	if(M!=N) _error2_("trying to invert a non square matrix!");
+	if(M!=N) _error_("trying to invert a non square matrix!");
 
 	/*Create identitiy matrix: */
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatPartition.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatPartition.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatPartition.cpp	(revision 13036)
@@ -62,5 +62,5 @@
 		}
 		else{
-			_error2_("MatType " << type << " not supported yet");
+			_error_("MatType " << type << " not supported yet");
 		}
 		/*Assemble*/
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsInsertMultipleString.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsInsertMultipleString.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsInsertMultipleString.cpp	(revision 13036)
@@ -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 '-'!");
+				_error_("Option " << first << " should be preceded by '-'!");
 			}
 			/*Reduce first to bare option value*/
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/VecMerge.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/VecMerge.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/VecMerge.cpp	(revision 13036)
@@ -35,5 +35,5 @@
 	/*If the dimension of the partitioning vector is not the same as that of vector B, we have a problem: */
 	if ( (row_partition_size !=MB) ){
-		_error2_("Dimensions of partitioning vector incompatible with dimensions of input vector\n");
+		_error_("Dimensions of partitioning vector incompatible with dimensions of input vector\n");
 	}
 
Index: /issm/trunk-jpl/src/c/toolkits/plapack/patches/PlapackInvertMatrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/plapack/patches/PlapackInvertMatrix.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/c/toolkits/plapack/patches/PlapackInvertMatrix.cpp	(revision 13036)
@@ -51,5 +51,5 @@
 
 	/*Some dimensions checks: */
-	if (mA!=nA) _error2_("trying to take the invert of a non-square matrix!");
+	if (mA!=nA) _error_("trying to take the invert of a non-square matrix!");
 
 	/* Set default Plapack parameters */
Index: /issm/trunk-jpl/src/modules/BamgConvertMesh/BamgConvertMesh.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/BamgConvertMesh/BamgConvertMesh.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/BamgConvertMesh/BamgConvertMesh.cpp	(revision 13036)
@@ -34,8 +34,8 @@
 
 	/*Check inputs*/
-	if(nels<0) _error2_("Number of elements must be positive, check index number of lines");
-	if(nods<0) _error2_("Number of nods must be positive, check x and y sizes");
-	if(test1!=3) _error2_("index should have 3 columns");
-	if(test2!=nods) _error2_("x and y do not have the same length");
+	if(nels<0) _error_("Number of elements must be positive, check index number of lines");
+	if(nods<0) _error_("Number of nods must be positive, check x and y sizes");
+	if(test1!=3) _error_("index should have 3 columns");
+	if(test2!=nods) _error_("x and y do not have the same length");
 
 	/* Run core computations: */
Index: /issm/trunk-jpl/src/modules/BamgTriangulate/BamgTriangulate.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/BamgTriangulate/BamgTriangulate.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/BamgTriangulate/BamgTriangulate.cpp	(revision 13036)
@@ -32,7 +32,7 @@
 
 	/*Check inputs*/
-	if(y_rows!=nods)         _error2_("x and y do not have the same length");
-	if(x_cols>1 || y_cols>1) _error2_("x and y should have only one column");
-	if(nods<3)               _error2_("At least 3 points are required");
+	if(y_rows!=nods)         _error_("x and y do not have the same length");
+	if(x_cols>1 || y_cols>1) _error_("x and y should have only one column");
+	if(nods<3)               _error_("At least 3 points are required");
 
 	/* Run core computations: */
Index: /issm/trunk-jpl/src/modules/Chaco/Chaco.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/Chaco/Chaco.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/Chaco/Chaco.cpp	(revision 13036)
@@ -42,5 +42,5 @@
 
 	#ifndef _HAVE_CHACO_ //only works if dakota library has been compiled in.
-	_error2_("Chaco not available! Cannot carry out Chaco partitioning!");
+	_error_("Chaco not available! Cannot carry out Chaco partitioning!");
 	#endif
 
Index: /issm/trunk-jpl/src/modules/ContourToMesh/ContourToMesh.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/ContourToMesh/ContourToMesh.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/ContourToMesh/ContourToMesh.cpp	(revision 13036)
@@ -47,5 +47,5 @@
 	if(nlhs!=1 && nlhs!=2){
 		ContourToMeshUsage();
-		_error2_("usage. See above");
+		_error_("usage. See above");
 	}
 	#endif
@@ -53,5 +53,5 @@
 	if(nrhs!=NRHS){
 		ContourToMeshUsage();
-		_error2_("usage. See above");
+		_error_("usage. See above");
 	}
 
@@ -82,5 +82,5 @@
 		WriteData(PLHS1,in_elem);
 	}
-	else _error2_("wrong interpolation type");
+	else _error_("wrong interpolation type");
 
 	/*end module: */
Index: /issm/trunk-jpl/src/modules/Exp2Kml/Exp2Kml.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/Exp2Kml/Exp2Kml.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/Exp2Kml/Exp2Kml.cpp	(revision 13036)
@@ -25,8 +25,8 @@
 	/*checks on arguments on the matlab side: */
 	if (nlhs > NLHS) {
-		Exp2KmlUsage(); _error2_("Exp2Kml usage error");
+		Exp2KmlUsage(); _error_("Exp2Kml usage error");
 	}
 	if (nrhs < NRHS) {
-		Exp2KmlUsage(); _error2_("Exp2Kml usage error");
+		Exp2KmlUsage(); _error_("Exp2Kml usage error");
 	}
 
@@ -49,7 +49,7 @@
 
 	/*some checks*/
-	if (sgn !=+1 && sgn !=-1) _error2_("Hemisphere sgn=" << sgn << " must be +1 (north) or -1 (south).");
-	if (fabs(cm)      > 180.) _error2_("Central meridian cm=" << cm << " must be between -180 (west) and +180 (east) degrees.");
-	if (sp < 0. || sp >  90.) _error2_("Standard parallel sp=" << sp << " must be between 0 and 90 degrees (in specified hemisphere).");
+	if (sgn !=+1 && sgn !=-1) _error_("Hemisphere sgn=" << sgn << " must be +1 (north) or -1 (south).");
+	if (fabs(cm)      > 180.) _error_("Central meridian cm=" << cm << " must be between -180 (west) and +180 (east) degrees.");
+	if (sp < 0. || sp >  90.) _error_("Standard parallel sp=" << sp << " must be between 0 and 90 degrees (in specified hemisphere).");
 
 	/* Run core computations: */
Index: /issm/trunk-jpl/src/modules/InternalFront/InternalFront.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/InternalFront/InternalFront.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/InternalFront/InternalFront.cpp	(revision 13036)
@@ -26,11 +26,11 @@
 	/*Fetch required fields*/
 	FetchData(&numberofelements,mxGetAssignedField(MODEL,0,"numberofelements"));
-	if(numberofelements<=0) _error2_("No elements found in the model");
+	if(numberofelements<=0) _error_("No elements found in the model");
 	FetchData(&elements,&M,&N,mxGetAssignedField(MODEL,0,"elements"));
-	if(M!=numberofelements || N!=3) _error2_("Field 'elements' should be of size [md.numberofelements 3]");
+	if(M!=numberofelements || N!=3) _error_("Field 'elements' should be of size [md.numberofelements 3]");
 	FetchData(&elementonwater,&M,&N,mxGetAssignedField(MODEL,0,"elementonwater"));
-	if(M!=numberofelements || N!=1) _error2_("Field 'elementonwater' should be of size [md.numberofelements 1]");
+	if(M!=numberofelements || N!=1) _error_("Field 'elementonwater' should be of size [md.numberofelements 1]");
 	FetchData(&elementconnectivity,&M,&N,mxGetAssignedField(MODEL,0,"elementconnectivity"));
-	if(M!=numberofelements || N!=3) _error2_("Field 'elementconnectivity' should be of size [md.numberofelements 3]");
+	if(M!=numberofelements || N!=3) _error_("Field 'elementconnectivity' should be of size [md.numberofelements 3]");
 
 	/*Allocate and initialize all variables*/
Index: /issm/trunk-jpl/src/modules/InterpFromGridToMesh/InterpFromGridToMesh.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/InterpFromGridToMesh/InterpFromGridToMesh.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/InterpFromGridToMesh/InterpFromGridToMesh.cpp	(revision 13036)
@@ -46,5 +46,5 @@
 	if((nlhs!=NLHS) || (nrhs!=6 && nrhs!=7)){
 		InterpFromGridToMeshUsage();
-		_error2_("usage. See above");
+		_error_("usage. See above");
 	}
 
Index: /issm/trunk-jpl/src/modules/InterpFromMesh2d/InterpFromMesh2d.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/InterpFromMesh2d/InterpFromMesh2d.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/InterpFromMesh2d/InterpFromMesh2d.cpp	(revision 13036)
@@ -69,9 +69,9 @@
 	if(nlhs!=NLHS){
 		InterpFromMesh2dUsage();
-		_error2_("InterpFromMeshToMesh2dUsage usage error");
+		_error_("InterpFromMeshToMesh2dUsage usage error");
 	}
 	if((nrhs!=6) && (nrhs!=7) && (nrhs!=8)){
 		InterpFromMesh2dUsage();
-		_error2_("InterpFromMeshToMesh2dUsage usage error");
+		_error_("InterpFromMeshToMesh2dUsage usage error");
 	}
 
@@ -131,8 +131,8 @@
 	/*some checks*/
 	if (x_data_rows!=y_data_rows){
-		_error2_("vectors x and y should have the same length!");
+		_error_("vectors x and y should have the same length!");
 	}
 	if (x_prime_rows!=y_prime_rows){
-		_error2_("vectors x_prime and y_prime should have the same length!");
+		_error_("vectors x_prime and y_prime should have the same length!");
 	}
 	
Index: /issm/trunk-jpl/src/modules/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp	(revision 13036)
@@ -28,5 +28,5 @@
 	if(nlhs!=NLHS){
 		InterpFromMeshToMesh2dUsage();
-		_error2_("InterpFromMeshToMesh2dUsage usage error");
+		_error_("InterpFromMeshToMesh2dUsage usage error");
 	}
 	#endif
@@ -34,14 +34,14 @@
 	if(nrhs<NRHS){
 		InterpFromMeshToMesh2dUsage();
-		_error2_("InterpFromMeshToMesh2dUsage usage error");
+		_error_("InterpFromMeshToMesh2dUsage usage error");
 	}
 
 	/*Fetch inputs: */
-	FetchData(&index,&nels_data,&test,INDEX); if(test!=3) _error2_("index should have 3 columns");
-	FetchData(&x_data,&nods_data,X);          if(nods_data<3) _error2_("there should be at least three points");
-	FetchData(&y_data,&test,Y);               if(test!=nods_data) _error2_("vectors x and y should have the same length");
-	FetchData(&data,&M_data,&N_data,DATA);    if(M_data*N_data<1) _error2_("data is empty");
-	FetchData(&x_interp,&N_interp,XINTERP);   if(N_interp<1) _error2_("no interpolation requested");
-	FetchData(&y_interp,&test,YINTERP);       if(test!=N_interp) _error2_("vectors x_interp and y_interp should have the same length");
+	FetchData(&index,&nels_data,&test,INDEX); if(test!=3) _error_("index should have 3 columns");
+	FetchData(&x_data,&nods_data,X);          if(nods_data<3) _error_("there should be at least three points");
+	FetchData(&y_data,&test,Y);               if(test!=nods_data) _error_("vectors x and y should have the same length");
+	FetchData(&data,&M_data,&N_data,DATA);    if(M_data*N_data<1) _error_("data is empty");
+	FetchData(&x_interp,&N_interp,XINTERP);   if(N_interp<1) _error_("no interpolation requested");
+	FetchData(&y_interp,&test,YINTERP);       if(test!=N_interp) _error_("vectors x_interp and y_interp should have the same length");
 	FetchData(&options,NRHS,nrhs,ARGUMENTS);
 
Index: /issm/trunk-jpl/src/modules/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp	(revision 13036)
@@ -76,8 +76,8 @@
 	/*some checks*/
 	if (x_data_rows!=y_data_rows || x_data_rows!=z_data_rows){
-		_error2_("vectors x, y and z should have the same length!");
+		_error_("vectors x, y and z should have the same length!");
 	}
 	if (x_prime_rows!=y_prime_rows || x_prime_rows!=z_prime_rows){
-		_error2_("vectors x_prime, y_prime and z_prime should have the same length!");
+		_error_("vectors x_prime, y_prime and z_prime should have the same length!");
 	}
 	/*get number of elements and number of nodes in the data*/
Index: /issm/trunk-jpl/src/modules/KMLFileRead/KMLFileRead.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/KMLFileRead/KMLFileRead.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/KMLFileRead/KMLFileRead.cpp	(revision 13036)
@@ -45,8 +45,8 @@
 	/*checks on arguments on the matlab side: */
 	if (nlhs > NLHS) {
-		KMLFileReadUsage(); _error2_("KMLFileRead usage error");
+		KMLFileReadUsage(); _error_("KMLFileRead usage error");
 	}
 	if (nrhs < NRHS) {
-		KMLFileReadUsage(); _error2_("KMLFileRead usage error");
+		KMLFileReadUsage(); _error_("KMLFileRead usage error");
 	}
 
Index: /issm/trunk-jpl/src/modules/KMLMeshWrite/KMLMeshWrite.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/KMLMeshWrite/KMLMeshWrite.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/KMLMeshWrite/KMLMeshWrite.cpp	(revision 13036)
@@ -40,8 +40,8 @@
 	/*checks on arguments on the matlab side: */
 	if (nlhs > NLHS) {
-		KMLMeshWriteUsage(); _error2_("KMLMeshWrite usage error");
+		KMLMeshWriteUsage(); _error_("KMLMeshWrite usage error");
 	}
 	if (nrhs < NRHS) {
-		KMLMeshWriteUsage(); _error2_("KMLMeshWrite usage error");
+		KMLMeshWriteUsage(); _error_("KMLMeshWrite usage error");
 	}
 
@@ -87,15 +87,15 @@
 
 	if (nodecon && (mncon != nnodes))
-	  {_error2_("Nodal connectivity table, if supplied, must be supplied for all nodes.");}
+	  {_error_("Nodal connectivity table, if supplied, must be supplied for all nodes.");}
 	else if (!nodecon)
 		mncon=nnodes;
 	if ((llat != nnodes) || (llng != nnodes) || (llat != llng))
-		_error2_("Latitude and longitude vectors must be supplied for all nodes.");
+		_error_("Latitude and longitude vectors must be supplied for all nodes.");
 	if (part && (lprt != nnodes))
-		_error2_("Partitioning vector, if supplied, must be supplied for all nodes.");
+		_error_("Partitioning vector, if supplied, must be supplied for all nodes.");
 	if (data && !((mdata == nnodes) || (mdata == melem)))
-		_error2_("Data matrix, if supplied, must be supplied for all nodes or all elements.");
+		_error_("Data matrix, if supplied, must be supplied for all nodes or all elements.");
 	if (cmap && (ncmap != 3))
-		_error2_("Colormap matrix, if supplied, must have three columns for rgb.");
+		_error_("Colormap matrix, if supplied, must have three columns for rgb.");
 	if (!strlen(filnam))
 		strcpy(filnam,"stdout");
Index: /issm/trunk-jpl/src/modules/KMLOverlay/KMLOverlay.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/KMLOverlay/KMLOverlay.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/KMLOverlay/KMLOverlay.cpp	(revision 13036)
@@ -31,8 +31,8 @@
 	/*checks on arguments on the matlab side: */
 	if(nlhs>NLHS){
-		KMLOverlayUsage(); _error2_("KMLOverlay usage error");
+		KMLOverlayUsage(); _error_("KMLOverlay usage error");
 	}
 	if(nrhs<NRHS){
-		KMLOverlayUsage(); _error2_("KMLOverlay usage error");
+		KMLOverlayUsage(); _error_("KMLOverlay usage error");
 	}
 
@@ -51,7 +51,7 @@
 
 	/*some checks*/
-	if (nlat !=2) _error2_("Latitudinal axes \"lataxis\" require two double values, not " << nlat << ".");
-	if (nlong!=2) _error2_("Longitudinal axes \"longaxis\" require two double values, not " << nlong << ".");
-	if (!nimages) _error2_("No image files provided.");
+	if (nlat !=2) _error_("Latitudinal axes \"lataxis\" require two double values, not " << nlat << ".");
+	if (nlong!=2) _error_("Longitudinal axes \"longaxis\" require two double values, not " << nlong << ".");
+	if (!nimages) _error_("No image files provided.");
 
 	if ((int)dzip){
@@ -90,5 +90,5 @@
 		if (verbose) _printLine_(czip);
 
-		if (mexEvalString(czip)) _error2_("Error zipping file \"" << filkmz << "\".");
+		if (mexEvalString(czip)) _error_("Error zipping file \"" << filkmz << "\".");
 		xfree((void**)&czip);
 		xfree((void**)&filkmz);
Index: /issm/trunk-jpl/src/modules/Kml2Exp/Kml2Exp.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/Kml2Exp/Kml2Exp.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/Kml2Exp/Kml2Exp.cpp	(revision 13036)
@@ -22,8 +22,8 @@
 	/*checks on arguments on the matlab side: */
 	if (nlhs > NLHS) {
-		Kml2ExpUsage(); _error2_("Kml2Exp usage error");
+		Kml2ExpUsage(); _error_("Kml2Exp usage error");
 	}
 	if (nrhs < NRHS) {
-		Kml2ExpUsage(); _error2_("Kml2Exp usage error");
+		Kml2ExpUsage(); _error_("Kml2Exp usage error");
 	}
 
@@ -43,7 +43,7 @@
 
 	/*some checks*/
-	if (sgn !=+1 && sgn!= -1) _error2_("Hemisphere sgn=" << sgn << " must be +1 (north) or -1 (south).");
-	if (fabs(cm)      > 180.) _error2_("Central meridian cm=" << cm << " must be between -180 (west) and +180 (east) degrees.");
-	if (sp < 0. || sp >  90.) _error2_("Standard parallel sp=" << sp << " must be between 0 and 90 degrees (in specified hemisphere).");
+	if (sgn !=+1 && sgn!= -1) _error_("Hemisphere sgn=" << sgn << " must be +1 (north) or -1 (south).");
+	if (fabs(cm)      > 180.) _error_("Central meridian cm=" << cm << " must be between -180 (west) and +180 (east) degrees.");
+	if (sp < 0. || sp >  90.) _error_("Standard parallel sp=" << sp << " must be between 0 and 90 degrees (in specified hemisphere).");
 
 	/* Run core computations: */
Index: /issm/trunk-jpl/src/modules/Kriging/Kriging.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/Kriging/Kriging.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/Kriging/Kriging.cpp	(revision 13036)
@@ -22,13 +22,13 @@
 	/*checks on arguments on the matlab side: */
 	if (nrhs<NRHS || nlhs>NLHS){
-		KrigingUsage(); _error2_("Kriging usage error");
+		KrigingUsage(); _error_("Kriging usage error");
 	}
 
 	/*Fetch inputs: */
 	FetchData(&x,&n_obs,X);
-	FetchData(&y,&N,Y);                       if(n_obs!=N) _error2_("x and y should have the same size");
-	FetchData(&observations,&N,OBSERVATIONS); if(n_obs!=N) _error2_("x and observations should have the same size");
+	FetchData(&y,&N,Y);                       if(n_obs!=N) _error_("x and y should have the same size");
+	FetchData(&observations,&N,OBSERVATIONS); if(n_obs!=N) _error_("x and observations should have the same size");
 	FetchData(&x_interp,&M_interp,&N_interp,XINTERP);
-	FetchData(&y_interp,&M,&N,YINTERP);       if(N!=N_interp || M!=M_interp) _error2_("x_interp and y_interp should have the same size");
+	FetchData(&y_interp,&M,&N,YINTERP);       if(N!=N_interp || M!=M_interp) _error_("x_interp and y_interp should have the same size");
 	FetchData(&options,NRHS,nrhs,prhs);
 
Index: /issm/trunk-jpl/src/modules/Ll2xy/Ll2xy.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/Ll2xy/Ll2xy.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/Ll2xy/Ll2xy.cpp	(revision 13036)
@@ -25,8 +25,8 @@
 	/*checks on arguments on the matlab side: */
 	if (nlhs > NLHS) {
-		Ll2xyUsage(); _error2_("Ll2xy usage error");
+		Ll2xyUsage(); _error_("Ll2xy usage error");
 	}
 	if (nrhs < NRHS) {
-		Ll2xyUsage(); _error2_("Ll2xy usage error");
+		Ll2xyUsage(); _error_("Ll2xy usage error");
 	}
 
@@ -47,9 +47,9 @@
 	/*some checks*/
 	if (verbose) _printLine_("Checking inputs:");
-	if (nlat != nlon){_error2_("Must have same number of lat[" << nlat << "] and lon[" << nlon << "] coordinates.");}
+	if (nlat != nlon){_error_("Must have same number of lat[" << nlat << "] and lon[" << nlon << "] coordinates.");}
 	else                ncoord=nlat;
-	if (sgn != +1 && sgn != -1) _error2_("Hemisphere sgn=" << sgn << " must be +1 (north) or -1 (south).");
-	if (fabs(cm)      > 180.) _error2_("Central meridian cm=" << cm << " must be between -180 (west) and +180 (east) degrees.");
-	if (sp < 0. || sp >  90.) _error2_("Standard parallel sp=" << sp << " must be between 0 and 90 degrees (in specified hemisphere).");
+	if (sgn != +1 && sgn != -1) _error_("Hemisphere sgn=" << sgn << " must be +1 (north) or -1 (south).");
+	if (fabs(cm)      > 180.) _error_("Central meridian cm=" << cm << " must be between -180 (west) and +180 (east) degrees.");
+	if (sp < 0. || sp >  90.) _error_("Standard parallel sp=" << sp << " must be between 0 and 90 degrees (in specified hemisphere).");
 
 	x=(double*)mxMalloc(ncoord*sizeof(double));
Index: /issm/trunk-jpl/src/modules/MeshProfileIntersection/MeshProfileIntersection.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/MeshProfileIntersection/MeshProfileIntersection.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/MeshProfileIntersection/MeshProfileIntersection.cpp	(revision 13036)
@@ -54,5 +54,5 @@
 	//index
 	FetchData(&double_index,&nel,&dummy,INDEX);
-	if(dummy!=3 && dummy!=6)_error2_("element triangulation should be of 3 or 6 column width!");
+	if(dummy!=3 && dummy!=6)_error_("element triangulation should be of 3 or 6 column width!");
 	index=(int*)xmalloc(nel*3*sizeof(int));
 	for(i=0;i<nel;i++){
Index: /issm/trunk-jpl/src/modules/Scotch/Scotch.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/Scotch/Scotch.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/Scotch/Scotch.cpp	(revision 13036)
@@ -25,5 +25,5 @@
 
 #ifndef _HAVE_SCOTCH_ //only works if scotch library has been compiled in.
-	_error2_("Scotch not available! Cannot carry out Scotch partitioning!");
+	_error_("Scotch not available! Cannot carry out Scotch partitioning!");
 	#else
 
Index: /issm/trunk-jpl/src/modules/Shp2Kml/Shp2Kml.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/Shp2Kml/Shp2Kml.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/Shp2Kml/Shp2Kml.cpp	(revision 13036)
@@ -25,5 +25,5 @@
 
 	#ifndef _HAVE_SHAPELIB_ //only works if shapelib library has been compiled in.
-	_error2_("Shapelib not available! Cannot carry out shp file translation!");
+	_error_("Shapelib not available! Cannot carry out shp file translation!");
 	#endif
 
@@ -33,8 +33,8 @@
 	/*checks on arguments on the matlab side: */
 	if (nlhs > NLHS) {
-		Shp2KmlUsage(); _error2_("Shp2Kml usage error");
+		Shp2KmlUsage(); _error_("Shp2Kml usage error");
 	}
 	if (nrhs < NRHS) {
-		Shp2KmlUsage(); _error2_("Shp2Kml usage error");
+		Shp2KmlUsage(); _error_("Shp2Kml usage error");
 	}
 
@@ -54,7 +54,7 @@
 
 	/*some checks*/
-	if (sgn < -1 || sgn > +1) _error2_("Hemisphere sgn=" << sgn << " must be +1 (north), -1 (south), or 0 (no translation).");
-	if (fabs(cm)      > 180.) _error2_("Central meridian cm=" << cm << " must be between -180 (west) and +180 (east) degrees.");
-	if (sp < 0. || sp >  90.) _error2_("Standard parallel sp=" << sp << " must be between 0 and 90 degrees (in specified hemisphere).");
+	if (sgn < -1 || sgn > +1) _error_("Hemisphere sgn=" << sgn << " must be +1 (north), -1 (south), or 0 (no translation).");
+	if (fabs(cm)      > 180.) _error_("Central meridian cm=" << cm << " must be between -180 (west) and +180 (east) degrees.");
+	if (sp < 0. || sp >  90.) _error_("Standard parallel sp=" << sp << " must be between 0 and 90 degrees (in specified hemisphere).");
 
 	/* Run core computations: */
Index: /issm/trunk-jpl/src/modules/TriMeshProcessRifts/TriMeshProcessRifts.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/TriMeshProcessRifts/TriMeshProcessRifts.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/TriMeshProcessRifts/TriMeshProcessRifts.cpp	(revision 13036)
@@ -66,5 +66,5 @@
 		mexPrintf("   %s format error.\n", __FUNCT__);
 		TriMeshProcessRiftsUsage();
-		_error2_("bad usage");
+		_error_("bad usage");
 	}
 
@@ -81,5 +81,5 @@
 	}
 	else{
-		_error2_("first argument should be the element list");
+		_error_("first argument should be the element list");
 	}
 
@@ -94,5 +94,5 @@
 	}
 	else{
-		_error2_("second argument should be the x corrdinate list");
+		_error_("second argument should be the x corrdinate list");
 	}
 
@@ -106,5 +106,5 @@
 	}
 	else{
-		_error2_("third argument should be the y corrdinate list");
+		_error_("third argument should be the y corrdinate list");
 	}	
 
@@ -121,5 +121,5 @@
 	}
 	else{
-		_error2_("fourth argument should be the segments list");
+		_error_("fourth argument should be the segments list");
 	}
 
@@ -133,5 +133,5 @@
 	}
 	else{
-		_error2_("fourth argument should be the segmentmarkers list");
+		_error_("fourth argument should be the segmentmarkers list");
 	}
 
Index: /issm/trunk-jpl/src/modules/Xy2ll/Xy2ll.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/Xy2ll/Xy2ll.cpp	(revision 13035)
+++ /issm/trunk-jpl/src/modules/Xy2ll/Xy2ll.cpp	(revision 13036)
@@ -24,8 +24,8 @@
 	/*checks on arguments on the matlab side: */
 	if (nlhs > NLHS) {
-		Xy2llUsage(); _error2_("Xy2ll usage error");
+		Xy2llUsage(); _error_("Xy2ll usage error");
 	}
 	if (nrhs < NRHS) {
-		Xy2llUsage(); _error2_("Xy2ll usage error");
+		Xy2llUsage(); _error_("Xy2ll usage error");
 	}
 
@@ -45,9 +45,9 @@
 
 	/*some checks*/
-	if   (nx != ny){_error2_("Must have same number of x[" << nx << "] and y[" << ny << "] coordinates.");}
+	if   (nx != ny){_error_("Must have same number of x[" << nx << "] and y[" << ny << "] coordinates.");}
 	else            ncoord=nx;
-	if (sgn != +1 && sgn != -1) _error2_("Hemisphere sgn=" << sgn << " must be +1 (north) or -1 (south).");
-	if (fabs(cm)      > 180.) _error2_("Central meridian cm=" << cm << " must be between -180 (west) and +180 (east) degrees.");
-	if (sp < 0. || sp >  90.) _error2_("Standard parallel sp=" << sp << " must be between 0 and 90 degrees (in specified hemisphere).");
+	if (sgn != +1 && sgn != -1) _error_("Hemisphere sgn=" << sgn << " must be +1 (north) or -1 (south).");
+	if (fabs(cm)      > 180.) _error_("Central meridian cm=" << cm << " must be between -180 (west) and +180 (east) degrees.");
+	if (sp < 0. || sp >  90.) _error_("Standard parallel sp=" << sp << " must be between 0 and 90 degrees (in specified hemisphere).");
 
 	lat=(double*)mxMalloc(ncoord*sizeof(double));
