Index: /issm/trunk-jpl/src/c/classes/DependentObject.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/DependentObject.cpp	(revision 16399)
+++ /issm/trunk-jpl/src/c/classes/DependentObject.cpp	(revision 16400)
@@ -15,5 +15,5 @@
 /*FUNCTION DependentObject::DependentObject(){{{*/
 DependentObject::DependentObject(){
-	this->name=NoneEnum;
+	this->name=NulL;
 	this->type=0;
 	this->index=-1;
@@ -23,5 +23,5 @@
 DependentObject::DependentObject(int in_name, int in_type,int in_index){
 
-	this->name=in_name;
+	this->name=xNew<char>(strlen(in_name)+1); xMemCpy<char>(this->name,in_name,strlen(in_name)+1);
 	this->type=in_type;
 	this->index=in_index;
@@ -33,4 +33,5 @@
 /*FUNCTION DependentObject::~DependentObject() {{{*/
 DependentObject::~DependentObject(){ //destructor
+	xDelete<char>(this->name);
 }
 /*}}}*/
@@ -41,5 +42,5 @@
 
 	_printf_("DependentObject:\n");
-	_printf_("   name: " << EnumToStringx(this->name) << "\n");
+	_printf_("   name: " << this->name << "\n");
 	if(this->type==0)
 		_printf_("   type: scalar\n");
@@ -88,11 +89,9 @@
 void  DependentObject::Responsex(IssmDouble* poutput_value,FemModel* femmodel){
 
-	if(this->name==MassFluxEnum){
-
-		/*to identify the mass flux that will be computed, we need the index of the profile: */
-		femmodel->parameters->SetParam(this->index,IndexEnum);
+	/*Is this some special type of response for which we need to go in the output definitions? :*/
+	if (StringToEnumx(this->name,false)==-1){
+		*poutput_value=OutputDefinitionsResponsex(femmodel,this->name);
 	}
-
-	femmodel->Responsex(poutput_value,this->name);
+	else femmodel->Responsex(poutput_value,this->name);
 
 }
Index: /issm/trunk-jpl/src/c/classes/DependentObject.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/DependentObject.h	(revision 16399)
+++ /issm/trunk-jpl/src/c/classes/DependentObject.h	(revision 16400)
@@ -17,5 +17,5 @@
 	public:
 
-		int name;
+		char* name;
 		int type;  /*0: scalar, 1: vertex*/
 		int index;  /*0: scalar, 1: vertex*/
@@ -23,5 +23,5 @@
 		/*DependentObject constructors, destructors {{{*/
 		DependentObject();
-		DependentObject(int name, int type,int index);
+		DependentObject(char* name, int type,int index);
 		~DependentObject();
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 16399)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 16400)
@@ -15,5 +15,5 @@
 	int         num_dependent_objects;
 	int         num_dep=0;
-	int*        names=NULL;
+	char**      names=NULL;
 	int*        types=NULL;
 	int         dummy;
@@ -71,5 +71,5 @@
 
 		if(num_dependent_objects){
-			iomodel->FetchData(&names,&dummy,&dummy,AutodiffDependentObjectNamesEnum);
+			iomodel->FetchData(&names,&dummy,AutodiffDependentObjectNamesEnum);
 			iomodel->FetchData(&types,&dummy,&dummy,AutodiffDependentObjectTypesEnum);
 			iomodel->FetchData(&indices,&dummy,&dummy,AutodiffDependentObjectIndicesEnum);
Index: /issm/trunk-jpl/src/m/classes/autodiff.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/autodiff.m	(revision 16399)
+++ /issm/trunk-jpl/src/m/classes/autodiff.m	(revision 16400)
@@ -101,5 +101,5 @@
 
 			if(num_dependent_objects),
-				names=zeros(num_dependent_objects,1);
+				names={};
 				types=zeros(num_dependent_objects,1);
 				indices=zeros(num_dependent_objects,1);
@@ -108,9 +108,9 @@
 					dep=obj.dependents{i};
 
-					names(i)=StringToEnum(dep.name);
+					names{i}=dep.name;
 					types(i)=dep.typetoscalar();
 					indices(i)=dep.index;
 				end
-				WriteData(fid,'data',names,'enum',AutodiffDependentObjectNamesEnum(),'format','IntMat','mattype',3);
+				WriteData(fid,'data',names,'enum',AutodiffDependentObjectNamesEnum(),'format','StringArray');
 				WriteData(fid,'data',types,'enum',AutodiffDependentObjectTypesEnum(),'format','IntMat','mattype',3);
 				WriteData(fid,'data',indices,'enum',AutodiffDependentObjectIndicesEnum(),'format','IntMat','mattype',3);
Index: /issm/trunk-jpl/src/m/classes/autodiff.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/autodiff.py	(revision 16399)
+++ /issm/trunk-jpl/src/m/classes/autodiff.py	(revision 16400)
@@ -103,14 +103,14 @@
 
 		if num_dependent_objects:
-			names=numpy.zeros(num_dependent_objects)
+			names=[]
 			types=numpy.zeros(num_dependent_objects)
 			indices=numpy.zeros(num_dependent_objects)
 
 			for i,dep in enumerate(self.dependents):
-				names[i]=StringToEnum(dep.name)[0]
+				names[i]=dep.name
 				types[i]=dep.typetoscalar()
 				indices[i]=dep.index
 
-			WriteData(fid,'data',names,'enum',AutodiffDependentObjectNamesEnum(),'format','IntMat','mattype',3)
+			WriteData(fid,'data',names,'enum',AutodiffDependentObjectNamesEnum(),'format','StringArray')
 			WriteData(fid,'data',types,'enum',AutodiffDependentObjectTypesEnum(),'format','IntMat','mattype',3)
 			WriteData(fid,'data',indices,'enum',AutodiffDependentObjectIndicesEnum(),'format','IntMat','mattype',3)
