Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 8925)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 8926)
@@ -189,5 +189,4 @@
 	ControlTypeEnum,
 	ConvergedEnum,
-	DhDtEnum,
 	DragCoefficientEnum,
 	DragPEnum,
@@ -201,9 +200,7 @@
 	ElementOnSurfaceEnum,
 	ElementOnWaterEnum,
-	EpsVelEnum,
 	FillEnum,
 	FractionIncrementEnum,
 	FrictionEnum,
-	GeothermalFluxEnum,
 	HydrostaticAdjustmentEnum,
 	InternalEnum,
@@ -219,5 +216,4 @@
 	SurfaceAverageVelMisfitEnum,
 	MaxPenetrationEnum,
-	MeanVelEnum,
 	MeltingOffsetEnum,
 	GroundingLineMeltingRateEnum,
@@ -242,6 +238,5 @@
 	ShelfDampeningEnum,
 	StabilizeConstraintsEnum,
-	StokesReconditioningEnum,
-   SurfaceAccumulationRateEnum,
+	SurfaceAccumulationRateEnum,
 	SurfaceAblationRateEnum,
 	SurfaceAreaEnum,
@@ -304,5 +299,4 @@
 	TimeEnum,
 	OutputFrequencyEnum,
-	WaterColumnEnum,
 	WaterColumnOldEnum,
 	WaterColumnPicardEnum,
@@ -339,5 +333,4 @@
 	RhoWaterEnum,
 	GravityEnum,
-	ThermalConductivityEnum,
 	BasalMeltingRateCorrectionEnum,
 	BasalMeltingRateCorrectionApplyEnum,
@@ -371,17 +364,8 @@
 	EpsRelEnum,
 	EpsResEnum,
-	HeatCapacityEnum,
-	IsHutterEnum,
-	IsMacAyealPattynEnum,
-	IsStokesEnum,
-	KffEnum, //TO BE DELETED (not used anymore)
-	LatentHeatEnum,
 	LowmemEnum,
-	MaxIterEnum,
 	MaxNonlinearIterationsEnum,
-	MeltingPointEnum,
 	MinMechanicalConstraintsEnum,
 	MinThermalConstraintsEnum,
-	NStepsEnum,
 	NdtEnum,
 	NumOutputEnum,
@@ -390,8 +374,5 @@
 	NumberOfNodesEnum,
 	NumberOfVerticesEnum,
-	OptScalEnum,
 	OutputFilePointerEnum,
-	OutputFileNameEnum,
-	ParameterOutputEnum,
 	PenaltyMeltingEnum,
 	QmuAnalysisEnum,
@@ -412,8 +393,6 @@
 	PetscRcEnum,
 	SparsityEnum,
-	TolXEnum,
 	VariableDescriptorsEnum,
 	VerboseEnum,
-	WaitOnLockEnum,
 	PetscOptionsStringsEnum,
 	PetscOptionsAnalysesEnum,
@@ -442,16 +421,91 @@
 	ArrheniusEnum,
 	/*}}}*/
+	/*Temporary{{{1*/
+	NumberOfElements2DEnum,
+	NumControlTypeEnum,
+	SpcvyEnum,
+	HydroQEnum,
+	VerboseBinaryEnum,
+	NodeOnWaterEnum,
+	YEnum,
+	GlMeltingRateEnum,
+	ElementsTypeEnum,
+	PenaltiesEnum,
+	PrognosticDGEnum,
+	PressureloadEnum,
+	HydroCREnum,
+	NameEnum,
+	VerticesTypeEnum,
+	HydroKnEnum,
+	GEnum,
+	InputfilenameEnum,
+	SpcvzEnum,
+	list,
+	NumberOfNodes2DEnum,
+	NodeOnStokesEnum,
+	NodeOnHutterEnum,
+	ZEnum,
+	GlMigrationEnum,
+	RiftinfoEnum,
+	ElementOnIceSheetEnum,
+	SpcthicknessEnum,
+	SpctemperatureEnum,
+	PenaltyLockEnum,
+	SpcvxEnum,
+	UpperelementsEnum,
+	HydroPEnum,
+	NodeOnPattynEnum,
+	EdgesEnum,
+	Elements2DEnum,
+	XEnum,
+	NumCmResponsesEnum,
+	NodeOnMacayealEnum,
+	ElementconnectivityEnum,
+	SpcwatercolumnEnum,
+	ArtificialDiffusivityEnum,
+	HydroNEnum,
+	BorderstokesEnum,
+	NumlayersEnum,
+	DiagnosticRefEnum,
+	IshutterEnum,
+	IsmacayealpattynEnum,
+	IsstokesEnum,
+	StokesreconditioningEnum,
+	LowerelementsEnum,
+	HeatcapacityEnum,
+	LatentheatEnum,
+	ThermalconductivityEnum,
+	MeltingpointEnum,
+	ReferencetemperatureEnum,
+	DhdtEnum,
+	GeothermalfluxEnum,
+	IsprognosticEnum,
+	IsdiagnosticEnum,
+	IsthermalEnum,
+	NstepsEnum,
+	MaxiterEnum,
+	TolxEnum,
+	OptscalEnum,
+	EpsvelEnum,
+	MeanvelEnum,
+	ParameteroutputEnum,
+	OutputfilenameEnum,
+	WaterfractionEnum,
+	WatercolumnEnum,
+	WaitonlockEnum,
+	NumberOfVariablesEnum,
+	NumvariabledescriptorsEnum,
+	NumberOfResponsesEnum,
+	NumresponsedescriptorsEnum,
+	NpartEnum,
+	QmuMassFluxNumProfilesEnum,
+	/*}}}*/
 	VxMeshEnum,
 	VyMeshEnum,
 	VzMeshEnum,
-	IsDiagnosticEnum,
-	IsPrognosticEnum,
-	IsThermalEnum,
 	EnthalpySolutionEnum,
 	EnthalpyAnalysisEnum,
 	EnthalpyEnum,
 	EnthalpyPicardEnum,
-	WaterFractionEnum,
-	ReferenceTemperatureEnum,
 	ThicknessAbsGradientEnum,
 	VelAbsGradientEnum,
Index: /issm/trunk/src/c/EnumDefinitions/EnumToModelField.cpp
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumToModelField.cpp	(revision 8925)
+++ /issm/trunk/src/c/EnumDefinitions/EnumToModelField.cpp	(revision 8926)
@@ -17,5 +17,5 @@
 		case RheologyBEnum : return "rheology_B";
 		case RheologyBbarEnum : return "rheology_B";
-		case DhDtEnum : return "dhdt";
+		case DhdtEnum : return "dhdt";
 		case VxEnum : return "vx";
 		case VxObsEnum : return "vx_obs";
Index: /issm/trunk/src/c/io/Disk/IoModelFetchData.cpp
===================================================================
--- /issm/trunk/src/c/io/Disk/IoModelFetchData.cpp	(revision 8925)
+++ /issm/trunk/src/c/io/Disk/IoModelFetchData.cpp	(revision 8926)
@@ -13,6 +13,6 @@
 #include "./diskio.h"
 
-/*FUNCTION IoModelFetchData(double** pmatrix,int* pM,int* pN,FILE* model_handle,char* data_name){{{1*/
-void  IoModelFetchData(double** pmatrix,int* pM,int* pN,FILE* model_handle,char* data_name){
+/*FUNCTION IoModelFetchData(double** pmatrix,int* pM,int* pN,FILE* model_handle,int data_enum){{{1*/
+void  IoModelFetchData(double** pmatrix,int* pM,int* pN,FILE* model_handle,int data_enum){
 
 	extern int my_rank;
@@ -26,5 +26,5 @@
 	
 	/*Set file pointer to beginning of the data: */
-	fid=SetFilePointerToData(model_handle,data_name);
+	fid=SetFilePointerToData(model_handle,data_enum);
 	
 	/*Now fetch: */
@@ -62,6 +62,6 @@
 }
 /*}}}*/
-/*FUNCTION IoModelFetchData(char** pstring,FILE* model_handle,char* data_name){{{1*/
-void  IoModelFetchData(char** pstring,FILE* model_handle,char* data_name){
+/*FUNCTION IoModelFetchData(char** pstring,FILE* model_handle,int data_enum){{{1*/
+void  IoModelFetchData(char** pstring,FILE* model_handle,int data_enum){
 
 	extern int my_rank;
@@ -74,5 +74,5 @@
 	
 	/*Set file pointer to beginning of the data: */
-	fid=SetFilePointerToData(model_handle,data_name);
+	fid=SetFilePointerToData(model_handle,data_enum);
 	
 	/*Now fetch: */
@@ -106,6 +106,67 @@
 }
 /*}}}*/
-/*FUNCTION IoModelFetchData(double* pscalar,FILE* model_handle,char* data_name){{{1*/
-void  IoModelFetchData(double* pscalar,FILE* model_handle,char* data_name){
+/*FUNCTION IoModelFetchData(char*** pstrings,int* pnumstrings,FILE* model_handle,int data_enum){{{1*/
+void  IoModelFetchData(char*** pstrings,int* pnumstrings,FILE* model_handle,int data_enum){
+
+	extern int my_rank;
+	extern int num_procs;
+	FILE* fid=NULL;
+	int i;
+
+	/*output: */
+	int   numstrings=0;
+	char** strings=NULL;
+	
+	/*intermediary: */
+	char* string=NULL;
+	int   string_size;
+	
+	/*Set file pointer to beginning of the data: */
+	fid=SetFilePointerToData(model_handle,data_enum);
+	
+	/*We have to read a bunch of strings from disk. First read the number of strings, and allocate: */
+	if(my_rank==0){  
+		if(fread(&numstrings,sizeof(int),1,fid)!=1) _error_(" could not read length of string array");
+	}
+	MPI_Bcast(&numstrings,1,MPI_INT,0,MPI_COMM_WORLD); 
+
+	/*Now allocate string array: */
+	if(numstrings){
+		strings=(char**)xmalloc(numstrings*sizeof(char*));
+		for(i=0;i<numstrings;i++)strings[i]=NULL;
+
+		/*Go through strings, and read: */
+		for(i=0;i<numstrings;i++){
+			
+			if(my_rank==0){  
+				if(fread(&string_size,sizeof(int),1,fid)!=1) _error_(" could not read length of string ");
+			}
+			MPI_Bcast(&string_size,1,MPI_INT,0,MPI_COMM_WORLD); 
+			if(string_size){
+				string=(char*)xmalloc((string_size+1)*sizeof(char));
+				string[string_size]='\0';
+
+				/*Read string on node 0, then broadcast: */
+				if(my_rank==0){  
+					if(fread(string,string_size*sizeof(char),1,fid)!=1)_error_("  could not read string ");
+				}
+				MPI_Bcast(string,string_size,MPI_CHAR,0,MPI_COMM_WORLD); 
+			}
+			else{
+				string=(char*)xmalloc(sizeof(char));
+				string[0]='\0';
+			}
+
+			strings[i]=string;
+		}
+	}
+
+	/*Assign output pointers: */
+	*pstrings=strings;
+	*pnumstrings=numstrings;
+}
+/*}}}*/
+/*FUNCTION IoModelFetchData(double* pscalar,FILE* model_handle,int data_enum){{{1*/
+void  IoModelFetchData(double* pscalar,FILE* model_handle,int data_enum){
 
 
@@ -118,5 +179,5 @@
 	
 	/*Set file pointer to beginning of the data: */
-	fid=SetFilePointerToData(model_handle,data_name);
+	fid=SetFilePointerToData(model_handle,data_enum);
 	
 	/*We have to read a scalar from disk. First read the dimensions of the scalar, then the scalar: */
@@ -131,6 +192,6 @@
 }
 /*}}}*/
-/*FUNCTION IoModelFetchData(int* pinteger,FILE* model_handle,char* data_name){{{1*/
-void  IoModelFetchData(int* pinteger,FILE* model_handle,char* data_name){
+/*FUNCTION IoModelFetchData(int* pinteger,FILE* model_handle,int data_enum){{{1*/
+void  IoModelFetchData(int* pinteger,FILE* model_handle,int data_enum){
 
 	extern int my_rank;
@@ -142,5 +203,5 @@
 	
 	/*Set file pointer to beginning of the data: */
-	fid=SetFilePointerToData(model_handle,data_name);
+	fid=SetFilePointerToData(model_handle,data_enum);
 	
 	/*We have to read a integer from disk. First read the dimensions of the integer, then the integer: */
@@ -156,16 +217,14 @@
 }
 /*}}}*/
-/*FUNCTION SetFilePointerToData(FILE* model_handle,char* data_name){{{1*/
-FILE* SetFilePointerToData(FILE* model_handle,char* data_name){
-
-	extern int my_rank;
-	extern int num_procs;
-	
-	int string_size;
+/*FUNCTION SetFilePointerToData(FILE* model_handle,int data_enum){{{1*/
+FILE* SetFilePointerToData(FILE* model_handle,int data_enum){
+
+	extern int my_rank;
+	extern int num_procs;
+	
 	int record_length;
-	char* string=NULL;
-	char* repository=NULL;
 	FILE* fid=NULL;
 	int found=0;
+	int record_enum;
 
 	/*Go find in the binary file, the position of the data we want to fetch: */
@@ -176,24 +235,15 @@
 		fseek(fid,0,SEEK_SET);
 
-		/*Now march through file looking for the correct name: */
+		/*Now march through file looking for the correct data identifier: */
 		for(;;){
-			/*Read size of first string name: */
-			if(fread(&string_size,sizeof(int),1,fid)==0){
+			/*Read enum for this size of first string name: */
+			if(fread(&record_enum,sizeof(int),1,fid)==0){
 				/*Ok, we have reached the end of the file. break: */
 				found=0;
 				break;
 			}
-			/*Allocate string of correct size: */
-			string=(char*)xmalloc((string_size+1)*sizeof(char));
-			string[string_size]='\0';
-
-			/*Read string: */
-			if(fread(string,string_size*sizeof(char),1,fid)==0){
-				/*Ok, we have reached the end of the file. break: */
-				found=0;
-				break;
-			}
-			/*Is this the correct string? : */
-			if (strcmp(string,data_name)==0){
+			
+			/*Is this the record sought for? : */
+			if (data_enum==record_enum){
 				/*Ok, we have found the correct string. Pass the record length, and break: */
 				fseek(fid,sizeof(int),SEEK_CUR);
@@ -207,13 +257,9 @@
 				fseek(fid,record_length,SEEK_CUR);
 			}
-			/*Erase string: */
-			xfree((void**)&string);
-		}
-		/*erase string, if we broke from the for() loop:*/
-		xfree((void**)&string);
+		}
 	}
 	MPI_Bcast(&found,1,MPI_INT,0,MPI_COMM_WORLD); 
 
-	if(!found)_error_("%s %s ","could not find data with name",data_name);
+	if(!found)_error_("%s %s ","could not find data with name",EnumToStringx(data_enum));
 
 	return fid;
Index: /issm/trunk/src/c/io/Disk/diskio.h
===================================================================
--- /issm/trunk/src/c/io/Disk/diskio.h	(revision 8925)
+++ /issm/trunk/src/c/io/Disk/diskio.h	(revision 8926)
@@ -16,9 +16,11 @@
 void  pfclose(FILE* fid,char* filename);
 
-void  IoModelFetchData(double** pmatrix,int* pM,int* pN,FILE* model_handle,char* data_name);
-void  IoModelFetchData(char** pstring,FILE* model_handle,char* data_name);
-void  IoModelFetchData(double* pscalar,FILE* model_handle,char* data_name);
-void  IoModelFetchData(int* pinteger,FILE* model_handle,char* data_name);
-FILE* SetFilePointerToData(FILE* model_handle,char* data_name);
+void  IoModelFetchData(double** pmatrix,int* pM,int* pN,FILE* model_handle,int data_enum);
+void  IoModelFetchData(char** pstring,FILE* model_handle,int data_enum);
+void  IoModelFetchData(double* pscalar,FILE* model_handle,int data_enum);
+void  IoModelFetchData(int* pinteger,FILE* model_handle,int data_enum);
+void  IoModelFetchData(char*** pstrings,int* pnumstrings,FILE* model_handle,int data_enum);
+
+FILE* SetFilePointerToData(FILE* model_handle,int data_enum);
 
 #endif	/* _IO_H_ */
Index: /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 8926)
@@ -157,5 +157,4 @@
 		case ControlTypeEnum : return "ControlType";
 		case ConvergedEnum : return "Converged";
-		case DhDtEnum : return "DhDt";
 		case DragCoefficientEnum : return "DragCoefficient";
 		case DragPEnum : return "DragP";
@@ -169,9 +168,7 @@
 		case ElementOnSurfaceEnum : return "ElementOnSurface";
 		case ElementOnWaterEnum : return "ElementOnWater";
-		case EpsVelEnum : return "EpsVel";
 		case FillEnum : return "Fill";
 		case FractionIncrementEnum : return "FractionIncrement";
 		case FrictionEnum : return "Friction";
-		case GeothermalFluxEnum : return "GeothermalFlux";
 		case HydrostaticAdjustmentEnum : return "HydrostaticAdjustment";
 		case InternalEnum : return "Internal";
@@ -187,5 +184,4 @@
 		case SurfaceAverageVelMisfitEnum : return "SurfaceAverageVelMisfit";
 		case MaxPenetrationEnum : return "MaxPenetration";
-		case MeanVelEnum : return "MeanVel";
 		case MeltingOffsetEnum : return "MeltingOffset";
 		case GroundingLineMeltingRateEnum : return "GroundingLineMeltingRate";
@@ -210,5 +206,4 @@
 		case ShelfDampeningEnum : return "ShelfDampening";
 		case StabilizeConstraintsEnum : return "StabilizeConstraints";
-		case StokesReconditioningEnum : return "StokesReconditioning";
 		case SurfaceAccumulationRateEnum : return "SurfaceAccumulationRate";
 		case SurfaceAblationRateEnum : return "SurfaceAblationRate";
@@ -268,5 +263,4 @@
 		case TimeEnum : return "Time";
 		case OutputFrequencyEnum : return "OutputFrequency";
-		case WaterColumnEnum : return "WaterColumn";
 		case WaterColumnOldEnum : return "WaterColumnOld";
 		case WaterColumnPicardEnum : return "WaterColumnPicard";
@@ -293,5 +287,4 @@
 		case RhoWaterEnum : return "RhoWater";
 		case GravityEnum : return "Gravity";
-		case ThermalConductivityEnum : return "ThermalConductivity";
 		case BasalMeltingRateCorrectionEnum : return "BasalMeltingRateCorrection";
 		case BasalMeltingRateCorrectionApplyEnum : return "BasalMeltingRateCorrectionApply";
@@ -321,17 +314,8 @@
 		case EpsRelEnum : return "EpsRel";
 		case EpsResEnum : return "EpsRes";
-		case HeatCapacityEnum : return "HeatCapacity";
-		case IsHutterEnum : return "IsHutter";
-		case IsMacAyealPattynEnum : return "IsMacAyealPattyn";
-		case IsStokesEnum : return "IsStokes";
-		case KffEnum : return "Kff";
-		case LatentHeatEnum : return "LatentHeat";
 		case LowmemEnum : return "Lowmem";
-		case MaxIterEnum : return "MaxIter";
 		case MaxNonlinearIterationsEnum : return "MaxNonlinearIterations";
-		case MeltingPointEnum : return "MeltingPoint";
 		case MinMechanicalConstraintsEnum : return "MinMechanicalConstraints";
 		case MinThermalConstraintsEnum : return "MinThermalConstraints";
-		case NStepsEnum : return "NSteps";
 		case NdtEnum : return "Ndt";
 		case NumOutputEnum : return "NumOutput";
@@ -340,8 +324,5 @@
 		case NumberOfNodesEnum : return "NumberOfNodes";
 		case NumberOfVerticesEnum : return "NumberOfVertices";
-		case OptScalEnum : return "OptScal";
 		case OutputFilePointerEnum : return "OutputFilePointer";
-		case OutputFileNameEnum : return "OutputFileName";
-		case ParameterOutputEnum : return "ParameterOutput";
 		case PenaltyMeltingEnum : return "PenaltyMelting";
 		case QmuAnalysisEnum : return "QmuAnalysis";
@@ -362,8 +343,6 @@
 		case PetscRcEnum : return "PetscRc";
 		case SparsityEnum : return "Sparsity";
-		case TolXEnum : return "TolX";
 		case VariableDescriptorsEnum : return "VariableDescriptors";
 		case VerboseEnum : return "Verbose";
-		case WaitOnLockEnum : return "WaitOnLock";
 		case PetscOptionsStringsEnum : return "PetscOptionsStrings";
 		case PetscOptionsAnalysesEnum : return "PetscOptionsAnalyses";
@@ -385,16 +364,88 @@
 		case PatersonEnum : return "Paterson";
 		case ArrheniusEnum : return "Arrhenius";
+		case NumberOfElements2DEnum : return "NumberOfElements2D";
+		case NumControlTypeEnum : return "NumControlType";
+		case SpcvyEnum : return "Spcvy";
+		case HydroQEnum : return "HydroQ";
+		case VerboseBinaryEnum : return "VerboseBinary";
+		case NodeOnWaterEnum : return "NodeOnWater";
+		case YEnum : return "Y";
+		case GlMeltingRateEnum : return "GlMeltingRate";
+		case ElementsTypeEnum : return "ElementsType";
+		case PenaltiesEnum : return "Penalties";
+		case PrognosticDGEnum : return "PrognosticDG";
+		case PressureloadEnum : return "Pressureload";
+		case HydroCREnum : return "HydroCR";
+		case NameEnum : return "Name";
+		case VerticesTypeEnum : return "VerticesType";
+		case HydroKnEnum : return "HydroKn";
+		case GEnum : return "G";
+		case InputfilenameEnum : return "Inputfilename";
+		case SpcvzEnum : return "Spcvz";
+		case NumberOfNodes2DEnum : return "NumberOfNodes2D";
+		case NodeOnStokesEnum : return "NodeOnStokes";
+		case NodeOnHutterEnum : return "NodeOnHutter";
+		case ZEnum : return "Z";
+		case GlMigrationEnum : return "GlMigration";
+		case RiftinfoEnum : return "Riftinfo";
+		case ElementOnIceSheetEnum : return "ElementOnIceSheet";
+		case SpcthicknessEnum : return "Spcthickness";
+		case SpctemperatureEnum : return "Spctemperature";
+		case PenaltyLockEnum : return "PenaltyLock";
+		case SpcvxEnum : return "Spcvx";
+		case UpperelementsEnum : return "Upperelements";
+		case HydroPEnum : return "HydroP";
+		case NodeOnPattynEnum : return "NodeOnPattyn";
+		case EdgesEnum : return "Edges";
+		case Elements2DEnum : return "Elements2D";
+		case XEnum : return "X";
+		case NumCmResponsesEnum : return "NumCmResponses";
+		case NodeOnMacayealEnum : return "NodeOnMacayeal";
+		case ElementconnectivityEnum : return "Elementconnectivity";
+		case SpcwatercolumnEnum : return "Spcwatercolumn";
+		case ArtificialDiffusivityEnum : return "ArtificialDiffusivity";
+		case HydroNEnum : return "HydroN";
+		case BorderstokesEnum : return "Borderstokes";
+		case NumlayersEnum : return "Numlayers";
+		case DiagnosticRefEnum : return "DiagnosticRef";
+		case IshutterEnum : return "Ishutter";
+		case IsmacayealpattynEnum : return "Ismacayealpattyn";
+		case IsstokesEnum : return "Isstokes";
+		case StokesreconditioningEnum : return "Stokesreconditioning";
+		case LowerelementsEnum : return "Lowerelements";
+		case HeatcapacityEnum : return "Heatcapacity";
+		case LatentheatEnum : return "Latentheat";
+		case ThermalconductivityEnum : return "Thermalconductivity";
+		case MeltingpointEnum : return "Meltingpoint";
+		case ReferencetemperatureEnum : return "Referencetemperature";
+		case DhdtEnum : return "Dhdt";
+		case GeothermalfluxEnum : return "Geothermalflux";
+		case IsprognosticEnum : return "Isprognostic";
+		case IsdiagnosticEnum : return "Isdiagnostic";
+		case IsthermalEnum : return "Isthermal";
+		case NstepsEnum : return "Nsteps";
+		case MaxiterEnum : return "Maxiter";
+		case TolxEnum : return "Tolx";
+		case OptscalEnum : return "Optscal";
+		case EpsvelEnum : return "Epsvel";
+		case MeanvelEnum : return "Meanvel";
+		case ParameteroutputEnum : return "Parameteroutput";
+		case OutputfilenameEnum : return "Outputfilename";
+		case WaterfractionEnum : return "Waterfraction";
+		case WatercolumnEnum : return "Watercolumn";
+		case WaitonlockEnum : return "Waitonlock";
+		case NumberOfVariablesEnum : return "NumberOfVariables";
+		case NumvariabledescriptorsEnum : return "Numvariabledescriptors";
+		case NumberOfResponsesEnum : return "NumberOfResponses";
+		case NumresponsedescriptorsEnum : return "Numresponsedescriptors";
+		case NpartEnum : return "Npart";
+		case QmuMassFluxNumProfilesEnum : return "QmuMassFluxNumProfiles";
 		case VxMeshEnum : return "VxMesh";
 		case VyMeshEnum : return "VyMesh";
 		case VzMeshEnum : return "VzMesh";
-		case IsDiagnosticEnum : return "IsDiagnostic";
-		case IsPrognosticEnum : return "IsPrognostic";
-		case IsThermalEnum : return "IsThermal";
 		case EnthalpySolutionEnum : return "EnthalpySolution";
 		case EnthalpyAnalysisEnum : return "EnthalpyAnalysis";
 		case EnthalpyEnum : return "Enthalpy";
 		case EnthalpyPicardEnum : return "EnthalpyPicard";
-		case WaterFractionEnum : return "WaterFraction";
-		case ReferenceTemperatureEnum : return "ReferenceTemperature";
 		case ThicknessAbsGradientEnum : return "ThicknessAbsGradient";
 		case VelAbsGradientEnum : return "VelAbsGradient";
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateConstraintsBalancethickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateConstraintsBalancethickness.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateConstraintsBalancethickness.cpp	(revision 8926)
@@ -30,5 +30,5 @@
 
 		/*Fetch data: */
-		IoModelFetchData(&iomodel->spcthickness,NULL,NULL,iomodel_handle,"spcthickness");
+		IoModelFetchData(&iomodel->spcthickness,NULL,NULL,iomodel_handle,SpcthicknessEnum);
 
 		/*Initialize counter*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateLoadsBalancethickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateLoadsBalancethickness.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateLoadsBalancethickness.cpp	(revision 8926)
@@ -30,7 +30,7 @@
 
 		/*Get edges and elements*/
-		IoModelFetchData(&iomodel->edges,&iomodel->numberofedges,NULL,iomodel_handle,"edges");
-		IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-		IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
+		IoModelFetchData(&iomodel->edges,&iomodel->numberofedges,NULL,iomodel_handle,EdgesEnum);
+		IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+		IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
 
 		/*First load data:*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp	(revision 8926)
@@ -39,11 +39,11 @@
 
 	/*First fetch data: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 
 	if(continuous_galerkin){
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp	(revision 8926)
@@ -21,20 +21,20 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
-	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
-	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,"basal_melting_rate");
-   IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,"surface_accumulation_rate");
-	IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,"surface_ablation_rate");
-	IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,"surface_mass_balance");
-	IoModelFetchData(&iomodel->dhdt,NULL,NULL,iomodel_handle,"dhdt");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,ElementOnIceShelfEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,VxEnum);
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,VyEnum);
+	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,BasalMeltingRateEnum);
+   IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,SurfaceAccumulationRateEnum);
+	IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,SurfaceAblationRateEnum);
+	IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,SurfaceMassBalanceEnum);
+	IoModelFetchData(&iomodel->dhdt,NULL,NULL,iomodel_handle,DhdtEnum);
 	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
+		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
 	}
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancevelocities/CreateConstraintsBalancevelocities.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancevelocities/CreateConstraintsBalancevelocities.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancevelocities/CreateConstraintsBalancevelocities.cpp	(revision 8926)
@@ -28,6 +28,6 @@
 
 	/*Fetch data: */
-	IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,"spcvx");
-	IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,"spcvy");
+	IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,SpcvxEnum);
+	IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,SpcvyEnum);
 
 	count=1; //matlab indexing
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancevelocities/CreateNodesBalancevelocities.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancevelocities/CreateNodesBalancevelocities.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancevelocities/CreateNodesBalancevelocities.cpp	(revision 8926)
@@ -32,10 +32,10 @@
 
 	/*First fetch data: */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 	for (i=0;i<iomodel->numberofvertices;i++){
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancevelocities/UpdateElementsBalancevelocities.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancevelocities/UpdateElementsBalancevelocities.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancevelocities/UpdateElementsBalancevelocities.cpp	(revision 8926)
@@ -21,20 +21,20 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
-	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
-	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,"basal_melting_rate");
-	IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,"surface_accumulation_rate");
-	IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,"surface_ablation_rate");
-	IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,"surface_mass_balance");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,ElementOnIceShelfEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,VxEnum);
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,VyEnum);
+	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,BasalMeltingRateEnum);
+	IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,SurfaceAccumulationRateEnum);
+	IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,SurfaceAblationRateEnum);
+	IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,SurfaceMassBalanceEnum);
 
 	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
+		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
 	}
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp	(revision 8926)
@@ -32,10 +32,10 @@
 	
 	/*First fetch data: */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 
 	for (i=0;i<iomodel->numberofvertices;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp	(revision 8926)
@@ -21,12 +21,12 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
 
 	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
+		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
 	}
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 8926)
@@ -28,5 +28,5 @@
 
 		/*What control type?*/
-		IoModelFetchData(&iomodel->control_type,NULL,NULL,iomodel_handle,"control_type");
+		IoModelFetchData(&iomodel->control_type,NULL,NULL,iomodel_handle,ControlTypeEnum);
 		parameters->AddObject(new IntVecParam(ControlTypeEnum,iomodel->control_type,iomodel->num_control_type));
 		xfree((void**)&iomodel->control_type);
@@ -39,21 +39,21 @@
 			parameters->AddObject(new BoolParam(ControlSteadyEnum,false));
 		}
-		parameters->AddObject(new IntParam(NStepsEnum,iomodel->nsteps));
-		parameters->AddObject(new DoubleParam(TolXEnum,iomodel->tolx));
+		parameters->AddObject(new IntParam(NstepsEnum,iomodel->nsteps));
+		parameters->AddObject(new DoubleParam(TolxEnum,iomodel->tolx));
 		parameters->AddObject(new DoubleParam(EpsCmEnum,iomodel->eps_cm));
-		parameters->AddObject(new DoubleParam(MeanVelEnum,iomodel->meanvel));
+		parameters->AddObject(new DoubleParam(MeanvelEnum,iomodel->meanvel));
 
 		parameters->AddObject(new BoolParam(CmGradientEnum,iomodel->cm_gradient));
 
 		/*Now, recover fit, optscal and maxiter as vectors: */
-		IoModelFetchData(&iomodel->cm_responses,NULL,NULL,iomodel_handle,"cm_responses");
-		IoModelFetchData(&iomodel->cm_jump,NULL,NULL,iomodel_handle,"cm_jump");
-		IoModelFetchData(&iomodel->optscal,NULL,NULL,iomodel_handle,"optscal");
-		IoModelFetchData(&iomodel->maxiter,NULL,NULL,iomodel_handle,"maxiter");
+		IoModelFetchData(&iomodel->cm_responses,NULL,NULL,iomodel_handle,CmResponsesEnum);
+		IoModelFetchData(&iomodel->cm_jump,NULL,NULL,iomodel_handle,CmJumpEnum);
+		IoModelFetchData(&iomodel->optscal,NULL,NULL,iomodel_handle,OptscalEnum);
+		IoModelFetchData(&iomodel->maxiter,NULL,NULL,iomodel_handle,MaxiterEnum);
 
-		parameters->AddObject(new DoubleMatParam(OptScalEnum,iomodel->optscal,iomodel->nsteps,iomodel->num_control_type));
+		parameters->AddObject(new DoubleMatParam(OptscalEnum,iomodel->optscal,iomodel->nsteps,iomodel->num_control_type));
 		parameters->AddObject(new DoubleMatParam(CmResponsesEnum,iomodel->cm_responses,iomodel->nsteps,iomodel->num_cm_responses));
 		parameters->AddObject(new DoubleVecParam(CmJumpEnum,iomodel->cm_jump,iomodel->nsteps));
-		parameters->AddObject(new DoubleVecParam(MaxIterEnum,iomodel->maxiter,iomodel->nsteps));
+		parameters->AddObject(new DoubleVecParam(MaxiterEnum,iomodel->maxiter,iomodel->nsteps));
 
 		xfree((void**)&iomodel->cm_responses);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 8926)
@@ -25,28 +25,28 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->control_type,NULL,NULL,iomodel_handle,"control_type");
-	IoModelFetchData(&iomodel->weights,NULL,NULL,iomodel_handle,"weights");
-	IoModelFetchData(&iomodel->cm_min,NULL,NULL,iomodel_handle,"cm_min");
-	IoModelFetchData(&iomodel->cm_max,NULL,NULL,iomodel_handle,"cm_max");
-	IoModelFetchData(&iomodel->vx_obs,NULL,NULL,iomodel_handle,"vx_obs");
-	IoModelFetchData(&iomodel->vy_obs,NULL,NULL,iomodel_handle,"vy_obs");
-	IoModelFetchData(&iomodel->thickness_obs,NULL,NULL,iomodel_handle,"thickness_obs");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->control_type,NULL,NULL,iomodel_handle,ControlTypeEnum);
+	IoModelFetchData(&iomodel->weights,NULL,NULL,iomodel_handle,WeightsEnum);
+	IoModelFetchData(&iomodel->cm_min,NULL,NULL,iomodel_handle,CmMinEnum);
+	IoModelFetchData(&iomodel->cm_max,NULL,NULL,iomodel_handle,CmMaxEnum);
+	IoModelFetchData(&iomodel->vx_obs,NULL,NULL,iomodel_handle,VxObsEnum);
+	IoModelFetchData(&iomodel->vy_obs,NULL,NULL,iomodel_handle,VyObsEnum);
+	IoModelFetchData(&iomodel->thickness_obs,NULL,NULL,iomodel_handle,ThicknessObsEnum);
 	for(i=0;i<iomodel->num_control_type;i++){
 		switch((int)iomodel->control_type[i]){
-			case DhDtEnum:
-				IoModelFetchData(&iomodel->dhdt,NULL,NULL,iomodel_handle,"dhdt");
+			case DhdtEnum:
+				IoModelFetchData(&iomodel->dhdt,NULL,NULL,iomodel_handle,DhdtEnum);
 				break;
 			case VxEnum:
-				IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+				IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,VxEnum);
 				break;
 			case VyEnum:
-				IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
+				IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,VyEnum);
 				break;
 			case DragCoefficientEnum:
-				IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,"drag_coefficient");
+				IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,DragCoefficientEnum);
 				break;
 			case RheologyBbarEnum:
-				IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B");
+				IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,RheologyBEnum);
 				break;
 			default:
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 8926)
@@ -35,13 +35,13 @@
 	
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->elementconnectivity,NULL,NULL,iomodel_handle,"elementconnectivity");
-	IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements");
-	IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,"lowerelements");
-	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B");
-	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n");
-	IoModelFetchData(&iomodel->control_type,NULL,NULL,iomodel_handle,"control_type");
-	IoModelFetchData(&iomodel->cm_min,NULL,NULL,iomodel_handle,"cm_min");
-	IoModelFetchData(&iomodel->cm_max,NULL,NULL,iomodel_handle,"cm_max");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->elementconnectivity,NULL,NULL,iomodel_handle,ElementconnectivityEnum);
+	IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,UpperelementsEnum);
+	IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,LowerelementsEnum);
+	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,RheologyBEnum);
+	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,RheologyNEnum);
+	IoModelFetchData(&iomodel->control_type,NULL,NULL,iomodel_handle,ControlTypeEnum);
+	IoModelFetchData(&iomodel->cm_min,NULL,NULL,iomodel_handle,CmMinEnum);
+	IoModelFetchData(&iomodel->cm_max,NULL,NULL,iomodel_handle,CmMaxEnum);
 	
 	/*Create elements and materials: */
@@ -74,9 +74,9 @@
 	
 	/*Create vertices: */
-	IoModelFetchData(&iomodel->x,NULL,NULL,iomodel_handle,"x");
-	IoModelFetchData(&iomodel->y,NULL,NULL,iomodel_handle,"y");
-	IoModelFetchData(&iomodel->z,NULL,NULL,iomodel_handle,"z");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
+	IoModelFetchData(&iomodel->x,NULL,NULL,iomodel_handle,XEnum);
+	IoModelFetchData(&iomodel->y,NULL,NULL,iomodel_handle,YEnum);
+	IoModelFetchData(&iomodel->z,NULL,NULL,iomodel_handle,ZEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
 	
 	for (i=0;i<iomodel->numberofvertices;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 8926)
@@ -17,18 +17,8 @@
 	
 	Parameters* parameters = NULL;
+
 	char**   parameteroutput=NULL;
-	char*    descriptor=NULL;
-	char*    tag=NULL;
-	#ifdef _SERIAL_
-	mxArray* pfield=NULL;
-	mxArray* pfield2=NULL;
-	#endif
-	int dummy;
-	int numpetscoptions;
-
-	/*petsc options: */
-	double*  analyses=NULL;
-	char**   petscstrings=NULL;
-
+	int      numparameters=0;
+	
 	if(*pparameters)return; //do not create parameters twice!
 		
@@ -41,7 +31,7 @@
 
 	parameters->AddObject(new IntParam(DimEnum,iomodel->dim));
-	parameters->AddObject(new BoolParam(IsHutterEnum,iomodel->ishutter));
-	parameters->AddObject(new BoolParam(IsMacAyealPattynEnum,iomodel->ismacayealpattyn));
-	parameters->AddObject(new BoolParam(IsStokesEnum,iomodel->isstokes));
+	parameters->AddObject(new BoolParam(IshutterEnum,iomodel->ishutter));
+	parameters->AddObject(new BoolParam(IsmacayealpattynEnum,iomodel->ismacayealpattyn));
+	parameters->AddObject(new BoolParam(IsstokesEnum,iomodel->isstokes));
 	parameters->AddObject(new IntParam(OutputFrequencyEnum,iomodel->output_frequency));
 	parameters->AddObject(new DoubleParam(EpsResEnum,iomodel->eps_res));
@@ -49,5 +39,5 @@
 	parameters->AddObject(new DoubleParam(EpsAbsEnum,iomodel->eps_abs));
 	parameters->AddObject(new IntParam(MaxNonlinearIterationsEnum,(IssmInt)iomodel->max_nonlinear_iterations));
-	parameters->AddObject(new DoubleParam(EpsVelEnum,iomodel->epsvel));
+	parameters->AddObject(new DoubleParam(EpsvelEnum,iomodel->epsvel));
 	parameters->AddObject(new DoubleParam(YtsEnum,iomodel->yts));
 	parameters->AddObject(new DoubleParam(DtEnum,iomodel->dt*iomodel->yts));  //Ndt is in yeats in iomodel
@@ -61,8 +51,8 @@
 	parameters->AddObject(new IntParam(ConnectivityEnum,iomodel->connectivity));
 	parameters->AddObject(new DoubleParam(BetaEnum,iomodel->beta));
-	parameters->AddObject(new DoubleParam(MeltingPointEnum,iomodel->meltingpoint));
-	parameters->AddObject(new DoubleParam(ReferenceTemperatureEnum,iomodel->referencetemperature));
-	parameters->AddObject(new DoubleParam(LatentHeatEnum,iomodel->latentheat));
-	parameters->AddObject(new DoubleParam(HeatCapacityEnum,iomodel->heatcapacity));
+	parameters->AddObject(new DoubleParam(MeltingpointEnum,iomodel->meltingpoint));
+	parameters->AddObject(new DoubleParam(ReferencetemperatureEnum,iomodel->referencetemperature));
+	parameters->AddObject(new DoubleParam(LatentheatEnum,iomodel->latentheat));
+	parameters->AddObject(new DoubleParam(HeatcapacityEnum,iomodel->heatcapacity));
 	parameters->AddObject(new IntParam(ArtDiffEnum,iomodel->artdiff));
 	parameters->AddObject(new IntParam(BasalMeltingRateCorrectionApplyEnum,iomodel->basal_melting_rate_correction_apply));
@@ -72,44 +62,25 @@
 	parameters->AddObject(new IntParam(MinMechanicalConstraintsEnum,iomodel->min_mechanical_constraints));
 	parameters->AddObject(new IntParam(StabilizeConstraintsEnum,iomodel->stabilize_constraints));
-	parameters->AddObject(new DoubleParam(StokesReconditioningEnum,iomodel->stokesreconditioning));
+	parameters->AddObject(new DoubleParam(StokesreconditioningEnum,iomodel->stokesreconditioning));
 	parameters->AddObject(new IntParam(ShelfDampeningEnum,iomodel->shelf_dampening));
 	parameters->AddObject(new DoubleParam(ViscosityOvershootEnum,iomodel->viscosity_overshoot));
-	parameters->AddObject(new BoolParam(WaitOnLockEnum,iomodel->waitonlock));
+	parameters->AddObject(new BoolParam(WaitonlockEnum,iomodel->waitonlock));
 	parameters->AddObject(new IntParam(NumberOfElementsEnum,iomodel->numberofelements));
 	parameters->AddObject(new BoolParam(IoGatherEnum,iomodel->io_gather));
 	parameters->AddObject(new IntParam(GroundingLineMigrationEnum,iomodel->gl_migration));
 	parameters->AddObject(new IntParam(RheologyLawEnum,iomodel->rheology_law));
-	parameters->AddObject(new BoolParam(IsDiagnosticEnum,iomodel->isdiagnostic));
-	parameters->AddObject(new BoolParam(IsPrognosticEnum,iomodel->isprognostic));
-	parameters->AddObject(new BoolParam(IsThermalEnum,iomodel->isthermal));
+	parameters->AddObject(new BoolParam(IsdiagnosticEnum,iomodel->isdiagnostic));
+	parameters->AddObject(new BoolParam(IsprognosticEnum,iomodel->isprognostic));
+	parameters->AddObject(new BoolParam(IsthermalEnum,iomodel->isthermal));
 
 	/*Deal with more complex parameters*/
-	IoModelFetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,"riftinfo");
+	IoModelFetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,RiftinfoEnum);
 	parameters->AddObject(new IntParam(NumRiftsEnum,iomodel->numrifts));
 	xfree((void**)&iomodel->riftinfo); 
 
-	parameters->AddObject(new IntParam(NumOutputEnum,iomodel->numoutput));
-	if(iomodel->numoutput){
-		parameteroutput=(char**)xmalloc(iomodel->numoutput*sizeof(char*));
-
-		tag=(char*)xmalloc((strlen("parameteroutput_i")+1)*sizeof(char));
-		for(i=0;i<iomodel->numoutput;i++){
-			sprintf(tag,"%s%i","parameteroutput_",i);
-			IoModelFetchData(&descriptor,iomodel_handle,tag);
-			parameteroutput[i]=descriptor;
-		}
-
-		/*Ok, we have all the parameter output  descriptors. Build a parameter with it: */
-		parameters->AddObject(new StringArrayParam(ParameterOutputEnum,parameteroutput,iomodel->numoutput));
-	}
-
-	/*Free data: {{{1*/
-	xfree((void**)&tag);
-	for(i=0;i<iomodel->numoutput;i++){
-		char* descriptor=parameteroutput[i];
-		xfree((void**)&descriptor);
-	}
-	xfree((void**)&parameteroutput);
-	/*}}}*/
+	
+	/*Deal with parametr outputs: */
+	IoModelFetchData(&parameteroutput,&numparameters,iomodel_handle,ParameteroutputEnum);
+	if(numparameters) parameters->AddObject(new StringArrayParam(ParameteroutputEnum,parameteroutput,numparameters));
 
 	/*Before returning, create parameters in case we are running Qmu or control types runs: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 8926)
@@ -32,14 +32,14 @@
 	
 	/*Spcs: fetch data: */
-	IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,"spcvx");
-	IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,"spcvy");
-	IoModelFetchData(&iomodel->spcvz,NULL,NULL,iomodel_handle,"spcvz");
-	IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,"nodeonhutter");
-	IoModelFetchData(&iomodel->nodeonmacayeal,NULL,NULL,iomodel_handle,"nodeonmacayeal");
-	if(iomodel->dim==3)IoModelFetchData(&iomodel->nodeonpattyn,NULL,NULL,iomodel_handle,"nodeonpattyn");
-	if(iomodel->dim==3)IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,"nodeonstokes");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->z,NULL,NULL,iomodel_handle,"z");
+	IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,SpcvxEnum);
+	IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,SpcvyEnum);
+	IoModelFetchData(&iomodel->spcvz,NULL,NULL,iomodel_handle,SpcvzEnum);
+	IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,NodeOnHutterEnum);
+	IoModelFetchData(&iomodel->nodeonmacayeal,NULL,NULL,iomodel_handle,NodeOnMacayealEnum);
+	if(iomodel->dim==3)IoModelFetchData(&iomodel->nodeonpattyn,NULL,NULL,iomodel_handle,NodeOnPattynEnum);
+	if(iomodel->dim==3)IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,NodeOnStokesEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->z,NULL,NULL,iomodel_handle,ZEnum);
 
 	/*Initialize counter: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 8926)
@@ -37,8 +37,8 @@
 	/*Create pressure loads as boundary conditions. Pay attention to the partitioning if we are running in parallel (the nodes
 	 * referenced by a certain load must belong to the cluster node): */
-	IoModelFetchData(&iomodel->pressureload,&iomodel->numberofpressureloads,NULL,iomodel_handle,"pressureload");
-	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,"elements_type");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
+	IoModelFetchData(&iomodel->pressureload,&iomodel->numberofpressureloads,NULL,iomodel_handle,PressureloadEnum);
+	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,ElementsTypeEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
 
 	/*Initialize counter: */
@@ -103,12 +103,12 @@
 
 	/*create penalties for nodes on the base of icesheet. We must have wb=ub*db/dx+vb*db/dy */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,"nodeonstokes");
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,"spcvx");
-	IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,"spcvy");
-	IoModelFetchData(&iomodel->spcvz,NULL,NULL,iomodel_handle,"spcvz");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,NodeOnStokesEnum);
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,SpcvxEnum);
+	IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,SpcvyEnum);
+	IoModelFetchData(&iomodel->spcvz,NULL,NULL,iomodel_handle,SpcvzEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
 	CreateSingleNodeToElementConnectivity(iomodel);
 	
@@ -137,5 +137,5 @@
 
 	/*Create Penpair for penalties: */
-	IoModelFetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,iomodel_handle,"penalties");
+	IoModelFetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,iomodel_handle,PenaltiesEnum);
 	
 	for(i=0;i<iomodel->numpenalties;i++){
@@ -160,9 +160,10 @@
 
 	/*Create Riffront loads for rifts: */
-	IoModelFetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,"riftinfo");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
+	IoModelFetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,RiftinfoEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+
 	
 	for(i=0;i<iomodel->numrifts;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 8926)
@@ -35,14 +35,14 @@
 
 	/*Create nodes: */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,"nodeonhutter");
-	IoModelFetchData(&iomodel->nodeonmacayeal,NULL,NULL,iomodel_handle,"nodeonmacayeal");
-	IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,"nodeonstokes");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->diagnostic_ref,NULL,NULL,iomodel_handle,"diagnostic_ref");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,NodeOnHutterEnum);
+	IoModelFetchData(&iomodel->nodeonmacayeal,NULL,NULL,iomodel_handle,NodeOnMacayealEnum);
+	IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,NodeOnStokesEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->diagnostic_ref,NULL,NULL,iomodel_handle,DiagnosticRefEnum);
 	
 	for (i=0;i<iomodel->numberofvertices;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 8926)
@@ -24,34 +24,34 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,"elements_type");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->thickness_coeff,NULL,NULL,iomodel_handle,"thickness_coeff");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,"drag_coefficient");
-	IoModelFetchData(&iomodel->drag_p,NULL,NULL,iomodel_handle,"drag_p");
-	IoModelFetchData(&iomodel->drag_q,NULL,NULL,iomodel_handle,"drag_q");
-	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
-	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B");
-	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n");
-	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
-	if(iomodel->gl_migration!=NoneEnum) IoModelFetchData(&iomodel->bathymetry,NULL,NULL,iomodel_handle,"bathymetry");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,ElementsTypeEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->thickness_coeff,NULL,NULL,iomodel_handle,ThicknessCoeffEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,DragCoefficientEnum);
+	IoModelFetchData(&iomodel->drag_p,NULL,NULL,iomodel_handle,DragPEnum);
+	IoModelFetchData(&iomodel->drag_q,NULL,NULL,iomodel_handle,DragQEnum);
+	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,ElementOnIceShelfEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
+	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,RheologyBEnum);
+	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,RheologyNEnum);
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,VxEnum);
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,VyEnum);
+	if(iomodel->gl_migration!=NoneEnum) IoModelFetchData(&iomodel->bathymetry,NULL,NULL,iomodel_handle,BathymetryEnum);
 
 	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
-		IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
-		IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,"surface_accumulation_rate");
-		IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,"surface_ablation_rate");
-		IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,"surface_mass_balance");
-		IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,"basal_melting_rate");
-		IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,"nodeonstokes");
+		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
+		IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,VzEnum);
+		IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,SurfaceAccumulationRateEnum);
+		IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,SurfaceAblationRateEnum);
+		IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,SurfaceMassBalanceEnum);
+		IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,BasalMeltingRateEnum);
+		IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,NodeOnStokesEnum);
 	}
 	if(iomodel->control_analysis){
-		IoModelFetchData(&iomodel->vx_obs,NULL,NULL,iomodel_handle,"vx_obs");
-		IoModelFetchData(&iomodel->vy_obs,NULL,NULL,iomodel_handle,"vy_obs");
+		IoModelFetchData(&iomodel->vx_obs,NULL,NULL,iomodel_handle,VxObsEnum);
+		IoModelFetchData(&iomodel->vy_obs,NULL,NULL,iomodel_handle,VyObsEnum);
 	}
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 8926)
@@ -31,7 +31,7 @@
 
 	/*Fetch data: */
-	IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,"spcvx");
-	IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,"spcvy");
-	IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,"nodeonhutter");
+	IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,SpcvxEnum);
+	IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,SpcvyEnum);
+	IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,NodeOnHutterEnum);
 
 	/*Initialize conunter*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 8926)
@@ -35,12 +35,12 @@
 
 	/*First fetch data: */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,"nodeonhutter");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,NodeOnHutterEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 
 	CreateNumberNodeToElementConnectivity(iomodel);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp	(revision 8926)
@@ -24,19 +24,19 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,"nodeonhutter");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->thickness_coeff,NULL,NULL,iomodel_handle,"thickness_coeff");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,"drag_coefficient");
-	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B");
-	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n");
-	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,"elements_type");
-	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
+	IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,NodeOnHutterEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->thickness_coeff,NULL,NULL,iomodel_handle,ThicknessCoeffEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,DragCoefficientEnum);
+	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,RheologyBEnum);
+	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,RheologyNEnum);
+	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,ElementsTypeEnum);
+	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
 
 	/*Update elements: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 8926)
@@ -30,6 +30,6 @@
 
 	/*Fetch data: */
-	IoModelFetchData(&iomodel->spcvz,NULL,NULL,iomodel_handle,"spcvz");
-	IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,"nodeonstokes");
+	IoModelFetchData(&iomodel->spcvz,NULL,NULL,iomodel_handle,SpcvzEnum);
+	IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,NodeOnStokesEnum);
 
 	/*Initialize counter*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp	(revision 8926)
@@ -35,10 +35,10 @@
 	
 	/*First fetch data: */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 
 	for (i=0;i<iomodel->numberofvertices;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp	(revision 8926)
@@ -24,19 +24,19 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->thickness_coeff,NULL,NULL,iomodel_handle,"thickness_coeff");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
-	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
-	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,"basal_melting_rate");
-	IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,"surface_accumulation_rate");
-	IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,"surface_ablation_rate");
-	IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,"surface_mass_balance");
-	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->thickness_coeff,NULL,NULL,iomodel_handle,ThicknessCoeffEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,ElementOnIceShelfEnum);
+	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
+	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,BasalMeltingRateEnum);
+	IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,SurfaceAccumulationRateEnum);
+	IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,SurfaceAblationRateEnum);
+	IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,SurfaceMassBalanceEnum);
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,VxEnum);
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,VyEnum);
 
 	/*Update elements: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp	(revision 8926)
@@ -46,9 +46,9 @@
 	if(iomodel->dim==2){
 		/*load elements: */
-		IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
+		IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
 	}
 	else{
 		/*load elements2d: */
-		IoModelFetchData(&iomodel->elements2d,NULL,NULL,iomodel_handle,"elements2d");
+		IoModelFetchData(&iomodel->elements2d,NULL,NULL,iomodel_handle,Elements2DEnum);
 	}
 
@@ -65,5 +65,5 @@
 
 	/*Deal with rifts, they have to be included into one partition only, not several: */
-	IoModelFetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,"riftinfo");
+	IoModelFetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,RiftinfoEnum);
 
 	for(i=0;i<iomodel->numrifts;i++){
@@ -81,5 +81,5 @@
 
 	/*Start figuring out, out of the partition, which elements belong to this cpu: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
 	for (i=0;i<iomodel->numberofelements;i++){
 
@@ -110,5 +110,5 @@
 	 * penpair has 2 nodes that are poointing toward 2 vertices.
 	 * The 2 vertices must be in the same cpu as the penpair*/
-	IoModelFetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,iomodel_handle,"penalties");
+	IoModelFetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,iomodel_handle,PenaltiesEnum);
 	for(i=0;i<iomodel->numpenalties;i++){
 		if(my_vertices[(int)iomodel->penalties[2*i+0]-1] && !my_vertices[(int)iomodel->penalties[2*i+1]-1]){
Index: /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp	(revision 8926)
@@ -31,5 +31,5 @@
 
 	/*Fetch data: */
-	IoModelFetchData(&iomodel->spctemperature,NULL,NULL,iomodel_handle,"spctemperature");
+	IoModelFetchData(&iomodel->spctemperature,NULL,NULL,iomodel_handle,SpctemperatureEnum);
 
 	/*Initialize counter*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp	(revision 8926)
@@ -32,10 +32,10 @@
 
 	/*Create nodes and vertices: */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 
 	for (i=0;i<iomodel->numberofvertices;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp	(revision 8926)
@@ -24,25 +24,25 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,"drag_coefficient");
-	IoModelFetchData(&iomodel->drag_p,NULL,NULL,iomodel_handle,"drag_p");
-	IoModelFetchData(&iomodel->drag_q,NULL,NULL,iomodel_handle,"drag_q");
-	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
-	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
-	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,"elements_type");
-	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B");
-	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n");
-	IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,"pressure");
-	IoModelFetchData(&iomodel->temperature,NULL,NULL,iomodel_handle,"temperature");
-	IoModelFetchData(&iomodel->waterfraction,NULL,NULL,iomodel_handle,"waterfraction");
-	IoModelFetchData(&iomodel->geothermalflux,NULL,NULL,iomodel_handle,"geothermalflux");
-	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
-	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,DragCoefficientEnum);
+	IoModelFetchData(&iomodel->drag_p,NULL,NULL,iomodel_handle,DragPEnum);
+	IoModelFetchData(&iomodel->drag_q,NULL,NULL,iomodel_handle,DragQEnum);
+	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,ElementOnIceShelfEnum);
+	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
+	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,ElementsTypeEnum);
+	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,RheologyBEnum);
+	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,RheologyNEnum);
+	IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,PressureEnum);
+	IoModelFetchData(&iomodel->temperature,NULL,NULL,iomodel_handle,TemperatureEnum);
+	IoModelFetchData(&iomodel->waterfraction,NULL,NULL,iomodel_handle,WaterfractionEnum);
+	IoModelFetchData(&iomodel->geothermalflux,NULL,NULL,iomodel_handle,GeothermalfluxEnum);
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,VxEnum);
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,VyEnum);
+	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,VzEnum);
 
 	/*Update elements: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateConstraintsHydrology.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateConstraintsHydrology.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateConstraintsHydrology.cpp	(revision 8926)
@@ -28,5 +28,5 @@
 
 	/*Fetch data: */
-	IoModelFetchData(&iomodel->spcwatercolumn,NULL,NULL,iomodel_handle,"spcwatercolumn");
+	IoModelFetchData(&iomodel->spcwatercolumn,NULL,NULL,iomodel_handle,SpcwatercolumnEnum);
 
 	/*Initialize counter*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp	(revision 8926)
@@ -32,10 +32,10 @@
 
 	/*Create nodes and vertices: */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 
 	for (i=0;i<iomodel->numberofvertices;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp	(revision 8926)
@@ -21,26 +21,26 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,"drag_coefficient");
-	IoModelFetchData(&iomodel->drag_p,NULL,NULL,iomodel_handle,"drag_p");
-	IoModelFetchData(&iomodel->drag_q,NULL,NULL,iomodel_handle,"drag_q");
-	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
-	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
-	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,"elements_type");
-	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B");
-	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n");
-	IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,"pressure");
-	IoModelFetchData(&iomodel->temperature,NULL,NULL,iomodel_handle,"temperature");
-	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,"basal_melting_rate");
-	IoModelFetchData(&iomodel->watercolumn,NULL,NULL,iomodel_handle,"watercolumn");
-	IoModelFetchData(&iomodel->geothermalflux,NULL,NULL,iomodel_handle,"geothermalflux");
-	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
-	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,DragCoefficientEnum);
+	IoModelFetchData(&iomodel->drag_p,NULL,NULL,iomodel_handle,DragPEnum);
+	IoModelFetchData(&iomodel->drag_q,NULL,NULL,iomodel_handle,DragQEnum);
+	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,ElementOnIceShelfEnum);
+	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
+	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,ElementsTypeEnum);
+	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,RheologyBEnum);
+	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,RheologyNEnum);
+	IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,PressureEnum);
+	IoModelFetchData(&iomodel->temperature,NULL,NULL,iomodel_handle,TemperatureEnum);
+	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,BasalMeltingRateEnum);
+	IoModelFetchData(&iomodel->watercolumn,NULL,NULL,iomodel_handle,WatercolumnEnum);
+	IoModelFetchData(&iomodel->geothermalflux,NULL,NULL,iomodel_handle,GeothermalfluxEnum);
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,VxEnum);
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,VyEnum);
+	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,VzEnum);
 
 	/*Update elements: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 8926)
@@ -29,6 +29,6 @@
 
 	//create penalties for nodes: no node can have a temperature over the melting point
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
 	CreateSingleNodeToElementConnectivity(iomodel);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp	(revision 8926)
@@ -32,10 +32,10 @@
 
 	/*First fetch data: */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 
 	for (i=0;i<iomodel->numberofvertices;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 8926)
@@ -24,23 +24,23 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,"drag_coefficient");
-	IoModelFetchData(&iomodel->drag_p,NULL,NULL,iomodel_handle,"drag_p");
-	IoModelFetchData(&iomodel->drag_q,NULL,NULL,iomodel_handle,"drag_q");
-	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
-	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
-	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,"elements_type");
-	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B");
-	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n");
-   IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,"surface_accumulation_rate");
-	IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,"surface_ablation_rate");
-	IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,"surface_mass_balance");
-	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,"basal_melting_rate");
-	IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,"pressure");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,DragCoefficientEnum);
+	IoModelFetchData(&iomodel->drag_p,NULL,NULL,iomodel_handle,DragPEnum);
+	IoModelFetchData(&iomodel->drag_q,NULL,NULL,iomodel_handle,DragQEnum);
+	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,ElementOnIceShelfEnum);
+	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
+	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,ElementsTypeEnum);
+	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,RheologyBEnum);
+	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,RheologyNEnum);
+   IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,SurfaceAccumulationRateEnum);
+	IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,SurfaceAblationRateEnum);
+	IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,SurfaceMassBalanceEnum);
+	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,BasalMeltingRateEnum);
+	IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,PressureEnum);
 
 	/*Update elements: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/NodesPartitioning.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/NodesPartitioning.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/NodesPartitioning.cpp	(revision 8926)
@@ -93,6 +93,6 @@
 
 	/*Get edges and elements*/
-	IoModelFetchData(&iomodel->edges,&iomodel->numberofedges,&cols,iomodel_handle,"edges");
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
+	IoModelFetchData(&iomodel->edges,&iomodel->numberofedges,&cols,iomodel_handle,EdgesEnum);
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
 	if (cols!=4) _error_("field edges should have 4 columns");
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp	(revision 8926)
@@ -31,5 +31,5 @@
 
 		/*Fetch data: */
-		IoModelFetchData(&iomodel->spcthickness,NULL,NULL,iomodel_handle,"spcthickness");
+		IoModelFetchData(&iomodel->spcthickness,NULL,NULL,iomodel_handle,SpcthicknessEnum);
 
 		/*Initialize counter*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp	(revision 8926)
@@ -32,7 +32,7 @@
 
 		/*Get edges and elements*/
-		IoModelFetchData(&iomodel->edges,&iomodel->numberofedges,NULL,iomodel_handle,"edges");
-		IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-		IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
+		IoModelFetchData(&iomodel->edges,&iomodel->numberofedges,NULL,iomodel_handle,EdgesEnum);
+		IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+		IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
 
 		/*First load data:*/
@@ -57,6 +57,6 @@
 
 	/*Create Penpair for penalties: */
-	IoModelFetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,iomodel_handle,"penalties");
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
+	IoModelFetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,iomodel_handle,PenaltiesEnum);
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
 
 	for(i=0;i<iomodel->numpenalties;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 8926)
@@ -39,11 +39,11 @@
 
 	/*First fetch data: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 
 	if(continuous_galerkin){
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	(revision 8926)
@@ -21,23 +21,23 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
-   IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,"surface_accumulation_rate");
-	IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,"surface_ablation_rate");
-	IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,"surface_mass_balance");
-	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,"basal_melting_rate");
-	if(iomodel->basal_melting_rate_correction_apply)IoModelFetchData(&iomodel->basal_melting_rate_correction,NULL,NULL,iomodel_handle,"basal_melting_rate_correction");
-	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,ElementOnIceShelfEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
+	IoModelFetchData(&iomodel->surface_accumulation_rate,NULL,NULL,iomodel_handle,SurfaceAccumulationRateEnum);
+	IoModelFetchData(&iomodel->surface_ablation_rate,NULL,NULL,iomodel_handle,SurfaceAblationRateEnum);
+	IoModelFetchData(&iomodel->surface_mass_balance,NULL,NULL,iomodel_handle,SurfaceMassBalanceEnum);
+	IoModelFetchData(&iomodel->basal_melting_rate,NULL,NULL,iomodel_handle,BasalMeltingRateEnum);
+	if(iomodel->basal_melting_rate_correction_apply)IoModelFetchData(&iomodel->basal_melting_rate_correction,NULL,NULL,iomodel_handle,BasalMeltingRateCorrectionEnum);
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,VxEnum);
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,VyEnum);
 
 	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
-		IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,"pressure");
-		IoModelFetchData(&iomodel->temperature,NULL,NULL,iomodel_handle,"temperature");
+		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
+		IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,PressureEnum);
+		IoModelFetchData(&iomodel->temperature,NULL,NULL,iomodel_handle,TemperatureEnum);
 	}
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp	(revision 8926)
@@ -79,5 +79,6 @@
 		for(i=0;i<iomodel->numvariabledescriptors;i++){
 			sprintf(tag,"%s%i","variabledescriptor",i+1);
-			IoModelFetchData(&descriptor,iomodel_handle,tag);
+			_error_("not yet");
+			//IoModelFetchData(&descriptor,iomodel_handle,tag);
 			variabledescriptors[i]=descriptor;
 		}
@@ -93,5 +94,6 @@
 		for(i=0;i<iomodel->numresponsedescriptors;i++){
 			sprintf(tag,"%s%i","responsedescriptor",i+1);
-			IoModelFetchData(&descriptor,iomodel_handle,tag);
+			_error_("not yet");
+			//IoModelFetchData(&descriptor,iomodel_handle,tag);
 			responsedescriptors[i]=descriptor;
 		}
@@ -105,5 +107,6 @@
 		parameters->AddObject(new    IntParam(QmuNPartEnum,iomodel->qmu_npart));
 		
-		IoModelFetchData(&dpart,NULL,NULL,iomodel_handle,"part");
+		//IoModelFetchData(&dpart,NULL,NULL,iomodel_handle,PartEnum);
+		_error_("not yet");
 
 		if(!dpart){
@@ -126,5 +129,6 @@
 				
 				/*Recover data: */
-				IoModelFetchData(&dakota_parameter,NULL,NULL,iomodel_handle,EnumToModelField(StringToEnumx(tag)));
+				//IoModelFetchData(&dakota_parameter,NULL,NULL,iomodel_handle,StringToEnumx(tag));
+				_error_("not yet");
 
 				/*Convert units: */
@@ -162,5 +166,6 @@
 			for(i=0;i<M;i++){
 				sprintf(tag,"%s%i","qmu_mass_flux_segments",i+1); //names were created using Matlab indexing convention
-				IoModelFetchData(&temp_matrix,&temp_m,&temp_n,iomodel_handle,tag);
+				//IoModelFetchData(&temp_matrix,&temp_m,&temp_n,iomodel_handle,tag);
+				_error_("not yet");
 
 				/*This temp_matrix represents all the segments, for all elements. On this cpu, we only have a subset of these 
Index: /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp	(revision 8926)
@@ -32,10 +32,10 @@
 	
 	/*First fetch data: */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 
 	for (i=0;i<iomodel->numberofvertices;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp	(revision 8926)
@@ -21,12 +21,12 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
 
 	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
+		IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
 	}
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp	(revision 8926)
@@ -31,5 +31,5 @@
 
 	/*Fetch data: */
-	IoModelFetchData(&iomodel->spctemperature,NULL,NULL,iomodel_handle,"spctemperature");
+	IoModelFetchData(&iomodel->spctemperature,NULL,NULL,iomodel_handle,SpctemperatureEnum);
 
 	/*Initialize counter*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 8926)
@@ -30,6 +30,6 @@
 
 	//create penalties for nodes: no node can have a temperature over the melting point
-	IoModelFetchData(&iomodel->spctemperature,NULL,NULL,iomodel_handle,"spctemperature");
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
+	IoModelFetchData(&iomodel->spctemperature,NULL,NULL,iomodel_handle,SpctemperatureEnum);
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
 	CreateSingleNodeToElementConnectivity(iomodel);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp	(revision 8926)
@@ -32,10 +32,10 @@
 
 	/*Create nodes and vertices: */
-	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,"nodeonbed");
-	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,"nodeonsurface");
-	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,"nodeonicesheet");
-	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,"nodeoniceshelf");
-	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,"nodeonwater");
+	IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);
+	IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);
+	IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);
+	IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);
+	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);
+	IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);
 
 	for (i=0;i<iomodel->numberofvertices;i++){
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp	(revision 8926)
@@ -24,24 +24,24 @@
 
 	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
-	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
-	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
-	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,"drag_coefficient");
-	IoModelFetchData(&iomodel->drag_p,NULL,NULL,iomodel_handle,"drag_p");
-	IoModelFetchData(&iomodel->drag_q,NULL,NULL,iomodel_handle,"drag_q");
-	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,"elementoniceshelf");
-	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed");
-	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
-	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater");
-	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,"elements_type");
-	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B");
-	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n");
-	IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,"pressure");
-	IoModelFetchData(&iomodel->temperature,NULL,NULL,iomodel_handle,"temperature");
-	IoModelFetchData(&iomodel->geothermalflux,NULL,NULL,iomodel_handle,"geothermalflux");
-	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
-	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
+	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);
+	IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,DragCoefficientEnum);
+	IoModelFetchData(&iomodel->drag_p,NULL,NULL,iomodel_handle,DragPEnum);
+	IoModelFetchData(&iomodel->drag_q,NULL,NULL,iomodel_handle,DragQEnum);
+	IoModelFetchData(&iomodel->elementoniceshelf,NULL,NULL,iomodel_handle,ElementOnIceShelfEnum);
+	IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,ElementOnBedEnum);
+	IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,ElementOnSurfaceEnum);
+	IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,ElementOnWaterEnum);
+	IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,ElementsTypeEnum);
+	IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,RheologyBEnum);
+	IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,RheologyNEnum);
+	IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,PressureEnum);
+	IoModelFetchData(&iomodel->temperature,NULL,NULL,iomodel_handle,TemperatureEnum);
+	IoModelFetchData(&iomodel->geothermalflux,NULL,NULL,iomodel_handle,GeothermalfluxEnum);
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,VxEnum);
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,VyEnum);
+	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,VzEnum);
 
 	/*Update elements: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Transient/UpdateElementsTransient.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Transient/UpdateElementsTransient.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Transient/UpdateElementsTransient.cpp	(revision 8926)
@@ -15,59 +15,5 @@
 void	UpdateElementsTransient(Elements* elements, Parameters* parameters,IoModel* iomodel,FILE* iomodel_handle,int analysis_counter,int analysis_type){
 
-	/*Intermediary*/
-	int      i,j,k;
-	int      counter;
-	Element *element = NULL;
-	char     fetchstring[100]; 
-	double   time;
-	double   forcingenum;
+	/*nothing for now: */
 
-	/*if no forcings, bail out: */
-	if(!iomodel->numforcings)return;
-
-	/*download whatever data will persist through forcing loop: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	
-	/*download forcing types: */
-	IoModelFetchData(&iomodel->forcingtypes,NULL,NULL,iomodel_handle,"forcingtypes");
-
-	/*loop over forcings: */
-	for(i=0;i<iomodel->numforcings;i++){
-
-		forcingenum=iomodel->forcingtypes[i];
-		
-		sprintf(&fetchstring[0],"forcing_%s_num_time_steps",EnumToStringx(forcingenum));
-		IoModelFetchData(&iomodel->forcing_numtimesteps,iomodel_handle,fetchstring);
-		sprintf(&fetchstring[0],"forcing_%s_time_steps",EnumToStringx(forcingenum));
-		IoModelFetchData(&iomodel->timesteps,NULL,NULL,iomodel_handle,fetchstring);
-
-		for(j=0;j<iomodel->forcing_numtimesteps;j++){
-		
-			time=iomodel->timesteps[j]*iomodel->yts;
-			sprintf(&fetchstring[0],"forcing_%s_%i",EnumToStringx(forcingenum),j+1);
-			IoModelFetchData(&iomodel->forcing,NULL,NULL,iomodel_handle,fetchstring);
-
-			/*we now have the forcing for the corresponding time step, for all the nodes. Use this 
-			 *to write over the existing smb input: */
-			counter=0;
-			for (k=0;k<iomodel->numberofelements;k++){
-				if(iomodel->my_elements[k]){
-					element=(Element*)elements->GetObjectByOffset(counter);
-					element->UpdateForcing(k,iomodel,j,time,forcingenum,parameters);
-					counter++;
-				}
-			}
-			/*Free ressources:*/
-			xfree((void**)&iomodel->forcing);
-		}
-
-		/*Free ressources:*/
-		xfree((void**)&iomodel->timesteps);
-	}
-
-	/*Free ressources:*/
-	xfree((void**)&iomodel->forcing);
-	xfree((void**)&iomodel->timesteps);
-	xfree((void**)&iomodel->elements);
-	xfree((void**)&iomodel->forcingtypes);
 }
Index: /issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.cpp
===================================================================
--- /issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 8926)
@@ -53,5 +53,5 @@
 		
 		/*We don't have a file pointer. Retrieve the output file name and open it for writing:*/
-		parameters->FindParam(&outputfilename,OutputFileNameEnum);
+		parameters->FindParam(&outputfilename,OutputfilenameEnum);
 
 		/*What strategy? : */
Index: /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 8925)
+++ /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 8926)
@@ -155,5 +155,4 @@
 	else if (strcmp(name,"ControlType")==0) return ControlTypeEnum;
 	else if (strcmp(name,"Converged")==0) return ConvergedEnum;
-	else if (strcmp(name,"DhDt")==0) return DhDtEnum;
 	else if (strcmp(name,"DragCoefficient")==0) return DragCoefficientEnum;
 	else if (strcmp(name,"DragP")==0) return DragPEnum;
@@ -167,9 +166,7 @@
 	else if (strcmp(name,"ElementOnSurface")==0) return ElementOnSurfaceEnum;
 	else if (strcmp(name,"ElementOnWater")==0) return ElementOnWaterEnum;
-	else if (strcmp(name,"EpsVel")==0) return EpsVelEnum;
 	else if (strcmp(name,"Fill")==0) return FillEnum;
 	else if (strcmp(name,"FractionIncrement")==0) return FractionIncrementEnum;
 	else if (strcmp(name,"Friction")==0) return FrictionEnum;
-	else if (strcmp(name,"GeothermalFlux")==0) return GeothermalFluxEnum;
 	else if (strcmp(name,"HydrostaticAdjustment")==0) return HydrostaticAdjustmentEnum;
 	else if (strcmp(name,"Internal")==0) return InternalEnum;
@@ -185,5 +182,4 @@
 	else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
 	else if (strcmp(name,"MaxPenetration")==0) return MaxPenetrationEnum;
-	else if (strcmp(name,"MeanVel")==0) return MeanVelEnum;
 	else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
 	else if (strcmp(name,"GroundingLineMeltingRate")==0) return GroundingLineMeltingRateEnum;
@@ -208,5 +204,4 @@
 	else if (strcmp(name,"ShelfDampening")==0) return ShelfDampeningEnum;
 	else if (strcmp(name,"StabilizeConstraints")==0) return StabilizeConstraintsEnum;
-	else if (strcmp(name,"StokesReconditioning")==0) return StokesReconditioningEnum;
 	else if (strcmp(name,"SurfaceAccumulationRate")==0) return SurfaceAccumulationRateEnum;
 	else if (strcmp(name,"SurfaceAblationRate")==0) return SurfaceAblationRateEnum;
@@ -266,5 +261,4 @@
 	else if (strcmp(name,"Time")==0) return TimeEnum;
 	else if (strcmp(name,"OutputFrequency")==0) return OutputFrequencyEnum;
-	else if (strcmp(name,"WaterColumn")==0) return WaterColumnEnum;
 	else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum;
 	else if (strcmp(name,"WaterColumnPicard")==0) return WaterColumnPicardEnum;
@@ -291,5 +285,4 @@
 	else if (strcmp(name,"RhoWater")==0) return RhoWaterEnum;
 	else if (strcmp(name,"Gravity")==0) return GravityEnum;
-	else if (strcmp(name,"ThermalConductivity")==0) return ThermalConductivityEnum;
 	else if (strcmp(name,"BasalMeltingRateCorrection")==0) return BasalMeltingRateCorrectionEnum;
 	else if (strcmp(name,"BasalMeltingRateCorrectionApply")==0) return BasalMeltingRateCorrectionApplyEnum;
@@ -319,17 +312,8 @@
 	else if (strcmp(name,"EpsRel")==0) return EpsRelEnum;
 	else if (strcmp(name,"EpsRes")==0) return EpsResEnum;
-	else if (strcmp(name,"HeatCapacity")==0) return HeatCapacityEnum;
-	else if (strcmp(name,"IsHutter")==0) return IsHutterEnum;
-	else if (strcmp(name,"IsMacAyealPattyn")==0) return IsMacAyealPattynEnum;
-	else if (strcmp(name,"IsStokes")==0) return IsStokesEnum;
-	else if (strcmp(name,"Kff")==0) return KffEnum;
-	else if (strcmp(name,"LatentHeat")==0) return LatentHeatEnum;
 	else if (strcmp(name,"Lowmem")==0) return LowmemEnum;
-	else if (strcmp(name,"MaxIter")==0) return MaxIterEnum;
 	else if (strcmp(name,"MaxNonlinearIterations")==0) return MaxNonlinearIterationsEnum;
-	else if (strcmp(name,"MeltingPoint")==0) return MeltingPointEnum;
 	else if (strcmp(name,"MinMechanicalConstraints")==0) return MinMechanicalConstraintsEnum;
 	else if (strcmp(name,"MinThermalConstraints")==0) return MinThermalConstraintsEnum;
-	else if (strcmp(name,"NSteps")==0) return NStepsEnum;
 	else if (strcmp(name,"Ndt")==0) return NdtEnum;
 	else if (strcmp(name,"NumOutput")==0) return NumOutputEnum;
@@ -338,8 +322,5 @@
 	else if (strcmp(name,"NumberOfNodes")==0) return NumberOfNodesEnum;
 	else if (strcmp(name,"NumberOfVertices")==0) return NumberOfVerticesEnum;
-	else if (strcmp(name,"OptScal")==0) return OptScalEnum;
 	else if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum;
-	else if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
-	else if (strcmp(name,"ParameterOutput")==0) return ParameterOutputEnum;
 	else if (strcmp(name,"PenaltyMelting")==0) return PenaltyMeltingEnum;
 	else if (strcmp(name,"QmuAnalysis")==0) return QmuAnalysisEnum;
@@ -360,8 +341,6 @@
 	else if (strcmp(name,"PetscRc")==0) return PetscRcEnum;
 	else if (strcmp(name,"Sparsity")==0) return SparsityEnum;
-	else if (strcmp(name,"TolX")==0) return TolXEnum;
 	else if (strcmp(name,"VariableDescriptors")==0) return VariableDescriptorsEnum;
 	else if (strcmp(name,"Verbose")==0) return VerboseEnum;
-	else if (strcmp(name,"WaitOnLock")==0) return WaitOnLockEnum;
 	else if (strcmp(name,"PetscOptionsStrings")==0) return PetscOptionsStringsEnum;
 	else if (strcmp(name,"PetscOptionsAnalyses")==0) return PetscOptionsAnalysesEnum;
@@ -383,16 +362,88 @@
 	else if (strcmp(name,"Paterson")==0) return PatersonEnum;
 	else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
+	else if (strcmp(name,"NumberOfElements2D")==0) return NumberOfElements2DEnum;
+	else if (strcmp(name,"NumControlType")==0) return NumControlTypeEnum;
+	else if (strcmp(name,"Spcvy")==0) return SpcvyEnum;
+	else if (strcmp(name,"HydroQ")==0) return HydroQEnum;
+	else if (strcmp(name,"VerboseBinary")==0) return VerboseBinaryEnum;
+	else if (strcmp(name,"NodeOnWater")==0) return NodeOnWaterEnum;
+	else if (strcmp(name,"Y")==0) return YEnum;
+	else if (strcmp(name,"GlMeltingRate")==0) return GlMeltingRateEnum;
+	else if (strcmp(name,"ElementsType")==0) return ElementsTypeEnum;
+	else if (strcmp(name,"Penalties")==0) return PenaltiesEnum;
+	else if (strcmp(name,"PrognosticDG")==0) return PrognosticDGEnum;
+	else if (strcmp(name,"Pressureload")==0) return PressureloadEnum;
+	else if (strcmp(name,"HydroCR")==0) return HydroCREnum;
+	else if (strcmp(name,"Name")==0) return NameEnum;
+	else if (strcmp(name,"VerticesType")==0) return VerticesTypeEnum;
+	else if (strcmp(name,"HydroKn")==0) return HydroKnEnum;
+	else if (strcmp(name,"G")==0) return GEnum;
+	else if (strcmp(name,"Inputfilename")==0) return InputfilenameEnum;
+	else if (strcmp(name,"Spcvz")==0) return SpcvzEnum;
+	else if (strcmp(name,"NumberOfNodes2D")==0) return NumberOfNodes2DEnum;
+	else if (strcmp(name,"NodeOnStokes")==0) return NodeOnStokesEnum;
+	else if (strcmp(name,"NodeOnHutter")==0) return NodeOnHutterEnum;
+	else if (strcmp(name,"Z")==0) return ZEnum;
+	else if (strcmp(name,"GlMigration")==0) return GlMigrationEnum;
+	else if (strcmp(name,"Riftinfo")==0) return RiftinfoEnum;
+	else if (strcmp(name,"ElementOnIceSheet")==0) return ElementOnIceSheetEnum;
+	else if (strcmp(name,"Spcthickness")==0) return SpcthicknessEnum;
+	else if (strcmp(name,"Spctemperature")==0) return SpctemperatureEnum;
+	else if (strcmp(name,"PenaltyLock")==0) return PenaltyLockEnum;
+	else if (strcmp(name,"Spcvx")==0) return SpcvxEnum;
+	else if (strcmp(name,"Upperelements")==0) return UpperelementsEnum;
+	else if (strcmp(name,"HydroP")==0) return HydroPEnum;
+	else if (strcmp(name,"NodeOnPattyn")==0) return NodeOnPattynEnum;
+	else if (strcmp(name,"Edges")==0) return EdgesEnum;
+	else if (strcmp(name,"Elements2D")==0) return Elements2DEnum;
+	else if (strcmp(name,"X")==0) return XEnum;
+	else if (strcmp(name,"NumCmResponses")==0) return NumCmResponsesEnum;
+	else if (strcmp(name,"NodeOnMacayeal")==0) return NodeOnMacayealEnum;
+	else if (strcmp(name,"Elementconnectivity")==0) return ElementconnectivityEnum;
+	else if (strcmp(name,"Spcwatercolumn")==0) return SpcwatercolumnEnum;
+	else if (strcmp(name,"ArtificialDiffusivity")==0) return ArtificialDiffusivityEnum;
+	else if (strcmp(name,"HydroN")==0) return HydroNEnum;
+	else if (strcmp(name,"Borderstokes")==0) return BorderstokesEnum;
+	else if (strcmp(name,"Numlayers")==0) return NumlayersEnum;
+	else if (strcmp(name,"DiagnosticRef")==0) return DiagnosticRefEnum;
+	else if (strcmp(name,"Ishutter")==0) return IshutterEnum;
+	else if (strcmp(name,"Ismacayealpattyn")==0) return IsmacayealpattynEnum;
+	else if (strcmp(name,"Isstokes")==0) return IsstokesEnum;
+	else if (strcmp(name,"Stokesreconditioning")==0) return StokesreconditioningEnum;
+	else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum;
+	else if (strcmp(name,"Heatcapacity")==0) return HeatcapacityEnum;
+	else if (strcmp(name,"Latentheat")==0) return LatentheatEnum;
+	else if (strcmp(name,"Thermalconductivity")==0) return ThermalconductivityEnum;
+	else if (strcmp(name,"Meltingpoint")==0) return MeltingpointEnum;
+	else if (strcmp(name,"Referencetemperature")==0) return ReferencetemperatureEnum;
+	else if (strcmp(name,"Dhdt")==0) return DhdtEnum;
+	else if (strcmp(name,"Geothermalflux")==0) return GeothermalfluxEnum;
+	else if (strcmp(name,"Isprognostic")==0) return IsprognosticEnum;
+	else if (strcmp(name,"Isdiagnostic")==0) return IsdiagnosticEnum;
+	else if (strcmp(name,"Isthermal")==0) return IsthermalEnum;
+	else if (strcmp(name,"Nsteps")==0) return NstepsEnum;
+	else if (strcmp(name,"Maxiter")==0) return MaxiterEnum;
+	else if (strcmp(name,"Tolx")==0) return TolxEnum;
+	else if (strcmp(name,"Optscal")==0) return OptscalEnum;
+	else if (strcmp(name,"Epsvel")==0) return EpsvelEnum;
+	else if (strcmp(name,"Meanvel")==0) return MeanvelEnum;
+	else if (strcmp(name,"Parameteroutput")==0) return ParameteroutputEnum;
+	else if (strcmp(name,"Outputfilename")==0) return OutputfilenameEnum;
+	else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
+	else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
+	else if (strcmp(name,"Waitonlock")==0) return WaitonlockEnum;
+	else if (strcmp(name,"NumberOfVariables")==0) return NumberOfVariablesEnum;
+	else if (strcmp(name,"Numvariabledescriptors")==0) return NumvariabledescriptorsEnum;
+	else if (strcmp(name,"NumberOfResponses")==0) return NumberOfResponsesEnum;
+	else if (strcmp(name,"Numresponsedescriptors")==0) return NumresponsedescriptorsEnum;
+	else if (strcmp(name,"Npart")==0) return NpartEnum;
+	else if (strcmp(name,"QmuMassFluxNumProfiles")==0) return QmuMassFluxNumProfilesEnum;
 	else if (strcmp(name,"VxMesh")==0) return VxMeshEnum;
 	else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
 	else if (strcmp(name,"VzMesh")==0) return VzMeshEnum;
-	else if (strcmp(name,"IsDiagnostic")==0) return IsDiagnosticEnum;
-	else if (strcmp(name,"IsPrognostic")==0) return IsPrognosticEnum;
-	else if (strcmp(name,"IsThermal")==0) return IsThermalEnum;
 	else if (strcmp(name,"EnthalpySolution")==0) return EnthalpySolutionEnum;
 	else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum;
 	else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum;
 	else if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
-	else if (strcmp(name,"WaterFraction")==0) return WaterFractionEnum;
-	else if (strcmp(name,"ReferenceTemperature")==0) return ReferenceTemperatureEnum;
 	else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
 	else if (strcmp(name,"VelAbsGradient")==0) return VelAbsGradientEnum;
Index: /issm/trunk/src/c/objects/Elements/Element.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Element.h	(revision 8925)
+++ /issm/trunk/src/c/objects/Elements/Element.h	(revision 8926)
@@ -59,5 +59,4 @@
 		virtual void   DeleteResults(void)=0;
 		virtual void   Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type)=0;
-		virtual void   UpdateForcing(int index, IoModel* iomodel,int step,double time, int FieldEnum,Parameters* parameters)=0;
 		virtual void   InputToResult(int enum_type,int step,double time)=0;
 		virtual void   ControlInputGetGradient(Vec gradient,int enum_type)=0;
Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 8925)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 8926)
@@ -374,5 +374,5 @@
 
 	/*retrieve some parameters: */
-	this->parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	
 	if(!IsOnBed()){
@@ -917,5 +917,5 @@
 	/* Get node coordinates and dof list: */
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
-	parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);       _assert_(vy_input);
@@ -1008,5 +1008,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
-	parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
@@ -1574,5 +1574,5 @@
 	/*Retrieve all inputs and parameters*/
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
-	parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
@@ -1643,5 +1643,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
-	parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
@@ -1873,5 +1873,5 @@
 	this->parameters->FindParam(&dt,DtEnum);
 	this->parameters->FindParam(&artdiff,ArtDiffEnum);
-	this->parameters->FindParam(&epsvel,EpsVelEnum);
+	this->parameters->FindParam(&epsvel,EpsvelEnum);
 	Input* pressure_input=inputs->GetInput(PressureEnum);      _assert_(pressure_input);
 	Input* enthalpy_input=inputs->GetInput(EnthalpyEnum);      _assert_(enthalpy_input);
@@ -2162,5 +2162,5 @@
 	this->parameters->FindParam(&dt,DtEnum);
 	this->parameters->FindParam(&artdiff,ArtDiffEnum);
-	this->parameters->FindParam(&epsvel,EpsVelEnum);
+	this->parameters->FindParam(&epsvel,EpsvelEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);      _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);      _assert_(vy_input);
@@ -2533,5 +2533,5 @@
 	/*Retrieve all inputs and parameters*/
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
-	this->parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);               _assert_(vy_input);
@@ -2598,5 +2598,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
-	this->parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);               _assert_(vy_input);
@@ -2678,5 +2678,5 @@
 	/*Retrieve all inputs and parameters*/
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
-	this->parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);               _assert_(vy_input);
@@ -2743,5 +2743,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
-	this->parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);               _assert_(vy_input);
@@ -3049,5 +3049,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	this->parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	rho_ice=matpar->GetRhoIce();
 	gravity=matpar->GetG();
@@ -3506,5 +3506,5 @@
 	Input* vy_input=inputs->GetInput(VyEnum);                         _assert_(vy_input);
 	Input* vz_input=inputs->GetInput(VzEnum);                         _assert_(vz_input);
-	Input* geothermalflux_input=inputs->GetInput(GeothermalFluxEnum); _assert_(geothermalflux_input);
+	Input* geothermalflux_input=inputs->GetInput(GeothermalfluxEnum); _assert_(geothermalflux_input);
 
 	/*Build frictoin element, needed later: */
@@ -3775,5 +3775,5 @@
 	Input* vy_input=inputs->GetInput(VyEnum);                         _assert_(vy_input);
 	Input* vz_input=inputs->GetInput(VzEnum);                         _assert_(vz_input);
-	Input* geothermalflux_input=inputs->GetInput(GeothermalFluxEnum); _assert_(geothermalflux_input);
+	Input* geothermalflux_input=inputs->GetInput(GeothermalfluxEnum); _assert_(geothermalflux_input);
 
 	/*Build frictoin element, needed later: */
@@ -4247,5 +4247,5 @@
 
 	/*Recondition pressure: */
-	this->parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 
 	/*Ok, we have vx vy vz and P in values, fill in vx vy vz P arrays: */
@@ -5143,5 +5143,5 @@
 	if (iomodel->geothermalflux) {
 		for(i=0;i<6;i++)nodeinputs[i]=iomodel->geothermalflux[penta_vertex_ids[i]-1];
-		this->inputs->AddInput(new PentaVertexInput(GeothermalFluxEnum,nodeinputs));
+		this->inputs->AddInput(new PentaVertexInput(GeothermalfluxEnum,nodeinputs));
 	}	
 	if (iomodel->pressure) {
@@ -5155,9 +5155,9 @@
 	if (iomodel->waterfraction) {
 		for(i=0;i<6;i++)nodeinputs[i]=iomodel->waterfraction[penta_vertex_ids[i]-1];
-		this->inputs->AddInput(new PentaVertexInput(WaterFractionEnum,nodeinputs));
+		this->inputs->AddInput(new PentaVertexInput(WaterfractionEnum,nodeinputs));
 	}
 	if (iomodel->dhdt) {
 		for(i=0;i<6;i++)nodeinputs[i]=iomodel->dhdt[penta_vertex_ids[i]-1]/iomodel->yts;
-		this->inputs->AddInput(new PentaVertexInput(DhDtEnum,nodeinputs));
+		this->inputs->AddInput(new PentaVertexInput(DhdtEnum,nodeinputs));
 	}
 	/*vx,vy and vz: */
@@ -5201,10 +5201,10 @@
 		for(i=0;i<iomodel->num_control_type;i++){
 			switch((int)iomodel->control_type[i]){
-				case DhDtEnum:
+				case DhdtEnum:
 					if (iomodel->dhdt){
 						for(j=0;j<6;j++)nodeinputs[j]=iomodel->dhdt[penta_vertex_ids[j]-1]/iomodel->yts;
 						for(j=0;j<6;j++)cmmininputs[j]=iomodel->cm_min[(penta_vertex_ids[j]-1)*iomodel->num_control_type+i]/iomodel->yts;
 						for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->cm_max[(penta_vertex_ids[j]-1)*iomodel->num_control_type+i]/iomodel->yts;
-						this->inputs->AddInput(new ControlInput(DhDtEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
+						this->inputs->AddInput(new ControlInput(DhdtEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
 					}
 					break;
@@ -5595,5 +5595,5 @@
 	penta->GetDofList(&doflistm,MacAyealApproximationEnum,GsetEnum);
 	GetDofList(&doflists,StokesApproximationEnum,GsetEnum);
-	this->parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 
 	/*Get node data: */
@@ -5768,5 +5768,5 @@
 	GetDofList(&doflistp,PattynApproximationEnum,GsetEnum);
 	GetDofList(&doflists,StokesApproximationEnum,GsetEnum);
-	this->parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 
 	/*Get node data: */
@@ -6065,5 +6065,5 @@
 
 	/*Recondition pressure and compute vel: */
-	this->parameters->FindParam(&stokesreconditioning,StokesReconditioningEnum);
+	this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
 	for(i=0;i<NUMVERTICES;i++) pressure[i]=pressure[i]*stokesreconditioning;
 	for(i=0;i<NUMVERTICES;i++) vel[i]=pow( pow(vx[i],2.0) + pow(vy[i],2.0) + pow(vz[i],2.0) , 0.5);
@@ -6356,5 +6356,5 @@
 			
 		this->inputs->AddInput(new PentaVertexInput(EnthalpyEnum,values));
-		this->inputs->AddInput(new PentaVertexInput(WaterFractionEnum,waterfraction));
+		this->inputs->AddInput(new PentaVertexInput(WaterfractionEnum,waterfraction));
 		this->inputs->AddInput(new PentaVertexInput(TemperatureEnum,temperatures));
 
@@ -6529,5 +6529,5 @@
 				name==BasalMeltingRateEnum ||
 				name==SurfaceMassBalanceEnum ||
-				name==GeothermalFluxEnum ||
+				name==GeothermalfluxEnum ||
 				name==SurfaceAreaEnum||
 				name==PressureEnum ||
@@ -7471,46 +7471,4 @@
 }
 /*}}}*/
-/*FUNCTION Penta::UpdateForcing(int index,IoModel* iomodel,int step,double time, int FieldEnum){{{1*/
-void Penta::UpdateForcing(int index,IoModel* iomodel,int step,double time, int FieldEnum,Parameters* parameters){
-
-	/*Intermediaries*/
-	int i,j;
-	int penta_vertex_ids[6];
-	double  nodeinputs[6];
-
-	/*Recover vertices ids needed to initialize inputs*/
-	for(i=0;i<6;i++) penta_vertex_ids[i]=(int)iomodel->elements[6*index+i]; //ids for vertices are in the elements array from Matlab
-
-	/*recover forcing for this time step: */
-	for(i=0;i<6;i++)nodeinputs[i]=iomodel->forcing[penta_vertex_ids[i]-1];
-
-	/*process units: */
-	UnitConversion(&nodeinputs[0],6,ExtToIuEnum, FieldEnum, parameters);
-
-	if(step==0){
-
-		/*This is the first time we are trying to replace the smb tria vertex input by a smb triav vertex 
-		 *forcing, which is essentially a tria vertex input that can vary with time. So first, if there is already 
-		 *an input with enum FieldEnum, squash it: */
-		TransientInput* transientinput = new TransientInput(FieldEnum);
-
-		PentaVertexInput* pentavertexinput = new PentaVertexInput(FieldEnum,&nodeinputs[0]);
-		transientinput->AddTimeInput(pentavertexinput,time);
-		this->inputs->AddInput(transientinput);
-
-	}
-	else{
-
-		/*Ok, we can't write over the existing forcing that was created in previous step 0. Find the input, and add 
-		 *values for this time step: */
-		TransientInput* transientinput=(TransientInput*)inputs->GetInput(FieldEnum); _assert_(transientinput);
-
-		PentaVertexInput* pentavertexinput = new PentaVertexInput(FieldEnum,&nodeinputs[0]);
-		transientinput->AddTimeInput(pentavertexinput,time);
-
-	}
-
-}
-/*}}}*/
 /*FUNCTION Penta::UpdateShelfStatus{{{1*/
 int Penta::UpdateShelfStatus(Vec new_shelf_nodes){
Index: /issm/trunk/src/c/objects/Elements/Penta.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.h	(revision 8925)
+++ /issm/trunk/src/c/objects/Elements/Penta.h	(revision 8926)
@@ -135,5 +135,4 @@
 		double SurfaceArea(void);
 		void   Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type);
-		void   UpdateForcing(int index, IoModel* iomodel,int step,double time, int FieldEnum,Parameters* parameters);
 		int    UpdateShelfStatus(Vec new_shelf_nodes);
 		void   UpdateShelfFlags(double* new_shelf_nodes);
Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 8925)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 8926)
@@ -1407,5 +1407,5 @@
 	Input* surface_mass_balance_input=inputs->GetInput(SurfaceMassBalanceEnum); _assert_(surface_mass_balance_input);
 	Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum);           _assert_(basal_melting_input);
-	Input* dhdt_input=inputs->GetInput(DhDtEnum);                     _assert_(dhdt_input);
+	Input* dhdt_input=inputs->GetInput(DhdtEnum);                     _assert_(dhdt_input);
 	
 	/* Start  looping on the number of gaussian points: */
@@ -1450,5 +1450,5 @@
 	Input* surface_mass_balance_input=inputs->GetInput(SurfaceMassBalanceEnum); _assert_(surface_mass_balance_input);
 	Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum);           _assert_(basal_melting_input);
-	Input* dhdt_input=inputs->GetInput(DhDtEnum);                     _assert_(dhdt_input);
+	Input* dhdt_input=inputs->GetInput(DhdtEnum);                     _assert_(dhdt_input);
 
 	/* Start  looping on the number of gaussian points: */
@@ -1671,6 +1671,6 @@
 	this->parameters->FindParam(&num_responses,NumResponsesEnum);
 	this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
-	this->parameters->FindParam(&meanvel,MeanVelEnum);
-	this->parameters->FindParam(&epsvel,EpsVelEnum);
+	this->parameters->FindParam(&meanvel,MeanvelEnum);
+	this->parameters->FindParam(&epsvel,EpsvelEnum);
 	Input* weights_input=inputs->GetInput(WeightsEnum);   _assert_(weights_input);
 	Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
@@ -1847,6 +1847,6 @@
 	this->parameters->FindParam(&num_responses,NumResponsesEnum);
 	this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
-	this->parameters->FindParam(&meanvel,MeanVelEnum);
-	this->parameters->FindParam(&epsvel,EpsVelEnum);
+	this->parameters->FindParam(&meanvel,MeanvelEnum);
+	this->parameters->FindParam(&epsvel,EpsvelEnum);
 	Input* weights_input = inputs->GetInput(WeightsEnum);   _assert_(weights_input);
 	Input* vx_input      = inputs->GetInput(VxEnum);        _assert_(vx_input);
@@ -2768,5 +2768,5 @@
 
 	/*Get inputs*/
-	Input* watercolumn_input=inputs->GetInput(WaterColumnEnum); _assert_(watercolumn_input);
+	Input* watercolumn_input=inputs->GetInput(WatercolumnEnum); _assert_(watercolumn_input);
 
 	/*Ok, we have watercolumn values, fill in watercolumn array: */
@@ -2851,5 +2851,5 @@
 	Input* bedslopex_input=inputs->GetInput(BedSlopeXEnum);         _assert_(bedslopex_input);
 	Input* bedslopey_input=inputs->GetInput(BedSlopeYEnum);         _assert_(bedslopey_input);
-	Input* watercolumn_input=inputs->GetInput(WaterColumnEnum);     _assert_(watercolumn_input);
+	Input* watercolumn_input=inputs->GetInput(WatercolumnEnum);     _assert_(watercolumn_input);
 
 	/*recover slopes: */
@@ -2888,5 +2888,5 @@
 			GradjBMacAyeal(gradient);
 			break;
-		case DhDtEnum:
+		case DhdtEnum:
 			GradjDhDtBalancedthickness(gradient);
 			break;
@@ -3495,5 +3495,5 @@
 	if (iomodel->watercolumn){
 		for(i=0;i<3;i++)nodeinputs[i]=iomodel->watercolumn[tria_vertex_ids[i]-1];
-		this->inputs->AddInput(new TriaVertexInput(WaterColumnEnum,nodeinputs));
+		this->inputs->AddInput(new TriaVertexInput(WatercolumnEnum,nodeinputs));
 		this->inputs->AddInput(new TriaVertexInput(WaterColumnOldEnum,nodeinputs));
 	}
@@ -3512,9 +3512,9 @@
 	if (iomodel->geothermalflux) {
 		for(i=0;i<3;i++)nodeinputs[i]=iomodel->geothermalflux[tria_vertex_ids[i]-1];
-		this->inputs->AddInput(new TriaVertexInput(GeothermalFluxEnum,nodeinputs));
+		this->inputs->AddInput(new TriaVertexInput(GeothermalfluxEnum,nodeinputs));
 	}
 	if (iomodel->dhdt){
 		for(i=0;i<3;i++)nodeinputs[i]=iomodel->dhdt[tria_vertex_ids[i]-1]/iomodel->yts;
-		this->inputs->AddInput(new TriaVertexInput(DhDtEnum,nodeinputs));
+		this->inputs->AddInput(new TriaVertexInput(DhdtEnum,nodeinputs));
 	}
 	if (iomodel->pressure){
@@ -3567,10 +3567,10 @@
 		for(i=0;i<iomodel->num_control_type;i++){
 			switch((int)iomodel->control_type[i]){
-				case DhDtEnum:
+				case DhdtEnum:
 					if (iomodel->dhdt){
 						for(j=0;j<3;j++)nodeinputs[j]=iomodel->dhdt[tria_vertex_ids[j]-1]/iomodel->yts;
 						for(j=0;j<3;j++)cmmininputs[j]=iomodel->cm_min[(tria_vertex_ids[j]-1)*iomodel->num_control_type+i]/iomodel->yts;
 						for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->cm_max[(tria_vertex_ids[j]-1)*iomodel->num_control_type+i]/iomodel->yts;
-						this->inputs->AddInput(new ControlInput(DhDtEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
+						this->inputs->AddInput(new ControlInput(DhdtEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
 					}
 					break;
@@ -3989,8 +3989,8 @@
 	/*Now, we have to move the previous WaterColumn input  to Picard
 	 * status, otherwise, we'll wipe them off: */
-	this->inputs->ChangeEnum(WaterColumnEnum,WaterColumnPicardEnum);
+	this->inputs->ChangeEnum(WatercolumnEnum,WaterColumnPicardEnum);
 
 	/*Add input to the element: */
-	this->inputs->AddInput(new TriaVertexInput(WaterColumnEnum,values));
+	this->inputs->AddInput(new TriaVertexInput(WatercolumnEnum,values));
 
 	/*Free ressources:*/
@@ -4161,5 +4161,5 @@
 				name==SurfaceSlopeYEnum ||
 				name==BasalMeltingRateEnum ||
-				name==WaterColumnEnum || 
+				name==WatercolumnEnum || 
 				name==SurfaceMassBalanceEnum ||
 				name==SurfaceAreaEnum||
@@ -4993,6 +4993,6 @@
 
 	/*Retrieve all inputs we will be needing: */
-	this->parameters->FindParam(&meanvel,MeanVelEnum);
-	this->parameters->FindParam(&epsvel,EpsVelEnum);
+	this->parameters->FindParam(&meanvel,MeanvelEnum);
+	this->parameters->FindParam(&epsvel,EpsvelEnum);
 	Input* weights_input=inputs->GetInput(WeightsEnum);   _assert_(weights_input);
 	Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
@@ -5058,6 +5058,6 @@
 
 	/*Retrieve all inputs we will be needing: */
-	this->parameters->FindParam(&meanvel,MeanVelEnum);
-	this->parameters->FindParam(&epsvel,EpsVelEnum);
+	this->parameters->FindParam(&meanvel,MeanvelEnum);
+	this->parameters->FindParam(&epsvel,EpsvelEnum);
 	Input* weights_input=inputs->GetInput(WeightsEnum);   _assert_(weights_input);
 	Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
@@ -5147,6 +5147,6 @@
 
 	/*Retrieve all inputs we will be needing: */
-	this->parameters->FindParam(&meanvel,MeanVelEnum);
-	this->parameters->FindParam(&epsvel,EpsVelEnum);
+	this->parameters->FindParam(&meanvel,MeanvelEnum);
+	this->parameters->FindParam(&epsvel,EpsvelEnum);
 	Input* weights_input=inputs->GetInput(WeightsEnum);   _assert_(weights_input);
 	Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
@@ -5420,46 +5420,4 @@
 }
 /*}}}*/
-/*FUNCTION Tria::UpdateForcing(int index,IoModel* iomodel,int step,double time, int FieldEnum){{{1*/
-void Tria::UpdateForcing(int index,IoModel* iomodel,int step,double time, int FieldEnum,Parameters* parameters){
-		
-	/*Intermediaries*/
-	int i,j;
-	int tria_vertex_ids[3];
-	double  nodeinputs[3];
-
-	/*Recover vertices ids needed to initialize inputs*/
-	for(i=0;i<3;i++) tria_vertex_ids[i]=(int)iomodel->elements[3*index+i]; //ids for vertices are in the elements array from Matlab
-
-	/*recover forcing for this time step: */
-	for(i=0;i<3;i++) nodeinputs[i]=iomodel->forcing[tria_vertex_ids[i]-1];
-
-	/*process units: */
-	UnitConversion(&nodeinputs[0], 3 ,ExtToIuEnum, FieldEnum, parameters);
-
-	if(step==0){
-
-		/*This is the first time we are trying to replace the smb tria vertex input by a smb triav vertex 
-		 *forcing, which is essentially a tria vertex input that can vary with time. So first, if there is already 
-		 * an input with enum FieldEnum, squash it: */
-		TransientInput* transientinput = new TransientInput(FieldEnum);
-
-		TriaVertexInput* triavertexinput = new TriaVertexInput(FieldEnum,&nodeinputs[0]);
-		transientinput->AddTimeInput(triavertexinput,time);
-		this->inputs->AddInput(transientinput);
-
-	}
-	else{
-
-		/*Ok, we can't write over the existing forcing that was created in previous step 0. Find the input, and add 
-		 *values for this time step: */
-		TransientInput* transientinput=(TransientInput*)inputs->GetInput(FieldEnum); _assert_(transientinput);
-
-		TriaVertexInput* triavertexinput = new TriaVertexInput(FieldEnum,&nodeinputs[0]);
-		transientinput->AddTimeInput(triavertexinput,time);
-
-	}
-
-}
-/*}}}*/
 /*FUNCTION Tria::UpdateShelfStatus{{{1*/
 int  Tria::UpdateShelfStatus(Vec new_shelf_nodes){
Index: /issm/trunk/src/c/objects/Elements/Tria.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.h	(revision 8925)
+++ /issm/trunk/src/c/objects/Elements/Tria.h	(revision 8926)
@@ -139,5 +139,4 @@
 		double SurfaceArea(void);
 		void   Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type);
-		void   UpdateForcing(int index, IoModel* iomodel,int step,double time, int FieldEnum,Parameters* parameters);
 		int    UpdateShelfStatus(Vec new_shelf_nodes);
 		int    UpdatePotentialSheetUngrounding(double* potential_sheet_ungrounding,Vec vec_nodes_on_iceshelf,double* nodes_on_iceshelf);
Index: /issm/trunk/src/c/objects/FemModel.cpp
===================================================================
--- /issm/trunk/src/c/objects/FemModel.cpp	(revision 8925)
+++ /issm/trunk/src/c/objects/FemModel.cpp	(revision 8926)
@@ -72,5 +72,5 @@
 
 	/*Add output file name to parameters: */
-	this->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
+	this->parameters->AddObject(new StringParam(OutputfilenameEnum,outputfilename));
 
 #endif
Index: /issm/trunk/src/c/objects/IoModel.cpp
===================================================================
--- /issm/trunk/src/c/objects/IoModel.cpp	(revision 8925)
+++ /issm/trunk/src/c/objects/IoModel.cpp	(revision 8926)
@@ -94,7 +94,4 @@
 	xfree((void**)&this->surface_ablation_rate);
 	xfree((void**)&this->surface_mass_balance);
-	xfree((void**)&this->forcingtypes);
-	xfree((void**)&this->forcing);
-	xfree((void**)&this->timesteps);
 	xfree((void**)&this->dhdt);
 	xfree((void**)&this->rheology_B);
@@ -137,117 +134,113 @@
 	/*Get all the data that consists of scalars, integers and strings: */
 
-	IoModelFetchData(&this->name,iomodel_handle,"name"); 
-	IoModelFetchData(&this->inputfilename,iomodel_handle,"inputfilename"); 
-	IoModelFetchData(&this->outputfilename,iomodel_handle,"outputfilename"); 
-	IoModelFetchData(&this->qmu_analysis,iomodel_handle,"qmu_analysis"); 
-	IoModelFetchData(&this->control_analysis,iomodel_handle,"control_analysis"); 
-	IoModelFetchData(&this->dim,iomodel_handle,"dim");
+	IoModelFetchData(&this->name,iomodel_handle,NameEnum); 
+	IoModelFetchData(&this->inputfilename,iomodel_handle,InputfilenameEnum); 
+	IoModelFetchData(&this->outputfilename,iomodel_handle,OutputfilenameEnum); 
+	IoModelFetchData(&this->qmu_analysis,iomodel_handle,QmuAnalysisEnum); 
+	IoModelFetchData(&this->control_analysis,iomodel_handle,ControlAnalysisEnum); 
+	IoModelFetchData(&this->dim,iomodel_handle,DimEnum);
 	/*!Get numberofelements and numberofvertices: */
-	IoModelFetchData(&this->numberofvertices,iomodel_handle,"numberofnodes");
-	IoModelFetchData(&this->numberofelements,iomodel_handle,"numberofelements");
+	IoModelFetchData(&this->numberofvertices,iomodel_handle,NumberOfNodesEnum);
+	IoModelFetchData(&this->numberofelements,iomodel_handle,NumberOfElementsEnum);
 	/*!In case we are running 3d, we are going to need the collapsed and non-collapsed 2d meshes, from which the 3d mesh was extruded: */
 	if (this->dim==3){
 	
 		/*!Deal with 2d mesh: */
-		IoModelFetchData(&this->numberofelements2d,iomodel_handle,"numberofelements2d");
-		IoModelFetchData(&this->numberofvertices2d,iomodel_handle,"numberofnodes2d");
-		IoModelFetchData(&this->numlayers,iomodel_handle,"numlayers");
+		IoModelFetchData(&this->numberofelements2d,iomodel_handle,NumberOfElements2DEnum);
+		IoModelFetchData(&this->numberofvertices2d,iomodel_handle,NumberOfNodes2DEnum);
+		IoModelFetchData(&this->numlayers,iomodel_handle,NumlayersEnum);
 	}
 
 
 	/*elements type: */
-	IoModelFetchData(&this->ishutter,iomodel_handle,"ishutter");
-	IoModelFetchData(&this->ismacayealpattyn,iomodel_handle,"ismacayealpattyn");
-	IoModelFetchData(&this->isstokes,iomodel_handle,"isstokes");
+	IoModelFetchData(&this->ishutter,iomodel_handle,IshutterEnum);
+	IoModelFetchData(&this->ismacayealpattyn,iomodel_handle,IsmacayealpattynEnum);
+	IoModelFetchData(&this->isstokes,iomodel_handle,IsstokesEnum);
 
 	/*!Get drag_type, drag and p,q: */
-	IoModelFetchData(&this->drag_type,iomodel_handle,"drag_type");
+	IoModelFetchData(&this->drag_type,iomodel_handle,DragTypeEnum);
 
 	/*!Get materials: */
-	IoModelFetchData(&this->rho_water,iomodel_handle,"rho_water");
-	IoModelFetchData(&this->rho_ice,iomodel_handle,"rho_ice");
-	IoModelFetchData(&this->g,iomodel_handle,"g");
+	IoModelFetchData(&this->rho_water,iomodel_handle,RhoWaterEnum);
+	IoModelFetchData(&this->rho_ice,iomodel_handle,RhoIceEnum);
+	IoModelFetchData(&this->g,iomodel_handle,GEnum);
 
 	/*Get control parameters: */
-	IoModelFetchData(&this->num_control_type,iomodel_handle,"num_control_type"); 
-	IoModelFetchData(&this->num_cm_responses,iomodel_handle,"num_cm_responses"); 
+	IoModelFetchData(&this->num_control_type,iomodel_handle,NumControlTypeEnum); 
+	IoModelFetchData(&this->num_cm_responses,iomodel_handle,NumCmResponsesEnum); 
 
 	/*!Get solution parameters: */
-	IoModelFetchData(&this->yts,iomodel_handle,"yts");
-	IoModelFetchData(&this->meanvel,iomodel_handle,"meanvel");
-	IoModelFetchData(&this->epsvel,iomodel_handle,"epsvel");
-	IoModelFetchData(&this->verbose,iomodel_handle,"verbose_binary");
-	IoModelFetchData(&this->output_frequency,iomodel_handle,"output_frequency");
-	IoModelFetchData(&this->prognostic_DG,iomodel_handle,"prognostic_DG");
-	IoModelFetchData(&this->nsteps,iomodel_handle,"nsteps");
-	IoModelFetchData(&this->eps_cm,iomodel_handle,"eps_cm");
-	IoModelFetchData(&this->tolx,iomodel_handle,"tolx");
-	IoModelFetchData(&this->cm_gradient,iomodel_handle,"cm_gradient");
-	IoModelFetchData(&this->eps_res,iomodel_handle,"eps_res");
-	IoModelFetchData(&this->eps_rel,iomodel_handle,"eps_rel");
-	IoModelFetchData(&this->eps_abs,iomodel_handle,"eps_abs");
-	IoModelFetchData(&this->max_nonlinear_iterations,iomodel_handle,"max_nonlinear_iterations");
-	IoModelFetchData(&this->dt,iomodel_handle,"dt");
-	IoModelFetchData(&this->ndt,iomodel_handle,"ndt");
-	IoModelFetchData(&this->time_adapt,iomodel_handle,"time_adapt");
-	IoModelFetchData(&this->cfl_coefficient,iomodel_handle,"cfl_coefficient");
-	IoModelFetchData(&this->hydrostatic_adjustment,iomodel_handle,"hydrostatic_adjustment");
-	IoModelFetchData(&this->penalty_offset,iomodel_handle,"penalty_offset");
-	IoModelFetchData(&this->penalty_melting,iomodel_handle,"penalty_melting");
-	IoModelFetchData(&this->penalty_lock,iomodel_handle,"penalty_lock");
-	IoModelFetchData(&this->sparsity,iomodel_handle,"sparsity");
-	IoModelFetchData(&this->connectivity,iomodel_handle,"connectivity");
-	IoModelFetchData(&this->lowmem,iomodel_handle,"lowmem");
-	IoModelFetchData(&this->viscosity_overshoot,iomodel_handle,"viscosity_overshoot");
-	IoModelFetchData(&this->artdiff,iomodel_handle,"artificial_diffusivity");
-	IoModelFetchData(&this->prognostic_DG,iomodel_handle,"prognostic_DG");
-	IoModelFetchData(&this->stokesreconditioning,iomodel_handle,"stokesreconditioning");
-	IoModelFetchData(&this->shelf_dampening,iomodel_handle,"shelf_dampening");
-	IoModelFetchData(&this->waitonlock,iomodel_handle,"waitonlock");
-	IoModelFetchData(&this->gl_migration,iomodel_handle,"gl_migration");
-	IoModelFetchData(&this->isdiagnostic,iomodel_handle,"isdiagnostic"); 
-	IoModelFetchData(&this->isprognostic,iomodel_handle,"isprognostic"); 
-	IoModelFetchData(&this->isthermal,iomodel_handle,"isthermal"); 
+	IoModelFetchData(&this->yts,iomodel_handle,YtsEnum);
+	IoModelFetchData(&this->meanvel,iomodel_handle,MeanvelEnum);
+	IoModelFetchData(&this->epsvel,iomodel_handle,EpsvelEnum);
+	IoModelFetchData(&this->verbose,iomodel_handle,VerboseBinaryEnum);
+	IoModelFetchData(&this->output_frequency,iomodel_handle,OutputFrequencyEnum);
+	IoModelFetchData(&this->prognostic_DG,iomodel_handle,PrognosticDGEnum);
+	IoModelFetchData(&this->nsteps,iomodel_handle,NstepsEnum);
+	IoModelFetchData(&this->eps_cm,iomodel_handle,EpsCmEnum);
+	IoModelFetchData(&this->tolx,iomodel_handle,TolxEnum);
+	IoModelFetchData(&this->cm_gradient,iomodel_handle,CmGradientEnum);
+	IoModelFetchData(&this->eps_res,iomodel_handle,EpsResEnum);
+	IoModelFetchData(&this->eps_rel,iomodel_handle,EpsRelEnum);
+	IoModelFetchData(&this->eps_abs,iomodel_handle,EpsAbsEnum);
+	IoModelFetchData(&this->max_nonlinear_iterations,iomodel_handle,MaxNonlinearIterationsEnum);
+	IoModelFetchData(&this->dt,iomodel_handle,DtEnum);
+	IoModelFetchData(&this->ndt,iomodel_handle,NdtEnum);
+	IoModelFetchData(&this->time_adapt,iomodel_handle,TimeAdaptEnum);
+	IoModelFetchData(&this->cfl_coefficient,iomodel_handle,CflCoefficientEnum);
+	IoModelFetchData(&this->hydrostatic_adjustment,iomodel_handle,HydrostaticAdjustmentEnum);
+	IoModelFetchData(&this->penalty_offset,iomodel_handle,PenaltyOffsetEnum);
+	IoModelFetchData(&this->penalty_melting,iomodel_handle,PenaltyMeltingEnum);
+	IoModelFetchData(&this->penalty_lock,iomodel_handle,PenaltyLockEnum);
+	IoModelFetchData(&this->sparsity,iomodel_handle,SparsityEnum);
+	IoModelFetchData(&this->connectivity,iomodel_handle,ConnectivityEnum);
+	IoModelFetchData(&this->lowmem,iomodel_handle,LowmemEnum);
+	IoModelFetchData(&this->viscosity_overshoot,iomodel_handle,ViscosityOvershootEnum);
+	IoModelFetchData(&this->artdiff,iomodel_handle,ArtificialDiffusivityEnum);
+	IoModelFetchData(&this->prognostic_DG,iomodel_handle,PrognosticDGEnum);
+	IoModelFetchData(&this->stokesreconditioning,iomodel_handle,StokesreconditioningEnum);
+	IoModelFetchData(&this->shelf_dampening,iomodel_handle,ShelfDampeningEnum);
+	IoModelFetchData(&this->waitonlock,iomodel_handle,WaitonlockEnum);
+	IoModelFetchData(&this->gl_migration,iomodel_handle,GlMigrationEnum);
+	IoModelFetchData(&this->isdiagnostic,iomodel_handle,IsdiagnosticEnum); 
+	IoModelFetchData(&this->isprognostic,iomodel_handle,IsprognosticEnum); 
+	IoModelFetchData(&this->isthermal,iomodel_handle,IsthermalEnum); 
 
 	/*!Get thermal parameters: */
-	IoModelFetchData(&this->beta,iomodel_handle,"beta");
-	IoModelFetchData(&this->meltingpoint,iomodel_handle,"meltingpoint");
-	IoModelFetchData(&this->referencetemperature,iomodel_handle,"referencetemperature");
-	IoModelFetchData(&this->latentheat,iomodel_handle,"latentheat");
-	IoModelFetchData(&this->heatcapacity,iomodel_handle,"heatcapacity");
-	IoModelFetchData(&this->thermalconductivity,iomodel_handle,"thermalconductivity");
-	IoModelFetchData(&this->min_thermal_constraints,iomodel_handle,"min_thermal_constraints");
-	IoModelFetchData(&this->min_mechanical_constraints,iomodel_handle,"min_mechanical_constraints");
-	IoModelFetchData(&this->stabilize_constraints,iomodel_handle,"stabilize_constraints");
-	IoModelFetchData(&this->mixed_layer_capacity,iomodel_handle,"mixed_layer_capacity");
-	IoModelFetchData(&this->thermal_exchange_velocity,iomodel_handle,"thermal_exchange_velocity");
-	IoModelFetchData(&this->basal_melting_rate_correction_apply,iomodel_handle,"basal_melting_rate_correction_apply");
-	IoModelFetchData(&this->gl_melting_rate,iomodel_handle,"gl_melting_rate");
-	IoModelFetchData(&this->rheology_law,iomodel_handle,"rheology_law");
-	IoModelFetchData(&this->numforcings,iomodel_handle,"numforcings");
+	IoModelFetchData(&this->beta,iomodel_handle,BetaEnum);
+	IoModelFetchData(&this->meltingpoint,iomodel_handle,MeltingpointEnum);
+	IoModelFetchData(&this->referencetemperature,iomodel_handle,ReferencetemperatureEnum);
+	IoModelFetchData(&this->latentheat,iomodel_handle,LatentheatEnum);
+	IoModelFetchData(&this->heatcapacity,iomodel_handle,HeatcapacityEnum);
+	IoModelFetchData(&this->thermalconductivity,iomodel_handle,ThermalconductivityEnum);
+	IoModelFetchData(&this->min_thermal_constraints,iomodel_handle,MinThermalConstraintsEnum);
+	IoModelFetchData(&this->min_mechanical_constraints,iomodel_handle,MinMechanicalConstraintsEnum);
+	IoModelFetchData(&this->stabilize_constraints,iomodel_handle,StabilizeConstraintsEnum);
+	IoModelFetchData(&this->mixed_layer_capacity,iomodel_handle,MixedLayerCapacityEnum);
+	IoModelFetchData(&this->thermal_exchange_velocity,iomodel_handle,ThermalExchangeVelocityEnum);
+	IoModelFetchData(&this->basal_melting_rate_correction_apply,iomodel_handle,BasalMeltingRateCorrectionApplyEnum);
+	IoModelFetchData(&this->gl_melting_rate,iomodel_handle,GlMeltingRateEnum);
+	IoModelFetchData(&this->rheology_law,iomodel_handle,RheologyLawEnum);
 	
 	/*!Get hydrology parameters: */
-	IoModelFetchData(&this->hydro_kn,iomodel_handle,"hydro_kn");
-	IoModelFetchData(&this->hydro_p,iomodel_handle,"hydro_p");
-	IoModelFetchData(&this->hydro_q,iomodel_handle,"hydro_q");
-	IoModelFetchData(&this->hydro_CR,iomodel_handle,"hydro_CR");
-	IoModelFetchData(&this->hydro_n,iomodel_handle,"hydro_n");
+	IoModelFetchData(&this->hydro_kn,iomodel_handle,HydroKnEnum);
+	IoModelFetchData(&this->hydro_p,iomodel_handle,HydroPEnum);
+	IoModelFetchData(&this->hydro_q,iomodel_handle,HydroQEnum);
+	IoModelFetchData(&this->hydro_CR,iomodel_handle,HydroCREnum);
+	IoModelFetchData(&this->hydro_n,iomodel_handle,HydroNEnum);
 
 	/*qmu: */
 	if(this->qmu_analysis){
-		IoModelFetchData(&this->numberofvariables,iomodel_handle,"numberofvariables");
-		IoModelFetchData(&this->numvariabledescriptors,iomodel_handle,"numvariabledescriptors");
-		IoModelFetchData(&this->numberofresponses,iomodel_handle,"numberofresponses");
-		IoModelFetchData(&this->numresponsedescriptors,iomodel_handle,"numresponsedescriptors");
-		IoModelFetchData(&this->qmu_npart,iomodel_handle,"npart");
-		IoModelFetchData(&this->qmu_mass_flux_num_profiles,iomodel_handle,"qmu_mass_flux_num_profiles");
-		IoModelFetchData(&this->qmu_save_femmodel,iomodel_handle,"qmu_save_femmodel"); 
+		IoModelFetchData(&this->numberofvariables,iomodel_handle,NumberOfVariablesEnum);
+		IoModelFetchData(&this->numvariabledescriptors,iomodel_handle,NumvariabledescriptorsEnum);
+		IoModelFetchData(&this->numberofresponses,iomodel_handle,NumberOfResponsesEnum);
+		IoModelFetchData(&this->numresponsedescriptors,iomodel_handle,NumresponsedescriptorsEnum);
+		IoModelFetchData(&this->qmu_npart,iomodel_handle,NpartEnum);
+		IoModelFetchData(&this->qmu_mass_flux_num_profiles,iomodel_handle,QmuMassFluxNumProfilesEnum);
+		IoModelFetchData(&this->qmu_save_femmodel,iomodel_handle,QmuSaveFemmodelEnum); 
 	}
 
 	/*i/o: */
-	IoModelFetchData(&this->io_gather,iomodel_handle,"io_gather");
-	
-	/*parameter output : */
-	IoModelFetchData(&this->numoutput,iomodel_handle,"numoutput");
+	IoModelFetchData(&this->io_gather,iomodel_handle,IoGatherEnum);
 }
 /*}}}*/
@@ -416,14 +409,4 @@
 	this->dhdt=NULL;
 
-	/*forcings: */
-	this->numforcings=0;
-	this->forcingtypes=NULL;
-	this->forcing_numtimesteps=0;
-	this->forcing=NULL;
-	this->timesteps=NULL;
-
-	/*parameter output: */
-	this->numoutput=0;
-
 	/*elements type: */
 	this->ishutter=0;
Index: /issm/trunk/src/c/objects/IoModel.h
===================================================================
--- /issm/trunk/src/c/objects/IoModel.h	(revision 8925)
+++ /issm/trunk/src/c/objects/IoModel.h	(revision 8926)
@@ -199,14 +199,4 @@
 		double*  dhdt;
 
-		/*forcings: */
-		int      numforcings;
-		double*  forcingtypes;
-		int      forcing_numtimesteps;
-		double*  forcing;
-		double*  timesteps;
-
-		/*parameter output: */
-		int      numoutput;
-
 		/*qmu: */
 		int      qmu_mass_flux_num_profiles;
Index: /issm/trunk/src/c/objects/Materials/Matpar.cpp
===================================================================
--- /issm/trunk/src/c/objects/Materials/Matpar.cpp	(revision 8925)
+++ /issm/trunk/src/c/objects/Materials/Matpar.cpp	(revision 8926)
@@ -239,13 +239,13 @@
 			break;
 
-		case  HeatCapacityEnum:
+		case  HeatcapacityEnum:
 			this->heatcapacity=constant;
 			break;
 
-		case  ThermalConductivityEnum:
+		case  ThermalconductivityEnum:
 			this->thermalconductivity=constant;
 			break;
 
-		case  LatentHeatEnum:
+		case  LatentheatEnum:
 			this->latentheat=constant;
 			break;
@@ -255,9 +255,9 @@
 			break;
 
-		case  MeltingPointEnum:
+		case  MeltingpointEnum:
 			this->meltingpoint=constant;
 			break;
 
-		case  ReferenceTemperatureEnum:
+		case  ReferencetemperatureEnum:
 			this->referencetemperature=constant;
 			break;
Index: /issm/trunk/src/c/objects/Params/StringArrayParam.cpp
===================================================================
--- /issm/trunk/src/c/objects/Params/StringArrayParam.cpp	(revision 8925)
+++ /issm/trunk/src/c/objects/Params/StringArrayParam.cpp	(revision 8926)
@@ -30,17 +30,20 @@
 
 	int i;
-		int size;
+	int size;
 
 	enum_type=in_enum_type;
 	numstrings=in_numstrings;
 
-	value=(char**)xmalloc(numstrings*sizeof(char*));
-	for(i=0;i<numstrings;i++){
-		char* string=NULL;
-		size=strlen(in_values[i])+1;
-		string=(char*)xmalloc(size*sizeof(char));
-		memcpy(string,in_values[i],size*sizeof(char));
-		value[i]=string;
-	}
+	if(numstrings){
+		value=(char**)xmalloc(numstrings*sizeof(char*));
+		for(i=0;i<numstrings;i++){
+			char* string=NULL;
+			size=strlen(in_values[i])+1;
+			string=(char*)xmalloc(size*sizeof(char));
+			memcpy(string,in_values[i],size*sizeof(char));
+			value[i]=string;
+		}
+	}
+	else value=NULL;
 	
 }
@@ -160,14 +163,17 @@
 
 	memcpy(&numstrings,marshalled_dataset,sizeof(int));marshalled_dataset+=sizeof(int);
-	this->value=(char**)xmalloc(numstrings*sizeof(char*));
-
-	for(i=0;i<numstrings;i++){
-		memcpy(&stringsize,marshalled_dataset,sizeof(int));marshalled_dataset+=sizeof(int);
-	
-		string=(char*)xmalloc(stringsize*sizeof(char));
-		memcpy(string,marshalled_dataset,stringsize*sizeof(char));marshalled_dataset+=stringsize*sizeof(char);
-
-		this->value[i]=string;
-	}
+	if(numstrings){
+		this->value=(char**)xmalloc(numstrings*sizeof(char*));
+
+		for(i=0;i<numstrings;i++){
+			memcpy(&stringsize,marshalled_dataset,sizeof(int));marshalled_dataset+=sizeof(int);
+
+			string=(char*)xmalloc(stringsize*sizeof(char));
+			memcpy(string,marshalled_dataset,stringsize*sizeof(char));marshalled_dataset+=stringsize*sizeof(char);
+
+			this->value[i]=string;
+		}
+	}
+	else this->value=NULL;
 
 	/*return: */
@@ -203,15 +209,18 @@
 
 	M=this->numstrings;
-	outstrings=(char**)xmalloc(this->numstrings*sizeof(char*));
-
-	for(i=0;i<this->numstrings;i++){
-		string=this->value[i];
-		stringsize=strlen(string)+1;
-
-		string2=(char*)xmalloc(stringsize*sizeof(char));
-		memcpy(string2,string,stringsize*sizeof(char));
-
-		outstrings[i]=string2;
-	}
+	if(this->numstrings){
+		outstrings=(char**)xmalloc(this->numstrings*sizeof(char*));
+
+		for(i=0;i<this->numstrings;i++){
+			string=this->value[i];
+			stringsize=strlen(string)+1;
+
+			string2=(char*)xmalloc(stringsize*sizeof(char));
+			memcpy(string2,string,stringsize*sizeof(char));
+
+			outstrings[i]=string2;
+		}
+	}
+	else outstrings=NULL;
 
 	/*Assign output pointers:*/
Index: /issm/trunk/src/c/shared/Numerics/UnitConversion.cpp
===================================================================
--- /issm/trunk/src/c/shared/Numerics/UnitConversion.cpp	(revision 8925)
+++ /issm/trunk/src/c/shared/Numerics/UnitConversion.cpp	(revision 8926)
@@ -67,5 +67,5 @@
 		case VelEnum:         scale=yts;break; //m/yr
 		case VelObsEnum:      scale=yts;break; //m/yr
-		case DhDtEnum:        scale=yts;break; //m/yr
+		case DhdtEnum:        scale=yts;break; //m/yr
 		case BasalMeltingRateEnum:        scale=yts;break; //m/yr
 		case SurfaceAccumulationRateEnum: scale=yts;break; //m/yr
Index: /issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp	(revision 8926)
@@ -21,5 +21,5 @@
 
 	/*retrieve parameters:*/
-	femmodel->parameters->FindParam(&isstokes,IsStokesEnum);
+	femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
Index: /issm/trunk/src/c/solutions/control_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/control_core.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/control_core.cpp	(revision 8926)
@@ -50,13 +50,13 @@
 	femmodel->parameters->FindParam(&control_type,NULL,ControlTypeEnum);
 	femmodel->parameters->FindParam(&responses,NULL,NULL,CmResponsesEnum);
-	femmodel->parameters->FindParam(&nsteps,NStepsEnum);
-	femmodel->parameters->FindParam(&maxiter,NULL,MaxIterEnum);
+	femmodel->parameters->FindParam(&nsteps,NstepsEnum);
+	femmodel->parameters->FindParam(&maxiter,NULL,MaxiterEnum);
 	femmodel->parameters->FindParam(&cm_jump,NULL,CmJumpEnum);
 	femmodel->parameters->FindParam(&eps_cm,EpsCmEnum);
-	femmodel->parameters->FindParam(&tolx,TolXEnum);
+	femmodel->parameters->FindParam(&tolx,TolxEnum);
 	femmodel->parameters->FindParam(&cm_gradient,CmGradientEnum);
 	femmodel->parameters->FindParam(&dim,DimEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
-	femmodel->parameters->FindParam(&isstokes,IsStokesEnum);
+	femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
 	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
 	/*}}}*/
Index: /issm/trunk/src/c/solutions/controlrestart.cpp
===================================================================
--- /issm/trunk/src/c/solutions/controlrestart.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/controlrestart.cpp	(revision 8926)
@@ -17,5 +17,5 @@
 	femmodel->parameters->FindParam(&num_controls,NumControlsEnum);
 	femmodel->parameters->FindParam(&control_type,NULL,ControlTypeEnum);
-	femmodel->parameters->FindParam(&nsteps,NStepsEnum);
+	femmodel->parameters->FindParam(&nsteps,NstepsEnum);
 	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
 
Index: /issm/trunk/src/c/solutions/diagnostic_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/diagnostic_core.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/diagnostic_core.cpp	(revision 8926)
@@ -28,7 +28,7 @@
 	/* recover parameters:*/
 	femmodel->parameters->FindParam(&dim,DimEnum);
-	femmodel->parameters->FindParam(&ishutter,IsHutterEnum);
-	femmodel->parameters->FindParam(&ismacayealpattyn,IsMacAyealPattynEnum);
-	femmodel->parameters->FindParam(&isstokes,IsStokesEnum);
+	femmodel->parameters->FindParam(&ishutter,IshutterEnum);
+	femmodel->parameters->FindParam(&ismacayealpattyn,IsmacayealpattynEnum);
+	femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
 	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
Index: /issm/trunk/src/c/solutions/enthalpy_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/enthalpy_core.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/enthalpy_core.cpp	(revision 8926)
@@ -52,5 +52,5 @@
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,i+1,time);
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,EnthalpyEnum,i+1,time);
-			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WaterFractionEnum,i+1,time);
+			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WaterfractionEnum,i+1,time);
 		}
 
Index: /issm/trunk/src/c/solutions/gradient_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/gradient_core.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/gradient_core.cpp	(revision 8926)
@@ -31,5 +31,5 @@
 	femmodel->parameters->FindParam(&num_controls,NumControlsEnum);
 	femmodel->parameters->FindParam(&control_type,NULL,ControlTypeEnum);
-	femmodel->parameters->FindParam(&optscal_list,NULL,NULL,OptScalEnum);
+	femmodel->parameters->FindParam(&optscal_list,NULL,NULL,OptscalEnum);
 
 	/*Compute and norm gradient of all controls*/
Index: /issm/trunk/src/c/solutions/hydrology_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/hydrology_core.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/hydrology_core.cpp	(revision 8926)
@@ -51,5 +51,5 @@
 		if(solution_type==HydrologySolutionEnum && !control_analysis){
 			_printf_(VerboseSolution(),"   saving results\n");
-			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WaterColumnEnum,i+1,time);
+			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WatercolumnEnum,i+1,time);
 		}
 
Index: /issm/trunk/src/c/solutions/hydrology_core_step.cpp
===================================================================
--- /issm/trunk/src/c/solutions/hydrology_core_step.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/hydrology_core_step.cpp	(revision 8926)
@@ -22,5 +22,5 @@
 
 	/*transfer water column thickness to old water column thickness: */
-	InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WaterColumnEnum,WaterColumnOldEnum);
+	InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WatercolumnEnum,WaterColumnOldEnum);
 
 }
Index: /issm/trunk/src/c/solutions/issm.cpp
===================================================================
--- /issm/trunk/src/c/solutions/issm.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/issm.cpp	(revision 8926)
@@ -75,5 +75,5 @@
 	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
+	femmodel->parameters->FindParam(&waitonlock,WaitonlockEnum);
 
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
Index: /issm/trunk/src/c/solutions/objectivefunctionC.cpp
===================================================================
--- /issm/trunk/src/c/solutions/objectivefunctionC.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/objectivefunctionC.cpp	(revision 8926)
@@ -37,5 +37,5 @@
 
 	/*Recover parameters: */
-	femmodel->parameters->FindParam(&isstokes,IsStokesEnum);
+	femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
 	femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
Index: /issm/trunk/src/c/solutions/transient_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient_core.cpp	(revision 8925)
+++ /issm/trunk/src/c/solutions/transient_core.cpp	(revision 8926)
@@ -37,7 +37,7 @@
 	femmodel->parameters->FindParam(&time_adapt,TimeAdaptEnum);
 	femmodel->parameters->FindParam(&gl_migration,GroundingLineMigrationEnum);
-	femmodel->parameters->FindParam(&isdiagnostic,IsDiagnosticEnum);
-	femmodel->parameters->FindParam(&isprognostic,IsPrognosticEnum);
-	femmodel->parameters->FindParam(&isthermal,IsThermalEnum);
+	femmodel->parameters->FindParam(&isdiagnostic,IsdiagnosticEnum);
+	femmodel->parameters->FindParam(&isprognostic,IsprognosticEnum);
+	femmodel->parameters->FindParam(&isthermal,IsthermalEnum);
 
 	/*initialize: */
Index: /issm/trunk/src/m/classes/model.m
===================================================================
--- /issm/trunk/src/m/classes/model.m	(revision 8926)
+++ /issm/trunk/src/m/classes/model.m	(revision 8926)
@@ -0,0 +1,971 @@
+%MODEL class definition
+%
+%   Usage:
+%      md = model(varargin)
+
+classdef model
+    properties (SetAccess=public) %Model fields
+		 % {{{1
+		 %Careful here: no other class should be used as default value
+		 %this is a bug of matlab
+
+		 %in what follows, any field is defined according to the following convention: 
+		 %field={defaultvalue,ismarshalled,type}
+
+		 %Model general information
+		 notes={'',false};
+		 name={'',true,'String'}; 
+		 runtimename={'',false}; %name used when running a parallel job
+		 counter={0,false}; %1 mesh, 2 geography, 3 parameterize
+		 domainoutline={NaN,false};
+		 riftoutline={NaN,false};
+		 iceshelfoutline={NaN,false};
+		 icesheetoutline={NaN,false};
+		 wateroutline={NaN,false};
+		 parameterfile={NaN,false};
+		 runmefile={NaN,false};
+
+		 %Mesh
+		 bamg={struct(),false};
+		 dim={0,true,'Integer'};
+		 numberofelements={0,true,'Integer'};
+		 numberofnodes={0,true,'Integer'};
+		 elements={NaN,true,'Mat'};
+		 elements_type={NaN,true,'Mat'};
+		 vertices_type={NaN,true,'Mat'};
+		 x={NaN,true,'Mat'};
+		 y={NaN,true,'Mat'};
+		 z={NaN,true,'Mat'};
+		 bed_slopex={NaN,false};
+		 bed_slopey={NaN,false};
+		 surface_slopex={NaN,false};
+		 surface_slopey={NaN,false};
+		 nodeconnectivity={NaN,false};
+		 elementconnectivity={NaN,true,'Mat'};
+		 edges={NaN,true,'Mat'};
+
+		 %I/O
+		 io_gather={NaN,true,'Integer'};
+
+		 %Initial 2d mesh 
+		 numberofelements2d={0,true,'Integer'};
+		 numberofnodes2d={0,true,'Integer'};
+		 elements2d={NaN,true,'Mat'};
+		 elements_type2d={NaN,false};
+		 vertices_type2d={NaN,false};
+		 x2d={NaN,false};
+		 y2d={NaN,false};
+		 z2d={NaN,false};
+
+		 %latlon of the coorinates
+		 lat={NaN,false};
+		 long={NaN,false};
+		 hemisphere={NaN,false};
+
+		 %Elements type
+		 ishutter={0,true,'Integer'};
+		 ismacayealpattyn={0,true,'Integer'};
+		 isstokes={0,true,'Integer'};
+
+		 %Elements
+		 elementonhutter={NaN,false};
+		 elementonmacayeal={NaN,false};
+		 elementonpattyn={NaN,false};
+		 elementonstokes={NaN,false};
+
+		 %Nodes
+		 nodeonhutter={NaN,true,'Mat'};
+		 nodeonmacayeal={NaN,true,'Mat'};
+		 nodeonpattyn={NaN,true,'Mat'};
+		 nodeonstokes={NaN,true,'Mat'};
+		 borderstokes={NaN,true,'Mat'};
+
+		 %Stokes
+		 stokesreconditioning={0,true,'Scalar'};
+		 shelf_dampening={0,true,'Integer'};
+
+		 %Penalties
+		 penalties={NaN,true,'Mat'};
+		 penalty_offset={0,true,'Scalar'};
+		 penalty_melting={0,true,'Scalar'};
+		 penalty_lock={0,true,'Integer'};
+		 segments={NaN,false};
+		 segmentmarkers={NaN,false};
+		 rifts={NaN,false};
+		 riftinfo={NaN,true,'Mat'};
+		 riftproperties={NaN,false};
+		 numrifts={0,false};
+
+		 %Projections
+		 uppernodes={NaN,false};
+		 upperelements={NaN,true,'Mat'};
+		 lowerelements={NaN,true,'Mat'};
+		 lowernodes={NaN,false};
+
+		 %Extrusion
+		 numlayers={0,true,'Integer'};
+		 extrusionexponent={0,false};
+		 elementonbed={NaN,true,'Mat'};
+		 elementonsurface={NaN,true,'Mat'};
+		 nodeonbed={NaN,true,'Mat'};
+		 nodeonsurface={NaN,true,'Mat'};
+		 minh={0,false};
+		 firn_layer={NaN,false};
+
+		 %Extraction
+		 extractednodes={NaN,false};
+		 extractedelements={NaN,false};
+
+		 %Materials parameters
+		 rho_ice={0,true,'Scalar'};
+		 rho_water={0,true,'Scalar'};
+		 rho_firn={0,false};
+		 heatcapacity={0,true,'Scalar'};
+		 latentheat={0,true,'Scalar'};
+		 thermalconductivity={0,true,'Scalar'};
+		 meltingpoint={0,true,'Scalar'};
+		 referencetemperature={0,true,'Scalar'}; %for enthalpy
+		 beta={0,true,'Scalar'};
+		 
+		 mixed_layer_capacity={0,true,'Scalar'};
+		 thermal_exchange_velocity={0,true,'Scalar'};
+		 min_thermal_constraints={0,true,'Integer'};
+		 min_mechanical_constraints={0,true,'Integer'};
+		 stabilize_constraints={0,true,'Integer'};
+
+		 %Physical parameters
+		 g={0,true,'Scalar'};
+		 yts={0,true,'Scalar'};
+		 drag_type={0,true,'Integer'};
+		 drag_coefficient={NaN,true,'Mat'};
+		 drag_p={NaN,true,'Mat'};
+		 drag_q={NaN,true,'Mat'};
+		 rheology_B={NaN,true,'Mat'};
+		 rheology_n={NaN,true,'Mat'};
+		 rheology_law={0,true,'Integer'};
+
+		 %Geometrical parameters
+		 elementoniceshelf={NaN,true,'Mat'};
+		 elementonicesheet={NaN,true,'Mat'};
+		 elementonwater={NaN,true,'Mat'};
+		 elementonnuna={NaN,false};
+		 nodeoniceshelf={NaN,true,'Mat'};
+		 nodeonicesheet={NaN,true,'Mat'};
+		 nodeonwater={NaN,true,'Mat'};
+		 nodeonnuna={NaN,false};
+		 surface={NaN,true,'Mat'};
+		 thickness={NaN,true,'Mat'};
+		 thickness_coeff={NaN,true,'Mat'};
+		 bed={NaN,true,'Mat'};
+		 bathymetry={NaN,true,'Mat'};
+		 mask={NaN,false};
+
+		 %Boundary conditions
+		 nodeonboundary={NaN,false};
+		 pressureload={NaN,true,'Mat'};
+		 spcvx={NaN,true,'Mat'};
+		 spcvy={NaN,true,'Mat'};
+		 spcvz={NaN,true,'Mat'};
+		 spctemperature={NaN,true,'Mat'};
+		 spcthickness={NaN,true,'Mat'};
+		 spcwatercolumn={NaN,true,'Mat'};
+		 diagnostic_ref={NaN,true,'Mat'};
+
+		 %Observations 
+		 vx_obs={NaN,true,'Mat'};
+		 vy_obs={NaN,true,'Mat'};
+		 vel_obs={NaN,false};
+		 vx_obs_raw={NaN,false};
+		 vy_obs_raw={NaN,false};
+		 vx_bal={NaN,false};
+		 vy_bal={NaN,false};
+		 vel_bal={NaN,false};
+		 vel_obs_raw={NaN,false};
+		 surface_accumulation_rate={NaN,true,'Mat'};
+		 surface_ablation_rate={NaN,true,'Mat'};
+		 surface_mass_balance={NaN,true,'Mat'};
+		 dhdt={NaN,true,'Mat'};
+		 geothermalflux={NaN,true,'Mat'};
+		 observed_temperature={NaN,false};
+		 thickness_obs={NaN,true,'Mat'};
+
+		 %Forcings
+		 forcings={struct(),false};
+
+		 %Statics parameters
+		 eps_res={0,true,'Scalar'};
+		 eps_rel={0,true,'Scalar'};
+		 eps_abs={0,true,'Scalar'};
+		 max_nonlinear_iterations={0,true,'Scalar'};
+		 sparsity={0,true,'Scalar'};
+		 connectivity={0,true,'Integer'};
+		 lowmem={0,true,'Integer'};
+		 viscosity_overshoot={0,true,'Scalar'};
+
+		 %Transient parameters
+		 dt={0,true,'Scalar'};
+		 ndt={0,true,'Scalar'};
+		 time_adapt={0,true,'Integer'};
+		 cfl_coefficient={1/2,true,'Scalar'};
+		 adaptative_cfl={0,false};
+		 artificial_diffusivity={0,true,'Integer'};
+		 prognostic_DG={0,true,'Integer'};
+		 deltaH={0,false};
+		 DeltaH={0,false};
+		 deltaT={0,false};
+		 DeltaT={0,false};
+		 timeacc={0,false};
+		 timedec={0,false};
+		 hydrostatic_adjustment={0,true,'Integer'};
+
+		 %Transient flags
+		 isprognostic={0,true,'Integer'};
+		 isdiagnostic={0,true,'Integer'};
+		 isthermal={0,true,'Integer'};
+
+		 %Control
+		 control_analysis={0,true,'Integer'};
+		 control_type={0,true,'Mat'};
+		 weights={[],true,'Mat'};
+		 nsteps={0,true,'Integer'};
+		 maxiter={[],true,'Mat'};
+		 cm_responses={[],true,'Mat'};
+		 tolx={0,true,'Scalar'};
+		 optscal={[],true,'Mat'};
+		 eps_cm={0,true,'Scalar'};
+		 cm_min={NaN,true,'Mat'};
+		 cm_max={NaN,true,'Mat'};
+		 cm_jump={[],true,'Mat'};
+		 cm_gradient={0,true,'Integer'};
+		 epsvel={0,true,'Scalar'};
+		 meanvel={0,true,'Scalar'};
+		 num_control_type={0,true,'Integer'};
+		 num_cm_responses={0,true,'Integer'};
+
+		 %Output parameters
+		 parameteroutput={{},true,'StringArray'};
+		 viscousheating={NaN,false};
+		 pressure_elem={NaN,false};
+		 stress={NaN,false};
+		 stress_surface={NaN,false};
+		 stress_bed={NaN,false};
+		 deviatoricstress={NaN,false};
+		 strainrate={NaN,false};
+
+		 %debugging
+		 verbose={0,false};
+		 verbose_binary={0,true,'Integer'};
+		 element_debug={0,false};
+		 element_debugid={NaN,false};
+		 mem_debug={0,false};
+		 gprof={0,false};
+		 memoryleaks={NaN,false};
+
+		 %Results fields
+		 output_frequency={0,true,'Integer'};
+		 inputfilename={'',true,'String'};
+		 outputfilename={'',true,'String'};
+		 results={struct(),false};
+		 vx={NaN,true,'Mat'};
+		 vy={NaN,true,'Mat'};
+		 vz={NaN,true,'Mat'};
+		 vel={NaN,false};
+		 temperature={NaN,true,'Mat'}; %temperature solution vector
+		 waterfraction={NaN,true,'Mat'};
+		 gl_melting_rate={NaN,true,'Scalar'};
+		 basal_melting_rate={NaN,true,'Mat'};
+		 basal_melting_rate_correction={NaN,true,'Mat'};
+		 basal_melting_rate_correction_apply={0,true,'Integer'};
+		 pressure={NaN,true,'Mat'};
+		 
+		 %hydrology
+		 watercolumn={NaN,true,'Scalar'};
+		 hydro_n={0,true,'Scalar'};
+		 hydro_CR={0,true,'Scalar'};
+		 hydro_p={0,true,'Scalar'};
+		 hydro_q={0,true,'Scalar'};
+		 hydro_kn={0,true,'Scalar'};
+		 
+		 %Parallelisation parameters
+		 cluster={NaN,false};
+		 outlog={'',false};
+		 errlog={'',false};
+		 alloc_cleanup={1,false};
+		 waitonlock={0,true,'Scalar'};
+
+		 %mesh2grid
+		 mesh2grid_parameters={{},false};
+		 mesh2grid_data={NaN,false};
+		 mesh2grid_xm={NaN,false};
+		 mesh2grid_ym={NaN,false};
+
+		 %dummy
+		 dummy={NaN,false};
+
+		 %mesh 
+		 mesh_domainoutline={'',false};
+		 mesh_riftoutline={'',false};
+		 mesh_resolution={NaN,false};
+
+		 %PETSc and MATLAB solver string
+		 petscoptions={NaN,false};
+
+		 %Analysis
+		 solution_type={'',false};
+
+		 %management of large models
+		 repository={'',false};
+
+		 %radar power images
+		 sarpwr={NaN,false};
+		 sarxm={NaN,false};
+		 sarym={NaN,false};
+
+		 %qmu
+		 variables={struct(),false};
+		 responses={struct(),false};
+		 qmu_method={struct(),false};
+		 qmu_params={struct(),false};
+		 dakotaresults={struct(),false};
+		 dakotain={'',false};
+		 dakotaout={'',false};
+		 dakotadat={'',false};
+		 qmu_analysis={0,true,'Integer'};
+		 part={[],false};
+		 npart={0,false};
+		 numberofvariables={0,false};
+		 numberofresponses={0,false};
+		 variabledescriptors={NaN,false};
+		 responsedescriptors={NaN,false};
+		 numvariabledescriptors={0,false};
+		 numresponsedescriptors={0,false};
+		 qmu_mass_flux_num_profiles={NaN,false};
+		 qmu_mass_flux_profile_directory={NaN,false};
+		 qmu_mass_flux_profiles={NaN,false};
+		 qmu_mass_flux_segments={NaN,false};
+		 qmu_relax={0,false};
+		 qmu_save_femmodel={0,false};
+
+		 %flaim
+		 fm_tracks={'',false};
+		 fm_flightreqs={struct(),false};
+		 fm_criterion={[],false};
+		 fm_solution={'',false};
+		 fm_quality={0,false};
+
+		 %grounding line migration: 
+		 gl_migration={NaN,true,'Integer'};
+
+		 %solution parameters
+		 loadresults={0,false};
+
+		 %partitioner:
+		 adjacency={[],false};
+		 vwgt={[],false};
+		 %}}}
+	 end
+	 properties(Dependent,Hidden) %Deprecated property
+		 % {{{
+		 % We must keep here ALL deprecated properties
+		 % This ensures that when a model object from a previous version
+		 % all fields are recovered.
+		 % loadobj is then used to assign old properties to new properties
+		 % But if we don't keep the old properties here, they would not be
+		 % recovered when the model is loaded
+		 % KEEP IN CHRONOLOGICAL ORDER (OLDER FIRST)
+		 drag;
+		 p;
+		 q;
+		 B;
+		 n;
+		 melting;
+		 accumulation;
+		 type;
+		 numberofgrids;
+		 numberofgrids2d;
+		 gridonhutter;
+		 gridonmacayeal;
+		 gridonpattyn;
+		 gridonstokes;
+		 uppergrids;
+		 lowergrids;
+		 gridonbed;
+		 gridonsurface;
+		 extractedgrids;
+		 gridoniceshelf;
+		 gridonicesheet;
+		 gridonwater;
+		 gridonnuna;
+		 gridonboundary;
+		 melting_rate;
+		 accumulation_rate;
+		 hydro_gamma;
+		 cm_noisedmp;
+		 planet;
+		 spcvelocity;
+		 % }}}
+	 end
+	 methods (Static)
+		 function md = loadobj(md) % {{{
+			 % This function is directly called by matlab when
+			 % a model object is loaded. If the input is a struct
+			 % it is an old version of model and old fields must be 
+			 % recovered (make sure they are in the deprecated
+			 % model properties)
+
+			 if isstruct(md)
+				 disp('Recovering model object from a previous version');
+
+				 %Ok the loaded model is a struct, initialize output and recover all fields
+				 structmd=md;
+				 md=model;
+
+				 structfields=fields(structmd);
+				 modelprops  =properties('model');
+
+				 for i=1:length(structfields),
+					 fieldname =structfields{i};
+					 fieldvalue=getfield(structmd,fieldname);
+					 if ismember(fieldname,modelprops),
+						 md=setfield(md,fieldname,fieldvalue);
+					 end
+				 end
+
+				 %Field name change
+				 if isfield(structmd,'drag'), md.drag_coefficient=structmd.drag; end
+				 if isfield(structmd,'p'), md.drag_p=structmd.p; end
+				 if isfield(structmd,'q'), md.drag_q=structmd.p; end
+				 if isfield(structmd,'B'), md.rheology_B=structmd.B; end
+				 if isfield(structmd,'n'), md.rheology_n=structmd.n; end
+				 if isfield(structmd,'melting'), md.basal_melting_rate=structmd.melting; end
+				 if isfield(structmd,'melting_rate'), md.basal_melting_rate=structmd.melting_rate; end
+				 if isfield(structmd,'accumulation'), md.surface_mass_balance=structmd.accumulation; end
+				 if isfield(structmd,'accumulation_rate'), md.surface_mass_balance=structmd.accumulation_rate; end
+				 if isfield(structmd,'numberofgrids'), md.numberofnodes=structmd.numberofgrids; end
+				 if isfield(structmd,'numberofgrids2d'), md.numberofnodes2d=structmd.numberofgrids2d; end
+				 if isfield(structmd,'gridonhutter'), md.nodeonhutter=structmd.gridonhutter; end
+				 if isfield(structmd,'gridonmacayeal'), md.nodeonmacayeal=structmd.gridonmacayeal; end
+				 if isfield(structmd,'gridonpattyn'), md.nodeonpattyn=structmd.gridonpattyn; end
+				 if isfield(structmd,'gridonstokes'), md.nodeonstokes=structmd.gridonstokes; end
+				 if isfield(structmd,'uppergrids'), md.uppernodes=structmd.uppergrids; end
+				 if isfield(structmd,'lowergrids'), md.lowernodes=structmd.lowergrids; end
+				 if isfield(structmd,'gridonbed'), md.nodeonbed=structmd.gridonbed; end
+				 if isfield(structmd,'gridonsurface'), md.nodeonsurface=structmd.gridonsurface; end
+				 if isfield(structmd,'extractedgrids'), md.extractednodes=structmd.extractedgrids; end
+				 if isfield(structmd,'gridoniceshelf'), md.nodeoniceshelf=structmd.gridoniceshelf; end
+				 if isfield(structmd,'gridonicesheet'), md.nodeonicesheet=structmd.gridonicesheet; end
+				 if isfield(structmd,'gridonwater'), md.nodeonwater=structmd.gridonwater; end
+				 if isfield(structmd,'gridonnuna'), md.nodeonnuna=structmd.gridonnuna; end
+				 if isfield(structmd,'gridonboundary'), md.nodeonboundary=structmd.gridonboundary; end
+				 if isfield(structmd,'spcvelocity'), 
+					 md.spcvx=NaN*ones(md.numberofnodes,1);
+					 md.spcvy=NaN*ones(md.numberofnodes,1);
+					 md.spcvz=NaN*ones(md.numberofnodes,1);
+					 pos=find(structmd.spcvelocity(:,1)); md.spcvx(pos)=structmd.spcvelocity(pos,4); 
+					 pos=find(structmd.spcvelocity(:,2)); md.spcvy(pos)=structmd.spcvelocity(pos,5); 
+					 pos=find(structmd.spcvelocity(:,3)); md.spcvz(pos)=structmd.spcvelocity(pos,6); 
+				 end
+
+				 %Field class change
+				 if (isfield(structmd,'type') & ischar(structmd.type)), 
+					 if strcmpi(structmd.type,'2d'), md.dim=2; end
+					 if strcmpi(structmd.type,'3d'), md.dim=3; end
+				 end
+				 if isnumeric(md.verbose), md.verbose=verbose; end
+
+				 %New fields
+				 if ~isfield(structmd,'upperelements');
+					 md.upperelements=transpose(1:md.numberofelements)+md.numberofelements2d;
+					 md.upperelements(end-md.numberofelements2d+1:end)=NaN;
+				 end
+				 if ~isfield(structmd,'lowerelements');
+					 md.lowerelements=transpose(1:md.numberofelements)-md.numberofelements2d;
+					 md.lowerelements(1:md.numberofelements2d)=NaN;
+				 end
+			 end
+		 end% }}}
+	 end
+	 methods
+		 function md=model(varargin) % {{{1
+
+			 switch nargin
+				 case 0
+
+					 %set default parameters
+					 md=setdefaultparameters(md);
+
+				 case 1
+					 %If single argument of class model, we have a copy constructor. 
+					 if (isa(varargin{1},'model'))
+						 md = varargin{1};
+					 elseif (isa(varargin{1},'char'))
+						 %user gave us the name of the repository, this model is going to be large! 
+						 md=model;
+						 md.repository=varargin{1};
+						 md=activaterepository(md);
+					 elseif (isa(varargin{1},'numeric'))
+						 if varargin{1}==0,
+							 %just requesting model, without default parameters, do nothing.
+						 else
+							 error('model constructor error message: unknown constructor call');
+						 end
+					 else
+						 error('model constructor error message: copy constructor called on a non ''model'' class object');
+					 end 
+
+				 otherwise
+					 error('model constructor error message: 0 of 1 argument only in input.');
+				 end
+		 end
+		 %}}}
+		 function md=activaterepository(md) % {{{1
+			 %ACTIVATEREPOSITORY - save the model fields separately
+			 %
+			 %   This function is required when a matlab session 
+			 %   is running low on memory, or when a model is very large. 
+			 %   By activating a repository (for example, 'repository.model'), 
+			 %   the model fields will each separately be saved and accessed when 
+			 %   needed. This will limit the memory use at the maximum; 
+			 %
+			 %   Usage:
+			 %      md=activaterepository(md)
+
+
+			 %for each field of the model, we create an equivalent variable, with the same name, which we 
+			 %save in the repository. 
+
+			 modelfields=fields(md);
+
+			 %then save each of the big fields in their respective files
+			 for i=1:length(modelfields),
+				 field=char(modelfields(i));
+				 eval([field '=md.' field ';']);
+
+				 %anything NaN, will be saved 
+
+				 if isnumeric(eval(field)),
+					 if isnan(eval(field)),
+						 if exist(['.' md.repository '.' field],'file');
+							 error(['Repository ' md.repository ' already exists! Delete all files starting with .' md.repository ' in your directory, before activating a new repository']);
+						 end
+						 eval(['save .' md.repository '.' field ' ' field]);
+					 end
+				 end
+			 end
+		 end % }}}
+		 function disp(md) % {{{1
+			 disp(sprintf('\n%s = \n',inputname(1)));
+
+			 %name
+			 disp(sprintf('   Name:'));
+			 if isempty(md.name),
+				 disp(sprintf('      N/A'));
+			 else
+				 disp(sprintf('      %s',md.name));
+			 end
+
+			 %notes: md.notes is a cell array of strings
+			 disp(sprintf('   Notes:'));
+			 if isempty(md.notes),
+				 disp(sprintf('      N/A'));
+			 else
+				 if iscell(md.notes),
+					 strings=md.notes;
+					 for i=1:length(strings),
+						 string=char(strings(i));
+						 if i==1,
+							 disp(sprintf('      %s',string));
+						 else
+							 disp(sprintf('      %s',string));
+						 end
+					 end
+				 elseif ischar(md.notes),
+					 disp(sprintf('      %s',md.notes));
+				 else
+					 disp('display error message: ''notes'' for model is neither a cell array of string, nor a string. Cannot display.');
+				 end
+			 end
+
+			 %repository
+			 if ~isempty(md.repository),
+				 disp(sprintf('   Repository: %s',md.repository));
+			 end
+
+			 %diverse
+			 disp(sprintf('   Mesh: %s',md.repository));
+			 disp(sprintf('%s%s%s','      Mesh: type ''',inputname(1),'.mesh'' to display'));
+			 disp(sprintf('   Parameters: %s',md.repository));
+			 disp(sprintf('%s%s%s','      Boundary conditions: type ''',inputname(1),'.bc'' to display'));
+			 disp(sprintf('%s%s%s','      Observations: type ''',inputname(1),'.obs'' to display'));
+			 disp(sprintf('%s%s%s','      Materials: type ''',inputname(1),'.mat'' to display'));
+			 disp(sprintf('%s%s%s','      Parameters: type ''',inputname(1),'.par'' to display'));
+			 disp(sprintf('%s%s%s','      ExpPar: type ''',inputname(1),'.exppar'' to display'));
+			 disp(sprintf('   Solution parameters: %s',md.repository));
+			 disp(sprintf('%s%s%s','      Qmu: type ''',inputname(1),'.qmu'' to display'));
+			 disp(sprintf('%s%s%s','      FLAIM: type ''',inputname(1),'.flaim'' to display'));
+			 disp(sprintf('%s%s%s','      Diagnostic solution parameters: type ''',inputname(1),'.diagnostic'' to display'));
+			 disp(sprintf('%s%s%s','      Thermal solution parameters: type ''',inputname(1),'.thermal'' to display'));
+			 disp(sprintf('%s%s%s','      Prognostic solution parameters: type ''',inputname(1),'.prognostic'' to display'));
+			 disp(sprintf('%s%s%s','      Transient solution parameters: type ''',inputname(1),'.transient'' to display'));
+			 disp(sprintf('%s%s%s','      Control solution parameters: type ''',inputname(1),'.control'' to display'));
+			 disp(sprintf('   Parallel:'));
+			 disp(sprintf('%s%s%s','      Parallel options: type ''',inputname(1),'.parallel'' to display'));
+			 if(md.numrifts)disp(sprintf('      rifts: %i',md.numrifts));end
+			 disp(sprintf('   Results:'));
+			 disp(sprintf('%s%s%s','      Results: type ''',inputname(1),'.res'' to display'));
+			 if(md.numrifts)disp(sprintf('      rifts: %i',md.numrifts));end
+		 end
+		 %}}}
+		 function mdstruct=struct(md) % {{{1
+			 mdstruct=struct();
+			 modelprops=properties('model');
+
+			 for i=1:length(modelprops),
+				 mdstruct.(modelprops{i})=md.(modelprops{i});
+			 end
+		 end
+		 %}}}
+		 function md=setdefaultparameters(md) % {{{1
+		 %SETDEFAULTPARAMETERS - plug default parameters onto model
+		 %
+		 %   Although the model parameterization should be done in
+		 %   the parameter file, some parameters are initialized here
+		 %   with a default value.
+		 %   These default values can be changed if necessary.
+		 %
+		 %   Usage:
+		 %      md=setdefaultparameters(md);
+
+			 %first, use the defaults provided by the properties definition above. 
+			 fieldnames=fields(md);
+			 for i=1:length(fieldnames),
+				 fieldname=fieldnames{i};
+				 md.(fieldname)=md.(fieldname){1};
+			 end
+
+			 %Materials parameters
+
+			 %ice density (kg/m^3)
+			 md.rho_ice=917;
+
+			 %water density (kg/m^3)
+			 md.rho_water=1023;
+
+			 %firn density (kg/m^3)
+			 md.rho_firn=830;
+
+			 %ice heat capacity cp (J/kg/K)
+			 md.heatcapacity=2093;
+
+			 %ice latent heat of fusion L (J/kg)
+			 md.latentheat=3.34*10^5;
+
+			 %basal melting rate correction: 
+			 md.gl_melting_rate=0; 
+			 md.basal_melting_rate_correction_apply=0; %do not apply
+
+			 %ice thermal conductivity lamda (W/m/K)
+			 md.thermalconductivity=2.4;
+
+			 %the melting point of ice at 1 atmosphere of pressure in K
+			 md.meltingpoint=273.15;
+
+			 %the reference temperature for enthalpy model (cf Aschwanden)
+			 md.referencetemperature=223.15;
+
+			 %rate of change of melting point with pressure (K/Pa)
+			 md.beta=9.8*10^-8;
+
+			 %mixed layer (ice-water interface) heat capacity (J/kg/K)
+			 md.mixed_layer_capacity=3974;
+
+			 %thermal exchange velocity (ice-water interface) (m/s)
+			 md.thermal_exchange_velocity=1.00*10^-4;
+
+			 %Physical parameters
+
+			 %acceleration due to gravity (m/s^2)
+			 md.g=9.81;
+
+			 %converstion from year to seconds
+			 md.yts=365*24*3600;
+
+			 %drag type (2=elastic)
+			 md.drag_type=2;
+
+			 %Solver parameters
+
+			 %mechanical residue convergence criterion norm(K(uold)uold - F)/norm(F)
+			 md.eps_res=10^-4; %from test233 in nightly runs
+
+			 %relative convergence criterion ((vel(n-1)-vel(n))/vel(n))
+			 md.eps_rel=0.01;
+
+			 %absolute convergence criterion (max(vel(n-1)-vel(n)) (m/year)
+			 md.eps_abs=10;
+
+			 %maximum of non-linear iterations.
+			 md.max_nonlinear_iterations=100;
+
+			 %sparsity
+			 md.sparsity=0.001;
+
+			 %the connectivity is the avergaded number of nodes linked to a
+			 %given node through an edge. This connectivity is used to initially
+			 %allocate memory to the stiffness matrix. A value of 16 seems to
+			 %give a good memory/time ration. This value can be checked in
+			 %trunk/test/Miscellaneous/runme.m
+			 md.connectivity=25;
+
+			 %lowmem??
+			 md.lowmem=0;
+
+			 %coefficient to update the viscosity between each iteration of
+			 %a diagnostic according to the following formula
+			 %viscosity(n)=viscosity(n)+viscosity_overshoot(viscosity(n)-viscosity(n-1))
+			 md.viscosity_overshoot=0;
+
+			 %parameter used to print temporary results (convergence criterion,
+			 %current step,...)
+			 md.verbose=verbose('solution',true,'qmu',true,'control',true);
+
+			 %Stokes
+			 md.stokesreconditioning=10^13;
+			 md.shelf_dampening=0;
+
+			 %Penalties
+
+			 %the penalty offset is the power used to compute the value
+			 %of the penalty as follows
+			 %kappa=max(stiffness matrix)*10^penalty_offset
+			 md.penalty_offset=3;
+
+			 %penalty_melting is the penalty used to keep T<Tpmp
+			 %kappa=penalty_melting
+			 md.penalty_melting=10^7;
+
+			 %in some solutions, it might be needed to stop a run when only
+			 %a few constraints remain unstable. For thermal computation, this
+			 %parameter is often used.
+			 md.penalty_lock=10;
+
+			 %minimum thickness to avoid stiffness singularity, used in
+			 %the parameter file
+			 md.minh=1;
+
+			 %in some cases, it might be needed to stop a run when only
+			 %a few constraints remain unstable. For thermal computation, this
+			 %parameter is often used.
+			 md.min_thermal_constraints=0;
+			 md.min_mechanical_constraints=0;
+
+			 %Transient parameters
+
+			 %time between 2 time steps
+			 md.dt=1/2;
+
+			 %number of time steps = md.ndt / md.dt
+			 md.ndt=10*md.dt;
+
+			 %time adaptation? 
+			 md.time_adapt=0;
+			 md.cfl_coefficient=1/2;
+
+			 %Hydrostatic adjustment
+			 md.hydrostatic_adjustment=AbsoluteEnum;
+			 %the artificial diffusivity is used in prognostic to avoid
+			 %numerical wiggles of the solution.
+			 md.artificial_diffusivity=1;
+
+			 %Discontinuous Galerkin is used in prognostic to avoid
+			 %numerical wiggles of the solution and conserve mass
+			 md.prognostic_DG=0;
+
+			 %minimum thickness change between 2 time steps (m)
+			 md.deltaH=10^-2;
+
+			 %maximum thickness change between 2 time steps (m)
+			 md.DeltaH=50;
+
+			 %minimum temperature change between 2 time steps (K)
+			 md.deltaT=10^-2;
+
+			 %maximum temperature change between 2 time steps (K)
+			 md.DeltaT=1;
+
+			 %When the previous criteria are fulfilled, if the time steps
+			 %can be accelerated as follows
+			 %dt = timeacc * dt
+			 md.timeacc=2;
+
+			 %When the previous criteria are fulfilled, if the time steps
+			 %can be reduced as follows
+			 %dt = timedec * dt
+			 md.timedec=.5;
+
+			 %Solution activated for transient runs. By default we do a
+			 %full analysis: Diagnostic, Prognostic and Thermal
+			 md.isprognostic=1;
+			 md.isdiagnostic=1;
+			 md.isthermal=1;
+
+			 %Control
+
+			 %parameter to be inferred by control methods (only
+			 %drag and B are supported yet)
+			 md.control_type=DragCoefficientEnum();
+
+			 %number of steps in the control methods
+			 md.nsteps=20;
+
+			 %maximum number of iteration in the optimization algorithm for
+			 %each step
+			 md.maxiter=20*ones(md.nsteps,1);
+
+			 %tolerance used by the optimization algorithm
+			 md.tolx=10^-4;
+
+			 %the inversed parameter is updated as follows:
+			 %new_par=old_par + optscal(n)*C*gradient with C in [0 1];
+			 %usually the optscal must be of the order of magnitude of the 
+			 %inversed parameter (10^8 for B, 50 for drag) and can be decreased
+			 %after the first iterations
+			 md.optscal=50*ones(md.nsteps,1);
+
+			 %several responses can be used:
+			 md.cm_responses=SurfaceAbsVelMisfitEnum*ones(md.nsteps,1);
+
+			 %cm_jump is used to speed up control method. When
+			 %misfit(1)/misfit(0) < md.cm_jump, we go directly to
+			 %the next step
+			 md.cm_jump=.7*ones(md.nsteps,1); %30 per cent decrement.
+
+			 %stop control solution at the gradient computation and return it? 
+			 md.cm_gradient=0;
+
+			 %eps_cm is a criteria to stop the control methods.
+			 %if J[n]-J[n-1]/J[n] < criteria, the control run stops
+			 %NaN if not applied
+			 md.eps_cm=NaN; %not activated
+
+			 %minimum velocity to avoid the misfit to be singular
+			 md.epsvel=eps;
+
+			 %averaged velocity used to scale the logarithmic Misfit (000 m/an)
+			 md.meanvel=1000/(365*24*3600);
+
+			 %grounding line migration: 
+			 md.gl_migration=NoneEnum;
+
+			 %How often to save results, default is 1 so save every step
+			 md.output_frequency=1;
+
+			 %Parallelisation parameters
+
+			 %cluster set as none for serial
+			 md.cluster=none;
+
+			 %this option can be activated to load automatically the results
+			 %onto the model after a parallel run by waiting for the lock file
+			 %N minutes that is generated once the solution has converged
+			 %0 to desactivate
+			 md.waitonlock=Inf;
+
+			 %prerun allocation cleanup
+			 md.alloc_cleanup=1;
+
+			 %set petsc options for different analysis
+			 md.petscoptions=petscoptions;
+			 md.petscoptions=addoptions(md.petscoptions,DiagnosticVertAnalysisEnum,mumpsoptions);
+
+
+			 %hydrology:  from Johnson's 2002 thesis, section 3.5.4
+			 md.hydro_n=.02;
+			 md.hydro_CR=2;
+			 md.hydro_p=2;
+			 md.hydro_q=1;
+			 md.hydro_kn=0;
+
+			 %Rheology law: what is the temperature dependence of B with T
+			 %available: None, Paterson and Arrhenius
+			 md.rheology_law=PatersonEnum;
+
+			 %i/o:
+			 md.io_gather=1;
+		 end
+		 %}}}
+		 function md=subsasgn(md,index,val) % {{{1
+
+			 if ~isempty(md.repository),
+				 field=index(1).subs;
+				 if exist(['.' md.repository '.' field],'file'),
+					 if length(index)==1,
+						 %save val in corresponding repository
+						 eval([field '=val;']);
+						 eval(['save .' md.repository '.' field ' ' field]);
+					 else
+						 %load field from file
+						 load(['.' md.repository '.' field],'-mat');
+						 fieldval=eval(field);
+						 eval([field '=builtin(''subsasgn'',fieldval,index(2),val);']);
+						 eval(['save .' md.repository '.' field ' ' field]);
+					 end
+				 else
+					 md=builtin('subsasgn',md,index,val);
+				 end
+			 else
+				 md=builtin('subsasgn',md,index,val);
+			 end
+	 end %}}}
+		 function result=subsref(md,index) % {{{1
+
+			 if length(index)==1,
+				 index1=index(1);
+				 if(strcmp(index1.subs,'mesh')), displaymesh(md);return; end
+				 if(strcmp(index1.subs,'bc')), displaybc(md);return; end
+				 if(strcmp(index1.subs,'mat')), displaymaterials(md);return; end
+				 if(strcmp(index1.subs,'par')), displayparameters(md);return; end
+				 if(strcmp(index1.subs,'exppar')), displayexppar(md);return; end
+				 if(strcmp(index1.subs,'res')), displayresults(md);return; end
+				 if(strcmp(index1.subs,'obs')), displayobservations(md);return; end
+				 if(strcmp(index1.subs,'qmu')), displayqmu(md);return; end
+				 if(strcmp(index1.subs,'flaim')), displayflaim(md);return; end
+				 if(strcmp(index1.subs,'diagnostic')), displaydiagnostic(md);return; end
+				 if(strcmp(index1.subs,'prognostic')), displayprognostic(md);return; end
+				 if(strcmp(index1.subs,'thermal')), displaythermal(md);return; end
+				 if(strcmp(index1.subs,'transient')), displaytransient(md);return; end
+				 if(strcmp(index1.subs,'control')), displaycontrol(md);return; end
+				 if(strcmp(index1.subs,'mesh2grid')), displaymesh2grid(md);return; end
+				 if(strcmp(index1.subs,'parallel')), displayparallel(md);return; end
+
+				 if ~isempty(md.repository),
+					 %load variable needed, if necessary
+					 if exist(['.' md.repository '.' index1.subs],'file'),
+						 structure=load(['.' md.repository '.' index1.subs],'-mat');
+						 eval(['result=structure.' index1.subs ';']);
+					 else
+						 %the file does not exist, just return built in value
+						 result=builtin('subsref',md,index);
+					 end
+				 else
+					 %return built in value
+					 result=builtin('subsref',md,index);
+				 end
+			 else
+				 if ~isempty(md.repository),
+					 if exist(['.' md.repository '.' index(1).subs],'file'),
+						 %load variable needed
+						 variable=load(['.' md.repository '.' index(1).subs],'-mat');
+
+						 %use temporary structure.
+						 result=builtin('subsref',variable,index);
+					 else
+						 result=builtin('subsref',md,index);
+					 end
+				 else
+					 result=builtin('subsref',md,index);
+				 end
+			 end
+		 end %}}}
+	 end
+ end
Index: /issm/trunk/src/m/classes/planet.m
===================================================================
--- /issm/trunk/src/m/classes/planet.m	(revision 8926)
+++ /issm/trunk/src/m/classes/planet.m	(revision 8926)
@@ -0,0 +1,48 @@
+%PLANET class definition
+%
+%   Usage:
+%      md = planet(varargin)
+
+classdef planet < model
+    properties (SetAccess=public) %Planet fields
+		 % {{{1
+		 %Planet specific fields
+		 r=NaN;
+		 theta=NaN;
+		 phi=NaN;
+		 %}}}
+	 end
+	 methods
+		function md=planetmesh(md,varargin) % {{{1
+		%PLANETMESH: build 2d shell mesh
+		%
+		% Usage: md=planetmesh(md,'method','mixed','radius',6378000,'angleresol',1);
+		%        md=planetmesh(md,'method','tria','shape','iso','radius',6378000,'refinement',5);
+		%
+
+		%recover options
+		options=pairoptions(varargin{:});
+
+		method=getfieldvalue(options,'method','mixed');
+		
+		if strcmpi(method,'mixed'),
+			%recover radius and angleresol: 
+			radius=getfieldvalue(options,'radius',6378000); %earth radius as default
+			angleresol=getfieldvalue(options,'angleresol',10); %10 degree resolution
+			
+			%call mixed mesh 
+			md=planetmixedmesh(md,radius,angleresol);
+		else
+			%recover radius, shape and level of refinmenet
+			radius=getfieldvalue(options,'radius',6378000); %earth radius as default
+			refinement=getfieldvalue(options,'refinement',5); %refine 5 times
+			shape=getfieldvalue(options,'shape','ico'); 
+			
+			%call triangular mesh
+			md=planettrimesh(md,shape,radius,refinement);
+		end
+
+		end
+		% }}}
+	 end
+ end
Index: /issm/trunk/src/m/enum/ArtificialDiffusivityEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ArtificialDiffusivityEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/ArtificialDiffusivityEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=ArtificialDiffusivityEnum()
+%ARTIFICIALDIFFUSIVITYENUM - Enum of ArtificialDiffusivity
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=ArtificialDiffusivityEnum()
+
+macro=StringToEnum('ArtificialDiffusivity');
Index: /issm/trunk/src/m/enum/BorderstokesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/BorderstokesEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/BorderstokesEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=BorderstokesEnum()
+%BORDERSTOKESENUM - Enum of Borderstokes
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=BorderstokesEnum()
+
+macro=StringToEnum('Borderstokes');
Index: sm/trunk/src/m/enum/DhDtEnum.m
===================================================================
--- /issm/trunk/src/m/enum/DhDtEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=DhDtEnum()
-%DHDTENUM - Enum of DhDt
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=DhDtEnum()
-
-macro=StringToEnum('DhDt');
Index: /issm/trunk/src/m/enum/DhdtEnum.m
===================================================================
--- /issm/trunk/src/m/enum/DhdtEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/DhdtEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=DhdtEnum()
+%DHDTENUM - Enum of Dhdt
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=DhdtEnum()
+
+macro=StringToEnum('Dhdt');
Index: /issm/trunk/src/m/enum/DiagnosticRefEnum.m
===================================================================
--- /issm/trunk/src/m/enum/DiagnosticRefEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/DiagnosticRefEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=DiagnosticRefEnum()
+%DIAGNOSTICREFENUM - Enum of DiagnosticRef
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=DiagnosticRefEnum()
+
+macro=StringToEnum('DiagnosticRef');
Index: /issm/trunk/src/m/enum/EdgesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/EdgesEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/EdgesEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=EdgesEnum()
+%EDGESENUM - Enum of Edges
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=EdgesEnum()
+
+macro=StringToEnum('Edges');
Index: /issm/trunk/src/m/enum/ElementOnIceSheetEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ElementOnIceSheetEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/ElementOnIceSheetEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=ElementOnIceSheetEnum()
+%ELEMENTONICESHEETENUM - Enum of ElementOnIceSheet
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=ElementOnIceSheetEnum()
+
+macro=StringToEnum('ElementOnIceSheet');
Index: /issm/trunk/src/m/enum/ElementconnectivityEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ElementconnectivityEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/ElementconnectivityEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=ElementconnectivityEnum()
+%ELEMENTCONNECTIVITYENUM - Enum of Elementconnectivity
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=ElementconnectivityEnum()
+
+macro=StringToEnum('Elementconnectivity');
Index: /issm/trunk/src/m/enum/Elements2DEnum.m
===================================================================
--- /issm/trunk/src/m/enum/Elements2DEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/Elements2DEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=Elements2DEnum()
+%ELEMENTS2DENUM - Enum of Elements2D
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=Elements2DEnum()
+
+macro=StringToEnum('Elements2D');
Index: /issm/trunk/src/m/enum/ElementsTypeEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ElementsTypeEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/ElementsTypeEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=ElementsTypeEnum()
+%ELEMENTSTYPEENUM - Enum of ElementsType
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=ElementsTypeEnum()
+
+macro=StringToEnum('ElementsType');
Index: /issm/trunk/src/m/enum/EnumToModelField.m
===================================================================
--- /issm/trunk/src/m/enum/EnumToModelField.m	(revision 8925)
+++ /issm/trunk/src/m/enum/EnumToModelField.m	(revision 8926)
@@ -15,5 +15,5 @@
 		case RheologyBEnum(), string='rheology_B'; return
 		case RheologyBbarEnum(), string='rheology_B'; return
-		case DhDtEnum(), string='dhdt'; return
+		case DhdtEnum(), string='dhdt'; return
 		case VxEnum(), string='vx'; return
 		case VxObsEnum(), string='vx_obs'; return
Index: sm/trunk/src/m/enum/EpsVelEnum.m
===================================================================
--- /issm/trunk/src/m/enum/EpsVelEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=EpsVelEnum()
-%EPSVELENUM - Enum of EpsVel
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=EpsVelEnum()
-
-macro=StringToEnum('EpsVel');
Index: /issm/trunk/src/m/enum/EpsvelEnum.m
===================================================================
--- /issm/trunk/src/m/enum/EpsvelEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/EpsvelEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=EpsvelEnum()
+%EPSVELENUM - Enum of Epsvel
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=EpsvelEnum()
+
+macro=StringToEnum('Epsvel');
Index: /issm/trunk/src/m/enum/GEnum.m
===================================================================
--- /issm/trunk/src/m/enum/GEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/GEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=GEnum()
+%GENUM - Enum of G
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=GEnum()
+
+macro=StringToEnum('G');
Index: sm/trunk/src/m/enum/GeothermalFluxEnum.m
===================================================================
--- /issm/trunk/src/m/enum/GeothermalFluxEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=GeothermalFluxEnum()
-%GEOTHERMALFLUXENUM - Enum of GeothermalFlux
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=GeothermalFluxEnum()
-
-macro=StringToEnum('GeothermalFlux');
Index: /issm/trunk/src/m/enum/GeothermalfluxEnum.m
===================================================================
--- /issm/trunk/src/m/enum/GeothermalfluxEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/GeothermalfluxEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=GeothermalfluxEnum()
+%GEOTHERMALFLUXENUM - Enum of Geothermalflux
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=GeothermalfluxEnum()
+
+macro=StringToEnum('Geothermalflux');
Index: /issm/trunk/src/m/enum/GlMeltingRateEnum.m
===================================================================
--- /issm/trunk/src/m/enum/GlMeltingRateEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/GlMeltingRateEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=GlMeltingRateEnum()
+%GLMELTINGRATEENUM - Enum of GlMeltingRate
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=GlMeltingRateEnum()
+
+macro=StringToEnum('GlMeltingRate');
Index: /issm/trunk/src/m/enum/GlMigrationEnum.m
===================================================================
--- /issm/trunk/src/m/enum/GlMigrationEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/GlMigrationEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=GlMigrationEnum()
+%GLMIGRATIONENUM - Enum of GlMigration
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=GlMigrationEnum()
+
+macro=StringToEnum('GlMigration');
Index: sm/trunk/src/m/enum/HeatCapacityEnum.m
===================================================================
--- /issm/trunk/src/m/enum/HeatCapacityEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=HeatCapacityEnum()
-%HEATCAPACITYENUM - Enum of HeatCapacity
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=HeatCapacityEnum()
-
-macro=StringToEnum('HeatCapacity');
Index: /issm/trunk/src/m/enum/HeatcapacityEnum.m
===================================================================
--- /issm/trunk/src/m/enum/HeatcapacityEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/HeatcapacityEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=HeatcapacityEnum()
+%HEATCAPACITYENUM - Enum of Heatcapacity
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=HeatcapacityEnum()
+
+macro=StringToEnum('Heatcapacity');
Index: /issm/trunk/src/m/enum/HydroCREnum.m
===================================================================
--- /issm/trunk/src/m/enum/HydroCREnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/HydroCREnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=HydroCREnum()
+%HYDROCRENUM - Enum of HydroCR
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=HydroCREnum()
+
+macro=StringToEnum('HydroCR');
Index: /issm/trunk/src/m/enum/HydroKnEnum.m
===================================================================
--- /issm/trunk/src/m/enum/HydroKnEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/HydroKnEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=HydroKnEnum()
+%HYDROKNENUM - Enum of HydroKn
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=HydroKnEnum()
+
+macro=StringToEnum('HydroKn');
Index: /issm/trunk/src/m/enum/HydroNEnum.m
===================================================================
--- /issm/trunk/src/m/enum/HydroNEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/HydroNEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=HydroNEnum()
+%HYDRONENUM - Enum of HydroN
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=HydroNEnum()
+
+macro=StringToEnum('HydroN');
Index: /issm/trunk/src/m/enum/HydroPEnum.m
===================================================================
--- /issm/trunk/src/m/enum/HydroPEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/HydroPEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=HydroPEnum()
+%HYDROPENUM - Enum of HydroP
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=HydroPEnum()
+
+macro=StringToEnum('HydroP');
Index: /issm/trunk/src/m/enum/HydroQEnum.m
===================================================================
--- /issm/trunk/src/m/enum/HydroQEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/HydroQEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=HydroQEnum()
+%HYDROQENUM - Enum of HydroQ
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=HydroQEnum()
+
+macro=StringToEnum('HydroQ');
Index: /issm/trunk/src/m/enum/InputfilenameEnum.m
===================================================================
--- /issm/trunk/src/m/enum/InputfilenameEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/InputfilenameEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=InputfilenameEnum()
+%INPUTFILENAMEENUM - Enum of Inputfilename
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=InputfilenameEnum()
+
+macro=StringToEnum('Inputfilename');
Index: sm/trunk/src/m/enum/IsDiagnosticEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsDiagnosticEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=IsDiagnosticEnum()
-%ISDIAGNOSTICENUM - Enum of IsDiagnostic
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=IsDiagnosticEnum()
-
-macro=StringToEnum('IsDiagnostic');
Index: sm/trunk/src/m/enum/IsHutterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsHutterEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=IsHutterEnum()
-%ISHUTTERENUM - Enum of IsHutter
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=IsHutterEnum()
-
-macro=StringToEnum('IsHutter');
Index: sm/trunk/src/m/enum/IsMacAyealPattynEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsMacAyealPattynEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=IsMacAyealPattynEnum()
-%ISMACAYEALPATTYNENUM - Enum of IsMacAyealPattyn
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=IsMacAyealPattynEnum()
-
-macro=StringToEnum('IsMacAyealPattyn');
Index: sm/trunk/src/m/enum/IsPrognosticEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsPrognosticEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=IsPrognosticEnum()
-%ISPROGNOSTICENUM - Enum of IsPrognostic
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=IsPrognosticEnum()
-
-macro=StringToEnum('IsPrognostic');
Index: sm/trunk/src/m/enum/IsStokesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsStokesEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=IsStokesEnum()
-%ISSTOKESENUM - Enum of IsStokes
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=IsStokesEnum()
-
-macro=StringToEnum('IsStokes');
Index: sm/trunk/src/m/enum/IsThermalEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsThermalEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=IsThermalEnum()
-%ISTHERMALENUM - Enum of IsThermal
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=IsThermalEnum()
-
-macro=StringToEnum('IsThermal');
Index: /issm/trunk/src/m/enum/IsdiagnosticEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsdiagnosticEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/IsdiagnosticEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=IsdiagnosticEnum()
+%ISDIAGNOSTICENUM - Enum of Isdiagnostic
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=IsdiagnosticEnum()
+
+macro=StringToEnum('Isdiagnostic');
Index: /issm/trunk/src/m/enum/IshutterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IshutterEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/IshutterEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=IshutterEnum()
+%ISHUTTERENUM - Enum of Ishutter
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=IshutterEnum()
+
+macro=StringToEnum('Ishutter');
Index: /issm/trunk/src/m/enum/IsmacayealpattynEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsmacayealpattynEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/IsmacayealpattynEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=IsmacayealpattynEnum()
+%ISMACAYEALPATTYNENUM - Enum of Ismacayealpattyn
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=IsmacayealpattynEnum()
+
+macro=StringToEnum('Ismacayealpattyn');
Index: /issm/trunk/src/m/enum/IsprognosticEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsprognosticEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/IsprognosticEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=IsprognosticEnum()
+%ISPROGNOSTICENUM - Enum of Isprognostic
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=IsprognosticEnum()
+
+macro=StringToEnum('Isprognostic');
Index: /issm/trunk/src/m/enum/IsstokesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsstokesEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/IsstokesEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=IsstokesEnum()
+%ISSTOKESENUM - Enum of Isstokes
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=IsstokesEnum()
+
+macro=StringToEnum('Isstokes');
Index: /issm/trunk/src/m/enum/IsthermalEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsthermalEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/IsthermalEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=IsthermalEnum()
+%ISTHERMALENUM - Enum of Isthermal
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=IsthermalEnum()
+
+macro=StringToEnum('Isthermal');
Index: sm/trunk/src/m/enum/LatentHeatEnum.m
===================================================================
--- /issm/trunk/src/m/enum/LatentHeatEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=LatentHeatEnum()
-%LATENTHEATENUM - Enum of LatentHeat
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=LatentHeatEnum()
-
-macro=StringToEnum('LatentHeat');
Index: /issm/trunk/src/m/enum/LatentheatEnum.m
===================================================================
--- /issm/trunk/src/m/enum/LatentheatEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/LatentheatEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=LatentheatEnum()
+%LATENTHEATENUM - Enum of Latentheat
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=LatentheatEnum()
+
+macro=StringToEnum('Latentheat');
Index: /issm/trunk/src/m/enum/LowerelementsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/LowerelementsEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/LowerelementsEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=LowerelementsEnum()
+%LOWERELEMENTSENUM - Enum of Lowerelements
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=LowerelementsEnum()
+
+macro=StringToEnum('Lowerelements');
Index: sm/trunk/src/m/enum/MaxIterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MaxIterEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaxIterEnum()
-%MAXITERENUM - Enum of MaxIter
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=MaxIterEnum()
-
-macro=StringToEnum('MaxIter');
Index: /issm/trunk/src/m/enum/MaxiterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MaxiterEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/MaxiterEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=MaxiterEnum()
+%MAXITERENUM - Enum of Maxiter
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=MaxiterEnum()
+
+macro=StringToEnum('Maxiter');
Index: sm/trunk/src/m/enum/MeanVelEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MeanVelEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MeanVelEnum()
-%MEANVELENUM - Enum of MeanVel
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=MeanVelEnum()
-
-macro=StringToEnum('MeanVel');
Index: /issm/trunk/src/m/enum/MeanvelEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MeanvelEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/MeanvelEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=MeanvelEnum()
+%MEANVELENUM - Enum of Meanvel
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=MeanvelEnum()
+
+macro=StringToEnum('Meanvel');
Index: sm/trunk/src/m/enum/MeltingPointEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MeltingPointEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MeltingPointEnum()
-%MELTINGPOINTENUM - Enum of MeltingPoint
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=MeltingPointEnum()
-
-macro=StringToEnum('MeltingPoint');
Index: /issm/trunk/src/m/enum/MeltingpointEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MeltingpointEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/MeltingpointEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=MeltingpointEnum()
+%MELTINGPOINTENUM - Enum of Meltingpoint
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=MeltingpointEnum()
+
+macro=StringToEnum('Meltingpoint');
Index: sm/trunk/src/m/enum/NStepsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NStepsEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NStepsEnum()
-%NSTEPSENUM - Enum of NSteps
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NStepsEnum()
-
-macro=StringToEnum('NSteps');
Index: /issm/trunk/src/m/enum/NameEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NameEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NameEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NameEnum()
+%NAMEENUM - Enum of Name
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NameEnum()
+
+macro=StringToEnum('Name');
Index: /issm/trunk/src/m/enum/NodeOnHutterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NodeOnHutterEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NodeOnHutterEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NodeOnHutterEnum()
+%NODEONHUTTERENUM - Enum of NodeOnHutter
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NodeOnHutterEnum()
+
+macro=StringToEnum('NodeOnHutter');
Index: /issm/trunk/src/m/enum/NodeOnMacayealEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NodeOnMacayealEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NodeOnMacayealEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NodeOnMacayealEnum()
+%NODEONMACAYEALENUM - Enum of NodeOnMacayeal
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NodeOnMacayealEnum()
+
+macro=StringToEnum('NodeOnMacayeal');
Index: /issm/trunk/src/m/enum/NodeOnPattynEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NodeOnPattynEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NodeOnPattynEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NodeOnPattynEnum()
+%NODEONPATTYNENUM - Enum of NodeOnPattyn
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NodeOnPattynEnum()
+
+macro=StringToEnum('NodeOnPattyn');
Index: /issm/trunk/src/m/enum/NodeOnStokesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NodeOnStokesEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NodeOnStokesEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NodeOnStokesEnum()
+%NODEONSTOKESENUM - Enum of NodeOnStokes
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NodeOnStokesEnum()
+
+macro=StringToEnum('NodeOnStokes');
Index: /issm/trunk/src/m/enum/NodeOnWaterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NodeOnWaterEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NodeOnWaterEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NodeOnWaterEnum()
+%NODEONWATERENUM - Enum of NodeOnWater
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NodeOnWaterEnum()
+
+macro=StringToEnum('NodeOnWater');
Index: /issm/trunk/src/m/enum/NpartEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NpartEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NpartEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NpartEnum()
+%NPARTENUM - Enum of Npart
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NpartEnum()
+
+macro=StringToEnum('Npart');
Index: /issm/trunk/src/m/enum/NstepsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NstepsEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NstepsEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NstepsEnum()
+%NSTEPSENUM - Enum of Nsteps
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NstepsEnum()
+
+macro=StringToEnum('Nsteps');
Index: /issm/trunk/src/m/enum/NumCmResponsesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumCmResponsesEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NumCmResponsesEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NumCmResponsesEnum()
+%NUMCMRESPONSESENUM - Enum of NumCmResponses
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NumCmResponsesEnum()
+
+macro=StringToEnum('NumCmResponses');
Index: /issm/trunk/src/m/enum/NumControlTypeEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumControlTypeEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NumControlTypeEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NumControlTypeEnum()
+%NUMCONTROLTYPEENUM - Enum of NumControlType
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NumControlTypeEnum()
+
+macro=StringToEnum('NumControlType');
Index: /issm/trunk/src/m/enum/NumberOfElements2DEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumberOfElements2DEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NumberOfElements2DEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NumberOfElements2DEnum()
+%NUMBEROFELEMENTS2DENUM - Enum of NumberOfElements2D
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NumberOfElements2DEnum()
+
+macro=StringToEnum('NumberOfElements2D');
Index: /issm/trunk/src/m/enum/NumberOfNodes2DEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumberOfNodes2DEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NumberOfNodes2DEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NumberOfNodes2DEnum()
+%NUMBEROFNODES2DENUM - Enum of NumberOfNodes2D
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NumberOfNodes2DEnum()
+
+macro=StringToEnum('NumberOfNodes2D');
Index: /issm/trunk/src/m/enum/NumberOfResponsesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumberOfResponsesEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NumberOfResponsesEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NumberOfResponsesEnum()
+%NUMBEROFRESPONSESENUM - Enum of NumberOfResponses
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NumberOfResponsesEnum()
+
+macro=StringToEnum('NumberOfResponses');
Index: /issm/trunk/src/m/enum/NumberOfVariablesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumberOfVariablesEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NumberOfVariablesEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NumberOfVariablesEnum()
+%NUMBEROFVARIABLESENUM - Enum of NumberOfVariables
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NumberOfVariablesEnum()
+
+macro=StringToEnum('NumberOfVariables');
Index: /issm/trunk/src/m/enum/NumlayersEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumlayersEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NumlayersEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NumlayersEnum()
+%NUMLAYERSENUM - Enum of Numlayers
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NumlayersEnum()
+
+macro=StringToEnum('Numlayers');
Index: /issm/trunk/src/m/enum/NumresponsedescriptorsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumresponsedescriptorsEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NumresponsedescriptorsEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NumresponsedescriptorsEnum()
+%NUMRESPONSEDESCRIPTORSENUM - Enum of Numresponsedescriptors
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NumresponsedescriptorsEnum()
+
+macro=StringToEnum('Numresponsedescriptors');
Index: /issm/trunk/src/m/enum/NumvariabledescriptorsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumvariabledescriptorsEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/NumvariabledescriptorsEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=NumvariabledescriptorsEnum()
+%NUMVARIABLEDESCRIPTORSENUM - Enum of Numvariabledescriptors
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NumvariabledescriptorsEnum()
+
+macro=StringToEnum('Numvariabledescriptors');
Index: sm/trunk/src/m/enum/OptScalEnum.m
===================================================================
--- /issm/trunk/src/m/enum/OptScalEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=OptScalEnum()
-%OPTSCALENUM - Enum of OptScal
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=OptScalEnum()
-
-macro=StringToEnum('OptScal');
Index: /issm/trunk/src/m/enum/OptscalEnum.m
===================================================================
--- /issm/trunk/src/m/enum/OptscalEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/OptscalEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=OptscalEnum()
+%OPTSCALENUM - Enum of Optscal
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=OptscalEnum()
+
+macro=StringToEnum('Optscal');
Index: sm/trunk/src/m/enum/OutputFileNameEnum.m
===================================================================
--- /issm/trunk/src/m/enum/OutputFileNameEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=OutputFileNameEnum()
-%OUTPUTFILENAMEENUM - Enum of OutputFileName
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=OutputFileNameEnum()
-
-macro=StringToEnum('OutputFileName');
Index: /issm/trunk/src/m/enum/OutputfilenameEnum.m
===================================================================
--- /issm/trunk/src/m/enum/OutputfilenameEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/OutputfilenameEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=OutputfilenameEnum()
+%OUTPUTFILENAMEENUM - Enum of Outputfilename
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=OutputfilenameEnum()
+
+macro=StringToEnum('Outputfilename');
Index: sm/trunk/src/m/enum/ParameterOutputEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ParameterOutputEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=ParameterOutputEnum()
-%PARAMETEROUTPUTENUM - Enum of ParameterOutput
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=ParameterOutputEnum()
-
-macro=StringToEnum('ParameterOutput');
Index: /issm/trunk/src/m/enum/ParameteroutputEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ParameteroutputEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/ParameteroutputEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=ParameteroutputEnum()
+%PARAMETEROUTPUTENUM - Enum of Parameteroutput
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=ParameteroutputEnum()
+
+macro=StringToEnum('Parameteroutput');
Index: /issm/trunk/src/m/enum/PenaltiesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/PenaltiesEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/PenaltiesEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=PenaltiesEnum()
+%PENALTIESENUM - Enum of Penalties
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=PenaltiesEnum()
+
+macro=StringToEnum('Penalties');
Index: /issm/trunk/src/m/enum/PenaltyLockEnum.m
===================================================================
--- /issm/trunk/src/m/enum/PenaltyLockEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/PenaltyLockEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=PenaltyLockEnum()
+%PENALTYLOCKENUM - Enum of PenaltyLock
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=PenaltyLockEnum()
+
+macro=StringToEnum('PenaltyLock');
Index: /issm/trunk/src/m/enum/PressureloadEnum.m
===================================================================
--- /issm/trunk/src/m/enum/PressureloadEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/PressureloadEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=PressureloadEnum()
+%PRESSURELOADENUM - Enum of Pressureload
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=PressureloadEnum()
+
+macro=StringToEnum('Pressureload');
Index: /issm/trunk/src/m/enum/PrognosticDGEnum.m
===================================================================
--- /issm/trunk/src/m/enum/PrognosticDGEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/PrognosticDGEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=PrognosticDGEnum()
+%PROGNOSTICDGENUM - Enum of PrognosticDG
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=PrognosticDGEnum()
+
+macro=StringToEnum('PrognosticDG');
Index: /issm/trunk/src/m/enum/QmuMassFluxNumProfilesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/QmuMassFluxNumProfilesEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/QmuMassFluxNumProfilesEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=QmuMassFluxNumProfilesEnum()
+%QMUMASSFLUXNUMPROFILESENUM - Enum of QmuMassFluxNumProfiles
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=QmuMassFluxNumProfilesEnum()
+
+macro=StringToEnum('QmuMassFluxNumProfiles');
Index: sm/trunk/src/m/enum/ReferenceTemperatureEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ReferenceTemperatureEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=ReferenceTemperatureEnum()
-%REFERENCETEMPERATUREENUM - Enum of ReferenceTemperature
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=ReferenceTemperatureEnum()
-
-macro=StringToEnum('ReferenceTemperature');
Index: /issm/trunk/src/m/enum/ReferencetemperatureEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ReferencetemperatureEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/ReferencetemperatureEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=ReferencetemperatureEnum()
+%REFERENCETEMPERATUREENUM - Enum of Referencetemperature
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=ReferencetemperatureEnum()
+
+macro=StringToEnum('Referencetemperature');
Index: /issm/trunk/src/m/enum/RiftinfoEnum.m
===================================================================
--- /issm/trunk/src/m/enum/RiftinfoEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/RiftinfoEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=RiftinfoEnum()
+%RIFTINFOENUM - Enum of Riftinfo
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=RiftinfoEnum()
+
+macro=StringToEnum('Riftinfo');
Index: /issm/trunk/src/m/enum/SpctemperatureEnum.m
===================================================================
--- /issm/trunk/src/m/enum/SpctemperatureEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/SpctemperatureEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=SpctemperatureEnum()
+%SPCTEMPERATUREENUM - Enum of Spctemperature
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=SpctemperatureEnum()
+
+macro=StringToEnum('Spctemperature');
Index: /issm/trunk/src/m/enum/SpcthicknessEnum.m
===================================================================
--- /issm/trunk/src/m/enum/SpcthicknessEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/SpcthicknessEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=SpcthicknessEnum()
+%SPCTHICKNESSENUM - Enum of Spcthickness
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=SpcthicknessEnum()
+
+macro=StringToEnum('Spcthickness');
Index: /issm/trunk/src/m/enum/SpcvxEnum.m
===================================================================
--- /issm/trunk/src/m/enum/SpcvxEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/SpcvxEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=SpcvxEnum()
+%SPCVXENUM - Enum of Spcvx
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=SpcvxEnum()
+
+macro=StringToEnum('Spcvx');
Index: /issm/trunk/src/m/enum/SpcvyEnum.m
===================================================================
--- /issm/trunk/src/m/enum/SpcvyEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/SpcvyEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=SpcvyEnum()
+%SPCVYENUM - Enum of Spcvy
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=SpcvyEnum()
+
+macro=StringToEnum('Spcvy');
Index: /issm/trunk/src/m/enum/SpcvzEnum.m
===================================================================
--- /issm/trunk/src/m/enum/SpcvzEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/SpcvzEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=SpcvzEnum()
+%SPCVZENUM - Enum of Spcvz
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=SpcvzEnum()
+
+macro=StringToEnum('Spcvz');
Index: /issm/trunk/src/m/enum/SpcwatercolumnEnum.m
===================================================================
--- /issm/trunk/src/m/enum/SpcwatercolumnEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/SpcwatercolumnEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=SpcwatercolumnEnum()
+%SPCWATERCOLUMNENUM - Enum of Spcwatercolumn
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=SpcwatercolumnEnum()
+
+macro=StringToEnum('Spcwatercolumn');
Index: sm/trunk/src/m/enum/StokesReconditioningEnum.m
===================================================================
--- /issm/trunk/src/m/enum/StokesReconditioningEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=StokesReconditioningEnum()
-%STOKESRECONDITIONINGENUM - Enum of StokesReconditioning
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=StokesReconditioningEnum()
-
-macro=StringToEnum('StokesReconditioning');
Index: /issm/trunk/src/m/enum/StokesreconditioningEnum.m
===================================================================
--- /issm/trunk/src/m/enum/StokesreconditioningEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/StokesreconditioningEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=StokesreconditioningEnum()
+%STOKESRECONDITIONINGENUM - Enum of Stokesreconditioning
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=StokesreconditioningEnum()
+
+macro=StringToEnum('Stokesreconditioning');
Index: sm/trunk/src/m/enum/ThermalConductivityEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ThermalConductivityEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=ThermalConductivityEnum()
-%THERMALCONDUCTIVITYENUM - Enum of ThermalConductivity
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=ThermalConductivityEnum()
-
-macro=StringToEnum('ThermalConductivity');
Index: /issm/trunk/src/m/enum/ThermalconductivityEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ThermalconductivityEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/ThermalconductivityEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=ThermalconductivityEnum()
+%THERMALCONDUCTIVITYENUM - Enum of Thermalconductivity
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=ThermalconductivityEnum()
+
+macro=StringToEnum('Thermalconductivity');
Index: sm/trunk/src/m/enum/TolXEnum.m
===================================================================
--- /issm/trunk/src/m/enum/TolXEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=TolXEnum()
-%TOLXENUM - Enum of TolX
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=TolXEnum()
-
-macro=StringToEnum('TolX');
Index: /issm/trunk/src/m/enum/TolxEnum.m
===================================================================
--- /issm/trunk/src/m/enum/TolxEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/TolxEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=TolxEnum()
+%TOLXENUM - Enum of Tolx
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=TolxEnum()
+
+macro=StringToEnum('Tolx');
Index: /issm/trunk/src/m/enum/UpperelementsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/UpperelementsEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/UpperelementsEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=UpperelementsEnum()
+%UPPERELEMENTSENUM - Enum of Upperelements
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=UpperelementsEnum()
+
+macro=StringToEnum('Upperelements');
Index: /issm/trunk/src/m/enum/VerboseBinaryEnum.m
===================================================================
--- /issm/trunk/src/m/enum/VerboseBinaryEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/VerboseBinaryEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=VerboseBinaryEnum()
+%VERBOSEBINARYENUM - Enum of VerboseBinary
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=VerboseBinaryEnum()
+
+macro=StringToEnum('VerboseBinary');
Index: /issm/trunk/src/m/enum/VerticesTypeEnum.m
===================================================================
--- /issm/trunk/src/m/enum/VerticesTypeEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/VerticesTypeEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=VerticesTypeEnum()
+%VERTICESTYPEENUM - Enum of VerticesType
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=VerticesTypeEnum()
+
+macro=StringToEnum('VerticesType');
Index: sm/trunk/src/m/enum/WaitOnLockEnum.m
===================================================================
--- /issm/trunk/src/m/enum/WaitOnLockEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=WaitOnLockEnum()
-%WAITONLOCKENUM - Enum of WaitOnLock
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=WaitOnLockEnum()
-
-macro=StringToEnum('WaitOnLock');
Index: /issm/trunk/src/m/enum/WaitonlockEnum.m
===================================================================
--- /issm/trunk/src/m/enum/WaitonlockEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/WaitonlockEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=WaitonlockEnum()
+%WAITONLOCKENUM - Enum of Waitonlock
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=WaitonlockEnum()
+
+macro=StringToEnum('Waitonlock');
Index: sm/trunk/src/m/enum/WaterColumnEnum.m
===================================================================
--- /issm/trunk/src/m/enum/WaterColumnEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=WaterColumnEnum()
-%WATERCOLUMNENUM - Enum of WaterColumn
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=WaterColumnEnum()
-
-macro=StringToEnum('WaterColumn');
Index: sm/trunk/src/m/enum/WaterFractionEnum.m
===================================================================
--- /issm/trunk/src/m/enum/WaterFractionEnum.m	(revision 8925)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=WaterFractionEnum()
-%WATERFRACTIONENUM - Enum of WaterFraction
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=WaterFractionEnum()
-
-macro=StringToEnum('WaterFraction');
Index: /issm/trunk/src/m/enum/WatercolumnEnum.m
===================================================================
--- /issm/trunk/src/m/enum/WatercolumnEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/WatercolumnEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=WatercolumnEnum()
+%WATERCOLUMNENUM - Enum of Watercolumn
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=WatercolumnEnum()
+
+macro=StringToEnum('Watercolumn');
Index: /issm/trunk/src/m/enum/WaterfractionEnum.m
===================================================================
--- /issm/trunk/src/m/enum/WaterfractionEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/WaterfractionEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=WaterfractionEnum()
+%WATERFRACTIONENUM - Enum of Waterfraction
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=WaterfractionEnum()
+
+macro=StringToEnum('Waterfraction');
Index: /issm/trunk/src/m/enum/XEnum.m
===================================================================
--- /issm/trunk/src/m/enum/XEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/XEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=XEnum()
+%XENUM - Enum of X
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=XEnum()
+
+macro=StringToEnum('X');
Index: /issm/trunk/src/m/enum/YEnum.m
===================================================================
--- /issm/trunk/src/m/enum/YEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/YEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=YEnum()
+%YENUM - Enum of Y
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=YEnum()
+
+macro=StringToEnum('Y');
Index: /issm/trunk/src/m/enum/ZEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ZEnum.m	(revision 8926)
+++ /issm/trunk/src/m/enum/ZEnum.m	(revision 8926)
@@ -0,0 +1,11 @@
+function macro=ZEnum()
+%ZENUM - Enum of Z
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=ZEnum()
+
+macro=StringToEnum('Z');
Index: /issm/trunk/src/m/model/WriteData.m
===================================================================
--- /issm/trunk/src/m/model/WriteData.m	(revision 8925)
+++ /issm/trunk/src/m/model/WriteData.m	(revision 8926)
@@ -1,7 +1,9 @@
-function WriteData(fid,data,data_type,name)
+function WriteData(fid,data,data_type,enum)
 %WRITEDATA - ...
 %
 %   Usage:
-%      WriteData(fid,data,data_type)
+%      WriteData(fid,data,data_type,enum)
+%
+%   Eg: WriteData(fid,md.elementoniceshelf,'Mat',ElementOnIceShelfEnum);
 
 if issparse(data),
@@ -10,6 +12,5 @@
 
 %Ok! put the length of the name, and the "name" string first!
-fwrite(fid,length(name),'int'); 
-fwrite(fid,name,'char'); 
+fwrite(fid,enum,'int'); 
 
 if strcmpi(data_type,'String'),
@@ -46,4 +47,28 @@
 	%now write double
 	fwrite(fid,data,'double'); 
+elseif strcmpi(data_type,'StringArray'),
+
+	%first get length of string array: 
+	num=length(data);
+
+	%now get length of record: 
+	recordlength=4; %for length of array
+	for i=1:num,
+		string=data{i};
+		recordlength=recordlength+4+length(string); %for each string
+	end
+
+	%write length of record
+	fwrite(fid,recordlength,'int'); 
+
+	%now write length of string array
+	fwrite(fid,num,'int'); 
+	
+	%now write the strings
+	for i=1:num,
+		string=data{i};
+		fwrite(fid,length(string),'int'); 
+		fwrite(fid,string,'char'); 
+	end
 else 
 	error('WriteData error message: data type not supported yet!');
Index: /issm/trunk/src/m/model/ismodelselfconsistent.m
===================================================================
--- /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 8925)
+++ /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 8926)
@@ -165,9 +165,4 @@
 if ~ismember(md.rheology_law,[NoneEnum PatersonEnum ArrheniusEnum]),
 	message(['model not consistent: model ' md.name ' rheology_law field should be NoneEnum, PatersonEnum or ArrheniusEnum']);
-end
-%}}}
-%PARAMETEROUTPUT {{{1
-if md.numoutput~=length(md.parameteroutput),
-	message('model not consistent: numoutput should be the same size as parameteroutput');
 end
 %}}}
Index: /issm/trunk/src/m/model/marshall.m
===================================================================
--- /issm/trunk/src/m/model/marshall.m	(revision 8925)
+++ /issm/trunk/src/m/model/marshall.m	(revision 8926)
@@ -22,235 +22,16 @@
 end
 
-WriteData(fid,md.dim,'Integer','dim');
-WriteData(fid,md.numberofnodes,'Integer','numberofnodes');
-WriteData(fid,md.numberofelements,'Integer','numberofelements');
-WriteData(fid,md.x,'Mat','x');
-WriteData(fid,md.y,'Mat','y');
-WriteData(fid,md.z,'Mat','z');
-WriteData(fid,md.elements,'Mat','elements');
-WriteData(fid,md.elementconnectivity,'Mat','elementconnectivity');
-WriteData(fid,md.elements_type,'Mat','elements_type');
-WriteData(fid,md.vertices_type,'Mat','vertices_type');
-WriteData(fid,md.nodeonhutter,'Mat','nodeonhutter');
-WriteData(fid,md.nodeonmacayeal,'Mat','nodeonmacayeal');
-if md.dim==3,
-	WriteData(fid,md.numberofelements2d,'Integer','numberofelements2d');
-	WriteData(fid,md.numberofnodes2d,'Integer','numberofnodes2d');
-	WriteData(fid,md.elements2d,'Mat','elements2d');
-	WriteData(fid,md.numlayers,'Integer','numlayers');
-	WriteData(fid,md.nodeonpattyn,'Mat','nodeonpattyn');
-end
-WriteData(fid,md.upperelements,'Mat','upperelements');
-WriteData(fid,md.lowerelements,'Mat','lowerelements');
-WriteData(fid,md.elementonbed,'Mat','elementonbed');
-WriteData(fid,md.elementonsurface,'Mat','elementonsurface');
-WriteData(fid,md.nodeonbed,'Mat','nodeonbed');
-WriteData(fid,md.nodeonsurface,'Mat','nodeonsurface');
-WriteData(fid,md.nodeonstokes,'Mat','nodeonstokes');
-WriteData(fid,md.borderstokes,'Mat','borderstokes');
-
-WriteData(fid,md.thickness,'Mat','thickness');
-WriteData(fid,md.thickness_coeff,'Mat','thickness_coeff');
-WriteData(fid,md.surface,'Mat','surface');
-WriteData(fid,md.bed,'Mat','bed');
-
-WriteData(fid,md.vx_obs,'Mat','vx_obs');
-WriteData(fid,md.vy_obs,'Mat','vy_obs');
-WriteData(fid,md.thickness_obs,'Mat','thickness_obs');
-
-WriteData(fid,md.vx,'Mat','vx');
-WriteData(fid,md.vy,'Mat','vy');
-WriteData(fid,md.vz,'Mat','vz');
-WriteData(fid,md.pressure,'Mat','pressure');
-WriteData(fid,md.temperature,'Mat','temperature');
-WriteData(fid,md.waterfraction,'Mat','waterfraction');
-
-WriteData(fid,md.drag_type,'Integer','drag_type');
-WriteData(fid,md.drag_coefficient,'Mat','drag_coefficient');
-WriteData(fid,md.drag_p,'Mat','drag_p');
-WriteData(fid,md.drag_q,'Mat','drag_q');
-
-WriteData(fid,md.elementoniceshelf,'Mat','elementoniceshelf');
-WriteData(fid,md.elementonwater,'Mat','elementonwater');
-WriteData(fid,md.nodeonicesheet,'Mat','nodeonicesheet');
-WriteData(fid,md.nodeoniceshelf,'Mat','nodeoniceshelf');
-WriteData(fid,md.nodeonwater,'Mat','nodeonwater');
-
-WriteData(fid,md.spcvx,'Mat','spcvx');
-WriteData(fid,md.spcvy,'Mat','spcvy');
-WriteData(fid,md.spcvz,'Mat','spcvz');
-WriteData(fid,md.spctemperature,'Mat','spctemperature');
-WriteData(fid,md.spcthickness,'Mat','spcthickness');
-WriteData(fid,md.spcwatercolumn,'Mat','spcwatercolumn');
-WriteData(fid,md.diagnostic_ref,'Mat','diagnostic_ref');
-
-WriteData(fid,md.pressureload,'Mat','pressureload');
-WriteData(fid,md.edges,'Mat','edges');
-
-WriteData(fid,md.geothermalflux,'Mat','geothermalflux');
-WriteData(fid,md.surface_accumulation_rate,'Mat','surface_accumulation_rate');
-WriteData(fid,md.surface_ablation_rate,'Mat','surface_ablation_rate');
-WriteData(fid,md.surface_mass_balance,'Mat','surface_mass_balance');
-WriteData(fid,md.gl_melting_rate,'Scalar','gl_melting_rate');
-WriteData(fid,md.basal_melting_rate,'Mat','basal_melting_rate');
-WriteData(fid,md.basal_melting_rate_correction_apply,'Integer','basal_melting_rate_correction_apply');
-
-%deal with forcings
-if ~isempty(md.forcings),
-	forcingnames=fieldnames(md.forcings);
-	numforcings=length(forcingnames);
-	forcingtypes=zeros(numforcings,1);
-	for i=1:numforcings,
-		switch (forcingnames{i})
-			case 'surface_accumulation_rate'
-				forcingtypes(i)=SurfaceAccumulationRateEnum;
-			case 'surface_ablation_rate'
-				forcingtypes(i)=SurfaceAblationRateEnum;
-			case 'surface_mass_balance'
-				forcingtypes(i)=SurfaceMassBalanceEnum;
-			case 'basal_melting_rate'
-				forcingtypes(i)=BasalMeltingRateEnum;
-			otherwise
-				error(['forcing ' forcingnames{i} ' not supported yet']);
-		end
-	end
-	WriteData(fid,numforcings,'Integer','numforcings');
-	WriteData(fid,forcingtypes,'Mat','forcingtypes');
-
-	for i=1:numforcings,
-		forcing=md.forcings.(forcingnames{i});
-		forcingname=EnumToString(forcingtypes(i));
-
-		WriteData(fid,size(forcing,2),'Integer',['forcing_' forcingname '_num_time_steps']);
-		WriteData(fid,forcing(end,:),'Mat',['forcing_' forcingname '_time_steps']);
-		for j=1:size(forcing,2),
-			WriteData(fid,forcing(1:end-1,j),'Mat',['forcing_' forcingname '_' num2str(j)]);
-		end
-	end
-else
-	WriteData(fid,0,'Integer','numforcings');
-end
-
-if md.basal_melting_rate_correction_apply,
-	WriteData(fid,md.basal_melting_rate_correction,'Mat','basal_melting_rate_correction');
-end
-WriteData(fid,md.dhdt,'Mat','dhdt');
-WriteData(fid,md.watercolumn,'Mat','watercolumn');
-
-%Transient
-WriteData(fid,md.isdiagnostic,'Integer','isdiagnostic');
-WriteData(fid,md.isprognostic,'Integer','isprognostic');
-WriteData(fid,md.isthermal,'Integer','isthermal');
-
-%Get materials
-WriteData(fid,md.rho_water,'Scalar','rho_water');
-WriteData(fid,md.rho_ice,'Scalar','rho_ice');
-WriteData(fid,md.g,'Scalar','g');
-WriteData(fid,md.rheology_B,'Mat','rheology_B');
-WriteData(fid,md.rheology_n,'Mat','rheology_n');
-WriteData(fid,md.rheology_law,'Integer','rheology_law');
-
-%Control methods
-WriteData(fid,md.control_analysis,'Integer','control_analysis');
-WriteData(fid,numel(md.control_type),'Integer','num_control_type');
-WriteData(fid,size(md.cm_responses,2),'Integer','num_cm_responses');
-WriteData(fid,md.control_type,'Mat','control_type');
-
-%Write solution parameters
-WriteData(fid,md.cm_responses,'Mat','cm_responses');
-WriteData(fid,md.weights,'Mat','weights');
-WriteData(fid,md.cm_jump,'Mat','cm_jump');
-WriteData(fid,md.yts,'Scalar','yts');
-WriteData(fid,md.meanvel,'Scalar','meanvel');
-WriteData(fid,md.epsvel,'Scalar','epsvel');
-WriteData(fid,VerboseToBinary(md.verbose),'Integer','verbose_binary');
-WriteData(fid,md.output_frequency,'Integer','output_frequency');
-WriteData(fid,md.artificial_diffusivity,'Integer','artificial_diffusivity');
-WriteData(fid,md.prognostic_DG,'Integer','prognostic_DG');
-WriteData(fid,md.nsteps,'Integer','nsteps');
-WriteData(fid,md.eps_cm,'Scalar','eps_cm');
-WriteData(fid,md.tolx,'Scalar','tolx');
-WriteData(fid,md.maxiter,'Mat','maxiter');
-WriteData(fid,md.cm_min,'Mat','cm_min');
-WriteData(fid,md.cm_max,'Mat','cm_max');
-WriteData(fid,md.cm_gradient,'Integer','cm_gradient');
-WriteData(fid,md.eps_res,'Scalar','eps_res');
-WriteData(fid,md.eps_rel,'Scalar','eps_rel');
-WriteData(fid,md.eps_abs,'Scalar','eps_abs');
-WriteData(fid,md.max_nonlinear_iterations,'Scalar','max_nonlinear_iterations');
-WriteData(fid,md.dt,'Scalar','dt');
-WriteData(fid,md.ndt,'Scalar','ndt');
-WriteData(fid,md.time_adapt,'Integer','time_adapt');
-WriteData(fid,md.cfl_coefficient,'Scalar','cfl_coefficient');
-WriteData(fid,md.hydrostatic_adjustment,'Integer','hydrostatic_adjustment');
-WriteData(fid,md.penalty_offset,'Scalar','penalty_offset');
-WriteData(fid,md.penalty_melting,'Scalar','penalty_melting');
-WriteData(fid,md.penalty_lock,'Integer','penalty_lock');
-WriteData(fid,md.sparsity,'Scalar','sparsity');
-WriteData(fid,md.connectivity,'Integer','connectivity');
-WriteData(fid,md.lowmem,'Integer','lowmem');
-WriteData(fid,md.optscal,'Mat','optscal');
-WriteData(fid,md.viscosity_overshoot,'Scalar','viscosity_overshoot');
-WriteData(fid,md.stokesreconditioning,'Scalar','stokesreconditioning');
-WriteData(fid,md.shelf_dampening,'Integer','shelf_dampening');
-WriteData(fid,md.waitonlock,'Scalar','waitonlock');
-
-%Thermal parameters
-WriteData(fid,md.beta,'Scalar','beta');
-WriteData(fid,md.meltingpoint,'Scalar','meltingpoint');
-WriteData(fid,md.referencetemperature,'Scalar','referencetemperature');
-WriteData(fid,md.latentheat,'Scalar','latentheat');
-WriteData(fid,md.heatcapacity,'Scalar','heatcapacity');
-WriteData(fid,md.thermalconductivity,'Scalar','thermalconductivity');
-WriteData(fid,md.min_thermal_constraints,'Integer','min_thermal_constraints');
-WriteData(fid,md.min_mechanical_constraints,'Integer','min_mechanical_constraints');
-WriteData(fid,md.mixed_layer_capacity,'Scalar','mixed_layer_capacity');
-WriteData(fid,md.thermal_exchange_velocity,'Scalar','thermal_exchange_velocity');
-WriteData(fid,md.stabilize_constraints,'Integer','stabilize_constraints');
-
-%Hydrology parameters
-WriteData(fid,md.hydro_kn,'Scalar','hydro_kn');
-WriteData(fid,md.hydro_p,'Scalar','hydro_p');
-WriteData(fid,md.hydro_q,'Scalar','hydro_q');
-WriteData(fid,md.hydro_CR,'Scalar','hydro_CR');
-WriteData(fid,md.hydro_n,'Scalar','hydro_n');
-
-%elements type
-WriteData(fid,md.ishutter,'Integer','ishutter');
-WriteData(fid,md.ismacayealpattyn,'Integer','ismacayealpattyn');
-WriteData(fid,md.isstokes,'Integer','isstokes');
-
-%grounding line migration: 
-WriteData(fid,md.gl_migration,'Integer','gl_migration');
-if(md.gl_migration~=NoneEnum),
-	WriteData(fid,md.bathymetry,'Mat','bathymetry');
-end
-
-%Rifts
-WriteData(fid,md.riftinfo,'Mat','riftinfo');
-
-%parameter output.
-md.numoutput=length(md.parameteroutput);
-WriteData(fid,md.numoutput,'Integer','numoutput');
-if(md.numoutput),
-	for i=1:md.numoutput,
-		WriteData(fid,md.parameteroutput{i},'String',['parameteroutput_' num2str(i-1)]);
+%automatically marshall model md, using template information available from an empty model class.
+template=struct(model(0));
+fields=fieldnames(template);
+for i=1:length(fields),
+	field=fields{i};
+	marshall=template.(field){2};
+	if marshall,
+		enum=BuildEnum(field);
+		type=template.(field){3};
+		WriteData(fid,md.(field),type,enum);
 	end
 end
-
-%Qmu: the rest will be handle by qmumarshall
-WriteData(fid,md.qmu_analysis,'Integer','qmu_analysis');
-WriteData(fid,md.name,'String','name');
-
-%Get penalties
-WriteData(fid,md.penalties,'Mat','penalties');
-
-%input and output file names
-WriteData(fid,md.inputfilename,'String','inputfilename');
-WriteData(fid,md.outputfilename,'String','outputfilename');
-
-%i/o: 
-WriteData(fid,md.io_gather,'Integer','io_gather');
-
 
 %close file
Index: /issm/trunk/src/m/model/presolve.m
===================================================================
--- /issm/trunk/src/m/model/presolve.m	(revision 8925)
+++ /issm/trunk/src/m/model/presolve.m	(revision 8926)
@@ -36,2 +36,8 @@
 
 
+%resolve some fields at solution time
+md.verbose_binary=VerboseToBinary(md.verbose);
+
+%Control methods
+md.num_control_type=numel(md.control_type);
+md.num_cm_responses=size(md.cm_responses,2);
Index: /issm/trunk/src/m/solutions/diagnostic_core.m
===================================================================
--- /issm/trunk/src/m/solutions/diagnostic_core.m	(revision 8925)
+++ /issm/trunk/src/m/solutions/diagnostic_core.m	(revision 8926)
@@ -12,7 +12,7 @@
 	%recover parameters common to all solutions
 	dim=femmodel.parameters.Dim;
-	ishutter=femmodel.parameters.IsHutter;
-	ismacayealpattyn=femmodel.parameters.IsMacAyealPattyn;
-	isstokes=femmodel.parameters.IsStokes;
+	ishutter=femmodel.parameters.Ishutter;
+	ismacayealpattyn=femmodel.parameters.Ismacayealpattyn;
+	isstokes=femmodel.parameters.Isstokes;
 	qmu_analysis=femmodel.parameters.QmuAnalysis;
 	control_analysis=femmodel.parameters.ControlAnalysis;
Index: /issm/trunk/src/m/solutions/transient_core.m
===================================================================
--- /issm/trunk/src/m/solutions/transient_core.m	(revision 8925)
+++ /issm/trunk/src/m/solutions/transient_core.m	(revision 8926)
@@ -14,7 +14,7 @@
 	output_frequency=femmodel.parameters.OutputFrequency;
 	time_adapt=femmodel.parameters.TimeAdapt;
-	isdiagnostic=femmodel.parameters.IsDiagnostic;
-	isprognostic=femmodel.parameters.IsPrognostic;
-	isthermal=femmodel.parameters.IsThermal;
+	isdiagnostic=femmodel.parameters.Isdiagnostic;
+	isprognostic=femmodel.parameters.Isprognostic;
+	isthermal=femmodel.parameters.Isthermal;
 
 	%Initialize
