Index: /issm/trunk/src/m/classes/public/ismodelselfconsistent.m
===================================================================
--- /issm/trunk/src/m/classes/public/ismodelselfconsistent.m	(revision 2163)
+++ /issm/trunk/src/m/classes/public/ismodelselfconsistent.m	(revision 2164)
@@ -1,11 +1,11 @@
-function bool=ismodelselfconsistent(md,package),
+function bool=ismodelselfconsistent(md),
 %ISMODELSELFCONSISTENT - check that model forms a closed form solvable problem.
 %
 %   Usage:
-%      bool=ismodelselfconsistent(md,package),
+%      bool=ismodelselfconsistent(md),
 
 %tolerance we use in litmus tests for the consistency of the model
 tolerance=10^-12;
-if (nargin~=2  )
+if (nargin~=1  )
 	help ismodelselfconsistent
 	error('ismodelselfconsistent error message: wrong usage');
@@ -58,7 +58,14 @@
 	end
 end
-
 if (md.ismacayealpattyn==0 && md.ishutter==0 && md.isstokes==0),
 	disp(['no elements type set for this model. at least one of ismacayealpattyn, ishutter and isstokes need to be =1']);
+	bool=0;return;
+end
+if (md.analysis_type==DiagnosticAnalysisEnum & any(ismember(MacAyealFormulationEnum,md.elements_type(:,1)) & ismember(PattynFormulationEnum,md.elements_type(:,1))))
+	disp(['coupling MacAyeal/Pattyn not implemented yet']);
+	bool=0;return;
+end
+if (md.isstokes & md.analysis_type==TransientAnalysisEnum());
+	disp(['Stokes transient not implemented yet']);
 	bool=0;return;
 end
@@ -167,10 +174,4 @@
 end
 
-%CLUSTER
-if ~strcmpi(package,'cielo') & ~strcmpi(md.cluster,'none')
-	disp(['parallel solution not supported by package ' package '. Use cluster=''none'' ']);
-	bool=0;return;
-end
-
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  SOLUTION CHECKS  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %QMU
@@ -306,10 +307,4 @@
 %PARAMETERS
 if md.analysis_type==ParametersAnalysisEnum,
-
-	%PACKAGE
-	if ~strcmpi(package,'ice'),
-		disp('parameter solution only supported by package ice yet');
-		bool=0;return;
-	end
 
 	%OUTPUT
@@ -405,9 +400,69 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  PACKAGE CHECKS   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-%CIELO
-if strcmpi(package,'cielo'),
+%NAN VALUES
+fields={'sparsity'};
+for i=1:length(fields),
+	if ~isempty(md.(fields{i})),
+		if any(isnan(md.(fields{i}))),
+			disp(['model ' md.name ' has an NaN value in field ' fields{i} '!']);
+			bool=0; return;
+		end
+	end
+end
+
+%FIELD > 0
+fields={'sparsity'};
+for i=1:length(fields),
+	if ~isempty(md.(fields{i})),
+		if any(md.(fields{i})<0),
+			disp(['model ' md.name ' has a <0 value in field ' fields{i} '!']);
+			bool=0; return;
+		end
+	end
+end
+
+%FIELD ~= 0
+fields={'sparsity'};
+for i=1:length(fields),
+	if ~isempty(md.(fields{i})),
+		if any(md.(fields{i})==0),
+			disp(['model ' md.name ' has a =0 value in field ' fields{i} '!']);
+			bool=0; return;
+		end
+	end
+end
+
+%SPARSITY BETWEEN 0 AND 1
+if ( (md.sparsity<=0) | (md.sparsity>1)),
+	disp(['model ' md.name ' sparsity should be inside the [0 1] range']);
+	bool=0; return;
+end
+
+%CONNECTIVITY
+if strcmpi(md.type,'2d'),
+	if md.connectivity<9, 
+		disp('connectivity should be at least 9 for 2d models');
+		bool=0;return;
+	end
+end
+if strcmpi(md.type,'3d'),
+	if md.connectivity<24, 
+		disp('connectivity should be at least 24 for 3d models');
+		bool=0;return;
+	end
+end
+
+%LOWMEM = 0 or 1
+if ((md.lowmem ~= 1) & (md.lowmem~=0)),
+	disp(['model ' md.name ' lowmem field should be 0 or 1']);
+	bool=0; return;
+end
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  PARALLEL CHECKS   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if ~strcmpi(md.cluster,'none'),
 
 	%NAN VALUES
-	fields={'sparsity'};
+	fields={'time','np'};
 	for i=1:length(fields),
 		if ~isempty(md.(fields{i})),
@@ -420,5 +475,5 @@
 
 	%FIELD > 0
-	fields={'sparsity'};
+	fields={'time','np'};
 	for i=1:length(fields),
 		if ~isempty(md.(fields{i})),
@@ -431,5 +486,5 @@
 
 	%FIELD ~= 0
-	fields={'sparsity'};
+	fields={'time','np'};
 	for i=1:length(fields),
 		if ~isempty(md.(fields{i})),
@@ -441,78 +496,3 @@
 	end
 
-	%SPARSITY BETWEEN 0 AND 1
-	if ( (md.sparsity<=0) | (md.sparsity>1)),
-		disp(['model ' md.name ' sparsity should be inside the [0 1] range']);
-		bool=0; return;
-	end
-
-	%CONNECTIVITY
-	if strcmpi(md.type,'2d'),
-		if md.connectivity<9, 
-			disp('connectivity should be at least 9 for 2d models');
-			bool=0;return;
-		end
-	end
-	if strcmpi(md.type,'3d'),
-		if md.connectivity<24, 
-			disp('connectivity should be at least 24 for 3d models');
-			bool=0;return;
-		end
-	end
-
-	%LOWMEM = 0 or 1
-	if ((md.lowmem ~= 1) & (md.lowmem~=0)),
-		disp(['model ' md.name ' lowmem field should be 0 or 1']);
-		bool=0; return;
-	end
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  PARALLEL CHECKS   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-	if ~strcmpi(md.cluster,'none'),
-
-		%NAN VALUES
-		fields={'time','np'};
-		for i=1:length(fields),
-			if ~isempty(md.(fields{i})),
-				if any(isnan(md.(fields{i}))),
-					disp(['model ' md.name ' has an NaN value in field ' fields{i} '!']);
-					bool=0; return;
-				end
-			end
-		end
-
-		%FIELD > 0
-		fields={'time','np'};
-		for i=1:length(fields),
-			if ~isempty(md.(fields{i})),
-				if any(md.(fields{i})<0),
-					disp(['model ' md.name ' has a <0 value in field ' fields{i} '!']);
-					bool=0; return;
-				end
-			end
-		end
-
-		%FIELD ~= 0
-		fields={'time','np'};
-		for i=1:length(fields),
-			if ~isempty(md.(fields{i})),
-				if any(md.(fields{i})==0),
-					disp(['model ' md.name ' has a =0 value in field ' fields{i} '!']);
-					bool=0; return;
-				end
-			end
-		end
-
-	end
-
-end
-
-%ICE and MACAYEAL
-if (strcmpi(package,'ice') | strcmpi(package,'macayeal')),
-
-	if (isnan(md.eps_rel) & isnan(md.eps_abs)),
-		disp(['At least eps_rel must be positive since eps_res not supported by package ' package '!']);
-		bool=0; return;
-	end
-
-end
+end
Index: /issm/trunk/src/m/classes/public/process_solve_options.m
===================================================================
--- /issm/trunk/src/m/classes/public/process_solve_options.m	(revision 2163)
+++ /issm/trunk/src/m/classes/public/process_solve_options.m	(revision 2164)
@@ -6,22 +6,4 @@
 %
 %   See also: SOLVE,RECOVER_SOLVE_OPTIONS
-
-%package: is there one? check to ''cielo''
-found=0;
-for i=1:size(options,1),
-	if strcmpi(options{i,1},'package'),
-		package=options{i,2};
-		found=1;
-		break
-	end
-end
-if ~found,
-	disp('recover_solve_options info message: no ''package'' was provided, defaulting to ''cielo''');
-	options(end+1,:)={'package' 'cielo'};
-	package='cielo';
-end
-if ~ismemberi(package,{'cielo','ice','macayeal'}),
-	error(['process_solve_options error message: package ' package ' not supported yet!']);
-end
 
 %analysis_type: check on this option, error out otherwise
@@ -71,5 +53,5 @@
 	analysis_type=eval([upper(analysis_type(1)) lower(analysis_type(2:end)) 'AnalysisEnum']);
 end
-if ~ismemberi(sub_analysis_type,{'none','horiz','adjoint','gradient','inverse','vert',''}),
+if ~ismemberi(sub_analysis_type,{'steady','transient','none','horiz','adjoint','gradient','inverse','vert',''}),
 	error(['process_solve_options error message: sub_analysis_type ' sub_analysis_type ' not supported yet!']);
 else
@@ -120,5 +102,4 @@
 %setup final options structure
 outoptions.analysis_type=analysis_type;
-outoptions.package=package;
 outoptions.sub_analysis_type=sub_analysis_type;
 outoptions.qmudir=qmudir;
Index: /issm/trunk/src/m/classes/public/solve.m
===================================================================
--- /issm/trunk/src/m/classes/public/solve.m	(revision 2163)
+++ /issm/trunk/src/m/classes/public/solve.m	(revision 2164)
@@ -7,11 +7,10 @@
 %      arguments can be: 'analysis_type': 'diagnostic','thermal','prognostic','transient'
 %      arguments can be: 'sub_analysis_type': 'transient','steady','' (default if empty = 'steady')
-%      arguments can be: 'package': 'macayeal','ice','cielo' (default if not specified = 'cielo')
 %
 %   Examples:
-%      md=solve(md,'analysis_type','diagnostic','package','cielo');
-%      md=solve(md,'analysis_type','thermal','sub_analysis_type','transient','package','ice');
-%      md=solve(md,'analysis_type','thermal','sub_analysis_type','steady','package','cielo');
-%      md=solve(md,'analysis_type','thermal','package','cielo');
+%      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');
 
 %some checks on list of arguments
@@ -27,10 +26,6 @@
 md.analysis_type=options.analysis_type;
 md.sub_analysis_type=options.sub_analysis_type;
-package=options.package;
 
-%Use package to set solution namespace
-usenamespace(package);
-
-if ~ismodelselfconsistent(md,package),
+if ~ismodelselfconsistent(md),
 	error(' '); %previous error messages should explain what is going on.
 end
@@ -94,8 +89,2 @@
 md.analysis_type=AnalysisTypeFromEnum(options.analysis_type);
 md.sub_analysis_type=AnalysisTypeFromEnum(options.sub_analysis_type);
-
-%re-add the paths
-addpath(genpath_ice([ISSM_DIR '/src/m/solutions/macayeal']));
-addpath(genpath_ice([ISSM_DIR '/src/m/solutions/ice']));
-addpath(genpath_ice([ISSM_DIR '/src/m/solutions/cielo']));
-addpath(genpath_ice([ISSM_DIR '/bin']));
