


THICKNESSCORRECTION - correct the thickness of the ice shelf near the grounding line
This routine corrects the thickness and the bed at the transition ice sheet - shelf
due to the assumption of hydrostatic equilibrium.
it treats the area given by the Argus file given in input as follows:
1: linearize the transition iceshelf ice sheet
thickness = coeff * thickness_GL + (1-coeff) * thickness_shelf
coeff = min(0,ditance to GL / distance)
2: take the minimum between this linearized thickness and the previous thickness
thickness = min(linearized thickness, previous thickness)
Usage:
md=ThicknessCorrection(md,filename,distance)

0001 function md=ThicknessCorrection(md,filename,distance) 0002 %THICKNESSCORRECTION - correct the thickness of the ice shelf near the grounding line 0003 % 0004 % This routine corrects the thickness and the bed at the transition ice sheet - shelf 0005 % due to the assumption of hydrostatic equilibrium. 0006 % it treats the area given by the Argus file given in input as follows: 0007 % 1: linearize the transition iceshelf ice sheet 0008 % thickness = coeff * thickness_GL + (1-coeff) * thickness_shelf 0009 % coeff = min(0,ditance to GL / distance) 0010 % 2: take the minimum between this linearized thickness and the previous thickness 0011 % thickness = min(linearized thickness, previous thickness) 0012 % 0013 % Usage: 0014 % md=ThicknessCorrection(md,filename,distance) 0015 0016 %some checks 0017 if ~exist(filename), 0018 error(['ThicknessCorrection error message: the file ' filename ' does not exist']); 0019 end 0020 0021 in=ArgusContourToMesh(md.elements,md.x,md.y,expread(filename,1),'node',1); 0022 pos_shelf=find(in & md.gridoniceshelf); 0023 pos_sheet=find(in & ~md.gridoniceshelf); 0024 for i=1:length(pos_shelf) 0025 %search the grid on ice sheet the closest to i 0026 [d posd]=min(sqrt((md.x(pos_shelf(i))-md.x(pos_sheet)).^2+(md.y(pos_shelf(i))-md.y(pos_sheet)).^2)); 0027 %thickness is minimum between hydrostatic equilibrium and thickness of the closest grid on ice sheet 0028 coeff=min(1,d/distance); 0029 md.thickness(pos_shelf(i))=min(coeff*md.thickness(pos_shelf(i))+(1-coeff)*md.thickness(pos_sheet(posd)),md.thickness(pos_shelf(i))); 0030 end 0031 0032 %check the computed thickness 0033 di=md.rho_ice/md.rho_water; 0034 minth=1/(1-di); 0035 pos=find(isnan(md.thickness) | (md.thickness<=0)); 0036 md.thickness(pos)=minth; 0037 0038 %change bed to take into account the changes in thickness 0039 md.bed=md.surface-md.thickness;