0001 function u_g=icediagnostic2d(md,fem),
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 inputs=fem.inputs;
0013
0014
0015 if fem.ishutter,
0016
0017
0018 m_ss=fem.m_ss;
0019 m_dhu=fem.m_dhu;
0020
0021
0022 if fem.m_dhu.params.debug
0023 disp(sprintf('\n%s',['computing surface slope (x and y derivatives)...']));
0024 end
0025 slopex=icediagnostic_core_linear(m_ss,'surface_slope_compute_x',inputs);
0026 slopey=icediagnostic_core_linear(m_ss,'surface_slope_compute_y',inputs);
0027
0028
0029 slopesurface=zeros(m_ss.gridset.gsize,1);
0030 slopesurface(1:6:m_ss.gridset.gsize,1)=slopex(1:6:end);
0031 slopesurface(2:6:m_ss.gridset.gsize,1)=slopey(1:6:end);
0032
0033
0034 disp(sprintf('\n%s',['computing hutter velocities...']));
0035 inputs.slopesurface=slopesurface;
0036 u_g=icediagnostic_core_linear(m_dhu,'diagnostic_hutter',inputs);
0037
0038
0039 u_g(4:6:m_dhu.gridset.gsize)=1/2*md.rho_ice*md.g*md.thickness;
0040 end
0041
0042 if fem.ismacayealpattyn,
0043
0044
0045 m_dh=fem.m_dh;
0046
0047
0048 disp(sprintf('\n%s',['computing horizontal velocities...']));
0049
0050
0051 u_g=icediagnostic_core_nonlinear(m_dh,'diagnostic_horiz',inputs);
0052
0053
0054 u_g(4:6:m_dh.gridset.gsize)=1/2*md.rho_ice*md.g*md.thickness;
0055 end