Index: sm/branches/trunk-larour-SLPS2022/src/m/classes/additionalsolidearthsolution.m
===================================================================
--- /issm/branches/trunk-larour-SLPS2022/src/m/classes/additionalsolidearthsolution.m	(revision 27067)
+++ 	(revision )
@@ -1,43 +1,0 @@
-%ADDITIONALSOLIDEARTHSOLUTION class definition
-%
-%   Usage:
-%      addsol=additionalsolidearthsolution();
-
-classdef additionalsolidearthsolution < solidearthsolution
-	properties (SetAccess=public) 
-	end
-	methods
-		function self = additionalsolidearthsolution(varargin) % {{{
-			switch nargin
-				case 0
-					self=setdefaultparameters(self);
-				otherwise
-					error('constructor not supported');
-			end
-		end % }}}
-		function self = setdefaultparameters(self) % {{{
-			self.setdefaultparameters@solidearthsolution();
-		end % }}}
-		function md = checkconsistency(self,md,solution,analyses) % {{{
-
-			if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==0), 
-				error('additionalsolidearthsolution checkconsistency error message: need to run GRD solution if you are supplying a GRD additional pattern solution');
-			end
-			self.checkconsistency@solidearthsolution(md,solution,analyses);
-
-		end % }}}
-		function disp(self) % {{{
-			disp(sprintf('   external: additionalsolidearth solution:'));
-			self.disp@solidearthsolution();
-		end % }}}
-		function marshall(self,prefix,md,fid) % {{{
-			WriteData(fid,prefix,'data',1,'name','md.solidearth.external.nature','format','Integer'); %code 1 for additionalsolidearthsolution class
-			self.marshall@solidearthsolution(prefix,md,fid);
-		end % }}}
-		function savemodeljs(self,fid,modelname) % {{{
-			self.savemodeljs@solidearthsolution(fid,modelname);
-		end % }}}
-		function self = extrude(self,md) % {{{
-		end % }}}
-	end
-end
Index: sm/branches/trunk-larour-SLPS2022/src/m/classes/mmeadditionalsolidearthsolution.m
===================================================================
--- /issm/branches/trunk-larour-SLPS2022/src/m/classes/mmeadditionalsolidearthsolution.m	(revision 27067)
+++ 	(revision )
@@ -1,104 +1,0 @@
-%MMEADDITIONALSOLIDEARTHSOLUTION class definition
-%
-%   Usage:
-%      addsol=mmeadditionalsolidearthsolution(); where the additional solid earth solutions %                               are based on a multi-model ensemble (ex: Caron et al 2017 statistics) 
-
-classdef mmeadditionalsolidearthsolution < additionalsolidearthsolution 
-	properties (SetAccess=public) 
-		modelid; %index into the multi-model ensemble, each ensemble variable being defined 
-	         %in the father class.
-	end
-	methods
-		function self = mmeadditionalsolidearthsolution(varargin) % {{{
-			switch nargin
-				case 0
-					self=setdefaultparameters(self);
-				otherwise
-					error('constructor not supported');
-			end
-		end % }}}
-		function self = setdefaultparameters(self) % {{{
-			self.setdefaultparameters@additionalsolidearthsolution();
-			self.modelid=0;
-		end % }}}
-		function md = checkconsistency(self,md,solution,analyses) % {{{
-
-			if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==0), 
-				error('mmeadditionalsolidearthsolution checkconsistency error message: need to run GRD solution if you are supplying a GRD additional pattern solution');
-			end
-
-			seast=length(self.displacementeast);
-			snorth=length(self.displacementnorth);
-			sup=length(self.displacementup);
-			sgeoid=length(self.geoid);
-
-			if (seast-snorth)~=0,
-				error('mmeadditionalsolidearthsolution checkconsistency error message: displacementeast and displacementnorth should be the same size');
-			end
-
-			if (seast-sup)~=0,
-				error('mmeadditionalsolidearthsolution checkconsistency error message: displacementeast and displacementup should be the same size');
-			end
-
-			if (seast-sgeoid)~=0,
-				error('mmeadditionalsolidearthsolution checkconsistency error message: displacementeast and geoid should be the same size');
-			end
-			
-			md = checkfield(md,'field',self.modelid,'NaN',1,'Inf',1,'>=',1,'<=',length(self.displacementeast));
-
-			for i=1:seast,
-				md = checkfield(md,'field',self.displacementeast{i},'NaN',1,'Inf',1,'timeseries',1);
-				md = checkfield(md,'field',self.displacementup{i},'NaN',1,'Inf',1,'timeseries',1);
-				md = checkfield(md,'field',self.displacementnorth{i},'NaN',1,'Inf',1,'timeseries',1);
-				md = checkfield(md,'field',self.geoid{i},'NaN',1,'Inf',1,'timeseries',1);
-			end
-
-
-		end % }}}
-		function disp(self) % {{{
-			disp(sprintf('   external: mmeadditionalsolidearth solution:'));
-			self.disp@solidearthsolution();
-			fielddisplay(self,'modelid','index into the multi-model ensemble, determines which field will be used.');
-		end % }}}
-		function marshall(self,prefix,md,fid) % {{{
-			WriteData(fid,prefix,'data',3,'name','md.solidearth.external.nature','format','Integer'); %code 3 for mmeadditionalsolidearthsolution class
-
-			nummodels=length(self.displacementeast);
-			WriteData(fid,prefix,'name','md.solidearth.external.nummodels','data',nummodels,'format','Integer');
-			WriteData(fid,prefix,'object',self,'fieldname','modelid','format','Double');
-
-			%transform our cell array of time series into cell array of time series of rates 
-			for i=1:nummodels,
-				displacementeast=self.displacementeast{i}; 
-				displacementnorth=self.displacementnorth{i}; 
-				displacementup=self.displacementup{i}; 
-				geoid=self.geoid{i}; 
-
-				time=displacementeast(end,:);
-				dt=diff(time,1,2);
-				
-				displacementeast_rate=diff(displacementeast(1:end-1,:),1,2)./dt;
-				displacementnorth_rate=diff(displacementnorth(1:end-1,:),1,2)./dt;
-				displacementup_rate=diff(displacementup(1:end-1,:),1,2)./dt;
-				geoid_rate=diff(geoid(1:end-1,:),1,2)./dt;
-
-				self.displacementeast{i}=displacementeast_rate; 
-				self.displacementnorth{i}=displacementnorth_rate; 
-				self.displacementup{i}=displacementup_rate; 
-				self.geoid{i}=geoid_rate; 
-			end
-			
-			WriteData(fid,prefix,'object',self,'fieldname','displacementeast','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
-			WriteData(fid,prefix,'object',self,'fieldname','displacementup','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
-			WriteData(fid,prefix,'object',self,'fieldname','displacementnorth','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
-			WriteData(fid,prefix,'object',self,'fieldname','geoid','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
-
-		end % }}}
-
-		function savemodeljs(self,fid,modelname) % {{{
-			error('mmeadditionalsolidearthsolution error message: not implemented yet');
-		end % }}}
-		function self = extrude(self,md) % {{{
-		end % }}}
-	end
-end
Index: /issm/branches/trunk-larour-SLPS2022/src/m/classes/mmeofflinesolidearthsolution.m
===================================================================
--- /issm/branches/trunk-larour-SLPS2022/src/m/classes/mmeofflinesolidearthsolution.m	(revision 27067)
+++ /issm/branches/trunk-larour-SLPS2022/src/m/classes/mmeofflinesolidearthsolution.m	(revision 27068)
@@ -24,8 +24,4 @@
 		function md = checkconsistency(self,md,solution,analyses) % {{{
 
-			if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==1), 
-				error('mmeofflinesolidearthsolution checkconsistency error message: trying to run GRD patterns while supplying an offline solution for those patterns!'); 
-			end
-			
 			seast=length(self.displacementeast);
 			snorth=length(self.displacementnorth);
@@ -61,7 +57,10 @@
 			fielddisplay(self,'modelid','index into the multi-model ensemble, determines which field will be used.');
 		end % }}}
+		function s=nummodels(self) % {{{
+			s=numel(self.displacementup);
+		end % }}}
 		function marshall(self,prefix,md,fid) % {{{
 			WriteData(fid,prefix,'data',4,'name','md.solidearth.external.nature','format','Integer'); %code 4 for mmeofflinesolidearthsolution class
-			WriteData(fid,prefix,'object',self,'fieldname','modelid','format','Double');
+			WriteData(fid,prefix,'data',self.modelid,'name','md.solidearth.external.modelid','format','Integer');
 			nummodels=length(self.displacementeast);
 			WriteData(fid,prefix,'name','md.solidearth.external.nummodels','data',nummodels,'format','Integer');
@@ -77,9 +76,8 @@
 				dt=diff(time,1,2);
 				
-				displacementeast_rate=diff(displacementeast(1:end-1,:),1,2)./dt;
-				displacementnorth_rate=diff(displacementnorth(1:end-1,:),1,2)./dt;
-				displacementup_rate=diff(displacementup(1:end-1,:),1,2)./dt;
-				geoid_rate=diff(geoid(1:end-1,:),1,2)./dt;
-				barystaticsealevel_rate=diff(barystaticsealevel(1:end-1,:),1,2)./dt;
+				displacementeast_rate=[diff(displacementeast(1:end-1,:),1,2)./dt;time(1:end-1)];
+				displacementnorth_rate=[diff(displacementnorth(1:end-1,:),1,2)./dt;time(1:end-1)];
+				displacementup_rate=[diff(displacementup(1:end-1,:),1,2)./dt;time(1:end-1)];
+				geoid_rate=[diff(geoid(1:end-1,:),1,2)./dt;time(1:end-1)];
 
 				self.displacementeast{i}=displacementeast_rate; 
@@ -88,9 +86,9 @@
 				self.geoid{i}=geoid_rate; 
 			end
-			
-			WriteData(fid,prefix,'object',self,'fieldname','displacementeast','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
-			WriteData(fid,prefix,'object',self,'fieldname','displacementup','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
-			WriteData(fid,prefix,'object',self,'fieldname','displacementnorth','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
-			WriteData(fid,prefix,'object',self,'fieldname','geoid','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
+			yts=md.constants.yts;
+			WriteData(fid,prefix,'data',self.displacementeast,'name','md.solidearth.external.displacementeast','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',yts,'scale',1/yts);
+			WriteData(fid,prefix,'data',self.displacementup,'name','md.solidearth.external.displacementup','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',yts,'scale',1/yts);
+			WriteData(fid,prefix,'data',self.displacementnorth,'name','md.solidearth.external.displacementnorth','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',yts,'scale',1/yts);
+			WriteData(fid,prefix,'data',self.geoid,'name','md.solidearth.external.geoid','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',yts,'scale',1/yts);
 
 		end % }}}
Index: /issm/branches/trunk-larour-SLPS2022/src/m/classes/offlinesolidearthsolution.m
===================================================================
--- /issm/branches/trunk-larour-SLPS2022/src/m/classes/offlinesolidearthsolution.m	(revision 27067)
+++ /issm/branches/trunk-larour-SLPS2022/src/m/classes/offlinesolidearthsolution.m	(revision 27068)
@@ -21,7 +21,4 @@
 		function md = checkconsistency(self,md,solution,analyses) % {{{
 
-			if ~ismember('SealevelchangeAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.solidearth.settings.isgrd==1), 
-				error('offlinesolidearthsolution.m::checkconsistency: trying to run GRD patterns while supplying an offline solution for those patterns!'); 
-			end
 			self.checkconsistency@solidearthsolution(md,solution,analyses);
 
