49 integer(i4b),
intent(in) :: n_switch
50 real(dp),
intent(in) :: dxi, deta
53 real(dp) :: dxi_inv, deta_inv, dxi12_inv, deta12_inv
54 real(dp) :: zs_help(0:jmax,0:imax), zm_help(0:jmax,0:imax), &
55 zb_help(0:jmax,0:imax)
58 deta_inv = 1.0_dp/deta
60 dxi12_inv = 1.0_dp/(12.0_dp*dxi)
61 deta12_inv = 1.0_dp/(12.0_dp*deta)
65 if (n_switch == 1)
then
69 zs_help(j,i) = zs(j,i)
70 zm_help(j,i) = zm(j,i)
71 zb_help(j,i) = zb(j,i)
75 else if (n_switch == 2)
then
79 zs_help(j,i) = zs_neu(j,i)
80 zm_help(j,i) = zm_neu(j,i)
81 zb_help(j,i) = zb_neu(j,i)
86 stop
' topograd_2: Wrong value for n_switch!'
95 dzs_dxi(j,i) = (zs_help(j,i+1)-zs_help(j,i))*dxi_inv &
97 dzm_dxi(j,i) = (zm_help(j,i+1)-zm_help(j,i))*dxi_inv &
99 dzb_dxi(j,i) = (zb_help(j,i+1)-zb_help(j,i))*dxi_inv &
101 dh_c_dxi(j,i) = dzs_dxi(j,i)-dzm_dxi(j,i)
102 dh_t_dxi(j,i) = dzm_dxi(j,i)-dzb_dxi(j,i)
110 dzs_deta(j,i) = (zs_help(j+1,i)-zs_help(j,i))*deta_inv &
112 dzm_deta(j,i) = (zm_help(j+1,i)-zm_help(j,i))*deta_inv &
114 dzb_deta(j,i) = (zb_help(j+1,i)-zb_help(j,i))*deta_inv &
116 dh_c_deta(j,i) = dzs_deta(j,i)-dzm_deta(j,i)
117 dh_t_deta(j,i) = dzm_deta(j,i)-dzb_deta(j,i)
128 = ( -zs_help(j,i+2) + 8.0_dp*zs_help(j,i+1) &
129 -8.0_dp*zs_help(j,i-1) + zs_help(j,i-2) ) &
133 = ( -zm_help(j,i+2) + 8.0_dp*zm_help(j,i+1) &
134 -8.0_dp*zm_help(j,i-1) + zm_help(j,i-2) ) &
138 = ( -zb_help(j,i+2) + 8.0_dp*zb_help(j,i+1) &
139 -8.0_dp*zb_help(j,i-1) + zb_help(j,i-2) ) &
142 dh_c_dxi_g(j,i) = dzs_dxi_g(j,i)-dzm_dxi_g(j,i)
143 dh_t_dxi_g(j,i) = dzm_dxi_g(j,i)-dzb_dxi_g(j,i)
149 dzs_dxi_g(j,0) = (zs_help(j,1)-zs_help(j,0))*dxi_inv &
151 dzm_dxi_g(j,0) = (zm_help(j,1)-zm_help(j,0))*dxi_inv &
153 dzb_dxi_g(j,0) = (zb_help(j,1)-zb_help(j,0))*dxi_inv &
155 dh_c_dxi_g(j,0) = dzs_dxi_g(j,0)-dzm_dxi_g(j,0)
156 dh_t_dxi_g(j,0) = dzm_dxi_g(j,0)-dzb_dxi_g(j,0)
158 dzs_dxi_g(j,1) = (zs_help(j,2)-zs_help(j,0)) &
161 dzm_dxi_g(j,1) = (zm_help(j,2)-zm_help(j,0)) &
164 dzb_dxi_g(j,1) = (zb_help(j,2)-zb_help(j,0)) &
167 dh_c_dxi_g(j,1) = dzs_dxi_g(j,1)-dzm_dxi_g(j,1)
168 dh_t_dxi_g(j,1) = dzm_dxi_g(j,1)-dzb_dxi_g(j,1)
170 dzs_dxi_g(j,imax-1) = (zs_help(j,imax)-zs_help(j,imax-2)) &
172 *insq_g11_g(j,imax-1)
173 dzm_dxi_g(j,imax-1) = (zm_help(j,imax)-zm_help(j,imax-2)) &
175 *insq_g11_g(j,imax-1)
176 dzb_dxi_g(j,imax-1) = (zb_help(j,imax)-zb_help(j,imax-2)) &
178 *insq_g11_g(j,imax-1)
179 dh_c_dxi_g(j,imax-1) = dzs_dxi_g(j,imax-1) &
181 dh_t_dxi_g(j,imax-1) = dzm_dxi_g(j,imax-1) &
184 dzs_dxi_g(j,imax) = (zs_help(j,imax)-zs_help(j,imax-1)) &
187 dzm_dxi_g(j,imax) = (zm_help(j,imax)-zm_help(j,imax-1)) &
190 dzb_dxi_g(j,imax) = (zb_help(j,imax)-zb_help(j,imax-1)) &
193 dh_c_dxi_g(j,imax) = dzs_dxi_g(j,imax)-dzm_dxi_g(j,imax)
194 dh_t_dxi_g(j,imax) = dzm_dxi_g(j,imax)-dzb_dxi_g(j,imax)
203 = ( -zs_help(j+2,i) + 8.0_dp*zs_help(j+1,i) &
204 -8.0_dp*zs_help(j-1,i) + zs_help(j-2,i) ) &
208 = ( -zm_help(j+2,i) + 8.0_dp*zm_help(j+1,i) &
209 -8.0_dp*zm_help(j-1,i) + zm_help(j-2,i) ) &
213 = ( -zb_help(j+2,i) + 8.0_dp*zb_help(j+1,i) &
214 -8.0_dp*zb_help(j-1,i) + zb_help(j-2,i) ) &
217 dh_c_deta_g(j,i) = dzs_deta_g(j,i)-dzm_deta_g(j,i)
218 dh_t_deta_g(j,i) = dzm_deta_g(j,i)-dzb_deta_g(j,i)
224 dzs_deta_g(0,i) = (zs_help(1,i)-zs_help(0,i))*deta_inv &
226 dzm_deta_g(0,i) = (zm_help(1,i)-zm_help(0,i))*deta_inv &
228 dzb_deta_g(0,i) = (zb_help(1,i)-zb_help(0,i))*deta_inv &
230 dh_c_deta_g(0,i) = dzs_deta_g(0,i)-dzm_deta_g(0,i)
231 dh_t_deta_g(0,i) = dzm_deta_g(0,i)-dzb_deta_g(0,i)
233 dzs_deta_g(1,i) = (zs_help(2,i)-zs_help(0,i)) &
236 dzm_deta_g(1,i) = (zm_help(2,i)-zm_help(0,i)) &
239 dzb_deta_g(1,i) = (zb_help(2,i)-zb_help(0,i)) &
242 dh_c_deta_g(1,i) = dzs_deta_g(1,i)-dzm_deta_g(1,i)
243 dh_t_deta_g(1,i) = dzm_deta_g(1,i)-dzb_deta_g(1,i)
245 dzs_deta_g(jmax-1,i) = (zs_help(jmax,i)-zs_help(jmax-2,i)) &
247 *insq_g22_g(jmax-1,i)
248 dzm_deta_g(jmax-1,i) = (zm_help(jmax,i)-zm_help(jmax-2,i)) &
250 *insq_g22_g(jmax-1,i)
251 dzb_deta_g(jmax-1,i) = (zb_help(jmax,i)-zb_help(jmax-2,i)) &
253 *insq_g22_g(jmax-1,i)
254 dh_c_deta_g(jmax-1,i) = dzs_deta_g(jmax-1,i) &
255 -dzm_deta_g(jmax-1,i)
256 dh_t_deta_g(jmax-1,i) = dzm_deta_g(jmax-1,i) &
257 -dzb_deta_g(jmax-1,i)
259 dzs_deta_g(jmax,i) = (zs_help(jmax,i)-zs_help(jmax-1,i)) &
262 dzm_deta_g(jmax,i) = (zm_help(jmax,i)-zm_help(jmax-1,i)) &
265 dzb_deta_g(jmax,i) = (zb_help(jmax,i)-zb_help(jmax-1,i)) &
268 dh_c_deta_g(jmax,i) = dzs_deta_g(jmax,i)-dzm_deta_g(jmax,i)
269 dh_t_deta_g(jmax,i) = dzm_deta_g(jmax,i)-dzb_deta_g(jmax,i)
subroutine topograd_2(dxi, deta, n_switch)
Calculation of topography gradients on the staggered grid and on the grid points (the latter by fourt...
Declarations of kind types for SICOPOLIS.
Declarations of global variables for SICOPOLIS (for the ANT domain).
Declarations of global variables for SICOPOLIS.