Index: /issm/trunk/src/m/classes/public/BuildQueueingScriptGeneric.m
===================================================================
--- /issm/trunk/src/m/classes/public/BuildQueueingScriptGeneric.m	(revision 1649)
+++ /issm/trunk/src/m/classes/public/BuildQueueingScriptGeneric.m	(revision 1650)
@@ -15,4 +15,4 @@
 fprintf(fid,'#!/bin/sh\n');
 fprintf(fid,'rm -rf %s/%s.lock\n',executionpath,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,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,AnalysisTypeAsEnum(md.analysis_type),executionpath,md.name,md.name,md.name,md.name,md.name);
 fclose(fid);
Index: /issm/trunk/src/m/classes/public/marshall.m
===================================================================
--- /issm/trunk/src/m/classes/public/marshall.m	(revision 1649)
+++ /issm/trunk/src/m/classes/public/marshall.m	(revision 1650)
@@ -22,6 +22,6 @@
 end
 
-WriteData(fid,md.analysis_type','String','analysis_type');
-WriteData(fid,md.sub_analysis_type','String','sub_analysis_type');
+WriteData(fid,md.analysis_type','Integer','analysis_type');
+WriteData(fid,md.sub_analysis_type','Integer','sub_analysis_type');
 WriteData(fid,md.type,'String','type');
 WriteData(fid,md.numberofgrids,'Integer','numberofgrids');
Index: /issm/trunk/src/m/classes/public/process_solve_options.m
===================================================================
--- /issm/trunk/src/m/classes/public/process_solve_options.m	(revision 1649)
+++ /issm/trunk/src/m/classes/public/process_solve_options.m	(revision 1650)
@@ -6,16 +6,4 @@
 %
 %   See also: SOLVE,RECOVER_SOLVE_OPTIONS
-
-%analysis_type: check on this option, error out otherwise
-found=0;
-for i=1:size(options,1),
-	if strcmpi(options{i,1},'analysis_type'),
-		analysis_type=options{i,2};
-		found=1;
-	end
-end
-if ~found,
-	error('recover_solve_options error message: no ''analysis_type'' was provided');
-end
 
 %package: is there one? check to ''cielo''
@@ -32,7 +20,20 @@
 	package='cielo';
 end
+if ~(strcmpi(package,'cielo') |  ...
+		strcmpi(package,'ice') |  ...
+		strcmpi(package,'macayeal') ),
+	error(['process_solve_options error message: package ' package ' not supported yet!']);
+end
 
-if ~ischar(package), 
-	error(['process_solve_options error message: package ' package ' not supported yet']);
+%analysis_type: check on this option, error out otherwise
+found=0;
+for i=1:size(options,1),
+	if strcmpi(options{i,1},'analysis_type'),
+		analysis_type=options{i,2};
+		found=1;
+	end
+end
+if ~found,
+	error('recover_solve_options error message: no ''analysis_type'' was provided');
 end
 
@@ -69,33 +70,17 @@
 end
 
-
 %check solution type is supported
-if ~(   strcmpi(analysis_type,'control') |  ...
-		strcmpi(analysis_type,'diagnostic') |  ...
-		strcmpi(analysis_type,'prognostic') |  ...
-		strcmpi(analysis_type,'thermal') |  ...
-		strcmpi(analysis_type,'parameters') |  ...
-		strcmpi(analysis_type,'mesh') |  ...
-		strcmpi(analysis_type,'mesh2grid') |  ...
-		strcmpi(analysis_type,'transient') ),
+if ~ismemberi(analysis_type,{'control','diagnostic','prognostic','thermal','parameters','mesh2grid','transient'}),
 	error(['process_solve_options error message: analysis_type ' analysis_type ' not supported yet!']);
+else
+	%convert to enum
+	analysis_type=eval([upper(analysis_type(1)) lower(analysis_type(2:end)) 'AnalysisEnum']);
 end
-if ~(   strcmpi(sub_analysis_type,'none') |  ...
-		strcmpi(sub_analysis_type,'steady') |  ...
-		strcmpi(sub_analysis_type,'horiz') |  ...
-		strcmpi(sub_analysis_type,'adjoint') |  ...
-		strcmpi(sub_analysis_type,'gradient') |  ...
-		strcmpi(sub_analysis_type,'inverse') |  ...
-		strcmpi(sub_analysis_type,'vert') |  ...
-		strcmpi(sub_analysis_type,'') |  ...
-		strcmpi(sub_analysis_type,'transient') ),
+if ~ismemberi(sub_analysis_type,{'none','steady','horiz','adjoint','gradient','inverse','vert','','transient'}),
 	error(['process_solve_options error message: sub_analysis_type ' sub_analysis_type ' not supported yet!']);
+else
+	%convert to enum
+	sub_analysis_type=eval([upper(sub_analysis_type(1)) lower(sub_analysis_type(2:end)) 'AnalysisEnum']);
 end
-if ~(strcmpi(package,'cielo') |  ...
-		strcmpi(package,'ice') |  ...
-		strcmpi(package,'macayeal') ),
-	error(['process_solve_options error message: package ' package ' not supported yet!']);
-end
-
 
 %  process qmu arguments
Index: /issm/trunk/src/m/classes/public/solve.m
===================================================================
--- /issm/trunk/src/m/classes/public/solve.m	(revision 1649)
+++ /issm/trunk/src/m/classes/public/solve.m	(revision 1650)
@@ -55,26 +55,23 @@
 
 %Launch correct solution sequence
-if strcmpi(md.analysis_type,'diagnostic'),
+if md.analysis_type==DiagnosticAnalysisEnum,
 	md=diagnostic(md);
 
-elseif strcmpi(md.analysis_type,'mesh'),
-	md=mesh(md);
-
-elseif strcmpi(md.analysis_type,'transient'),
+elseif md.analysis_type==TransientAnalysisEnum,
 	md=transient(md);
 
-elseif strcmpi(md.analysis_type,'mesh2grid'),
+elseif md.analysis_type==Mesh2gridAnalysisEnum,
 	md=mesh2grid(md);;
 
-elseif strcmpi(md.analysis_type,'prognostic'),
+elseif md.analysis_type==PrognosticAnalysisEnum,
 	md=prognostic(md);;
 
-elseif strcmpi(md.analysis_type,'control'),
+elseif md.analysis_type==ControlAnalysisEnum,
 	md=control(md);
 
-elseif strcmpi(md.analysis_type,'thermal'),
+elseif md.analysis_type==ThermalAnalysisEnum,
 	md=thermal(md);
 
-elseif strcmpi(md.analysis_type,'parameters'),
+elseif md.analysis_type==ParametersAnalysisEnum,
 	md=parameters(md);
 
@@ -100,3 +97,2 @@
 addpath(genpath_ice([ISSM_DIR '/src/m/solutions/cielo']));
 addpath(genpath_ice([ISSM_DIR '/bin']));
-
