7 !! Computation of the depth-integrated viscosity vis_int_g in the
8 !! shallow shelf approximation.
12 !! Copyright 2009-2013 Ralf Greve, Tatsuru Sato
16 !! This file is part of SICOPOLIS.
18 !! SICOPOLIS is free software: you can redistribute it and/or modify
19 !! it under the terms of the GNU General Public License as published by
20 !! the Free Software Foundation, either version 3 of the License, or
21 !! (at your option) any later version.
23 !! SICOPOLIS is distributed in the hope that it will be useful,
24 !! but WITHOUT ANY WARRANTY; without even the implied warranty of
25 !! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 !! GNU General Public License for more details.
28 !! You should have received a copy of the GNU General Public License
29 !! along with SICOPOLIS. If not, see <http://www.gnu.org/licenses/>.
31 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
34 !> Computation of the depth-integrated viscosity vis_int_g in the
35 !! shallow shelf approximation.
36 !<------------------------------------------------------------------------------
44 real(dp),
intent(in) :: dxi, deta, dzeta_c
46 integer(i4b) :: i, j, kc
47 real(dp) :: dxi_inv, deta_inv
48 real(dp) :: dvx_dxi, dvx_deta, dvy_dxi, dvy_deta
49 real(dp) :: aqxy1(0:kcmax)
50 real(dp) :: cvis1(0:kcmax)
56 deta_inv = 1.0_dp/deta
59 aqxy1(kc) = deform/(ea-1.0_dp)*eaz_c(kc)*dzeta_c
67 if (maske(j,i)==0_i2b.and..not.flag_sf(j,i))
then
71 vis_int_g(j,i) = (h_c(j,i)+h_t(j,i)) / flui_ave_sia(j,i)
73 else if ((maske(j,i)==1_i2b).or.(maske(j,i)==2_i2b))
then
77 vis_int_g(j,i) = 0.0_dp
84 dvx_dxi = (vx_m(j,i)-vx_m(j,i-1))*dxi_inv
85 dvy_deta = (vy_m(j,i)-vy_m(j-1,i))*deta_inv
87 dvx_deta = 0.25_dp*deta_inv &
88 *(vx_m(j+1,i)+vx_m(j+1,i-1)-vx_m(j-1,i)-vx_m(j-1,i-1))
89 dvy_dxi = 0.25_dp*dxi_inv &
90 *(vy_m(j,i+1)+vy_m(j-1,i+1)-vy_m(j,i-1)-vy_m(j-1,i-1))
92 de_ssa(j,i) = sqrt( dvx_dxi*dvx_dxi &
95 + 0.25_dp*(dvx_deta+dvy_dxi)*(dvx_deta+dvy_dxi) )
101 cvis1(kc) = aqxy1(kc)*h_c(j,i) &
103 temp_c(kc,j,i), temp_c_m(kc,j,i), 0.0_dp, &
104 enh_c(kc,j,i), .true.)
110 vis_int_g(j,i) = 0.0_dp
113 vis_int_g(j,i) = vis_int_g(j,i)+0.5_dp*(cvis1(kc+1)+cvis1(kc))