function [qGL,qGLx,qGLy,Fub,Fvb,Fr,Fh,LakeNodes,GLgeo,ubGL,vbGL]=FluxAcrossGroundingLine(CtrlVar,MUA,GF,ub,vb,ud,vd,h,rho,Fub,Fvb,Fr,Fh,LakeNodes)
if nargin<10
Fub=[]; Fvb=[];Fr=[];Fh=[];LakeNodes=[];
end
CtrlVar.GLsubdivide=1;
if isempty(Fub)
Fub=scatteredInterpolant(MUA.coordinates(:,1),MUA.coordinates(:,2),ub);
Fvb=Fub; Fr=Fub; Fh=Fub;
Fvb.Values=vb;
Fr.Values=rho;
Fh.Values=h;
end
if nargin>13
fprintf('Getting read of lake nodes (note: this is not a robust general approach, do check results.\n')
if isempty(LakeNodes)
[OceanNodes,LakeNodes]=LakeOrOcean(CtrlVar,GF,MUA.Boundary,MUA.connectivity,MUA.coordinates);
GF.node(LakeNodes)=1;
end
else
LakeNodes=[] ; OceanNodes=[];
end
GLgeo=GLgeometry(MUA.connectivity,MUA.coordinates,GF,CtrlVar);
xGL=GLgeo(:,7) ; yGL=GLgeo(:,8);
nxGL=GLgeo(:,9); nyGL=GLgeo(:,10);
rhoGL=Fr(xGL,yGL);
ubGL=Fub(xGL,yGL);
vbGL=Fvb(xGL,yGL);
hGL=Fh(xGL,yGL);
dsGL=sqrt((GLgeo(:,3)-GLgeo(:,4)).^2+(GLgeo(:,5)-GLgeo(:,6)).^2);
qGL=dsGL.*hGL.*(ubGL.*nxGL+vbGL.*nyGL).*rhoGL;
qGLx=qGL.*nxGL ; qGLy=qGL.*nyGL ;
return
Not enough input arguments.
Error in FluxAcrossGroundingLine (line 33)
Fub=scatteredInterpolant(MUA.coordinates(:,1),MUA.coordinates(:,2),ub);
figure ;
PlotFEmesh(MUA.coordinates,MUA.connectivity,CtrlVar); hold on ;
plot(GLgeo(:,[3 4])'/CtrlVar.PlotXYscale,GLgeo(:,[5 6])'/CtrlVar.PlotXYscale,'g','LineWidth',2);
scale=1; hold on ;
quiver(GLgeo(:,7)/CtrlVar.PlotXYscale,GLgeo(:,8)/CtrlVar.PlotXYscale,qGLx,qGLy,scale,'color','r')
axis equal
end