Index: /issm/trunk-jpl/src/c/classes/IoModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 20915)
+++ /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 20916)
@@ -599,4 +599,6 @@
 					/*Convert codes to Enums if needed*/
 					if(strcmp(record_name,"md.smb.model")==0) integer = IoCodeToEnumSMB(integer);
+					if(strcmp(record_name,"md.basalforcings.model")==0) integer = IoCodeToEnumBasal(integer);
+					if(strcmp(record_name,"md.calving.law")==0) integer = IoCodeToEnumCalving(integer);
 
 					/*Broadcast to other cpus*/
Index: /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp	(revision 20915)
+++ /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp	(revision 20916)
@@ -55,2 +55,20 @@
 	}
 }/*}}}*/
+int IoCodeToEnumBasal(int enum_in){/*{{{*/
+	switch(enum_in){
+		case 1: return FloatingMeltRateEnum;
+		case 2: return LinearFloatingMeltRateEnum;
+		case 3: return MismipFloatingMeltRateEnum;
+		case 4: return MantlePlumeGeothermalFluxEnum;
+		default: _error_("Marshalled Basal Forcings code \""<<enum_in<<"\" not supported yet");
+	}
+}/*}}}*/
+int IoCodeToEnumCalving(int enum_in){/*{{{*/
+	switch(enum_in){
+		case 1: return DefaultCalvingEnum;
+		case 2: return CalvingDevEnum;
+		case 3: return CalvingLevermannEnum;
+		case 4: return CalvingMinthicknessEnum;
+		default: _error_("Marshalled Calving law code \""<<enum_in<<"\" not supported yet");
+	}
+}/*}}}*/
Index: /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.h	(revision 20915)
+++ /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.h	(revision 20916)
@@ -5,3 +5,5 @@
 
 int IoCodeToEnumSMB(int enum_in);
+int IoCodeToEnumBasal(int enum_in);
+int IoCodeToEnumCalving(int enum_in);
 #endif	
Index: /issm/trunk-jpl/src/m/classes/basalforcings.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/basalforcings.js	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/basalforcings.js	(revision 20916)
@@ -64,5 +64,5 @@
 			var yts=md.constants.yts;
 
-			WriteData(fid,prefix,'name','md.basalforcings.model','data',FloatingMeltRateEnum(),'format','Integer');
+			WriteData(fid,prefix,'name','md.basalforcings.model','data',1,'format','Integer');
 			WriteData(fid,prefix,'object',this,'fieldname','groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 			WriteData(fid,prefix,'object',this,'fieldname','floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
Index: /issm/trunk-jpl/src/m/classes/basalforcings.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/basalforcings.m	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/basalforcings.m	(revision 20916)
@@ -68,5 +68,5 @@
 			yts=md.constants.yts;
 
-			WriteData(fid,prefix,'name','md.basalforcings.model','data',FloatingMeltRateEnum(),'format','Integer');
+			WriteData(fid,prefix,'name','md.basalforcings.model','data',1,'format','Integer');
 			WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 			WriteData(fid,prefix,'object',self,'fieldname','floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
Index: /issm/trunk-jpl/src/m/classes/basalforcings.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/basalforcings.py	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/basalforcings.py	(revision 20916)
@@ -73,5 +73,5 @@
 		yts=md.constants.yts
 
-		WriteData(fid,prefix,'name','md.basalforcings.model','data',FloatingMeltRateEnum(),'format','Integer');
+		WriteData(fid,prefix,'name','md.basalforcings.model','data',1,'format','Integer');
 		WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 		WriteData(fid,prefix,'object',self,'fieldname','floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
Index: /issm/trunk-jpl/src/m/classes/calving.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/calving.js	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/calving.js	(revision 20916)
@@ -33,5 +33,5 @@
 		this.marshall=function(md,prefix,fid) { //{{{
 			var yts=md.constants.yts;
-			WriteData(fid,prefix,'name','md.calving.law','data',DefaultCalvingEnum(),'format','Integer');
+			WriteData(fid,prefix,'name','md.calving.law','data',1,'format','Integer');
 			WriteData(fid,prefix,'object',this,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
 			WriteData(fid,prefix,'object',this,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
Index: /issm/trunk-jpl/src/m/classes/calving.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/calving.m	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/calving.m	(revision 20916)
@@ -49,5 +49,5 @@
 		function marshall(self,prefix,md,fid) % {{{
 			yts=md.constants.yts;
-			WriteData(fid,prefix,'name','md.calving.law','data',DefaultCalvingEnum(),'format','Integer');
+			WriteData(fid,prefix,'name','md.calving.law','data',1,'format','Integer');
 			WriteData(fid,prefix,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
 			WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
Index: /issm/trunk-jpl/src/m/classes/calving.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/calving.py	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/calving.py	(revision 20916)
@@ -54,5 +54,5 @@
 		yts=md.constants.yts
 
-		WriteData(fid,prefix,'name','md.calving.law','data',DefaultCalvingEnum(),'format','Integer');
+		WriteData(fid,prefix,'name','md.calving.law','data',1,'format','Integer');
 		WriteData(fid,prefix,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts)
 		WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts)
Index: /issm/trunk-jpl/src/m/classes/calvingdev.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/calvingdev.m	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/calvingdev.m	(revision 20916)
@@ -52,5 +52,5 @@
 		function marshall(self,prefix,md,fid) % {{{
 			yts=md.constants.yts;
-			WriteData(fid,prefix,'name','md.calving.law','data',CalvingDevEnum(),'format','Integer');
+			WriteData(fid,prefix,'name','md.calving.law','data',2,'format','Integer');
 			WriteData(fid,prefix,'object',self,'fieldname','coeff','format','DoubleMat','mattype',1);
 			WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1,'scale',1./yts);
Index: /issm/trunk-jpl/src/m/classes/calvinglevermann.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/calvinglevermann.m	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/calvinglevermann.m	(revision 20916)
@@ -52,5 +52,5 @@
 		function marshall(self,prefix,md,fid) % {{{
 			yts=md.constants.yts;
-			WriteData(fid,prefix,'name','md.calving.law','data',CalvingLevermannEnum(),'format','Integer');
+			WriteData(fid,prefix,'name','md.calving.law','data',3,'format','Integer');
 			WriteData(fid,prefix,'object',self,'fieldname','coeff','format','DoubleMat','mattype',1);
 			WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
Index: /issm/trunk-jpl/src/m/classes/calvinglevermann.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/calvinglevermann.py	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/calvinglevermann.py	(revision 20916)
@@ -51,5 +51,5 @@
 	def marshall(self,prefix,md,fid):    # {{{
 		yts=md.constants.yts
-		WriteData(fid,prefix,'name','md.calving.law','data',CalvingLevermannEnum(),'format','Integer');
+		WriteData(fid,prefix,'name','md.calving.law','data',3,'format','Integer');
 		WriteData(fid,prefix,'object',self,'fieldname','coeff','format','DoubleMat','mattype',1)
 		WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts)
Index: /issm/trunk-jpl/src/m/classes/calvingminthickness.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/calvingminthickness.m	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/calvingminthickness.m	(revision 20916)
@@ -51,5 +51,5 @@
 		function marshall(self,prefix,md,fid) % {{{
 			yts=md.constants.yts;
-			WriteData(fid,prefix,'name','md.calving.law','data',CalvingMinthicknessEnum(),'format','Integer');
+			WriteData(fid,prefix,'name','md.calving.law','data',4,'format','Integer');
 			WriteData(fid,prefix,'object',self,'fieldname','min_thickness','format','Double');
 			WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1,'scale',1./yts);
Index: /issm/trunk-jpl/src/m/classes/linearbasalforcings.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/linearbasalforcings.m	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/linearbasalforcings.m	(revision 20916)
@@ -79,5 +79,5 @@
 			pos=find(md.geometry.base>md.basalforcings.deepwater_elevation & md.geometry.base<md.basalforcings.upperwater_elevation);
 			floatingice_melting_rate(pos)=md.basalforcings.deepwater_melting_rate*(md.geometry.base(pos)-md.basalforcings.upperwater_elevation)/(md.basalforcings.deepwater_elevation-md.basalforcings.upperwater_elevation);
-			WriteData(fid,prefix,'name','md.basalforcings.model','data',LinearFloatingMeltRateEnum(),'format','Integer');
+			WriteData(fid,prefix,'name','md.basalforcings.model','data',2,'format','Integer');
 			WriteData(fid,prefix,'data',floatingice_melting_rate,'format','DoubleMat','name','md.basalforcings.floatingice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 			WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','name','md.basalforcings.groundedice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
Index: /issm/trunk-jpl/src/m/classes/linearbasalforcings.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/linearbasalforcings.py	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/linearbasalforcings.py	(revision 20916)
@@ -99,5 +99,5 @@
 		floatingice_melting_rate[pos]=md.basalforcings.deepwater_melting_rate*(md.geometry.base[pos]-md.basalforcings.upperwater_elevation)/(md.basalforcings.deepwater_elevation-md.basalforcings.upperwater_elevation)
 
-		WriteData(fid,prefix,'name','md.basalforcings.model','data',LinearFloatingMeltRateEnum(),'format','Integer');
+		WriteData(fid,prefix,'name','md.basalforcings.model','data',2,'format','Integer');
 		WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','name','md.basalforcings.groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 		WriteData(fid,prefix,'data',floatingice_melting_rate,'name','md.basalforcings.floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
Index: /issm/trunk-jpl/src/m/classes/mesh3dsurface.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 20916)
@@ -130,5 +130,5 @@
 			fielddisplay(obj,'extractedelements','elements extracted from the model'); 
 		end % }}}
-		function marshall(obj,prefix,md,fid) % {{{
+		function marshall(obj,md,fid) % {{{
 			WriteData(fid,prefix,'name','md.mesh.domain_type','data',StringToEnum(['Domain' domaintype(obj)]),'format','Integer');
 			WriteData(fid,prefix,'name','md.mesh.domain_dimension','data',dimension(obj),'format','Integer');
Index: /issm/trunk-jpl/src/m/classes/mismipbasalforcings.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 20916)
@@ -88,5 +88,5 @@
 			floatingice_melting_rate=md.basalforcings.meltrate_factor*tanh((md.geometry.base-md.geometry.bed)./md.basalforcings.threshold_thickness).*max(md.basalforcings.upperdepth_melt-md.geometry.base,0);
 
-			WriteData(fid,prefix,'name','md.basalforcings.model','data',MismipFloatingMeltRateEnum(),'format','Integer');
+			WriteData(fid,prefix,'name','md.basalforcings.model','data',3,'format','Integer');
 			WriteData(fid,prefix,'data',floatingice_melting_rate,'format','DoubleMat','name','md.basalforcings.floatingice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 			WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','name','md.basalforcings.groundedice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
Index: /issm/trunk-jpl/src/m/classes/mismipbasalforcings.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 20916)
@@ -87,5 +87,5 @@
         floatingice_melting_rate = md.basalforcings.meltrate_factor*numpy.tanh((md.geometry.base-md.geometry.bed)/md.basalforcings.threshold_thickness)*numpy.amax(md.basalforcings.upperdepth_melt-md.geometry.base,0)
 
-	WriteData(fid,prefix,'name','md.basalforcings.model','data',MismipFloatingMeltRateEnum(),'format','Integer')
+	WriteData(fid,prefix,'name','md.basalforcings.model','data',3,'format','Integer')
 	WriteData(fid,prefix,'data',floatingice_melting_rate,'format','DoubleMat','name','md.basalforcings.floatingice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 	WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','name','md.basalforcings.groundedice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
Index: /issm/trunk-jpl/src/m/classes/organizer.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/organizer.m	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/organizer.m	(revision 20916)
@@ -5,5 +5,5 @@
 %      prefix:     prefix for saved model names
 %      steps:      requested steps
-%      color:      color of step title (default is '41;37')
+%      color:      color of step title (default is '41;37;01')
 %
 %   Usage:
@@ -45,5 +45,5 @@
 
 			%Color
-			org.color=getfieldvalue(options,'color','41;37');
+			org.color=getfieldvalue(options,'color','41;37;01');
 
 			%Get steps
Index: /issm/trunk-jpl/src/m/classes/plumebasalforcings.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/plumebasalforcings.m	(revision 20915)
+++ /issm/trunk-jpl/src/m/classes/plumebasalforcings.m	(revision 20916)
@@ -113,5 +113,5 @@
 			yts=md.constants.yts;
 
-			WriteData(fid,prefix,'name','md.basalforcings.model','data',MantlePlumeGeothermalFluxEnum(),'format','Integer');
+			WriteData(fid,prefix,'name','md.basalforcings.model','data',4,'format','Integer');
 			WriteData(fid,prefix,'object',self,'fieldname','floatingice_melting_rate','format','DoubleMat','name','md.basalforcings.floatingice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 			WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','name','md.basalforcings.groundedice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
