Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 16297)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 16298)
@@ -28,5 +28,4 @@
 	int          mass_flux_num_profiles     = 0;
 	bool         qmu_mass_flux_present      = false;
-	bool         autodiff_mass_flux_present = false;
 	bool         mass_flux_present          = false;
 	IssmDouble **array                      = NULL;
@@ -153,7 +152,6 @@
 	/*Deal with mass flux segments: {{{*/
 	iomodel->FetchData(&qmu_mass_flux_present,QmuMassFluxSegmentsPresentEnum);
-	iomodel->FetchData(&autodiff_mass_flux_present,AutodiffMassFluxSegmentsPresentEnum);
-
-	if(qmu_mass_flux_present || autodiff_mass_flux_present)mass_flux_present=true;
+
+	if(qmu_mass_flux_present)mass_flux_present=true;
 	else mass_flux_present=false;
 	parameters->AddObject(new BoolParam(MassFluxSegmentsPresentEnum,mass_flux_present));
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 16297)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 16298)
@@ -27,5 +27,4 @@
 	AutodiffFovForwardIndicesEnum,
 	AutodiffFosReverseIndexEnum,
-	AutodiffMassFluxSegmentsPresentEnum,
 	AutodiffKeepEnum,
 	AutodiffObufsizeEnum,
@@ -213,8 +212,9 @@
 	MasstransportNumRequestedOutputsEnum,
 	MasstransportRequestedOutputsEnum,
-	QmuIsdakotaEnum,
 	MassFluxSegmentsEnum,
 	MassFluxSegmentsPresentEnum,
-	QmuMassFluxSegmentsPresentEnum,
+	MassfluxatgateNameEnum,
+	MassfluxatgateSegmentsEnum,
+	QmuIsdakotaEnum,
 	QmuNumberofpartitionsEnum,
 	QmuNumberofresponsesEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 16297)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 16298)
@@ -35,5 +35,4 @@
 		case AutodiffFovForwardIndicesEnum : return "AutodiffFovForwardIndices";
 		case AutodiffFosReverseIndexEnum : return "AutodiffFosReverseIndex";
-		case AutodiffMassFluxSegmentsPresentEnum : return "AutodiffMassFluxSegmentsPresent";
 		case AutodiffKeepEnum : return "AutodiffKeep";
 		case AutodiffObufsizeEnum : return "AutodiffObufsize";
@@ -221,8 +220,9 @@
 		case MasstransportNumRequestedOutputsEnum : return "MasstransportNumRequestedOutputs";
 		case MasstransportRequestedOutputsEnum : return "MasstransportRequestedOutputs";
-		case QmuIsdakotaEnum : return "QmuIsdakota";
 		case MassFluxSegmentsEnum : return "MassFluxSegments";
 		case MassFluxSegmentsPresentEnum : return "MassFluxSegmentsPresent";
-		case QmuMassFluxSegmentsPresentEnum : return "QmuMassFluxSegmentsPresent";
+		case MassfluxatgateNameEnum : return "MassfluxatgateName";
+		case MassfluxatgateSegmentsEnum : return "MassfluxatgateSegments";
+		case QmuIsdakotaEnum : return "QmuIsdakota";
 		case QmuNumberofpartitionsEnum : return "QmuNumberofpartitions";
 		case QmuNumberofresponsesEnum : return "QmuNumberofresponses";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 16297)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 16298)
@@ -35,5 +35,4 @@
 	      else if (strcmp(name,"AutodiffFovForwardIndices")==0) return AutodiffFovForwardIndicesEnum;
 	      else if (strcmp(name,"AutodiffFosReverseIndex")==0) return AutodiffFosReverseIndexEnum;
-	      else if (strcmp(name,"AutodiffMassFluxSegmentsPresent")==0) return AutodiffMassFluxSegmentsPresentEnum;
 	      else if (strcmp(name,"AutodiffKeep")==0) return AutodiffKeepEnum;
 	      else if (strcmp(name,"AutodiffObufsize")==0) return AutodiffObufsizeEnum;
@@ -137,9 +136,9 @@
 	      else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
 	      else if (strcmp(name,"InversionCostFunctions")==0) return InversionCostFunctionsEnum;
+	      else if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum;
          else stage=2;
    }
    if(stage==2){
-	      if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum;
-	      else if (strcmp(name,"InversionIscontrol")==0) return InversionIscontrolEnum;
+	      if (strcmp(name,"InversionIscontrol")==0) return InversionIscontrolEnum;
 	      else if (strcmp(name,"InversionTao")==0) return InversionTaoEnum;
 	      else if (strcmp(name,"InversionIncompleteAdjoint")==0) return InversionIncompleteAdjointEnum;
@@ -224,8 +223,9 @@
 	      else if (strcmp(name,"MasstransportNumRequestedOutputs")==0) return MasstransportNumRequestedOutputsEnum;
 	      else if (strcmp(name,"MasstransportRequestedOutputs")==0) return MasstransportRequestedOutputsEnum;
-	      else if (strcmp(name,"QmuIsdakota")==0) return QmuIsdakotaEnum;
 	      else if (strcmp(name,"MassFluxSegments")==0) return MassFluxSegmentsEnum;
 	      else if (strcmp(name,"MassFluxSegmentsPresent")==0) return MassFluxSegmentsPresentEnum;
-	      else if (strcmp(name,"QmuMassFluxSegmentsPresent")==0) return QmuMassFluxSegmentsPresentEnum;
+	      else if (strcmp(name,"MassfluxatgateName")==0) return MassfluxatgateNameEnum;
+	      else if (strcmp(name,"MassfluxatgateSegments")==0) return MassfluxatgateSegmentsEnum;
+	      else if (strcmp(name,"QmuIsdakota")==0) return QmuIsdakotaEnum;
 	      else if (strcmp(name,"QmuNumberofpartitions")==0) return QmuNumberofpartitionsEnum;
 	      else if (strcmp(name,"QmuNumberofresponses")==0) return QmuNumberofresponsesEnum;
Index: /issm/trunk-jpl/src/m/classes/autodiff.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/autodiff.m	(revision 16297)
+++ /issm/trunk-jpl/src/m/classes/autodiff.m	(revision 16298)
@@ -83,5 +83,4 @@
 			%early return
 			if ~obj.isautodiff,
-				WriteData(fid,'data',false,'enum',AutodiffMassFluxSegmentsPresentEnum(),'format','Boolean');
 				WriteData(fid,'data',false,'enum',AutodiffKeepEnum(),'format','Boolean');
 				return;
@@ -198,20 +197,4 @@
 			end
 			%}}}
-			%deal with mass fluxes:  {{{
-			mass_flux_segments=cell(0,1);
-			for i=1:num_dependent_objects,
-				dep=obj.dependents{i};
-				if strcmpi(dep.name,'MassFlux'),
-					mass_flux_segments{end+1,1}=dep.segments;
-				end
-			end
-			if ~isempty(mass_flux_segments), 
-				WriteData(fid,'data',mass_flux_segments,'enum',MassFluxSegmentsEnum(),'format','MatArray');
-				flag=true;
-			else
-				flag=false;
-			end
-			WriteData(fid,'data',flag,'enum',AutodiffMassFluxSegmentsPresentEnum(),'format','Boolean');
-			%}}}
 			%deal with trace keep on: {{{
 			keep=false;
Index: /issm/trunk-jpl/src/m/classes/autodiff.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/autodiff.py	(revision 16297)
+++ /issm/trunk-jpl/src/m/classes/autodiff.py	(revision 16298)
@@ -86,5 +86,4 @@
 		#early return
 		if not self.isautodiff:
-			WriteData(fid,'data',False,'enum',AutodiffMassFluxSegmentsPresentEnum(),'format','Boolean')
 			WriteData(fid,'data',False,'enum',AutodiffKeepEnum(),'format','Boolean')
 			return
@@ -182,14 +181,4 @@
 			WriteData(fid,'data',indices,'enum',AutodiffFovForwardIndicesEnum(),'format','IntMat','mattype',3)
 		#}}}
-		#deal with mass fluxes:  {{{
-		mass_flux_segments=[dep.segments for dep in self.dependents if strcmpi(dep.name,'MassFlux')]
-
-		if mass_flux_segments:
-			WriteData(fid,'data',mass_flux_segments,'enum',MassFluxSegmentsEnum(),'format','MatArray')
-			flag=True
-		else:
-			flag=False
-		WriteData(fid,'data',flag,'enum',AutodiffMassFluxSegmentsPresentEnum(),'format','Boolean')
-		#}}}
 		#deal with trace keep on: {{{
 		keep=False
Index: /issm/trunk-jpl/src/m/classes/massfluxatgate.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/massfluxatgate.m	(revision 16297)
+++ /issm/trunk-jpl/src/m/classes/massfluxatgate.m	(revision 16298)
@@ -31,9 +31,13 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 			
-			md = checkfield(md,'massfluxatgate.name','empty',1);
-			md = checkfield(md,'massfluxatgate.profilename','empty',1);
+			if ~ischar(obj.name),
+				error('massfluxatgate error message: ''name'' field should be a string!');
+			end
+			if ~ischar(obj.profilename),
+				error('massfluxatgate error message: ''profilename'' field should be a string!');
+			end
 
 			%check the profilename points to a file!: 
-			if exist(profilename,'file'),
+			if exist(obj.profilename,'file')~=2,
 				error('massfluxatgate error message: file name for profile corresponding to gate does not point to a legitimate file on disk!');
 			end
Index: /issm/trunk-jpl/src/m/classes/outputdefinition.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/outputdefinition.m	(revision 16297)
+++ /issm/trunk-jpl/src/m/classes/outputdefinition.m	(revision 16298)
@@ -6,5 +6,8 @@
 classdef outputdefinition
 	properties (SetAccess=public) 
-		list                 = {};
+		definitions                 = {};
+	end
+	properties (SetAccess=private) 
+		enums                 = {};
 	end
 	methods
@@ -19,13 +22,14 @@
 		function obj = setdefaultparameters(obj) % {{{
 
-			obj.list={};
+			obj.definitions={};
+			obj.enums=NaN;
 
 		end % }}}
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			md = checkfield(md,'outputdefinition.list','cell',1);
+			md = checkfield(md,'outputdefinition.definitions','cell',1);
 
-			for i=1:length(obj.list),
-				md=checkconsistency(obj.list{i},md,solution,analyses);
+			for i=1:length(obj.definitions),
+				md=checkconsistency(obj.definitions{i},md,solution,analyses);
 			end
 
@@ -33,12 +37,15 @@
 		function disp(obj) % {{{
 			disp(sprintf('   outputdefinition:'));
-			fielddisplay(obj,'list','list of potential outputs that can be requested, but which need additional data to be defined');
+			fielddisplay(obj,'definitions','list of potential outputs that can be requested, but which need additional data to be defined');
 
 		end % }}}
 		function marshall(obj,md,fid) % {{{
 
-		for i=1:length(obj.list),
-			obj.list{i}.marshall(md,fid);
+		enums=zeros(length(obj.definitions),1);
+		for i=1:length(obj.definitions),
+			obj.definitions{i}.marshall(md,fid);
+			obj.enums(i)=StringToEnum(class(obj.definitions{i}));
 		end
+		WriteData(fid,'object',obj,'fieldname','enums','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);
 		end % }}}
 	end
Index: sm/trunk-jpl/src/m/enum/AutodiffMassFluxSegmentsPresentEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/AutodiffMassFluxSegmentsPresentEnum.m	(revision 16297)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=AutodiffMassFluxSegmentsPresentEnum()
-%AUTODIFFMASSFLUXSEGMENTSPRESENTENUM - Enum of AutodiffMassFluxSegmentsPresent
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=AutodiffMassFluxSegmentsPresentEnum()
-
-macro=StringToEnum('AutodiffMassFluxSegmentsPresent');
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 16297)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 16298)
@@ -27,5 +27,4 @@
 def AutodiffFovForwardIndicesEnum(): return StringToEnum("AutodiffFovForwardIndices")[0]
 def AutodiffFosReverseIndexEnum(): return StringToEnum("AutodiffFosReverseIndex")[0]
-def AutodiffMassFluxSegmentsPresentEnum(): return StringToEnum("AutodiffMassFluxSegmentsPresent")[0]
 def AutodiffKeepEnum(): return StringToEnum("AutodiffKeep")[0]
 def AutodiffObufsizeEnum(): return StringToEnum("AutodiffObufsize")[0]
@@ -213,8 +212,9 @@
 def MasstransportNumRequestedOutputsEnum(): return StringToEnum("MasstransportNumRequestedOutputs")[0]
 def MasstransportRequestedOutputsEnum(): return StringToEnum("MasstransportRequestedOutputs")[0]
-def QmuIsdakotaEnum(): return StringToEnum("QmuIsdakota")[0]
 def MassFluxSegmentsEnum(): return StringToEnum("MassFluxSegments")[0]
 def MassFluxSegmentsPresentEnum(): return StringToEnum("MassFluxSegmentsPresent")[0]
-def QmuMassFluxSegmentsPresentEnum(): return StringToEnum("QmuMassFluxSegmentsPresent")[0]
+def MassfluxatgateNameEnum(): return StringToEnum("MassfluxatgateName")[0]
+def MassfluxatgateSegmentsEnum(): return StringToEnum("MassfluxatgateSegments")[0]
+def QmuIsdakotaEnum(): return StringToEnum("QmuIsdakota")[0]
 def QmuNumberofpartitionsEnum(): return StringToEnum("QmuNumberofpartitions")[0]
 def QmuNumberofresponsesEnum(): return StringToEnum("QmuNumberofresponses")[0]
Index: /issm/trunk-jpl/src/m/enum/MassfluxatgateNameEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MassfluxatgateNameEnum.m	(revision 16298)
+++ /issm/trunk-jpl/src/m/enum/MassfluxatgateNameEnum.m	(revision 16298)
@@ -0,0 +1,11 @@
+function macro=MassfluxatgateNameEnum()
+%MASSFLUXATGATENAMEENUM - Enum of MassfluxatgateName
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+%            Please read src/c/shared/Enum/README for more information
+%
+%   Usage:
+%      macro=MassfluxatgateNameEnum()
+
+macro=StringToEnum('MassfluxatgateName');
Index: /issm/trunk-jpl/src/m/enum/MassfluxatgateSegmentsEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MassfluxatgateSegmentsEnum.m	(revision 16298)
+++ /issm/trunk-jpl/src/m/enum/MassfluxatgateSegmentsEnum.m	(revision 16298)
@@ -0,0 +1,11 @@
+function macro=MassfluxatgateSegmentsEnum()
+%MASSFLUXATGATESEGMENTSENUM - Enum of MassfluxatgateSegments
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+%            Please read src/c/shared/Enum/README for more information
+%
+%   Usage:
+%      macro=MassfluxatgateSegmentsEnum()
+
+macro=StringToEnum('MassfluxatgateSegments');
Index: sm/trunk-jpl/src/m/enum/QmuMassFluxSegmentsPresentEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/QmuMassFluxSegmentsPresentEnum.m	(revision 16297)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=QmuMassFluxSegmentsPresentEnum()
-%QMUMASSFLUXSEGMENTSPRESENTENUM - Enum of QmuMassFluxSegmentsPresent
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=QmuMassFluxSegmentsPresentEnum()
-
-macro=StringToEnum('QmuMassFluxSegmentsPresent');
