39 module subroutine opr_cpu_cdtp(dtx, x, dr, ds, dt, coef, e_start, e_end)
40 type(coef_t),
intent(in) :: coef
41 integer,
intent(in) :: e_start, e_end
42 real(kind=rp),
intent(inout) :: dtx(coef%Xh%lxyz, e_end - e_start + 1)
43 real(kind=rp),
intent(inout) :: x(coef%Xh%lxyz, e_end - e_start + 1)
44 real(kind=rp),
intent(in) :: dr(coef%Xh%lxyz, e_end - e_start + 1)
45 real(kind=rp),
intent(in) :: ds(coef%Xh%lxyz, e_end - e_start + 1)
46 real(kind=rp),
intent(in) :: dt(coef%Xh%lxyz, e_end - e_start + 1)
48 e_len = e_end - e_start + 1
50 if (e_len .eq. 1)
then
51 call opr_cpu_cdtp_single(dtx, x, dr, ds, dt, coef, e_start)
53 call opr_cpu_cdtp_many(dtx, x, dr, ds, dt, coef, e_start, e_len)
56 end subroutine opr_cpu_cdtp
58 subroutine opr_cpu_cdtp_many(dtx, x, dr, ds, dt, coef, e_start, e_len)
59 type(coef_t),
intent(in) :: coef
60 integer,
intent(in) :: e_start, e_len
61 real(kind=rp),
intent(inout) :: dtx(coef%Xh%lxyz, e_len)
62 real(kind=rp),
intent(inout) :: x(coef%Xh%lxyz, e_len)
63 real(kind=rp),
intent(in) :: dr(coef%Xh%lxyz, e_len)
64 real(kind=rp),
intent(in) :: ds(coef%Xh%lxyz, e_len)
65 real(kind=rp),
intent(in) :: dt(coef%Xh%lxyz, e_len)
67 associate(xh => coef%Xh)
71 call cpu_cdtp_lx14(dtx, x, &
72 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
73 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
75 call cpu_cdtp_lx13(dtx, x, &
76 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
77 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
79 call cpu_cdtp_lx12(dtx, x, &
80 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
81 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
83 call cpu_cdtp_lx11(dtx, x, &
84 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
85 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
87 call cpu_cdtp_lx10(dtx, x, &
88 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
89 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
91 call cpu_cdtp_lx9(dtx, x, &
92 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
93 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
95 call cpu_cdtp_lx8(dtx, x, &
96 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
97 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
99 call cpu_cdtp_lx7(dtx, x, &
100 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
101 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
103 call cpu_cdtp_lx6(dtx, x, &
104 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
105 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
107 call cpu_cdtp_lx5(dtx, x, &
108 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
109 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
111 call cpu_cdtp_lx4(dtx, x, &
112 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
113 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
115 call cpu_cdtp_lx3(dtx, x, &
116 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
117 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
119 call cpu_cdtp_lx2(dtx, x, &
120 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
121 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
123 call cpu_cdtp_lx(dtx, x, &
124 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
125 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len, xh%lx)
130 end subroutine opr_cpu_cdtp_many
132 subroutine opr_cpu_cdtp_single(dtx, x, dr, ds, dt, coef, e)
133 integer,
parameter :: e_len = 1
134 type(coef_t),
intent(in) :: coef
135 integer,
intent(in) :: e
136 real(kind=rp),
intent(inout) :: dtx(coef%Xh%lxyz, e_len)
137 real(kind=rp),
intent(inout) :: x(coef%Xh%lxyz, e_len)
138 real(kind=rp),
intent(in) :: dr(coef%Xh%lxyz, e_len)
139 real(kind=rp),
intent(in) :: ds(coef%Xh%lxyz, e_len)
140 real(kind=rp),
intent(in) :: dt(coef%Xh%lxyz, e_len)
142 associate(xh => coef%Xh)
145 call cpu_cdtp_lx14_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
146 xh%dxt, xh%dyt, xh%dzt, xh%w3)
148 call cpu_cdtp_lx13_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
149 xh%dxt, xh%dyt, xh%dzt, xh%w3)
151 call cpu_cdtp_lx12_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
152 xh%dxt, xh%dyt, xh%dzt, xh%w3)
154 call cpu_cdtp_lx11_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
155 xh%dxt, xh%dyt, xh%dzt, xh%w3)
157 call cpu_cdtp_lx10_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
158 xh%dxt, xh%dyt, xh%dzt, xh%w3)
160 call cpu_cdtp_lx9_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
161 xh%dxt, xh%dyt, xh%dzt, xh%w3)
163 call cpu_cdtp_lx8_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
164 xh%dxt, xh%dyt, xh%dzt, xh%w3)
166 call cpu_cdtp_lx7_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
167 xh%dxt, xh%dyt, xh%dzt, xh%w3)
169 call cpu_cdtp_lx6_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
170 xh%dxt, xh%dyt, xh%dzt, xh%w3)
172 call cpu_cdtp_lx5_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
173 xh%dxt, xh%dyt, xh%dzt, xh%w3)
175 call cpu_cdtp_lx4_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
176 xh%dxt, xh%dyt, xh%dzt, xh%w3)
178 call cpu_cdtp_lx3_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
179 xh%dxt, xh%dyt, xh%dzt, xh%w3)
181 call cpu_cdtp_lx2_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
182 xh%dxt, xh%dyt, xh%dzt, xh%w3)
184 call cpu_cdtp_lx_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
185 xh%dxt, xh%dyt, xh%dzt, xh%w3, xh%lx)
189 end subroutine opr_cpu_cdtp_single
191 subroutine cpu_cdtp_lx(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel, lx)
192 integer,
intent(in) :: nel, lx
193 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
194 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
195 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
196 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
197 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
199 integer :: e, i, j, k, l
204 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
208 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
216 tmp = tmp + dxt(i,k) * ta1(k,j,1)
223 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
232 tmp = tmp + dyt(j,l) * ta1(i,l,k)
234 dtx(i,j,k,e) = dtx(i,j,k,e) + tmp
240 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
248 tmp = tmp + dzt(k,l) * ta1(i,1,l)
250 dtx(i,1,k,e) = dtx(i,1,k,e) + tmp
256 end subroutine cpu_cdtp_lx
258 subroutine cpu_cdtp_lx14(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
259 integer,
parameter :: lx = 14
260 integer,
intent(in) :: nel
261 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
262 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
263 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
264 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
265 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
266 integer :: e, i, j, k
271 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
275 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
280 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
281 + dxt(i,2) * ta1(2,j,1) &
282 + dxt(i,3) * ta1(3,j,1) &
283 + dxt(i,4) * ta1(4,j,1) &
284 + dxt(i,5) * ta1(5,j,1) &
285 + dxt(i,6) * ta1(6,j,1) &
286 + dxt(i,7) * ta1(7,j,1) &
287 + dxt(i,8) * ta1(8,j,1) &
288 + dxt(i,9) * ta1(9,j,1) &
289 + dxt(i,10) * ta1(10,j,1) &
290 + dxt(i,11) * ta1(11,j,1) &
291 + dxt(i,12) * ta1(12,j,1) &
292 + dxt(i,13) * ta1(13,j,1) &
293 + dxt(i,14) * ta1(14,j,1)
298 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
304 dtx(i,j,k,e) = dtx(i,j,k,e) &
305 + dyt(j,1) * ta1(i,1,k) &
306 + dyt(j,2) * ta1(i,2,k) &
307 + dyt(j,3) * ta1(i,3,k) &
308 + dyt(j,4) * ta1(i,4,k) &
309 + dyt(j,5) * ta1(i,5,k) &
310 + dyt(j,6) * ta1(i,6,k) &
311 + dyt(j,7) * ta1(i,7,k) &
312 + dyt(j,8) * ta1(i,8,k) &
313 + dyt(j,9) * ta1(i,9,k) &
314 + dyt(j,10) * ta1(i,10,k) &
315 + dyt(j,11) * ta1(i,11,k) &
316 + dyt(j,12) * ta1(i,12,k) &
317 + dyt(j,13) * ta1(i,13,k) &
318 + dyt(j,14) * ta1(i,14,k)
324 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
329 dtx(i,1,k,e) = dtx(i,1,k,e) &
330 + dzt(k,1) * ta1(i,1,1) &
331 + dzt(k,2) * ta1(i,1,2) &
332 + dzt(k,3) * ta1(i,1,3) &
333 + dzt(k,4) * ta1(i,1,4) &
334 + dzt(k,5) * ta1(i,1,5) &
335 + dzt(k,6) * ta1(i,1,6) &
336 + dzt(k,7) * ta1(i,1,7) &
337 + dzt(k,8) * ta1(i,1,8) &
338 + dzt(k,9) * ta1(i,1,9) &
339 + dzt(k,10) * ta1(i,1,10) &
340 + dzt(k,11) * ta1(i,1,11) &
341 + dzt(k,12) * ta1(i,1,12) &
342 + dzt(k,13) * ta1(i,1,13) &
343 + dzt(k,14) * ta1(i,1,14)
349 end subroutine cpu_cdtp_lx14
351 subroutine cpu_cdtp_lx13(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
352 integer,
parameter :: lx = 13
353 integer,
intent(in) :: nel
354 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
355 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
356 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
357 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
358 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
359 integer :: e, i, j, k
364 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
368 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
373 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
374 + dxt(i,2) * ta1(2,j,1) &
375 + dxt(i,3) * ta1(3,j,1) &
376 + dxt(i,4) * ta1(4,j,1) &
377 + dxt(i,5) * ta1(5,j,1) &
378 + dxt(i,6) * ta1(6,j,1) &
379 + dxt(i,7) * ta1(7,j,1) &
380 + dxt(i,8) * ta1(8,j,1) &
381 + dxt(i,9) * ta1(9,j,1) &
382 + dxt(i,10) * ta1(10,j,1) &
383 + dxt(i,11) * ta1(11,j,1) &
384 + dxt(i,12) * ta1(12,j,1) &
385 + dxt(i,13) * ta1(13,j,1)
390 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
396 dtx(i,j,k,e) = dtx(i,j,k,e) &
397 + dyt(j,1) * ta1(i,1,k) &
398 + dyt(j,2) * ta1(i,2,k) &
399 + dyt(j,3) * ta1(i,3,k) &
400 + dyt(j,4) * ta1(i,4,k) &
401 + dyt(j,5) * ta1(i,5,k) &
402 + dyt(j,6) * ta1(i,6,k) &
403 + dyt(j,7) * ta1(i,7,k) &
404 + dyt(j,8) * ta1(i,8,k) &
405 + dyt(j,9) * ta1(i,9,k) &
406 + dyt(j,10) * ta1(i,10,k) &
407 + dyt(j,11) * ta1(i,11,k) &
408 + dyt(j,12) * ta1(i,12,k) &
409 + dyt(j,13) * ta1(i,13,k)
415 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
420 dtx(i,1,k,e) = dtx(i,1,k,e) &
421 + dzt(k,1) * ta1(i,1,1) &
422 + dzt(k,2) * ta1(i,1,2) &
423 + dzt(k,3) * ta1(i,1,3) &
424 + dzt(k,4) * ta1(i,1,4) &
425 + dzt(k,5) * ta1(i,1,5) &
426 + dzt(k,6) * ta1(i,1,6) &
427 + dzt(k,7) * ta1(i,1,7) &
428 + dzt(k,8) * ta1(i,1,8) &
429 + dzt(k,9) * ta1(i,1,9) &
430 + dzt(k,10) * ta1(i,1,10) &
431 + dzt(k,11) * ta1(i,1,11) &
432 + dzt(k,12) * ta1(i,1,12) &
433 + dzt(k,13) * ta1(i,1,13)
439 end subroutine cpu_cdtp_lx13
441 subroutine cpu_cdtp_lx12(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
442 integer,
parameter :: lx = 12
443 integer,
intent(in) :: nel
444 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
445 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
446 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
447 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
448 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
449 integer :: e, i, j, k
454 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
458 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
463 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
464 + dxt(i,2) * ta1(2,j,1) &
465 + dxt(i,3) * ta1(3,j,1) &
466 + dxt(i,4) * ta1(4,j,1) &
467 + dxt(i,5) * ta1(5,j,1) &
468 + dxt(i,6) * ta1(6,j,1) &
469 + dxt(i,7) * ta1(7,j,1) &
470 + dxt(i,8) * ta1(8,j,1) &
471 + dxt(i,9) * ta1(9,j,1) &
472 + dxt(i,10) * ta1(10,j,1) &
473 + dxt(i,11) * ta1(11,j,1) &
474 + dxt(i,12) * ta1(12,j,1)
479 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
485 dtx(i,j,k,e) = dtx(i,j,k,e) &
486 + dyt(j,1) * ta1(i,1,k) &
487 + dyt(j,2) * ta1(i,2,k) &
488 + dyt(j,3) * ta1(i,3,k) &
489 + dyt(j,4) * ta1(i,4,k) &
490 + dyt(j,5) * ta1(i,5,k) &
491 + dyt(j,6) * ta1(i,6,k) &
492 + dyt(j,7) * ta1(i,7,k) &
493 + dyt(j,8) * ta1(i,8,k) &
494 + dyt(j,9) * ta1(i,9,k) &
495 + dyt(j,10) * ta1(i,10,k) &
496 + dyt(j,11) * ta1(i,11,k) &
497 + dyt(j,12) * ta1(i,12,k)
503 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
508 dtx(i,1,k,e) = dtx(i,1,k,e) &
509 + dzt(k,1) * ta1(i,1,1) &
510 + dzt(k,2) * ta1(i,1,2) &
511 + dzt(k,3) * ta1(i,1,3) &
512 + dzt(k,4) * ta1(i,1,4) &
513 + dzt(k,5) * ta1(i,1,5) &
514 + dzt(k,6) * ta1(i,1,6) &
515 + dzt(k,7) * ta1(i,1,7) &
516 + dzt(k,8) * ta1(i,1,8) &
517 + dzt(k,9) * ta1(i,1,9) &
518 + dzt(k,10) * ta1(i,1,10) &
519 + dzt(k,11) * ta1(i,1,11) &
520 + dzt(k,12) * ta1(i,1,12)
526 end subroutine cpu_cdtp_lx12
528 subroutine cpu_cdtp_lx11(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
529 integer,
parameter :: lx = 11
530 integer,
intent(in) :: nel
531 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
532 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
533 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
534 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
535 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
536 integer :: e, i, j, k
541 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
545 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
550 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
551 + dxt(i,2) * ta1(2,j,1) &
552 + dxt(i,3) * ta1(3,j,1) &
553 + dxt(i,4) * ta1(4,j,1) &
554 + dxt(i,5) * ta1(5,j,1) &
555 + dxt(i,6) * ta1(6,j,1) &
556 + dxt(i,7) * ta1(7,j,1) &
557 + dxt(i,8) * ta1(8,j,1) &
558 + dxt(i,9) * ta1(9,j,1) &
559 + dxt(i,10) * ta1(10,j,1) &
560 + dxt(i,11) * ta1(11,j,1)
565 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
571 dtx(i,j,k,e) = dtx(i,j,k,e) &
572 + dyt(j,1) * ta1(i,1,k) &
573 + dyt(j,2) * ta1(i,2,k) &
574 + dyt(j,3) * ta1(i,3,k) &
575 + dyt(j,4) * ta1(i,4,k) &
576 + dyt(j,5) * ta1(i,5,k) &
577 + dyt(j,6) * ta1(i,6,k) &
578 + dyt(j,7) * ta1(i,7,k) &
579 + dyt(j,8) * ta1(i,8,k) &
580 + dyt(j,9) * ta1(i,9,k) &
581 + dyt(j,10) * ta1(i,10,k) &
582 + dyt(j,11) * ta1(i,11,k)
588 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
593 dtx(i,1,k,e) = dtx(i,1,k,e) &
594 + dzt(k,1) * ta1(i,1,1) &
595 + dzt(k,2) * ta1(i,1,2) &
596 + dzt(k,3) * ta1(i,1,3) &
597 + dzt(k,4) * ta1(i,1,4) &
598 + dzt(k,5) * ta1(i,1,5) &
599 + dzt(k,6) * ta1(i,1,6) &
600 + dzt(k,7) * ta1(i,1,7) &
601 + dzt(k,8) * ta1(i,1,8) &
602 + dzt(k,9) * ta1(i,1,9) &
603 + dzt(k,10) * ta1(i,1,10) &
604 + dzt(k,11) * ta1(i,1,11)
610 end subroutine cpu_cdtp_lx11
612 subroutine cpu_cdtp_lx10(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
613 integer,
parameter :: lx = 10
614 integer,
intent(in) :: nel
615 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
616 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
617 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
618 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
619 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
620 integer :: e, i, j, k
625 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
629 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
634 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
635 + dxt(i,2) * ta1(2,j,1) &
636 + dxt(i,3) * ta1(3,j,1) &
637 + dxt(i,4) * ta1(4,j,1) &
638 + dxt(i,5) * ta1(5,j,1) &
639 + dxt(i,6) * ta1(6,j,1) &
640 + dxt(i,7) * ta1(7,j,1) &
641 + dxt(i,8) * ta1(8,j,1) &
642 + dxt(i,9) * ta1(9,j,1) &
643 + dxt(i,10) * ta1(10,j,1)
648 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
654 dtx(i,j,k,e) = dtx(i,j,k,e) &
655 + dyt(j,1) * ta1(i,1,k) &
656 + dyt(j,2) * ta1(i,2,k) &
657 + dyt(j,3) * ta1(i,3,k) &
658 + dyt(j,4) * ta1(i,4,k) &
659 + dyt(j,5) * ta1(i,5,k) &
660 + dyt(j,6) * ta1(i,6,k) &
661 + dyt(j,7) * ta1(i,7,k) &
662 + dyt(j,8) * ta1(i,8,k) &
663 + dyt(j,9) * ta1(i,9,k) &
664 + dyt(j,10) * ta1(i,10,k)
671 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
676 dtx(i,1,k,e) = dtx(i,1,k,e) &
677 + dzt(k,1) * ta1(i,1,1) &
678 + dzt(k,2) * ta1(i,1,2) &
679 + dzt(k,3) * ta1(i,1,3) &
680 + dzt(k,4) * ta1(i,1,4) &
681 + dzt(k,5) * ta1(i,1,5) &
682 + dzt(k,6) * ta1(i,1,6) &
683 + dzt(k,7) * ta1(i,1,7) &
684 + dzt(k,8) * ta1(i,1,8) &
685 + dzt(k,9) * ta1(i,1,9) &
686 + dzt(k,10) * ta1(i,1,10)
692 end subroutine cpu_cdtp_lx10
694 subroutine cpu_cdtp_lx9(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
695 integer,
parameter :: lx = 9
696 integer,
intent(in) :: nel
697 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
698 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
699 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
700 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
701 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
702 integer :: e, i, j, k
707 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
711 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
716 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
717 + dxt(i,2) * ta1(2,j,1) &
718 + dxt(i,3) * ta1(3,j,1) &
719 + dxt(i,4) * ta1(4,j,1) &
720 + dxt(i,5) * ta1(5,j,1) &
721 + dxt(i,6) * ta1(6,j,1) &
722 + dxt(i,7) * ta1(7,j,1) &
723 + dxt(i,8) * ta1(8,j,1) &
724 + dxt(i,9) * ta1(9,j,1)
729 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
735 dtx(i,j,k,e) = dtx(i,j,k,e) &
736 + dyt(j,1) * ta1(i,1,k) &
737 + dyt(j,2) * ta1(i,2,k) &
738 + dyt(j,3) * ta1(i,3,k) &
739 + dyt(j,4) * ta1(i,4,k) &
740 + dyt(j,5) * ta1(i,5,k) &
741 + dyt(j,6) * ta1(i,6,k) &
742 + dyt(j,7) * ta1(i,7,k) &
743 + dyt(j,8) * ta1(i,8,k) &
744 + dyt(j,9) * ta1(i,9,k)
750 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
755 dtx(i,1,k,e) = dtx(i,1,k,e) &
756 + dzt(k,1) * ta1(i,1,1) &
757 + dzt(k,2) * ta1(i,1,2) &
758 + dzt(k,3) * ta1(i,1,3) &
759 + dzt(k,4) * ta1(i,1,4) &
760 + dzt(k,5) * ta1(i,1,5) &
761 + dzt(k,6) * ta1(i,1,6) &
762 + dzt(k,7) * ta1(i,1,7) &
763 + dzt(k,8) * ta1(i,1,8) &
764 + dzt(k,9) * ta1(i,1,9)
770 end subroutine cpu_cdtp_lx9
772 subroutine cpu_cdtp_lx8(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
773 integer,
parameter :: lx = 8
774 integer,
intent(in) :: nel
775 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
776 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
777 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
778 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
779 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
780 integer :: e, i, j, k
785 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
789 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
794 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
795 + dxt(i,2) * ta1(2,j,1) &
796 + dxt(i,3) * ta1(3,j,1) &
797 + dxt(i,4) * ta1(4,j,1) &
798 + dxt(i,5) * ta1(5,j,1) &
799 + dxt(i,6) * ta1(6,j,1) &
800 + dxt(i,7) * ta1(7,j,1) &
801 + dxt(i,8) * ta1(8,j,1)
806 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
812 dtx(i,j,k,e) = dtx(i,j,k,e) &
813 + dyt(j,1) * ta1(i,1,k) &
814 + dyt(j,2) * ta1(i,2,k) &
815 + dyt(j,3) * ta1(i,3,k) &
816 + dyt(j,4) * ta1(i,4,k) &
817 + dyt(j,5) * ta1(i,5,k) &
818 + dyt(j,6) * ta1(i,6,k) &
819 + dyt(j,7) * ta1(i,7,k) &
820 + dyt(j,8) * ta1(i,8,k)
826 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
831 dtx(i,1,k,e) = dtx(i,1,k,e) &
832 + dzt(k,1) * ta1(i,1,1) &
833 + dzt(k,2) * ta1(i,1,2) &
834 + dzt(k,3) * ta1(i,1,3) &
835 + dzt(k,4) * ta1(i,1,4) &
836 + dzt(k,5) * ta1(i,1,5) &
837 + dzt(k,6) * ta1(i,1,6) &
838 + dzt(k,7) * ta1(i,1,7) &
839 + dzt(k,8) * ta1(i,1,8)
845 end subroutine cpu_cdtp_lx8
847 subroutine cpu_cdtp_lx7(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
848 integer,
parameter :: lx = 7
849 integer,
intent(in) :: nel
850 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
851 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
852 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
853 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
854 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
855 integer :: e, i, j, k
860 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
864 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
869 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
870 + dxt(i,2) * ta1(2,j,1) &
871 + dxt(i,3) * ta1(3,j,1) &
872 + dxt(i,4) * ta1(4,j,1) &
873 + dxt(i,5) * ta1(5,j,1) &
874 + dxt(i,6) * ta1(6,j,1) &
875 + dxt(i,7) * ta1(7,j,1)
880 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
886 dtx(i,j,k,e) = dtx(i,j,k,e) &
887 + dyt(j,1) * ta1(i,1,k) &
888 + dyt(j,2) * ta1(i,2,k) &
889 + dyt(j,3) * ta1(i,3,k) &
890 + dyt(j,4) * ta1(i,4,k) &
891 + dyt(j,5) * ta1(i,5,k) &
892 + dyt(j,6) * ta1(i,6,k) &
893 + dyt(j,7) * ta1(i,7,k)
899 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
904 dtx(i,1,k,e) = dtx(i,1,k,e) &
905 + dzt(k,1) * ta1(i,1,1) &
906 + dzt(k,2) * ta1(i,1,2) &
907 + dzt(k,3) * ta1(i,1,3) &
908 + dzt(k,4) * ta1(i,1,4) &
909 + dzt(k,5) * ta1(i,1,5) &
910 + dzt(k,6) * ta1(i,1,6) &
911 + dzt(k,7) * ta1(i,1,7)
917 end subroutine cpu_cdtp_lx7
919 subroutine cpu_cdtp_lx6(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
920 integer,
parameter :: lx = 6
921 integer,
intent(in) :: nel
922 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
923 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
924 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
925 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
926 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
927 integer :: e, i, j, k
932 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
936 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
941 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
942 + dxt(i,2) * ta1(2,j,1) &
943 + dxt(i,3) * ta1(3,j,1) &
944 + dxt(i,4) * ta1(4,j,1) &
945 + dxt(i,5) * ta1(5,j,1) &
946 + dxt(i,6) * ta1(6,j,1)
951 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
957 dtx(i,j,k,e) = dtx(i,j,k,e) &
958 + dyt(j,1) * ta1(i,1,k) &
959 + dyt(j,2) * ta1(i,2,k) &
960 + dyt(j,3) * ta1(i,3,k) &
961 + dyt(j,4) * ta1(i,4,k) &
962 + dyt(j,5) * ta1(i,5,k) &
963 + dyt(j,6) * ta1(i,6,k)
969 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
974 dtx(i,1,k,e) = dtx(i,1,k,e) &
975 + dzt(k,1) * ta1(i,1,1) &
976 + dzt(k,2) * ta1(i,1,2) &
977 + dzt(k,3) * ta1(i,1,3) &
978 + dzt(k,4) * ta1(i,1,4) &
979 + dzt(k,5) * ta1(i,1,5) &
980 + dzt(k,6) * ta1(i,1,6)
986 end subroutine cpu_cdtp_lx6
988 subroutine cpu_cdtp_lx5(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
989 integer,
parameter :: lx = 5
990 integer,
intent(in) :: nel
991 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
992 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
993 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
994 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
995 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
996 integer :: e, i, j, k
1001 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
1005 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
1010 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
1011 + dxt(i,2) * ta1(2,j,1) &
1012 + dxt(i,3) * ta1(3,j,1) &
1013 + dxt(i,4) * ta1(4,j,1) &
1014 + dxt(i,5) * ta1(5,j,1)
1019 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
1025 dtx(i,j,k,e) = dtx(i,j,k,e) &
1026 + dyt(j,1) * ta1(i,1,k) &
1027 + dyt(j,2) * ta1(i,2,k) &
1028 + dyt(j,3) * ta1(i,3,k) &
1029 + dyt(j,4) * ta1(i,4,k) &
1030 + dyt(j,5) * ta1(i,5,k)
1036 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
1041 dtx(i,1,k,e) = dtx(i,1,k,e) &
1042 + dzt(k,1) * ta1(i,1,1) &
1043 + dzt(k,2) * ta1(i,1,2) &
1044 + dzt(k,3) * ta1(i,1,3) &
1045 + dzt(k,4) * ta1(i,1,4) &
1046 + dzt(k,5) * ta1(i,1,5)
1052 end subroutine cpu_cdtp_lx5
1054 subroutine cpu_cdtp_lx4(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
1055 integer,
parameter :: lx = 4
1056 integer,
intent(in) :: nel
1057 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
1058 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
1059 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1060 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1061 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1062 integer :: e, i, j, k
1067 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
1071 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
1076 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
1077 + dxt(i,2) * ta1(2,j,1) &
1078 + dxt(i,3) * ta1(3,j,1) &
1079 + dxt(i,4) * ta1(4,j,1)
1084 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
1090 dtx(i,j,k,e) = dtx(i,j,k,e) &
1091 + dyt(j,1) * ta1(i,1,k) &
1092 + dyt(j,2) * ta1(i,2,k) &
1093 + dyt(j,3) * ta1(i,3,k) &
1094 + dyt(j,4) * ta1(i,4,k)
1100 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
1105 dtx(i,1,k,e) = dtx(i,1,k,e) &
1106 + dzt(k,1) * ta1(i,1,1) &
1107 + dzt(k,2) * ta1(i,1,2) &
1108 + dzt(k,3) * ta1(i,1,3) &
1109 + dzt(k,4) * ta1(i,1,4)
1115 end subroutine cpu_cdtp_lx4
1117 subroutine cpu_cdtp_lx3(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
1118 integer,
parameter :: lx = 3
1119 integer,
intent(in) :: nel
1120 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
1121 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
1122 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1123 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1124 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1125 integer :: e, i, j, k
1130 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
1134 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
1139 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
1140 + dxt(i,2) * ta1(2,j,1) &
1141 + dxt(i,3) * ta1(3,j,1)
1146 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
1152 dtx(i,j,k,e) = dtx(i,j,k,e) &
1153 + dyt(j,1) * ta1(i,1,k) &
1154 + dyt(j,2) * ta1(i,2,k) &
1155 + dyt(j,3) * ta1(i,3,k)
1161 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
1166 dtx(i,1,k,e) = dtx(i,1,k,e) &
1167 + dzt(k,1) * ta1(i,1,1) &
1168 + dzt(k,2) * ta1(i,1,2) &
1169 + dzt(k,3) * ta1(i,1,3)
1175 end subroutine cpu_cdtp_lx3
1177 subroutine cpu_cdtp_lx2(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
1178 integer,
parameter :: lx = 2
1179 integer,
intent(in) :: nel
1180 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
1181 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
1182 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1183 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1184 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1185 integer :: e, i, j, k
1190 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
1194 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
1199 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
1200 + dxt(i,2) * ta1(2,j,1)
1205 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
1211 dtx(i,j,k,e) = dtx(i,j,k,e) &
1212 + dyt(j,1) * ta1(i,1,k) &
1213 + dyt(j,2) * ta1(i,2,k)
1219 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
1224 dtx(i,1,k,e) = dtx(i,1,k,e) &
1225 + dzt(k,1) * ta1(i,1,1) &
1226 + dzt(k,2) * ta1(i,1,2)
1232 end subroutine cpu_cdtp_lx2
1235 subroutine cpu_cdtp_lx_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, lx)
1236 integer,
intent(in) :: lx
1237 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1238 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1239 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1240 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1241 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1242 real(kind=rp) :: tmp
1243 integer :: i, j, k, l
1246 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1250 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1258 tmp = tmp + dxt(i,k) * ta1(k,j,1)
1265 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1274 tmp = tmp + dyt(j,l) * ta1(i,l,k)
1276 dtx(i,j,k) = dtx(i,j,k) + tmp
1282 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1290 tmp = tmp + dzt(k,l) * ta1(i,1,l)
1292 dtx(i,1,k) = dtx(i,1,k) + tmp
1296 end subroutine cpu_cdtp_lx_single
1299 subroutine cpu_cdtp_lx14_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1300 integer,
parameter :: lx = 14
1301 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1302 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1303 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1304 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1305 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1309 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1313 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1318 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1319 + dxt(i,2) * ta1(2,j,1) &
1320 + dxt(i,3) * ta1(3,j,1) &
1321 + dxt(i,4) * ta1(4,j,1) &
1322 + dxt(i,5) * ta1(5,j,1) &
1323 + dxt(i,6) * ta1(6,j,1) &
1324 + dxt(i,7) * ta1(7,j,1) &
1325 + dxt(i,8) * ta1(8,j,1) &
1326 + dxt(i,9) * ta1(9,j,1) &
1327 + dxt(i,10) * ta1(10,j,1) &
1328 + dxt(i,11) * ta1(11,j,1) &
1329 + dxt(i,12) * ta1(12,j,1) &
1330 + dxt(i,13) * ta1(13,j,1) &
1331 + dxt(i,14) * ta1(14,j,1)
1336 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1342 dtx(i,j,k) = dtx(i,j,k) &
1343 + dyt(j,1) * ta1(i,1,k) &
1344 + dyt(j,2) * ta1(i,2,k) &
1345 + dyt(j,3) * ta1(i,3,k) &
1346 + dyt(j,4) * ta1(i,4,k) &
1347 + dyt(j,5) * ta1(i,5,k) &
1348 + dyt(j,6) * ta1(i,6,k) &
1349 + dyt(j,7) * ta1(i,7,k) &
1350 + dyt(j,8) * ta1(i,8,k) &
1351 + dyt(j,9) * ta1(i,9,k) &
1352 + dyt(j,10) * ta1(i,10,k) &
1353 + dyt(j,11) * ta1(i,11,k) &
1354 + dyt(j,12) * ta1(i,12,k) &
1355 + dyt(j,13) * ta1(i,13,k) &
1356 + dyt(j,14) * ta1(i,14,k)
1362 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1367 dtx(i,1,k) = dtx(i,1,k) &
1368 + dzt(k,1) * ta1(i,1,1) &
1369 + dzt(k,2) * ta1(i,1,2) &
1370 + dzt(k,3) * ta1(i,1,3) &
1371 + dzt(k,4) * ta1(i,1,4) &
1372 + dzt(k,5) * ta1(i,1,5) &
1373 + dzt(k,6) * ta1(i,1,6) &
1374 + dzt(k,7) * ta1(i,1,7) &
1375 + dzt(k,8) * ta1(i,1,8) &
1376 + dzt(k,9) * ta1(i,1,9) &
1377 + dzt(k,10) * ta1(i,1,10) &
1378 + dzt(k,11) * ta1(i,1,11) &
1379 + dzt(k,12) * ta1(i,1,12) &
1380 + dzt(k,13) * ta1(i,1,13) &
1381 + dzt(k,14) * ta1(i,1,14)
1385 end subroutine cpu_cdtp_lx14_single
1388 subroutine cpu_cdtp_lx13_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1389 integer,
parameter :: lx = 13
1390 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1391 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1392 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1393 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1394 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1398 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1402 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1407 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1408 + dxt(i,2) * ta1(2,j,1) &
1409 + dxt(i,3) * ta1(3,j,1) &
1410 + dxt(i,4) * ta1(4,j,1) &
1411 + dxt(i,5) * ta1(5,j,1) &
1412 + dxt(i,6) * ta1(6,j,1) &
1413 + dxt(i,7) * ta1(7,j,1) &
1414 + dxt(i,8) * ta1(8,j,1) &
1415 + dxt(i,9) * ta1(9,j,1) &
1416 + dxt(i,10) * ta1(10,j,1) &
1417 + dxt(i,11) * ta1(11,j,1) &
1418 + dxt(i,12) * ta1(12,j,1) &
1419 + dxt(i,13) * ta1(13,j,1)
1424 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1430 dtx(i,j,k) = dtx(i,j,k) &
1431 + dyt(j,1) * ta1(i,1,k) &
1432 + dyt(j,2) * ta1(i,2,k) &
1433 + dyt(j,3) * ta1(i,3,k) &
1434 + dyt(j,4) * ta1(i,4,k) &
1435 + dyt(j,5) * ta1(i,5,k) &
1436 + dyt(j,6) * ta1(i,6,k) &
1437 + dyt(j,7) * ta1(i,7,k) &
1438 + dyt(j,8) * ta1(i,8,k) &
1439 + dyt(j,9) * ta1(i,9,k) &
1440 + dyt(j,10) * ta1(i,10,k) &
1441 + dyt(j,11) * ta1(i,11,k) &
1442 + dyt(j,12) * ta1(i,12,k) &
1443 + dyt(j,13) * ta1(i,13,k)
1449 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1454 dtx(i,1,k) = dtx(i,1,k) &
1455 + dzt(k,1) * ta1(i,1,1) &
1456 + dzt(k,2) * ta1(i,1,2) &
1457 + dzt(k,3) * ta1(i,1,3) &
1458 + dzt(k,4) * ta1(i,1,4) &
1459 + dzt(k,5) * ta1(i,1,5) &
1460 + dzt(k,6) * ta1(i,1,6) &
1461 + dzt(k,7) * ta1(i,1,7) &
1462 + dzt(k,8) * ta1(i,1,8) &
1463 + dzt(k,9) * ta1(i,1,9) &
1464 + dzt(k,10) * ta1(i,1,10) &
1465 + dzt(k,11) * ta1(i,1,11) &
1466 + dzt(k,12) * ta1(i,1,12) &
1467 + dzt(k,13) * ta1(i,1,13)
1471 end subroutine cpu_cdtp_lx13_single
1474 subroutine cpu_cdtp_lx12_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1475 integer,
parameter :: lx = 12
1476 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1477 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1478 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1479 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1480 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1484 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1488 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1493 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1494 + dxt(i,2) * ta1(2,j,1) &
1495 + dxt(i,3) * ta1(3,j,1) &
1496 + dxt(i,4) * ta1(4,j,1) &
1497 + dxt(i,5) * ta1(5,j,1) &
1498 + dxt(i,6) * ta1(6,j,1) &
1499 + dxt(i,7) * ta1(7,j,1) &
1500 + dxt(i,8) * ta1(8,j,1) &
1501 + dxt(i,9) * ta1(9,j,1) &
1502 + dxt(i,10) * ta1(10,j,1) &
1503 + dxt(i,11) * ta1(11,j,1) &
1504 + dxt(i,12) * ta1(12,j,1)
1509 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1515 dtx(i,j,k) = dtx(i,j,k) &
1516 + dyt(j,1) * ta1(i,1,k) &
1517 + dyt(j,2) * ta1(i,2,k) &
1518 + dyt(j,3) * ta1(i,3,k) &
1519 + dyt(j,4) * ta1(i,4,k) &
1520 + dyt(j,5) * ta1(i,5,k) &
1521 + dyt(j,6) * ta1(i,6,k) &
1522 + dyt(j,7) * ta1(i,7,k) &
1523 + dyt(j,8) * ta1(i,8,k) &
1524 + dyt(j,9) * ta1(i,9,k) &
1525 + dyt(j,10) * ta1(i,10,k) &
1526 + dyt(j,11) * ta1(i,11,k) &
1527 + dyt(j,12) * ta1(i,12,k)
1533 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1538 dtx(i,1,k) = dtx(i,1,k) &
1539 + dzt(k,1) * ta1(i,1,1) &
1540 + dzt(k,2) * ta1(i,1,2) &
1541 + dzt(k,3) * ta1(i,1,3) &
1542 + dzt(k,4) * ta1(i,1,4) &
1543 + dzt(k,5) * ta1(i,1,5) &
1544 + dzt(k,6) * ta1(i,1,6) &
1545 + dzt(k,7) * ta1(i,1,7) &
1546 + dzt(k,8) * ta1(i,1,8) &
1547 + dzt(k,9) * ta1(i,1,9) &
1548 + dzt(k,10) * ta1(i,1,10) &
1549 + dzt(k,11) * ta1(i,1,11) &
1550 + dzt(k,12) * ta1(i,1,12)
1554 end subroutine cpu_cdtp_lx12_single
1557 subroutine cpu_cdtp_lx11_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1558 integer,
parameter :: lx = 11
1559 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1560 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1561 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1562 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1563 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1567 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1571 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1576 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1577 + dxt(i,2) * ta1(2,j,1) &
1578 + dxt(i,3) * ta1(3,j,1) &
1579 + dxt(i,4) * ta1(4,j,1) &
1580 + dxt(i,5) * ta1(5,j,1) &
1581 + dxt(i,6) * ta1(6,j,1) &
1582 + dxt(i,7) * ta1(7,j,1) &
1583 + dxt(i,8) * ta1(8,j,1) &
1584 + dxt(i,9) * ta1(9,j,1) &
1585 + dxt(i,10) * ta1(10,j,1) &
1586 + dxt(i,11) * ta1(11,j,1)
1591 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1597 dtx(i,j,k) = dtx(i,j,k) &
1598 + dyt(j,1) * ta1(i,1,k) &
1599 + dyt(j,2) * ta1(i,2,k) &
1600 + dyt(j,3) * ta1(i,3,k) &
1601 + dyt(j,4) * ta1(i,4,k) &
1602 + dyt(j,5) * ta1(i,5,k) &
1603 + dyt(j,6) * ta1(i,6,k) &
1604 + dyt(j,7) * ta1(i,7,k) &
1605 + dyt(j,8) * ta1(i,8,k) &
1606 + dyt(j,9) * ta1(i,9,k) &
1607 + dyt(j,10) * ta1(i,10,k) &
1608 + dyt(j,11) * ta1(i,11,k)
1614 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1619 dtx(i,1,k) = dtx(i,1,k) &
1620 + dzt(k,1) * ta1(i,1,1) &
1621 + dzt(k,2) * ta1(i,1,2) &
1622 + dzt(k,3) * ta1(i,1,3) &
1623 + dzt(k,4) * ta1(i,1,4) &
1624 + dzt(k,5) * ta1(i,1,5) &
1625 + dzt(k,6) * ta1(i,1,6) &
1626 + dzt(k,7) * ta1(i,1,7) &
1627 + dzt(k,8) * ta1(i,1,8) &
1628 + dzt(k,9) * ta1(i,1,9) &
1629 + dzt(k,10) * ta1(i,1,10) &
1630 + dzt(k,11) * ta1(i,1,11)
1634 end subroutine cpu_cdtp_lx11_single
1637 subroutine cpu_cdtp_lx10_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1638 integer,
parameter :: lx = 10
1639 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1640 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1641 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1642 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1643 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1647 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1651 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1656 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1657 + dxt(i,2) * ta1(2,j,1) &
1658 + dxt(i,3) * ta1(3,j,1) &
1659 + dxt(i,4) * ta1(4,j,1) &
1660 + dxt(i,5) * ta1(5,j,1) &
1661 + dxt(i,6) * ta1(6,j,1) &
1662 + dxt(i,7) * ta1(7,j,1) &
1663 + dxt(i,8) * ta1(8,j,1) &
1664 + dxt(i,9) * ta1(9,j,1) &
1665 + dxt(i,10) * ta1(10,j,1)
1670 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1676 dtx(i,j,k) = dtx(i,j,k) &
1677 + dyt(j,1) * ta1(i,1,k) &
1678 + dyt(j,2) * ta1(i,2,k) &
1679 + dyt(j,3) * ta1(i,3,k) &
1680 + dyt(j,4) * ta1(i,4,k) &
1681 + dyt(j,5) * ta1(i,5,k) &
1682 + dyt(j,6) * ta1(i,6,k) &
1683 + dyt(j,7) * ta1(i,7,k) &
1684 + dyt(j,8) * ta1(i,8,k) &
1685 + dyt(j,9) * ta1(i,9,k) &
1686 + dyt(j,10) * ta1(i,10,k)
1693 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1698 dtx(i,1,k) = dtx(i,1,k) &
1699 + dzt(k,1) * ta1(i,1,1) &
1700 + dzt(k,2) * ta1(i,1,2) &
1701 + dzt(k,3) * ta1(i,1,3) &
1702 + dzt(k,4) * ta1(i,1,4) &
1703 + dzt(k,5) * ta1(i,1,5) &
1704 + dzt(k,6) * ta1(i,1,6) &
1705 + dzt(k,7) * ta1(i,1,7) &
1706 + dzt(k,8) * ta1(i,1,8) &
1707 + dzt(k,9) * ta1(i,1,9) &
1708 + dzt(k,10) * ta1(i,1,10)
1712 end subroutine cpu_cdtp_lx10_single
1715 subroutine cpu_cdtp_lx9_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1716 integer,
parameter :: lx = 9
1717 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1718 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1719 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1720 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1721 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1725 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1729 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1734 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1735 + dxt(i,2) * ta1(2,j,1) &
1736 + dxt(i,3) * ta1(3,j,1) &
1737 + dxt(i,4) * ta1(4,j,1) &
1738 + dxt(i,5) * ta1(5,j,1) &
1739 + dxt(i,6) * ta1(6,j,1) &
1740 + dxt(i,7) * ta1(7,j,1) &
1741 + dxt(i,8) * ta1(8,j,1) &
1742 + dxt(i,9) * ta1(9,j,1)
1747 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1753 dtx(i,j,k) = dtx(i,j,k) &
1754 + dyt(j,1) * ta1(i,1,k) &
1755 + dyt(j,2) * ta1(i,2,k) &
1756 + dyt(j,3) * ta1(i,3,k) &
1757 + dyt(j,4) * ta1(i,4,k) &
1758 + dyt(j,5) * ta1(i,5,k) &
1759 + dyt(j,6) * ta1(i,6,k) &
1760 + dyt(j,7) * ta1(i,7,k) &
1761 + dyt(j,8) * ta1(i,8,k) &
1762 + dyt(j,9) * ta1(i,9,k)
1768 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1773 dtx(i,1,k) = dtx(i,1,k) &
1774 + dzt(k,1) * ta1(i,1,1) &
1775 + dzt(k,2) * ta1(i,1,2) &
1776 + dzt(k,3) * ta1(i,1,3) &
1777 + dzt(k,4) * ta1(i,1,4) &
1778 + dzt(k,5) * ta1(i,1,5) &
1779 + dzt(k,6) * ta1(i,1,6) &
1780 + dzt(k,7) * ta1(i,1,7) &
1781 + dzt(k,8) * ta1(i,1,8) &
1782 + dzt(k,9) * ta1(i,1,9)
1786 end subroutine cpu_cdtp_lx9_single
1789 subroutine cpu_cdtp_lx8_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1790 integer,
parameter :: lx = 8
1791 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1792 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1793 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1794 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1795 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1799 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1803 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1808 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1809 + dxt(i,2) * ta1(2,j,1) &
1810 + dxt(i,3) * ta1(3,j,1) &
1811 + dxt(i,4) * ta1(4,j,1) &
1812 + dxt(i,5) * ta1(5,j,1) &
1813 + dxt(i,6) * ta1(6,j,1) &
1814 + dxt(i,7) * ta1(7,j,1) &
1815 + dxt(i,8) * ta1(8,j,1)
1820 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1826 dtx(i,j,k) = dtx(i,j,k) &
1827 + dyt(j,1) * ta1(i,1,k) &
1828 + dyt(j,2) * ta1(i,2,k) &
1829 + dyt(j,3) * ta1(i,3,k) &
1830 + dyt(j,4) * ta1(i,4,k) &
1831 + dyt(j,5) * ta1(i,5,k) &
1832 + dyt(j,6) * ta1(i,6,k) &
1833 + dyt(j,7) * ta1(i,7,k) &
1834 + dyt(j,8) * ta1(i,8,k)
1840 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1845 dtx(i,1,k) = dtx(i,1,k) &
1846 + dzt(k,1) * ta1(i,1,1) &
1847 + dzt(k,2) * ta1(i,1,2) &
1848 + dzt(k,3) * ta1(i,1,3) &
1849 + dzt(k,4) * ta1(i,1,4) &
1850 + dzt(k,5) * ta1(i,1,5) &
1851 + dzt(k,6) * ta1(i,1,6) &
1852 + dzt(k,7) * ta1(i,1,7) &
1853 + dzt(k,8) * ta1(i,1,8)
1857 end subroutine cpu_cdtp_lx8_single
1860 subroutine cpu_cdtp_lx7_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1861 integer,
parameter :: lx = 7
1862 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1863 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1864 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1865 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1866 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1870 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1874 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1879 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1880 + dxt(i,2) * ta1(2,j,1) &
1881 + dxt(i,3) * ta1(3,j,1) &
1882 + dxt(i,4) * ta1(4,j,1) &
1883 + dxt(i,5) * ta1(5,j,1) &
1884 + dxt(i,6) * ta1(6,j,1) &
1885 + dxt(i,7) * ta1(7,j,1)
1890 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1896 dtx(i,j,k) = dtx(i,j,k) &
1897 + dyt(j,1) * ta1(i,1,k) &
1898 + dyt(j,2) * ta1(i,2,k) &
1899 + dyt(j,3) * ta1(i,3,k) &
1900 + dyt(j,4) * ta1(i,4,k) &
1901 + dyt(j,5) * ta1(i,5,k) &
1902 + dyt(j,6) * ta1(i,6,k) &
1903 + dyt(j,7) * ta1(i,7,k)
1909 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1914 dtx(i,1,k) = dtx(i,1,k) &
1915 + dzt(k,1) * ta1(i,1,1) &
1916 + dzt(k,2) * ta1(i,1,2) &
1917 + dzt(k,3) * ta1(i,1,3) &
1918 + dzt(k,4) * ta1(i,1,4) &
1919 + dzt(k,5) * ta1(i,1,5) &
1920 + dzt(k,6) * ta1(i,1,6) &
1921 + dzt(k,7) * ta1(i,1,7)
1925 end subroutine cpu_cdtp_lx7_single
1928 subroutine cpu_cdtp_lx6_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1929 integer,
parameter :: lx = 6
1930 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1931 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1932 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1933 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1934 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1938 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1942 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1947 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1948 + dxt(i,2) * ta1(2,j,1) &
1949 + dxt(i,3) * ta1(3,j,1) &
1950 + dxt(i,4) * ta1(4,j,1) &
1951 + dxt(i,5) * ta1(5,j,1) &
1952 + dxt(i,6) * ta1(6,j,1)
1957 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1963 dtx(i,j,k) = dtx(i,j,k) &
1964 + dyt(j,1) * ta1(i,1,k) &
1965 + dyt(j,2) * ta1(i,2,k) &
1966 + dyt(j,3) * ta1(i,3,k) &
1967 + dyt(j,4) * ta1(i,4,k) &
1968 + dyt(j,5) * ta1(i,5,k) &
1969 + dyt(j,6) * ta1(i,6,k)
1975 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1980 dtx(i,1,k) = dtx(i,1,k) &
1981 + dzt(k,1) * ta1(i,1,1) &
1982 + dzt(k,2) * ta1(i,1,2) &
1983 + dzt(k,3) * ta1(i,1,3) &
1984 + dzt(k,4) * ta1(i,1,4) &
1985 + dzt(k,5) * ta1(i,1,5) &
1986 + dzt(k,6) * ta1(i,1,6)
1990 end subroutine cpu_cdtp_lx6_single
1993 subroutine cpu_cdtp_lx5_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1994 integer,
parameter :: lx = 5
1995 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1996 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1997 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1998 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1999 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
2003 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
2007 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
2012 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
2013 + dxt(i,2) * ta1(2,j,1) &
2014 + dxt(i,3) * ta1(3,j,1) &
2015 + dxt(i,4) * ta1(4,j,1) &
2016 + dxt(i,5) * ta1(5,j,1)
2021 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
2027 dtx(i,j,k) = dtx(i,j,k) &
2028 + dyt(j,1) * ta1(i,1,k) &
2029 + dyt(j,2) * ta1(i,2,k) &
2030 + dyt(j,3) * ta1(i,3,k) &
2031 + dyt(j,4) * ta1(i,4,k) &
2032 + dyt(j,5) * ta1(i,5,k)
2038 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
2043 dtx(i,1,k) = dtx(i,1,k) &
2044 + dzt(k,1) * ta1(i,1,1) &
2045 + dzt(k,2) * ta1(i,1,2) &
2046 + dzt(k,3) * ta1(i,1,3) &
2047 + dzt(k,4) * ta1(i,1,4) &
2048 + dzt(k,5) * ta1(i,1,5)
2052 end subroutine cpu_cdtp_lx5_single
2055 subroutine cpu_cdtp_lx4_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
2056 integer,
parameter :: lx = 4
2057 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
2058 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
2059 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
2060 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
2061 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
2065 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
2069 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
2074 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
2075 + dxt(i,2) * ta1(2,j,1) &
2076 + dxt(i,3) * ta1(3,j,1) &
2077 + dxt(i,4) * ta1(4,j,1)
2082 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
2088 dtx(i,j,k) = dtx(i,j,k) &
2089 + dyt(j,1) * ta1(i,1,k) &
2090 + dyt(j,2) * ta1(i,2,k) &
2091 + dyt(j,3) * ta1(i,3,k) &
2092 + dyt(j,4) * ta1(i,4,k)
2098 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
2103 dtx(i,1,k) = dtx(i,1,k) &
2104 + dzt(k,1) * ta1(i,1,1) &
2105 + dzt(k,2) * ta1(i,1,2) &
2106 + dzt(k,3) * ta1(i,1,3) &
2107 + dzt(k,4) * ta1(i,1,4)
2111 end subroutine cpu_cdtp_lx4_single
2113 subroutine cpu_cdtp_lx3_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
2114 integer,
parameter :: lx = 3
2115 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
2116 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
2117 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
2118 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
2119 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
2123 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
2127 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
2132 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
2133 + dxt(i,2) * ta1(2,j,1) &
2134 + dxt(i,3) * ta1(3,j,1)
2139 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
2145 dtx(i,j,k) = dtx(i,j,k) &
2146 + dyt(j,1) * ta1(i,1,k) &
2147 + dyt(j,2) * ta1(i,2,k) &
2148 + dyt(j,3) * ta1(i,3,k)
2154 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
2159 dtx(i,1,k) = dtx(i,1,k) &
2160 + dzt(k,1) * ta1(i,1,1) &
2161 + dzt(k,2) * ta1(i,1,2) &
2162 + dzt(k,3) * ta1(i,1,3)
2166 end subroutine cpu_cdtp_lx3_single
2169 subroutine cpu_cdtp_lx2_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
2170 integer,
parameter :: lx = 2
2171 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
2172 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
2173 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
2174 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
2175 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
2179 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
2183 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
2188 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
2189 + dxt(i,2) * ta1(2,j,1)
2194 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
2200 dtx(i,j,k) = dtx(i,j,k) &
2201 + dyt(j,1) * ta1(i,1,k) &
2202 + dyt(j,2) * ta1(i,2,k)
2208 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
2213 dtx(i,1,k) = dtx(i,1,k) &
2214 + dzt(k,1) * ta1(i,1,1) &
2215 + dzt(k,2) * ta1(i,1,2)
2219 end subroutine cpu_cdtp_lx2_single
2220end submodule cpu_cdtp