34submodule(
opr_cpu) cpu_set_convect_rst
39 module subroutine opr_cpu_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 cpu_set_convect_rst_lx18(cr, cs, ct, cx, cy, cz, &
54 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
56 call cpu_set_convect_rst_lx17(cr, cs, ct, cx, cy, cz, &
57 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
59 call cpu_set_convect_rst_lx16(cr, cs, ct, cx, cy, cz, &
60 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
62 call cpu_set_convect_rst_lx15(cr, cs, ct, cx, cy, cz, drdx, &
63 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
65 call cpu_set_convect_rst_lx14(cr, cs, ct, cx, cy, cz, drdx, &
66 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
68 call cpu_set_convect_rst_lx13(cr, cs, ct, cx, cy, cz, drdx, &
69 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
71 call cpu_set_convect_rst_lx12(cr, cs, ct, cx, cy, cz, drdx, &
72 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
74 call cpu_set_convect_rst_lx11(cr, cs, ct, cx, cy, cz, drdx, &
75 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
77 call cpu_set_convect_rst_lx10(cr, cs, ct, cx, cy, cz, drdx, &
78 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
80 call cpu_set_convect_rst_lx9(cr, cs, ct, cx, cy, cz, drdx, &
81 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
83 call cpu_set_convect_rst_lx8(cr, cs, ct, cx, cy, cz, drdx, &
84 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
86 call cpu_set_convect_rst_lx7(cr, cs, ct, cx, cy, cz, drdx, &
87 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
89 call cpu_set_convect_rst_lx6(cr, cs, ct, cx, cy, cz, drdx, &
90 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
92 call cpu_set_convect_rst_lx5(cr, cs, ct, cx, cy, cz, drdx, &
93 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
95 call cpu_set_convect_rst_lx4(cr, cs, ct, cx, cy, cz, drdx, &
96 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
98 call cpu_set_convect_rst_lx3(cr, cs, ct, cx, cy, cz, drdx, &
99 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
101 call cpu_set_convect_rst_lx2(cr, cs, ct, cx, cy, cz, drdx, &
102 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv)
104 call cpu_set_convect_rst_lx(cr, cs, ct, cx, cy, cz, drdx, &
105 dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, nelv, lx)
109 end subroutine opr_cpu_set_convect_rst
111 subroutine cpu_set_convect_rst_lx(cr, cs, ct, cx, cy, cz, &
112 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n, lx)
113 integer,
intent(in) :: n, lx
114 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
115 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
116 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
117 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
118 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
119 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
123 do i = 1, lx * lx * lx
124 cr(i,1,1,e) = w3(i,1,1) &
125 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
126 + cy(i,1,1,e) * drdy(i,1,1,e) &
127 + cz(i,1,1,e) * drdz(i,1,1,e) )
128 cs(i,1,1,e) = w3(i,1,1) &
129 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
130 + cy(i,1,1,e) * dsdy(i,1,1,e) &
131 + cz(i,1,1,e) * dsdz(i,1,1,e))
132 ct(i,1,1,e) = w3(i,1,1) &
133 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
134 + cy(i,1,1,e) * dtdy(i,1,1,e) &
135 + cz(i,1,1,e) * dtdz(i,1,1,e))
139 end subroutine cpu_set_convect_rst_lx
141 subroutine cpu_set_convect_rst_lx18(cr, cs, ct, cx, cy, cz, &
142 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
143 integer,
parameter :: lx = 18
144 integer,
intent(in) :: n
145 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
146 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
147 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
148 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
149 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
150 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
154 do i = 1, lx * lx * lx
155 cr(i,1,1,e) = w3(i,1,1) &
156 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
157 + cy(i,1,1,e) * drdy(i,1,1,e) &
158 + cz(i,1,1,e) * drdz(i,1,1,e) )
159 cs(i,1,1,e) = w3(i,1,1) &
160 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
161 + cy(i,1,1,e) * dsdy(i,1,1,e) &
162 + cz(i,1,1,e) * dsdz(i,1,1,e))
163 ct(i,1,1,e) = w3(i,1,1) &
164 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
165 + cy(i,1,1,e) * dtdy(i,1,1,e) &
166 + cz(i,1,1,e) * dtdz(i,1,1,e))
170 end subroutine cpu_set_convect_rst_lx18
172 subroutine cpu_set_convect_rst_lx17(cr, cs, ct, cx, cy, cz, &
173 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
174 integer,
parameter :: lx = 17
175 integer,
intent(in) :: n
176 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
177 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
178 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
179 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
180 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
181 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
185 do i = 1, lx * lx * lx
186 cr(i,1,1,e) = w3(i,1,1) &
187 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
188 + cy(i,1,1,e) * drdy(i,1,1,e) &
189 + cz(i,1,1,e) * drdz(i,1,1,e) )
190 cs(i,1,1,e) = w3(i,1,1) &
191 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
192 + cy(i,1,1,e) * dsdy(i,1,1,e) &
193 + cz(i,1,1,e) * dsdz(i,1,1,e))
194 ct(i,1,1,e) = w3(i,1,1) &
195 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
196 + cy(i,1,1,e) * dtdy(i,1,1,e) &
197 + cz(i,1,1,e) * dtdz(i,1,1,e))
201 end subroutine cpu_set_convect_rst_lx17
203 subroutine cpu_set_convect_rst_lx16(cr, cs, ct, cx, cy, cz, &
204 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
205 integer,
parameter :: lx = 16
206 integer,
intent(in) :: n
207 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
208 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
209 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
210 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
211 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
212 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
216 do i = 1, lx * lx * lx
217 cr(i,1,1,e) = w3(i,1,1) &
218 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
219 + cy(i,1,1,e) * drdy(i,1,1,e) &
220 + cz(i,1,1,e) * drdz(i,1,1,e) )
221 cs(i,1,1,e) = w3(i,1,1) &
222 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
223 + cy(i,1,1,e) * dsdy(i,1,1,e) &
224 + cz(i,1,1,e) * dsdz(i,1,1,e))
225 ct(i,1,1,e) = w3(i,1,1) &
226 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
227 + cy(i,1,1,e) * dtdy(i,1,1,e) &
228 + cz(i,1,1,e) * dtdz(i,1,1,e))
232 end subroutine cpu_set_convect_rst_lx16
234 subroutine cpu_set_convect_rst_lx15(cr, cs, ct, cx, cy, cz, &
235 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
236 integer,
parameter :: lx = 15
237 integer,
intent(in) :: n
238 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
239 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
240 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
241 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
242 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
243 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
247 do i = 1, lx * lx * lx
248 cr(i,1,1,e) = w3(i,1,1) &
249 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
250 + cy(i,1,1,e) * drdy(i,1,1,e) &
251 + cz(i,1,1,e) * drdz(i,1,1,e) )
252 cs(i,1,1,e) = w3(i,1,1) &
253 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
254 + cy(i,1,1,e) * dsdy(i,1,1,e) &
255 + cz(i,1,1,e) * dsdz(i,1,1,e))
256 ct(i,1,1,e) = w3(i,1,1) &
257 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
258 + cy(i,1,1,e) * dtdy(i,1,1,e) &
259 + cz(i,1,1,e) * dtdz(i,1,1,e))
263 end subroutine cpu_set_convect_rst_lx15
265 subroutine cpu_set_convect_rst_lx14(cr, cs, ct, cx, cy, cz, &
266 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
267 integer,
parameter :: lx = 14
268 integer,
intent(in) :: n
269 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
270 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
271 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
272 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
273 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
274 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
278 do i = 1, lx * lx * lx
279 cr(i,1,1,e) = w3(i,1,1) &
280 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
281 + cy(i,1,1,e) * drdy(i,1,1,e) &
282 + cz(i,1,1,e) * drdz(i,1,1,e) )
283 cs(i,1,1,e) = w3(i,1,1) &
284 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
285 + cy(i,1,1,e) * dsdy(i,1,1,e) &
286 + cz(i,1,1,e) * dsdz(i,1,1,e))
287 ct(i,1,1,e) = w3(i,1,1) &
288 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
289 + cy(i,1,1,e) * dtdy(i,1,1,e) &
290 + cz(i,1,1,e) * dtdz(i,1,1,e))
294 end subroutine cpu_set_convect_rst_lx14
296 subroutine cpu_set_convect_rst_lx13(cr, cs, ct, cx, cy, cz, &
297 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
298 integer,
parameter :: lx = 13
299 integer,
intent(in) :: n
300 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
301 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
302 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
303 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
304 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
305 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
309 do i = 1, lx * lx * lx
310 cr(i,1,1,e) = w3(i,1,1) &
311 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
312 + cy(i,1,1,e) * drdy(i,1,1,e) &
313 + cz(i,1,1,e) * drdz(i,1,1,e) )
314 cs(i,1,1,e) = w3(i,1,1) &
315 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
316 + cy(i,1,1,e) * dsdy(i,1,1,e) &
317 + cz(i,1,1,e) * dsdz(i,1,1,e))
318 ct(i,1,1,e) = w3(i,1,1) &
319 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
320 + cy(i,1,1,e) * dtdy(i,1,1,e) &
321 + cz(i,1,1,e) * dtdz(i,1,1,e))
325 end subroutine cpu_set_convect_rst_lx13
327 subroutine cpu_set_convect_rst_lx12(cr, cs, ct, cx, cy, cz, &
328 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
329 integer,
parameter :: lx = 12
330 integer,
intent(in) :: n
331 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
332 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
333 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
334 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
335 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
336 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
340 do i = 1, lx * lx * lx
341 cr(i,1,1,e) = w3(i,1,1) &
342 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
343 + cy(i,1,1,e) * drdy(i,1,1,e) &
344 + cz(i,1,1,e) * drdz(i,1,1,e) )
345 cs(i,1,1,e) = w3(i,1,1) &
346 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
347 + cy(i,1,1,e) * dsdy(i,1,1,e) &
348 + cz(i,1,1,e) * dsdz(i,1,1,e))
349 ct(i,1,1,e) = w3(i,1,1) &
350 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
351 + cy(i,1,1,e) * dtdy(i,1,1,e) &
352 + cz(i,1,1,e) * dtdz(i,1,1,e))
356 end subroutine cpu_set_convect_rst_lx12
358 subroutine cpu_set_convect_rst_lx11(cr, cs, ct, cx, cy, cz, &
359 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
360 integer,
parameter :: lx = 11
361 integer,
intent(in) :: n
362 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
363 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
364 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
365 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
366 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
367 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
371 do i = 1, lx * lx * lx
372 cr(i,1,1,e) = w3(i,1,1) &
373 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
374 + cy(i,1,1,e) * drdy(i,1,1,e) &
375 + cz(i,1,1,e) * drdz(i,1,1,e) )
376 cs(i,1,1,e) = w3(i,1,1) &
377 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
378 + cy(i,1,1,e) * dsdy(i,1,1,e) &
379 + cz(i,1,1,e) * dsdz(i,1,1,e))
380 ct(i,1,1,e) = w3(i,1,1) &
381 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
382 + cy(i,1,1,e) * dtdy(i,1,1,e) &
383 + cz(i,1,1,e) * dtdz(i,1,1,e))
387 end subroutine cpu_set_convect_rst_lx11
389 subroutine cpu_set_convect_rst_lx10(cr, cs, ct, cx, cy, cz, &
390 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
391 integer,
parameter :: lx = 10
392 integer,
intent(in) :: n
393 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
394 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
395 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
396 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
397 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
398 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
402 do i = 1, lx * lx * lx
403 cr(i,1,1,e) = w3(i,1,1) &
404 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
405 + cy(i,1,1,e) * drdy(i,1,1,e) &
406 + cz(i,1,1,e) * drdz(i,1,1,e) )
407 cs(i,1,1,e) = w3(i,1,1) &
408 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
409 + cy(i,1,1,e) * dsdy(i,1,1,e) &
410 + cz(i,1,1,e) * dsdz(i,1,1,e))
411 ct(i,1,1,e) = w3(i,1,1) &
412 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
413 + cy(i,1,1,e) * dtdy(i,1,1,e) &
414 + cz(i,1,1,e) * dtdz(i,1,1,e))
418 end subroutine cpu_set_convect_rst_lx10
420 subroutine cpu_set_convect_rst_lx9(cr, cs, ct, cx, cy, cz, &
421 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
422 integer,
parameter :: lx = 9
423 integer,
intent(in) :: n
424 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
425 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
426 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
427 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
428 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
429 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
433 do i = 1, lx * lx * lx
434 cr(i,1,1,e) = w3(i,1,1) &
435 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
436 + cy(i,1,1,e) * drdy(i,1,1,e) &
437 + cz(i,1,1,e) * drdz(i,1,1,e) )
438 cs(i,1,1,e) = w3(i,1,1) &
439 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
440 + cy(i,1,1,e) * dsdy(i,1,1,e) &
441 + cz(i,1,1,e) * dsdz(i,1,1,e))
442 ct(i,1,1,e) = w3(i,1,1) &
443 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
444 + cy(i,1,1,e) * dtdy(i,1,1,e) &
445 + cz(i,1,1,e) * dtdz(i,1,1,e))
449 end subroutine cpu_set_convect_rst_lx9
451 subroutine cpu_set_convect_rst_lx8(cr, cs, ct, cx, cy, cz, &
452 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
453 integer,
parameter :: lx = 8
454 integer,
intent(in) :: n
455 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
456 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
457 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
458 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
459 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
460 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
464 do i = 1, lx * lx * lx
465 cr(i,1,1,e) = w3(i,1,1) &
466 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
467 + cy(i,1,1,e) * drdy(i,1,1,e) &
468 + cz(i,1,1,e) * drdz(i,1,1,e) )
469 cs(i,1,1,e) = w3(i,1,1) &
470 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
471 + cy(i,1,1,e) * dsdy(i,1,1,e) &
472 + cz(i,1,1,e) * dsdz(i,1,1,e))
473 ct(i,1,1,e) = w3(i,1,1) &
474 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
475 + cy(i,1,1,e) * dtdy(i,1,1,e) &
476 + cz(i,1,1,e) * dtdz(i,1,1,e))
480 end subroutine cpu_set_convect_rst_lx8
482 subroutine cpu_set_convect_rst_lx7(cr, cs, ct, cx, cy, cz, &
483 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
484 integer,
parameter :: lx = 7
485 integer,
intent(in) :: n
486 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
487 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
488 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
489 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
490 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
491 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
495 do i = 1, lx * lx * lx
496 cr(i,1,1,e) = w3(i,1,1) &
497 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
498 + cy(i,1,1,e) * drdy(i,1,1,e) &
499 + cz(i,1,1,e) * drdz(i,1,1,e) )
500 cs(i,1,1,e) = w3(i,1,1) &
501 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
502 + cy(i,1,1,e) * dsdy(i,1,1,e) &
503 + cz(i,1,1,e) * dsdz(i,1,1,e))
504 ct(i,1,1,e) = w3(i,1,1) &
505 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
506 + cy(i,1,1,e) * dtdy(i,1,1,e) &
507 + cz(i,1,1,e) * dtdz(i,1,1,e))
511 end subroutine cpu_set_convect_rst_lx7
513 subroutine cpu_set_convect_rst_lx6(cr, cs, ct, cx, cy, cz, &
514 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
515 integer,
parameter :: lx = 6
516 integer,
intent(in) :: n
517 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
518 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
519 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
520 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
521 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
522 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
526 do i = 1, lx * lx * lx
527 cr(i,1,1,e) = w3(i,1,1) &
528 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
529 + cy(i,1,1,e) * drdy(i,1,1,e) &
530 + cz(i,1,1,e) * drdz(i,1,1,e) )
531 cs(i,1,1,e) = w3(i,1,1) &
532 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
533 + cy(i,1,1,e) * dsdy(i,1,1,e) &
534 + cz(i,1,1,e) * dsdz(i,1,1,e))
535 ct(i,1,1,e) = w3(i,1,1) &
536 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
537 + cy(i,1,1,e) * dtdy(i,1,1,e) &
538 + cz(i,1,1,e) * dtdz(i,1,1,e))
542 end subroutine cpu_set_convect_rst_lx6
544 subroutine cpu_set_convect_rst_lx5(cr, cs, ct, cx, cy, cz, &
545 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
546 integer,
parameter :: lx = 5
547 integer,
intent(in) :: n
548 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
549 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
550 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
551 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
552 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
553 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
557 do i = 1, lx * lx * lx
558 cr(i,1,1,e) = w3(i,1,1) &
559 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
560 + cy(i,1,1,e) * drdy(i,1,1,e) &
561 + cz(i,1,1,e) * drdz(i,1,1,e) )
562 cs(i,1,1,e) = w3(i,1,1) &
563 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
564 + cy(i,1,1,e) * dsdy(i,1,1,e) &
565 + cz(i,1,1,e) * dsdz(i,1,1,e))
566 ct(i,1,1,e) = w3(i,1,1) &
567 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
568 + cy(i,1,1,e) * dtdy(i,1,1,e) &
569 + cz(i,1,1,e) * dtdz(i,1,1,e))
573 end subroutine cpu_set_convect_rst_lx5
575 subroutine cpu_set_convect_rst_lx4(cr, cs, ct, cx, cy, cz, &
576 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
577 integer,
parameter :: lx = 4
578 integer,
intent(in) :: n
579 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
580 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
581 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
582 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
583 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
584 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
588 do i = 1, lx * lx * lx
589 cr(i,1,1,e) = w3(i,1,1) &
590 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
591 + cy(i,1,1,e) * drdy(i,1,1,e) &
592 + cz(i,1,1,e) * drdz(i,1,1,e) )
593 cs(i,1,1,e) = w3(i,1,1) &
594 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
595 + cy(i,1,1,e) * dsdy(i,1,1,e) &
596 + cz(i,1,1,e) * dsdz(i,1,1,e))
597 ct(i,1,1,e) = w3(i,1,1) &
598 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
599 + cy(i,1,1,e) * dtdy(i,1,1,e) &
600 + cz(i,1,1,e) * dtdz(i,1,1,e))
604 end subroutine cpu_set_convect_rst_lx4
606 subroutine cpu_set_convect_rst_lx3(cr, cs, ct, cx, cy, cz, &
607 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
608 integer,
parameter :: lx = 3
609 integer,
intent(in) :: n
610 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
611 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
612 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
613 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
614 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
615 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
619 do i = 1, lx * lx * lx
620 cr(i,1,1,e) = w3(i,1,1) &
621 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
622 + cy(i,1,1,e) * drdy(i,1,1,e) &
623 + cz(i,1,1,e) * drdz(i,1,1,e) )
624 cs(i,1,1,e) = w3(i,1,1) &
625 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
626 + cy(i,1,1,e) * dsdy(i,1,1,e) &
627 + cz(i,1,1,e) * dsdz(i,1,1,e))
628 ct(i,1,1,e) = w3(i,1,1) &
629 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
630 + cy(i,1,1,e) * dtdy(i,1,1,e) &
631 + cz(i,1,1,e) * dtdz(i,1,1,e))
635 end subroutine cpu_set_convect_rst_lx3
637 subroutine cpu_set_convect_rst_lx2(cr, cs, ct, cx, cy, cz, &
638 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
639 integer,
parameter :: lx = 2
640 integer,
intent(in) :: n
641 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: cr, cs, ct
642 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: cx, cy, cz
643 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
644 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
645 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
646 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
650 do i = 1, lx * lx * lx
651 cr(i,1,1,e) = w3(i,1,1) &
652 * ( cx(i,1,1,e) * drdx(i,1,1,e) &
653 + cy(i,1,1,e) * drdy(i,1,1,e) &
654 + cz(i,1,1,e) * drdz(i,1,1,e) )
655 cs(i,1,1,e) = w3(i,1,1) &
656 * ( cx(i,1,1,e) * dsdx(i,1,1,e) &
657 + cy(i,1,1,e) * dsdy(i,1,1,e) &
658 + cz(i,1,1,e) * dsdz(i,1,1,e))
659 ct(i,1,1,e) = w3(i,1,1) &
660 * ( cx(i,1,1,e) * dtdx(i,1,1,e) &
661 + cy(i,1,1,e) * dtdy(i,1,1,e) &
662 + cz(i,1,1,e) * dtdz(i,1,1,e))
666 end subroutine cpu_set_convect_rst_lx2
668end submodule cpu_set_convect_rst