Index: /issm/trunk/src/m/model/extrude.m
===================================================================
--- /issm/trunk/src/m/model/extrude.m	(revision 8368)
+++ /issm/trunk/src/m/model/extrude.m	(revision 8369)
@@ -153,5 +153,12 @@
 md.dhdt=project3d(md,md.dhdt,'node');
 md.firn_layer=project3d(md,md.firn_layer,'node',md.numlayers);
-if ~isnan(md.forcing_accumulation), md.forcing_accumulation=[project3d(md,md.forcing_accumulation(1:end-1,:),'node');md.forcing_accumulation(end,:)]; end
+if ~isempty(md.forcings),
+	forcingnames=fieldnames(md.forcings);
+	numforcings=length(md.forcings);
+	for i=1:numforcings
+		forcing=md.forcings.(forcingnames{i});
+		md.forcings.(forcingnames{i})=[project3d(md,forcing(1:end-1,:),'node');forcing(end,:)];
+	end
+end
 
 %results
Index: /issm/trunk/src/m/model/marshall.m
===================================================================
--- /issm/trunk/src/m/model/marshall.m	(revision 8368)
+++ /issm/trunk/src/m/model/marshall.m	(revision 8369)
@@ -95,10 +95,17 @@
 
 %deal with forcings
-if ~isnans(md.forcings),
+if ~isempty(md.forcings),
 	forcingnames=fieldnames(md.forcings);
 	numforcings=length(forcingnames);
 	forcingtypes=zeros(numforcings,1);
 	for i=1:numforcings,
-		forcingtypes(i)=StringToEnum(forcingnames{i});
+		switch (forcingnames{i})
+			case 'accumulation_rate'
+				forcingtypes(i)=AccumulationRateEnum;
+			case 'melting_rate'
+				forcingtypes(i)=MeltingRateEnum;
+			otherwise
+				error(['forcing ' forcingnames{i} ' not supported yet']);
+		end
 	end
 	WriteData(fid,numforcings,'Integer','numforcings');
