45 real(dp),
intent(in) :: dxi, deta, dzeta_c, dzeta_t
47 integer(i4b) :: i, j, kc, kt
48 real(dp) :: dxi_inv, deta_inv
49 real(dp) :: dvx_dxi, dvx_deta, dvy_dxi, dvy_deta
50 real(dp) :: aqxy1(0:kcmax)
51 real(dp) :: cvis0(0:ktmax), cvis1(0:kcmax)
56 deta_inv = 1.0_dp/deta
59 if (flag_aa_nonzero)
then
60 aqxy1(kc) = aa/(ea-1.0_dp)*eaz_c(kc)*dzeta_c
71 if ((maske(j,i)==0_i2b).and.(.not.flag_shelfy_stream(j,i)))
then
76 vis_int_g(j,i) = (h_c(j,i)+h_t(j,i)) / flui_ave_sia(j,i)
78 else if ((maske(j,i)==1_i2b).or.(maske(j,i)==2_i2b))
then
82 vis_int_g(j,i) = 0.0_dp
90 dvx_dxi = (vx_m(j,i)-vx_m(j,i-1))*dxi_inv
91 dvy_deta = (vy_m(j,i)-vy_m(j-1,i))*deta_inv
93 dvx_deta = 0.25_dp*deta_inv &
94 *(vx_m(j+1,i)+vx_m(j+1,i-1)-vx_m(j-1,i)-vx_m(j-1,i-1))
95 dvy_dxi = 0.25_dp*dxi_inv &
96 *(vy_m(j,i+1)+vy_m(j-1,i+1)-vy_m(j,i-1)-vy_m(j-1,i-1))
98 de_ssa(j,i) = sqrt( dvx_dxi*dvx_dxi &
101 + 0.25_dp*(dvx_deta+dvy_dxi)*(dvx_deta+dvy_dxi) )
106 if (.not.flag_shelfy_stream(j,i))
then
110 cvis1(kc) = aqxy1(kc)*h_c(j,i) &
112 temp_c(kc,j,i), temp_c_m(kc,j,i), 0.0_dp, &
113 enh_c(kc,j,i), 0_i2b)
120 #if (CALCMOD==-1 || CALCMOD==0)
123 cvis1(kc) = aqxy1(kc)*h_c(j,i) &
125 temp_c(kc,j,i), temp_c_m(kc,j,i), 0.0_dp, &
126 enh_c(kc,j,i), 0_i2b)
132 cvis0(kt) = dzeta_t*h_t(j,i) &
134 temp_t_m(kt,j,i), temp_t_m(kt,j,i), omega_t(kt,j,i), &
135 enh_t(kt,j,i), 1_i2b)
139 cvis1(kc) = aqxy1(kc)*h_c(j,i) &
141 temp_c(kc,j,i), temp_c_m(kc,j,i), 0.0_dp, &
142 enh_c(kc,j,i), 0_i2b)
145 #elif (CALCMOD==2 || CALCMOD==3)
148 cvis1(kc) = aqxy1(kc)*h_c(j,i) &
150 temp_c(kc,j,i), temp_c_m(kc,j,i), omega_c(kc,j,i), &
151 enh_c(kc,j,i), 2_i2b)
155 stop
' calc_vis_ssa: CALCMOD must be either -1, 0, 1, 2 or 3!'
163 vis_int_g(j,i) = 0.0_dp
167 vis_int_g(j,i) = vis_int_g(j,i)+0.5_dp*(cvis0(kt+1)+cvis0(kt))
172 vis_int_g(j,i) = vis_int_g(j,i)+0.5_dp*(cvis1(kc+1)+cvis1(kc))
subroutine calc_vis_ssa(dxi, deta, dzeta_c, dzeta_t)
Computation of the depth-integrated viscosity vis_int_g in the shallow shelf approximation.
Declarations of kind types for SICOPOLIS.
real(dp) function viscosity(de_val, temp_val, temp_m_val, omega_val, enh_val, i_flag_cold_temp)
Ice viscosity as a function of the effective strain rate and the temperature (in cold ice) or the wat...
Declarations of global variables for SICOPOLIS (for the ANT domain).
Declarations of global variables for SICOPOLIS.