Index: issm/trunk/src/c/DataSet/DataSet.cpp
===================================================================
--- issm/trunk/src/c/DataSet/DataSet.cpp	(revision 3566)
+++ issm/trunk/src/c/DataSet/DataSet.cpp	(revision 3567)
@@ -188,5 +188,5 @@
 		memcpy(&enum_type,marshalled_dataset,sizeof(int)); marshalled_dataset+=sizeof(int);
 
-		if(enum_type==NodeEnum()){
+		if(enum_type==NodeEnum){
 			Node* node=NULL;
 			node=new Node();
@@ -194,5 +194,5 @@
 			dataset->AddObject(node);
 		}
-		else if(enum_type==VertexEnum()){
+		else if(enum_type==VertexEnum){
 			Vertex* vertex=NULL;
 			vertex=new Vertex();
@@ -200,5 +200,5 @@
 			dataset->AddObject(vertex);
 		}
-		else if(enum_type==ParamEnum()){
+		else if(enum_type==ParamEnum){
 			Param* param=NULL;
 			param=new Param();
@@ -206,5 +206,5 @@
 			dataset->AddObject(param);
 		}
-		else if(enum_type==NumparEnum()){
+		else if(enum_type==NumparEnum){
 			Numpar* numpar=NULL;
 			numpar=new Numpar();
@@ -212,5 +212,5 @@
 			dataset->AddObject(numpar);
 		}
-		else if(enum_type==TriaEnum()){
+		else if(enum_type==TriaEnum){
 			Tria* tria=NULL;
 			tria=new Tria();
@@ -218,5 +218,5 @@
 			dataset->AddObject(tria);
 		}
-		else if(enum_type==SingEnum()){
+		else if(enum_type==SingEnum){
 			Sing* sing=NULL;
 			sing=new Sing();
@@ -224,5 +224,5 @@
 			dataset->AddObject(sing);
 		}
-		else if(enum_type==BeamEnum()){
+		else if(enum_type==BeamEnum){
 			Beam* beam=NULL;
 			beam=new Beam();
@@ -230,5 +230,5 @@
 			dataset->AddObject(beam);
 		}
-		else if(enum_type==PentaEnum()){
+		else if(enum_type==PentaEnum){
 			Penta* penta=NULL;
 			penta=new Penta();
@@ -236,5 +236,5 @@
 			dataset->AddObject(penta);
 		}
-		else if(enum_type==MaticeEnum()){
+		else if(enum_type==MaticeEnum){
 			Matice* matice=NULL;
 			matice=new Matice();
@@ -242,5 +242,5 @@
 			dataset->AddObject(matice);
 		}
-		else if(enum_type==MatparEnum()){
+		else if(enum_type==MatparEnum){
 			Matpar* matpar=NULL;
 			matpar=new Matpar();
@@ -248,5 +248,5 @@
 			dataset->AddObject(matpar);
 		}
-		else if(enum_type==SpcEnum()){
+		else if(enum_type==SpcEnum){
 			Spc* spc=NULL;
 			spc=new Spc();
@@ -254,5 +254,5 @@
 			dataset->AddObject(spc);
 		}
-		else if(enum_type==PengridEnum()){
+		else if(enum_type==PengridEnum){
 			Pengrid* pengrid=NULL;
 			pengrid=new Pengrid();
@@ -260,5 +260,5 @@
 			dataset->AddObject(pengrid);
 		}
-		else if(enum_type==PenpairEnum()){
+		else if(enum_type==PenpairEnum){
 			Penpair* penpair=NULL;
 			penpair=new Penpair();
@@ -266,5 +266,5 @@
 			dataset->AddObject(penpair);
 		}
-		else if(enum_type==IcefrontEnum()){
+		else if(enum_type==IcefrontEnum){
 			Icefront* icefront=NULL;
 			icefront=new Icefront();
@@ -272,5 +272,5 @@
 			dataset->AddObject(icefront);
 		}
-		else if(enum_type==NumericalfluxEnum()){
+		else if(enum_type==NumericalfluxEnum){
 			Numericalflux* numericalflux=NULL;
 			numericalflux=new Numericalflux();
@@ -278,5 +278,5 @@
 			dataset->AddObject(numericalflux);
 		}
-		else if(enum_type==RgbEnum()){
+		else if(enum_type==RgbEnum){
 			Rgb* rgb=NULL;
 			rgb=new Rgb();
@@ -284,5 +284,5 @@
 			dataset->AddObject(rgb);
 		}
-		else if(enum_type==RiftfrontEnum()){
+		else if(enum_type==RiftfrontEnum){
 			Riftfront* riftfront=NULL;
 			riftfront=new Riftfront();
@@ -385,5 +385,5 @@
 
 		/*Find param type objects: */
-		if((*object)->Enum()==ParamEnum()){
+		if((*object)->Enum()==ParamEnum){
 
 			/*Ok, this object is a parameter, recover it and ask which name it has: */
@@ -416,5 +416,5 @@
 
 		/*Find param type objects: */
-		if((*object)->Enum()==ParamEnum()){
+		if((*object)->Enum()==ParamEnum){
 
 			/*Ok, this object is a parameter, recover it and ask which name it has: */
@@ -446,5 +446,5 @@
 
 		/*Find param type objects: */
-		if((*object)->Enum()==ParamEnum()){
+		if((*object)->Enum()==ParamEnum){
 
 			/*Ok, this object is a parameter, recover it and ask which name it has: */
@@ -477,5 +477,5 @@
 
 		/*Find param type objects: */
-		if((*object)->Enum()==ParamEnum()){
+		if((*object)->Enum()==ParamEnum){
 
 			/*Ok, this object is a parameter, recover it and ask which name it has: */
@@ -509,5 +509,5 @@
 
 		/*Find param type objects: */
-		if((*object)->Enum()==ParamEnum()){
+		if((*object)->Enum()==ParamEnum){
 
 			/*Ok, this object is a parameter, recover it and ask which name it has: */
@@ -542,5 +542,5 @@
 
 		/*Find param type objects: */
-		if((*object)->Enum()==ParamEnum()){
+		if((*object)->Enum()==ParamEnum){
 
 			/*Ok, this object is a parameter, recover it and ask which name it has: */
@@ -573,5 +573,5 @@
 
 		/*Find param type objects: */
-		if((*object)->Enum()==ParamEnum()){
+		if((*object)->Enum()==ParamEnum){
 
 			/*Ok, this object is a parameter, recover it and ask which name it has: */
@@ -602,5 +602,5 @@
 
 		/*Find param type objects: */
-		if((*object)->Enum()==ParamEnum()){
+		if((*object)->Enum()==ParamEnum){
 
 			/*Ok, this object is a parameter, recover it and ask which name it has: */
@@ -630,5 +630,5 @@
 
 		/*Find param type objects: */
-		if((*object)->Enum()==ResultEnum()){
+		if((*object)->Enum()==ResultEnum){
 
 			/*Ok, this object is a result,recover it and ask which name it has: */
@@ -660,5 +660,5 @@
 
 		/*Find param type objects: */
-		if((*object)->Enum()==ResultEnum()){
+		if((*object)->Enum()==ResultEnum){
 
 			/*Ok, this object is a result, recover it and ask which name it has: */
@@ -678,5 +678,5 @@
 }
 /*}}}*/
-/*FUNCTION DataSet::GetEnum(){{{1*/
+/*FUNCTION DataSet::GetEnum{{{1*/
 int  DataSet::GetEnum(){
 	return enum_type;
@@ -861,9 +861,9 @@
 		}
 
-		if((*object)->Enum()==NodeEnum()){
+		if((*object)->Enum()==NodeEnum){
 			node=(Node*)(*object);
 			node->Configure(nodes,vertices);
 		}
-		if((*object)->Enum()==NumparEnum()){
+		if((*object)->Enum()==NumparEnum){
 			numpar=(Numpar*)(*object);
 			numpar->Configure(parameters);
@@ -1080,5 +1080,5 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 
-		if((*object)->Enum()==NodeEnum()){
+		if((*object)->Enum()==NodeEnum){
 			node=(Node*)(*object);
 			node->FieldAverageOntoVertices(fieldsum,connectivity,field);
@@ -1097,5 +1097,5 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 
-		if((*object)->Enum()==NodeEnum()){
+		if((*object)->Enum()==NodeEnum){
 
 			node=(Node*)(*object);
@@ -1115,5 +1115,5 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 
-		if((*object)->Enum()==PentaEnum()){
+		if((*object)->Enum()==PentaEnum){
 
 			penta=(Penta*)(*object);
@@ -1121,5 +1121,5 @@
 
 		}
-		if((*object)->Enum()==NodeEnum()){
+		if((*object)->Enum()==NodeEnum){
 
 			node=(Node*)(*object);
@@ -1193,5 +1193,5 @@
 
 		/*Check this is a single point constraint (spc): */
-		if((*object)->Enum()==NodeEnum()){
+		if((*object)->Enum()==NodeEnum){
 
 			node=(Node*)(*object);
@@ -1250,5 +1250,5 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 
-		if((*object)->Enum()==PengridEnum()){
+		if((*object)->Enum()==PengridEnum){
 			found=1;
 			break;
@@ -1282,5 +1282,5 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 		
-		if((*object)->Enum()==PengridEnum()){
+		if((*object)->Enum()==PengridEnum){
 
 			pengrid=(Pengrid*)(*object);
@@ -1343,5 +1343,5 @@
 
 		/*Check this is a node: */
-		if((*object)->Enum()==NodeEnum()){
+		if((*object)->Enum()==NodeEnum){
 
 			node=(Node*)(*object);
@@ -1372,5 +1372,5 @@
 
 		/*Check this is a single point constraint (spc): */
-		if((*object)->Enum()==RgbEnum()){ //we assume uniqueness of all Rgbs, no error checking here.
+		if((*object)->Enum()==RgbEnum){ //we assume uniqueness of all Rgbs, no error checking here.
 
 			count++;
@@ -1390,5 +1390,5 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 
-		if((*object)->Enum()==RiftfrontEnum()){
+		if((*object)->Enum()==RiftfrontEnum){
 
 			riftfront=(Riftfront*)(*object);
@@ -1448,5 +1448,5 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 
-		if((*object)->Enum()==PenpairEnum()){
+		if((*object)->Enum()==PenpairEnum){
 
 			penpair=(Penpair*)(*object);
@@ -1484,5 +1484,5 @@
 
 		/*Check this is a single point constraint (spc): */
-		if((*object)->Enum()==RgbEnum()){ //we assume uniqueness of all Rgbs, no error checking here.
+		if((*object)->Enum()==RgbEnum){ //we assume uniqueness of all Rgbs, no error checking here.
 
 			/*we found an rgb, increment counter, so that row index for Rmg is up to date: */
@@ -1545,5 +1545,5 @@
 
 		/*Check this is a single point constraint (spc): */
-		if((*object)->Enum()==SpcEnum()){
+		if((*object)->Enum()==SpcEnum){
 
 			spc=(Spc*)(*object);
@@ -1619,5 +1619,5 @@
 			material->UpdateFromInputs(inputs);
 		}
-		if((*object)->Enum()==NodeEnum()){
+		if((*object)->Enum()==NodeEnum){
 			node=(Node*)(*object);
 			node->UpdateFromInputs(inputs);
@@ -1635,5 +1635,5 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 
-		if((*object)->Enum()==VertexEnum()){
+		if((*object)->Enum()==VertexEnum){
 
 			vertex=(Vertex*)(*object);
Index: issm/trunk/src/c/EnumDefinitions/EnumDefinitions.cpp
===================================================================
--- issm/trunk/src/c/EnumDefinitions/EnumDefinitions.cpp	(revision 3566)
+++ issm/trunk/src/c/EnumDefinitions/EnumDefinitions.cpp	(revision 3567)
@@ -6,129 +6,16 @@
 #include "./EnumDefinitions.h"
 
-/*Datasets: */
-int DatasetsEnum(void){                     return          100; }
-int ElementsEnum(void){                     return          101; }
-int NodesEnum(void){                        return          102; }
-int ConstraintsEnum(void){                  return          103; }
-int LoadsEnum(void){                        return          104; }
-int MaterialsEnum(void){                    return          105; }
-int ParametersEnum(void){                   return          106; }
-int ResultsEnum(void){                      return          107; }
-int VerticesEnum(void){                     return          108; }
-
-/*ANALYSIS TYPES: */
-int AnalysisEnum(void){                     return          200; }
-//diagnostic
-int DiagnosticAnalysisEnum(void){           return          210; }
-int HorizAnalysisEnum(void){                return          211; }
-int StokesAnalysisEnum(void){               return          212; }
-int HutterAnalysisEnum(void){               return          213; }
-int VertAnalysisEnum(void){                 return          214; }
-//control
-int ControlAnalysisEnum(void){              return          220; }
-int AdjointAnalysisEnum(void){              return          221; }
-int InverseAnalysisEnum(void){              return          222; }
-int GradientAnalysisEnum(void){             return          223; }
-//thermal
-int ThermalAnalysisEnum(void){              return          230; }
-//transient
-int TransientAnalysisEnum(void){            return          231; }
-int SteadyAnalysisEnum(void){               return          232; } //NEEDED by nightly runs
-//slope
-int SlopecomputeAnalysisEnum(void){         return          240; }
-int SurfaceXAnalysisEnum(void){             return          241; }
-int SurfaceYAnalysisEnum(void){             return          242; }
-int BedXAnalysisEnum(void){                 return          243; }
-int BedYAnalysisEnum(void){                 return          244; }
-//prognostic
-int PrognosticAnalysisEnum(void){           return          250; }
-int Prognostic2AnalysisEnum(void){          return          251; }
-int BalancedthicknessAnalysisEnum(void){    return          252; }
-int BalancedvelocitiesAnalysisEnum(void){   return          253; }
-//melting
-int MeltingAnalysisEnum(void){              return          260; }
-//mesh2grid
-int Mesh2gridAnalysisEnum(void){            return          270; }
-//parameters
-int ParametersAnalysisEnum(void){           return          280; }
-//steadystate
-int SteadystateAnalysisEnum(void){          return          281; }
-//none
-int NoneAnalysisEnum(void){                 return          290; }
-
-
-/*Formulations: */
-int FormulationEnum(void){                  return          300; }
-int NoneFormulationEnum(void){              return          301; }
-int HutterFormulationEnum(void){            return          302; }
-int MacAyealFormulationEnum(void){          return          303; }
-int PattynFormulationEnum(void){            return          304; }
-int StokesFormulationEnum(void){            return          305; }
-
-/*OBJECTS: */
-int ObjectEnum(void){                       return          400; }
-/*Elements: */
-int HookEnum(void){                         return          409; }
-int ElementEnum(void){                      return          410; }
-int TriaEnum(void){                         return          411; }
-int ElementPropertiesEnum(void){            return          412; }
-int NodePropertiesEnum(void){               return          413; }
-int PentaEnum(void){                        return          414; }
-int SingEnum(void){                         return          415; }
-int BeamEnum(void){                         return          416; }
-int DofIndexingEnum(void){                  return          417; }
-
-/*Grids: */
-int VertexEnum(void){                       return          420; }
-int NodeEnum(void){                         return          421; }
-/*Loads: */
-int LoadEnum(void){                         return          430; }
-int IcefrontEnum(void){                     return          431; }
-int RiftfrontEnum(void){                    return          432; }
-int PenpairEnum(void){                      return          433; }
-int PengridEnum(void){                      return          434; }
-int NumericalfluxEnum(void){                return          435; }
-/*Materials: */
-int MaterialEnum(void){                     return          440; }
-int MaticeEnum(void){                       return          441; }
-int MatparEnum(void){                       return          442; }
-int NumparEnum(void){                       return          443; }
-/*Inputs: */
-int InputEnum(void){                        return          450; }
-/*Params: */
-int ParamEnum(void){                        return          460; }
-/*Results: */
-int ResultEnum(void){                       return          470; }
-/*Rgb: */
-int RgbEnum(void){                          return          480; }
-/*Spc: */
-int SpcEnum(void){                          return          490; }
-/*DofVec: */
-int DofVecEnum(void){                       return          495; }
-
-
-/*GEOGRAPHY:*/
-int GeographyEnum(void){                    return          500; }
-int IceSheetEnum(void){                     return          502; }
-int IceShelfEnum(void){                     return          502; }
-
-/*FILL:*/
-int WaterEnum(void){                        return          601; }
-int IceEnum(void){                          return          602; }
-int AirEnum(void){                          return          603; }
-int MelangeEnum(void){                      return          604; }
-
 /*functions on enums: */
 int EnumIsElement(int en){
-	if ((en>=410) && (en<=419))return 1;
+	if ((en>=ElementEnum) && (en<=SingEnum))return 1;
 	else return 0;
 }
 
 int EnumIsLoad(int en){
-	if ((en>=430) && (en<=439))return 1;
+	if ((en>=LoadEnum) && (en<=NumericalfluxEnum))return 1;
 	else return 0;
 }
 int EnumIsMaterial(int en){
-	if ((en>=440) && (en<=449))return 1;
+	if ((en>=MaterialEnum) && (en<=NumparEnum))return 1;
 	else return 0;
 }
Index: issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 3566)
+++ issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 3567)
@@ -7,114 +7,118 @@
 #define _ENUM_DEFINITIONS_
 
-/*Datasets: */
-int DatasetsEnum(void);
-int ElementsEnum(void);
-int NodesEnum(void);
-int ConstraintsEnum(void);
-int LoadsEnum(void);
-int MaterialsEnum(void);
-int ParametersEnum(void);
-int ResultsEnum(void);
-int VerticesEnum(void);
+enum definitions{
 
-/*ANALYSIS TYPES: */
-int AnalysisEnum(void);
-//diagnostic
-int DiagnosticAnalysisEnum(void);
-int HorizAnalysisEnum(void);
-int StokesAnalysisEnum(void);
-int HutterAnalysisEnum(void);
-int VertAnalysisEnum(void);
-//control
-int ControlAnalysisEnum(void);
-int AdjointAnalysisEnum(void);
-int InverseAnalysisEnum(void);
-int GradientAnalysisEnum(void);
-//thermal
-int ThermalAnalysisEnum(void);
-//transient
-int TransientAnalysisEnum(void);
-int SteadyAnalysisEnum(void);
-//slope
-int SlopecomputeAnalysisEnum(void);
-int SurfaceXAnalysisEnum(void);
-int SurfaceYAnalysisEnum(void);
-int BedXAnalysisEnum(void);
-int BedYAnalysisEnum(void);
-//prognostic
-int PrognosticAnalysisEnum(void);
-int Prognostic2AnalysisEnum(void);
-int BalancedthicknessAnalysisEnum(void);
-int BalancedvelocitiesAnalysisEnum(void);
-//melting
-int MeltingAnalysisEnum(void);
-//mesh2grid
-int Mesh2gridAnalysisEnum(void);
-//parameters
-int ParametersAnalysisEnum(void);
-//steadystate
-int SteadystateAnalysisEnum(void);
-//none
-int NoneAnalysisEnum(void);
+	/*Datasets {{{1*/
+	DatasetsEnum,
+	ElementsEnum,
+	NodesEnum,
+	ConstraintsEnum,
+	LoadsEnum,
+	MaterialsEnum,
+	ParametersEnum,
+	ResultsEnum,
+	VerticesEnum,
+	/*}}}*/
+	/*Analysis types {{{1 */
+	AnalysisEnum,
+	//diagnostic
+	DiagnosticAnalysisEnum,
+	HorizAnalysisEnum,
+	StokesAnalysisEnum,
+	HutterAnalysisEnum,
+	VertAnalysisEnum,
+	//control
+	ControlAnalysisEnum,
+	AdjointAnalysisEnum,
+	InverseAnalysisEnum,
+	GradientAnalysisEnum,
+	//thermal
+	ThermalAnalysisEnum,
+	//transient
+	TransientAnalysisEnum,
+	SteadyAnalysisEnum,
+	//slope
+	SlopecomputeAnalysisEnum,
+	SurfaceXAnalysisEnum,
+	SurfaceYAnalysisEnum,
+	BedXAnalysisEnum,
+	BedYAnalysisEnum,
+	//prognostic
+	PrognosticAnalysisEnum,
+	Prognostic2AnalysisEnum,
+	BalancedthicknessAnalysisEnum,
+	BalancedvelocitiesAnalysisEnum,
+	//melting
+	MeltingAnalysisEnum,
+	//mesh2grid
+	Mesh2gridAnalysisEnum,
+	//parameters
+	ParametersAnalysisEnum,
+	//steadystate
+	SteadystateAnalysisEnum,
+	//none
+	NoneAnalysisEnum,
+	/*}}}*/
+	/*Formulations {{{1*/
+	FormulationEnum,
+	NoneFormulationEnum,
+	HutterFormulationEnum,
+	MacAyealFormulationEnum,
+	PattynFormulationEnum,
+	StokesFormulationEnum,
+	/*}}}*/
+	/*Objects {{{1*/
+	ObjectEnum,
+	HookEnum,
+	/*Elements: */
+	ElementEnum,
+	TriaEnum,
+	ElementPropertiesEnum,
+	NodePropertiesEnum,
+	PentaEnum,
+	BeamEnum,
+	SingEnum,
+	DofIndexingEnum,
+	/*Grids: */
+	NodeEnum,
+	VertexEnum,
+	/*Loads: */
+	LoadEnum,
+	IcefrontEnum,
+	RiftfrontEnum,
+	PenpairEnum,
+	PengridEnum,
+	NumericalfluxEnum,
+	/*Materials: */
+	MaterialEnum,
+	MaticeEnum,
+	MatparEnum,
+	NumparEnum,
+	/*Inputs: */
+	InputEnum,
+	/*Params: */
+	ParamEnum,
+	/*Results: */
+	ResultEnum,
+	/*Rgb: */
+	RgbEnum,
+	/*Spc: */
+	SpcEnum,
+	/*DofVec: */
+	DofVecEnum,
+	/*}}}*/
+	/*Geography {{{1*/
+	GeographyEnum,
+	IceSheetEnum,
+	IceShelfEnum,
+	/*}}}*/
+	/*Fill {{{1*/
+	WaterEnum,
+	IceEnum,
+	AirEnum,
+	MelangeEnum,
+	/*}}}*/
 
-
-/*Formulations: */
-int FormulationEnum(void);
-int NoneFormulationEnum(void);
-int HutterFormulationEnum(void);
-int MacAyealFormulationEnum(void);
-int PattynFormulationEnum(void);
-int StokesFormulationEnum(void);
-
-/*OBJECTS: */
-int ObjectEnum(void);
-/*Elements: */
-int HookEnum(void);
-int ElementEnum(void);
-int TriaEnum(void);
-int ElementPropertiesEnum(void);
-int NodePropertiesEnum(void);
-int PentaEnum(void);
-int SingEnum(void);
-int BeamEnum(void);
-int DofIndexingEnum(void);
-/*Grids: */
-int NodeEnum(void);
-int VertexEnum(void);
-/*Loads: */
-int LoadEnum(void);
-int IcefrontEnum(void);
-int RiftfrontEnum(void);
-int PenpairEnum(void);
-int PengridEnum(void);
-int NumericalfluxEnum(void);
-/*Materials: */
-int MaterialEnum(void);
-int MaticeEnum(void);
-int MatparEnum(void);
-int NumparEnum(void);
-/*Inputs: */
-int InputEnum(void);
-/*Params: */
-int ParamEnum(void);
-/*Results: */
-int ResultEnum(void);
-/*Rgb: */
-int RgbEnum(void);
-/*Spc: */
-int SpcEnum(void);
-/*DofVec: */
-int DofVecEnum(void);
-
-/*GEOGRAPHY:*/
-int GeographyEnum(void);
-int IceSheetEnum(void);
-int IceShelfEnum(void);
-
-/*FILL: */
-int WaterEnum(void);
-int IceEnum(void);
-int AirEnum(void);
-int MelangeEnum(void);
+};
 
 /*Functions on enums: */
@@ -122,3 +126,4 @@
 int EnumIsLoad(int en);
 int EnumIsMaterial(int en);
+
 #endif
Index: issm/trunk/src/c/EnumDefinitions/SynchronizeMatlabEnum.sh
===================================================================
--- issm/trunk/src/c/EnumDefinitions/SynchronizeMatlabEnum.sh	(revision 3566)
+++ issm/trunk/src/c/EnumDefinitions/SynchronizeMatlabEnum.sh	(revision 3567)
@@ -7,7 +7,9 @@
 rm $ISSM_DIR/src/m/enum/*.m
 
-#Get the list of interesting lines of EnumDefinitions.cpp and introduce line number
 echo "Synchronizong with Matlab's Enums..."
-cat EnumDefinitions.cpp | grep "return" | grep "int" | awk '{ printf "line%so %s\n", NR, $0 }' | sed -e "s/(void){//"  > temp
+#Get all lines of EnumDefinitions2.h which hold Enum, | remove all comas | add line number in the first column > put everything in file temp
+cat EnumDefinitions.h | grep "Enum," |sed -e "s/,//g" | awk '{ printf "%s %s\n", NR, $0 }' > temp
+
+#Build File AnalysisTypeFromEnum.m
 cat <<END > AnalysisTypeFromEnum.m
 function string=AnalysisTypeFromEnum(enum)
@@ -23,9 +25,8 @@
 %initialize output
 string='not found';
-
 END
 
 #get number of lines in temp
-NUMBEROFLINES=`wc -l temp | awk '{printf("%s",$1);}'`;
+NUMBEROFLINES=$(wc -l temp | awk '{printf("%s",$1);}');
 
 # go through the lines of temp
@@ -33,10 +34,12 @@
 
 	#Get name and enum of the line i
-	NAME=`cat temp |  awk '/line'$i'o/ {printf("%s\n",$3);}';`;
-	ENUM=`cat temp |  awk '/line'$i'o/ {printf("%s\n",$5);}';`;
-	echo writing file $NAME \($i/$NUMBEROFLINES\)
+	NAME=$(cat temp | grep "^[ ]*$i " | awk '{printf("%s",$2);}');
+	ENUM=$i;
+	#offset Enum by one (Enum begins with 0 and not 1!)
+	let ENUM=$ENUM-1
 
 	#write corresponding Matlab file
-	cat <<END > $(echo $NAME.m)
+	echo "writing file "$NAME".m ($i/$NUMBEROFLINES)"
+	cat <<END > $(echo $NAME".m")
 function macro=$(echo $NAME)()
 %$(echo `echo $NAME | sed -e "s/[a-z]/\U&/g"`) - Enum of $(echo `echo $NAME | sed -e "s/Enum//"`)
@@ -47,5 +50,5 @@
 %      macro=$NAME()
 
-macro=$ENUM
+macro=$ENUM;
 END
 
@@ -62,5 +65,5 @@
 
 	#move file to m/enum
-	mv $NAME.m $ISSM_DIR/src/m/enum/
+	mv $NAME".m" $ISSM_DIR"/src/m/enum/"
 
 done
Index: issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp	(revision 3567)
@@ -17,5 +17,5 @@
 
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 
 	/*Fetch data: */
Index: issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp	(revision 3567)
@@ -24,8 +24,8 @@
 
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 
 	/*Partition elements and vertices and nodes: */
Index: issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp	(revision 3567)
@@ -16,5 +16,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 	
 	
Index: issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp	(revision 3567)
@@ -19,5 +19,5 @@
 
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 
 	/*Fetch data: */
Index: issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp	(revision 3567)
@@ -24,8 +24,8 @@
 
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 
 	/*Partition elements and vertices and nodes: */
Index: issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp	(revision 3567)
@@ -16,5 +16,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 	
 	
Index: issm/trunk/src/c/ModelProcessorx/CreateDataSets.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/CreateDataSets.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/CreateDataSets.cpp	(revision 3567)
@@ -22,7 +22,7 @@
 
 	/*This is just a high level driver: */
-	if (iomodel->analysis_type==DiagnosticAnalysisEnum()){
+	if (iomodel->analysis_type==DiagnosticAnalysisEnum){
 
-		if (iomodel->sub_analysis_type==HorizAnalysisEnum()){
+		if (iomodel->sub_analysis_type==HorizAnalysisEnum){
 
 			CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes, pvertices, pmaterials, iomodel,iomodel_handle);
@@ -32,5 +32,5 @@
 
 		}
-		else if (iomodel->sub_analysis_type==VertAnalysisEnum()){
+		else if (iomodel->sub_analysis_type==VertAnalysisEnum){
 		
 			CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes, pvertices, pmaterials, iomodel,iomodel_handle);
@@ -39,5 +39,5 @@
 			
 		}
-		else if (iomodel->sub_analysis_type==StokesAnalysisEnum()){
+		else if (iomodel->sub_analysis_type==StokesAnalysisEnum){
 
 			CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes, pvertices, pmaterials, iomodel,iomodel_handle);
@@ -46,5 +46,5 @@
 			
 		}
-		else if (iomodel->sub_analysis_type==HutterAnalysisEnum()){
+		else if (iomodel->sub_analysis_type==HutterAnalysisEnum){
 
 			CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);
@@ -54,5 +54,5 @@
 		}
 	}
-	else if (iomodel->analysis_type==SlopecomputeAnalysisEnum()){
+	else if (iomodel->analysis_type==SlopecomputeAnalysisEnum){
 
 		CreateElementsNodesAndMaterialsSlopeCompute(pelements,pnodes, pvertices,pmaterials, iomodel,iomodel_handle);
@@ -61,5 +61,5 @@
 	
 	}
-	else if (iomodel->analysis_type==ThermalAnalysisEnum()){
+	else if (iomodel->analysis_type==ThermalAnalysisEnum){
 
 		CreateElementsNodesAndMaterialsThermal(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);
@@ -69,5 +69,5 @@
 					
 	}
-	else if (iomodel->analysis_type==MeltingAnalysisEnum()){
+	else if (iomodel->analysis_type==MeltingAnalysisEnum){
 			
 		CreateElementsNodesAndMaterialsMelting(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);
@@ -76,5 +76,5 @@
 		CreateParametersMelting(pparameters,iomodel,iomodel_handle);
 	}
-	else if (iomodel->analysis_type==PrognosticAnalysisEnum()){
+	else if (iomodel->analysis_type==PrognosticAnalysisEnum){
 
 		CreateElementsNodesAndMaterialsPrognostic(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);
@@ -84,5 +84,5 @@
 					
 	}
-	else if (iomodel->analysis_type==Prognostic2AnalysisEnum()){
+	else if (iomodel->analysis_type==Prognostic2AnalysisEnum){
 
 		CreateElementsNodesAndMaterialsPrognostic2(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);
@@ -92,5 +92,5 @@
 
 	}
-	else if (iomodel->analysis_type==BalancedthicknessAnalysisEnum()){
+	else if (iomodel->analysis_type==BalancedthicknessAnalysisEnum){
 
 		CreateElementsNodesAndMaterialsBalancedthickness(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);
@@ -100,5 +100,5 @@
 
 	}
-	else if (iomodel->analysis_type==BalancedvelocitiesAnalysisEnum()){
+	else if (iomodel->analysis_type==BalancedvelocitiesAnalysisEnum){
 
 		CreateElementsNodesAndMaterialsBalancedvelocities(pelements,pnodes,pvertices,pmaterials, iomodel,iomodel_handle);
Index: issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp	(revision 3567)
@@ -30,5 +30,5 @@
 
 	/*Initialize dataset: */
-	parameters   = new DataSet(ParametersEnum());
+	parameters   = new DataSet(ParametersEnum);
 
 	//solution parameters: always 1'st, to speed-up its lookup by elements..
@@ -245,5 +245,5 @@
 	count++;
 	param= new Param(count,"numberofnodes",DOUBLE);
-	if (iomodel->analysis_type==Prognostic2AnalysisEnum()) param->SetDouble(3*iomodel->numberofelements);
+	if (iomodel->analysis_type==Prognostic2AnalysisEnum) param->SetDouble(3*iomodel->numberofelements);
 	else param->SetDouble(iomodel->numberofvertices);
 	parameters->AddObject(param);
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 3567)
@@ -23,5 +23,5 @@
 
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 
 	/*Now, is the flag macayaealpattyn on? otherwise, do nothing: */
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 3567)
@@ -24,8 +24,8 @@
 
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 	
 	/*Now, is the flag macayaealpattyn on? otherwise, do nothing: */
@@ -58,5 +58,5 @@
 			if(iomodel->my_elements[i]){
 				
-				if (*(iomodel->elements_type+2*i+0)==MacAyealFormulationEnum()){ //elements of type 1 are Hutter type Tria. Don't create this elements.
+				if (*(iomodel->elements_type+2*i+0)==MacAyealFormulationEnum){ //elements of type 1 are Hutter type Tria. Don't create this elements.
 
 					/*Create and add tria element to elements dataset: */
@@ -106,5 +106,5 @@
 		for (i=0;i<iomodel->numberofelements;i++){
 			if(iomodel->my_elements[i]){
-				if (*(iomodel->elements_type+2*i+0)==MacAyealFormulationEnum() | *(iomodel->elements_type+2*i+0)==PattynFormulationEnum()){ //elements of type 1 are Hutter type Tria. Don't create this elements.
+				if (*(iomodel->elements_type+2*i+0)==MacAyealFormulationEnum | *(iomodel->elements_type+2*i+0)==PattynFormulationEnum){ //elements of type 1 are Hutter type Tria. Don't create this elements.
 					/*Create and add penta element to elements dataset: */
 					elements->AddObject(new Penta(i,iomodel));
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 3567)
@@ -21,5 +21,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 
 	/*Now, is the flag macayaealpattyn on? otherwise, do nothing: */
@@ -45,5 +45,5 @@
 		
 		/*Do not create ice front if Hutter or Stokes elements*/
-		if ((int)*(iomodel->elements_type+2*element+0)==(HutterFormulationEnum() || StokesFormulationEnum())) continue;
+		if ((int)*(iomodel->elements_type+2*element+0)==(HutterFormulationEnum || StokesFormulationEnum)) continue;
 
 		/*Create and  add load: */
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 3567)
@@ -19,5 +19,5 @@
 
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 
 	/*Now, is the flag ishutter on? otherwise, do nothing: */
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp	(revision 3567)
@@ -24,8 +24,8 @@
 
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 
 	/*Now, is the flag ishutter on? otherwise, do nothing: */
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp	(revision 3567)
@@ -15,5 +15,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 
 	/*Now, is the flag ishutter on? otherwise, do nothing: */
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp	(revision 3567)
@@ -18,5 +18,5 @@
 
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 
 	/*Now, is the flag ishutter on? otherwise, do nothing: */
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 3567)
@@ -25,8 +25,8 @@
 
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 
 	/*Now, do we have Stokes elements?*/
@@ -59,5 +59,5 @@
 
 		if(iomodel->my_elements[i]){
-			 if (*(iomodel->elements_type+2*i+1)==StokesFormulationEnum()){
+			 if (*(iomodel->elements_type+2*i+1)==StokesFormulationEnum){
 
 				 /*Create and add penta element to elements dataset: */
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp	(revision 3567)
@@ -25,5 +25,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 
 	/*Now, is the flag ishutter on? otherwise, do nothing: */
@@ -49,5 +49,5 @@
 	
 		/*Do not create ice front if it is not a Stokes element*/
-		if (!(int)*(iomodel->elements_type+2*element+1)==StokesFormulationEnum()){ 
+		if (!(int)*(iomodel->elements_type+2*element+1)==StokesFormulationEnum){ 
 			continue;
 		}
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 3567)
@@ -17,5 +17,5 @@
 
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 
 	/*return if 2d mesh*/
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp	(revision 3567)
@@ -24,8 +24,8 @@
 
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 
 	/*Now, is the flag macayaealpattyn on? otherwise, do nothing: */
Index: issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp	(revision 3567)
@@ -15,5 +15,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 
 	/*Assign output pointer: */
Index: issm/trunk/src/c/ModelProcessorx/Melting/CreateConstraintsMelting.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Melting/CreateConstraintsMelting.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Melting/CreateConstraintsMelting.cpp	(revision 3567)
@@ -18,5 +18,5 @@
 
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 
 	/*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these 
Index: issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp	(revision 3567)
@@ -24,8 +24,8 @@
 	
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 
 	/*Partition elements and vertices and nodes: */
Index: issm/trunk/src/c/ModelProcessorx/Melting/CreateLoadsMelting.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 3567)
@@ -21,5 +21,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 
 	//create penalties for grids: no grid can have a temperature over the melting point
Index: issm/trunk/src/c/ModelProcessorx/Partitioning.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Partitioning.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Partitioning.cpp	(revision 3567)
@@ -22,5 +22,5 @@
 void  Partitioning(bool** pmy_elements, bool** pmy_vertices, bool** pmy_nodes, bool** pmy_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle){
 	
-	if (iomodel->analysis_type==Prognostic2AnalysisEnum())
+	if (iomodel->analysis_type==Prognostic2AnalysisEnum)
 		DiscontinuousGalerkinPartitioning(pmy_elements, pmy_vertices, pmy_nodes, pmy_bordervertices, iomodel, iomodel_handle);
 	else
Index: issm/trunk/src/c/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp	(revision 3567)
@@ -19,5 +19,5 @@
 
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 
 	/*Fetch data: */
Index: issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp	(revision 3567)
@@ -24,8 +24,8 @@
 	
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 
 	/*Partition elements and vertices and nodes: */
Index: issm/trunk/src/c/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp	(revision 3567)
@@ -15,5 +15,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 	
 	/*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these 
Index: issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp	(revision 3567)
@@ -15,5 +15,5 @@
 	
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 	
 	/*Assign output pointer: */
Index: issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp	(revision 3567)
@@ -27,8 +27,8 @@
 
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 
 	/*Partition elements and vertices and nodes: */
Index: issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp	(revision 3567)
@@ -29,5 +29,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 
 	/*Get edges and elements*/
Index: issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp	(revision 3567)
@@ -15,5 +15,5 @@
 
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 	
 	/*Assign output pointer: */
Index: issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp	(revision 3567)
@@ -24,8 +24,8 @@
 	
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 
 	/*Partition elements and vertices and nodes: */
Index: issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp	(revision 3567)
@@ -15,5 +15,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 
 	/*Now, is the flag isstokes on? otherwise, do nothing: */
Index: issm/trunk/src/c/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp	(revision 3567)
@@ -19,5 +19,5 @@
 
 	/*Create constraints: */
-	constraints = new DataSet(ConstraintsEnum());
+	constraints = new DataSet(ConstraintsEnum);
 
 	/*return if 2d mesh*/
Index: issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp	(revision 3567)
@@ -24,8 +24,8 @@
 	
 	/*First create the elements, nodes and material properties: */
-	elements  = new DataSet(ElementsEnum());
-	nodes     = new DataSet(NodesEnum());
-	vertices  = new DataSet(VerticesEnum());
-	materials = new DataSet(MaterialsEnum());
+	elements  = new DataSet(ElementsEnum);
+	nodes     = new DataSet(NodesEnum);
+	vertices  = new DataSet(VerticesEnum);
+	materials = new DataSet(MaterialsEnum);
 
 	/*Partition elements and vertices and nodes: */
Index: issm/trunk/src/c/ModelProcessorx/Thermal/CreateLoadsThermal.cpp
===================================================================
--- issm/trunk/src/c/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 3566)
+++ issm/trunk/src/c/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 3567)
@@ -22,5 +22,5 @@
 
 	/*Create loads: */
-	loads   = new DataSet(LoadsEnum());
+	loads   = new DataSet(LoadsEnum);
 
 	//create penalties for grids: no grid can have a temperature over the melting point
Index: issm/trunk/src/c/PenaltyConstraintsx/RiftConstraints.cpp
===================================================================
--- issm/trunk/src/c/PenaltyConstraintsx/RiftConstraints.cpp	(revision 3566)
+++ issm/trunk/src/c/PenaltyConstraintsx/RiftConstraints.cpp	(revision 3567)
@@ -46,5 +46,5 @@
 	for (i=0;i<loads->Size();i++){
 
-		if(RiftfrontEnum()==loads->GetEnum(i)){
+		if(RiftfrontEnum==loads->GetEnum(i)){
 
 			riftfront=(Riftfront*)loads->GetObjectByOffset(i);
@@ -77,5 +77,5 @@
 	for (i=0;i<loads->Size();i++){
 
-		if(RiftfrontEnum()==loads->GetEnum(i)){
+		if(RiftfrontEnum==loads->GetEnum(i)){
 			found=1;
 			break;
@@ -104,5 +104,5 @@
 	for (i=0;i<loads->Size();i++){
 
-		if(RiftfrontEnum()==loads->GetEnum(i)){
+		if(RiftfrontEnum==loads->GetEnum(i)){
 
 			riftfront=(Riftfront*)loads->GetObjectByOffset(i);
@@ -142,5 +142,5 @@
 	for (i=0;i<loads->Size();i++){
 
-		if(RiftfrontEnum()==loads->GetEnum(i)){
+		if(RiftfrontEnum==loads->GetEnum(i)){
 
 			riftfront=(Riftfront*)loads->GetObjectByOffset(i);
@@ -164,5 +164,5 @@
 	for (i=0;i<loads->Size();i++){
 
-		if (RiftfrontEnum()==loads->GetEnum(i)){
+		if (RiftfrontEnum==loads->GetEnum(i)){
 
 			riftfront=(Riftfront*)loads->GetObjectByOffset(i);
@@ -199,5 +199,5 @@
 	for (i=0;i<loads->Size();i++){
 
-		if (RiftfrontEnum()==loads->GetEnum(i)){
+		if (RiftfrontEnum==loads->GetEnum(i)){
 
 			riftfront=(Riftfront*)loads->GetObjectByOffset(i);
@@ -230,5 +230,5 @@
 	for (i=0;i<loads->Size();i++){
 
-		if (RiftfrontEnum()==loads->GetEnum(i)){
+		if (RiftfrontEnum==loads->GetEnum(i)){
 
 			riftfront=(Riftfront*)loads->GetObjectByOffset(i);
@@ -253,5 +253,5 @@
 	for (i=0;i<loads->Size();i++){
 
-		if (RiftfrontEnum()==loads->GetEnum(i)){
+		if (RiftfrontEnum==loads->GetEnum(i)){
 
 			riftfront=(Riftfront*)loads->GetObjectByOffset(i);
@@ -291,5 +291,5 @@
 	for (i=0;i<loads->Size();i++){
 
-		if (RiftfrontEnum()==loads->GetEnum(i)){
+		if (RiftfrontEnum==loads->GetEnum(i)){
 
 			riftfront=(Riftfront*)loads->GetObjectByOffset(i);
@@ -330,5 +330,5 @@
 	for (i=0;i<loads->Size();i++){
 
-		if (RiftfrontEnum()==loads->GetEnum(i)){
+		if (RiftfrontEnum==loads->GetEnum(i)){
 
 			riftfront=(Riftfront*)loads->GetObjectByOffset(i);
Index: issm/trunk/src/c/ProcessParamsx/ProcessParamsx.cpp
===================================================================
--- issm/trunk/src/c/ProcessParamsx/ProcessParamsx.cpp	(revision 3566)
+++ issm/trunk/src/c/ProcessParamsx/ProcessParamsx.cpp	(revision 3567)
@@ -41,5 +41,5 @@
 		param_type=parameters->GetEnum(i);
 
-		if(param_type==ParamEnum()){
+		if(param_type==ParamEnum){
 
 			Param* param=(Param*)parameters->GetObjectByOffset(i);
Index: issm/trunk/src/c/Qmux/DakotaResponses.cpp
===================================================================
--- issm/trunk/src/c/Qmux/DakotaResponses.cpp	(revision 3566)
+++ issm/trunk/src/c/Qmux/DakotaResponses.cpp	(revision 3567)
@@ -238,11 +238,11 @@
 
 			if(isstokes){
-				femmodel=model->GetFormulation(DiagnosticAnalysisEnum(),StokesAnalysisEnum());
+				femmodel=model->GetFormulation(DiagnosticAnalysisEnum,StokesAnalysisEnum);
 			}
 			if(ismacayealpattyn){
-				femmodel=model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+				femmodel=model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum);
 			}
 			if(ishutter){
-				femmodel=model->GetFormulation(DiagnosticAnalysisEnum(),HutterAnalysisEnum());
+				femmodel=model->GetFormulation(DiagnosticAnalysisEnum,HutterAnalysisEnum);
 			}	
 
@@ -300,11 +300,11 @@
 
 			if(isstokes){
-				femmodel=model->GetFormulation(DiagnosticAnalysisEnum(),StokesAnalysisEnum());
+				femmodel=model->GetFormulation(DiagnosticAnalysisEnum,StokesAnalysisEnum);
 			}
 			if(ismacayealpattyn){
-				femmodel=model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+				femmodel=model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum);
 			}
 			if(ishutter){
-				femmodel=model->GetFormulation(DiagnosticAnalysisEnum(),HutterAnalysisEnum());
+				femmodel=model->GetFormulation(DiagnosticAnalysisEnum,HutterAnalysisEnum);
 			}
 
Index: issm/trunk/src/c/Qmux/SpawnCoreParallel.cpp
===================================================================
--- issm/trunk/src/c/Qmux/SpawnCoreParallel.cpp	(revision 3566)
+++ issm/trunk/src/c/Qmux/SpawnCoreParallel.cpp	(revision 3567)
@@ -60,5 +60,5 @@
 		
 	/*First off, recover the response descriptors for the response functions: */
-	param=(Param*)model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum())->parameters->FindParamObject("responsedescriptors");
+	param=(Param*)model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum)->parameters->FindParamObject("responsedescriptors");
 	if(!param)ISSMERROR(" could not find response descriptors!");
 
@@ -123,11 +123,11 @@
 
 	//initialize results:
-	results=new DataSet(ResultsEnum());
+	results=new DataSet(ResultsEnum);
 
 	/*Modify core inputs to reflect the dakota variables inputs: */
-	inputs->UpdateFromDakota(variables,variables_descriptors,numvariables,model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum())->parameters,qmu_part,qmu_npart); //diagnostic horiz model is the one holding the parameters for Dakota.
+	inputs->UpdateFromDakota(variables,variables_descriptors,numvariables,model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum)->parameters,qmu_part,qmu_npart); //diagnostic horiz model is the one holding the parameters for Dakota.
 
 	/*Run the analysis core solution sequence, with the updated inputs: */
-	if(analysis_type==DiagnosticAnalysisEnum()){
+	if(analysis_type==DiagnosticAnalysisEnum){
 			
 		if(verbose)_printf_("Starting diagnostic core\n");
@@ -136,5 +136,5 @@
 
 	}
-	else if(analysis_type==ThermalAnalysisEnum()){
+	else if(analysis_type==ThermalAnalysisEnum){
 		
 		if(verbose)_printf_("Starting thermal core\n");
@@ -142,5 +142,5 @@
 
 	}
-	else if(analysis_type==PrognosticAnalysisEnum()){
+	else if(analysis_type==PrognosticAnalysisEnum){
 
 		if(verbose)_printf_("Starting prognostic core\n");
@@ -148,5 +148,5 @@
 
 	}
-	else if(analysis_type==TransientAnalysisEnum()){
+	else if(analysis_type==TransientAnalysisEnum){
 
 		if(verbose)_printf_("Starting transient core\n");
Index: issm/trunk/src/c/UpdateGeometryx/UpdateGeometryx.cpp
===================================================================
--- issm/trunk/src/c/UpdateGeometryx/UpdateGeometryx.cpp	(revision 3566)
+++ issm/trunk/src/c/UpdateGeometryx/UpdateGeometryx.cpp	(revision 3567)
@@ -57,5 +57,5 @@
 	for(i=0;i<materials->Size();i++){
 		Object* object=materials->GetObjectByOffset(i);
-		if  (object->Enum()==MatparEnum()){
+		if  (object->Enum()==MatparEnum){
 			matpar=(Matpar*)object;
 			break;
Index: issm/trunk/src/c/objects/Beam.cpp
===================================================================
--- issm/trunk/src/c/objects/Beam.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Beam.cpp	(revision 3567)
@@ -205,5 +205,5 @@
 
 	/*get enum type of Beam: */
-	enum_type=BeamEnum();
+	enum_type=BeamEnum;
 	
 	/*marshall enum: */
@@ -377,7 +377,7 @@
 
 	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
-	if (analysis_type==DiagnosticAnalysisEnum()) {
-	
-		if (sub_analysis_type==HutterAnalysisEnum()) {
+	if (analysis_type==DiagnosticAnalysisEnum) {
+	
+		if (sub_analysis_type==HutterAnalysisEnum) {
 
 			CreateKMatrixDiagnosticHutter( Kgg,inputs,analysis_type,sub_analysis_type);
@@ -430,6 +430,6 @@
 	
 	/*Just branch to the correct load generator, according to the type of analysis we are carrying out: */
-	if (analysis_type==DiagnosticAnalysisEnum()) {
-		if (sub_analysis_type==HutterAnalysisEnum()) {
+	if (analysis_type==DiagnosticAnalysisEnum) {
+		if (sub_analysis_type==HutterAnalysisEnum) {
 			CreatePVectorDiagnosticHutter( pg,inputs,analysis_type,sub_analysis_type);
 		}
@@ -577,5 +577,5 @@
 int Beam::Enum(void){
 
-	return BeamEnum();
+	return BeamEnum;
 
 }
Index: issm/trunk/src/c/objects/DofIndexing.cpp
===================================================================
--- issm/trunk/src/c/objects/DofIndexing.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/DofIndexing.cpp	(revision 3567)
@@ -150,5 +150,5 @@
 
 	/*get enum type of DofIndexing: */
-	enum_type=DofIndexingEnum();
+	enum_type=DofIndexingEnum;
 	
 	/*marshall enum: */
Index: issm/trunk/src/c/objects/DofVec.cpp
===================================================================
--- issm/trunk/src/c/objects/DofVec.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/DofVec.cpp	(revision 3567)
@@ -191,5 +191,5 @@
 
 	/*get enum type of DofVec: */
-	enum_type=DofVecEnum();
+	enum_type=DofVecEnum;
 	
 	/*marshall enum: */
@@ -227,5 +227,5 @@
 int DofVec::Enum(void){
 
-	return DofVecEnum();
+	return DofVecEnum;
 
 }
Index: issm/trunk/src/c/objects/Element.cpp
===================================================================
--- issm/trunk/src/c/objects/Element.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Element.cpp	(revision 3567)
@@ -9,4 +9,4 @@
 int Element::Enum(void){
 
-	return ElementEnum();
+	return ElementEnum;
 }
Index: issm/trunk/src/c/objects/ElementProperties.cpp
===================================================================
--- issm/trunk/src/c/objects/ElementProperties.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/ElementProperties.cpp	(revision 3567)
@@ -257,5 +257,5 @@
 
 	/*get enum type of ElementProperties: */
-	enum_type=ElementPropertiesEnum();
+	enum_type=ElementPropertiesEnum;
 	
 	/*marshall enum: */
Index: issm/trunk/src/c/objects/Hook.cpp
===================================================================
--- issm/trunk/src/c/objects/Hook.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Hook.cpp	(revision 3567)
@@ -117,5 +117,5 @@
 
 	/*get enum type of Hook: */
-	enum_type=HookEnum();
+	enum_type=HookEnum;
 	
 	/*marshall enum: */
Index: issm/trunk/src/c/objects/Icefront.cpp
===================================================================
--- issm/trunk/src/c/objects/Icefront.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Icefront.cpp	(revision 3567)
@@ -85,9 +85,9 @@
 	if (strcmp(iomodel->meshtype,"2d")==0){
 		segment_width=4;
-		element_type=TriaEnum();
+		element_type=TriaEnum;
 	}
 	else{
 		segment_width=6;
-		element_type=PentaEnum();
+		element_type=PentaEnum;
 	}
 	element=(int)(*(iomodel->pressureload+segment_width*i+segment_width-2)-1); //element is in the penultimate column (grid1 grid2 ... elem fill)
@@ -112,9 +112,9 @@
 	icefront_b[1]=iomodel->bed[i2-1];
 
-	if (iomodel->sub_analysis_type==HorizAnalysisEnum()){
-		if ((int)*(iomodel->elements_type+2*element+0)==MacAyealFormulationEnum()){ //this is a collapsed 3d element, icefront will be 2d
+	if (iomodel->sub_analysis_type==HorizAnalysisEnum){
+		if ((int)*(iomodel->elements_type+2*element+0)==MacAyealFormulationEnum){ //this is a collapsed 3d element, icefront will be 2d
 			strcpy(icefront_type,"segment");
 		}
-		else if ((int)*(iomodel->elements_type+2*element+0)==PattynFormulationEnum()){ //this is a real 3d element, icefront will be 3d.
+		else if ((int)*(iomodel->elements_type+2*element+0)==PattynFormulationEnum){ //this is a real 3d element, icefront will be 3d.
 			strcpy(icefront_type,"quad");
 			i3=(int)*(iomodel->pressureload+segment_width*i+2);
@@ -133,5 +133,5 @@
 		}
 	}
-	else if (iomodel->sub_analysis_type==StokesAnalysisEnum()){
+	else if (iomodel->sub_analysis_type==StokesAnalysisEnum){
 		//We have a Stokes element, so we need a 3d Icefront
 		strcpy(icefront_type,"quad");
@@ -209,5 +209,5 @@
 
 	/*get enum type of Icefront: */
-	enum_type=IcefrontEnum();
+	enum_type=IcefrontEnum;
 	
 	/*marshall enum: */
@@ -306,17 +306,17 @@
 
 	/*Just branch to the correct element icefront vector generator, according to the type of analysis we are carrying out: */
-	if (analysis_type==ControlAnalysisEnum()){
+	if (analysis_type==ControlAnalysisEnum){
 		
 		CreatePVectorDiagnosticHoriz( pg,inputs,analysis_type,sub_analysis_type);
 
 	}
-	else if (analysis_type==DiagnosticAnalysisEnum()){
-	
-		if (sub_analysis_type==HorizAnalysisEnum()){
+	else if (analysis_type==DiagnosticAnalysisEnum){
+	
+		if (sub_analysis_type==HorizAnalysisEnum){
 		
 			CreatePVectorDiagnosticHoriz( pg,inputs,analysis_type,sub_analysis_type);
 
 		}
-		else if (sub_analysis_type==StokesAnalysisEnum()){
+		else if (sub_analysis_type==StokesAnalysisEnum){
 			
 			CreatePVectorDiagnosticStokes( pg,inputs,analysis_type,sub_analysis_type);
@@ -380,5 +380,5 @@
 
 	//check that the element is onbed (collapsed formulation) otherwise:pe=0
-	if(element_type==PentaEnum()){
+	if(element_type==PentaEnum){
 		if  (!element->GetOnBed()){
 			return;
@@ -389,6 +389,6 @@
 		
 	/*Identify which grids are comprised in the segment. */
-	if(element_type==TriaEnum())element_nodes=(Node**)xmalloc(3*sizeof(Node*));
-	if(element_type==PentaEnum())element_nodes=(Node**)xmalloc(6*sizeof(Node*));
+	if(element_type==TriaEnum)element_nodes=(Node**)xmalloc(3*sizeof(Node*));
+	if(element_type==PentaEnum)element_nodes=(Node**)xmalloc(6*sizeof(Node*));
 	element->GetNodes((void**)element_nodes);
 
@@ -496,5 +496,5 @@
 
 	/*check icefront is associated to a pentaelem: */
-	if(element_type!=PentaEnum()){
+	if(element_type!=PentaEnum){
 		ISSMERROR(" quad icefront is associated to a TriaElem!");
 	}
@@ -510,5 +510,5 @@
 	
 	//Identify which grids are comprised in the quad: 
-	if(element_type==PentaEnum())element_nodes=(Node**)xmalloc(6*sizeof(Node*));
+	if(element_type==PentaEnum)element_nodes=(Node**)xmalloc(6*sizeof(Node*));
 	element->GetNodes((void**)element_nodes);
 
@@ -653,5 +653,5 @@
 
 	/*check icefront is associated to a pentaelem: */
-	if(element_type!=PentaEnum()){
+	if(element_type!=PentaEnum){
 		ISSMERROR(" quad icefront is associated to a TriaElem!");
 	}
@@ -667,5 +667,5 @@
 	
 	//Identify which grids are comprised in the quad: 
-	if(element_type==PentaEnum())element_nodes=(Node**)xmalloc(6*sizeof(Node*));
+	if(element_type==PentaEnum)element_nodes=(Node**)xmalloc(6*sizeof(Node*));
 	element->GetNodes((void**)element_nodes);
 
@@ -855,5 +855,5 @@
 int Icefront::Enum(void){
 
-	return IcefrontEnum();
+	return IcefrontEnum;
 
 }
@@ -1128,9 +1128,9 @@
 
 			//Now deal with water pressure: 
-			if(fill==WaterEnum()){ //icefront ends in water
+			if(fill==WaterEnum){ //icefront ends in water
 				water_level_above_g_tria=min(0,z_g[i]);//0 if the gaussian point is above water level
 				water_pressure_tria=rho_water*gravity*water_level_above_g_tria;
 			}
-			else if(fill==AirEnum()){
+			else if(fill==AirEnum){
 				water_pressure_tria=0;
 			}
@@ -1382,9 +1382,9 @@
 
 			//Now deal with water pressure: 
-			if(fill==WaterEnum()){ //icefront ends in water
+			if(fill==WaterEnum){ //icefront ends in water
 				water_level_above_g_tria=min(0,z_g[i]);//0 if the gaussian point is above water level
 				water_pressure_tria=rho_water*gravity*water_level_above_g_tria;
 			}
-			else if(fill==AirEnum()){
+			else if(fill==AirEnum){
 				water_pressure_tria=0;
 			}
@@ -1463,5 +1463,5 @@
 		bed=b1*(1+segment_gauss_coord[ig])/2+b2*(1-segment_gauss_coord[ig])/2;
 
-		if (fill==WaterEnum()){
+		if (fill==WaterEnum){
 			//icefront ends in water: 
 			ice_pressure=1.0/2.0*gravity*rho_ice*pow(thickness,2);
@@ -1473,5 +1473,5 @@
 			water_pressure=1.0/2.0*gravity*rho_water*(pow(surface_under_water,2) - pow(base_under_water,2));
 		}
-		else if (fill==AirEnum()){
+		else if (fill==AirEnum){
 			ice_pressure=1.0/2.0*gravity*rho_ice*pow(thickness,2);
 			air_pressure=0;
Index: issm/trunk/src/c/objects/Input.cpp
===================================================================
--- issm/trunk/src/c/objects/Input.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Input.cpp	(revision 3567)
@@ -153,5 +153,5 @@
 int Input::Enum(void){
 
-	return InputEnum();
+	return InputEnum;
 
 }
Index: issm/trunk/src/c/objects/Load.cpp
===================================================================
--- issm/trunk/src/c/objects/Load.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Load.cpp	(revision 3567)
@@ -10,5 +10,5 @@
 int Load::Enum(void){
 
-	return LoadEnum();
+	return LoadEnum;
 }
 		
Index: issm/trunk/src/c/objects/Material.cpp
===================================================================
--- issm/trunk/src/c/objects/Material.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Material.cpp	(revision 3567)
@@ -10,5 +10,5 @@
 int Material::Enum(void){
 
-	return MaterialEnum();
+	return MaterialEnum;
 }
 		
Index: issm/trunk/src/c/objects/Matice.cpp
===================================================================
--- issm/trunk/src/c/objects/Matice.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Matice.cpp	(revision 3567)
@@ -102,5 +102,5 @@
 
 	/*get enum type of Matice: */
-	enum_type=MaticeEnum();
+	enum_type=MaticeEnum;
 	
 	/*marshall enum: */
@@ -175,5 +175,5 @@
 int Matice::Enum(void){
 
-	return MaticeEnum();
+	return MaticeEnum;
 
 }
Index: issm/trunk/src/c/objects/Matpar.cpp
===================================================================
--- issm/trunk/src/c/objects/Matpar.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Matpar.cpp	(revision 3567)
@@ -46,5 +46,5 @@
 	double  matpar_g;
 
-	if (iomodel->analysis_type==DiagnosticAnalysisEnum() && iomodel->sub_analysis_type==HutterAnalysisEnum()){
+	if (iomodel->analysis_type==DiagnosticAnalysisEnum && iomodel->sub_analysis_type==HutterAnalysisEnum){
 		if (strcmp(iomodel->meshtype,"2d")==0){
 			matpar_mid=iomodel->numberofvertices+1; //put it at the end of the materials
@@ -133,5 +133,5 @@
 
 	/*get enum type of Matpar: */
-	enum_type=MatparEnum();
+	enum_type=MatparEnum;
 	
 	/*marshall enum: */
@@ -221,5 +221,5 @@
 int Matpar::Enum(void){
 
-	return MatparEnum();
+	return MatparEnum;
 
 }
Index: issm/trunk/src/c/objects/Model.cpp
===================================================================
--- issm/trunk/src/c/objects/Model.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Model.cpp	(revision 3567)
@@ -143,5 +143,5 @@
 	}
 	/*sub_analysis_type should default to none, as it was not specified: */
-	sub_analysis_type=NoneAnalysisEnum();
+	sub_analysis_type=NoneAnalysisEnum;
 	
 	if (sub_analysis_type!=0){
Index: issm/trunk/src/c/objects/Node.cpp
===================================================================
--- issm/trunk/src/c/objects/Node.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Node.cpp	(revision 3567)
@@ -95,5 +95,5 @@
 
 	/*Diagnostic Horiz*/
-	if (iomodel->analysis_type==DiagnosticAnalysisEnum() && iomodel->sub_analysis_type==HorizAnalysisEnum()){
+	if (iomodel->analysis_type==DiagnosticAnalysisEnum && iomodel->sub_analysis_type==HorizAnalysisEnum){
 		if (strcmp(iomodel->meshtype,"3d")==0){
 			/*We have a  3d mesh, we may have collapsed elements, hence dead grids. Freeze them out: */
@@ -115,5 +115,5 @@
 
 	/*Diagnostic Stokes*/
-	if (iomodel->analysis_type==DiagnosticAnalysisEnum() && iomodel->sub_analysis_type==StokesAnalysisEnum()){
+	if (iomodel->analysis_type==DiagnosticAnalysisEnum && iomodel->sub_analysis_type==StokesAnalysisEnum){
 		/*On a 3d mesh, in stokes formualtions, only stokes grids are free, the others are frozen: */
 		if (!iomodel->borderstokes) ISSMERROR("iomodel->borderstokes is NULL");
@@ -132,5 +132,5 @@
 
 	/*Diagnostic Hutter*/
-	if (iomodel->analysis_type==DiagnosticAnalysisEnum() && iomodel->sub_analysis_type==HutterAnalysisEnum()){
+	if (iomodel->analysis_type==DiagnosticAnalysisEnum && iomodel->sub_analysis_type==HutterAnalysisEnum){
 		/*Spc all nodes that are not Hutter*/
 		if (!iomodel->gridonhutter) ISSMERROR("iomodel->gridonhutter is NULL");
@@ -144,9 +144,9 @@
 	/*Prognostic/ Melting/ Slopecompute/ Balancedvelocities/ Balancedthickness*/
 	if (
-				iomodel->analysis_type==PrognosticAnalysisEnum() || 
-				iomodel->analysis_type==MeltingAnalysisEnum() || 
-				iomodel->analysis_type==SlopecomputeAnalysisEnum() || 
-				iomodel->analysis_type==BalancedvelocitiesAnalysisEnum() || 
-				iomodel->analysis_type==BalancedthicknessAnalysisEnum()
+				iomodel->analysis_type==PrognosticAnalysisEnum || 
+				iomodel->analysis_type==MeltingAnalysisEnum || 
+				iomodel->analysis_type==SlopecomputeAnalysisEnum || 
+				iomodel->analysis_type==BalancedvelocitiesAnalysisEnum || 
+				iomodel->analysis_type==BalancedthicknessAnalysisEnum
 				){
 		if (strcmp(iomodel->meshtype,"3d")==0){
@@ -295,5 +295,5 @@
 int Node::Enum(void){
 
-	return NodeEnum();
+	return NodeEnum;
 
 }
@@ -354,5 +354,5 @@
 
 	/*get enum type of Node: */
-	enum_type=NodeEnum();
+	enum_type=NodeEnum;
 	
 	/*marshall enum: */
Index: issm/trunk/src/c/objects/NodeProperties.cpp
===================================================================
--- issm/trunk/src/c/objects/NodeProperties.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/NodeProperties.cpp	(revision 3567)
@@ -80,5 +80,5 @@
 
 	/*get enum type of NodeProperties: */
-	enum_type=NodePropertiesEnum();
+	enum_type=NodePropertiesEnum;
 	
 	/*marshall enum: */
Index: issm/trunk/src/c/objects/Numericalflux.cpp
===================================================================
--- issm/trunk/src/c/objects/Numericalflux.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Numericalflux.cpp	(revision 3567)
@@ -96,5 +96,5 @@
 
 	/*get enum type of Numericalflux: */
-	enum_type=NumericalfluxEnum();
+	enum_type=NumericalfluxEnum;
 	
 	/*marshall enum: */
@@ -571,5 +571,5 @@
 int Numericalflux::Enum(void){
 
-	return NumericalfluxEnum();
+	return NumericalfluxEnum;
 
 }
Index: issm/trunk/src/c/objects/Numpar.cpp
===================================================================
--- issm/trunk/src/c/objects/Numpar.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Numpar.cpp	(revision 3567)
@@ -60,5 +60,5 @@
 
 	/*get enum type of Numpar: */
-	enum_type=NumparEnum();
+	enum_type=NumparEnum;
 	
 	/*marshall enum: */
@@ -204,5 +204,5 @@
 int Numpar::Enum(void){
 
-	return NumparEnum();
+	return NumparEnum;
 
 }
Index: issm/trunk/src/c/objects/Param.cpp
===================================================================
--- issm/trunk/src/c/objects/Param.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Param.cpp	(revision 3567)
@@ -233,5 +233,5 @@
 
 	/*get enum type of Param: */
-	enum_type=ParamEnum();
+	enum_type=ParamEnum;
 	
 	/*marshall enum: */
@@ -437,5 +437,5 @@
 int Param::Enum(void){
 
-	return ParamEnum();
+	return ParamEnum;
 }
 /*}}}*/
Index: issm/trunk/src/c/objects/Pengrid.cpp
===================================================================
--- issm/trunk/src/c/objects/Pengrid.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Pengrid.cpp	(revision 3567)
@@ -64,5 +64,5 @@
 
 	/*get enum type of Pengrid: */
-	enum_type=PengridEnum();
+	enum_type=PengridEnum;
 	
 	/*marshall enum: */
@@ -219,5 +219,5 @@
 int Pengrid::Enum(void){
 
-	return PengridEnum();
+	return PengridEnum;
 }
 /*}}}1*/
@@ -255,5 +255,5 @@
 void  Pengrid::PenaltyConstrain(int* punstable,void* vinputs,int analysis_type,int sub_analysis_type){
 
-	if ((analysis_type==DiagnosticAnalysisEnum()) && ((sub_analysis_type==StokesAnalysisEnum()))){
+	if ((analysis_type==DiagnosticAnalysisEnum) && ((sub_analysis_type==StokesAnalysisEnum))){
 
 		/*No penalty to check*/
@@ -261,10 +261,10 @@
 
 	}
-	else if (analysis_type==ThermalAnalysisEnum()){
+	else if (analysis_type==ThermalAnalysisEnum){
 		
 		PenaltyConstrainThermal(punstable,vinputs,analysis_type,sub_analysis_type);
 		
 	}
-	else if (analysis_type==MeltingAnalysisEnum()){
+	else if (analysis_type==MeltingAnalysisEnum){
 			
 		/*No penalty to check*/
@@ -362,14 +362,14 @@
 void  Pengrid::PenaltyCreateKMatrix(Mat Kgg,void* inputs,double kmax,int analysis_type,int sub_analysis_type){
 
-	if ((analysis_type==DiagnosticAnalysisEnum()) && ((sub_analysis_type==StokesAnalysisEnum()))){
+	if ((analysis_type==DiagnosticAnalysisEnum) && ((sub_analysis_type==StokesAnalysisEnum))){
 
 		PenaltyCreateKMatrixDiagnosticStokes( Kgg,inputs,kmax,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==ThermalAnalysisEnum()){
+	else if (analysis_type==ThermalAnalysisEnum){
 		
 		PenaltyCreateKMatrixThermal( Kgg,inputs,kmax,analysis_type,sub_analysis_type);
 		
 	}
-	else if (analysis_type==MeltingAnalysisEnum()){
+	else if (analysis_type==MeltingAnalysisEnum){
 			
 		PenaltyCreateKMatrixMelting( Kgg,inputs,kmax,analysis_type,sub_analysis_type);
@@ -500,15 +500,15 @@
 void  Pengrid::PenaltyCreatePVector(Vec pg,void* inputs,double kmax,int analysis_type,int sub_analysis_type){
 
-	if (analysis_type==ThermalAnalysisEnum()){
+	if (analysis_type==ThermalAnalysisEnum){
 		
 		PenaltyCreatePVectorThermal( pg,inputs,kmax,analysis_type,sub_analysis_type);
 		
 	}
-	else if (analysis_type==MeltingAnalysisEnum()){
+	else if (analysis_type==MeltingAnalysisEnum){
 			
 		PenaltyCreatePVectorMelting( pg,inputs,kmax,analysis_type,sub_analysis_type);
 
 	}
-	else if (analysis_type==DiagnosticAnalysisEnum()){
+	else if (analysis_type==DiagnosticAnalysisEnum){
 
 		/*No loads applied, do nothing: */
Index: issm/trunk/src/c/objects/Penpair.cpp
===================================================================
--- issm/trunk/src/c/objects/Penpair.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Penpair.cpp	(revision 3567)
@@ -61,5 +61,5 @@
 
 	/*get enum type of Penpair: */
-	enum_type=PenpairEnum();
+	enum_type=PenpairEnum;
 	
 	/*marshall enum: */
@@ -198,5 +198,5 @@
 int Penpair::Enum(void){
 
-	return PenpairEnum();
+	return PenpairEnum;
 }
 /*}}}1*/
Index: issm/trunk/src/c/objects/Penta.cpp
===================================================================
--- issm/trunk/src/c/objects/Penta.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Penta.cpp	(revision 3567)
@@ -81,5 +81,5 @@
 	//elements of type 3 are macayeal type penta. we collapse the formulation on their base.
 	if(iomodel->elements_type){
-		if (*(iomodel->elements_type+2*i+0)==MacAyealFormulationEnum()){ 
+		if (*(iomodel->elements_type+2*i+0)==MacAyealFormulationEnum){ 
 			this->properties.collapse=1;
 		}
@@ -196,5 +196,5 @@
 
 	/*get enum type of Penta: */
-	enum_type=PentaEnum();
+	enum_type=PentaEnum;
 
 	/*marshall enum: */
@@ -387,5 +387,5 @@
 
 	/*Check analysis_types*/
-	if (analysis_type!=DiagnosticAnalysisEnum() || sub_analysis_type!=StokesAnalysisEnum()) ISSMERROR("Not supported yet!");
+	if (analysis_type!=DiagnosticAnalysisEnum || sub_analysis_type!=StokesAnalysisEnum) ISSMERROR("Not supported yet!");
 
 	/*recover pointers: */
@@ -555,20 +555,20 @@
 
 	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
-	if (analysis_type==ControlAnalysisEnum()){
+	if (analysis_type==ControlAnalysisEnum){
 
 		CreateKMatrixDiagnosticHoriz( Kgg,inputs,analysis_type,sub_analysis_type);
 
 	}
-	else if (analysis_type==DiagnosticAnalysisEnum()){
-
-		if (sub_analysis_type==HorizAnalysisEnum()){
+	else if (analysis_type==DiagnosticAnalysisEnum){
+
+		if (sub_analysis_type==HorizAnalysisEnum){
 
 			CreateKMatrixDiagnosticHoriz( Kgg,inputs,analysis_type,sub_analysis_type);
 		}
-		else if (sub_analysis_type==VertAnalysisEnum()){
+		else if (sub_analysis_type==VertAnalysisEnum){
 
 			CreateKMatrixDiagnosticVert( Kgg,inputs,analysis_type,sub_analysis_type);
 		}
-		else if (sub_analysis_type==StokesAnalysisEnum()){
+		else if (sub_analysis_type==StokesAnalysisEnum){
 
 			CreateKMatrixDiagnosticStokes( Kgg,inputs,analysis_type,sub_analysis_type);
@@ -577,25 +577,25 @@
 		else ISSMERROR(exprintf("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"));
 	}
-	else if (analysis_type==SlopecomputeAnalysisEnum()){
+	else if (analysis_type==SlopecomputeAnalysisEnum){
 
 		CreateKMatrixSlopeCompute( Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==PrognosticAnalysisEnum()){
+	else if (analysis_type==PrognosticAnalysisEnum){
 
 		CreateKMatrixPrognostic( Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==BalancedthicknessAnalysisEnum()){
+	else if (analysis_type==BalancedthicknessAnalysisEnum){
 
 		CreateKMatrixBalancedthickness( Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==BalancedvelocitiesAnalysisEnum()){
+	else if (analysis_type==BalancedvelocitiesAnalysisEnum){
 
 		CreateKMatrixBalancedvelocities( Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==ThermalAnalysisEnum()){
+	else if (analysis_type==ThermalAnalysisEnum){
 
 		CreateKMatrixThermal( Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==MeltingAnalysisEnum()){
+	else if (analysis_type==MeltingAnalysisEnum){
 
 		CreateKMatrixMelting( Kgg,inputs,analysis_type,sub_analysis_type);
@@ -1683,19 +1683,19 @@
 
 	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
-	if (analysis_type==ControlAnalysisEnum()){
+	if (analysis_type==ControlAnalysisEnum){
 
 		CreatePVectorDiagnosticHoriz( pg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==DiagnosticAnalysisEnum()){
-
-		if (sub_analysis_type==HorizAnalysisEnum()){
+	else if (analysis_type==DiagnosticAnalysisEnum){
+
+		if (sub_analysis_type==HorizAnalysisEnum){
 
 			CreatePVectorDiagnosticHoriz( pg,inputs,analysis_type,sub_analysis_type);
 		}
-		else if (sub_analysis_type==VertAnalysisEnum()){
+		else if (sub_analysis_type==VertAnalysisEnum){
 
 			CreatePVectorDiagnosticVert( pg,inputs,analysis_type,sub_analysis_type);
 		}
-		else if (sub_analysis_type==StokesAnalysisEnum()){
+		else if (sub_analysis_type==StokesAnalysisEnum){
 
 			CreatePVectorDiagnosticStokes( pg,inputs,analysis_type,sub_analysis_type);
@@ -1703,25 +1703,25 @@
 		else ISSMERROR(exprintf("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"));
 	}
-	else if (analysis_type==SlopecomputeAnalysisEnum()){
+	else if (analysis_type==SlopecomputeAnalysisEnum){
 
 		CreatePVectorSlopeCompute( pg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==PrognosticAnalysisEnum()){
+	else if (analysis_type==PrognosticAnalysisEnum){
 
 		CreatePVectorPrognostic( pg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==BalancedthicknessAnalysisEnum()){
+	else if (analysis_type==BalancedthicknessAnalysisEnum){
 
 		CreatePVectorBalancedthickness( pg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==BalancedvelocitiesAnalysisEnum()){
+	else if (analysis_type==BalancedvelocitiesAnalysisEnum){
 
 		CreatePVectorBalancedvelocities( pg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==ThermalAnalysisEnum()){
+	else if (analysis_type==ThermalAnalysisEnum){
 
 		CreatePVectorThermal( pg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==MeltingAnalysisEnum()){
+	else if (analysis_type==MeltingAnalysisEnum){
 
 		CreatePVectorMelting( pg,inputs,analysis_type,sub_analysis_type);
@@ -2620,5 +2620,5 @@
 int Penta::Enum(void){
 
-	return PentaEnum();
+	return PentaEnum;
 
 }
@@ -4059,5 +4059,5 @@
 	if (!this->properties.onbed) return;
 
-	if (sub_analysis_type==HorizAnalysisEnum()){
+	if (sub_analysis_type==HorizAnalysisEnum){
 
 		/*MacAyeal or Pattyn*/
@@ -4067,5 +4067,5 @@
 		return;
 	}
-	else if (sub_analysis_type==StokesAnalysisEnum()){
+	else if (sub_analysis_type==StokesAnalysisEnum){
 
 		/*Stokes*/
Index: issm/trunk/src/c/objects/Result.cpp
===================================================================
--- issm/trunk/src/c/objects/Result.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Result.cpp	(revision 3567)
@@ -202,5 +202,5 @@
 int Result::Enum(void){
 
-	return ResultEnum();
+	return ResultEnum;
 
 }
Index: issm/trunk/src/c/objects/Rgb.cpp
===================================================================
--- issm/trunk/src/c/objects/Rgb.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Rgb.cpp	(revision 3567)
@@ -52,5 +52,5 @@
 
 	/*get enum type of Rgb: */
-	enum_type=RgbEnum();
+	enum_type=RgbEnum;
 	
 	/*marshall enum: */
@@ -130,5 +130,5 @@
 int Rgb::Enum(void){
 
-	return RgbEnum();
+	return RgbEnum;
 
 }
Index: issm/trunk/src/c/objects/Riftfront.cpp
===================================================================
--- issm/trunk/src/c/objects/Riftfront.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Riftfront.cpp	(revision 3567)
@@ -182,5 +182,5 @@
 
 	/*get enum type of Riftfront: */
-	enum_type=RiftfrontEnum();
+	enum_type=RiftfrontEnum;
 	
 	/*marshall enum: */
@@ -453,5 +453,5 @@
 int Riftfront::Enum(void){
 
-	return RiftfrontEnum();
+	return RiftfrontEnum;
 
 }
@@ -729,5 +729,5 @@
 
 		/*Ok, now compute the pressure (in norm) that is being applied to the flanks, depending on the type of fill: */
-		if(fill==WaterEnum()){
+		if(fill==WaterEnum){
 			if(shelf){
 				/*We are on an ice shelf, hydrostatic equilibrium is used to determine the pressure for water fill: */
@@ -739,11 +739,11 @@
 			}
 		}
-		else if(fill==AirEnum()){
+		else if(fill==AirEnum){
 			pressure=rho_ice*gravity*pow(thickness,(double)2)/(double)2;   //icefront on an ice sheet, pressure imbalance ice vs air.
 		}
-		else if(fill==IceEnum()){ //icefront finding itself against another icefront (pressure imbalance is fully compensated, ice vs ice)
+		else if(fill==IceEnum){ //icefront finding itself against another icefront (pressure imbalance is fully compensated, ice vs ice)
 			pressure=0;
 		}
-		else if(fill==MelangeEnum()){ //icefront finding itself against another icefront (pressure imbalance is fully compensated, ice vs ice)
+		else if(fill==MelangeEnum){ //icefront finding itself against another icefront (pressure imbalance is fully compensated, ice vs ice)
 			
 			if(!shelf) ISSMERROR(exprintf("%s%i%s","fill type ",fill," not supported on ice sheets yet."));
Index: issm/trunk/src/c/objects/Sing.cpp
===================================================================
--- issm/trunk/src/c/objects/Sing.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Sing.cpp	(revision 3567)
@@ -193,5 +193,5 @@
 
 	/*get enum type of Sing: */
-	enum_type=SingEnum();
+	enum_type=SingEnum;
 	
 	/*marshall enum: */
@@ -348,5 +348,5 @@
 
 	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
-	if ((analysis_type==DiagnosticAnalysisEnum()) && (sub_analysis_type==HutterAnalysisEnum())){
+	if ((analysis_type==DiagnosticAnalysisEnum) && (sub_analysis_type==HutterAnalysisEnum)){
 
 		CreateKMatrixDiagnosticHutter( Kgg,inputs,analysis_type,sub_analysis_type);
@@ -385,5 +385,5 @@
 	
 	/*Just branch to the correct load generator, according to the type of analysis we are carrying out: */
-	if ((analysis_type==DiagnosticAnalysisEnum()) && (sub_analysis_type==HutterAnalysisEnum())){
+	if ((analysis_type==DiagnosticAnalysisEnum) && (sub_analysis_type==HutterAnalysisEnum)){
 	
 			CreatePVectorDiagnosticHutter( pg,inputs,analysis_type,sub_analysis_type);
@@ -472,5 +472,5 @@
 int Sing::Enum(void){
 
-	return SingEnum();
+	return SingEnum;
 
 }
Index: issm/trunk/src/c/objects/Spc.cpp
===================================================================
--- issm/trunk/src/c/objects/Spc.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Spc.cpp	(revision 3567)
@@ -53,5 +53,5 @@
 
 	/*get enum type of Spc: */
-	enum_type=SpcEnum();
+	enum_type=SpcEnum;
 	
 	/*marshall enum: */
@@ -130,5 +130,5 @@
 int Spc::Enum(void){
 
-	return SpcEnum();
+	return SpcEnum;
 
 }
Index: issm/trunk/src/c/objects/Tria.cpp
===================================================================
--- issm/trunk/src/c/objects/Tria.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Tria.cpp	(revision 3567)
@@ -77,5 +77,5 @@
 	/*hooks: */
 	//go recover node ids, needed to initialize the node hook.
-	if (iomodel->analysis_type==Prognostic2AnalysisEnum()){
+	if (iomodel->analysis_type==Prognostic2AnalysisEnum){
 		/*Discontinuous Galerkin*/
 		tria_node_ids[0]=3*i+1;
@@ -209,5 +209,5 @@
 
 	/*get enum type of Tria: */
-	enum_type=TriaEnum();
+	enum_type=TriaEnum;
 
 	/*marshall enum: */
@@ -569,11 +569,11 @@
 
 	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
-	if (analysis_type==ControlAnalysisEnum()){
+	if (analysis_type==ControlAnalysisEnum){
 		
 		CreateKMatrixDiagnosticHoriz( Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==DiagnosticAnalysisEnum()){
+	else if (analysis_type==DiagnosticAnalysisEnum){
 	
-		if (sub_analysis_type==HorizAnalysisEnum()){
+		if (sub_analysis_type==HorizAnalysisEnum){
 
 			CreateKMatrixDiagnosticHoriz( Kgg,inputs,analysis_type,sub_analysis_type);
@@ -582,21 +582,21 @@
 
 	}
-	else if (analysis_type==SlopecomputeAnalysisEnum()){
+	else if (analysis_type==SlopecomputeAnalysisEnum){
 
 		CreateKMatrixSlopeCompute( Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==PrognosticAnalysisEnum()){
+	else if (analysis_type==PrognosticAnalysisEnum){
 
 		CreateKMatrixPrognostic( Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==Prognostic2AnalysisEnum()){
+	else if (analysis_type==Prognostic2AnalysisEnum){
 
 		CreateKMatrixPrognostic2(Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==BalancedthicknessAnalysisEnum()){
+	else if (analysis_type==BalancedthicknessAnalysisEnum){
 
 		CreateKMatrixBalancedthickness( Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==BalancedvelocitiesAnalysisEnum()){
+	else if (analysis_type==BalancedvelocitiesAnalysisEnum){
 
 		CreateKMatrixBalancedvelocities( Kgg,inputs,analysis_type,sub_analysis_type);
@@ -2177,11 +2177,11 @@
 	
 	/*Just branch to the correct load generator, according to the type of analysis we are carrying out: */
-	if (analysis_type==ControlAnalysisEnum()){
+	if (analysis_type==ControlAnalysisEnum){
 		
 		CreatePVectorDiagnosticHoriz( pg,inputs,analysis_type,sub_analysis_type);
 	
 	}
-	else if (analysis_type==DiagnosticAnalysisEnum()){
-		if (sub_analysis_type==HorizAnalysisEnum()){
+	else if (analysis_type==DiagnosticAnalysisEnum){
+		if (sub_analysis_type==HorizAnalysisEnum){
 		
 			CreatePVectorDiagnosticHoriz( pg,inputs,analysis_type,sub_analysis_type);
@@ -2189,21 +2189,21 @@
 		else ISSMERROR(exprintf("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"));
 	}
-	else if (analysis_type==SlopecomputeAnalysisEnum()){
+	else if (analysis_type==SlopecomputeAnalysisEnum){
 		
 		CreatePVectorSlopeCompute( pg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==PrognosticAnalysisEnum()){
+	else if (analysis_type==PrognosticAnalysisEnum){
 
 		CreatePVectorPrognostic( pg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==Prognostic2AnalysisEnum()){
+	else if (analysis_type==Prognostic2AnalysisEnum){
 
 		CreatePVectorPrognostic2( pg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==BalancedthicknessAnalysisEnum()){
+	else if (analysis_type==BalancedthicknessAnalysisEnum){
 
 		CreatePVectorBalancedthickness( pg,inputs,analysis_type,sub_analysis_type);
 	}
-	else if (analysis_type==BalancedvelocitiesAnalysisEnum()){
+	else if (analysis_type==BalancedvelocitiesAnalysisEnum){
 
 		CreatePVectorBalancedvelocities( pg,inputs,analysis_type,sub_analysis_type);
@@ -3004,8 +3004,8 @@
 	for(i=0;i<numdof;i++) pe_g[i]=0.0;
 
-	if ( (sub_analysis_type==SurfaceXAnalysisEnum()) || (sub_analysis_type==SurfaceYAnalysisEnum())){
+	if ( (sub_analysis_type==SurfaceXAnalysisEnum) || (sub_analysis_type==SurfaceYAnalysisEnum)){
 		for(i=0;i<numdof;i++) param[i]=this->properties.s[i];
 	}
-	if ( (sub_analysis_type==BedXAnalysisEnum()) || (sub_analysis_type==BedYAnalysisEnum())){
+	if ( (sub_analysis_type==BedXAnalysisEnum) || (sub_analysis_type==BedYAnalysisEnum)){
 		for(i=0;i<numdof;i++) param[i]=this->properties.b[i];
 	}
@@ -3032,8 +3032,8 @@
 
 		/*Build pe_g_gaussian vector: */
-		if ( (sub_analysis_type==SurfaceXAnalysisEnum()) || (sub_analysis_type==BedXAnalysisEnum())){
+		if ( (sub_analysis_type==SurfaceXAnalysisEnum) || (sub_analysis_type==BedXAnalysisEnum)){
 			for(i=0;i<numdof;i++) pe_g_gaussian[i]=Jdet*gauss_weight*slope[0]*l1l2l3[i];
 		}
-		if ( (sub_analysis_type==SurfaceYAnalysisEnum()) || (sub_analysis_type==BedYAnalysisEnum())){
+		if ( (sub_analysis_type==SurfaceYAnalysisEnum) || (sub_analysis_type==BedYAnalysisEnum)){
 			for(i=0;i<numdof;i++) pe_g_gaussian[i]=Jdet*gauss_weight*slope[1]*l1l2l3[i];
 		}
@@ -3613,5 +3613,5 @@
 int Tria::Enum(void){
 
-	return TriaEnum();
+	return TriaEnum;
 
 }
Index: issm/trunk/src/c/objects/Vertex.cpp
===================================================================
--- issm/trunk/src/c/objects/Vertex.cpp	(revision 3566)
+++ issm/trunk/src/c/objects/Vertex.cpp	(revision 3567)
@@ -116,5 +116,5 @@
 int Vertex::Enum(void){
 
-	return VertexEnum();
+	return VertexEnum;
 
 }
@@ -138,5 +138,5 @@
 
 	/*get enum type of Vertex: */
-	enum_type=VertexEnum();
+	enum_type=VertexEnum;
 
 	/*marshall enum: */
Index: issm/trunk/src/c/parallel/ControlInitialization.cpp
===================================================================
--- issm/trunk/src/c/parallel/ControlInitialization.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/ControlInitialization.cpp	(revision 3567)
@@ -60,9 +60,9 @@
 
 	/*recover fem models: */
-	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum());
-	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum(),VertAnalysisEnum());
-	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum(),StokesAnalysisEnum());
-	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum(),HutterAnalysisEnum());
-	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum());
+	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum);
+	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum,VertAnalysisEnum);
+	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum,StokesAnalysisEnum);
+	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum,HutterAnalysisEnum);
+	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum);
 
 	//specific parameters for specific models
@@ -81,6 +81,6 @@
 	//compute slopes
 	if(verbose)_printf_("%s\n","computing bed slope (x and y derivatives)...");
-	diagnostic_core_linear(&slopex,fem_sl,inputs,SlopecomputeAnalysisEnum(),BedXAnalysisEnum());
-	diagnostic_core_linear(&slopey,fem_sl,inputs,SlopecomputeAnalysisEnum(),BedYAnalysisEnum());
+	diagnostic_core_linear(&slopex,fem_sl,inputs,SlopecomputeAnalysisEnum,BedXAnalysisEnum);
+	diagnostic_core_linear(&slopey,fem_sl,inputs,SlopecomputeAnalysisEnum,BedYAnalysisEnum);
 	FieldExtrudex( slopex, fem_sl->elements,fem_sl->nodes,fem_sl->vertices,fem_sl->loads,fem_sl->materials,fem_sl->parameters,"slopex",0);
 	FieldExtrudex( slopey, fem_sl->elements,fem_sl->nodes,fem_sl->vertices,fem_sl->loads,fem_sl->materials,fem_sl->parameters,"slopey",0);
@@ -95,5 +95,5 @@
 	//horizontal velocity
 	if(verbose)_printf_("%s\n"," computing horizontal velocities...");
-	diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_dh,inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+	diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_dh,inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);
 	if(verbose)_printf_("%s\n"," extruding horizontal velocities...");
 	VecDuplicatePatch(&ug_horiz,ug); FieldExtrudex( ug_horiz,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh-> materials,fem_dh->parameters,"velocity",1);
@@ -102,5 +102,5 @@
 	if(verbose)_printf_("%s\n"," computing vertical velocities...");
 	inputs->Add("velocity",ug_horiz,numberofdofspernode_dh,numberofnodes);
-	diagnostic_core_linear(&ug_vert,fem_dv,inputs,DiagnosticAnalysisEnum(),VertAnalysisEnum());
+	diagnostic_core_linear(&ug_vert,fem_dv,inputs,DiagnosticAnalysisEnum,VertAnalysisEnum);
 
 	//Create 3d u_g
@@ -113,5 +113,5 @@
 	//Create 4d u_g
 	if(verbose)_printf_("%s\n"," computing pressure according to Pattyn...");
-	ComputePressurex( &pg,fem_dh->elements, fem_dh->nodes, fem_dh->vertices,fem_dh->loads,  fem_dh->materials, fem_dh->parameters,inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+	ComputePressurex( &pg,fem_dh->elements, fem_dh->nodes, fem_dh->vertices,fem_dh->loads,  fem_dh->materials, fem_dh->parameters,inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);
 	VecScale(pg,1.0/stokesreconditioning);
 	ug_stokes=NewVec(fem_ds->nodesets->GetGSize());
@@ -133,5 +133,5 @@
 	if(verbose)_printf_("%s\n"," computing stokes velocities and pressure ...");
 	VecFree(&ug);
-	diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_ds,inputs,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
+	diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_ds,inputs,DiagnosticAnalysisEnum,StokesAnalysisEnum);
 
 	//Add in inputs
Index: issm/trunk/src/c/parallel/ControlRestart.cpp
===================================================================
--- issm/trunk/src/c/parallel/ControlRestart.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/ControlRestart.cpp	(revision 3567)
@@ -34,5 +34,5 @@
 	for(i=0;i<numberofnodes;i++) param_g_copy[i]=param_g[i];
 
-	temporary_results=new DataSet(ResultsEnum()); 
+	temporary_results=new DataSet(ResultsEnum); 
 	result=new Result(temporary_results->Size()+1,0,1,"param_g",param_g_copy,numberofnodes);
 	temporary_results->AddObject(result);
@@ -42,5 +42,5 @@
 
 	//process results
-	ProcessResults(&results,temporary_results,model,ControlAnalysisEnum());
+	ProcessResults(&results,temporary_results,model,ControlAnalysisEnum);
 
 	//Write results on disk
Index: issm/trunk/src/c/parallel/ProcessResults.cpp
===================================================================
--- issm/trunk/src/c/parallel/ProcessResults.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/ProcessResults.cpp	(revision 3567)
@@ -109,5 +109,5 @@
 
 	/*Initialize new results: */
-	newresults=new DataSet(ResultsEnum());
+	newresults=new DataSet(ResultsEnum);
 	
 	/*some flags needed: */
@@ -118,26 +118,26 @@
 
 	/*Recover femmodels first: */
-	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum);
 	fem_c=fem_dh;
-	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum(),VertAnalysisEnum());
-	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum(),StokesAnalysisEnum());
-	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum(),HutterAnalysisEnum());
-	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum());
-	if(analysis_type==PrognosticAnalysisEnum()){
-		fem_p=model->GetFormulation(PrognosticAnalysisEnum());
+	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum,VertAnalysisEnum);
+	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum,StokesAnalysisEnum);
+	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum,HutterAnalysisEnum);
+	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum);
+	if(analysis_type==PrognosticAnalysisEnum){
+		fem_p=model->GetFormulation(PrognosticAnalysisEnum);
 	}
-	if(analysis_type==Prognostic2AnalysisEnum()){
-		fem_p=model->GetFormulation(Prognostic2AnalysisEnum());
+	if(analysis_type==Prognostic2AnalysisEnum){
+		fem_p=model->GetFormulation(Prognostic2AnalysisEnum);
 	}
-	if(analysis_type==TransientAnalysisEnum()){
-		fem_p=model->GetFormulation(PrognosticAnalysisEnum());
+	if(analysis_type==TransientAnalysisEnum){
+		fem_p=model->GetFormulation(PrognosticAnalysisEnum);
 	}
-	if(analysis_type==BalancedthicknessAnalysisEnum()){
-		fem_p=model->GetFormulation(BalancedthicknessAnalysisEnum());
+	if(analysis_type==BalancedthicknessAnalysisEnum){
+		fem_p=model->GetFormulation(BalancedthicknessAnalysisEnum);
 	}
-	if(analysis_type==BalancedvelocitiesAnalysisEnum()){
-		fem_p=model->GetFormulation(BalancedvelocitiesAnalysisEnum());
+	if(analysis_type==BalancedvelocitiesAnalysisEnum){
+		fem_p=model->GetFormulation(BalancedvelocitiesAnalysisEnum);
 	}
-	fem_t=model->GetFormulation(ThermalAnalysisEnum());
+	fem_t=model->GetFormulation(ThermalAnalysisEnum);
 
 	for(n=0;n<results->Size();n++){
Index: issm/trunk/src/c/parallel/balancedthickness.cpp
===================================================================
--- issm/trunk/src/c/parallel/balancedthickness.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/balancedthickness.cpp	(revision 3567)
@@ -76,5 +76,5 @@
 
 	_printf_("read and create finite element model:\n");
-	model->AddFormulation(fid,BalancedthicknessAnalysisEnum());
+	model->AddFormulation(fid,BalancedthicknessAnalysisEnum);
 
 	/*recover parameters: */
@@ -84,7 +84,7 @@
 	_printf_("initialize inputs:\n");
 	
-	model->FindParam(&u_g_serial,NULL,NULL,"u_g",BalancedthicknessAnalysisEnum());
-	model->FindParam(&melting_g,NULL,NULL,"m_g",BalancedthicknessAnalysisEnum());
-	model->FindParam(&accumulation_g,NULL,NULL,"a_g",BalancedthicknessAnalysisEnum());
+	model->FindParam(&u_g_serial,NULL,NULL,"u_g",BalancedthicknessAnalysisEnum);
+	model->FindParam(&melting_g,NULL,NULL,"m_g",BalancedthicknessAnalysisEnum);
+	model->FindParam(&accumulation_g,NULL,NULL,"a_g",BalancedthicknessAnalysisEnum);
 	model->FindParam(&numberofnodes,"numberofnodes");
 	
@@ -95,5 +95,5 @@
 
 	_printf_("initialize results:\n");
-	results=new DataSet(ResultsEnum());
+	results=new DataSet(ResultsEnum);
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
@@ -115,5 +115,5 @@
 		#ifdef _HAVE_DAKOTA_ 
 		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(model,inputs,BalancedthicknessAnalysisEnum(),NoneAnalysisEnum());
+		Qmux(model,inputs,BalancedthicknessAnalysisEnum,NoneAnalysisEnum);
 		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
@@ -127,5 +127,5 @@
 	
 	_printf_("process results:\n");
-	ProcessResults(&processedresults,results,model,BalancedthicknessAnalysisEnum());
+	ProcessResults(&processedresults,results,model,BalancedthicknessAnalysisEnum);
 	
 	_printf_("write results to disk:\n");
Index: issm/trunk/src/c/parallel/balancedthickness_core.cpp
===================================================================
--- issm/trunk/src/c/parallel/balancedthickness_core.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/balancedthickness_core.cpp	(revision 3567)
@@ -35,5 +35,5 @@
 
 	/*recover fem model: */
-	fem_p=model->GetFormulation(BalancedthicknessAnalysisEnum());
+	fem_p=model->GetFormulation(BalancedthicknessAnalysisEnum);
 
 	//first recover parameters common to all solutions
@@ -48,5 +48,5 @@
 	
 	_printf_("call computational core:\n");
-	diagnostic_core_linear(&h_g,fem_p,inputs,BalancedthicknessAnalysisEnum(),NoneAnalysisEnum());
+	diagnostic_core_linear(&h_g,fem_p,inputs,BalancedthicknessAnalysisEnum,NoneAnalysisEnum);
 
 	_printf_("extrude computed thickness on all layers:\n");
Index: issm/trunk/src/c/parallel/balancedvelocities.cpp
===================================================================
--- issm/trunk/src/c/parallel/balancedvelocities.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/balancedvelocities.cpp	(revision 3567)
@@ -73,5 +73,5 @@
 
 	_printf_("read and create finite element model:\n");
-	model->AddFormulation(fid,BalancedvelocitiesAnalysisEnum());
+	model->AddFormulation(fid,BalancedvelocitiesAnalysisEnum);
 
 	/*recover parameters: */
@@ -81,7 +81,7 @@
 	_printf_("initialize inputs:\n");
 	
-	model->FindParam(&u_g_serial,NULL,NULL,"u_g",BalancedvelocitiesAnalysisEnum());
-	model->FindParam(&melting_g,NULL,NULL,"m_g",BalancedvelocitiesAnalysisEnum());
-	model->FindParam(&accumulation_g,NULL,NULL,"a_g",BalancedvelocitiesAnalysisEnum());
+	model->FindParam(&u_g_serial,NULL,NULL,"u_g",BalancedvelocitiesAnalysisEnum);
+	model->FindParam(&melting_g,NULL,NULL,"m_g",BalancedvelocitiesAnalysisEnum);
+	model->FindParam(&accumulation_g,NULL,NULL,"a_g",BalancedvelocitiesAnalysisEnum);
 	model->FindParam(&numberofnodes,"numberofnodes");
 	
@@ -92,5 +92,5 @@
 
 	_printf_("initialize results:\n");
-	results=new DataSet(ResultsEnum());
+	results=new DataSet(ResultsEnum);
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
@@ -112,5 +112,5 @@
 		#ifdef _HAVE_DAKOTA_ 
 		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(model,inputs,BalancedvelocitiesAnalysisEnum(),NoneAnalysisEnum());
+		Qmux(model,inputs,BalancedvelocitiesAnalysisEnum,NoneAnalysisEnum);
 		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
@@ -124,5 +124,5 @@
 	
 	_printf_("process results:\n");
-	ProcessResults(&processedresults,results,model,BalancedvelocitiesAnalysisEnum());
+	ProcessResults(&processedresults,results,model,BalancedvelocitiesAnalysisEnum);
 	
 	_printf_("write results to disk:\n");
Index: issm/trunk/src/c/parallel/balancedvelocities_core.cpp
===================================================================
--- issm/trunk/src/c/parallel/balancedvelocities_core.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/balancedvelocities_core.cpp	(revision 3567)
@@ -34,5 +34,5 @@
 
 	/*recover fem model: */
-	fem_p=model->GetFormulation(BalancedvelocitiesAnalysisEnum());
+	fem_p=model->GetFormulation(BalancedvelocitiesAnalysisEnum);
 
 	//first recover parameters common to all solutions
@@ -47,5 +47,5 @@
 	
 	_printf_("call computational core:\n");
-	diagnostic_core_linear(&v_g,fem_p,inputs,BalancedvelocitiesAnalysisEnum(),NoneAnalysisEnum());
+	diagnostic_core_linear(&v_g,fem_p,inputs,BalancedvelocitiesAnalysisEnum,NoneAnalysisEnum);
 
 	_printf_("extrude computed thickness on all layers:\n");
Index: issm/trunk/src/c/parallel/control_core.cpp
===================================================================
--- issm/trunk/src/c/parallel/control_core.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/control_core.cpp	(revision 3567)
@@ -97,5 +97,5 @@
 		 * distribution: */
 		if (control_steady){
-			steadystate_results=new DataSet(ResultsEnum());
+			steadystate_results=new DataSet(ResultsEnum);
 			steadystate_core(steadystate_results,model,inputs);
 			VecFree(&t_g); steadystate_results->FindResult(&t_g,"t_g");
@@ -108,5 +108,5 @@
 
 		_printf_("%s\n","      computing gradJ...");
-		gradjcompute_results=new DataSet(ResultsEnum()); 
+		gradjcompute_results=new DataSet(ResultsEnum); 
 		gradjcompute_core(gradjcompute_results,model, inputs);
 		gradjcompute_results->FindResult(&grad_g,"grad_g");
@@ -205,5 +205,5 @@
 	if (control_steady){
 		inputs->Add(control_type,param_g,1,numberofnodes);
-		steadystate_results=new DataSet(ResultsEnum());
+		steadystate_results=new DataSet(ResultsEnum);
 		steadystate_core(steadystate_results,model,inputs);
 
@@ -216,5 +216,5 @@
 	else{
 		inputs->Add(control_type,param_g,1,numberofnodes);
-		diagnostic_results=new DataSet(ResultsEnum()); 
+		diagnostic_results=new DataSet(ResultsEnum); 
 		diagnostic_core(diagnostic_results,model, inputs);
 
Index: issm/trunk/src/c/parallel/diagnostic.cpp
===================================================================
--- issm/trunk/src/c/parallel/diagnostic.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/diagnostic.cpp	(revision 3567)
@@ -76,17 +76,17 @@
 	_printf_("read and create finite element model:\n");
 	_printf_("\n   reading diagnostic horiz model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,HorizAnalysisEnum);
 
 	_printf_("\n   reading diagnostic vert model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),VertAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,VertAnalysisEnum);
 	
 	_printf_("\n   reading diagnostic stokes model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,StokesAnalysisEnum);
 	
 	_printf_("\n   reading diagnostic hutter model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,HutterAnalysisEnum);
 	
 	_printf_("\n   reading surface and bed slope computation model data:\n");
-	model->AddFormulation(fid,SlopecomputeAnalysisEnum());
+	model->AddFormulation(fid,SlopecomputeAnalysisEnum);
 
 	/*get parameters: */
@@ -96,5 +96,5 @@
 
 	_printf_("initialize inputs:\n");
-	model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+	model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum,HorizAnalysisEnum);
 	model->FindParam(&numberofnodes,"numberofnodes");
 
@@ -103,6 +103,6 @@
 
 	if(control_analysis){
-		model->FindParam(&u_g_obs,NULL,NULL,"u_g_obs",DiagnosticAnalysisEnum(),HorizAnalysisEnum());
-		model->FindParam(&weights,NULL,NULL,"weights",DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+		model->FindParam(&u_g_obs,NULL,NULL,"u_g_obs",DiagnosticAnalysisEnum,HorizAnalysisEnum);
+		model->FindParam(&weights,NULL,NULL,"weights",DiagnosticAnalysisEnum,HorizAnalysisEnum);
 		inputs->Add("velocity_obs",u_g_obs,2,numberofnodes);
 		inputs->Add("weights",weights,1,numberofnodes);
@@ -110,5 +110,5 @@
 	
 	_printf_("initialize results:\n");
-	results=new DataSet(ResultsEnum());
+	results=new DataSet(ResultsEnum);
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
@@ -127,5 +127,5 @@
 			
 			_printf_("process results:\n");
-			ProcessResults(&processed_results,results,model,DiagnosticAnalysisEnum());
+			ProcessResults(&processed_results,results,model,DiagnosticAnalysisEnum);
 		}
 		else{
@@ -145,5 +145,5 @@
 
 			_printf_("process results:\n");
-			ProcessResults(&processed_results,results,model,ControlAnalysisEnum());
+			ProcessResults(&processed_results,results,model,ControlAnalysisEnum);
 		}
 
@@ -157,5 +157,5 @@
 		#ifdef _HAVE_DAKOTA_ 
 		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(model,inputs,DiagnosticAnalysisEnum(),NoneAnalysisEnum());
+		Qmux(model,inputs,DiagnosticAnalysisEnum,NoneAnalysisEnum);
 		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
Index: issm/trunk/src/c/parallel/diagnostic_core.cpp
===================================================================
--- issm/trunk/src/c/parallel/diagnostic_core.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/diagnostic_core.cpp	(revision 3567)
@@ -70,9 +70,9 @@
 
 	/*recover fem models: */
-	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum());
-	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum(),VertAnalysisEnum());
-	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum(),StokesAnalysisEnum());
-	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum(),HutterAnalysisEnum());
-	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum());
+	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum);
+	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum,VertAnalysisEnum);
+	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum,StokesAnalysisEnum);
+	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum,HutterAnalysisEnum);
+	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum);
 
 	//specific parameters for specific models
@@ -83,5 +83,5 @@
 	//for qmu analysis, be sure the velocity input we are starting from  is the one in the parameters: */
 	if(qmu_analysis){
-		model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+		model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum,HorizAnalysisEnum);
 		inputs->Add("velocity",u_g_initial,3,numberofnodes);
 	}
@@ -90,6 +90,6 @@
 			
 		if(verbose)_printf_("%s\n","computing surface slope (x and y derivatives)...");
-		diagnostic_core_linear(&slopex,fem_sl,inputs,SlopecomputeAnalysisEnum(),SurfaceXAnalysisEnum());
-		diagnostic_core_linear(&slopey,fem_sl,inputs,SlopecomputeAnalysisEnum(),SurfaceYAnalysisEnum());
+		diagnostic_core_linear(&slopex,fem_sl,inputs,SlopecomputeAnalysisEnum,SurfaceXAnalysisEnum);
+		diagnostic_core_linear(&slopey,fem_sl,inputs,SlopecomputeAnalysisEnum,SurfaceYAnalysisEnum);
 
 		if (dim==3){
@@ -106,8 +106,8 @@
 
 		if(verbose)_printf_("%s\n"," computing hutter velocities...");
-		diagnostic_core_linear(&ug,fem_dhu,inputs,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
+		diagnostic_core_linear(&ug,fem_dhu,inputs,DiagnosticAnalysisEnum,HutterAnalysisEnum);
 
 		if(verbose)_printf_("%s\n"," computing pressure according to MacAyeal...");
-		ComputePressurex(&pg,fem_dhu->elements,fem_dhu->nodes, fem_dhu->vertices,fem_dhu->loads,fem_dhu->materials,fem_dhu->parameters,inputs,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
+		ComputePressurex(&pg,fem_dhu->elements,fem_dhu->nodes, fem_dhu->vertices,fem_dhu->loads,fem_dhu->materials,fem_dhu->parameters,inputs,DiagnosticAnalysisEnum,HutterAnalysisEnum);
 
 		if(verbose)_printf_("%s\n"," update boundary conditions for macyeal pattyn using hutter results...");
@@ -123,9 +123,9 @@
 		
 		if(verbose)_printf_("%s\n"," computing horizontal velocities...");
-		diagnostic_core_nonlinear(&ug,NULL,NULL,fem_dh->loads,fem_dh,inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+		diagnostic_core_nonlinear(&ug,NULL,NULL,fem_dh->loads,fem_dh,inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);
 
 		if(dim==2){
 			if(verbose)_printf_("%s\n"," computing pressure according to MacAyeal...");
-			ComputePressurex(&pg,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh->materials,fem_dh->parameters,inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+			ComputePressurex(&pg,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh->materials,fem_dh->parameters,inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);
 		}
 
@@ -140,5 +140,5 @@
 		if(verbose)_printf_("%s\n"," computing vertical velocities...");
 		inputs->Add("velocity",ug_horiz,numberofdofspernode_dh,numberofnodes);
-		diagnostic_core_linear(&ug_vert,fem_dv,inputs,DiagnosticAnalysisEnum(),VertAnalysisEnum());
+		diagnostic_core_linear(&ug_vert,fem_dv,inputs,DiagnosticAnalysisEnum,VertAnalysisEnum);
 
 		if(verbose)_printf_("%s\n"," combining horizontal and vertical velocities...");
@@ -150,5 +150,5 @@
 
 		if(verbose)_printf_("%s\n"," computing pressure according to Pattyn...");
-		ComputePressurex(&pg,fem_dh->elements, fem_dh->nodes, fem_dh->vertices,fem_dh->loads,  fem_dh->materials,fem_dh->parameters,inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+		ComputePressurex(&pg,fem_dh->elements, fem_dh->nodes, fem_dh->vertices,fem_dh->loads,  fem_dh->materials,fem_dh->parameters,inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);
 		
 		if (isstokes){
@@ -158,6 +158,6 @@
 
 			if(verbose)_printf_("%s\n","computing bed slope (x and y derivatives)...");
-			diagnostic_core_linear(&slopex,fem_sl,inputs,SlopecomputeAnalysisEnum(),BedXAnalysisEnum());
-			diagnostic_core_linear(&slopey,fem_sl,inputs,SlopecomputeAnalysisEnum(),BedYAnalysisEnum());
+			diagnostic_core_linear(&slopex,fem_sl,inputs,SlopecomputeAnalysisEnum,BedXAnalysisEnum);
+			diagnostic_core_linear(&slopey,fem_sl,inputs,SlopecomputeAnalysisEnum,BedYAnalysisEnum);
 			FieldExtrudex( slopex, fem_sl->elements,fem_sl->nodes,fem_sl->vertices,fem_sl->loads,fem_sl->materials,fem_sl->parameters,"slopex",0);
 			FieldExtrudex( slopey, fem_sl->elements,fem_sl->nodes,fem_sl->vertices,fem_sl->loads,fem_sl->materials,fem_sl->parameters,"slopey",0);
@@ -182,5 +182,5 @@
 			if(verbose)_printf_("%s\n"," computing stokes velocities and pressure ...");
 			VecFree(&ug);
-			diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_ds,inputs,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
+			diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_ds,inputs,DiagnosticAnalysisEnum,StokesAnalysisEnum);
 		
 			//decondition" pressure
Index: issm/trunk/src/c/parallel/gradjcompute_core.cpp
===================================================================
--- issm/trunk/src/c/parallel/gradjcompute_core.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/gradjcompute_core.cpp	(revision 3567)
@@ -62,5 +62,5 @@
 
 	_printf_("%s\n","      recover solution for this stiffness and right hand side:");
-	diagnostic_core_nonlinear(&u_g,&K_ff0,&K_fs0,NULL, femmodel,inputs,DiagnosticAnalysisEnum(),sub_analysis_type);
+	diagnostic_core_nonlinear(&u_g,&K_ff0,&K_fs0,NULL, femmodel,inputs,DiagnosticAnalysisEnum,sub_analysis_type);
 	VecToMPISerial(&u_g_double,u_g); VecFree(&u_g);
 	inputs->Add("velocity",u_g_double,numberofdofspernode,numberofnodes);
@@ -95,5 +95,5 @@
 
 	if(control_steady){
-		diagnostic_results=new DataSet(ResultsEnum()); 
+		diagnostic_results=new DataSet(ResultsEnum); 
 		diagnostic_core(diagnostic_results,model, inputs);
 
Index: issm/trunk/src/c/parallel/objectivefunctionC.cpp
===================================================================
--- issm/trunk/src/c/parallel/objectivefunctionC.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/objectivefunctionC.cpp	(revision 3567)
@@ -90,5 +90,5 @@
 	/*Run diagnostic with updated parameters.*/
 	if(!control_steady){
-		diagnostic_core_nonlinear(&u_g,NULL,NULL,NULL,femmodel,inputs,DiagnosticAnalysisEnum(),sub_analysis_type);
+		diagnostic_core_nonlinear(&u_g,NULL,NULL,NULL,femmodel,inputs,DiagnosticAnalysisEnum,sub_analysis_type);
 		VecToMPISerial(&u_g_double,u_g); VecFree(&u_g);
 		inputs->Add("velocity",u_g_double,numberofdofspernode,numberofnodes);
@@ -96,5 +96,5 @@
 	else{
 		//We need a 3D velocity!! (vz is required for the next thermal run)
-		diagnostic_results=new DataSet(ResultsEnum()); 
+		diagnostic_results=new DataSet(ResultsEnum); 
 		diagnostic_core(diagnostic_results,model, inputs);
 
Index: issm/trunk/src/c/parallel/prognostic.cpp
===================================================================
--- issm/trunk/src/c/parallel/prognostic.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/prognostic.cpp	(revision 3567)
@@ -74,5 +74,5 @@
 
 	_printf_("read and create finite element model:\n");
-	model->AddFormulation(fid,PrognosticAnalysisEnum());
+	model->AddFormulation(fid,PrognosticAnalysisEnum);
 
 	/*recover parameters: */
@@ -82,8 +82,8 @@
 	_printf_("initialize inputs:\n");
 	
-	model->FindParam(&u_g_serial,NULL,NULL,"u_g",PrognosticAnalysisEnum());
-	model->FindParam(&h_g_initial,NULL,NULL,"h_g",PrognosticAnalysisEnum());
-	model->FindParam(&melting_g,NULL,NULL,"m_g",PrognosticAnalysisEnum());
-	model->FindParam(&accumulation_g,NULL,NULL,"a_g",PrognosticAnalysisEnum());
+	model->FindParam(&u_g_serial,NULL,NULL,"u_g",PrognosticAnalysisEnum);
+	model->FindParam(&h_g_initial,NULL,NULL,"h_g",PrognosticAnalysisEnum);
+	model->FindParam(&melting_g,NULL,NULL,"m_g",PrognosticAnalysisEnum);
+	model->FindParam(&accumulation_g,NULL,NULL,"a_g",PrognosticAnalysisEnum);
 	model->FindParam(&dt,"dt");
 	model->FindParam(&yts,"yts");
@@ -98,5 +98,5 @@
 
 	_printf_("initialize results:\n");
-	results=new DataSet(ResultsEnum());
+	results=new DataSet(ResultsEnum);
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
@@ -118,5 +118,5 @@
 		#ifdef _HAVE_DAKOTA_ 
 		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(model,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum());
+		Qmux(model,inputs,PrognosticAnalysisEnum,NoneAnalysisEnum);
 		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
@@ -130,5 +130,5 @@
 	
 	_printf_("process results:\n");
-	ProcessResults(&processedresults,results,model,PrognosticAnalysisEnum());
+	ProcessResults(&processedresults,results,model,PrognosticAnalysisEnum);
 	
 	_printf_("write results to disk:\n");
Index: issm/trunk/src/c/parallel/prognostic2.cpp
===================================================================
--- issm/trunk/src/c/parallel/prognostic2.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/prognostic2.cpp	(revision 3567)
@@ -74,5 +74,5 @@
 
 	_printf_("read and create finite element model:\n");
-	model->AddFormulation(fid,Prognostic2AnalysisEnum());
+	model->AddFormulation(fid,Prognostic2AnalysisEnum);
 
 	/*recover parameters: */
@@ -82,9 +82,9 @@
 	_printf_("initialize inputs:\n");
 	
-	model->FindParam(&vx_g,NULL,NULL,"vx_g",Prognostic2AnalysisEnum());
-	model->FindParam(&vy_g,NULL,NULL,"vy_g",Prognostic2AnalysisEnum());
-	model->FindParam(&h_g_initial,NULL,NULL,"h_g",Prognostic2AnalysisEnum());
-	model->FindParam(&m_g,NULL,NULL,"m_g",Prognostic2AnalysisEnum());
-	model->FindParam(&a_g,NULL,NULL,"a_g",Prognostic2AnalysisEnum());
+	model->FindParam(&vx_g,NULL,NULL,"vx_g",Prognostic2AnalysisEnum);
+	model->FindParam(&vy_g,NULL,NULL,"vy_g",Prognostic2AnalysisEnum);
+	model->FindParam(&h_g_initial,NULL,NULL,"h_g",Prognostic2AnalysisEnum);
+	model->FindParam(&m_g,NULL,NULL,"m_g",Prognostic2AnalysisEnum);
+	model->FindParam(&a_g,NULL,NULL,"a_g",Prognostic2AnalysisEnum);
 	model->FindParam(&dt,"dt");
 	model->FindParam(&yts,"yts");
@@ -100,5 +100,5 @@
 
 	_printf_("initialize results:\n");
-	results=new DataSet(ResultsEnum());
+	results=new DataSet(ResultsEnum);
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
@@ -120,5 +120,5 @@
 		#ifdef _HAVE_DAKOTA_ 
 		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(model,inputs,Prognostic2AnalysisEnum(),NoneAnalysisEnum());
+		Qmux(model,inputs,Prognostic2AnalysisEnum,NoneAnalysisEnum);
 		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
@@ -132,5 +132,5 @@
 	
 	_printf_("process results:\n");
-	ProcessResults(&processedresults,results,model,Prognostic2AnalysisEnum());
+	ProcessResults(&processedresults,results,model,Prognostic2AnalysisEnum);
 	
 	_printf_("write results to disk:\n");
Index: issm/trunk/src/c/parallel/prognostic2_core.cpp
===================================================================
--- issm/trunk/src/c/parallel/prognostic2_core.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/prognostic2_core.cpp	(revision 3567)
@@ -35,5 +35,5 @@
 
 	/*recover fem model: */
-	fem_p=model->GetFormulation(Prognostic2AnalysisEnum());
+	fem_p=model->GetFormulation(Prognostic2AnalysisEnum);
 
 	//first recover parameters common to all solutions
@@ -54,5 +54,5 @@
 	
 	_printf_("call computational core:\n");
-	diagnostic_core_linear(&h_g,fem_p,inputs,Prognostic2AnalysisEnum(),NoneAnalysisEnum());
+	diagnostic_core_linear(&h_g,fem_p,inputs,Prognostic2AnalysisEnum,NoneAnalysisEnum);
 
 	_printf_("Averaging over vertices:\n");
Index: issm/trunk/src/c/parallel/prognostic_core.cpp
===================================================================
--- issm/trunk/src/c/parallel/prognostic_core.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/prognostic_core.cpp	(revision 3567)
@@ -34,5 +34,5 @@
 
 	/*recover fem model: */
-	fem_p=model->GetFormulation(PrognosticAnalysisEnum());
+	fem_p=model->GetFormulation(PrognosticAnalysisEnum);
 
 	//first recover parameters common to all solutions
@@ -47,5 +47,5 @@
 	
 	_printf_("call computational core:\n");
-	diagnostic_core_linear(&h_g,fem_p,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum());
+	diagnostic_core_linear(&h_g,fem_p,inputs,PrognosticAnalysisEnum,NoneAnalysisEnum);
 
 	_printf_("extrude computed thickness on all layers:\n");
Index: issm/trunk/src/c/parallel/slopecompute.cpp
===================================================================
--- issm/trunk/src/c/parallel/slopecompute.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/slopecompute.cpp	(revision 3567)
@@ -68,5 +68,5 @@
 
 	_printf_("read and create finite element model:\n");
-	model->AddFormulation(fid,SlopecomputeAnalysisEnum());
+	model->AddFormulation(fid,SlopecomputeAnalysisEnum);
 
 	/*recover parameters: */
@@ -80,5 +80,5 @@
 
 	_printf_("initialize results:\n");
-	results=new DataSet(ResultsEnum());
+	results=new DataSet(ResultsEnum);
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
@@ -94,5 +94,5 @@
 	
 	_printf_("process results:\n");
-	ProcessResults(&processedresults,results,model,SlopecomputeAnalysisEnum());
+	ProcessResults(&processedresults,results,model,SlopecomputeAnalysisEnum);
 	
 	_printf_("write results to disk:\n");
Index: issm/trunk/src/c/parallel/slopecompute_core.cpp
===================================================================
--- issm/trunk/src/c/parallel/slopecompute_core.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/slopecompute_core.cpp	(revision 3567)
@@ -31,5 +31,5 @@
 
 	/*recover fem model: */
-	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum());
+	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum);
 
 	//first recover parameters common to all solutions
@@ -39,6 +39,6 @@
 
 	_printf_("call computational core:\n");
-	diagnostic_core_linear(&sx_g,fem_sl,inputs,SlopecomputeAnalysisEnum(),SurfaceXAnalysisEnum());
-	diagnostic_core_linear(&sy_g,fem_sl,inputs,SlopecomputeAnalysisEnum(),SurfaceYAnalysisEnum());
+	diagnostic_core_linear(&sx_g,fem_sl,inputs,SlopecomputeAnalysisEnum,SurfaceXAnalysisEnum);
+	diagnostic_core_linear(&sy_g,fem_sl,inputs,SlopecomputeAnalysisEnum,SurfaceYAnalysisEnum);
 
 	_printf_("extrude computed slope on all layers:\n");
Index: issm/trunk/src/c/parallel/steadystate.cpp
===================================================================
--- issm/trunk/src/c/parallel/steadystate.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/steadystate.cpp	(revision 3567)
@@ -79,22 +79,22 @@
 	
 	_printf_("\n   reading diagnostic horiz model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,HorizAnalysisEnum);
 
 	_printf_("\n   reading diagnostic vert model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),VertAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,VertAnalysisEnum);
 	
 	_printf_("\n   reading diagnostic stokes model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,StokesAnalysisEnum);
 	
 	_printf_("\n   reading diagnostic hutter model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,HutterAnalysisEnum);
 	
 	_printf_("\n   reading surface and bed slope computation model data:\n");
-	model->AddFormulation(fid,SlopecomputeAnalysisEnum());
+	model->AddFormulation(fid,SlopecomputeAnalysisEnum);
 
 	_printf_("\n   read and create thermal finite element model:\n");
-	model->AddFormulation(fid,ThermalAnalysisEnum());
+	model->AddFormulation(fid,ThermalAnalysisEnum);
 	_printf_("\n   read and create melting finite element model:\n");
-	model->AddFormulation(fid,MeltingAnalysisEnum());
+	model->AddFormulation(fid,MeltingAnalysisEnum);
 
 	/*recover parameters: */
@@ -104,6 +104,6 @@
 
 	_printf_("initialize inputs:\n");
-	model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum(),HorizAnalysisEnum());
-	model->FindParam(&p_g_initial,NULL,NULL,"p_g",ThermalAnalysisEnum());
+	model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum,HorizAnalysisEnum);
+	model->FindParam(&p_g_initial,NULL,NULL,"p_g",ThermalAnalysisEnum);
 	model->FindParam(&dt,"dt");
 	model->FindParam(&numberofnodes,"numberofnodes");
@@ -115,6 +115,6 @@
 
 	if(control_analysis){
-		model->FindParam(&u_g_obs,NULL,NULL,"u_g_obs",DiagnosticAnalysisEnum(),HorizAnalysisEnum());
-		model->FindParam(&weights,NULL,NULL,"weights",DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+		model->FindParam(&u_g_obs,NULL,NULL,"u_g_obs",DiagnosticAnalysisEnum,HorizAnalysisEnum);
+		model->FindParam(&weights,NULL,NULL,"weights",DiagnosticAnalysisEnum,HorizAnalysisEnum);
 		inputs->Add("velocity_obs",u_g_obs,2,numberofnodes);
 		inputs->Add("weights",weights,1,numberofnodes);
@@ -122,5 +122,5 @@
 	
 	_printf_("initialize results:\n");
-	results=new DataSet(ResultsEnum());
+	results=new DataSet(ResultsEnum);
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
@@ -140,10 +140,10 @@
 
 			_printf_("process results:\n");
-			ProcessResults(&processed_results,results,model,SteadystateAnalysisEnum());
+			ProcessResults(&processed_results,results,model,SteadystateAnalysisEnum);
 		}
 		else{
 			/*change control_steady to 1 to know we are doing steadystate*/
-			fem_dh=model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum());
-			fem_ds=model->GetFormulation(DiagnosticAnalysisEnum(),StokesAnalysisEnum());
+			fem_dh=model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum);
+			fem_ds=model->GetFormulation(DiagnosticAnalysisEnum,StokesAnalysisEnum);
 			param=(Param*)fem_dh->parameters->FindParamObject("control_steady");
 			param->SetDouble(1);
@@ -165,5 +165,5 @@
 
 			_printf_("process results:\n");
-			ProcessResults(&processed_results,results,model,ControlAnalysisEnum());
+			ProcessResults(&processed_results,results,model,ControlAnalysisEnum);
 		}
 
@@ -177,5 +177,5 @@
 		#ifdef _HAVE_DAKOTA_ 
 		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(model,inputs,SteadystateAnalysisEnum(),NoneAnalysisEnum());
+		Qmux(model,inputs,SteadystateAnalysisEnum,NoneAnalysisEnum);
 		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
Index: issm/trunk/src/c/parallel/steadystate_core.cpp
===================================================================
--- issm/trunk/src/c/parallel/steadystate_core.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/steadystate_core.cpp	(revision 3567)
@@ -51,11 +51,11 @@
 
 	/*recover fem models: */
-	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum());
-	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum(),VertAnalysisEnum());
-	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum(),StokesAnalysisEnum());
-	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum(),HutterAnalysisEnum());
-	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum());
-	fem_t=model->GetFormulation(ThermalAnalysisEnum());
-	fem_m=model->GetFormulation(MeltingAnalysisEnum());
+	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum);
+	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum,VertAnalysisEnum);
+	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum,StokesAnalysisEnum);
+	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum,HutterAnalysisEnum);
+	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum);
+	fem_t=model->GetFormulation(ThermalAnalysisEnum);
+	fem_m=model->GetFormulation(MeltingAnalysisEnum);
 
 
@@ -81,5 +81,5 @@
 			inputs->Add("velocity",u_g,ndof,numberofnodes);
 		}
-		results_thermal=new DataSet(ResultsEnum()); 
+		results_thermal=new DataSet(ResultsEnum); 
 		thermal_core(results_thermal,model,inputs);
 	
@@ -98,5 +98,5 @@
 
 		//now compute diagnostic velocity using the steady state temperature.
-		results_diagnostic=new DataSet(ResultsEnum());
+		results_diagnostic=new DataSet(ResultsEnum);
 		diagnostic_core(results_diagnostic,model, inputs);
 
Index: issm/trunk/src/c/parallel/thermal.cpp
===================================================================
--- issm/trunk/src/c/parallel/thermal.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/thermal.cpp	(revision 3567)
@@ -73,7 +73,7 @@
 
 	_printf_("read and create thermal finite element model:\n");
-	model->AddFormulation(fid,ThermalAnalysisEnum());
+	model->AddFormulation(fid,ThermalAnalysisEnum);
 	_printf_("read and create melting finite element model:\n");
-	model->AddFormulation(fid,MeltingAnalysisEnum());
+	model->AddFormulation(fid,MeltingAnalysisEnum);
 
 	/*recover parameters: */
@@ -82,6 +82,6 @@
 	
 	_printf_("initialize inputs:\n");
-	model->FindParam(&u_g,NULL,NULL,"u_g",ThermalAnalysisEnum());
-	model->FindParam(&p_g,NULL,NULL,"p_g",ThermalAnalysisEnum());
+	model->FindParam(&u_g,NULL,NULL,"u_g",ThermalAnalysisEnum);
+	model->FindParam(&p_g,NULL,NULL,"p_g",ThermalAnalysisEnum);
 	model->FindParam(&numberofnodes,"numberofnodes");
 	model->FindParam(&dt,"dt");
@@ -95,5 +95,5 @@
 
 	_printf_("initialize results:\n");
-	results=new DataSet(ResultsEnum());
+	results=new DataSet(ResultsEnum);
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
@@ -112,5 +112,5 @@
 			
 		_printf_("process results:\n");
-		ProcessResults(&processed_results,results,model,ThermalAnalysisEnum());
+		ProcessResults(&processed_results,results,model,ThermalAnalysisEnum);
 		
 		_printf_("write results to disk:\n");
@@ -123,5 +123,5 @@
 		#ifdef _HAVE_DAKOTA_ 
 		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(model,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
+		Qmux(model,inputs,ThermalAnalysisEnum,NoneAnalysisEnum);
 		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
Index: issm/trunk/src/c/parallel/thermal_core.cpp
===================================================================
--- issm/trunk/src/c/parallel/thermal_core.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/thermal_core.cpp	(revision 3567)
@@ -45,6 +45,6 @@
 
 	/*recover fem models: */
-	fem_t=model->GetFormulation(ThermalAnalysisEnum());
-	fem_m=model->GetFormulation(MeltingAnalysisEnum());
+	fem_t=model->GetFormulation(ThermalAnalysisEnum);
+	fem_m=model->GetFormulation(MeltingAnalysisEnum);
 
 	//first recover parameters common to all solutions
@@ -65,10 +65,10 @@
 
 		if(verbose)_printf_("computing temperatures:\n");
-		thermal_core_nonlinear(&t_g[0],&melting_offset,fem_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
+		thermal_core_nonlinear(&t_g[0],&melting_offset,fem_t,inputs,ThermalAnalysisEnum,NoneAnalysisEnum);
 		inputs->Add("temperature",t_g[0],1,numberofnodes);
 		inputs->Add("melting_offset",melting_offset);
 		
 		if(verbose)_printf_("computing melting:\n");
-		diagnostic_core_linear(&m_g[0],fem_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum());
+		diagnostic_core_linear(&m_g[0],fem_m,inputs,MeltingAnalysisEnum,NoneAnalysisEnum);
 	}
 	else{
@@ -96,10 +96,10 @@
 			if(verbose)_printf_("computing temperatures:\n");
 			inputs->Add("temperature",t_g[i],1,numberofnodes);
-			thermal_core_nonlinear(&t_g[i+1],&melting_offset,fem_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
+			thermal_core_nonlinear(&t_g[i+1],&melting_offset,fem_t,inputs,ThermalAnalysisEnum,NoneAnalysisEnum);
 			
 			if(verbose)_printf_("computing melting:\n");
 			inputs->Add("temperature",t_g[i+1],1,numberofnodes);
 			inputs->Add("melting_offset",melting_offset);
-			diagnostic_core_linear(&m_g[i+1],fem_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum());
+			diagnostic_core_linear(&m_g[i+1],fem_m,inputs,MeltingAnalysisEnum,NoneAnalysisEnum);
 		}
 	}
Index: issm/trunk/src/c/parallel/transient.cpp
===================================================================
--- issm/trunk/src/c/parallel/transient.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/transient.cpp	(revision 3567)
@@ -76,20 +76,20 @@
 	_printf_("read and create finite element model:\n");
 	_printf_("\n   reading diagnostic horiz model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,HorizAnalysisEnum);
 
 	_printf_("\n   reading diagnostic vert model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),VertAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,VertAnalysisEnum);
 	
 	_printf_("\n   reading diagnostic stokes model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,StokesAnalysisEnum);
 	
 	_printf_("\n   reading diagnostic hutter model data:\n");
-	model->AddFormulation(fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
+	model->AddFormulation(fid,DiagnosticAnalysisEnum,HutterAnalysisEnum);
 	
 	_printf_("\n   reading surface and bed slope computation model data:\n");
-	model->AddFormulation(fid,SlopecomputeAnalysisEnum());
+	model->AddFormulation(fid,SlopecomputeAnalysisEnum);
 
 	_printf_("\n   reading prognositc model data:\n");
-	model->AddFormulation(fid,PrognosticAnalysisEnum());
+	model->AddFormulation(fid,PrognosticAnalysisEnum);
 	
 	/*Do we run in 3d?, in which case we need thermal and melting also:*/
@@ -97,7 +97,7 @@
 	if(dim==3){
 		_printf_("read and create thermal finite element model:\n");
-		model->AddFormulation(fid,ThermalAnalysisEnum(),TransientAnalysisEnum());
+		model->AddFormulation(fid,ThermalAnalysisEnum,TransientAnalysisEnum);
 		_printf_("read and create melting finite element model:\n");
-		model->AddFormulation(fid,MeltingAnalysisEnum(),TransientAnalysisEnum());
+		model->AddFormulation(fid,MeltingAnalysisEnum,TransientAnalysisEnum);
 	}
 
@@ -107,7 +107,7 @@
 
 	_printf_("initialize inputs:\n");
-	model->FindParam(&u_g,NULL,NULL,"u_g",PrognosticAnalysisEnum());
-	model->FindParam(&m_g,NULL,NULL,"m_g",PrognosticAnalysisEnum());
-	model->FindParam(&a_g,NULL,NULL,"a_g",PrognosticAnalysisEnum());
+	model->FindParam(&u_g,NULL,NULL,"u_g",PrognosticAnalysisEnum);
+	model->FindParam(&m_g,NULL,NULL,"m_g",PrognosticAnalysisEnum);
+	model->FindParam(&a_g,NULL,NULL,"a_g",PrognosticAnalysisEnum);
 	model->FindParam(&numberofnodes,"numberofnodes");
 	model->FindParam(&dt,"dt");
@@ -122,5 +122,5 @@
 	
 	_printf_("initialize results:\n");
-	results=new DataSet(ResultsEnum());
+	results=new DataSet(ResultsEnum);
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
@@ -139,5 +139,5 @@
 
 		_printf_("process results:\n");
-		ProcessResults(&processed_results,results,model,TransientAnalysisEnum());
+		ProcessResults(&processed_results,results,model,TransientAnalysisEnum);
 		
 		_printf_("write results to disk:\n");
@@ -150,5 +150,5 @@
 		#ifdef _HAVE_DAKOTA_ 
 		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(model,inputs,TransientAnalysisEnum(),NoneAnalysisEnum());
+		Qmux(model,inputs,TransientAnalysisEnum,NoneAnalysisEnum);
 		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
Index: issm/trunk/src/c/parallel/transient_core_2d.cpp
===================================================================
--- issm/trunk/src/c/parallel/transient_core_2d.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/transient_core_2d.cpp	(revision 3567)
@@ -63,10 +63,10 @@
 
 	/*recover fem models: */
-	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum());
-	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum(),VertAnalysisEnum());
-	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum(),StokesAnalysisEnum());
-	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum(),HutterAnalysisEnum());
-	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum());
-	fem_p=model->GetFormulation(PrognosticAnalysisEnum());
+	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum);
+	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum,VertAnalysisEnum);
+	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum,StokesAnalysisEnum);
+	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum,HutterAnalysisEnum);
+	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum);
+	fem_p=model->GetFormulation(PrognosticAnalysisEnum);
 
 
@@ -119,5 +119,5 @@
 		//Deal with velocities.
 		_printf_("%s\n","computing new velocity");
-		diagnostic_results=new DataSet(ResultsEnum()); 
+		diagnostic_results=new DataSet(ResultsEnum); 
 		diagnostic_core(diagnostic_results,model, inputs);
 
@@ -131,5 +131,5 @@
 		
 		inputs->Add("velocity",u_g,2,numberofnodes);
-		prognostic_results=new DataSet(ResultsEnum()); 
+		prognostic_results=new DataSet(ResultsEnum); 
 		prognostic_core(prognostic_results,model, inputs);
 	
Index: issm/trunk/src/c/parallel/transient_core_3d.cpp
===================================================================
--- issm/trunk/src/c/parallel/transient_core_3d.cpp	(revision 3566)
+++ issm/trunk/src/c/parallel/transient_core_3d.cpp	(revision 3567)
@@ -67,12 +67,12 @@
 
 	/*recover fem models: */
-	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum(),HorizAnalysisEnum());
-	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum(),VertAnalysisEnum());
-	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum(),StokesAnalysisEnum());
-	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum(),HutterAnalysisEnum());
-	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum());
-	fem_p=model->GetFormulation(PrognosticAnalysisEnum());
-	fem_t=model->GetFormulation(ThermalAnalysisEnum());
-	fem_m=model->GetFormulation(MeltingAnalysisEnum());
+	fem_dh=model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum);
+	fem_dv=model->GetFormulation(DiagnosticAnalysisEnum,VertAnalysisEnum);
+	fem_ds=model->GetFormulation(DiagnosticAnalysisEnum,StokesAnalysisEnum);
+	fem_dhu=model->GetFormulation(DiagnosticAnalysisEnum,HutterAnalysisEnum);
+	fem_sl=model->GetFormulation(SlopecomputeAnalysisEnum);
+	fem_p=model->GetFormulation(PrognosticAnalysisEnum);
+	fem_t=model->GetFormulation(ThermalAnalysisEnum);
+	fem_m=model->GetFormulation(MeltingAnalysisEnum);
 
 
@@ -134,9 +134,9 @@
 		//Deal with temperature first 
 		if(verbose)_printf_("%s\n","computing temperature");
-		thermal_core_nonlinear(&t_g,&melting_offset,fem_t,inputs,ThermalAnalysisEnum(),TransientAnalysisEnum());
+		thermal_core_nonlinear(&t_g,&melting_offset,fem_t,inputs,ThermalAnalysisEnum,TransientAnalysisEnum);
 		if(verbose)_printf_("%s\n","computing melting");
 		inputs->Add("temperature",t_g,1,numberofnodes);
 		inputs->Add("melting_offset",melting_offset);
-		diagnostic_core_linear(&m_g,fem_m,inputs,MeltingAnalysisEnum(),TransientAnalysisEnum());
+		diagnostic_core_linear(&m_g,fem_m,inputs,MeltingAnalysisEnum,TransientAnalysisEnum);
 
 		//Compute depth averaged temperature and add to inputs
@@ -148,5 +148,5 @@
 
 		//Deal with velocities.
-		diagnostic_results=new DataSet(ResultsEnum()); 
+		diagnostic_results=new DataSet(ResultsEnum); 
 		diagnostic_core(diagnostic_results,model, inputs);
 
@@ -160,5 +160,5 @@
 		
 		inputs->Add("velocity",u_g,3,numberofnodes);
-		prognostic_results=new DataSet(ResultsEnum()); prognostic_core(prognostic_results,model, inputs);
+		prognostic_results=new DataSet(ResultsEnum); prognostic_core(prognostic_results,model, inputs);
 	
 		//extract h_g prognostic_results, and erase prognostic_results;
@@ -198,5 +198,5 @@
 
 			model->FindParam(&outputfilename,"outputfilename");
-			ProcessResults(&processed_results,results,model,TransientAnalysisEnum());
+			ProcessResults(&processed_results,results,model,TransientAnalysisEnum);
 			OutputResults(processed_results,outputfilename);
 
Index: issm/trunk/src/c/shared/Dofs/DistributeNumDofs.cpp
===================================================================
--- issm/trunk/src/c/shared/Dofs/DistributeNumDofs.cpp	(revision 3566)
+++ issm/trunk/src/c/shared/Dofs/DistributeNumDofs.cpp	(revision 3567)
@@ -13,51 +13,51 @@
 
 	/*ok, according to analysis type: */
-	if (analysis_type==ControlAnalysisEnum()){
-		if (sub_analysis_type==HorizAnalysisEnum()){
+	if (analysis_type==ControlAnalysisEnum){
+		if (sub_analysis_type==HorizAnalysisEnum){
 			numdofs=2;
 		}
-		else if (sub_analysis_type==VertAnalysisEnum()){
+		else if (sub_analysis_type==VertAnalysisEnum){
 			numdofs=1;
 		}
-		else if (sub_analysis_type==StokesAnalysisEnum()){
+		else if (sub_analysis_type==StokesAnalysisEnum){
 			numdofs=4;
 		}
-		else if (sub_analysis_type==HutterAnalysisEnum()){
+		else if (sub_analysis_type==HutterAnalysisEnum){
 			numdofs=2;
 		}
 	}
-	else if (analysis_type==DiagnosticAnalysisEnum()){
-		if (sub_analysis_type==HorizAnalysisEnum()){
+	else if (analysis_type==DiagnosticAnalysisEnum){
+		if (sub_analysis_type==HorizAnalysisEnum){
 			numdofs=2;
 		}
-		else if (sub_analysis_type==VertAnalysisEnum()){
+		else if (sub_analysis_type==VertAnalysisEnum){
 			numdofs=1;
 		}
-		else if (sub_analysis_type==StokesAnalysisEnum()){
+		else if (sub_analysis_type==StokesAnalysisEnum){
 			numdofs=4;
 		}
-		else if (sub_analysis_type==HutterAnalysisEnum()){
+		else if (sub_analysis_type==HutterAnalysisEnum){
 			numdofs=2;
 		}
 	}
-	else if (analysis_type==SlopecomputeAnalysisEnum()){
+	else if (analysis_type==SlopecomputeAnalysisEnum){
 		numdofs=1;
 	}
-	else if (analysis_type==ThermalAnalysisEnum()){
+	else if (analysis_type==ThermalAnalysisEnum){
 		numdofs=1;
 	}
-	else if (analysis_type==MeltingAnalysisEnum()){
+	else if (analysis_type==MeltingAnalysisEnum){
 		numdofs=1;
 	}
-	else if (analysis_type==PrognosticAnalysisEnum()){
+	else if (analysis_type==PrognosticAnalysisEnum){
 		numdofs=1;
 	}
-	else if (analysis_type==Prognostic2AnalysisEnum()){
+	else if (analysis_type==Prognostic2AnalysisEnum){
 		numdofs=1;
 	}
-	else if (analysis_type==BalancedthicknessAnalysisEnum()){
+	else if (analysis_type==BalancedthicknessAnalysisEnum){
 		numdofs=1;
 	}
-	else if (analysis_type==BalancedvelocitiesAnalysisEnum()){
+	else if (analysis_type==BalancedvelocitiesAnalysisEnum){
 		numdofs=1;
 	}
Index: issm/trunk/src/m/enum/AdjointAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/AdjointAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/AdjointAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=AdjointAnalysisEnum()
 
-macro=221;
+macro=16;
Index: issm/trunk/src/m/enum/AirEnum.m
===================================================================
--- issm/trunk/src/m/enum/AirEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/AirEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=AirEnum()
 
-macro=603;
+macro=75;
Index: issm/trunk/src/m/enum/AnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/AnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/AnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=AnalysisEnum()
 
-macro=200;
+macro=9;
Index: issm/trunk/src/m/enum/AnalysisTypeFromEnum.m
===================================================================
--- issm/trunk/src/m/enum/AnalysisTypeFromEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/AnalysisTypeFromEnum.m	(revision 3567)
@@ -11,5 +11,4 @@
 %initialize output
 string='not found';
-
 
 if enum==AnalysisEnum(),
Index: issm/trunk/src/m/enum/BalancedthicknessAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/BalancedthicknessAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/BalancedthicknessAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=BalancedthicknessAnalysisEnum()
 
-macro=252;
+macro=29;
Index: issm/trunk/src/m/enum/BalancedvelocitiesAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/BalancedvelocitiesAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/BalancedvelocitiesAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=BalancedvelocitiesAnalysisEnum()
 
-macro=253;
+macro=30;
Index: issm/trunk/src/m/enum/BeamEnum.m
===================================================================
--- issm/trunk/src/m/enum/BeamEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/BeamEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=BeamEnum()
 
-macro=416;
+macro=49;
Index: issm/trunk/src/m/enum/BedXAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/BedXAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/BedXAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=BedXAnalysisEnum()
 
-macro=243;
+macro=25;
Index: issm/trunk/src/m/enum/BedYAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/BedYAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/BedYAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=BedYAnalysisEnum()
 
-macro=244;
+macro=26;
Index: issm/trunk/src/m/enum/ConstraintsEnum.m
===================================================================
--- issm/trunk/src/m/enum/ConstraintsEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ConstraintsEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ConstraintsEnum()
 
-macro=103;
+macro=3;
Index: issm/trunk/src/m/enum/ControlAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/ControlAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ControlAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ControlAnalysisEnum()
 
-macro=220;
+macro=15;
Index: issm/trunk/src/m/enum/DatasetsEnum.m
===================================================================
--- issm/trunk/src/m/enum/DatasetsEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/DatasetsEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=DatasetsEnum()
 
-macro=100;
+macro=0;
Index: issm/trunk/src/m/enum/DiagnosticAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/DiagnosticAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/DiagnosticAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=DiagnosticAnalysisEnum()
 
-macro=210;
+macro=10;
Index: issm/trunk/src/m/enum/DofIndexingEnum.m
===================================================================
--- issm/trunk/src/m/enum/DofIndexingEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/DofIndexingEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=DofIndexingEnum()
 
-macro=417;
+macro=51;
Index: issm/trunk/src/m/enum/DofVecEnum.m
===================================================================
--- issm/trunk/src/m/enum/DofVecEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/DofVecEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=DofVecEnum()
 
-macro=495;
+macro=69;
Index: issm/trunk/src/m/enum/ElementEnum.m
===================================================================
--- issm/trunk/src/m/enum/ElementEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ElementEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ElementEnum()
 
-macro=410;
+macro=44;
Index: issm/trunk/src/m/enum/ElementPropertiesEnum.m
===================================================================
--- issm/trunk/src/m/enum/ElementPropertiesEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ElementPropertiesEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ElementPropertiesEnum()
 
-macro=412;
+macro=46;
Index: issm/trunk/src/m/enum/ElementsEnum.m
===================================================================
--- issm/trunk/src/m/enum/ElementsEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ElementsEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ElementsEnum()
 
-macro=101;
+macro=1;
Index: issm/trunk/src/m/enum/FormulationEnum.m
===================================================================
--- issm/trunk/src/m/enum/FormulationEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/FormulationEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=FormulationEnum()
 
-macro=300;
+macro=36;
Index: issm/trunk/src/m/enum/GeographyEnum.m
===================================================================
--- issm/trunk/src/m/enum/GeographyEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/GeographyEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=GeographyEnum()
 
-macro=500;
+macro=70;
Index: issm/trunk/src/m/enum/GradientAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/GradientAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/GradientAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=GradientAnalysisEnum()
 
-macro=223;
+macro=18;
Index: issm/trunk/src/m/enum/HookEnum.m
===================================================================
--- issm/trunk/src/m/enum/HookEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/HookEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=HookEnum()
 
-macro=409;
+macro=43;
Index: issm/trunk/src/m/enum/HorizAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/HorizAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/HorizAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=HorizAnalysisEnum()
 
-macro=211;
+macro=11;
Index: issm/trunk/src/m/enum/HutterAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/HutterAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/HutterAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=HutterAnalysisEnum()
 
-macro=213;
+macro=13;
Index: issm/trunk/src/m/enum/HutterFormulationEnum.m
===================================================================
--- issm/trunk/src/m/enum/HutterFormulationEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/HutterFormulationEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=HutterFormulationEnum()
 
-macro=302;
+macro=38;
Index: issm/trunk/src/m/enum/IceEnum.m
===================================================================
--- issm/trunk/src/m/enum/IceEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/IceEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=IceEnum()
 
-macro=602;
+macro=74;
Index: issm/trunk/src/m/enum/IceSheetEnum.m
===================================================================
--- issm/trunk/src/m/enum/IceSheetEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/IceSheetEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=IceSheetEnum()
 
-macro=502;
+macro=71;
Index: issm/trunk/src/m/enum/IceShelfEnum.m
===================================================================
--- issm/trunk/src/m/enum/IceShelfEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/IceShelfEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=IceShelfEnum()
 
-macro=502;
+macro=72;
Index: issm/trunk/src/m/enum/IcefrontEnum.m
===================================================================
--- issm/trunk/src/m/enum/IcefrontEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/IcefrontEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=IcefrontEnum()
 
-macro=431;
+macro=55;
Index: issm/trunk/src/m/enum/InputEnum.m
===================================================================
--- issm/trunk/src/m/enum/InputEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/InputEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=InputEnum()
 
-macro=450;
+macro=64;
Index: issm/trunk/src/m/enum/InverseAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/InverseAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/InverseAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=InverseAnalysisEnum()
 
-macro=222;
+macro=17;
Index: issm/trunk/src/m/enum/LoadEnum.m
===================================================================
--- issm/trunk/src/m/enum/LoadEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/LoadEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=LoadEnum()
 
-macro=430;
+macro=54;
Index: issm/trunk/src/m/enum/LoadsEnum.m
===================================================================
--- issm/trunk/src/m/enum/LoadsEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/LoadsEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=LoadsEnum()
 
-macro=104;
+macro=4;
Index: issm/trunk/src/m/enum/MacAyealFormulationEnum.m
===================================================================
--- issm/trunk/src/m/enum/MacAyealFormulationEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/MacAyealFormulationEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=MacAyealFormulationEnum()
 
-macro=303;
+macro=39;
Index: issm/trunk/src/m/enum/MaterialEnum.m
===================================================================
--- issm/trunk/src/m/enum/MaterialEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/MaterialEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=MaterialEnum()
 
-macro=440;
+macro=60;
Index: issm/trunk/src/m/enum/MaterialsEnum.m
===================================================================
--- issm/trunk/src/m/enum/MaterialsEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/MaterialsEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=MaterialsEnum()
 
-macro=105;
+macro=5;
Index: issm/trunk/src/m/enum/MaticeEnum.m
===================================================================
--- issm/trunk/src/m/enum/MaticeEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/MaticeEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=MaticeEnum()
 
-macro=441;
+macro=61;
Index: issm/trunk/src/m/enum/MatparEnum.m
===================================================================
--- issm/trunk/src/m/enum/MatparEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/MatparEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=MatparEnum()
 
-macro=442;
+macro=62;
Index: issm/trunk/src/m/enum/MelangeEnum.m
===================================================================
--- issm/trunk/src/m/enum/MelangeEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/MelangeEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=MelangeEnum()
 
-macro=604;
+macro=76;
Index: issm/trunk/src/m/enum/MeltingAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/MeltingAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/MeltingAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=MeltingAnalysisEnum()
 
-macro=260;
+macro=31;
Index: issm/trunk/src/m/enum/Mesh2gridAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/Mesh2gridAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/Mesh2gridAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=Mesh2gridAnalysisEnum()
 
-macro=270;
+macro=32;
Index: issm/trunk/src/m/enum/NodeEnum.m
===================================================================
--- issm/trunk/src/m/enum/NodeEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/NodeEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=NodeEnum()
 
-macro=421;
+macro=52;
Index: issm/trunk/src/m/enum/NodePropertiesEnum.m
===================================================================
--- issm/trunk/src/m/enum/NodePropertiesEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/NodePropertiesEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=NodePropertiesEnum()
 
-macro=413;
+macro=47;
Index: issm/trunk/src/m/enum/NodesEnum.m
===================================================================
--- issm/trunk/src/m/enum/NodesEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/NodesEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=NodesEnum()
 
-macro=102;
+macro=2;
Index: issm/trunk/src/m/enum/NoneAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/NoneAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/NoneAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=NoneAnalysisEnum()
 
-macro=290;
+macro=35;
Index: issm/trunk/src/m/enum/NoneFormulationEnum.m
===================================================================
--- issm/trunk/src/m/enum/NoneFormulationEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/NoneFormulationEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=NoneFormulationEnum()
 
-macro=301;
+macro=37;
Index: issm/trunk/src/m/enum/NumericalfluxEnum.m
===================================================================
--- issm/trunk/src/m/enum/NumericalfluxEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/NumericalfluxEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=NumericalfluxEnum()
 
-macro=435;
+macro=59;
Index: issm/trunk/src/m/enum/NumparEnum.m
===================================================================
--- issm/trunk/src/m/enum/NumparEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/NumparEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=NumparEnum()
 
-macro=443;
+macro=63;
Index: issm/trunk/src/m/enum/ObjectEnum.m
===================================================================
--- issm/trunk/src/m/enum/ObjectEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ObjectEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ObjectEnum()
 
-macro=400;
+macro=42;
Index: issm/trunk/src/m/enum/ParamEnum.m
===================================================================
--- issm/trunk/src/m/enum/ParamEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ParamEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ParamEnum()
 
-macro=460;
+macro=65;
Index: issm/trunk/src/m/enum/ParametersAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/ParametersAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ParametersAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ParametersAnalysisEnum()
 
-macro=280;
+macro=33;
Index: issm/trunk/src/m/enum/ParametersEnum.m
===================================================================
--- issm/trunk/src/m/enum/ParametersEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ParametersEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ParametersEnum()
 
-macro=106;
+macro=6;
Index: issm/trunk/src/m/enum/PattynFormulationEnum.m
===================================================================
--- issm/trunk/src/m/enum/PattynFormulationEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/PattynFormulationEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=PattynFormulationEnum()
 
-macro=304;
+macro=40;
Index: issm/trunk/src/m/enum/PengridEnum.m
===================================================================
--- issm/trunk/src/m/enum/PengridEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/PengridEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=PengridEnum()
 
-macro=434;
+macro=58;
Index: issm/trunk/src/m/enum/PenpairEnum.m
===================================================================
--- issm/trunk/src/m/enum/PenpairEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/PenpairEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=PenpairEnum()
 
-macro=433;
+macro=57;
Index: issm/trunk/src/m/enum/PentaEnum.m
===================================================================
--- issm/trunk/src/m/enum/PentaEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/PentaEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=PentaEnum()
 
-macro=414;
+macro=48;
Index: issm/trunk/src/m/enum/Prognostic2AnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/Prognostic2AnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/Prognostic2AnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=Prognostic2AnalysisEnum()
 
-macro=251;
+macro=28;
Index: issm/trunk/src/m/enum/PrognosticAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/PrognosticAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/PrognosticAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=PrognosticAnalysisEnum()
 
-macro=250;
+macro=27;
Index: issm/trunk/src/m/enum/ResultEnum.m
===================================================================
--- issm/trunk/src/m/enum/ResultEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ResultEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ResultEnum()
 
-macro=470;
+macro=66;
Index: issm/trunk/src/m/enum/ResultsEnum.m
===================================================================
--- issm/trunk/src/m/enum/ResultsEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ResultsEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ResultsEnum()
 
-macro=107;
+macro=7;
Index: issm/trunk/src/m/enum/RgbEnum.m
===================================================================
--- issm/trunk/src/m/enum/RgbEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/RgbEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=RgbEnum()
 
-macro=480;
+macro=67;
Index: issm/trunk/src/m/enum/RiftfrontEnum.m
===================================================================
--- issm/trunk/src/m/enum/RiftfrontEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/RiftfrontEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=RiftfrontEnum()
 
-macro=432;
+macro=56;
Index: issm/trunk/src/m/enum/SingEnum.m
===================================================================
--- issm/trunk/src/m/enum/SingEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/SingEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=SingEnum()
 
-macro=415;
+macro=50;
Index: issm/trunk/src/m/enum/SlopecomputeAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/SlopecomputeAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/SlopecomputeAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=SlopecomputeAnalysisEnum()
 
-macro=240;
+macro=22;
Index: issm/trunk/src/m/enum/SpcEnum.m
===================================================================
--- issm/trunk/src/m/enum/SpcEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/SpcEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=SpcEnum()
 
-macro=490;
+macro=68;
Index: issm/trunk/src/m/enum/SteadyAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/SteadyAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/SteadyAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=SteadyAnalysisEnum()
 
-macro=232;
+macro=21;
Index: issm/trunk/src/m/enum/SteadystateAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/SteadystateAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/SteadystateAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=SteadystateAnalysisEnum()
 
-macro=281;
+macro=34;
Index: issm/trunk/src/m/enum/StokesAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/StokesAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/StokesAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=StokesAnalysisEnum()
 
-macro=212;
+macro=12;
Index: issm/trunk/src/m/enum/StokesFormulationEnum.m
===================================================================
--- issm/trunk/src/m/enum/StokesFormulationEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/StokesFormulationEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=StokesFormulationEnum()
 
-macro=305;
+macro=41;
Index: issm/trunk/src/m/enum/SurfaceXAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/SurfaceXAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/SurfaceXAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=SurfaceXAnalysisEnum()
 
-macro=241;
+macro=23;
Index: issm/trunk/src/m/enum/SurfaceYAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/SurfaceYAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/SurfaceYAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=SurfaceYAnalysisEnum()
 
-macro=242;
+macro=24;
Index: issm/trunk/src/m/enum/ThermalAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/ThermalAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/ThermalAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=ThermalAnalysisEnum()
 
-macro=230;
+macro=19;
Index: issm/trunk/src/m/enum/TransientAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/TransientAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/TransientAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=TransientAnalysisEnum()
 
-macro=231;
+macro=20;
Index: issm/trunk/src/m/enum/TriaEnum.m
===================================================================
--- issm/trunk/src/m/enum/TriaEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/TriaEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=TriaEnum()
 
-macro=411;
+macro=45;
Index: issm/trunk/src/m/enum/VertAnalysisEnum.m
===================================================================
--- issm/trunk/src/m/enum/VertAnalysisEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/VertAnalysisEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=VertAnalysisEnum()
 
-macro=214;
+macro=14;
Index: issm/trunk/src/m/enum/VertexEnum.m
===================================================================
--- issm/trunk/src/m/enum/VertexEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/VertexEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=VertexEnum()
 
-macro=420;
+macro=53;
Index: issm/trunk/src/m/enum/VerticesEnum.m
===================================================================
--- issm/trunk/src/m/enum/VerticesEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/VerticesEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=VerticesEnum()
 
-macro=108;
+macro=8;
Index: issm/trunk/src/m/enum/WaterEnum.m
===================================================================
--- issm/trunk/src/m/enum/WaterEnum.m	(revision 3566)
+++ issm/trunk/src/m/enum/WaterEnum.m	(revision 3567)
@@ -7,3 +7,3 @@
 %      macro=WaterEnum()
 
-macro=601;
+macro=73;
Index: issm/trunk/src/mex/TriMeshProcessRifts/TriMeshProcessRifts.cpp
===================================================================
--- issm/trunk/src/mex/TriMeshProcessRifts/TriMeshProcessRifts.cpp	(revision 3566)
+++ issm/trunk/src/mex/TriMeshProcessRifts/TriMeshProcessRifts.cpp	(revision 3567)
@@ -287,5 +287,5 @@
 			/*Friction fraction, fractionincrement  and fill: */
 			mxSetField(pmxa_array,i,"friction",mxCreateDoubleScalar(0));
-			mxSetField(pmxa_array,i,"fill",mxCreateDoubleScalar(IceEnum())); //default is ice
+			mxSetField(pmxa_array,i,"fill",mxCreateDoubleScalar(IceEnum)); //default is ice
 			mxSetField(pmxa_array,i,"fraction",mxCreateDoubleScalar(0)); //default is ice
 			mxSetField(pmxa_array,i,"fractionincrement",mxCreateDoubleScalar(0.1)); 
@@ -295,5 +295,5 @@
 		/*output NaN :*/
 		pNaN=(double*)xmalloc(sizeof(double));
-		*pNaN=0.0/0.0;
+		*pNaN=NAN;
 		pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
 		mxSetM(pmxa_array,1);
