Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 3922)
+++ /issm/trunk/src/c/Makefile.am	(revision 3923)
@@ -919,36 +919,36 @@
 bin_PROGRAMS = 
 else 
-bin_PROGRAMS = diagnostic.exe thermal.exe prognostic.exe prognostic2.exe balancedthickness.exe balancedthickness2.exe balancedvelocities.exe transient.exe steadystate.exe slopecompute.exe
+bin_PROGRAMS = DiagnosticAnalysis.exe ThermalAnalysis.exe PrognosticAnalysis.exe Prognostic2Analysis.exe BalancedthicknessAnalysis.exe Balancedthickness2Analysis.exe BalancedvelocitiesAnalysis.exe TransientAnalysis.exe SteadystateAnalysis.exe SlopecomputeAnalysis.exe
 endif
 
 LDADD =    ./libpISSM.a $(PETSCLIB)    $(FLIBS)  $(PLAPACKLIB)  $(MUMPSLIB) $(SCALAPACKLIB)  $(BLACSLIB)  $(DAKOTALIB) $(METISLIB) $(BLASLAPACKLIB)  $(MKLLIB) $(MPILIB) $(MATHLIB) $(FORTRANLIB) $(GRAPHICSLIB) libOverload.a
 
-diagnostic_exe_SOURCES = solutions/diagnostic.cpp
-diagnostic_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-steadystate_exe_SOURCES = solutions/steadystate.cpp
-steadystate_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-thermal_exe_SOURCES = solutions/thermal.cpp
-thermal_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-prognostic_exe_SOURCES = solutions/prognostic.cpp
-prognostic_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-prognostic2_exe_SOURCES = solutions/prognostic2.cpp
-prognostic2_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-balancedthickness_exe_SOURCES = solutions/balancedthickness.cpp
-balancedthickness_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-balancedthickness2_exe_SOURCES = solutions/balancedthickness2.cpp
-balancedthickness2_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-balancedvelocities_exe_SOURCES = solutions/balancedvelocities.cpp
-balancedvelocities_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-slopecompute_exe_SOURCES = solutions/slopecompute.cpp
-slopecompute_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-transient_exe_SOURCES = solutions/transient.cpp
-transient_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+DiagnosticAnalysis_exe_SOURCES = solutions/diagnostic.cpp
+DiagnosticAnalysis_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+
+SteadystateAnalysis_exe_SOURCES = solutions/steadystate.cpp
+SteadystateAnalysis_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+
+ThermalAnalysis_exe_SOURCES = solutions/thermal.cpp
+ThermalAnalysis_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+
+PrognosticAnalysis_exe_SOURCES = solutions/prognostic.cpp
+PrognosticAnalysis_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+
+Prognostic2Analysis_exe_SOURCES = solutions/prognostic2.cpp
+Prognostic2Analysis_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+
+BalancedthicknessAnalysis_exe_SOURCES = solutions/balancedthickness.cpp
+BalancedthicknessAnalysis_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+
+Balancedthickness2Analysis_exe_SOURCES = solutions/balancedthickness2.cpp
+Balancedthickness2Analysis_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+
+BalancedvelocitiesAnalysis_exe_SOURCES = solutions/balancedvelocities.cpp
+BalancedvelocitiesAnalysis_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+
+SlopecomputeAnalysis_exe_SOURCES = solutions/slopecompute.cpp
+SlopecomputeAnalysis_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+
+TransientAnalysis_exe_SOURCES = solutions/transient.cpp
+TransientAnalysis_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
Index: /issm/trunk/src/m/classes/public/graddetection.m
===================================================================
--- /issm/trunk/src/m/classes/public/graddetection.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/graddetection.m	(revision 3923)
@@ -8,11 +8,11 @@
 
 %solve first batch of control methods, with given settings.
-md2=solve(md2,'analysis_type','diagnostic');
+md2=solve(md2,'analysis_type','DiagnosticAnalysis');
 
 %record final optimized parameter. 
-parameter1=md2.results.diagnostic.parameter;
+parameter1=md2.results.DiagnosticAnalysis.parameter;
 
 %plug optimized parameter in model. 
-md2.(md2.results.diagnostic.control_type)=parameter1;
+md2.(md2.results.DiagnosticAnalysis.control_type)=parameter1;
 
 %put nsteps to 1: 
@@ -24,8 +24,8 @@
 
 %rerun control method with optimized parameter, only for 1 more step.
-md2=solve(md2,'analysis_type','diagnostic');
+md2=solve(md2,'analysis_type','DiagnosticAnalysis');
 
 %get optimized parameter after 1 more step. 
-parameter2=md2.results.diagnostic.parameter;
+parameter2=md2.results.DiagnosticAnalysis.parameter;
 
 %return relative  difference between nsteps+1 and nsteps;
Index: /issm/trunk/src/m/classes/public/isresultconsistent.m
===================================================================
--- /issm/trunk/src/m/classes/public/isresultconsistent.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/isresultconsistent.m	(revision 3923)
@@ -29,9 +29,9 @@
 
 	if strcmpi(md.type,'3d')
-		fields1={'results.diagnostic.vx','results.diagnostic.vy','results.diagnostic.vz','results.diagnostic.vel'};
-		fields2={'results.diagnostic.vel'};
+		fields1={'results.DiagnosticAnalysis.vx','results.DiagnosticAnalysis.vy','results.DiagnosticAnalysis.vz','results.DiagnosticAnalysis.vel'};
+		fields2={'results.DiagnosticAnalysis.vel'};
 	else
-		fields1={'results.diagnostic.vx','results.diagnostic.vy','results.diagnostic.vel'};
-		fields2={'results.diagnostic.vel'};
+		fields1={'results.DiagnosticAnalysis.vx','results.DiagnosticAnalysis.vy','results.DiagnosticAnalysis.vel'};
+		fields2={'results.DiagnosticAnalysis.vel'};
 	end
 
@@ -62,6 +62,6 @@
 
 	if ~md.cm_gradient,
-		fields1={'results.diagnostic.vx','results.diagnostic.vy','results.diagnostic.vel','results.diagnostic.parameter'};
-		fields2={'results.diagnostic.vel','results.diagnostic.J'};
+		fields1={'results.DiagnosticAnalysis.vx','results.DiagnosticAnalysis.vy','results.DiagnosticAnalysis.vel','results.DiagnosticAnalysis.parameter'};
+		fields2={'results.DiagnosticAnalysis.vel','results.DiagnosticAnalysis.J'};
 
 		%check size
@@ -87,5 +87,5 @@
 		%check inversed parameter
 		if ~isnan(md.cm_max),
-			if any(md.results.diagnostic.parameter>md.cm_max)
+			if any(md.results.DiagnosticAnalysis.parameter>md.cm_max)
 				disp(['''control'' result not consistent: inverse parameter is greater than ' num2str(md.cm_max)]);
 				bool=0; return; 
@@ -93,5 +93,5 @@
 		end
 		if ~isnan(md.cm_min),
-			if any(md.results.diagnostic.parameter<md.cm_min)
+			if any(md.results.DiagnosticAnalysis.parameter<md.cm_min)
 				disp(['''control'' result not consistent: inverse parameter is smaller than ' num2str(md.cm_min)]);
 				bool=0; return; 
@@ -99,5 +99,5 @@
 		end
 	else
-		fields={'results.diagnostic.gradient'};
+		fields={'results.DiagnosticAnalysis.gradient'};
 		%check size
 		if ~testsize(md,fields,md.numberofgrids),
@@ -120,8 +120,8 @@
 if analysis_type==ThermalAnalysisEnum(),
 
-	for iter=1:length(md.results.thermal)
-
-		fields1={['results.thermal(' num2str(iter) ').temperature'],['results.thermal(' num2str(iter) ').melting']};
-		fields2={['results.thermal(' num2str(iter) ').temperature']};
+	for iter=1:length(md.results.ThermalAnalysis)
+
+		fields1={['results.ThermalAnalysis(' num2str(iter) ').temperature'],['results.ThermalAnalysis(' num2str(iter) ').melting']};
+		fields2={['results.ThermalAnalysis(' num2str(iter) ').temperature']};
 
 		%check size
@@ -146,5 +146,5 @@
 
 		%check melting (<=0 via penalties)
-		if any(abs(md.results.thermal(iter).melting(md.numberofgrids2d+1:end))>tolerance)
+		if any(abs(md.results.ThermalAnalysis(iter).melting(md.numberofgrids2d+1:end))>tolerance)
 			disp(['''thermal'' result not consistent: increase penalty_melting (negative melting)']);
 			bool=0; return; 
@@ -156,20 +156,20 @@
 if analysis_type==TransientAnalysisEnum(),
 
-	for iter=1:length(md.results.transient)
+	for iter=1:length(md.results.TransientAnalysis)
 
 		if strcmpi(md.type,'3d'),
-			fields1={['results.transient(' num2str(iter) ').vx'],['results.transient(' num2str(iter) ').vy'],...
-				['results.transient(' num2str(iter) ').vz'],['results.transient(' num2str(iter) ').vel'],...
-				['results.transient(' num2str(iter) ').bed'],['results.transient(' num2str(iter) ').surface'],...
-				['results.transient(' num2str(iter) ').thickness'],...
-				['results.transient(' num2str(iter) ').temperature'],['results.transient(' num2str(iter) ').melting']};
-			fields2={['results.transient(' num2str(iter) ').vel'],['results.transient(' num2str(iter) ').thickness'],...
-				['results.transient(' num2str(iter) ').temperature']};
+			fields1={['results.TransientAnalysis(' num2str(iter) ').vx'],['results.TransientAnalysis(' num2str(iter) ').vy'],...
+				['results.TransientAnalysis(' num2str(iter) ').vz'],['results.TransientAnalysis(' num2str(iter) ').vel'],...
+				['results.TransientAnalysis(' num2str(iter) ').bed'],['results.TransientAnalysis(' num2str(iter) ').surface'],...
+				['results.TransientAnalysis(' num2str(iter) ').thickness'],...
+				['results.TransientAnalysis(' num2str(iter) ').temperature'],['results.TransientAnalysis(' num2str(iter) ').melting']};
+			fields2={['results.TransientAnalysis(' num2str(iter) ').vel'],['results.TransientAnalysis(' num2str(iter) ').thickness'],...
+				['results.TransientAnalysis(' num2str(iter) ').temperature']};
 		else
-			fields1={['results.transient(' num2str(iter) ').vx'],['results.transient(' num2str(iter) ').vy'],...
-				['results.transient(' num2str(iter) ').vel'],...
-				['results.transient(' num2str(iter) ').bed'],['results.transient(' num2str(iter) ').surface'],...
-				['results.transient(' num2str(iter) ').thickness']};
-			fields2={['results.transient(' num2str(iter) ').vel'],['results.transient(' num2str(iter) ').thickness']};
+			fields1={['results.TransientAnalysis(' num2str(iter) ').vx'],['results.TransientAnalysis(' num2str(iter) ').vy'],...
+				['results.TransientAnalysis(' num2str(iter) ').vel'],...
+				['results.TransientAnalysis(' num2str(iter) ').bed'],['results.TransientAnalysis(' num2str(iter) ').surface'],...
+				['results.TransientAnalysis(' num2str(iter) ').thickness']};
+			fields2={['results.TransientAnalysis(' num2str(iter) ').vel'],['results.TransientAnalysis(' num2str(iter) ').thickness']};
 		end
 
@@ -196,5 +196,5 @@
 		%check melting (<=0 via penalties)
 		if strcmpi(md.type,'3d'),
-			if any(abs(md.results.transient(iter).melting(md.numberofgrids2d+1:end))>tolerance)
+			if any(abs(md.results.TransientAnalysis(iter).melting(md.numberofgrids2d+1:end))>tolerance)
 				disp(['''thermal'' result not consistent: increase penalty_melting (negative melting)']);
 				bool=0; return; 
Index: /issm/trunk/src/m/classes/public/loadresultsfromdisk.m
===================================================================
--- /issm/trunk/src/m/classes/public/loadresultsfromdisk.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/loadresultsfromdisk.m	(revision 3923)
@@ -25,5 +25,5 @@
 	md.analysis_type=structure(1).analysis_type;
 	if isscalar(md.sub_analysis_type),
-		md.sub_analysis_type=AnalysisTypeFromEnum(md.sub_analysis_type);
+		md.sub_analysis_type=EnumAsString(md.sub_analysis_type);
 	end
 
@@ -38,6 +38,6 @@
 else
 
-	md.analysis_type    =AnalysisTypeFromEnum(md.analysis_type);
-	md.sub_analysis_type=AnalysisTypeFromEnum(md.sub_analysis_type);
+	md.analysis_type    =EnumAsString(md.analysis_type);
+	md.sub_analysis_type=EnumAsString(md.sub_analysis_type);
 	md=postqmu(md);
 	cd ..
Index: /issm/trunk/src/m/classes/public/parametercontroloptimization.m
===================================================================
--- /issm/trunk/src/m/classes/public/parametercontroloptimization.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/parametercontroloptimization.m	(revision 3923)
@@ -51,9 +51,9 @@
 			%current run
 			disp(sprintf('\n   Step %i/%i, fit=%i, cm_max=%g, optscal=%g\n',count,length(cm_maxs)*length(optscals)*length(fits),fit,cm_max,optscal))
-			md2=solve(md2,'analysis_type','diagnostic');
+			md2=solve(md2,'analysis_type','DiagnosticAnalysis');
 			count=count+1;
 
 			%Check misfit difference
-			rel=(md2.results.diagnostic.J(1)-md2.results.diagnostic.J(end))/md2.results.diagnostic.J(1);
+			rel=(md2.results.DiagnosticAnalysis.J(1)-md2.results.DiagnosticAnalysis.J(end))/md2.results.DiagnosticAnalysis.J(1);
 			disp(['   ΔJ/J=' num2str(rel*100) '% for fit=' num2str(fit) ',cm_max=' num2str(cm_max) ', and optscal=' num2str(optscal) ]);
 			if (rel>best),
Index: /issm/trunk/src/m/classes/public/process_solve_options.m
===================================================================
--- /issm/trunk/src/m/classes/public/process_solve_options.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/process_solve_options.m	(revision 3923)
@@ -19,18 +19,18 @@
 outoptions.directory=getfieldvalue(options,'directory','');
 
+%convert to Enum if a string was provided
+if ischar(analysis_type),        analysis_type=eval([upper(analysis_type(1))     lower(analysis_type(2:end-8))     'AnalysisEnum()']); end
+if ischar(sub_analysis_type),sub_analysis_type=eval([upper(sub_analysis_type(1)) lower(sub_analysis_type(2:end-8)) 'AnalysisEnum()']); end
+
 %check solution type is supported
-if ~ismemberi(analysis_type,{'diagnostic','prognostic','prognostic2','thermal','steadystate','parameters','transient',...
-		'balancedthickness','balancedthickness2','balancedvelocities','slopecompute'}),
-	error(['process_solve_options error message: analysis_type ' analysis_type ' not supported yet!']);
-else
-	%convert to enum
-	outoptions.analysis_type=eval([upper(analysis_type(1)) lower(analysis_type(2:end)) 'AnalysisEnum()']);
+if ~ismember(analysis_type,[DiagnosticAnalysisEnum,PrognosticAnalysisEnum,Prognostic2AnalysisEnum,ThermalAnalysisEnum,SteadystateAnalysisEnum,ParametersAnalysisEnum,TransientAnalysisEnum,...
+		BalancedthicknessAnalysisEnum,Balancedthickness2AnalysisEnum,BalancedvelocitiesAnalysisEnum,SlopecomputeAnalysisEnum]),
+	error(['process_solve_options error message: analysis_type ' EnumAsString(analysis_type) ' not supported yet!']);
 end
-if ~ismemberi(sub_analysis_type,{'steady','transient','none','horiz','adjoint','gradient','inverse','vert',''}),
+if ~ismember(sub_analysis_type,[SteadyAnalysisEnum,TransientAnalysisEnum,NoneAnalysisEnum,HorizAnalysisEnum,AdjointAnalysisEnum,GradientAnalysisEnum,InverseAnalysisEnum,VertAnalysisEnum]),
 	error(['process_solve_options error message: sub_analysis_type ' sub_analysis_type ' not supported yet!']);
-else
-	%convert to enum
-	outoptions.sub_analysis_type=eval([upper(sub_analysis_type(1)) lower(sub_analysis_type(2:end)) 'AnalysisEnum()']);
 end
+outoptions.analysis_type=analysis_type;
+outoptions.sub_analysis_type=sub_analysis_type;
 
 %  process qmu arguments
Index: /issm/trunk/src/m/classes/public/queue/ClusterScript.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/ClusterScript.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/queue/ClusterScript.m	(revision 3923)
@@ -24,5 +24,5 @@
 	fprintf(fid,'ulimit -s unlimited\n');
 	fprintf(fid,'ulimit -c 0\n');
-	fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',np,codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name);
+	fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',np,codepath,EnumAsString(analysis_type),executionpath,name,name,name);
 	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -39,7 +39,7 @@
 	fprintf(fid,'rm -rf %s/%s.lock\n',executionpath,name);
 	if mem_debug==0,
-		fprintf(fid,'mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',np,codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name,name,name);
+		fprintf(fid,'mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',np,codepath,EnumAsString(analysis_type),executionpath,name,name,name,name,name);
 	else
-		fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',[ISSM_DIR '/externalpackages/valgrind/install/lib/libmpidebug.so'],np,[ISSM_DIR '/externalpackages/valgrind/install/bin/valgrind'],codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name,name,name);
+		fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',[ISSM_DIR '/externalpackages/valgrind/install/lib/libmpidebug.so'],np,[ISSM_DIR '/externalpackages/valgrind/install/bin/valgrind'],codepath,EnumAsString(analysis_type),executionpath,name,name,name,name,name);
 	end
 	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -64,5 +64,5 @@
 	fprintf(fid,'cd $PBS_O_WORKDIR\n');
 	fprintf(fid,'export OMP_NUM_THREADS=1\n');
-	fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',np-1,np,codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name);
+	fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',np-1,np,codepath,EnumAsString(analysis_type),executionpath,name,name,name);
 	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -92,5 +92,5 @@
 	fprintf(fid,'cd $PBS_O_WORKDIR\n\n');
 
-	fprintf(fid,'mpiexec -verbose -np %i %s/%s.exe $PBS_O_WORKDIR %s.bin %s.outbin %s.lock',np,codepath,AnalysisTypeFromEnum(analysis_type),name,name,name);
+	fprintf(fid,'mpiexec -verbose -np %i %s/%s.exe $PBS_O_WORKDIR %s.bin %s.outbin %s.lock',np,codepath,EnumAsString(analysis_type),name,name,name);
 	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
Index: /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptGeneric.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptGeneric.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptGeneric.m	(revision 3923)
@@ -19,7 +19,7 @@
 
 if md.mem_debug==0,
-fprintf(fid,'mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name,md.name,md.name);
+fprintf(fid,'mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',md.np,codepath,EnumAsString(md.analysis_type),executionpath,md.name,md.name,md.name,md.name,md.name);
 else
-fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',[ISSM_DIR '/externalpackages/valgrind/install/lib/libmpidebug.so'],md.np,[ISSM_DIR '/externalpackages/valgrind/install/bin/valgrind'],codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name,md.name,md.name);
+fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',[ISSM_DIR '/externalpackages/valgrind/install/lib/libmpidebug.so'],md.np,[ISSM_DIR '/externalpackages/valgrind/install/bin/valgrind'],codepath,EnumAsString(md.analysis_type),executionpath,md.name,md.name,md.name,md.name,md.name);
 end
 
Index: /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptcosmos.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptcosmos.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptcosmos.m	(revision 3923)
@@ -17,5 +17,5 @@
 fprintf(fid,'ulimit -s unlimited\n');
 fprintf(fid,'ulimit -c 0\n');
-fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name);
+fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',md.np,codepath,EnumAsString(md.analysis_type),executionpath,md.name,md.name,md.name);
 
 
Index: /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgemini.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgemini.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgemini.m	(revision 3923)
@@ -18,5 +18,5 @@
 fprintf(fid,'cd $PBS_O_WORKDIR\n');
 fprintf(fid,'export OMP_NUM_THREADS=1\n');
-fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',md.np-1,md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name);
+fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',md.np-1,md.np,codepath,EnumAsString(md.analysis_type),executionpath,md.name,md.name,md.name);
 
 fclose(fid);
Index: /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgreenplanet.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgreenplanet.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgreenplanet.m	(revision 3923)
@@ -17,5 +17,5 @@
 
 fprintf(fid,'cd $PBS_O_WORKDIR\n');
-fprintf(fid,'mpirun -machinefile $PBS_NODEFILE -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock > %s.outlog',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name,md.name);
+fprintf(fid,'mpirun -machinefile $PBS_NODEFILE -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock > %s.outlog',md.np,codepath,EnumAsString(md.analysis_type),executionpath,md.name,md.name,md.name,md.name);
 
 fclose(fid);
Index: /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptpfe.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptpfe.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptpfe.m	(revision 3923)
@@ -45,5 +45,5 @@
 fprintf(fid,'cd $PBS_O_WORKDIR\n\n');
 
-fprintf(fid,'mpiexec -verbose -np %i %s/%s.exe $PBS_O_WORKDIR %s.bin %s.outbin %s.lock',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),md.name,md.name,md.name);
+fprintf(fid,'mpiexec -verbose -np %i %s/%s.exe $PBS_O_WORKDIR %s.bin %s.outbin %s.lock',md.np,codepath,EnumAsString(md.analysis_type),md.name,md.name,md.name);
 
 fclose(fid);
Index: /issm/trunk/src/m/classes/public/solve.m
===================================================================
--- /issm/trunk/src/m/classes/public/solve.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/solve.m	(revision 3923)
@@ -4,13 +4,13 @@
 %   Usage:
 %      md=solve(md,varargin)
-%      where varargin is a lit of paired arguments. 
-%      arguments can be: 'analysis_type': 'diagnostic','thermal','prognostic','transient'
-%      arguments can be: 'sub_analysis_type': 'transient','steady','' (default if empty = 'steady')
+%      where varargin is a lit of paired arguments of string OR enums
+%      arguments can be: 'analysis_type': 'DiagnosticAnalysis','ThermalAnalysis','PrognosticAnalysis','TransientAnalysis'
+%      arguments can be: 'sub_analysis_type': 'TransientAnalysis','SteadyAnalysis','NoneAnalysisEnum'
 %
 %   Examples:
-%      md=solve(md,'analysis_type','diagnostic');
-%      md=solve(md,'analysis_type','thermal','sub_analysis_type','transient');
-%      md=solve(md,'analysis_type','thermal','sub_analysis_type','steady');
-%      md=solve(md,'analysis_type','thermal');
+%      md=solve(md,'analysis_type',DiagnosticAnalysisEnum);
+%      md=solve(md,'analysis_type','ThermalAnalysis','sub_analysis_type','TransientAnalysis');
+%      md=solve(md,'analysis_type',ThermalAnalysisEnum,'sub_analysis_type',SteadyAnalysisEnum);
+%      md=solve(md,'analysis_type','ThermalAnalysis');
 
 %some checks on list of arguments
@@ -103,4 +103,4 @@
 
 %convert analysis type to string finally
-md.analysis_type=AnalysisTypeFromEnum(options.analysis_type);
-md.sub_analysis_type=AnalysisTypeFromEnum(options.sub_analysis_type);
+md.analysis_type=EnumAsString(options.analysis_type);
+md.sub_analysis_type=EnumAsString(options.sub_analysis_type);
Index: /issm/trunk/src/m/classes/public/tres.m
===================================================================
--- /issm/trunk/src/m/classes/public/tres.m	(revision 3922)
+++ /issm/trunk/src/m/classes/public/tres.m	(revision 3923)
@@ -5,5 +5,5 @@
 %
 %
-%    Example: md=tres(md,'diagnostic');
+%    Example: md=tres(md,DiagnosticAnalysisEnum);
 %             md=tres(md);
 
@@ -17,40 +17,40 @@
 end
 
-if strcmpi(string,'diagnostic'),
-	md.vx=md.results.diagnostic.vx;
-	md.vy=md.results.diagnostic.vy;
-	if isfield(md.results.diagnostic,'vz'),
-		md.vz=md.results.diagnostic.vz;
+if strcmpi(string,'DiagnosticAnalysis'),
+	md.vx=md.results.DiagnosticAnalysis.vx;
+	md.vy=md.results.DiagnosticAnalysis.vy;
+	if isfield(md.results.DiagnosticAnalysis,'vz'),
+		md.vz=md.results.DiagnosticAnalysis.vz;
 	else
 		md.vz=zeros(md.numberofgrids,1);
 	end
-	md.vel=md.results.diagnostic.vel;
-	if isfield(md.results.diagnostic,'pressure'),
-		md.pressure=md.results.diagnostic.pressure;
+	md.vel=md.results.DiagnosticAnalysis.vel;
+	if isfield(md.results.DiagnosticAnalysis,'pressure'),
+		md.pressure=md.results.DiagnosticAnalysis.pressure;
 	end
 	if md.numrifts,
-		if isfield(md.results.diagnostic,'riftproperties'),
-			md.riftproperties=md.results.diagnostic.riftproperties;
+		if isfield(md.results.DiagnosticAnalysis,'riftproperties'),
+			md.riftproperties=md.results.DiagnosticAnalysis.riftproperties;
 		end
 	end
 	if md.control_analysis==1,
-		md.(md.results.diagnostic.control_type)=md.results.diagnostic.parameter;
+		md.(md.results.DiagnosticAnalysis.control_type)=md.results.DiagnosticAnalysis.parameter;
 	end
 elseif strcmpi(string,'dakota'),
 	md.dakotaresults=md.results.dakota;
-elseif strcmpi(string,'steadystate'),
-	md.vx=md.results.steadystate.vx;
-	md.vy=md.results.steadystate.vy;
-	if isfield(md.results.steadystate,'vz'),
-		md.vz=md.results.steadystate.vz;
+elseif strcmpi(string,'SteadystateAnalysis'),
+	md.vx=md.results.SteadystateAnalysis.vx;
+	md.vy=md.results.SteadystateAnalysis.vy;
+	if isfield(md.results.SteadystateAnalysis,'vz'),
+		md.vz=md.results.SteadystateAnalysis.vz;
 	end
 
-	md.vel=md.results.steadystate.vel;
-	md.pressure=md.results.steadystate.pressure;
-	md.temperature=md.results.steadystate.temperature;
-	md.melting=md.results.steadystate.melting;
-elseif strcmpi(string,'thermal'),
-	md.temperature=md.results.thermal.temperature;
-	md.melting=md.results.thermal.melting;
+	md.vel=md.results.SteadystateAnalysis.vel;
+	md.pressure=md.results.SteadystateAnalysis.pressure;
+	md.temperature=md.results.SteadystateAnalysis.temperature;
+	md.melting=md.results.SteadystateAnalysis.melting;
+elseif strcmpi(string,'ThermalAnalysis'),
+	md.temperature=md.results.ThermalAnalysis.temperature;
+	md.melting=md.results.ThermalAnalysis.melting;
 else 
 	error(['tres error message: analysis ' string ' not supported yet!']);
Index: sm/trunk/src/m/enum/AnalysisTypeFromEnum.m
===================================================================
--- /issm/trunk/src/m/enum/AnalysisTypeFromEnum.m	(revision 3922)
+++ 	(revision )
@@ -1,45 +1,0 @@
-function string=AnalysisTypeFromEnum(enum)
-%ANALYSISASENUM - get analysis type from Enum
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/SynchronizeMatlabEnum
-%            Please read src/c/README for more information
-%
-%   Usage:
-%      string=AnalysisTypeFromEnum(enum)
-
-switch enum,
-
-	case DiagnosticAnalysisEnum(), string='diagnostic'; return
-	case HorizAnalysisEnum(), string='horiz'; return
-	case HutterAnalysisEnum(), string='hutter'; return
-	case StokesAnalysisEnum(), string='stokes'; return
-	case VertAnalysisEnum(), string='vert'; return
-	case AdjointAnalysisEnum(), string='adjoint'; return
-	case ControlAnalysisEnum(), string='control'; return
-	case GradientAnalysisEnum(), string='gradient'; return
-	case InverseAnalysisEnum(), string='inverse'; return
-	case ThermalAnalysisEnum(), string='thermal'; return
-	case TransientAnalysisEnum(), string='transient'; return
-	case SteadyAnalysisEnum(), string='steady'; return
-	case SurfaceAnalysisEnum(), string='surface'; return
-	case SlopecomputeAnalysisEnum(), string='slopecompute'; return
-	case BedXAnalysisEnum(), string='bedx'; return
-	case BedYAnalysisEnum(), string='bedy'; return
-	case BedAnalysisEnum(), string='bed'; return
-	case SurfaceXAnalysisEnum(), string='surfacex'; return
-	case SurfaceYAnalysisEnum(), string='surfacey'; return
-	case Balancedthickness2AnalysisEnum(), string='balancedthickness2'; return
-	case BalancedthicknessAnalysisEnum(), string='balancedthickness'; return
-	case BalancedvelocitiesAnalysisEnum(), string='balancedvelocities'; return
-	case Prognostic2AnalysisEnum(), string='prognostic2'; return
-	case PrognosticAnalysisEnum(), string='prognostic'; return
-	case MeltingAnalysisEnum(), string='melting'; return
-	case Mesh2gridAnalysisEnum(), string='mesh2grid'; return
-	case ParametersAnalysisEnum(), string='parameters'; return
-	case SteadystateAnalysisEnum(), string='steadystate'; return
-	case NoneAnalysisEnum(), string='none'; return
-	case QmuAnalysisEnum(), string='qmu'; return
-	otherwise, error(['Enum ' num2str(enum)  ' not found']);
-
-end
Index: /issm/trunk/src/m/utils/Nightly/runme.m
===================================================================
--- /issm/trunk/src/m/utils/Nightly/runme.m	(revision 3922)
+++ /issm/trunk/src/m/utils/Nightly/runme.m	(revision 3923)
@@ -60,5 +60,5 @@
 
 	%CHECK analysis_type
-	analysis_type_arg=getfieldvalue(options,'analysis_type',{analysis_type});
+	analysis_type_arg=getfieldvalue(options,'analysis_type',analysis_type);
 	if ~ismember(analysis_type,analysis_type_arg)
 		continue
@@ -66,5 +66,5 @@
 
 	%CHECK sub_analysis_type
-	sub_analysis_type_arg=getfieldvalue(options,'sub_analysis_type',{sub_analysis_type});
+	sub_analysis_type_arg=getfieldvalue(options,'sub_analysis_type',sub_analysis_type);
 	if ~ismember(sub_analysis_type,sub_analysis_type_arg)
 		continue
@@ -134,6 +134,6 @@
 
 	%steady option?
-	if (  (strcmpi(analysis_type,'thermal') & strcmpi(sub_analysis_type,'steady')) | ...
-			(strcmpi(analysis_type,'steadystate'))...
+	if (  (strcmpi(analysis_type,'ThermalAnalysis') & strcmpi(sub_analysis_type,'steady')) | ...
+			(strcmpi(analysis_type,'SteadystateAnalysis'))...
 		)
 		md.dt=0;
@@ -180,8 +180,6 @@
 		archive_name='Archive';
 		for i=1:length(sequence),
-			if ischar(sequence{i}),
-				archive_name=[archive_name '_' sequence{i}];
-			else
-				archive_name=[archive_name '_' num2str(sequence{i})];
+			if ischar(sequence{i}), archive_name=[archive_name '_' sequence{i}];
+			else archive_name=[archive_name '_' num2str(sequence{i})];
 			end
 		end
@@ -215,9 +213,9 @@
 				%disp test result
 				if (error_diff>tolerance);
-					disp(sprintf(['\nERROR   difference: %-7.2g > %7.2g test: %-15s analysis_type: %-10s sub_analysis_type: %-9s qmu: %i control: %i control_fit: %-12s parallel: %i field: %s\n'],...
-						error_diff,tolerance,testname,analysis_type,sub_analysis_type,qmu,control,control_fit,parallel,field));
+					disp(sprintf(['\nERROR   difference: %-7.2g > %7.2g test: %s analysis_type: %s sub_analysis_type: %s qmu: %i control: %i control_fit: %s parallel: %i field: %s\n'],...
+						error_diff,tolerance,testname,EnumAsString(analysis_type),EnumAsString(sub_analysis_type),qmu,control,control_fit,parallel,field));
 				else
-					disp(sprintf(['\nSUCCESS difference: %-7.2g < %7.2g test: %-15s analysis_type: %-10s sub_analysis_type: %-9s qmu: %i control: %i control_fit: %-12s parallel: %i field: %s\n'],...
-						error_diff,tolerance,testname,analysis_type,sub_analysis_type,qmu,control,control_fit,parallel,field));
+					disp(sprintf(['\nSUCCESS difference: %-7.2g < %7.2g test: %s analysis_type: %s sub_analysis_type: %s qmu: %i control: %i control_fit: %s parallel: %i field: %s\n'],...
+						error_diff,tolerance,testname,EnumAsString(analysis_type),EnumAsString(sub_analysis_type),qmu,control,control_fit,parallel,field));
 				end
 			end
@@ -233,6 +231,6 @@
 		fprintf(fid,'%s',message);
 		fclose(fid);
-		disp(sprintf(['\nFAILURE test: %-15s analysis_type: %-10s sub_analysis_type: %-9s qmu: %i control: %i control_fit: %-12s parallel: %i\n'],...
-			testname,analysis_type,sub_analysis_type,qmu,control,control_fit,parallel));
+		disp(sprintf(['\nFAILURE test: %s analysis_type: %s sub_analysis_type: %s qmu: %i control: %i control_fit: %s parallel: %i\n'],...
+			testname,EnumAsString(analysis_type),EnumAsString(sub_analysis_type),qmu,control,control_fit,parallel));
 	end
 end
Index: /issm/trunk/src/m/utils/Nightly/testsgetfields.m
===================================================================
--- /issm/trunk/src/m/utils/Nightly/testsgetfields.m	(revision 3922)
+++ /issm/trunk/src/m/utils/Nightly/testsgetfields.m	(revision 3923)
@@ -9,5 +9,5 @@
 %
 %   Example:
-%      fields=testsgetfields(md,'diagnostic')
+%      fields=testsgetfields(md,'DiagnosticAnalysis')
 %
 %   See also: TESTSGETANALYSIS, TESTGETPACKAGE
@@ -21,45 +21,45 @@
 parallel=sequence{6};
 
-if strcmpi(analysis_type,'diagnostic'),
+if (analysis_type==DiagnosticAnalysisEnum),
 	if control,
-		fields={'diagnostic.vel','diagnostic.J','diagnostic.parameter'};
+		fields={'DiagnosticAnalysis.vel','DiagnosticAnalysis.J','DiagnosticAnalysis.parameter'};
 	elseif qmu,
 		fields={'dakota.importancefactors'};
 	else
 		if strcmpi(md.type,'3d')
-			fields={'diagnostic.vy','diagnostic.vz'};
+			fields={'DiagnosticAnalysis.vy','DiagnosticAnalysis.vz'};
 		else
-			fields={'diagnostic.vel'};
+			fields={'DiagnosticAnalysis.vel'};
 		end
 	end
 
-elseif strcmpi(analysis_type,'thermal'),
-	fields={'thermal(end).temperature','thermal(end).melting'};
+elseif (analysis_type==ThermalAnalysisEnum),
+	fields={'ThermalAnalysis(end).temperature','ThermalAnalysis(end).melting'};
 
-elseif strcmpi(analysis_type,'prognostic'),
-	fields={'prognostic.thickness'};
+elseif (analysis_type==PrognosticAnalysisEnum),
+	fields={'PrognosticAnalysis.thickness'};
 
-elseif strcmpi(analysis_type,'prognostic2'),
-	fields={'prognostic2.thickness'};
+elseif (analysis_type==Prognostic2AnalysisEnum),
+	fields={'Prognostic2Analysis.thickness'};
 
-elseif strcmpi(analysis_type,'transient'), 
+elseif (analysis_type==TransientAnalysisEnum), 
 	if strcmpi(md.type,'3d')
-		fields={'transient(end).vel','transient(end).pressure','transient(end).temperature','transient(end).melting','transient(end).thickness','transient(end).surface','transient(end).bed'};
+		fields={'TransientAnalysis(end).vel','TransientAnalysis(end).pressure','TransientAnalysis(end).temperature','TransientAnalysis(end).melting','TransientAnalysis(end).thickness','TransientAnalysis(end).surface','TransientAnalysis(end).bed'};
 	else
-		fields={'transient(end).vel','transient(end).thickness','transient(end).surface','transient(end).bed'};
+		fields={'TransientAnalysis(end).vel','TransientAnalysis(end).thickness','TransientAnalysis(end).surface','TransientAnalysis(end).bed'};
 	end
 
-elseif strcmpi(analysis_type,'steadystate'), 
+elseif (analysis_type==SteadystateAnalysisEnum), 
 	if control,
-		fields={'steadystate.vel','steadystate.J','steadystate.parameter'};
+		fields={'SteadystateAnalysis.vel','SteadystateAnalysis.J','SteadystateAnalysis.parameter'};
 	else
-		fields={'steadystate.vel','steadystate.pressure','steadystate.temperature'};
+		fields={'SteadystateAnalysis.vel','SteadystateAnalysis.pressure','SteadystateAnalysis.temperature'};
 	end
 
-elseif strcmpi(analysis_type,'balancedthickness'), 
-	fields={'balancedthickness.thickness'};
+elseif (analysis_type==BalancedthicknessAnalysisEnum), 
+	fields={'BalancedthicknessAnalysis.thickness'};
 
-elseif strcmpi(analysis_type,'slopecompute'), 
-	fields={'slopecompute.slopex','slopecompute.slopey'};
+elseif (analysis_type==SlopecomputeAnalysisEnum), 
+	fields={'SlopecomputeAnalysis.slopex','SlopecomputeAnalysis.slopey'};
 
 else
Index: /issm/trunk/src/m/utils/Nightly/testsgettolerance.m
===================================================================
--- /issm/trunk/src/m/utils/Nightly/testsgettolerance.m	(revision 3922)
+++ /issm/trunk/src/m/utils/Nightly/testsgettolerance.m	(revision 3923)
@@ -22,17 +22,17 @@
 
 else
-	if strcmpi(analysis_type,'balancedthickness'),
+	if (analysis_type==BalancedthicknessAnalysisEnum),
 		tolerance=10^-14;
 
-	elseif strcmpi(analysis_type,'slopecompute'),
+	elseif (analysis_type==SlopecomputeAnalysisEnum),
 		tolerance=10^-14;
 
-	elseif strcmpi(analysis_type,'prognostic'),
+	elseif (analysis_type==PrognosticAnalysisEnum),
 		tolerance=10^-14;
 
-	elseif strcmpi(analysis_type,'prognostic2'),
+	elseif (analysis_type==Prognostic2AnalysisEnum),
 		tolerance=10^-14;
 
-	elseif strcmpi(analysis_type,'transient'),
+	elseif (analysis_type==TransientAnalysisEnum),
 		if strcmpi(md.type,'2d'),
 			tolerance=10^-11;
@@ -47,5 +47,5 @@
 		end
 
-	elseif strcmpi(analysis_type,'diagnostic'),
+	elseif (analysis_type==DiagnosticAnalysisEnum),
 		if md.isstokes,
 			tolerance=10^-4;
@@ -58,5 +58,5 @@
 		end
 
-	elseif strcmpi(analysis_type,'thermal'),
+	elseif (analysis_type==ThermalAnalysisEnum),
 		if strncmpi(fliplr(field),fliplr('melting'),7),
 			tolerance=10^-6;
@@ -65,5 +65,5 @@
 		end
 
-	elseif (strcmpi(analysis_type,'steadystate')),
+	elseif (analysis_type==SteadystateAnalysisEnum),
 			if md.isstokes | md.control_analysis,
 				tolerance=5*10^-4;
