45 real(dp),
intent(in) :: z_sl, dxi, deta
47 integer(i4b) :: i, j, ir, jr, il, jl, n
48 integer(i4b) :: ir_max, jr_max, min_imax_jmax
49 integer(i4b) :: il_begin, il_end, jl_begin, jl_end
50 real(dp) :: rho_g, rho_sw_g, rho_a_g_inv
51 real(dp) :: dxi_inv, deta_inv
52 real(dp) :: kei_r_incr_inv
53 real(dp),
dimension(0:JMAX,0:IMAX) :: l_r, l_r_inv, fac_wss
55 real(dp),
allocatable,
dimension(:,:) :: f_0
57 real(dp),
parameter :: r_infl = 8.0_dp
65 rho_a_g_inv = 1.0_dp/(rho_a*g)
68 deta_inv = 1.0_dp/deta
70 kei_r_incr_inv = 1.0_dp/kei_r_incr
74 l_r(j,i) = (flex_rig_lith(j,i)*rho_a_g_inv)**0.25_dp
75 l_r_inv(j,i) = 1.0_dp/l_r(j,i)
76 fac_wss(j,i) = l_r(j,i)*l_r(j,i)/(2.0_dp*pi*flex_rig_lith(j,i))
80 ra_max = r_infl*maxval(l_r)
82 ir_max = floor(ra_max*dxi_inv)
83 jr_max = floor(ra_max*deta_inv)
86 min_imax_jmax = min(imax, jmax)
87 ir_max = min(ir_max, min_imax_jmax)
88 jr_max = min(jr_max, min_imax_jmax)
98 allocate(f_0(jl_begin:jl_end, il_begin:il_end))
100 do il=il_begin, il_end
101 do jl=jl_begin, jl_end
103 i = min(max(il, 0), imax)
104 j = min(max(jl, 0), jmax)
106 if (maske(j,i)==0)
then
107 f_0(jl,il) = rho_g * area(j,i) * (h_c(j,i) + h_t(j,i))
108 else if (maske(j,i)==1)
then
111 f_0(jl,il) = rho_sw_g * area(j,i) * z_sl
127 do ir=-ir_max, ir_max
128 do jr=-jr_max, jr_max
131 n = nint( dist_dxdy(jr,ir)*l_r_inv(j,i)*kei_r_incr_inv )
133 n = nint( sq_g11_g(j,i)*dist_dxdy(jr,ir)*l_r_inv(j,i)*kei_r_incr_inv )
136 n = nint( dist_dxdy(jr,ir)*l_r_inv(j,i)*kei_r_incr_inv )
141 wss(j,i) = wss(j,i) - fac_wss(j,i)*f_0(jr+j,ir+i)*kei(n)
Declarations of kind types for SICOPOLIS.
Declarations of global variables for SICOPOLIS (for the ANT domain).
subroutine calc_elra(z_sl, dxi, deta)
Computation of the isostatic steady-state displacement of the lithosphere (wss) for the ELRA model...
Declarations of global variables for SICOPOLIS.