Index: /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp	(revision 2311)
+++ /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp	(revision 2312)
@@ -23,5 +23,11 @@
 	int      numberofdofspernode;
 	int      dim;
-
+	char**   parameteroutput=NULL;
+	char*    descriptor=NULL;
+	char*    tag=NULL;
+	#ifdef _SERIAL_
+		mxArray* pfield=NULL;
+		mxArray* pfield2=NULL;
+	#endif
 
 	/*Initialize dataset: */
@@ -218,8 +224,50 @@
 	xfree((void**)&iomodel->riftinfo); 
 	
+	
+	/*parameteroutput: */
+	count++;
+	param= new Param(count,"numoutput",INTEGER);
+	param->SetInteger(iomodel->numoutput);
+	parameters->AddObject(param);
+
+	if(iomodel->numoutput){
+		parameteroutput=(char**)xmalloc(iomodel->numoutput*sizeof(char*));
+
+		#ifdef _SERIAL_
+		pfield=mxGetField(iomodel_handle,0,"parameteroutput");
+		for(i=0;i<iomodel->numoutput;i++){
+			pfield2=mxGetCell(pfield,i);
+			FetchData((void**)&descriptor,NULL,NULL,pfield2,"String",NULL);
+			parameteroutput[i]=descriptor;
+		}
+		#else
+		tag=(char*)xmalloc((strlen("parameteroutput_i")+1)*sizeof(char));
+		for(i=0;i<iomodel->numoutput;i++){
+			sprintf(tag,"%s%i","parameteroutput_",i);
+			IoModelFetchData((void**)&descriptor,NULL,NULL,iomodel_handle,tag,"String",NULL);
+			parameteroutput[i]=descriptor;
+		}
+		#endif
+
+		/*Ok, we have all the parameter output  descriptors. Build a parameter with it: */
+		count++;
+		param= new Param(count,"parameteroutput",STRINGARRAY);
+		param->SetStringArray(parameteroutput,iomodel->numoutput);
+		parameters->AddObject(param);
+	}
+
 	/*All our datasets are already ordered by ids. Set presort flag so that later on, when sorting is requested on these 
 	 * datasets, it will not be redone: */
 	parameters->Presort();
 
+	/*Free data: */
+	xfree((void**)&tag);
+	for(i=0;i<iomodel->numoutput;i++){
+		char* descriptor=parameteroutput[i];
+		xfree((void**)&descriptor);
+	}
+	xfree((void**)&parameteroutput);
+
+
 	/*Assign output pointer: */
 	*pparameters=parameters;
Index: /issm/trunk/src/c/ModelProcessorx/IoModel.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/IoModel.cpp	(revision 2311)
+++ /issm/trunk/src/c/ModelProcessorx/IoModel.cpp	(revision 2312)
@@ -160,4 +160,7 @@
 	/*!basal: */
 	iomodel->accumulation=NULL;
+	
+	/*parameter output: */
+	iomodel->numoutput=0;
 
 	/*elements type: */
@@ -368,4 +371,7 @@
 		IoModelFetchData((void**)&iomodel->qmu_npart,NULL,NULL,iomodel_handle,"npart","Integer",NULL);
 	}
+	
+	/*parameter output : */
+	IoModelFetchData((void**)&iomodel->numoutput,NULL,NULL,iomodel_handle,"numoutput","Integer",NULL);
 
 	/*Assign output pointers: */
Index: /issm/trunk/src/c/ModelProcessorx/IoModel.h
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/IoModel.h	(revision 2311)
+++ /issm/trunk/src/c/ModelProcessorx/IoModel.h	(revision 2312)
@@ -157,4 +157,6 @@
 	double*  accumulation;
 
+	/*parameter output: */
+	int      numoutput;
 
 	/*exterior data: */
