Index: /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 11508)
+++ /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 11509)
@@ -153,6 +153,5 @@
 	SteadystateRequestedOutputsEnum,
 	SurfaceEnum,
-	SurfaceforcingsAblationRateEnum,
-	SurfaceforcingsAccumulationRateEnum,
+	SurfaceforcingsPrecipitationEnum,
 	SurfaceforcingsMassBalanceEnum,
 	ThermalMaxiterEnum,
Index: /issm/trunk-jpl/src/c/EnumDefinitions/EnumToModelField.cpp
===================================================================
--- /issm/trunk-jpl/src/c/EnumDefinitions/EnumToModelField.cpp	(revision 11508)
+++ /issm/trunk-jpl/src/c/EnumDefinitions/EnumToModelField.cpp	(revision 11509)
@@ -23,6 +23,4 @@
 		case InversionVyObsEnum : return "vy_obs";
 		case BasalforcingsMeltingRateEnum : return "basal_melting_rate";
-      case SurfaceforcingsAccumulationRateEnum : return "surface_accumulation_rate";
-		case SurfaceforcingsAblationRateEnum : return "surface_ablation_rate";
 		case SurfaceforcingsMassBalanceEnum : return "surface_mass_balance";
 		default : _error_("No model field is associated to enum %s",EnumToStringx(en));
Index: /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 11508)
+++ /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 11509)
@@ -157,6 +157,5 @@
 		case SteadystateRequestedOutputsEnum : return "SteadystateRequestedOutputs";
 		case SurfaceEnum : return "Surface";
-		case SurfaceforcingsAblationRateEnum : return "SurfaceforcingsAblationRate";
-		case SurfaceforcingsAccumulationRateEnum : return "SurfaceforcingsAccumulationRate";
+		case SurfaceforcingsPrecipitationEnum : return "SurfaceforcingsPrecipitation";
 		case SurfaceforcingsMassBalanceEnum : return "SurfaceforcingsMassBalance";
 		case ThermalMaxiterEnum : return "ThermalMaxiter";
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp	(revision 11508)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp	(revision 11509)
@@ -42,6 +42,4 @@
 	iomodel->FetchDataToInput(elements,VyEnum);
 	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationRateEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
 	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
 	iomodel->FetchDataToInput(elements,BalancethicknessThickeningRateEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 11508)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 11509)
@@ -66,6 +66,4 @@
 		iomodel->FetchDataToInput(elements,MeshElementonsurfaceEnum);
 		iomodel->FetchDataToInput(elements,VzEnum);
-		iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationRateEnum);
-		iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
 		iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
 		iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp	(revision 11508)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp	(revision 11509)
@@ -48,6 +48,4 @@
 	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationRateEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
 	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
 	iomodel->FetchDataToInput(elements,VxEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 11508)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 11509)
@@ -53,7 +53,4 @@
 	iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationRateEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
 	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 	iomodel->FetchDataToInput(elements,PressureEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	(revision 11508)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	(revision 11509)
@@ -44,6 +44,5 @@
 	iomodel->FetchDataToInput(elements,MaskElementonfloatingiceEnum);
 	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationRateEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
+	iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
 	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
 	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
Index: /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 11508)
+++ /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 11509)
@@ -161,6 +161,5 @@
 	      else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
 	      else if (strcmp(name,"Surface")==0) return SurfaceEnum;
-	      else if (strcmp(name,"SurfaceforcingsAblationRate")==0) return SurfaceforcingsAblationRateEnum;
-	      else if (strcmp(name,"SurfaceforcingsAccumulationRate")==0) return SurfaceforcingsAccumulationRateEnum;
+	      else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
 	      else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
 	      else if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum;
@@ -260,9 +259,9 @@
 	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
 	      else if (strcmp(name,"Param")==0) return ParamEnum;
+	      else if (strcmp(name,"PattynIceFront")==0) return PattynIceFrontEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"PattynIceFront")==0) return PattynIceFrontEnum;
-	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
+	      if (strcmp(name,"Pengrid")==0) return PengridEnum;
 	      else if (strcmp(name,"Penpair")==0) return PenpairEnum;
 	      else if (strcmp(name,"Penta")==0) return PentaEnum;
@@ -383,9 +382,9 @@
 	      else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
 	      else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
+	      else if (strcmp(name,"DoubleVecExternalResult")==0) return DoubleVecExternalResultEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"DoubleVecExternalResult")==0) return DoubleVecExternalResultEnum;
-	      else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
+	      if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
 	      else if (strcmp(name,"J")==0) return JEnum;
 	      else if (strcmp(name,"Patch")==0) return PatchEnum;
Index: /issm/trunk-jpl/src/c/shared/Numerics/UnitConversion.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/UnitConversion.cpp	(revision 11508)
+++ /issm/trunk-jpl/src/c/shared/Numerics/UnitConversion.cpp	(revision 11509)
@@ -63,6 +63,5 @@
 		case BasalforcingsMeltingRateEnum:        scale=yts;break; //m/yr
 		case BasalforcingsMeltingRateCorrectionEnum: scale=yts;break; //m/yr
-		case SurfaceforcingsAccumulationRateEnum: scale=yts;break; //m/yr
-		case SurfaceforcingsAblationRateEnum:     scale=yts;break; //m/yr
+		case SurfaceforcingsPrecipitationEnum:     scale=yts;break; //m/yr
 		case SurfaceforcingsMassBalanceEnum:      scale=yts;break; //m/yr
 		case MisfitEnum:      scale=pow(yts,2);break; //(m/yr)^2
Index: /issm/trunk-jpl/src/m/classes/model/model.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/model/model.m	(revision 11508)
+++ /issm/trunk-jpl/src/m/classes/model/model.m	(revision 11509)
@@ -136,5 +136,4 @@
 			 if isfield(structmd,'melting_rate'), md.basalforcings.melting_rate=structmd.melting_rate; end
 			 if isfield(structmd,'accumulation'), md.surfaceforcings.mass_balance=structmd.accumulation; end
-			 if isfield(structmd,'accumulation_rate'), md.surfaceforcings.mass_balance=structmd.accumulation_rate; end
 			 if isfield(structmd,'numberofgrids'), md.mesh.numberofvertices=structmd.numberofgrids; end
 			 if isfield(structmd,'numberofgrids2d'), md.mesh.numberofvertices2d=structmd.numberofgrids2d; end
Index: /issm/trunk-jpl/src/m/classes/surfaceforcings.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/surfaceforcings.m	(revision 11508)
+++ /issm/trunk-jpl/src/m/classes/surfaceforcings.m	(revision 11509)
@@ -6,7 +6,6 @@
 classdef surfaceforcings
 	properties (SetAccess=public) 
-		accumulation_rate = NaN;
-		ablation_rate     = NaN;
-		mass_balance      = NaN;
+		precipitation = NaN;
+		mass_balance  = NaN;
 	end
 	methods
@@ -41,12 +40,10 @@
 			disp(sprintf('   surface forcings parameters:'));
 
-			fielddisplay(obj,'accumulation_rate','surface accumulation rate [m]');
-			fielddisplay(obj,'ablation_rate','surface ablation rate [m]');
-			fielddisplay(obj,'mass_balance','surface mass balance [m]');
+			fielddisplay(obj,'precipitation','surface precipitation [m/yr ice eq]');
+			fielddisplay(obj,'mass_balance','surface mass balance [m/yr ice eq]');
 
 		end % }}}
 		function marshall(obj,fid) % {{{
-			WriteData(fid,'object',obj,'fieldname','accumulation_rate','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',obj,'fieldname','ablation_rate','format','DoubleMat','mattype',1);
+			WriteData(fid,'object',obj,'fieldname','precipitation','format','DoubleMat','mattype',1);
 			WriteData(fid,'object',obj,'fieldname','mass_balance','format','DoubleMat','mattype',1);
 		end % }}}
Index: sm/trunk-jpl/src/m/enum/SurfaceforcingsAblationRateEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SurfaceforcingsAblationRateEnum.m	(revision 11508)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SurfaceforcingsAblationRateEnum()
-%SURFACEFORCINGSABLATIONRATEENUM - Enum of SurfaceforcingsAblationRate
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=SurfaceforcingsAblationRateEnum()
-
-macro=StringToEnum('SurfaceforcingsAblationRate');
Index: sm/trunk-jpl/src/m/enum/SurfaceforcingsAccumulationRateEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SurfaceforcingsAccumulationRateEnum.m	(revision 11508)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SurfaceforcingsAccumulationRateEnum()
-%SURFACEFORCINGSACCUMULATIONRATEENUM - Enum of SurfaceforcingsAccumulationRate
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=SurfaceforcingsAccumulationRateEnum()
-
-macro=StringToEnum('SurfaceforcingsAccumulationRate');
Index: /issm/trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationEnum.m	(revision 11509)
+++ /issm/trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationEnum.m	(revision 11509)
@@ -0,0 +1,11 @@
+function macro=SurfaceforcingsPrecipitationEnum()
+%SURFACEFORCINGSPRECIPITATIONENUM - Enum of SurfaceforcingsPrecipitation
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=SurfaceforcingsPrecipitationEnum()
+
+macro=StringToEnum('SurfaceforcingsPrecipitation');
Index: /issm/trunk-jpl/src/m/model/extrude.m
===================================================================
--- /issm/trunk-jpl/src/m/model/extrude.m	(revision 11508)
+++ /issm/trunk-jpl/src/m/model/extrude.m	(revision 11509)
@@ -137,6 +137,5 @@
 md.inversion.vel_obs=project3d(md,'vector',md.inversion.vel_obs,'type','node');
 md.surfaceforcings.mass_balance=project3d(md,'vector',md.surfaceforcings.mass_balance,'type','node');
-md.surfaceforcings.accumulation_rate=project3d(md,'vector',md.surfaceforcings.accumulation_rate,'type','node');
-md.surfaceforcings.ablation_rate=project3d(md,'vector',md.surfaceforcings.ablation_rate,'type','node');
+md.surfaceforcings.precipitation=project3d(md,'vector',md.surfaceforcings.precipitation,'type','node');
 md.balancethickness.thickening_rate=project3d(md,'vector',md.balancethickness.thickening_rate,'type','node');
 
Index: /issm/trunk-jpl/src/m/utils/BC/SetIceSheetBC.m
===================================================================
--- /issm/trunk-jpl/src/m/utils/BC/SetIceSheetBC.m	(revision 11508)
+++ /issm/trunk-jpl/src/m/utils/BC/SetIceSheetBC.m	(revision 11509)
@@ -34,11 +34,7 @@
 
 %Create zeros basal melting rate and surface mass balance if not specified
-if isnan(md.surfaceforcings.accumulation_rate),
-	md.surfaceforcings.accumulation_rate=zeros(md.mesh.numberofvertices,1);
-	disp('      no surfaceforcings.accumulation_rate specified: values set as zero');
-end
-if isnan(md.surfaceforcings.ablation_rate),
-	md.surfaceforcings.ablation_rate=zeros(md.mesh.numberofvertices,1);
-	disp('      no surfaceforcings.ablation_rate specified: values set as zero');
+if isnan(md.surfaceforcings.precipitation),
+	md.surfaceforcings.precipitation=zeros(md.mesh.numberofvertices,1);
+	disp('      no surfaceforcings.precipitation specified: values set as zero');
 end
 if isnan(md.surfaceforcings.mass_balance),
Index: /issm/trunk-jpl/src/m/utils/BC/SetIceShelfBC.m
===================================================================
--- /issm/trunk-jpl/src/m/utils/BC/SetIceShelfBC.m	(revision 11508)
+++ /issm/trunk-jpl/src/m/utils/BC/SetIceShelfBC.m	(revision 11509)
@@ -64,13 +64,8 @@
 md.diagnostic.icefront=pressureload;
 
-%Create zeros basalforcings.melting_rate, surfaceforcings.ablation_rate, surfaceforcings.accumulation_rate
-% and surfaceforcings.mass_balance if not specified
-if isnan(md.surfaceforcings.accumulation_rate),
-	md.surfaceforcings.accumulation_rate=zeros(md.mesh.numberofvertices,1);
-	disp('      no surfaceforcings.accumulation_rate specified: values set as zero');
-end
-if isnan(md.surfaceforcings.ablation_rate),
-	md.surfaceforcings.ablation_rate=zeros(md.mesh.numberofvertices,1);
-	disp('      no surfaceforcings.ablation_rate specified: values set as zero');
+%Create zeros basalforcings and surfaceforcings
+if isnan(md.surfaceforcings.precipitation),
+	md.surfaceforcings.precipitation=zeros(md.mesh.numberofvertices,1);
+	disp('      no surfaceforcings.precipitation specified: values set as zero');
 end
 if isnan(md.surfaceforcings.mass_balance),
Index: /issm/trunk-jpl/src/m/utils/BC/SetMarineIceSheetBC.m
===================================================================
--- /issm/trunk-jpl/src/m/utils/BC/SetMarineIceSheetBC.m	(revision 11508)
+++ /issm/trunk-jpl/src/m/utils/BC/SetMarineIceSheetBC.m	(revision 11509)
@@ -75,13 +75,8 @@
 
 
-%Create zeros basalforcings.melting_rate, surfaceforcings.ablation_rate, surfaceforcings.accumulation_rate
-% and surfaceforcings.mass_balance if not specified
-if isnan(md.surfaceforcings.accumulation_rate),
-	md.surfaceforcings.accumulation_rate=zeros(md.mesh.numberofvertices,1);
-	disp('      no surfaceforcings.accumulation_rate specified: values set as zero');
-end
-if isnan(md.surfaceforcings.ablation_rate),
-	md.surfaceforcings.ablation_rate=zeros(md.mesh.numberofvertices,1);
-	disp('      no surfaceforcings.ablation_rate specified: values set as zero');
+%Create zeros basalforcings and surfaceforcings
+if isnan(md.surfaceforcings.precipitation),
+	md.surfaceforcings.precipitation=zeros(md.mesh.numberofvertices,1);
+	disp('      no surfaceforcings.precipitation specified: values set as zero');
 end
 if isnan(md.surfaceforcings.mass_balance),
