Index: /issm/trunk-jpl/test/NightlyRun/test408.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test408.m	(revision 21819)
+++ /issm/trunk-jpl/test/NightlyRun/test408.m	(revision 21820)
@@ -11,5 +11,4 @@
 md.friction.q=ones(md.mesh.numberofelements,1);
 md.friction.coefficientcoulomb=0.02*ones(md.mesh.numberofvertices,1);
-md=extrude(md,3,1);
 md.transient.isthermal=0;
 md.transient.isgroundingline=1;
@@ -17,4 +16,5 @@
 md.cluster=generic('name',oshostname(),'np',3);
 md.transient.requested_outputs={'default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb','TotalSmb'};
+md=extrude(md,3,1);
 md=solve(md,'Transient');
 
Index: /issm/trunk-jpl/test/NightlyRun/test426.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test426.m	(revision 21819)
+++ /issm/trunk-jpl/test/NightlyRun/test426.m	(revision 21820)
@@ -10,10 +10,10 @@
 md.geometry.surface=md.geometry.base+md.geometry.thickness;
 md.smb.mass_balance(:)=100.;
-md=extrude(md,3,1.);
 md=setflowequation(md,'SSA','all');
 md.transient.isstressbalance=0;
 md.transient.isgroundingline=1;
 md.groundingline.migration='AggressiveMigration';
-md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation'};
+md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation','IceMass'};
+md=extrude(md,3,1.);
 md.cluster=generic('name',oshostname(),'np',3);
 
@@ -21,10 +21,10 @@
 
 %Fields and tolerances to track changes
-field_names     ={'Bed1','Surface1','Thickness1','Floatingice1','IceVolume1','IceVolumeAboveFloatation1',...
-	'Bed2','Surface2','Thickness2','Floatingice2','IceVolume2','IceVolumeAboveFloatation2',...
-	'Bed3','Surface3','Thickness3','Floatingice3','IceVolume3','IceVolumeAboveFloatation3'};
-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
-	1e-11,1e-10,1e-11,3e-11,2e-12,5e-12,...
-	1e-10,1e-10,1e-10,5e-11,2e-12,5e-12};
+field_names     ={'Bed1','Surface1','Thickness1','Floatingice1','IceVolume1','IceVolumeAboveFloatation1','IceMass1',...
+	'Bed2','Surface2','Thickness2','Floatingice2','IceVolume2','IceVolumeAboveFloatation2','IceMass2',...
+	'Bed3','Surface3','Thickness3','Floatingice3','IceVolume3','IceVolumeAboveFloatation3','IceMass3'};
+field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+	1e-11,1e-10,1e-11,3e-11,2e-12,5e-12,2e-12,...
+	1e-10,1e-10,1e-10,5e-11,2e-12,5e-12,2e-12};
 field_values={...
 	(md.results.TransientSolution(1).Base),...
@@ -34,4 +34,5 @@
 	(md.results.TransientSolution(1).IceVolume),...
 	(md.results.TransientSolution(1).IceVolumeAboveFloatation),...
+	(md.results.TransientSolution(1).IceMass),...
 	(md.results.TransientSolution(2).Base),...
 	(md.results.TransientSolution(2).Surface),...
@@ -40,4 +41,5 @@
 	(md.results.TransientSolution(2).IceVolume),...
 	(md.results.TransientSolution(2).IceVolumeAboveFloatation),...
+	(md.results.TransientSolution(2).IceMass),...
 	(md.results.TransientSolution(3).Base),...
 	(md.results.TransientSolution(3).Surface),...
@@ -46,3 +48,4 @@
 	(md.results.TransientSolution(3).IceVolume),...
 	(md.results.TransientSolution(3).IceVolumeAboveFloatation),...
+	(md.results.TransientSolution(3).IceMass),...
 	};
Index: /issm/trunk-jpl/test/NightlyRun/test443.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test443.m	(revision 21820)
+++ /issm/trunk-jpl/test/NightlyRun/test443.m	(revision 21820)
@@ -0,0 +1,76 @@
+%Test Name: SquareSheetShelfTranSSA3dAggressiveRegionalOutput
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'../Exp/SquareShelf.exp','');
+md=parameterize(md,'../Par/SquareSheetShelf.par');
+md.geometry.bed=md.geometry.base;
+pos=find(md.mask.groundedice_levelset<0);
+md.geometry.bed(pos)=md.geometry.base(pos)-10;
+md.friction=frictioncoulomb();
+md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
+md.friction.coefficientcoulomb=0.02*ones(md.mesh.numberofvertices,1);
+md.transient.isthermal=0;
+md.transient.isgroundingline=1;
+md.groundingline.migration='AggressiveMigration';
+
+md.settings.output_frequency=2;
+md=setflowequation(md,'SSA','all');
+md.cluster=generic('name',oshostname(),'np',3);
+
+regionalmask=zeros(md.mesh.numberofvertices,1);
+in=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,'../Exp/SquareHalfRight.exp','node',1);
+regionalmask(find(in))=1;
+md.transient.requested_outputs={'default','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1',...
+	'IceMass1','IceVolume1','IceVolumeAboveFloatation1','IceVolumeAboveFloatation2','IceVolumeAboveFloatation'};
+md.outputdefinition.definitions{1}=regionaloutput('name','GroundedArea1','outputnamestring','GroundedArea','mask',regionalmask,...
+	'definitionstring','Outputdefinition1');
+md.outputdefinition.definitions{2}=regionaloutput('name','FloatingArea1','outputnamestring','FloatingArea','mask',regionalmask,...
+	'definitionstring','Outputdefinition2');
+md.outputdefinition.definitions{3}=regionaloutput('name','TotalFloatingBmb1','outputnamestring','TotalFloatingBmb','mask',regionalmask,...
+	'definitionstring','Outputdefinition3');
+md.outputdefinition.definitions{4}=regionaloutput('name','TotalGroundedBmb1','outputnamestring','TotalGroundedBmb','mask',regionalmask,...
+	'definitionstring','Outputdefinition4');
+md.outputdefinition.definitions{5}=regionaloutput('name','IceMass1','outputnamestring','IceMass','mask',regionalmask,...
+	'definitionstring','Outputdefinition5');
+md.outputdefinition.definitions{6}=regionaloutput('name','IceVolume1','outputnamestring','IceVolume','mask',regionalmask,...
+	'definitionstring','Outputdefinition6');
+md.outputdefinition.definitions{7}=regionaloutput('name','IceVolumeAboveFloatation1','outputnamestring','IceVolumeAboveFloatation','mask',regionalmask,...
+	'definitionstring','Outputdefinition7');
+md.outputdefinition.definitions{8}=regionaloutput('name','TotalSmb1','outputnamestring','TotalSmb','mask',regionalmask,...
+	'definitionstring','Outputdefinition8');
+md.outputdefinition.definitions{9}=regionaloutput('name','IceVolumeAboveFloatation2','outputnamestring','IceVolumeAboveFloatation',...
+	'maskexpstring','../Exp/SquareHalfRight.exp','definitionstring','Outputdefinition9','model',md);
+
+md=extrude(md,3,1);
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names     ={'IceMass1','IceVolume1','IceVolumeAboveFloatation1','IceVolumeAboveFloatation21',...
+	'Thickness1','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1',...
+	'IceMass3','IceVolume3','IceVolumeAboveFloatation3','IceVolumeAboveFloatation23',...
+	'Thickness3','GroundedArea3','FloatingArea3','TotalFloatingBmb3','TotalGroundedBmb3','TotalSmb3'};
+field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+field_values={...
+	(md.results.TransientSolution(1).IceMass1),...
+	(md.results.TransientSolution(1).IceVolume1),...
+	(md.results.TransientSolution(1).IceVolumeAboveFloatation1),...
+	(md.results.TransientSolution(1).IceVolumeAboveFloatation2),...
+	(md.results.TransientSolution(1).Thickness),...
+	(md.results.TransientSolution(1).GroundedArea1),...
+	(md.results.TransientSolution(1).FloatingArea1),...
+	(md.results.TransientSolution(1).TotalFloatingBmb1),...
+	(md.results.TransientSolution(1).TotalGroundedBmb1),...
+	(md.results.TransientSolution(1).TotalSmb1),...
+	(md.results.TransientSolution(3).IceMass1),...
+	(md.results.TransientSolution(3).IceVolume1),...
+	(md.results.TransientSolution(3).IceVolumeAboveFloatation1),...
+	(md.results.TransientSolution(3).IceVolumeAboveFloatation2),...
+	(md.results.TransientSolution(3).Thickness),...
+	(md.results.TransientSolution(3).GroundedArea1),...
+	(md.results.TransientSolution(3).FloatingArea1),...
+	(md.results.TransientSolution(3).TotalFloatingBmb1),...
+	(md.results.TransientSolution(3).TotalGroundedBmb1),...
+	(md.results.TransientSolution(3).TotalSmb1),...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test444.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test444.m	(revision 21820)
+++ /issm/trunk-jpl/test/NightlyRun/test444.m	(revision 21820)
@@ -0,0 +1,107 @@
+%Test Name: SquareSheetShelfTranSSA2dAggressiveDakotaSampRegionalOutput
+md=triangle(model(),'../Exp/Square.exp',150000.);
+md=setmask(md,'../Exp/SquareShelf.exp','');
+md=parameterize(md,'../Par/SquareSheetShelf.par');
+md.geometry.bed=md.geometry.base;
+pos=find(md.mask.groundedice_levelset<0);
+md.geometry.bed(pos)=md.geometry.base(pos)-10;
+md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
+md.transient.isthermal=0;
+md.transient.isgroundingline=1;
+md.groundingline.migration='AggressiveMigration';
+
+md.settings.output_frequency=3;
+md=setflowequation(md,'SSA','all');
+md.cluster=generic('name',oshostname(),'np',3);
+
+regionalmask=zeros(md.mesh.numberofvertices,1);
+in=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,'../Exp/SquareHalfRight.exp','node',1);
+regionalmask(find(in))=1;
+md.transient.requested_outputs={'default','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1',...
+	'IceMass1','IceVolume1','IceVolumeAboveFloatation1','IceVolumeAboveFloatation'};
+md.outputdefinition.definitions{1}=regionaloutput('name','GroundedArea1','outputnamestring','GroundedArea','mask',regionalmask,...
+	'definitionstring','Outputdefinition1');
+md.outputdefinition.definitions{2}=regionaloutput('name','FloatingArea1','outputnamestring','FloatingArea','mask',regionalmask,...
+	'definitionstring','Outputdefinition2');
+md.outputdefinition.definitions{3}=regionaloutput('name','TotalFloatingBmb1','outputnamestring','TotalFloatingBmb','mask',regionalmask,...
+	'definitionstring','Outputdefinition3');
+md.outputdefinition.definitions{4}=regionaloutput('name','TotalGroundedBmb1','outputnamestring','TotalGroundedBmb','mask',regionalmask,...
+	'definitionstring','Outputdefinition4');
+md.outputdefinition.definitions{5}=regionaloutput('name','IceMass1','outputnamestring','IceMass','mask',regionalmask,...
+	'definitionstring','Outputdefinition5');
+md.outputdefinition.definitions{6}=regionaloutput('name','IceVolume1','outputnamestring','IceVolume','mask',regionalmask,...
+	'definitionstring','Outputdefinition6');
+md.outputdefinition.definitions{7}=regionaloutput('name','IceVolumeAboveFloatation1','outputnamestring','IceVolumeAboveFloatation','mask',regionalmask,...
+	'definitionstring','Outputdefinition7');
+md.outputdefinition.definitions{8}=regionaloutput('name','TotalSmb1','outputnamestring','TotalSmb','mask',regionalmask,...
+	'definitionstring','Outputdefinition8');
+
+md=extrude(md,3,1);
+md=collapse(md);
+
+%Dakota options
+
+%dakota version
+version=IssmConfig('_DAKOTA_VERSION_'); version=version(1:3); version=str2num(version);
+
+md.qmu.variables.drag_coefficient=normal_uncertain('scaled_BasalforcingsFloatingiceMeltingRate',1,0.1);
+
+md.qmu.responses.IceMass1=response_function('Outputdefinition5',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+md.qmu.responses.IceVolume1=response_function('Outputdefinition6',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+md.qmu.responses.IceVolumeAboveFloatation1=response_function('Outputdefinition7',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+md.qmu.responses.IceVolumeAboveFloatation=response_function('IceVolumeAboveFloatation',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+md.qmu.responses.GroundedArea1=response_function('Outputdefinition1',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+md.qmu.responses.FloatingArea1=response_function('Outputdefinition2',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+md.qmu.responses.TotalFloatingBmb1=response_function('Outputdefinition3',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+md.qmu.responses.TotalGroundedBmb1=response_function('Outputdefinition4',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+md.qmu.responses.TotalSmb1=response_function('Outputdefinition8',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+
+md.qmu.method     =dakota_method('nond_samp');
+md.qmu.method(end)=dmeth_params_set(md.qmu.method(end),...
+	'seed',1234,...
+	'samples',20,...
+	'sample_type','random');
+
+%%  a variety of parameters
+md.qmu.params.direct=true;
+md.qmu.params.analysis_components='';
+md.qmu.params.tabular_graphics_data=true;
+
+if version>=6,
+	md.qmu.params.analysis_driver='matlab';
+	md.qmu.params.evaluation_scheduling='master';
+	md.qmu.params.processors_per_evaluation=2;
+else
+	md.qmu.params.analysis_driver='stressbalance';
+	md.qmu.params.evaluation_concurrency=1;
+end
+
+%partitioning
+md.qmu.numberofpartitions=20;
+md=partitioner(md,'package','chaco','npart',md.qmu.numberofpartitions,'weighting','on');
+md.qmu.partition=md.qmu.partition-1;
+md.qmu.isdakota=1;
+
+md.stressbalance.reltol=10^-5; %tighten for qmu analyses
+
+md=solve(md,'Transient','overwrite','y');
+
+%Fields and tolerances to track changes
+md.qmu.results=md.results.dakota;
+
+%we put all the mean and stdev data in the montecarlo field, which we will use to test for success.
+md.results.dakota.montecarlo=[];
+for i=1:8,
+	md.results.dakota.montecarlo=[md.results.dakota.montecarlo md.results.dakota.dresp_out(i).mean];
+end
+for i=1:8,
+	md.results.dakota.montecarlo=[md.results.dakota.montecarlo md.results.dakota.dresp_out(i).stddev];
+end
+field_names     ={'montecarlo'};
+field_tolerances={1e-11};
+field_values={...
+	md.results.dakota.montecarlo,...
+	};
+
