Index: /issm/trunk-jpl/src/c/analyses/masstransport_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/masstransport_core.cpp	(revision 16362)
+++ /issm/trunk-jpl/src/c/analyses/masstransport_core.cpp	(revision 16363)
@@ -13,8 +13,9 @@
 
 	/*parameters: */
+	int   i;
 	bool  save_results;
 	bool  issmbgradients,ispdd,isdelta18o,isFS,isfreesurface,dakota_analysis;
 	int   solution_type;
-	int  *requested_outputs = NULL;
+	char** requested_outputs = NULL;
 	int   numoutputs        = 0;
 
@@ -77,4 +78,4 @@
 
 	/*Free ressources:*/
-	xDelete<int>(requested_outputs);
+	if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);} 
 }
Index: /issm/trunk-jpl/src/c/analyses/steadystate_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/steadystate_core.cpp	(revision 16362)
+++ /issm/trunk-jpl/src/c/analyses/steadystate_core.cpp	(revision 16363)
@@ -21,4 +21,5 @@
 
 	/*intermediary: */
+	int i;
 	int step; 
 	Vector<IssmDouble>* ug     = NULL;
@@ -32,5 +33,5 @@
 	IssmDouble  reltol;
 	int         numoutputs        = 0;
-	int        *requested_outputs = NULL;
+	char**      requested_outputs = NULL;
 
 	/* recover parameters:*/
@@ -102,6 +103,6 @@
 	delete ug_old;
 	delete tg;
-	delete ug;
-	xDelete<int>(requested_outputs);
+	delete ug;	
+	if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);}
 }
 bool steadystateconvergence(Vector<IssmDouble>* tg,Vector<IssmDouble>* tg_old,Vector<IssmDouble>* ug,Vector<IssmDouble>* ug_old,IssmDouble reltol){
Index: /issm/trunk-jpl/src/c/analyses/stressbalance_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/stressbalance_core.cpp	(revision 16362)
+++ /issm/trunk-jpl/src/c/analyses/stressbalance_core.cpp	(revision 16363)
@@ -21,5 +21,7 @@
 	int   solution_type;
 	int   numoutputs        = 0;
-	int  *requested_outputs = NULL;
+	char** requested_outputs = NULL;
+	int    i;
+
 
 	/* recover parameters:*/
@@ -96,5 +98,5 @@
 	if(solution_type==StressbalanceSolutionEnum)femmodel->RequestedDependentsx();
 
-	/*Free ressources:*/
-	xDelete<int>(requested_outputs);
+	/*Free ressources:*/	
+	if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);}
 }
Index: /issm/trunk-jpl/src/c/analyses/transient_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/transient_core.cpp	(revision 16362)
+++ /issm/trunk-jpl/src/c/analyses/transient_core.cpp	(revision 16363)
@@ -20,4 +20,5 @@
 
 	/*parameters: */
+	int    i;
 	IssmDouble starttime,finaltime,dt,yts;
 	bool   isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isenthalpy,isdelta18o,isgia;
@@ -27,5 +28,6 @@
 	int    meshtype,groundingline_migration;
 	int    numoutputs         = 0;
-	int   *requested_outputs = NULL;
+	char** requested_outputs = NULL;
+
 
 	/*intermediary: */
@@ -184,5 +186,5 @@
 	femmodel->RequestedDependentsx();
 
-	/*Free ressources:*/
-	xDelete<int>(requested_outputs);
+	/*Free ressources:*/	
+	if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);}
 }
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 16362)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 16363)
@@ -470,7 +470,7 @@
 }
 /*}}}*/
-void FemModel::RequestedOutputsx(int* requested_outputs, int numoutputs){/*{{{*/
-
-	int      output_enum;
+void FemModel::RequestedOutputsx(char** requested_outputs, int numoutputs){/*{{{*/
+
+	char*    output_string;
 	int      step;
 	IssmDouble   time;
@@ -485,31 +485,25 @@
 	if(numoutputs){
 		for(int i=0;i<numoutputs;i++){
-			output_enum=requested_outputs[i];
-
-			switch(output_enum){
-
-				case IceVolumeEnum:
-					Responsex(&output_value,"IceVolume");
-					results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeEnum,reCast<IssmPDouble>(output_value),step,time));
-					break;
-				case IceVolumeAboveFloatationEnum:
-					Responsex(&output_value,"IceVolumeAboveFloatation");
-					results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeAboveFloatationEnum,reCast<IssmPDouble>(output_value),step,time));
-					break;
-				case TotalSmbEnum:
-					Responsex(&output_value,"TotalSmb");
-					results->AddObject(new GenericExternalResult<double>(results->Size()+1,TotalSmbEnum,reCast<IssmPDouble>(output_value),step,time));
-					break;
-				case MaxVelEnum:
-					Responsex(&output_value,"MaxVel");
-					results->AddObject(new GenericExternalResult<double>(results->Size()+1,MaxVelEnum,reCast<IssmPDouble>(output_value),step,time));
-					break;
-				default:
-					/*create this output in the element inputs, and then transfer to results:*/
-					for(int j=0;j<elements->Size();j++){
-						element=(Element*)elements->GetObjectByOffset(j);
-						element->RequestedOutput(output_enum,step,time);
-					}
-					break;
+			output_string=requested_outputs[i];
+
+			if (strcmp(output_string,"IceVolume")==0){
+				Responsex(&output_value,output_string);
+				results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeEnum,reCast<IssmPDouble>(output_value),step,time));
+
+			}
+			else if (strcmp(output_string,"TotalSmb")==0){
+				Responsex(&output_value,output_string);
+				results->AddObject(new GenericExternalResult<double>(results->Size()+1,TotalSmbEnum,reCast<IssmPDouble>(output_value),step,time));
+			}
+			else if (strcmp(output_string,"MaxVel")==0){
+				Responsex(&output_value,output_string);
+				results->AddObject(new GenericExternalResult<double>(results->Size()+1,MaxVelEnum,reCast<IssmPDouble>(output_value),step,time));
+			}
+			else{
+				/*create this output in the element inputs, and then transfer to results:*/
+				for(int j=0;j<elements->Size();j++){
+					element=(Element*)elements->GetObjectByOffset(j);
+					element->RequestedOutput(StringToEnumx(output_string),step,time);
+				}
 			}
 		}
Index: /issm/trunk-jpl/src/c/classes/FemModel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 16362)
+++ /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 16363)
@@ -82,5 +82,5 @@
 		void DakotaResponsesx(double* d_responses,char** responses_descriptors,int numresponsedescriptors,int d_numresponses);
 		#endif
-		void RequestedOutputsx(int* requested_outputs, int numoutputs);
+		void RequestedOutputsx(char** requested_outputs, int numoutputs);
 		void RequestedDependentsx(void);
 		void Responsex(IssmDouble* presponse,int response_descriptor_enum);
Index: /issm/trunk-jpl/src/c/classes/IoModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 16362)
+++ /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 16363)
@@ -339,4 +339,19 @@
 	if(vector)if (!this->independents[dataenum]) xDelete<IssmDouble>(vector);
 
+} /*}}}*/
+/*FUNCTION IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum) {{{*/
+void  IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum){
+
+	int i;
+	char** stringarray=*pstringarray;
+	
+	if (numstrings){
+		for (i=0;i<numstrings;i++){
+			char* string=stringarray[i]; 
+			xDelete<char>(string);
+		}
+		xDelete<char*>(stringarray);
+	}
+	*pstringarray=NULL;
 } /*}}}*/
 /*FUNCTION IoModel::FetchConstants{{{*/
Index: /issm/trunk-jpl/src/c/classes/IoModel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.h	(revision 16362)
+++ /issm/trunk-jpl/src/c/classes/IoModel.h	(revision 16363)
@@ -67,4 +67,5 @@
 		void        DeleteData(int num,...);
 		void        DeleteData(IssmDouble* vector, int dataenum);
+		void        DeleteData(char*** pstringarray, int numstrings, int dataenum);
 		void        FetchConstants(void);
 		void        FetchData(bool* pboolean,int data_enum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 16362)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 16363)
@@ -21,5 +21,5 @@
 	int         numoutputs,meshtype;
 	Parameters *parameters       = NULL;
-	IssmDouble *requestedoutputs = NULL;
+	char**      requestedoutputs = NULL;
 	IssmDouble  time;
 	bool        ispdd,isdelta18o;
@@ -136,18 +136,19 @@
 	parameters->AddObject(new BoolParam(SaveResultsEnum,true));
 
-	iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,TransientRequestedOutputsEnum);
+	/*Requested outputs */
+	iomodel->FetchData(&requestedoutputs,&numoutputs,TransientRequestedOutputsEnum);
 	parameters->AddObject(new IntParam(TransientNumRequestedOutputsEnum,numoutputs));
-	if(numoutputs)parameters->AddObject(new IntVecParam(TransientRequestedOutputsEnum,requestedoutputs,numoutputs));
-	iomodel->DeleteData(requestedoutputs,TransientRequestedOutputsEnum);
-
-	iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,SteadystateRequestedOutputsEnum);
+	if(numoutputs)parameters->AddObject(new StringArrayParam(TransientRequestedOutputsEnum,requestedoutputs,numoutputs));
+	iomodel->DeleteData(&requestedoutputs,numoutputs,TransientRequestedOutputsEnum);
+
+	iomodel->FetchData(&requestedoutputs,&numoutputs,SteadystateRequestedOutputsEnum);
 	parameters->AddObject(new IntParam(SteadystateNumRequestedOutputsEnum,numoutputs));
-	if(numoutputs)parameters->AddObject(new IntVecParam(SteadystateRequestedOutputsEnum,requestedoutputs,numoutputs));
-	iomodel->DeleteData(requestedoutputs,SteadystateRequestedOutputsEnum);
-
-	iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,MasstransportRequestedOutputsEnum);
+	if(numoutputs)parameters->AddObject(new StringArrayParam(SteadystateRequestedOutputsEnum,requestedoutputs,numoutputs));
+	iomodel->DeleteData(&requestedoutputs,numoutputs,SteadystateRequestedOutputsEnum);
+
+	iomodel->FetchData(&requestedoutputs,&numoutputs,MasstransportRequestedOutputsEnum);
 	parameters->AddObject(new IntParam(MasstransportNumRequestedOutputsEnum,numoutputs));
-	if(numoutputs)parameters->AddObject(new IntVecParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs));
-	iomodel->DeleteData(requestedoutputs,MasstransportRequestedOutputsEnum);
+	if(numoutputs)parameters->AddObject(new StringArrayParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs));
+	iomodel->DeleteData(&requestedoutputs,numoutputs,MasstransportRequestedOutputsEnum);
 
 	/*Deal with mass flux segments: {{{*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateParametersStressbalance.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateParametersStressbalance.cpp	(revision 16362)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateParametersStressbalance.cpp	(revision 16363)
@@ -12,5 +12,5 @@
 	/*Intermediaries*/
 	int         numoutputs;
-	IssmDouble *requestedoutputs = NULL;
+	char**      requestedoutputs = NULL;
 
 	/*Get parameters: */
@@ -35,8 +35,8 @@
 
 	/*Requested outputs*/
-	iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,StressbalanceRequestedOutputsEnum);
+	iomodel->FetchData(&requestedoutputs,&numoutputs,StressbalanceRequestedOutputsEnum);
 	parameters->AddObject(new IntParam(StressbalanceNumRequestedOutputsEnum,numoutputs));
-	if(numoutputs)parameters->AddObject(new IntVecParam(StressbalanceRequestedOutputsEnum,requestedoutputs,numoutputs));
-	iomodel->DeleteData(requestedoutputs,StressbalanceRequestedOutputsEnum);
+	if(numoutputs)parameters->AddObject(new StringArrayParam(StressbalanceRequestedOutputsEnum,requestedoutputs,numoutputs));
+	iomodel->DeleteData(&requestedoutputs,numoutputs,StressbalanceRequestedOutputsEnum);
 
 	/*Assign output pointer: */
Index: /issm/trunk-jpl/src/m/classes/masstransport.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/masstransport.m	(revision 16362)
+++ /issm/trunk-jpl/src/m/classes/masstransport.m	(revision 16363)
@@ -13,5 +13,5 @@
 		 vertex_pairing         = NaN;
 		 penalty_factor         = 0;
-		 requested_outputs      = NaN;
+		 requested_outputs      = {};
 	end
 	methods (Static)
@@ -85,5 +85,5 @@
 			md = checkfield(md,'masstransport.min_thickness','>',0);
 			if ~isempty(md.masstransport.requested_outputs),
-				md = checkfield(md,'masstransport.requested_outputs','size',[NaN 1]);
+				md = checkfield(md,'masstransport.requested_outputs','size',[1 NaN]);
 			end
 
@@ -111,5 +111,5 @@
 			WriteData(fid,'object',obj,'fieldname','vertex_pairing','format','DoubleMat','mattype',3);
 			WriteData(fid,'object',obj,'fieldname','penalty_factor','format','Double');
-			WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3);
+			WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray');
 		end % }}}
 	end
Index: /issm/trunk-jpl/src/m/classes/masstransport.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/masstransport.py	(revision 16362)
+++ /issm/trunk-jpl/src/m/classes/masstransport.py	(revision 16363)
@@ -21,5 +21,5 @@
 		self.vertex_pairing         = float('NaN')
 		self.penalty_factor         = 0
-		self.requested_outputs      = float('NaN')
+		self.requested_outputs      = []
 
 		#set defaults
@@ -66,5 +66,5 @@
 		md = checkfield(md,'masstransport.min_thickness','>',0)
 		if not md.masstransport.requested_outputs:
-			md = checkfield(md,'masstransport.requested_outputs','size',[float('NaN'),1])
+			md = checkfield(md,'masstransport.requested_outputs','size',[1, float('NaN')])
 
 		return md
@@ -78,4 +78,4 @@
 		WriteData(fid,'object',self,'fieldname','vertex_pairing','format','DoubleMat','mattype',3)
 		WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double')
-		WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3);
+		WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray');
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/snowpack.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/snowpack.m	(revision 16362)
+++ /issm/trunk-jpl/src/m/classes/snowpack.m	(revision 16363)
@@ -471,5 +471,5 @@
 			WriteData(fid,'object',obj,'class','snowpack','fieldname','rift_penalty_threshold','format','Integer');
 			WriteData(fid,'object',obj,'class','snowpack','fieldname','referential','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',obj,'class','snowpack','fieldname','requested_outputs','format','DoubleMat','mattype',3);
+			WriteData(fid,'object',obj,'class','snowpack','fieldname','requested_outputs','format','StringArray');
 			WriteData(fid,'data',obj.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum);
 			WriteData(fid,'data',obj.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum);
Index: /issm/trunk-jpl/src/m/classes/steadystate.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/steadystate.m	(revision 16362)
+++ /issm/trunk-jpl/src/m/classes/steadystate.m	(revision 16363)
@@ -8,5 +8,5 @@
 		reltol            = 0;
 		maxiter           = 0;
-		requested_outputs = NaN;
+		requested_outputs = {};
 	end
 	methods
@@ -50,5 +50,5 @@
 			WriteData(fid,'object',obj,'fieldname','reltol','format','Double');
 			WriteData(fid,'object',obj,'fieldname','maxiter','format','Integer');
-			WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3);
+			WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray');
 		end % }}}
 	end
Index: /issm/trunk-jpl/src/m/classes/steadystate.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/steadystate.py	(revision 16362)
+++ /issm/trunk-jpl/src/m/classes/steadystate.py	(revision 16363)
@@ -16,5 +16,5 @@
 		self.reltol            = 0
 		self.maxiter           = 0
-		self.requested_outputs = float('NaN')
+		self.requested_outputs = []
 
 		#set defaults
@@ -56,4 +56,4 @@
 		WriteData(fid,'object',self,'fieldname','reltol','format','Double')
 		WriteData(fid,'object',self,'fieldname','maxiter','format','Integer')
-		WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3)
+		WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray')
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/stressbalance.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/stressbalance.m	(revision 16362)
+++ /issm/trunk-jpl/src/m/classes/stressbalance.m	(revision 16363)
@@ -23,5 +23,5 @@
 		referential            = NaN;
 		loadingforce           = NaN;
-		requested_outputs      = NaN;
+		requested_outputs      = {};
 	end
 	methods
@@ -92,5 +92,5 @@
 			md = checkfield(md,'stressbalance.loadingforce','size',[md.mesh.numberofvertices 3]);
 			if ~isempty(md.stressbalance.requested_outputs),
-				md = checkfield(md,'stressbalance.requested_outputs','size',[NaN 1]);
+				md = checkfield(md,'stressbalance.requested_outputs','size',[1 NaN]);
 			end
 
@@ -172,5 +172,5 @@
 			WriteData(fid,'object',obj,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer');
 			WriteData(fid,'object',obj,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',obj,'class','stressbalance','fieldname','requested_outputs','format','DoubleMat','mattype',3);
+			WriteData(fid,'object',obj,'class','stressbalance','fieldname','requested_outputs','format','StringArray');
 			WriteData(fid,'data',obj.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum);
 			WriteData(fid,'data',obj.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum);
Index: /issm/trunk-jpl/src/m/classes/stressbalance.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/stressbalance.py	(revision 16362)
+++ /issm/trunk-jpl/src/m/classes/stressbalance.py	(revision 16363)
@@ -34,5 +34,5 @@
 		self.referential              = float('NaN')
 		self.loadingforce             = float('NaN')
-		self.requested_outputs        = float('NaN')
+		self.requested_outputs        = []
 
 		#set defaults
@@ -124,5 +124,5 @@
 		md = checkfield(md,'stressbalance.loadingforce','size',[md.mesh.numberofvertices,3])
 		if not md.stressbalance.requested_outputs:
-			md = checkfield(md,'stressbalance.requested_outputs','size',[float('NaN'),1])
+			md = checkfield(md,'stressbalance.requested_outputs','size',[1, float('NaN')])
 
 		#singular solution
@@ -172,5 +172,5 @@
 		WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer')
 		WriteData(fid,'object',self,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1)
-		WriteData(fid,'object',self,'class','stressbalance','fieldname','requested_outputs','format','DoubleMat','mattype',3)
+		WriteData(fid,'object',self,'class','stressbalance','fieldname','requested_outputs','format','StringArray')
 		WriteData(fid,'data',self.loadingforce[:,0],'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum())
 		WriteData(fid,'data',self.loadingforce[:,1],'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum())
Index: /issm/trunk-jpl/src/m/classes/transient.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/transient.m	(revision 16362)
+++ /issm/trunk-jpl/src/m/classes/transient.m	(revision 16363)
@@ -12,5 +12,5 @@
 		isgia             = 0;
 		isdamage             = 0;
-		requested_outputs = NaN;
+		requested_outputs = {};
 	end
 	methods
@@ -45,5 +45,5 @@
 			md = checkfield(md,'transient.isgia','numel',[1],'values',[0 1]);
 			md = checkfield(md,'transient.isdamage','numel',[1],'values',[0 1]);
-			md = checkfield(md,'transient.requested_outputs','size',[NaN 1]);
+			md = checkfield(md,'transient.requested_outputs','size',[1 NaN]);
 
 		end % }}}
@@ -67,5 +67,5 @@
 			WriteData(fid,'object',obj,'fieldname','isgia','format','Boolean');
 			WriteData(fid,'object',obj,'fieldname','isdamage','format','Boolean');
-			WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3);
+			WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray');
 		end % }}}
 	end
Index: /issm/trunk-jpl/src/m/classes/transient.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/transient.py	(revision 16362)
+++ /issm/trunk-jpl/src/m/classes/transient.py	(revision 16363)
@@ -18,5 +18,5 @@
 		self.isgroundingline   = False
 		self.isgia             = False
-		self.requested_outputs = float('NaN')
+		self.requested_outputs = []
 
 		#set defaults
@@ -56,5 +56,5 @@
 		md = checkfield(md,'transient.isgroundingline','numel',[1],'values',[0,1])
 		md = checkfield(md,'transient.isgia','numel',[1],'values',[0,1])
-		md = checkfield(md,'transient.requested_outputs','size',[float('NaN')])
+		md = checkfield(md,'transient.requested_outputs','size',[1, float('NaN')])
 
 
@@ -67,5 +67,5 @@
 		WriteData(fid,'object',self,'fieldname','isgroundingline','format','Boolean')
 		WriteData(fid,'object',self,'fieldname','isgia','format','Boolean')
-		WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3)
+		WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray')
 	# }}}
 
Index: /issm/trunk-jpl/test/NightlyRun/android.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/android.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/android.m	(revision 16363)
@@ -5,5 +5,5 @@
 md.cluster=generic('name',oshostname(),'np',3);
 md.verbose=verbose('mprocessor',true,'module',true,'solution',true,'solver',true,'convergence',true,'control',true,'qmu',true,'autodiff',true);
-md.stressbalance.requested_outputs=StressTensorEnum();
+md.stressbalance.requested_outputs={'StressTensor'};
 md=solve(md,StressbalanceSolutionEnum());
 
Index: /issm/trunk-jpl/test/NightlyRun/test101.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test101.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test101.m	(revision 16363)
@@ -4,5 +4,6 @@
 md=setflowequation(md,'SSA','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md.stressbalance.requested_outputs=StressTensorEnum();
+md.stressbalance.requested_outputs={'StressTensor'};
+md.verbose=verbose('11111111');
 md=solve(md,StressbalanceSolutionEnum());
 
Index: /issm/trunk-jpl/test/NightlyRun/test101.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test101.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test101.py	(revision 16363)
@@ -13,5 +13,5 @@
 md=setflowequation(md,'SSA','all')
 md.cluster=generic('name',oshostname(),'np',3)
-md.stressbalance.requested_outputs=StressTensorEnum()
+md.stressbalance.requested_outputs=['StressTensor']
 md=solve(md,StressbalanceSolutionEnum())
 
Index: /issm/trunk-jpl/test/NightlyRun/test103.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test103.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test103.m	(revision 16363)
@@ -5,5 +5,5 @@
 md=setflowequation(md,'HO','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md.stressbalance.requested_outputs=StressTensorEnum();
+md.stressbalance.requested_outputs={'StressTensor'};
 md=solve(md,StressbalanceSolutionEnum());
 
Index: /issm/trunk-jpl/test/NightlyRun/test103.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test103.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test103.py	(revision 16363)
@@ -14,5 +14,5 @@
 md=setflowequation(md,'HO','all')
 md.cluster=generic('name',oshostname(),'np',3)
-md.stressbalance.requested_outputs=StressTensorEnum()
+md.stressbalance.requested_outputs=['StressTensor']
 md=solve(md,StressbalanceSolutionEnum())
 
Index: /issm/trunk-jpl/test/NightlyRun/test110.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test110.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test110.m	(revision 16363)
@@ -4,5 +4,5 @@
 md=setflowequation(md,'SSA','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md.transient.requested_outputs=IceVolumeEnum();
+md.transient.requested_outputs={'IceVolume'};
 
 md=solve(md,TransientSolutionEnum());
Index: /issm/trunk-jpl/test/NightlyRun/test110.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test110.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test110.py	(revision 16363)
@@ -13,5 +13,5 @@
 md=setflowequation(md,'SSA','all')
 md.cluster=generic('name',oshostname(),'np',3)
-md.transient.requested_outputs=IceVolumeEnum()
+md.transient.requested_outputs=['IceVolume']
 
 md=solve(md,TransientSolutionEnum())
Index: /issm/trunk-jpl/test/NightlyRun/test111.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test111.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test111.m	(revision 16363)
@@ -5,5 +5,5 @@
 md=setflowequation(md,'HO','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md.transient.requested_outputs=IceVolumeEnum();
+md.transient.requested_outputs={'IceVolume'};
 md=solve(md,TransientSolutionEnum());
 
Index: /issm/trunk-jpl/test/NightlyRun/test111.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test111.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test111.py	(revision 16363)
@@ -14,5 +14,5 @@
 md=setflowequation(md,'HO','all')
 md.cluster=generic('name',oshostname(),'np',3)
-md.transient.requested_outputs=IceVolumeEnum()
+md.transient.requested_outputs=['IceVolume']
 md=solve(md,TransientSolutionEnum())
 
Index: /issm/trunk-jpl/test/NightlyRun/test234.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test234.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test234.m	(revision 16363)
@@ -57,5 +57,5 @@
 
 md.stressbalance.reltol=10^-5; %tighten for qmu analyses
-md.transient.requested_outputs=IceVolumeEnum();
+md.transient.requested_outputs={'IceVolume'};
 
 %solve
Index: /issm/trunk-jpl/test/NightlyRun/test235.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test235.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test235.m	(revision 16363)
@@ -52,5 +52,5 @@
 
 md.stressbalance.reltol=10^-5; %tighten for qmu analyses
-md.transient.requested_outputs=IceVolumeEnum();
+md.transient.requested_outputs={'IceVolume'};
 
 %solve
Index: /issm/trunk-jpl/test/NightlyRun/test3001.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3001.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3001.m	(revision 16363)
@@ -4,5 +4,5 @@
 md=setflowequation(md,'SSA','all');
 md.cluster=generic('name',oshostname(),'np',1);
-md.stressbalance.requested_outputs=StressTensorEnum();
+md.stressbalance.requested_outputs={'StressTensor'};
 md.autodiff.isautodiff=true;
 md.toolkits.DefaultAnalysis=issmgslsolver();
Index: /issm/trunk-jpl/test/NightlyRun/test3001.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3001.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3001.py	(revision 16363)
@@ -13,5 +13,5 @@
 md=setflowequation(md,'SSA','all')
 md.cluster=generic('name',oshostname(),'np',1)
-md.stressbalance.requested_outputs=StressTensorEnum()
+md.stressbalance.requested_outputs=['StressTensor']
 md.toolkits.DefaultAnalysis=issmgslsolver()
 md.autodiff.isautodiff=True
Index: /issm/trunk-jpl/test/NightlyRun/test3003.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3003.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3003.m	(revision 16363)
@@ -5,5 +5,5 @@
 md=setflowequation(md,'HO','all');
 md.cluster=generic('name',oshostname(),'np',1);
-md.stressbalance.requested_outputs=StressTensorEnum();
+md.stressbalance.requested_outputs={'StressTensor'};
 md.autodiff.isautodiff=true;
 md.toolkits.DefaultAnalysis=issmgslsolver();
Index: /issm/trunk-jpl/test/NightlyRun/test3003.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3003.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3003.py	(revision 16363)
@@ -14,5 +14,5 @@
 md=setflowequation(md,'HO','all')
 md.cluster=generic('name',oshostname(),'np',1)
-md.stressbalance.requested_outputs=StressTensorEnum()
+md.stressbalance.requested_outputs=['StressTensor']
 md.toolkits.DefaultAnalysis=issmgslsolver()
 md.autodiff.isautodiff=True
Index: /issm/trunk-jpl/test/NightlyRun/test3010.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3010.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3010.m	(revision 16363)
@@ -4,5 +4,5 @@
 md=setflowequation(md,'SSA','all');
 md.cluster=generic('name',oshostname(),'np',1);
-md.transient.requested_outputs=IceVolumeEnum();
+md.transient.requested_outputs={'IceVolume'};
 
 md.autodiff.isautodiff=true;
Index: /issm/trunk-jpl/test/NightlyRun/test3010.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3010.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3010.py	(revision 16363)
@@ -14,5 +14,5 @@
 md.cluster=generic('name',oshostname(),'np',1)
 md.toolkits.DefaultAnalysis=issmgslsolver()
-md.transient.requested_outputs=IceVolumeEnum()
+md.transient.requested_outputs=['IceVolume']
 
 md.autodiff.isautodiff=True
Index: /issm/trunk-jpl/test/NightlyRun/test3015.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3015.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3015.m	(revision 16363)
@@ -8,5 +8,5 @@
 md=setflowequation(md,'SSA','all');
 md.cluster=generic('name',oshostname(),'np',1);
-md.masstransport.requested_outputs=IceVolumeEnum();
+md.masstransport.requested_outputs={'IceVolume'};
 md.verbose=verbose('autodiff',true);
 md.toolkits.DefaultAnalysis=issmgslsolver();
Index: /issm/trunk-jpl/test/NightlyRun/test3015.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3015.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3015.py	(revision 16363)
@@ -22,5 +22,5 @@
 md=setflowequation(md,'SSA','all')
 md.cluster=generic('name',oshostname(),'np',3)
-md.masstransport.requested_outputs=IceVolumeEnum()
+md.masstransport.requested_outputs=['IceVolume']
 md.verbose=verbose('autodiff',True)
 md.toolkits.DefaultAnalysis=issmgslsolver()
Index: /issm/trunk-jpl/test/NightlyRun/test3020.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3020.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3020.m	(revision 16363)
@@ -8,5 +8,5 @@
 md=setflowequation(md,'SSA','all');
 md.cluster=generic('name',oshostname(),'np',1);
-md.transient.requested_outputs=[IceVolumeEnum();MaxVelEnum()];
+md.transient.requested_outputs={'IceVolume','MaxVelEnum'};
 md.verbose=verbose('autodiff',true);
 md.stressbalance.restol=1e-4;
Index: /issm/trunk-jpl/test/NightlyRun/test3020.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3020.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3020.py	(revision 16363)
@@ -22,5 +22,5 @@
 md=setflowequation(md,'SSA','all')
 md.cluster=generic('name',oshostname(),'np',1)
-md.transient.requested_outputs=[IceVolumeEnum(),MaxVelEnum()]
+md.transient.requested_outputs=['IceVolume','MaxVel']
 md.verbose=verbose('autodiff',True)
 md.stressbalance.restol=0.000001
Index: /issm/trunk-jpl/test/NightlyRun/test3021.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3021.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3021.m	(revision 16363)
@@ -4,5 +4,5 @@
 md=setflowequation(md,'SSA','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md.stressbalance.requested_outputs=StressTensorEnum();
+md.stressbalance.requested_outputs={'StressTensor'};
 md.autodiff.isautodiff=false;
 md.toolkits.DefaultAnalysis=issmsolver();
Index: /issm/trunk-jpl/test/NightlyRun/test3101.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3101.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3101.m	(revision 16363)
@@ -4,5 +4,5 @@
 md=setflowequation(md,'SSA','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md.stressbalance.requested_outputs=StressTensorEnum();
+md.stressbalance.requested_outputs={'StressTensor'};
 md.autodiff.isautodiff=true;
 md.toolkits.DefaultAnalysis=issmmumpssolver();
Index: /issm/trunk-jpl/test/NightlyRun/test3101.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3101.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3101.py	(revision 16363)
@@ -13,5 +13,5 @@
 md=setflowequation(md,'SSA','all')
 md.cluster=generic('name',oshostname(),'np',3)
-md.stressbalance.requested_outputs=StressTensorEnum()
+md.stressbalance.requested_outputs=['StressTensor']
 md.toolkits.DefaultAnalysis=issmmumpssolver()
 md.autodiff.isautodiff=True
Index: /issm/trunk-jpl/test/NightlyRun/test3103.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3103.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3103.m	(revision 16363)
@@ -5,5 +5,5 @@
 md=setflowequation(md,'HO','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md.stressbalance.requested_outputs=StressTensorEnum();
+md.stressbalance.requested_outputs={'StressTensor'};
 md.autodiff.isautodiff=true;
 md.toolkits.DefaultAnalysis=issmmumpssolver();
Index: /issm/trunk-jpl/test/NightlyRun/test3103.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3103.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3103.py	(revision 16363)
@@ -14,5 +14,5 @@
 md=setflowequation(md,'HO','all')
 md.cluster=generic('name',oshostname(),'np',3)
-md.stressbalance.requested_outputs=StressTensorEnum()
+md.stressbalance.requested_outputs=['StressTensor']
 md.toolkits.DefaultAnalysis=issmmumpssolver()
 md.autodiff.isautodiff=True
Index: /issm/trunk-jpl/test/NightlyRun/test3110.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3110.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3110.m	(revision 16363)
@@ -4,5 +4,5 @@
 md=setflowequation(md,'SSA','all');
 md.cluster=generic('name',oshostname(),'np',3);
-md.transient.requested_outputs=IceVolumeEnum();
+md.transient.requested_outputs={'IceVolume'};
 
 md.autodiff.isautodiff=true;
Index: /issm/trunk-jpl/test/NightlyRun/test3110.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3110.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test3110.py	(revision 16363)
@@ -14,5 +14,5 @@
 md.cluster=generic('name',oshostname(),'np',3)
 md.toolkits.DefaultAnalysis=issmmumpssolver()
-md.transient.requested_outputs=IceVolumeEnum()
+md.transient.requested_outputs=['IceVolume']
 
 md.autodiff.isautodiff=True
Index: /issm/trunk-jpl/test/NightlyRun/test328.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test328.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test328.m	(revision 16363)
@@ -8,5 +8,5 @@
 md.surfaceforcings.href=md.geometry.surface;
 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
-md.transient.requested_outputs=TotalSmbEnum();
+md.transient.requested_outputs={'TotalSmb'};
 md.cluster=generic('name',oshostname(),'np',3);
 md=solve(md,TransientSolutionEnum());
Index: /issm/trunk-jpl/test/NightlyRun/test328.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test328.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test328.py	(revision 16363)
@@ -17,5 +17,5 @@
 md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y
 md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
-md.transient.requested_outputs=TotalSmbEnum()
+md.transient.requested_outputs=['TotalSmb']
 md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1)
 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
Index: /issm/trunk-jpl/test/NightlyRun/test329.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test329.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test329.m	(revision 16363)
@@ -9,5 +9,5 @@
 md.surfaceforcings.href=md.geometry.surface;
 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
-md.transient.requested_outputs=TotalSmbEnum();
+md.transient.requested_outputs={'TotalSmb'};
 md.cluster=generic('name',oshostname(),'np',3);
 md=solve(md,TransientSolutionEnum());
Index: /issm/trunk-jpl/test/NightlyRun/test329.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test329.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test329.py	(revision 16363)
@@ -20,5 +20,5 @@
 md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1)
 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
-md.transient.requested_outputs=TotalSmbEnum()
+md.transient.requested_outputs=['TotalSmb']
 md.cluster=generic('name',oshostname(),'np',3)
 md=solve(md,TransientSolutionEnum())
Index: /issm/trunk-jpl/test/NightlyRun/test424.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test424.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test424.m	(revision 16363)
@@ -13,5 +13,5 @@
 md.transient.isgroundingline=1;
 md.groundingline.migration='AgressiveMigration';
-md.transient.requested_outputs=[IceVolumeEnum();IceVolumeAboveFloatationEnum()];
+md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation'};
 
 md.cluster=generic('name',oshostname(),'np',3);
Index: /issm/trunk-jpl/test/NightlyRun/test424.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test424.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test424.py	(revision 16363)
@@ -23,5 +23,5 @@
 md.transient.isgroundingline=True
 md.groundingline.migration='AgressiveMigration'
-md.transient.requested_outputs=[IceVolumeEnum(),IceVolumeAboveFloatationEnum()]
+md.transient.requested_outputs=['IceVolume','IceVolumeAboveFloatation']
 
 md.cluster=generic('name',oshostname(),'np',3)
Index: /issm/trunk-jpl/test/NightlyRun/test426.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test426.m	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test426.m	(revision 16363)
@@ -14,5 +14,5 @@
 md.transient.isgroundingline=1;
 md.groundingline.migration='AgressiveMigration';
-md.transient.requested_outputs=[IceVolumeEnum();IceVolumeAboveFloatationEnum()];
+md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation'};
 md.cluster=generic('name',oshostname(),'np',3);
 
Index: /issm/trunk-jpl/test/NightlyRun/test426.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test426.py	(revision 16362)
+++ /issm/trunk-jpl/test/NightlyRun/test426.py	(revision 16363)
@@ -24,5 +24,5 @@
 md.transient.isgroundingline=True
 md.groundingline.migration='AgressiveMigration'
-md.transient.requested_outputs=[IceVolumeEnum(),IceVolumeAboveFloatationEnum()]
+md.transient.requested_outputs=['IceVolume','IceVolumeAboveFloatation']
 md.cluster=generic('name',oshostname(),'np',3)
 
