Index: /issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp	(revision 25776)
+++ /issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp	(revision 25777)
@@ -114,4 +114,5 @@
 			break;
 		case BeckmannGoosseFloatingMeltRateEnum:
+			iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.meltrate_factor",BasalforcingsMeltrateFactorEnum);
 			iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
 			iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);
Index: /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 25776)
+++ /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 25777)
@@ -203,4 +203,5 @@
 			break;
 		case BeckmannGoosseFloatingMeltRateEnum:
+			iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.meltrate_factor",BasalforcingsMeltrateFactorEnum);
 			iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
 			iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 25776)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 25777)
@@ -818,4 +818,5 @@
 				break;
 			case BeckmannGoosseFloatingMeltRateEnum:
+				iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);
 				iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
 				iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 25776)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 25777)
@@ -141,4 +141,5 @@
 			break;
 		case BeckmannGoosseFloatingMeltRateEnum:
+			iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.meltrate_factor",BasalforcingsMeltrateFactorEnum);
 			iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
 			iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 25776)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 25777)
@@ -2373,5 +2373,5 @@
 
 	int numvertices      = this->GetNumberOfVertices();
-	IssmDouble meltratefactor,T_f,ocean_heat_flux;
+	IssmDouble T_f,ocean_heat_flux;
 	IssmDouble rho_water    = this->FindParam(MaterialsRhoSeawaterEnum);
 	IssmDouble rho_ice      = this->FindParam(MaterialsRhoIceEnum);
@@ -2380,13 +2380,14 @@
 	IssmDouble thermal_exchange_vel = this->FindParam(MaterialsThermalExchangeVelocityEnum);
 
-	IssmDouble* base    = xNew<IssmDouble>(numvertices);
-	IssmDouble* values  = xNew<IssmDouble>(numvertices);
-	IssmDouble* oceansalinity   = xNew<IssmDouble>(numvertices);
-	IssmDouble* oceantemp       = xNew<IssmDouble>(numvertices);
+	IssmDouble base[MAXVERTICES];
+	IssmDouble values[MAXVERTICES];
+	IssmDouble oceansalinity [MAXVERTICES];
+	IssmDouble oceantemp[MAXVERTICES];
+	IssmDouble meltratefactor[MAXVERTICES];
 
 	this->GetInputListOnVertices(base,BaseEnum);
 	this->GetInputListOnVertices(oceansalinity,BasalforcingsOceanSalinityEnum);
 	this->GetInputListOnVertices(oceantemp,BasalforcingsOceanTempEnum);
-	parameters->FindParam(&meltratefactor,BasalforcingsMeltrateFactorEnum);
+	this->GetInputListOnVertices(meltratefactor,BasalforcingsMeltrateFactorEnum);
 
 	Gauss* gauss=this->NewGauss();
@@ -2396,5 +2397,5 @@
 		// compute ocean_heat_flux according to beckmann_goosse2003
 		// positive, if T_oc > T_ice ==> heat flux FROM ocean TO ice
-		ocean_heat_flux = meltratefactor * rho_water * mixed_layer_capacity * thermal_exchange_vel * (oceantemp[i] - T_f); // in W/m^2
+		ocean_heat_flux = meltratefactor[i] * rho_water * mixed_layer_capacity * thermal_exchange_vel * (oceantemp[i] - T_f); // in W/m^2
 
 		// shelfbmassflux is positive if ice is freezing on; here it is always negative:
@@ -2404,8 +2405,4 @@
 
 	this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
-	xDelete<IssmDouble>(base);
-	xDelete<IssmDouble>(values);
-	xDelete<IssmDouble>(oceantemp);
-	xDelete<IssmDouble>(oceansalinity);
 	delete gauss;
 }/*}}}*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 25776)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 25777)
@@ -245,5 +245,4 @@
 			break;
 		case BeckmannGoosseFloatingMeltRateEnum:
-			parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.meltrate_factor",BasalforcingsMeltrateFactorEnum));
 			break;
 		default:
Index: /issm/trunk-jpl/src/m/classes/basalforcingsbeckmanngoosse.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/basalforcingsbeckmanngoosse.m	(revision 25776)
+++ /issm/trunk-jpl/src/m/classes/basalforcingsbeckmanngoosse.m	(revision 25777)
@@ -1,3 +1,3 @@
-%MISMIP BASAL FORCINGS class definition
+%BECKMANNGOOSSE BASAL FORCINGS class definition
 %
 %   Usage:
@@ -8,6 +8,6 @@
 		groundedice_melting_rate  = NaN;
 		geothermalflux            = NaN;
-		meltrate_factor           = NaN;
-		ocean_temp                = NaN;
+		meltrate_factor           = 0.;
+		ocean_temp                = 0.;
 		ocean_salinity            = NaN;
 	end
@@ -64,5 +64,5 @@
 				md = checkfield(md,'fieldname','basalforcings.ocean_temp','NaN',1,'Inf',1,'timeseries',1);
 				md = checkfield(md,'fieldname','basalforcings.ocean_salinity','NaN',1,'Inf',1,'timeseries',1);	
-				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
+				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'universal',1,'NaN',1,'Inf',1);
 			end
 			if ismember('BalancethicknessAnalysis',analyses),
@@ -70,10 +70,10 @@
 				md = checkfield(md,'fieldname','basalforcings.ocean_temp','NaN',1,'Inf',1,'timeseries',1);
 				md = checkfield(md,'fieldname','basalforcings.ocean_salinity','NaN',1,'Inf',1,'timeseries',1);
-				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
+				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'universal',1,'NaN',1,'Inf',1);
 			end
 			if ismember('ThermalAnalysis',analyses) & ~(solution=='TransientSolution' & md.transient.isthermal==0),
 				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
-				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
 				md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0);
+				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'universal',1,'NaN',1,'Inf',1);
 			end
 		end % }}}
@@ -98,9 +98,9 @@
 
 
-WriteData(fid,prefix,'name','md.basalforcings.model','data',8,'format','Integer');
+			WriteData(fid,prefix,'name','md.basalforcings.model','data',8,'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)
 			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)
 			WriteData(fid,prefix,'object',self,'fieldname','geothermalflux','name','md.basalforcings.geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
-			WriteData(fid,prefix,'object',self,'fieldname','meltrate_factor','format','Double','name','md.basalforcings.meltrate_factor');
+			WriteData(fid,prefix,'object',self,'fieldname','meltrate_factor','format','DoubleMat','mattype',1,'name','md.basalforcings.meltrate_factor');
 			WriteData(fid,prefix,'object',self,'fieldname','ocean_temp','format','DoubleMat','name','md.basalforcings.ocean_temp','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
 			WriteData(fid,prefix,'object',self,'fieldname','ocean_salinity','format','DoubleMat','name','md.basalforcings.ocean_salinity','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
Index: /issm/trunk-jpl/src/m/contrib/morlighem/modeldata/interpSmith2020.m
===================================================================
--- /issm/trunk-jpl/src/m/contrib/morlighem/modeldata/interpSmith2020.m	(revision 25776)
+++ /issm/trunk-jpl/src/m/contrib/morlighem/modeldata/interpSmith2020.m	(revision 25777)
@@ -4,12 +4,12 @@
 %	Available data:
 %		Filtered mass-change maps, for display only, units of m(ice-equivalent)/yr:
-%		ais_floating_filt.tif
-%		ais_grounded_filt.tif
-%		gris_filt.tif
-
+%		ais_floating_filt
+%		ais_grounded_filt
+%		gris_filt
+%
 %		Raw mass-change maps, suitable for generation of basin-by-basin mass-change estimates, units of m(ice-equivalent)/yr:
-%		ais_floating.tif
-%		ais_grounded.tif
-%		gris.tif
+%		ais_floating
+%		ais_grounded
+%		gris
 %
 %   Usage:
