Index: /issm/trunk-jpl/src/m/classes/slr.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/slr.m	(revision 20014)
+++ /issm/trunk-jpl/src/m/classes/slr.m	(revision 20015)
@@ -17,4 +17,5 @@
 		legendre_precompute = 0;
 		legendre_coefficients = NaN;
+		store_green_functions = 0;
 	end
 	methods
@@ -42,6 +43,9 @@
 		
 		%legendre coefficients: 
-		legendre_precompute = 0;
-		legendre_coefficients = NaN;
+		self.legendre_precompute = 0;
+		self.legendre_coefficients = NaN;
+
+		%optimization: 
+		self.store_green_functions=1;
 
 		end % }}}
@@ -55,4 +59,5 @@
 			md = checkfield(md,'fieldname','slr.abstol','size',[1 1]);
 			md = checkfield(md,'fieldname','slr.maxiter','size',[1 1],'>=',1);
+			md = checkfield(md,'fieldname','slr.store_green_functions','value',[0 1]);
 
 			%check that love numbers are provided at the same level of accuracy: 
@@ -79,4 +84,5 @@
 			fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
 			fielddisplay(self,'eustatic','eustatic sea level rise');
+			fielddisplay(self,'store_green_functions','store green functions (default 1) to speed up solutoin (though memory intense)');
 			fielddisplay(self,'legendre_precompute','precompute legendre coefficients? (default is 0)');
 			if(self.legendre_precompute)
@@ -95,4 +101,5 @@
 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean');
 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
+			WriteData(fid,'object',self,'class','sealevelrise','fieldname','store_green_functions','format','Boolean');
 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','legendre_precompute','format','Boolean');
 			if(self.legendre_precompute),
@@ -108,4 +115,5 @@
 			writejs1Darray(fid,[modelname '.srl.love_h'],self.love_h);
 			writejs1Darray(fid,[modelname '.srl.love_k'],self.love_k);
+			writejsdouble(fid,[modelname '.slr.store_green_functions'],self.store_green_functions);
 			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
 			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
