48 integer(i4b),
intent(in) :: n_switch
49 real(dp),
intent(in) :: dxi, deta
52 real(dp) :: dxi_inv, deta_inv, dxi12_inv, deta12_inv
53 real(dp) :: zs_help(0:jmax,0:imax), zm_help(0:jmax,0:imax), &
54 zb_help(0:jmax,0:imax)
57 deta_inv = 1.0_dp/deta
59 dxi12_inv = 1.0_dp/(12.0_dp*dxi)
60 deta12_inv = 1.0_dp/(12.0_dp*deta)
64 if (n_switch == 1)
then
68 zs_help(j,i) = zs(j,i)
69 zm_help(j,i) = zm(j,i)
70 zb_help(j,i) = zb(j,i)
74 else if (n_switch == 2)
then
78 zs_help(j,i) = zs_neu(j,i)
79 zm_help(j,i) = zm_neu(j,i)
80 zb_help(j,i) = zb_neu(j,i)
85 stop
' topograd_2: Wrong value for n_switch!'
94 dzs_dxi(j,i) = (zs_help(j,i+1)-zs_help(j,i))*dxi_inv &
96 dzm_dxi(j,i) = (zm_help(j,i+1)-zm_help(j,i))*dxi_inv &
98 dzb_dxi(j,i) = (zb_help(j,i+1)-zb_help(j,i))*dxi_inv &
100 dh_c_dxi(j,i) = dzs_dxi(j,i)-dzm_dxi(j,i)
101 dh_t_dxi(j,i) = dzm_dxi(j,i)-dzb_dxi(j,i)
109 dzs_deta(j,i) = (zs_help(j+1,i)-zs_help(j,i))*deta_inv &
111 dzm_deta(j,i) = (zm_help(j+1,i)-zm_help(j,i))*deta_inv &
113 dzb_deta(j,i) = (zb_help(j+1,i)-zb_help(j,i))*deta_inv &
115 dh_c_deta(j,i) = dzs_deta(j,i)-dzm_deta(j,i)
116 dh_t_deta(j,i) = dzm_deta(j,i)-dzb_deta(j,i)
127 = ( -zs_help(j,i+2) + 8.0_dp*zs_help(j,i+1) &
128 -8.0_dp*zs_help(j,i-1) + zs_help(j,i-2) ) &
132 = ( -zm_help(j,i+2) + 8.0_dp*zm_help(j,i+1) &
133 -8.0_dp*zm_help(j,i-1) + zm_help(j,i-2) ) &
137 = ( -zb_help(j,i+2) + 8.0_dp*zb_help(j,i+1) &
138 -8.0_dp*zb_help(j,i-1) + zb_help(j,i-2) ) &
141 dh_c_dxi_g(j,i) = dzs_dxi_g(j,i)-dzm_dxi_g(j,i)
142 dh_t_dxi_g(j,i) = dzm_dxi_g(j,i)-dzb_dxi_g(j,i)
148 dzs_dxi_g(j,0) = (zs_help(j,1)-zs_help(j,0))*dxi_inv &
150 dzm_dxi_g(j,0) = (zm_help(j,1)-zm_help(j,0))*dxi_inv &
152 dzb_dxi_g(j,0) = (zb_help(j,1)-zb_help(j,0))*dxi_inv &
154 dh_c_dxi_g(j,0) = dzs_dxi_g(j,0)-dzm_dxi_g(j,0)
155 dh_t_dxi_g(j,0) = dzm_dxi_g(j,0)-dzb_dxi_g(j,0)
157 dzs_dxi_g(j,1) = (zs_help(j,2)-zs_help(j,0)) &
160 dzm_dxi_g(j,1) = (zm_help(j,2)-zm_help(j,0)) &
163 dzb_dxi_g(j,1) = (zb_help(j,2)-zb_help(j,0)) &
166 dh_c_dxi_g(j,1) = dzs_dxi_g(j,1)-dzm_dxi_g(j,1)
167 dh_t_dxi_g(j,1) = dzm_dxi_g(j,1)-dzb_dxi_g(j,1)
169 dzs_dxi_g(j,imax-1) = (zs_help(j,imax)-zs_help(j,imax-2)) &
171 *insq_g11_g(j,imax-1)
172 dzm_dxi_g(j,imax-1) = (zm_help(j,imax)-zm_help(j,imax-2)) &
174 *insq_g11_g(j,imax-1)
175 dzb_dxi_g(j,imax-1) = (zb_help(j,imax)-zb_help(j,imax-2)) &
177 *insq_g11_g(j,imax-1)
178 dh_c_dxi_g(j,imax-1) = dzs_dxi_g(j,imax-1) &
180 dh_t_dxi_g(j,imax-1) = dzm_dxi_g(j,imax-1) &
183 dzs_dxi_g(j,imax) = (zs_help(j,imax)-zs_help(j,imax-1)) &
186 dzm_dxi_g(j,imax) = (zm_help(j,imax)-zm_help(j,imax-1)) &
189 dzb_dxi_g(j,imax) = (zb_help(j,imax)-zb_help(j,imax-1)) &
192 dh_c_dxi_g(j,imax) = dzs_dxi_g(j,imax)-dzm_dxi_g(j,imax)
193 dh_t_dxi_g(j,imax) = dzm_dxi_g(j,imax)-dzb_dxi_g(j,imax)
202 = ( -zs_help(j+2,i) + 8.0_dp*zs_help(j+1,i) &
203 -8.0_dp*zs_help(j-1,i) + zs_help(j-2,i) ) &
207 = ( -zm_help(j+2,i) + 8.0_dp*zm_help(j+1,i) &
208 -8.0_dp*zm_help(j-1,i) + zm_help(j-2,i) ) &
212 = ( -zb_help(j+2,i) + 8.0_dp*zb_help(j+1,i) &
213 -8.0_dp*zb_help(j-1,i) + zb_help(j-2,i) ) &
216 dh_c_deta_g(j,i) = dzs_deta_g(j,i)-dzm_deta_g(j,i)
217 dh_t_deta_g(j,i) = dzm_deta_g(j,i)-dzb_deta_g(j,i)
223 dzs_deta_g(0,i) = (zs_help(1,i)-zs_help(0,i))*deta_inv &
225 dzm_deta_g(0,i) = (zm_help(1,i)-zm_help(0,i))*deta_inv &
227 dzb_deta_g(0,i) = (zb_help(1,i)-zb_help(0,i))*deta_inv &
229 dh_c_deta_g(0,i) = dzs_deta_g(0,i)-dzm_deta_g(0,i)
230 dh_t_deta_g(0,i) = dzm_deta_g(0,i)-dzb_deta_g(0,i)
232 dzs_deta_g(1,i) = (zs_help(2,i)-zs_help(0,i)) &
235 dzm_deta_g(1,i) = (zm_help(2,i)-zm_help(0,i)) &
238 dzb_deta_g(1,i) = (zb_help(2,i)-zb_help(0,i)) &
241 dh_c_deta_g(1,i) = dzs_deta_g(1,i)-dzm_deta_g(1,i)
242 dh_t_deta_g(1,i) = dzm_deta_g(1,i)-dzb_deta_g(1,i)
244 dzs_deta_g(jmax-1,i) = (zs_help(jmax,i)-zs_help(jmax-2,i)) &
246 *insq_g22_g(jmax-1,i)
247 dzm_deta_g(jmax-1,i) = (zm_help(jmax,i)-zm_help(jmax-2,i)) &
249 *insq_g22_g(jmax-1,i)
250 dzb_deta_g(jmax-1,i) = (zb_help(jmax,i)-zb_help(jmax-2,i)) &
252 *insq_g22_g(jmax-1,i)
253 dh_c_deta_g(jmax-1,i) = dzs_deta_g(jmax-1,i) &
254 -dzm_deta_g(jmax-1,i)
255 dh_t_deta_g(jmax-1,i) = dzm_deta_g(jmax-1,i) &
256 -dzb_deta_g(jmax-1,i)
258 dzs_deta_g(jmax,i) = (zs_help(jmax,i)-zs_help(jmax-1,i)) &
261 dzm_deta_g(jmax,i) = (zm_help(jmax,i)-zm_help(jmax-1,i)) &
264 dzb_deta_g(jmax,i) = (zb_help(jmax,i)-zb_help(jmax-1,i)) &
267 dh_c_deta_g(jmax,i) = dzs_deta_g(jmax,i)-dzm_deta_g(jmax,i)
268 dh_t_deta_g(jmax,i) = dzm_deta_g(jmax,i)-dzb_deta_g(jmax,i)