Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9611)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9612)
@@ -18,4 +18,7 @@
 	SurfaceforcingsAblationRateEnum,
 	SurfaceforcingsMassBalanceEnum,
+	BasalforcingsMeltingRateEnum,
+	BasalforcingsMeltingRateCorrectionEnum,
+	BasalforcingsGeothermalfluxEnum,
 	FrictionCoefficientEnum,
 	FrictionPEnum,
@@ -202,5 +205,4 @@
 	MeltingOffsetEnum,
 	GroundinglineMeltingRateEnum,
-	BasalMeltingRateEnum,
 	MisfitEnum,
 	NodeOnBedEnum,
@@ -309,5 +311,4 @@
 	RhoWaterEnum,
 	GravityEnum,
-	BasalMeltingRateCorrectionEnum,
 	MixedLayerCapacityEnum,
 	ThermalExchangeVelocityEnum,
@@ -450,5 +451,4 @@
 	MeltingpointEnum,
 	DhdtEnum,
-	GeothermalfluxEnum,
 	IsprognosticEnum,
 	IsdiagnosticEnum,
Index: /issm/trunk/src/c/EnumDefinitions/EnumToModelField.cpp
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumToModelField.cpp	(revision 9611)
+++ /issm/trunk/src/c/EnumDefinitions/EnumToModelField.cpp	(revision 9612)
@@ -22,5 +22,5 @@
 		case VyEnum : return "vy";
 		case VyObsEnum : return "vy_obs";
-		case BasalMeltingRateEnum : return "basal_melting_rate";
+		case BasalforcingsMeltingRateEnum : return "basal_melting_rate";
       case SurfaceforcingsAccumulationRateEnum : return "surface_accumulation_rate";
 		case SurfaceforcingsAblationRateEnum : return "surface_ablation_rate";
Index: /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9611)
+++ /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9612)
@@ -22,4 +22,7 @@
 		case SurfaceforcingsAblationRateEnum : return "SurfaceforcingsAblationRate";
 		case SurfaceforcingsMassBalanceEnum : return "SurfaceforcingsMassBalance";
+		case BasalforcingsMeltingRateEnum : return "BasalforcingsMeltingRate";
+		case BasalforcingsMeltingRateCorrectionEnum : return "BasalforcingsMeltingRateCorrection";
+		case BasalforcingsGeothermalfluxEnum : return "BasalforcingsGeothermalflux";
 		case FrictionCoefficientEnum : return "FrictionCoefficient";
 		case FrictionPEnum : return "FrictionP";
@@ -169,5 +172,4 @@
 		case MeltingOffsetEnum : return "MeltingOffset";
 		case GroundinglineMeltingRateEnum : return "GroundinglineMeltingRate";
-		case BasalMeltingRateEnum : return "BasalMeltingRate";
 		case MisfitEnum : return "Misfit";
 		case NodeOnBedEnum : return "NodeOnBed";
@@ -262,5 +264,4 @@
 		case RhoWaterEnum : return "RhoWater";
 		case GravityEnum : return "Gravity";
-		case BasalMeltingRateCorrectionEnum : return "BasalMeltingRateCorrection";
 		case MixedLayerCapacityEnum : return "MixedLayerCapacity";
 		case ThermalExchangeVelocityEnum : return "ThermalExchangeVelocity";
@@ -391,5 +392,4 @@
 		case MeltingpointEnum : return "Meltingpoint";
 		case DhdtEnum : return "Dhdt";
-		case GeothermalfluxEnum : return "Geothermalflux";
 		case IsprognosticEnum : return "Isprognostic";
 		case IsdiagnosticEnum : return "Isdiagnostic";
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp	(revision 9611)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp	(revision 9612)
@@ -41,5 +41,5 @@
 	iomodel->FetchDataToInput(elements,VxEnum);
 	iomodel->FetchDataToInput(elements,VyEnum);
-	iomodel->FetchDataToInput(elements,BasalMeltingRateEnum);
+	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 	iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationRateEnum);
 	iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 9611)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 9612)
@@ -70,5 +70,5 @@
 		iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
 		iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
-		iomodel->FetchDataToInput(elements,BasalMeltingRateEnum);
+		iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 		iomodel->FetchDataToInput(elements,NodeOnStokesEnum);
 	}
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp	(revision 9611)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp	(revision 9612)
@@ -47,5 +47,5 @@
 	iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum);
 	iomodel->FetchDataToInput(elements,ElementOnWaterEnum);
-	iomodel->FetchDataToInput(elements,BasalMeltingRateEnum);
+	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 	iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationRateEnum);
 	iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp	(revision 9611)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp	(revision 9612)
@@ -55,5 +55,5 @@
 	iomodel->FetchDataToInput(elements,TemperatureEnum);
 	iomodel->FetchDataToInput(elements,WaterfractionEnum);
-	iomodel->FetchDataToInput(elements,GeothermalfluxEnum);
+	iomodel->FetchDataToInput(elements,BasalforcingsGeothermalfluxEnum);
 	iomodel->FetchDataToInput(elements,VxEnum);
 	iomodel->FetchDataToInput(elements,VyEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp	(revision 9611)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp	(revision 9612)
@@ -47,7 +47,7 @@
 	iomodel->FetchDataToInput(elements,PressureEnum);
 	iomodel->FetchDataToInput(elements,TemperatureEnum);
-	iomodel->FetchDataToInput(elements,BasalMeltingRateEnum);
+	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 	iomodel->FetchDataToInput(elements,WatercolumnEnum);
-	iomodel->FetchDataToInput(elements,GeothermalfluxEnum);
+	iomodel->FetchDataToInput(elements,BasalforcingsGeothermalfluxEnum);
 	iomodel->FetchDataToInput(elements,VxEnum);
 	iomodel->FetchDataToInput(elements,VyEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 9611)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 9612)
@@ -56,5 +56,5 @@
 	iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
 	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
-	iomodel->FetchDataToInput(elements,BasalMeltingRateEnum);
+	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 	iomodel->FetchDataToInput(elements,PressureEnum);
 	
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	(revision 9611)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	(revision 9612)
@@ -44,6 +44,6 @@
 	iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
 	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
-	iomodel->FetchDataToInput(elements,BasalMeltingRateEnum);
-	iomodel->FetchDataToInput(elements,BasalMeltingRateCorrectionEnum);
+	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
+	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateCorrectionEnum);
 	iomodel->FetchDataToInput(elements,VxEnum);
 	iomodel->FetchDataToInput(elements,VyEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp	(revision 9611)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp	(revision 9612)
@@ -56,5 +56,5 @@
 	iomodel->FetchDataToInput(elements,PressureEnum);
 	iomodel->FetchDataToInput(elements,TemperatureEnum);
-	iomodel->FetchDataToInput(elements,GeothermalfluxEnum);
+	iomodel->FetchDataToInput(elements,BasalforcingsGeothermalfluxEnum);
 	iomodel->FetchDataToInput(elements,VxEnum);
 	iomodel->FetchDataToInput(elements,VyEnum);
Index: /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9611)
+++ /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9612)
@@ -20,4 +20,7 @@
 	else if (strcmp(name,"SurfaceforcingsAblationRate")==0) return SurfaceforcingsAblationRateEnum;
 	else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
+	else if (strcmp(name,"BasalforcingsMeltingRate")==0) return BasalforcingsMeltingRateEnum;
+	else if (strcmp(name,"BasalforcingsMeltingRateCorrection")==0) return BasalforcingsMeltingRateCorrectionEnum;
+	else if (strcmp(name,"BasalforcingsGeothermalflux")==0) return BasalforcingsGeothermalfluxEnum;
 	else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
 	else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
@@ -167,5 +170,4 @@
 	else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
 	else if (strcmp(name,"GroundinglineMeltingRate")==0) return GroundinglineMeltingRateEnum;
-	else if (strcmp(name,"BasalMeltingRate")==0) return BasalMeltingRateEnum;
 	else if (strcmp(name,"Misfit")==0) return MisfitEnum;
 	else if (strcmp(name,"NodeOnBed")==0) return NodeOnBedEnum;
@@ -260,5 +262,4 @@
 	else if (strcmp(name,"RhoWater")==0) return RhoWaterEnum;
 	else if (strcmp(name,"Gravity")==0) return GravityEnum;
-	else if (strcmp(name,"BasalMeltingRateCorrection")==0) return BasalMeltingRateCorrectionEnum;
 	else if (strcmp(name,"MixedLayerCapacity")==0) return MixedLayerCapacityEnum;
 	else if (strcmp(name,"ThermalExchangeVelocity")==0) return ThermalExchangeVelocityEnum;
@@ -389,5 +390,4 @@
 	else if (strcmp(name,"Meltingpoint")==0) return MeltingpointEnum;
 	else if (strcmp(name,"Dhdt")==0) return DhdtEnum;
-	else if (strcmp(name,"Geothermalflux")==0) return GeothermalfluxEnum;
 	else if (strcmp(name,"Isprognostic")==0) return IsprognosticEnum;
 	else if (strcmp(name,"Isdiagnostic")==0) return IsdiagnosticEnum;
Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 9611)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 9612)
@@ -3225,8 +3225,8 @@
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 	inputs->GetParameterValue(&approximation,ApproximationEnum);
-	Input* bed_input=inputs->GetInput(BedEnum);             _assert_(bed_input);
-	Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum); _assert_(basal_melting_input);
-	Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
-	Input* vy_input=inputs->GetInput(VyEnum);               _assert_(vy_input);
+	Input* bed_input=inputs->GetInput(BedEnum);                                _assert_(bed_input);
+	Input* basal_melting_input=inputs->GetInput(BasalforcingsMeltingRateEnum); _assert_(basal_melting_input);
+	Input* vx_input=inputs->GetInput(VxEnum);                                  _assert_(vx_input);
+	Input* vy_input=inputs->GetInput(VyEnum);                                  _assert_(vy_input);
 	Input* vzstokes_input=NULL;
 	if(approximation==PattynStokesApproximationEnum || approximation==MacAyealStokesApproximationEnum){
@@ -3457,5 +3457,5 @@
 	Input* vy_input=inputs->GetInput(VyEnum);                         _assert_(vy_input);
 	Input* vz_input=inputs->GetInput(VzEnum);                         _assert_(vz_input);
-	Input* geothermalflux_input=inputs->GetInput(GeothermalfluxEnum); _assert_(geothermalflux_input);
+	Input* geothermalflux_input=inputs->GetInput(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input);
 
 	/*Build frictoin element, needed later: */
@@ -3724,5 +3724,5 @@
 	Input* vy_input=inputs->GetInput(VyEnum);                         _assert_(vy_input);
 	Input* vz_input=inputs->GetInput(VzEnum);                         _assert_(vz_input);
-	Input* geothermalflux_input=inputs->GetInput(GeothermalfluxEnum); _assert_(geothermalflux_input);
+	Input* geothermalflux_input=inputs->GetInput(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input);
 
 	/*Build frictoin element, needed later: */
@@ -5311,5 +5311,5 @@
 	}
 	else if (analysis_type==MeltingAnalysisEnum){
-		InputUpdateFromSolutionOneDof(solution,BasalMeltingRateEnum);
+		InputUpdateFromSolutionOneDof(solution,BasalforcingsMeltingRateEnum);
 	}
 	else{
@@ -6587,7 +6587,7 @@
 				name==SurfaceSlopeXEnum ||
 				name==SurfaceSlopeYEnum ||
-				name==BasalMeltingRateEnum ||
 				name==SurfaceforcingsMassBalanceEnum ||
-				name==GeothermalfluxEnum ||
+				name==BasalforcingsMeltingRateEnum ||
+				name==BasalforcingsGeothermalfluxEnum ||
 				name==SurfaceAreaEnum||
 				name==PressureEnum ||
Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 9611)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 9612)
@@ -1315,5 +1315,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
 	Input* surface_mass_balance_input=inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(surface_mass_balance_input);
-	Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum);                  _assert_(basal_melting_input);
+	Input* basal_melting_input=inputs->GetInput(BasalforcingsMeltingRateEnum);          _assert_(basal_melting_input);
 	Input* dhdt_input=inputs->GetInput(DhdtEnum);                                       _assert_(dhdt_input);
 	
@@ -1358,5 +1358,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
 	Input* surface_mass_balance_input=inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(surface_mass_balance_input);
-	Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum);                  _assert_(basal_melting_input);
+	Input* basal_melting_input=inputs->GetInput(BasalforcingsMeltingRateEnum);          _assert_(basal_melting_input);
 	Input* dhdt_input=inputs->GetInput(DhdtEnum);                                       _assert_(dhdt_input);
 
@@ -1942,6 +1942,6 @@
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
 	this->parameters->FindParam(&dt,DtEnum);
-	Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum);_assert_(basal_melting_input);
-	Input* old_watercolumn_input=inputs->GetInput(WaterColumnOldEnum);_assert_(old_watercolumn_input);
+	Input* basal_melting_input=inputs->GetInput(BasalforcingsMeltingRateEnum); _assert_(basal_melting_input);
+	Input* old_watercolumn_input=inputs->GetInput(WaterColumnOldEnum);         _assert_(old_watercolumn_input);
 
 	/*Initialize basal_melting_correction_g to 0, do not forget!:*/
@@ -1988,6 +1988,6 @@
 	this->parameters->FindParam(&dt,DtEnum);
 	Input* surface_mass_balance_input=inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(surface_mass_balance_input);
-	Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum);                  _assert_(basal_melting_input);
-	Input* basal_melting_correction_input=inputs->GetInput(BasalMeltingRateCorrectionEnum);
+	Input* basal_melting_input=inputs->GetInput(BasalforcingsMeltingRateEnum);          _assert_(basal_melting_input);
+	Input* basal_melting_correction_input=inputs->GetInput(BasalforcingsMeltingRateCorrectionEnum);
 	Input* thickness_input=inputs->GetInput(ThicknessEnum);                             _assert_(thickness_input);
 
@@ -2036,5 +2036,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
 	Input* surface_mass_balance_input=inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(surface_mass_balance_input);
-	Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum);                  _assert_(basal_melting_input);
+	Input* basal_melting_input=inputs->GetInput(BasalforcingsMeltingRateEnum);          _assert_(basal_melting_input);
 	Input* thickness_input=inputs->GetInput(ThicknessEnum);                             _assert_(thickness_input);
 
@@ -3984,5 +3984,5 @@
 				name==SurfaceSlopeXEnum ||
 				name==SurfaceSlopeYEnum ||
-				name==BasalMeltingRateEnum ||
+				name==BasalforcingsMeltingRateEnum ||
 				name==WatercolumnEnum || 
 				name==SurfaceforcingsMassBalanceEnum ||
@@ -4631,5 +4631,5 @@
     /*If this element just  became ungrounded, set its basal melting rate at 50 m/yr:*/
 	if(swap){
-		Input* basal_melting_rate_input     =inputs->GetInput(BasalMeltingRateEnum);     _assert_(basal_melting_rate_input);
+		Input* basal_melting_rate_input     =inputs->GetInput(BasalforcingsMeltingRateEnum);     _assert_(basal_melting_rate_input);
 		basal_melting_rate_input->GetValuesPtr(&values,NULL); for(i=0;i<3;i++)values[i]=gl_melting_rate/yts;
 	}
Index: /issm/trunk/src/c/shared/Numerics/UnitConversion.cpp
===================================================================
--- /issm/trunk/src/c/shared/Numerics/UnitConversion.cpp	(revision 9611)
+++ /issm/trunk/src/c/shared/Numerics/UnitConversion.cpp	(revision 9612)
@@ -59,6 +59,6 @@
 		case VelObsEnum:      scale=yts;break; //m/yr
 		case DhdtEnum:        scale=yts;break; //m/yr
-		case BasalMeltingRateEnum:        scale=yts;break; //m/yr
-		case BasalMeltingRateCorrectionEnum: scale=yts;break; //m/yr
+		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
Index: /issm/trunk/src/c/solutions/steadystate_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/steadystate_core.cpp	(revision 9611)
+++ /issm/trunk/src/c/solutions/steadystate_core.cpp	(revision 9612)
@@ -68,5 +68,5 @@
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,PressureEnum);
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum);
-		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalMeltingRateEnum);
+		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum);
 		RequestedOutputsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
 	}
Index: /issm/trunk/src/c/solutions/thermal_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/thermal_core.cpp	(revision 9611)
+++ /issm/trunk/src/c/solutions/thermal_core.cpp	(revision 9612)
@@ -58,5 +58,5 @@
 			_printf_(VerboseSolution(),"   saving results\n");
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,i+1,time);
-			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalMeltingRateEnum,i+1,time);
+			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum,i+1,time);
 		}
 
Index: /issm/trunk/src/c/solutions/transient_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient_core.cpp	(revision 9611)
+++ /issm/trunk/src/c/solutions/transient_core.cpp	(revision 9612)
@@ -94,5 +94,5 @@
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BedEnum,step,time);
 			if(dim==3) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,step,time);
-			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalMeltingRateEnum,step,time);
+			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum,step,time);
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceforcingsMassBalanceEnum,step,time);
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ElementOnIceShelfEnum,step,time);
Index: /issm/trunk/src/m/classes/basalforcings.m
===================================================================
--- /issm/trunk/src/m/classes/basalforcings.m	(revision 9612)
+++ /issm/trunk/src/m/classes/basalforcings.m	(revision 9612)
@@ -0,0 +1,38 @@
+%BASAL FORCINGS class definition
+%
+%   Usage:
+%      basalforcings=basalforcings();
+
+classdef basalforcings
+	properties (SetAccess=public) 
+		melting_rate             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
+		melting_rate_correction  = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
+		geothermalflux           = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
+	end
+	methods
+		function obj = basalforcings(varargin) % {{{
+			switch nargin
+				case 0
+					obj=setdefaultparameters(obj);
+				case 1
+					in=varargin{1};
+					if (isa(in,'numeric') & in==0),
+						% requesting templates do nothing
+					else
+						error('constructor not supported');
+					end 
+				otherwise
+					error('constructor not supported');
+			end
+		end % }}}
+		function obj = setdefaultparameters(obj) % {{{
+
+			%first, use the defaults provided by the properties definition above. 
+			fieldnames=fields(obj);
+			for i=1:length(fieldnames),
+				fieldname=fieldnames{i};
+				obj.(fieldname)=obj.(fieldname).default;
+			end
+		end % }}}
+	end
+end
Index: /issm/trunk/src/m/classes/model/model.m
===================================================================
--- /issm/trunk/src/m/classes/model/model.m	(revision 9611)
+++ /issm/trunk/src/m/classes/model/model.m	(revision 9612)
@@ -16,4 +16,5 @@
 		 flaim     = modelfield('default',0,'marshall',false);
 		 surfaceforcings = modelfield('default',0,'marshall',true);
+		 basalforcings   = modelfield('default',0,'marshall',true);
 		 friction  = modelfield('default',0,'marshall',true);
 
@@ -154,5 +155,4 @@
 
 		 dhdt                      = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
-		 geothermalflux            = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
 		 thickness_obs             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
 
@@ -205,6 +205,4 @@
 		 waterfraction                  = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
 		 groundingline_melting_rate                = modelfield('default',NaN,'marshall',true,'format','Double');
-		 basal_melting_rate             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
-		 basal_melting_rate_correction  = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
 		 pressure                       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
 		 %Hydrology
@@ -411,6 +409,6 @@
 			 if isfield(structmd,'B'), md.rheology_B=structmd.B; end
 			 if isfield(structmd,'n'), md.rheology_n=structmd.n; end
-			 if isfield(structmd,'melting'), md.basal_melting_rate=structmd.melting; end
-			 if isfield(structmd,'melting_rate'), md.basal_melting_rate=structmd.melting_rate; end
+			 if isfield(structmd,'melting'), md.basalforcings.melting_rate=structmd.melting; end
+			 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
@@ -436,4 +434,7 @@
 			 if isfield(structmd,'dakota_analysis'), md.dakota_analysis=structmd.dakota_analysis; end
 			 if isfield(structmd,'surface_mass_balance'), md.surfaceforcings.mass_balance=structmd.surface_mass_balance; end
+			 if isfield(structmd,'basal_melting_rate'), md.basalforcings.melting_rate=structmd.basal_melting_rate; end
+			 if isfield(structmd,'basal_melting_rate_correction'), md.basalforcings.melting_rate_correction=structmd.basal_melting_rate_correction; end
+			 if isfield(structmd,'geothermalflux'), md.basalforcings.geothermalflux=structmd.geothermalflux; end
 			 if isfield(structmd,'drag_coefficient'), md.friction.coefficient=structmd.drag_coefficient; end
 			 if isfield(structmd,'drag_p'), md.friction.p=structmd.drag_p; end
@@ -546,4 +547,5 @@
 			 md.flaim=flaim;
 			 md.surfaceforcings=surfaceforcings;
+			 md.basalforcings=basalforcings;
 			 md.friction=friction;
 
Index: sm/trunk/src/m/enum/BasalMeltingRateCorrectionEnum.m
===================================================================
--- /issm/trunk/src/m/enum/BasalMeltingRateCorrectionEnum.m	(revision 9611)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=BasalMeltingRateCorrectionEnum()
-%BASALMELTINGRATECORRECTIONENUM - Enum of BasalMeltingRateCorrection
-%
-%   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=BasalMeltingRateCorrectionEnum()
-
-macro=StringToEnum('BasalMeltingRateCorrection');
Index: sm/trunk/src/m/enum/BasalMeltingRateEnum.m
===================================================================
--- /issm/trunk/src/m/enum/BasalMeltingRateEnum.m	(revision 9611)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=BasalMeltingRateEnum()
-%BASALMELTINGRATEENUM - Enum of BasalMeltingRate
-%
-%   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=BasalMeltingRateEnum()
-
-macro=StringToEnum('BasalMeltingRate');
Index: /issm/trunk/src/m/enum/BasalforcingsGeothermalfluxEnum.m
===================================================================
--- /issm/trunk/src/m/enum/BasalforcingsGeothermalfluxEnum.m	(revision 9612)
+++ /issm/trunk/src/m/enum/BasalforcingsGeothermalfluxEnum.m	(revision 9612)
@@ -0,0 +1,11 @@
+function macro=BasalforcingsGeothermalfluxEnum()
+%BASALFORCINGSGEOTHERMALFLUXENUM - Enum of BasalforcingsGeothermalflux
+%
+%   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=BasalforcingsGeothermalfluxEnum()
+
+macro=StringToEnum('BasalforcingsGeothermalflux');
Index: /issm/trunk/src/m/enum/BasalforcingsMeltingRateCorrectionEnum.m
===================================================================
--- /issm/trunk/src/m/enum/BasalforcingsMeltingRateCorrectionEnum.m	(revision 9612)
+++ /issm/trunk/src/m/enum/BasalforcingsMeltingRateCorrectionEnum.m	(revision 9612)
@@ -0,0 +1,11 @@
+function macro=BasalforcingsMeltingRateCorrectionEnum()
+%BASALFORCINGSMELTINGRATECORRECTIONENUM - Enum of BasalforcingsMeltingRateCorrection
+%
+%   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=BasalforcingsMeltingRateCorrectionEnum()
+
+macro=StringToEnum('BasalforcingsMeltingRateCorrection');
Index: /issm/trunk/src/m/enum/BasalforcingsMeltingRateEnum.m
===================================================================
--- /issm/trunk/src/m/enum/BasalforcingsMeltingRateEnum.m	(revision 9612)
+++ /issm/trunk/src/m/enum/BasalforcingsMeltingRateEnum.m	(revision 9612)
@@ -0,0 +1,11 @@
+function macro=BasalforcingsMeltingRateEnum()
+%BASALFORCINGSMELTINGRATEENUM - Enum of BasalforcingsMeltingRate
+%
+%   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=BasalforcingsMeltingRateEnum()
+
+macro=StringToEnum('BasalforcingsMeltingRate');
Index: /issm/trunk/src/m/enum/EnumToModelField.m
===================================================================
--- /issm/trunk/src/m/enum/EnumToModelField.m	(revision 9611)
+++ /issm/trunk/src/m/enum/EnumToModelField.m	(revision 9612)
@@ -12,5 +12,5 @@
 
 		case ThicknessEnum(), string='thickness'; return
-		case DragCoefficientEnum(), string='drag_coefficient'; return
+		case FrictionCoefficientEnum(), string='drag_coefficient'; return
 		case RheologyBEnum(), string='rheology_B'; return
 		case RheologyBbarEnum(), string='rheology_B'; return
@@ -20,5 +20,5 @@
 		case VyEnum(), string='vy'; return
 		case VyObsEnum(), string='vy_obs'; return
-		case BasalMeltingRateEnum(), string='basal_melting_rate'; return
+		case BasalforcingsMeltingRateEnum(), string='basal_melting_rate'; return
       case SurfaceforcingsAccumulationRateEnum(), string='surface_accumulation_rate'; return
 		case SurfaceforcingsAblationRateEnum(), string='surface_ablation_rate'; return
Index: sm/trunk/src/m/enum/GeothermalfluxEnum.m
===================================================================
--- /issm/trunk/src/m/enum/GeothermalfluxEnum.m	(revision 9611)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=GeothermalfluxEnum()
-%GEOTHERMALFLUXENUM - Enum of Geothermalflux
-%
-%   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=GeothermalfluxEnum()
-
-macro=StringToEnum('Geothermalflux');
Index: /issm/trunk/src/m/model/collapse.m
===================================================================
--- /issm/trunk/src/m/model/collapse.m	(revision 9611)
+++ /issm/trunk/src/m/model/collapse.m	(revision 9612)
@@ -73,6 +73,6 @@
 
 %special for thermal modeling:
-md.basal_melting_rate=project2d(md,md.basal_melting_rate,1); 
-md.geothermalflux=project2d(md,md.geothermalflux,1); %bedrock only gets geothermal flux
+md.basalforcings.melting_rate=project2d(md,md.basalforcings.melting_rate,1); 
+md.basalforcings.geothermalflux=project2d(md,md.basalforcings.geothermalflux,1); %bedrock only gets geothermal flux
 
 %update of connectivity matrix
Index: /issm/trunk/src/m/model/display/displaybc.m
===================================================================
--- /issm/trunk/src/m/model/display/displaybc.m	(revision 9611)
+++ /issm/trunk/src/m/model/display/displaybc.m	(revision 9612)
@@ -29,3 +29,2 @@
 disp(sprintf('\n      thermal:'));
 fielddisplay(md,'spctemperature','temperature constraints (NaN means no constraint)');
-fielddisplay(md,'basal_melting_rate','basal melting rate [m/a]');
Index: /issm/trunk/src/m/model/display/displayobservations.m
===================================================================
--- /issm/trunk/src/m/model/display/displayobservations.m	(revision 9611)
+++ /issm/trunk/src/m/model/display/displayobservations.m	(revision 9612)
@@ -19,3 +19,2 @@
 fielddisplay(md,'dhdt','surface dhdt rate [m/a]');
 fielddisplay(md,'observed_temperature','observed temperature [K]');
-fielddisplay(md,'geothermalflux','geothermal heat flux [W/m^2]');
Index: /issm/trunk/src/m/model/display/displaythermal.m
===================================================================
--- /issm/trunk/src/m/model/display/displaythermal.m	(revision 9611)
+++ /issm/trunk/src/m/model/display/displaythermal.m	(revision 9612)
@@ -17,5 +17,4 @@
 disp(sprintf('\n      boundary conditions:'));
 fielddisplay(md,'spctemperature','constraints flag list (first column) and values (second column)');
-fielddisplay(md,'basal_melting_rate','basal melting rate [m/a]');
 
 disp(sprintf('\n      transient:'));
Index: /issm/trunk/src/m/model/extrude.m
===================================================================
--- /issm/trunk/src/m/model/extrude.m	(revision 9611)
+++ /issm/trunk/src/m/model/extrude.m	(revision 9612)
@@ -221,7 +221,7 @@
 
 %special for thermal modeling:
-md.basal_melting_rate=project3d(md,'vector',md.basal_melting_rate,'type','node','layer',1); 
-if ~isnan(md.geothermalflux)
-	md.geothermalflux=project3d(md,'vector',md.geothermalflux,'type','node','layer',1); %bedrock only gets geothermal flux
+md.basalforcings.melting_rate=project3d(md,'vector',md.basalforcings.melting_rate,'type','node','layer',1); 
+if ~isnan(md.basalforcings.geothermalflux)
+	md.basalforcings.geothermalflux=project3d(md,'vector',md.basalforcings.geothermalflux,'type','node','layer',1); %bedrock only gets geothermal flux
 end
 
Index: /issm/trunk/src/m/model/ismodelselfconsistent.m
===================================================================
--- /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 9611)
+++ /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 9612)
@@ -103,5 +103,5 @@
 %}}}
 %SIZE NUMBEROFNODES {{{1
-fields={'x','y','z','rheology_B','friction.coefficient','basal_melting_rate','surface','thickness','bed','nodeonbed','nodeonsurface'};
+fields={'x','y','z','rheology_B','friction.coefficient','basalforcings.melting_rate','surface','thickness','bed','nodeonbed','nodeonsurface'};
 checksize(md,fields,[md.numberofnodes 1]);
 %}}}
@@ -497,5 +497,5 @@
 
 			%VELOCITIES AND PRESSURE
-			fields={'vx','vy','vz','pressure','geothermalflux'};
+			fields={'vx','vy','vz','pressure','basalforcings.geothermalflux'};
 			checksize(md,fields,[md.numberofnodes 1]);
 			checknan(md,fields);
@@ -509,5 +509,5 @@
 
 				%INITIAL TEMPERATURE, MELTING AND ACCUMULATION
-				fields={'temperature','basal_melting_rate'};
+				fields={'temperature','basalforcings.melting_rate'};
 				checksize(md,fields,[md.numberofnodes 1]);
 				checknan(md,fields);
@@ -536,5 +536,5 @@
 
 			%VELOCITIES AND PRESSURE
-			fields={'vx','vy','vz','pressure','geothermalflux'};
+			fields={'vx','vy','vz','pressure','basalforcings.geothermalflux'};
 			checksize(md,fields,[md.numberofnodes 1]);
 			checknan(md,fields);
@@ -548,5 +548,5 @@
 
 				%INITIAL TEMPERATURE, MELTING, ACCUMULATION AND WATERFRACTION
-				fields={'temperature','basal_melting_rate','waterfraction'};
+				fields={'temperature','basalforcings.melting_rate','waterfraction'};
 				checksize(md,fields,[md.numberofnodes 1]);
 				checknan(md,fields);
@@ -564,5 +564,5 @@
 			% {{{2
 			%VELOCITIES MELTING AND ACCUMULATION
-			fields={'vx','vy','basal_melting_rate','dhdt'};
+			fields={'vx','vy','basalforcings.melting_rate','dhdt'};
 			checksize(md,fields,[md.numberofnodes 1]);
 			checknan(md,fields);
Index: /issm/trunk/src/m/model/tres.m
===================================================================
--- /issm/trunk/src/m/model/tres.m	(revision 9611)
+++ /issm/trunk/src/m/model/tres.m	(revision 9612)
@@ -85,5 +85,5 @@
 	md.pressure=PatchToVec(md.results.SteadystateSolution.Pressure);
 	md.temperature=PatchToVec(md.results.SteadystateSolution.Temperature);
-	md.basal_melting_rate=PatchToVec(md.results.SteadystateSolution.BasalMeltingRate);
+	md.basalforcings.melting_rate=PatchToVec(md.results.SteadystateSolution.BasalforcingsMeltingRate);
 
 	if md.control_analysis==1,
@@ -95,5 +95,5 @@
 elseif strcmpi(string,'thermal'),
 	md.temperature=PatchToVec(md.results.ThermalSolution.Temperature);
-	md.basal_melting_rate=PatchToVec(md.results.ThermalSolution.BasalMeltingRate);
+	md.basalforcings.melting_rate=PatchToVec(md.results.ThermalSolution.BasalMeltingRate);
 elseif strcmpi(string,'hydrology'),
 	md.watercolumn=PatchToVec(md.results.HydrologySolution.Watercolumn);
Index: /issm/trunk/src/m/solutions/steadystate_core.m
===================================================================
--- /issm/trunk/src/m/solutions/steadystate_core.m	(revision 9611)
+++ /issm/trunk/src/m/solutions/steadystate_core.m	(revision 9612)
@@ -46,5 +46,5 @@
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,PressureEnum);
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum);
-		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalMeltingRateEnum);
+		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum);
 	end
 
Index: /issm/trunk/src/m/solutions/thermal_core.m
===================================================================
--- /issm/trunk/src/m/solutions/thermal_core.m	(revision 9611)
+++ /issm/trunk/src/m/solutions/thermal_core.m	(revision 9612)
@@ -31,5 +31,5 @@
 			issmprintf(VerboseSolution,'\n%s',['   saving results']);
 			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum,i,time);
-			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalMeltingRateEnum,i,time);
+			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum,i,time);
 		end
 	end
Index: /issm/trunk/src/m/solutions/transient_core.m
===================================================================
--- /issm/trunk/src/m/solutions/transient_core.m	(revision 9611)
+++ /issm/trunk/src/m/solutions/transient_core.m	(revision 9612)
@@ -66,5 +66,5 @@
 			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BedEnum,step,time);
 			if (dim==3), femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum,step,time);end
-			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalMeltingRateEnum,step,time);
+			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum,step,time);
 			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,SurfaceMassBalanceEnum,step,time);
 		end
Index: /issm/trunk/src/m/utils/BC/SetIceSheetBC.m
===================================================================
--- /issm/trunk/src/m/utils/BC/SetIceSheetBC.m	(revision 9611)
+++ /issm/trunk/src/m/utils/BC/SetIceSheetBC.m	(revision 9612)
@@ -33,5 +33,5 @@
 end
 
-%Create zeros basal_melting_rate and surface mass balance if not specified
+%Create zeros basal melting rate and surface mass balance if not specified
 if isnan(md.surfaceforcings.accumulation_rate),
 	md.surfaceforcings.accumulation_rate=zeros(md.numberofnodes,1);
@@ -46,7 +46,7 @@
 	disp('      no surfaceforcings.mass_balance specified: values set as zero');
 end
-if isnan(md.basal_melting_rate),
-	md.basal_melting_rate=zeros(md.numberofnodes,1);
-	disp('      no basal_melting_rate specified: values set as zero');
+if isnan(md.basalforcings.melting_rate),
+	md.basalforcings.melting_rate=zeros(md.numberofnodes,1);
+	disp('      no basalforcings.melting_rate specified: values set as zero');
 end
 if isnan(md.dhdt),
@@ -60,6 +60,6 @@
 	md.spctemperature=NaN*ones(md.numberofnodes,1);
 	pos=find(md.nodeonsurface); md.spctemperature(pos)=md.temperature(pos); %impose observed temperature on surface
-	if (length(md.geothermalflux)~=md.numberofnodes),
-		md.geothermalflux=50*10^-3*ones(md.numberofnodes,1); %50 mW/m^2
+	if (length(md.basalforcings.geothermalflux)~=md.numberofnodes),
+		md.basalforcings.geothermalflux=50*10^-3*ones(md.numberofnodes,1); %50 mW/m^2
 	end
 else
Index: /issm/trunk/src/m/utils/BC/SetIceShelfBC.m
===================================================================
--- /issm/trunk/src/m/utils/BC/SetIceShelfBC.m	(revision 9611)
+++ /issm/trunk/src/m/utils/BC/SetIceShelfBC.m	(revision 9612)
@@ -64,5 +64,5 @@
 md.pressureload=pressureload;
 
-%Create zeros basal_melting_rate, surfaceforcings.ablation_rate, surfaceforcings.accumulation_rate
+%Create zeros basalforcings.melting_rate, surfaceforcings.ablation_rate, surfaceforcings.accumulation_rate
 % and surfaceforcings.mass_balance if not specified
 if isnan(md.surfaceforcings.accumulation_rate),
@@ -78,7 +78,7 @@
 	disp('      no surfaceforcings.mass_balance specified: values set as zero');
 end
-if isnan(md.basal_melting_rate),
-	md.basal_melting_rate=zeros(md.numberofnodes,1);
-	disp('      no basal_melting_rate specified: values set as zero');
+if isnan(md.basalforcings.melting_rate),
+	md.basalforcings.melting_rate=zeros(md.numberofnodes,1);
+	disp('      no basalforcings.melting_rate specified: values set as zero');
 end
 if isnan(md.dhdt),
@@ -92,6 +92,6 @@
 	md.spctemperature=NaN*ones(md.numberofnodes,1);
 	pos=find(md.nodeonsurface); md.spctemperature(pos)=md.temperature(pos); %impose observed temperature on surface
-	if (length(md.geothermalflux)~=md.numberofnodes),
-		md.geothermalflux=zeros(md.numberofnodes,1);
+	if (length(md.basalforcings.geothermalflux)~=md.numberofnodes),
+		md.basalforcings.geothermalflux=zeros(md.numberofnodes,1);
 	end
 else
Index: /issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m
===================================================================
--- /issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m	(revision 9611)
+++ /issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m	(revision 9612)
@@ -75,5 +75,5 @@
 
 
-%Create zeros basal_melting_rate, surfaceforcings.ablation_rate, surfaceforcings.accumulation_rate
+%Create zeros basalforcings.melting_rate, surfaceforcings.ablation_rate, surfaceforcings.accumulation_rate
 % and surfaceforcings.mass_balance if not specified
 if isnan(md.surfaceforcings.accumulation_rate),
@@ -89,7 +89,7 @@
 	disp('      no surfaceforcings.mass_balance specified: values set as zero');
 end
-if isnan(md.basal_melting_rate),
-	md.basal_melting_rate=zeros(md.numberofnodes,1);
-	disp('      no basal_melting_rate specified: values set as zero');
+if isnan(md.basalforcings.melting_rate),
+	md.basalforcings.melting_rate=zeros(md.numberofnodes,1);
+	disp('      no basalforcings.melting_rate specified: values set as zero');
 end
 if isnan(md.dhdt),
@@ -103,7 +103,7 @@
 	md.spctemperature=NaN*ones(md.numberofnodes,1);
 	pos=find(md.nodeonsurface); md.spctemperature(pos)=md.temperature(pos); %impose observed temperature on surface
-	if (length(md.geothermalflux)~=md.numberofnodes),
-		md.geothermalflux=zeros(md.numberofnodes,1);
-		md.geothermalflux(find(md.nodeonicesheet))=50*10^-3; %50mW/m2
+	if (length(md.basalforcings.geothermalflux)~=md.numberofnodes),
+		md.basalforcings.geothermalflux=zeros(md.numberofnodes,1);
+		md.basalforcings.geothermalflux(find(md.nodeonicesheet))=50*10^-3; %50mW/m2
 	end
 else
