Index: /issm/trunk-jpl/src/m/classes/inversion.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/inversion.m	(revision 14161)
+++ /issm/trunk-jpl/src/m/classes/inversion.m	(revision 14162)
@@ -86,9 +86,10 @@
 			md = checkfield(md,'inversion.tao','values',[0 1]);
 			md = checkfield(md,'inversion.incomplete_adjoint','values',[0 1]);
-			md = checkfield(md,'inversion.control_parameters','cell',1,'values',{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'MaterialsRheologyZbar' 'Vx' 'Vy'});
+			md = checkfield(md,'inversion.control_parameters','cell',1,'values',...
+				{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'MaterialsRheologyZbar' 'Vx' 'Vy' 'Thickness'});
 			md = checkfield(md,'inversion.nsteps','numel',1,'>=',1);
 			md = checkfield(md,'inversion.maxiter_per_step','size',[md.inversion.nsteps 1],'>=',0);
 			md = checkfield(md,'inversion.step_threshold','size',[md.inversion.nsteps 1]);
-			md = checkfield(md,'inversion.cost_functions','size',[md.inversion.nsteps num_costfunc],'values',[101:105 201 501:505]);
+			md = checkfield(md,'inversion.cost_functions','size',[md.inversion.nsteps num_costfunc],'values',[101:105 201 501:506]);
 			md = checkfield(md,'inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);
 			md = checkfield(md,'inversion.gradient_only','values',[0 1]);
@@ -98,4 +99,6 @@
 
 			if solution==BalancethicknessSolutionEnum()
+				md = checkfield(md,'inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+			elseif solution==WeakBalancethicknessSolutionEnum()
 				md = checkfield(md,'inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
 			else
@@ -177,4 +180,5 @@
 			pos=find(data==504); data(pos)=ThicknessAlongGradientEnum();
 			pos=find(data==505); data(pos)=ThicknessAcrossGradientEnum();
+			pos=find(data==506); data(pos)=BalancethicknessMisfitEnum();
 			WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
 			WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
Index: /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m
===================================================================
--- /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m	(revision 14161)
+++ /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m	(revision 14162)
@@ -69,4 +69,8 @@
 		analyses=[BalancethicknessAnalysisEnum()];
 
+	case WeakBalancethicknessSolutionEnum(),
+		numanalyses=1; 
+		analyses=[BalancethicknessAnalysisEnum()];
+
 	case SurfaceSlopeSolutionEnum(),
 		numanalyses=1; 
Index: /issm/trunk-jpl/src/m/solve/process_solve_options.m
===================================================================
--- /issm/trunk-jpl/src/m/solve/process_solve_options.m	(revision 14161)
+++ /issm/trunk-jpl/src/m/solve/process_solve_options.m	(revision 14162)
@@ -11,5 +11,6 @@
 if ~ismember(solution_type,[DiagnosticSolutionEnum(),PrognosticSolutionEnum(),ThermalSolutionEnum(),...
 		SteadystateSolutionEnum(),TransientSolutionEnum(),EnthalpySolutionEnum(),...
-		BalancethicknessSolutionEnum(),BedSlopeSolutionEnum(),SurfaceSlopeSolutionEnum(),HydrologySolutionEnum(),FlaimSolutionEnum()]),
+		BalancethicknessSolutionEnum(),WeakBalancethicknessSolutionEnum(),BedSlopeSolutionEnum(),...
+		SurfaceSlopeSolutionEnum(),HydrologySolutionEnum(),FlaimSolutionEnum()]),
 	error(['process_solve_options error message: solution_type ' EnumToString(solution_type) ' not supported yet!']);
 end
