33submodule(
opr_sx) sx_set_convect_rst
39 module subroutine opr_sx_set_convect_rst(cr, cs, ct, cx, cy, cz, xh, coef)
40 type(space_t),
intent(inout) :: Xh
41 type(coef_t),
intent(inout) :: coef
42 real(kind=
rp),
dimension(Xh%lxyz, coef%msh%nelv), &
43 intent(inout) :: cr, cs, ct
44 real(kind=
rp),
dimension(Xh%lxyz, coef%msh%nelv), &
45 intent(in) :: cx, cy, cz
46 associate(drdx => coef%drdx, drdy => coef%drdy, drdz => coef%drdz, &
47 dsdx => coef%dsdx, dsdy => coef%dsdy, dsdz => coef%dsdz, &
48 dtdx => coef%dtdx, dtdy => coef%dtdy, dtdz => coef%dtdz, &
49 nelv => coef%msh%nelv, lx => xh%lx, w3 => xh%w3)
53 call sx_set_convect_rst_lx18(cr, cs, ct, cx, cy, cz, drdx, &
54 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
56 call sx_set_convect_rst_lx17(cr, cs, ct, cx, cy, cz, drdx, &
57 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
59 call sx_set_convect_rst_lx16(cr, cs, ct, cx, cy, cz, drdx, &
60 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
62 call sx_set_convect_rst_lx15(cr, cs, ct, cx, cy, cz, drdx, &
63 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
65 call sx_set_convect_rst_lx14(cr, cs, ct, cx, cy, cz, drdx, &
66 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
68 call sx_set_convect_rst_lx13(cr, cs, ct, cx, cy, cz, drdx, &
69 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
71 call sx_set_convect_rst_lx12(cr, cs, ct, cx, cy, cz, drdx, &
72 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
74 call sx_set_convect_rst_lx11(cr, cs, ct, cx, cy, cz, drdx, &
75 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
77 call sx_set_convect_rst_lx10(cr, cs, ct, cx, cy, cz, drdx, &
78 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
80 call sx_set_convect_rst_lx9(cr, cs, ct, cx, cy, cz, drdx, &
81 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
83 call sx_set_convect_rst_lx8(cr, cs, ct, cx, cy, cz, drdx, &
84 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
86 call sx_set_convect_rst_lx7(cr, cs, ct, cx, cy, cz, drdx, &
87 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
89 call sx_set_convect_rst_lx6(cr, cs, ct, cx, cy, cz, drdx, &
90 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
92 call sx_set_convect_rst_lx5(cr, cs, ct, cx, cy, cz, drdx, &
93 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
95 call sx_set_convect_rst_lx4(cr, cs, ct, cx, cy, cz, drdx, &
96 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
98 call sx_set_convect_rst_lx3(cr, cs, ct, cx, cy, cz, drdx, &
99 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
101 call sx_set_convect_rst_lx2(cr, cs, ct, cx, cy, cz, drdx, &
102 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
104 call sx_set_convect_rst_lx(cr, cs, ct, cx, cy, cz, drdx, &
105 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv, lx)
108 end subroutine opr_sx_set_convect_rst
110 subroutine sx_set_convect_rst_lx(cr, cs, ct, cx, cy, cz, &
111 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n, lx)
112 integer,
intent(in) :: n, lx
113 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
114 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
115 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
116 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
117 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
118 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
121 do i = 1, lx * lx * lx
123 cr(i,1,1,e) = w3(i,1,1) &
124 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
125 + cy(i,1,1,e) * drdy(i,1,1,e) &
126 + cz(i,1,1,e) * drdz(i,1,1,e) )
127 cs(i,1,1,e) = w3(i,1,1) &
128 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
129 + cy(i,1,1,e) * dsdy(i,1,1,e) &
130 + cz(i,1,1,e) * dsdz(i,1,1,e))
131 ct(i,1,1,e) = w3(i,1,1) &
132 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
133 + cy(i,1,1,e) * dtdy(i,1,1,e) &
134 + cz(i,1,1,e) * dtdz(i,1,1,e))
138 end subroutine sx_set_convect_rst_lx
140 subroutine sx_set_convect_rst_lx18(cr, cs, ct, cx, cy, cz, &
141 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
142 integer,
parameter :: lx = 18
143 integer,
intent(in) :: n
144 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
145 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
146 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
147 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
148 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
149 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
152 do i = 1, lx * lx * lx
154 cr(i,1,1,e) = w3(i,1,1) &
155 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
156 + cy(i,1,1,e) * drdy(i,1,1,e) &
157 + cz(i,1,1,e) * drdz(i,1,1,e) )
158 cs(i,1,1,e) = w3(i,1,1) &
159 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
160 + cy(i,1,1,e) * dsdy(i,1,1,e) &
161 + cz(i,1,1,e) * dsdz(i,1,1,e))
162 ct(i,1,1,e) = w3(i,1,1) &
163 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
164 + cy(i,1,1,e) * dtdy(i,1,1,e) &
165 + cz(i,1,1,e) * dtdz(i,1,1,e))
169 end subroutine sx_set_convect_rst_lx18
171 subroutine sx_set_convect_rst_lx17(cr, cs, ct, cx, cy, cz, &
172 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
173 integer,
parameter :: lx = 17
174 integer,
intent(in) :: n
175 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
176 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
177 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
178 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
179 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
180 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
183 do i = 1, lx * lx * lx
185 cr(i,1,1,e) = w3(i,1,1) &
186 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
187 + cy(i,1,1,e) * drdy(i,1,1,e) &
188 + cz(i,1,1,e) * drdz(i,1,1,e) )
189 cs(i,1,1,e) = w3(i,1,1) &
190 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
191 + cy(i,1,1,e) * dsdy(i,1,1,e) &
192 + cz(i,1,1,e) * dsdz(i,1,1,e))
193 ct(i,1,1,e) = w3(i,1,1) &
194 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
195 + cy(i,1,1,e) * dtdy(i,1,1,e) &
196 + cz(i,1,1,e) * dtdz(i,1,1,e))
200 end subroutine sx_set_convect_rst_lx17
202 subroutine sx_set_convect_rst_lx16(cr, cs, ct, cx, cy, cz, &
203 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
204 integer,
parameter :: lx = 16
205 integer,
intent(in) :: n
206 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
207 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
208 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
209 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
210 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
211 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
214 do i = 1, lx * lx * lx
216 cr(i,1,1,e) = w3(i,1,1) &
217 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
218 + cy(i,1,1,e) * drdy(i,1,1,e) &
219 + cz(i,1,1,e) * drdz(i,1,1,e) )
220 cs(i,1,1,e) = w3(i,1,1) &
221 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
222 + cy(i,1,1,e) * dsdy(i,1,1,e) &
223 + cz(i,1,1,e) * dsdz(i,1,1,e))
224 ct(i,1,1,e) = w3(i,1,1) &
225 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
226 + cy(i,1,1,e) * dtdy(i,1,1,e) &
227 + cz(i,1,1,e) * dtdz(i,1,1,e))
231 end subroutine sx_set_convect_rst_lx16
233 subroutine sx_set_convect_rst_lx15(cr, cs, ct, cx, cy, cz, &
234 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
235 integer,
parameter :: lx = 15
236 integer,
intent(in) :: n
237 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
238 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
239 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
240 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
241 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
242 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
245 do i = 1, lx * lx * lx
247 cr(i,1,1,e) = w3(i,1,1) &
248 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
249 + cy(i,1,1,e) * drdy(i,1,1,e) &
250 + cz(i,1,1,e) * drdz(i,1,1,e) )
251 cs(i,1,1,e) = w3(i,1,1) &
252 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
253 + cy(i,1,1,e) * dsdy(i,1,1,e) &
254 + cz(i,1,1,e) * dsdz(i,1,1,e))
255 ct(i,1,1,e) = w3(i,1,1) &
256 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
257 + cy(i,1,1,e) * dtdy(i,1,1,e) &
258 + cz(i,1,1,e) * dtdz(i,1,1,e))
262 end subroutine sx_set_convect_rst_lx15
264 subroutine sx_set_convect_rst_lx14(cr, cs, ct, cx, cy, cz, &
265 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
266 integer,
parameter :: lx = 14
267 integer,
intent(in) :: n
268 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
269 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
270 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
271 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
272 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
273 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
276 do i = 1, lx * lx * lx
278 cr(i,1,1,e) = w3(i,1,1) &
279 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
280 + cy(i,1,1,e) * drdy(i,1,1,e) &
281 + cz(i,1,1,e) * drdz(i,1,1,e) )
282 cs(i,1,1,e) = w3(i,1,1) &
283 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
284 + cy(i,1,1,e) * dsdy(i,1,1,e) &
285 + cz(i,1,1,e) * dsdz(i,1,1,e))
286 ct(i,1,1,e) = w3(i,1,1) &
287 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
288 + cy(i,1,1,e) * dtdy(i,1,1,e) &
289 + cz(i,1,1,e) * dtdz(i,1,1,e))
293 end subroutine sx_set_convect_rst_lx14
295 subroutine sx_set_convect_rst_lx13(cr, cs, ct, cx, cy, cz, &
296 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
297 integer,
parameter :: lx = 13
298 integer,
intent(in) :: n
299 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
300 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
301 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
302 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
303 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
304 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
307 do i = 1, lx * lx * lx
309 cr(i,1,1,e) = w3(i,1,1) &
310 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
311 + cy(i,1,1,e) * drdy(i,1,1,e) &
312 + cz(i,1,1,e) * drdz(i,1,1,e) )
313 cs(i,1,1,e) = w3(i,1,1) &
314 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
315 + cy(i,1,1,e) * dsdy(i,1,1,e) &
316 + cz(i,1,1,e) * dsdz(i,1,1,e))
317 ct(i,1,1,e) = w3(i,1,1) &
318 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
319 + cy(i,1,1,e) * dtdy(i,1,1,e) &
320 + cz(i,1,1,e) * dtdz(i,1,1,e))
324 end subroutine sx_set_convect_rst_lx13
326 subroutine sx_set_convect_rst_lx12(cr, cs, ct, cx, cy, cz, &
327 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
328 integer,
parameter :: lx = 12
329 integer,
intent(in) :: n
330 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
331 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
332 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
333 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
334 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
335 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
338 do i = 1, lx * lx * lx
340 cr(i,1,1,e) = w3(i,1,1) &
341 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
342 + cy(i,1,1,e) * drdy(i,1,1,e) &
343 + cz(i,1,1,e) * drdz(i,1,1,e) )
344 cs(i,1,1,e) = w3(i,1,1) &
345 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
346 + cy(i,1,1,e) * dsdy(i,1,1,e) &
347 + cz(i,1,1,e) * dsdz(i,1,1,e))
348 ct(i,1,1,e) = w3(i,1,1) &
349 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
350 + cy(i,1,1,e) * dtdy(i,1,1,e) &
351 + cz(i,1,1,e) * dtdz(i,1,1,e))
355 end subroutine sx_set_convect_rst_lx12
357 subroutine sx_set_convect_rst_lx11(cr, cs, ct, cx, cy, cz, &
358 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
359 integer,
parameter :: lx = 11
360 integer,
intent(in) :: n
361 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
362 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
363 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
364 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
365 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
366 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
369 do i = 1, lx * lx * lx
371 cr(i,1,1,e) = w3(i,1,1) &
372 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
373 + cy(i,1,1,e) * drdy(i,1,1,e) &
374 + cz(i,1,1,e) * drdz(i,1,1,e) )
375 cs(i,1,1,e) = w3(i,1,1) &
376 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
377 + cy(i,1,1,e) * dsdy(i,1,1,e) &
378 + cz(i,1,1,e) * dsdz(i,1,1,e))
379 ct(i,1,1,e) = w3(i,1,1) &
380 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
381 + cy(i,1,1,e) * dtdy(i,1,1,e) &
382 + cz(i,1,1,e) * dtdz(i,1,1,e))
386 end subroutine sx_set_convect_rst_lx11
388 subroutine sx_set_convect_rst_lx10(cr, cs, ct, cx, cy, cz, &
389 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
390 integer,
parameter :: lx = 10
391 integer,
intent(in) :: n
392 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
393 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
394 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
395 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
396 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
397 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
400 do i = 1, lx * lx * lx
402 cr(i,1,1,e) = w3(i,1,1) &
403 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
404 + cy(i,1,1,e) * drdy(i,1,1,e) &
405 + cz(i,1,1,e) * drdz(i,1,1,e) )
406 cs(i,1,1,e) = w3(i,1,1) &
407 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
408 + cy(i,1,1,e) * dsdy(i,1,1,e) &
409 + cz(i,1,1,e) * dsdz(i,1,1,e))
410 ct(i,1,1,e) = w3(i,1,1) &
411 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
412 + cy(i,1,1,e) * dtdy(i,1,1,e) &
413 + cz(i,1,1,e) * dtdz(i,1,1,e))
417 end subroutine sx_set_convect_rst_lx10
419 subroutine sx_set_convect_rst_lx9(cr, cs, ct, cx, cy, cz, &
420 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
421 integer,
parameter :: lx = 9
422 integer,
intent(in) :: n
423 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
424 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
425 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
426 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
427 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
428 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
431 do i = 1, lx * lx * lx
433 cr(i,1,1,e) = w3(i,1,1) &
434 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
435 + cy(i,1,1,e) * drdy(i,1,1,e) &
436 + cz(i,1,1,e) * drdz(i,1,1,e) )
437 cs(i,1,1,e) = w3(i,1,1) &
438 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
439 + cy(i,1,1,e) * dsdy(i,1,1,e) &
440 + cz(i,1,1,e) * dsdz(i,1,1,e))
441 ct(i,1,1,e) = w3(i,1,1) &
442 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
443 + cy(i,1,1,e) * dtdy(i,1,1,e) &
444 + cz(i,1,1,e) * dtdz(i,1,1,e))
448 end subroutine sx_set_convect_rst_lx9
450 subroutine sx_set_convect_rst_lx8(cr, cs, ct, cx, cy, cz, &
451 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
452 integer,
parameter :: lx = 8
453 integer,
intent(in) :: n
454 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
455 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
456 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
457 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
458 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
459 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
462 do i = 1, lx * lx * lx
464 cr(i,1,1,e) = w3(i,1,1) &
465 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
466 + cy(i,1,1,e) * drdy(i,1,1,e) &
467 + cz(i,1,1,e) * drdz(i,1,1,e) )
468 cs(i,1,1,e) = w3(i,1,1) &
469 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
470 + cy(i,1,1,e) * dsdy(i,1,1,e) &
471 + cz(i,1,1,e) * dsdz(i,1,1,e))
472 ct(i,1,1,e) = w3(i,1,1) &
473 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
474 + cy(i,1,1,e) * dtdy(i,1,1,e) &
475 + cz(i,1,1,e) * dtdz(i,1,1,e))
479 end subroutine sx_set_convect_rst_lx8
481 subroutine sx_set_convect_rst_lx7(cr, cs, ct, cx, cy, cz, &
482 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
483 integer,
parameter :: lx = 7
484 integer,
intent(in) :: n
485 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
486 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
487 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
488 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
489 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
490 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
493 do i = 1, lx * lx * lx
495 cr(i,1,1,e) = w3(i,1,1) &
496 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
497 + cy(i,1,1,e) * drdy(i,1,1,e) &
498 + cz(i,1,1,e) * drdz(i,1,1,e) )
499 cs(i,1,1,e) = w3(i,1,1) &
500 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
501 + cy(i,1,1,e) * dsdy(i,1,1,e) &
502 + cz(i,1,1,e) * dsdz(i,1,1,e))
503 ct(i,1,1,e) = w3(i,1,1) &
504 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
505 + cy(i,1,1,e) * dtdy(i,1,1,e) &
506 + cz(i,1,1,e) * dtdz(i,1,1,e))
510 end subroutine sx_set_convect_rst_lx7
512 subroutine sx_set_convect_rst_lx6(cr, cs, ct, cx, cy, cz, &
513 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
514 integer,
parameter :: lx = 6
515 integer,
intent(in) :: n
516 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
517 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
518 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
519 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
520 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
521 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
524 do i = 1, lx * lx * lx
526 cr(i,1,1,e) = w3(i,1,1) &
527 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
528 + cy(i,1,1,e) * drdy(i,1,1,e) &
529 + cz(i,1,1,e) * drdz(i,1,1,e) )
530 cs(i,1,1,e) = w3(i,1,1) &
531 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
532 + cy(i,1,1,e) * dsdy(i,1,1,e) &
533 + cz(i,1,1,e) * dsdz(i,1,1,e))
534 ct(i,1,1,e) = w3(i,1,1) &
535 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
536 + cy(i,1,1,e) * dtdy(i,1,1,e) &
537 + cz(i,1,1,e) * dtdz(i,1,1,e))
541end subroutine sx_set_convect_rst_lx6
543subroutine sx_set_convect_rst_lx5(cr, cs, ct, cx, cy, cz, &
544 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
545 integer,
parameter :: lx = 5
546 integer,
intent(in) :: n
547 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
548 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
549 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
550 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
551 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
552 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
555 do i = 1, lx * lx * lx
557 cr(i,1,1,e) = w3(i,1,1) &
558 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
559 + cy(i,1,1,e) * drdy(i,1,1,e) &
560 + cz(i,1,1,e) * drdz(i,1,1,e) )
561 cs(i,1,1,e) = w3(i,1,1) &
562 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
563 + cy(i,1,1,e) * dsdy(i,1,1,e) &
564 + cz(i,1,1,e) * dsdz(i,1,1,e))
565 ct(i,1,1,e) = w3(i,1,1) &
566 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
567 + cy(i,1,1,e) * dtdy(i,1,1,e) &
568 + cz(i,1,1,e) * dtdz(i,1,1,e))
572 end subroutine sx_set_convect_rst_lx5
574 subroutine sx_set_convect_rst_lx4(cr, cs, ct, cx, cy, cz, &
575 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
576 integer,
parameter :: lx = 4
577 integer,
intent(in) :: n
578 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
579 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
580 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
581 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
582 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
583 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
586 do i = 1, lx * lx * lx
588 cr(i,1,1,e) = w3(i,1,1) &
589 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
590 + cy(i,1,1,e) * drdy(i,1,1,e) &
591 + cz(i,1,1,e) * drdz(i,1,1,e) )
592 cs(i,1,1,e) = w3(i,1,1) &
593 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
594 + cy(i,1,1,e) * dsdy(i,1,1,e) &
595 + cz(i,1,1,e) * dsdz(i,1,1,e))
596 ct(i,1,1,e) = w3(i,1,1) &
597 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
598 + cy(i,1,1,e) * dtdy(i,1,1,e) &
599 + cz(i,1,1,e) * dtdz(i,1,1,e))
603 end subroutine sx_set_convect_rst_lx4
605 subroutine sx_set_convect_rst_lx3(cr, cs, ct, cx, cy, cz, &
606 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
607 integer,
parameter :: lx = 3
608 integer,
intent(in) :: n
609 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
610 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
611 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
612 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
613 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
614 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
617 do i = 1, lx * lx * lx
619 cr(i,1,1,e) = w3(i,1,1) &
620 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
621 + cy(i,1,1,e) * drdy(i,1,1,e) &
622 + cz(i,1,1,e) * drdz(i,1,1,e) )
623 cs(i,1,1,e) = w3(i,1,1) &
624 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
625 + cy(i,1,1,e) * dsdy(i,1,1,e) &
626 + cz(i,1,1,e) * dsdz(i,1,1,e))
627 ct(i,1,1,e) = w3(i,1,1) &
628 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
629 + cy(i,1,1,e) * dtdy(i,1,1,e) &
630 + cz(i,1,1,e) * dtdz(i,1,1,e))
634 end subroutine sx_set_convect_rst_lx3
636 subroutine sx_set_convect_rst_lx2(cr, cs, ct, cx, cy, cz, &
637 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
638 integer,
parameter :: lx = 2
639 integer,
intent(in) :: n
640 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
641 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
642 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
643 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
644 real(kind=
rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
645 real(kind=
rp),
dimension(lx, lx, lx),
intent(in) :: w3
648 do i = 1, lx * lx * lx
650 cr(i,1,1,e) = w3(i,1,1) &
651 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
652 + cy(i,1,1,e) * drdy(i,1,1,e) &
653 + cz(i,1,1,e) * drdz(i,1,1,e) )
654 cs(i,1,1,e) = w3(i,1,1) &
655 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
656 + cy(i,1,1,e) * dsdy(i,1,1,e) &
657 + cz(i,1,1,e) * dsdz(i,1,1,e))
658 ct(i,1,1,e) = w3(i,1,1) &
659 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
660 + cy(i,1,1,e) * dtdy(i,1,1,e) &
661 + cz(i,1,1,e) * dtdz(i,1,1,e))
665 end subroutine sx_set_convect_rst_lx2
667end submodule sx_set_convect_rst
integer, parameter, public rp
Global precision used in computations.
Operators SX-Aurora backend.