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)
70 call cpu_cdtp_lx14(dtx, x, &
71 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
72 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
74 call cpu_cdtp_lx13(dtx, x, &
75 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
76 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
78 call cpu_cdtp_lx12(dtx, x, &
79 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
80 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
82 call cpu_cdtp_lx11(dtx, x, &
83 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
84 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
86 call cpu_cdtp_lx10(dtx, x, &
87 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
88 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
90 call cpu_cdtp_lx9(dtx, x, &
91 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
92 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
94 call cpu_cdtp_lx8(dtx, x, &
95 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
96 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
98 call cpu_cdtp_lx7(dtx, x, &
99 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
100 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
102 call cpu_cdtp_lx6(dtx, x, &
103 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
104 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
106 call cpu_cdtp_lx5(dtx, x, &
107 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
108 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
110 call cpu_cdtp_lx4(dtx, x, &
111 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
112 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
114 call cpu_cdtp_lx3(dtx, x, &
115 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
116 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
118 call cpu_cdtp_lx2(dtx, x, &
119 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
120 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len)
122 call cpu_cdtp_lx(dtx, x, &
123 dr(1, e_start), ds(1, e_start), dt(1, e_start), &
124 xh%dxt, xh%dyt, xh%dzt, xh%w3, e_len, xh%lx)
128 end subroutine opr_cpu_cdtp_many
130 subroutine opr_cpu_cdtp_single(dtx, x, dr, ds, dt, coef, e)
131 integer,
parameter :: e_len = 1
132 type(coef_t),
intent(in) :: coef
133 integer,
intent(in) :: e
134 real(kind=rp),
intent(inout) :: dtx(coef%Xh%lxyz, e_len)
135 real(kind=rp),
intent(inout) :: x(coef%Xh%lxyz, e_len)
136 real(kind=rp),
intent(in) :: dr(coef%Xh%lxyz, e_len)
137 real(kind=rp),
intent(in) :: ds(coef%Xh%lxyz, e_len)
138 real(kind=rp),
intent(in) :: dt(coef%Xh%lxyz, e_len)
140 associate(xh => coef%Xh)
143 call cpu_cdtp_lx14_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
144 xh%dxt, xh%dyt, xh%dzt, xh%w3)
146 call cpu_cdtp_lx13_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
147 xh%dxt, xh%dyt, xh%dzt, xh%w3)
149 call cpu_cdtp_lx12_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
150 xh%dxt, xh%dyt, xh%dzt, xh%w3)
152 call cpu_cdtp_lx11_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
153 xh%dxt, xh%dyt, xh%dzt, xh%w3)
155 call cpu_cdtp_lx10_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
156 xh%dxt, xh%dyt, xh%dzt, xh%w3)
158 call cpu_cdtp_lx9_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
159 xh%dxt, xh%dyt, xh%dzt, xh%w3)
161 call cpu_cdtp_lx8_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
162 xh%dxt, xh%dyt, xh%dzt, xh%w3)
164 call cpu_cdtp_lx7_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
165 xh%dxt, xh%dyt, xh%dzt, xh%w3)
167 call cpu_cdtp_lx6_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
168 xh%dxt, xh%dyt, xh%dzt, xh%w3)
170 call cpu_cdtp_lx5_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
171 xh%dxt, xh%dyt, xh%dzt, xh%w3)
173 call cpu_cdtp_lx4_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
174 xh%dxt, xh%dyt, xh%dzt, xh%w3)
176 call cpu_cdtp_lx3_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
177 xh%dxt, xh%dyt, xh%dzt, xh%w3)
179 call cpu_cdtp_lx2_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
180 xh%dxt, xh%dyt, xh%dzt, xh%w3)
182 call cpu_cdtp_lx_single(dtx, x, dr(1,e), ds(1,e), dt(1,e), &
183 xh%dxt, xh%dyt, xh%dzt, xh%w3, xh%lx)
187 end subroutine opr_cpu_cdtp_single
189 subroutine cpu_cdtp_lx(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel, lx)
190 integer,
intent(in) :: nel, lx
191 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
192 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
193 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
194 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
195 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
197 integer :: e, i, j, k, l
202 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
206 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
214 tmp = tmp + dxt(i,k) * ta1(k,j,1)
221 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
230 tmp = tmp + dyt(j,l) * ta1(i,l,k)
232 dtx(i,j,k,e) = dtx(i,j,k,e) + tmp
238 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
246 tmp = tmp + dzt(k,l) * ta1(i,1,l)
248 dtx(i,1,k,e) = dtx(i,1,k,e) + tmp
253 end subroutine cpu_cdtp_lx
255 subroutine cpu_cdtp_lx14(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
256 integer,
parameter :: lx = 14
257 integer,
intent(in) :: nel
258 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
259 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
260 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
261 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
262 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
263 integer :: e, i, j, k
268 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
272 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
277 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
278 + dxt(i,2) * ta1(2,j,1) &
279 + dxt(i,3) * ta1(3,j,1) &
280 + dxt(i,4) * ta1(4,j,1) &
281 + dxt(i,5) * ta1(5,j,1) &
282 + dxt(i,6) * ta1(6,j,1) &
283 + dxt(i,7) * ta1(7,j,1) &
284 + dxt(i,8) * ta1(8,j,1) &
285 + dxt(i,9) * ta1(9,j,1) &
286 + dxt(i,10) * ta1(10,j,1) &
287 + dxt(i,11) * ta1(11,j,1) &
288 + dxt(i,12) * ta1(12,j,1) &
289 + dxt(i,13) * ta1(13,j,1) &
290 + dxt(i,14) * ta1(14,j,1)
295 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
301 dtx(i,j,k,e) = dtx(i,j,k,e) &
302 + dyt(j,1) * ta1(i,1,k) &
303 + dyt(j,2) * ta1(i,2,k) &
304 + dyt(j,3) * ta1(i,3,k) &
305 + dyt(j,4) * ta1(i,4,k) &
306 + dyt(j,5) * ta1(i,5,k) &
307 + dyt(j,6) * ta1(i,6,k) &
308 + dyt(j,7) * ta1(i,7,k) &
309 + dyt(j,8) * ta1(i,8,k) &
310 + dyt(j,9) * ta1(i,9,k) &
311 + dyt(j,10) * ta1(i,10,k) &
312 + dyt(j,11) * ta1(i,11,k) &
313 + dyt(j,12) * ta1(i,12,k) &
314 + dyt(j,13) * ta1(i,13,k) &
315 + dyt(j,14) * ta1(i,14,k)
321 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
326 dtx(i,1,k,e) = dtx(i,1,k,e) &
327 + dzt(k,1) * ta1(i,1,1) &
328 + dzt(k,2) * ta1(i,1,2) &
329 + dzt(k,3) * ta1(i,1,3) &
330 + dzt(k,4) * ta1(i,1,4) &
331 + dzt(k,5) * ta1(i,1,5) &
332 + dzt(k,6) * ta1(i,1,6) &
333 + dzt(k,7) * ta1(i,1,7) &
334 + dzt(k,8) * ta1(i,1,8) &
335 + dzt(k,9) * ta1(i,1,9) &
336 + dzt(k,10) * ta1(i,1,10) &
337 + dzt(k,11) * ta1(i,1,11) &
338 + dzt(k,12) * ta1(i,1,12) &
339 + dzt(k,13) * ta1(i,1,13) &
340 + dzt(k,14) * ta1(i,1,14)
345 end subroutine cpu_cdtp_lx14
347 subroutine cpu_cdtp_lx13(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
348 integer,
parameter :: lx = 13
349 integer,
intent(in) :: nel
350 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
351 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
352 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
353 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
354 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
355 integer :: e, i, j, k
360 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
364 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
369 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
370 + dxt(i,2) * ta1(2,j,1) &
371 + dxt(i,3) * ta1(3,j,1) &
372 + dxt(i,4) * ta1(4,j,1) &
373 + dxt(i,5) * ta1(5,j,1) &
374 + dxt(i,6) * ta1(6,j,1) &
375 + dxt(i,7) * ta1(7,j,1) &
376 + dxt(i,8) * ta1(8,j,1) &
377 + dxt(i,9) * ta1(9,j,1) &
378 + dxt(i,10) * ta1(10,j,1) &
379 + dxt(i,11) * ta1(11,j,1) &
380 + dxt(i,12) * ta1(12,j,1) &
381 + dxt(i,13) * ta1(13,j,1)
386 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
392 dtx(i,j,k,e) = dtx(i,j,k,e) &
393 + dyt(j,1) * ta1(i,1,k) &
394 + dyt(j,2) * ta1(i,2,k) &
395 + dyt(j,3) * ta1(i,3,k) &
396 + dyt(j,4) * ta1(i,4,k) &
397 + dyt(j,5) * ta1(i,5,k) &
398 + dyt(j,6) * ta1(i,6,k) &
399 + dyt(j,7) * ta1(i,7,k) &
400 + dyt(j,8) * ta1(i,8,k) &
401 + dyt(j,9) * ta1(i,9,k) &
402 + dyt(j,10) * ta1(i,10,k) &
403 + dyt(j,11) * ta1(i,11,k) &
404 + dyt(j,12) * ta1(i,12,k) &
405 + dyt(j,13) * ta1(i,13,k)
411 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
416 dtx(i,1,k,e) = dtx(i,1,k,e) &
417 + dzt(k,1) * ta1(i,1,1) &
418 + dzt(k,2) * ta1(i,1,2) &
419 + dzt(k,3) * ta1(i,1,3) &
420 + dzt(k,4) * ta1(i,1,4) &
421 + dzt(k,5) * ta1(i,1,5) &
422 + dzt(k,6) * ta1(i,1,6) &
423 + dzt(k,7) * ta1(i,1,7) &
424 + dzt(k,8) * ta1(i,1,8) &
425 + dzt(k,9) * ta1(i,1,9) &
426 + dzt(k,10) * ta1(i,1,10) &
427 + dzt(k,11) * ta1(i,1,11) &
428 + dzt(k,12) * ta1(i,1,12) &
429 + dzt(k,13) * ta1(i,1,13)
434 end subroutine cpu_cdtp_lx13
436 subroutine cpu_cdtp_lx12(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
437 integer,
parameter :: lx = 12
438 integer,
intent(in) :: nel
439 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
440 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
441 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
442 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
443 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
444 integer :: e, i, j, k
449 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
453 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
458 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
459 + dxt(i,2) * ta1(2,j,1) &
460 + dxt(i,3) * ta1(3,j,1) &
461 + dxt(i,4) * ta1(4,j,1) &
462 + dxt(i,5) * ta1(5,j,1) &
463 + dxt(i,6) * ta1(6,j,1) &
464 + dxt(i,7) * ta1(7,j,1) &
465 + dxt(i,8) * ta1(8,j,1) &
466 + dxt(i,9) * ta1(9,j,1) &
467 + dxt(i,10) * ta1(10,j,1) &
468 + dxt(i,11) * ta1(11,j,1) &
469 + dxt(i,12) * ta1(12,j,1)
474 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
480 dtx(i,j,k,e) = dtx(i,j,k,e) &
481 + dyt(j,1) * ta1(i,1,k) &
482 + dyt(j,2) * ta1(i,2,k) &
483 + dyt(j,3) * ta1(i,3,k) &
484 + dyt(j,4) * ta1(i,4,k) &
485 + dyt(j,5) * ta1(i,5,k) &
486 + dyt(j,6) * ta1(i,6,k) &
487 + dyt(j,7) * ta1(i,7,k) &
488 + dyt(j,8) * ta1(i,8,k) &
489 + dyt(j,9) * ta1(i,9,k) &
490 + dyt(j,10) * ta1(i,10,k) &
491 + dyt(j,11) * ta1(i,11,k) &
492 + dyt(j,12) * ta1(i,12,k)
498 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
503 dtx(i,1,k,e) = dtx(i,1,k,e) &
504 + dzt(k,1) * ta1(i,1,1) &
505 + dzt(k,2) * ta1(i,1,2) &
506 + dzt(k,3) * ta1(i,1,3) &
507 + dzt(k,4) * ta1(i,1,4) &
508 + dzt(k,5) * ta1(i,1,5) &
509 + dzt(k,6) * ta1(i,1,6) &
510 + dzt(k,7) * ta1(i,1,7) &
511 + dzt(k,8) * ta1(i,1,8) &
512 + dzt(k,9) * ta1(i,1,9) &
513 + dzt(k,10) * ta1(i,1,10) &
514 + dzt(k,11) * ta1(i,1,11) &
515 + dzt(k,12) * ta1(i,1,12)
520 end subroutine cpu_cdtp_lx12
522 subroutine cpu_cdtp_lx11(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
523 integer,
parameter :: lx = 11
524 integer,
intent(in) :: nel
525 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
526 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
527 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
528 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
529 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
530 integer :: e, i, j, k
535 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
539 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
544 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
545 + dxt(i,2) * ta1(2,j,1) &
546 + dxt(i,3) * ta1(3,j,1) &
547 + dxt(i,4) * ta1(4,j,1) &
548 + dxt(i,5) * ta1(5,j,1) &
549 + dxt(i,6) * ta1(6,j,1) &
550 + dxt(i,7) * ta1(7,j,1) &
551 + dxt(i,8) * ta1(8,j,1) &
552 + dxt(i,9) * ta1(9,j,1) &
553 + dxt(i,10) * ta1(10,j,1) &
554 + dxt(i,11) * ta1(11,j,1)
559 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
565 dtx(i,j,k,e) = dtx(i,j,k,e) &
566 + dyt(j,1) * ta1(i,1,k) &
567 + dyt(j,2) * ta1(i,2,k) &
568 + dyt(j,3) * ta1(i,3,k) &
569 + dyt(j,4) * ta1(i,4,k) &
570 + dyt(j,5) * ta1(i,5,k) &
571 + dyt(j,6) * ta1(i,6,k) &
572 + dyt(j,7) * ta1(i,7,k) &
573 + dyt(j,8) * ta1(i,8,k) &
574 + dyt(j,9) * ta1(i,9,k) &
575 + dyt(j,10) * ta1(i,10,k) &
576 + dyt(j,11) * ta1(i,11,k)
582 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
587 dtx(i,1,k,e) = dtx(i,1,k,e) &
588 + dzt(k,1) * ta1(i,1,1) &
589 + dzt(k,2) * ta1(i,1,2) &
590 + dzt(k,3) * ta1(i,1,3) &
591 + dzt(k,4) * ta1(i,1,4) &
592 + dzt(k,5) * ta1(i,1,5) &
593 + dzt(k,6) * ta1(i,1,6) &
594 + dzt(k,7) * ta1(i,1,7) &
595 + dzt(k,8) * ta1(i,1,8) &
596 + dzt(k,9) * ta1(i,1,9) &
597 + dzt(k,10) * ta1(i,1,10) &
598 + dzt(k,11) * ta1(i,1,11)
603 end subroutine cpu_cdtp_lx11
605 subroutine cpu_cdtp_lx10(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
606 integer,
parameter :: lx = 10
607 integer,
intent(in) :: nel
608 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
609 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
610 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
611 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
612 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
613 integer :: e, i, j, k
618 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
622 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
627 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
628 + dxt(i,2) * ta1(2,j,1) &
629 + dxt(i,3) * ta1(3,j,1) &
630 + dxt(i,4) * ta1(4,j,1) &
631 + dxt(i,5) * ta1(5,j,1) &
632 + dxt(i,6) * ta1(6,j,1) &
633 + dxt(i,7) * ta1(7,j,1) &
634 + dxt(i,8) * ta1(8,j,1) &
635 + dxt(i,9) * ta1(9,j,1) &
636 + dxt(i,10) * ta1(10,j,1)
641 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
647 dtx(i,j,k,e) = dtx(i,j,k,e) &
648 + dyt(j,1) * ta1(i,1,k) &
649 + dyt(j,2) * ta1(i,2,k) &
650 + dyt(j,3) * ta1(i,3,k) &
651 + dyt(j,4) * ta1(i,4,k) &
652 + dyt(j,5) * ta1(i,5,k) &
653 + dyt(j,6) * ta1(i,6,k) &
654 + dyt(j,7) * ta1(i,7,k) &
655 + dyt(j,8) * ta1(i,8,k) &
656 + dyt(j,9) * ta1(i,9,k) &
657 + dyt(j,10) * ta1(i,10,k)
664 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
669 dtx(i,1,k,e) = dtx(i,1,k,e) &
670 + dzt(k,1) * ta1(i,1,1) &
671 + dzt(k,2) * ta1(i,1,2) &
672 + dzt(k,3) * ta1(i,1,3) &
673 + dzt(k,4) * ta1(i,1,4) &
674 + dzt(k,5) * ta1(i,1,5) &
675 + dzt(k,6) * ta1(i,1,6) &
676 + dzt(k,7) * ta1(i,1,7) &
677 + dzt(k,8) * ta1(i,1,8) &
678 + dzt(k,9) * ta1(i,1,9) &
679 + dzt(k,10) * ta1(i,1,10)
684 end subroutine cpu_cdtp_lx10
686 subroutine cpu_cdtp_lx9(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
687 integer,
parameter :: lx = 9
688 integer,
intent(in) :: nel
689 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
690 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
691 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
692 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
693 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
694 integer :: e, i, j, k
699 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
703 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
708 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
709 + dxt(i,2) * ta1(2,j,1) &
710 + dxt(i,3) * ta1(3,j,1) &
711 + dxt(i,4) * ta1(4,j,1) &
712 + dxt(i,5) * ta1(5,j,1) &
713 + dxt(i,6) * ta1(6,j,1) &
714 + dxt(i,7) * ta1(7,j,1) &
715 + dxt(i,8) * ta1(8,j,1) &
716 + dxt(i,9) * ta1(9,j,1)
721 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
727 dtx(i,j,k,e) = dtx(i,j,k,e) &
728 + dyt(j,1) * ta1(i,1,k) &
729 + dyt(j,2) * ta1(i,2,k) &
730 + dyt(j,3) * ta1(i,3,k) &
731 + dyt(j,4) * ta1(i,4,k) &
732 + dyt(j,5) * ta1(i,5,k) &
733 + dyt(j,6) * ta1(i,6,k) &
734 + dyt(j,7) * ta1(i,7,k) &
735 + dyt(j,8) * ta1(i,8,k) &
736 + dyt(j,9) * ta1(i,9,k)
742 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
747 dtx(i,1,k,e) = dtx(i,1,k,e) &
748 + dzt(k,1) * ta1(i,1,1) &
749 + dzt(k,2) * ta1(i,1,2) &
750 + dzt(k,3) * ta1(i,1,3) &
751 + dzt(k,4) * ta1(i,1,4) &
752 + dzt(k,5) * ta1(i,1,5) &
753 + dzt(k,6) * ta1(i,1,6) &
754 + dzt(k,7) * ta1(i,1,7) &
755 + dzt(k,8) * ta1(i,1,8) &
756 + dzt(k,9) * ta1(i,1,9)
761 end subroutine cpu_cdtp_lx9
763 subroutine cpu_cdtp_lx8(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
764 integer,
parameter :: lx = 8
765 integer,
intent(in) :: nel
766 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
767 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
768 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
769 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
770 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
771 integer :: e, i, j, k
776 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
780 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
785 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
786 + dxt(i,2) * ta1(2,j,1) &
787 + dxt(i,3) * ta1(3,j,1) &
788 + dxt(i,4) * ta1(4,j,1) &
789 + dxt(i,5) * ta1(5,j,1) &
790 + dxt(i,6) * ta1(6,j,1) &
791 + dxt(i,7) * ta1(7,j,1) &
792 + dxt(i,8) * ta1(8,j,1)
797 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
803 dtx(i,j,k,e) = dtx(i,j,k,e) &
804 + dyt(j,1) * ta1(i,1,k) &
805 + dyt(j,2) * ta1(i,2,k) &
806 + dyt(j,3) * ta1(i,3,k) &
807 + dyt(j,4) * ta1(i,4,k) &
808 + dyt(j,5) * ta1(i,5,k) &
809 + dyt(j,6) * ta1(i,6,k) &
810 + dyt(j,7) * ta1(i,7,k) &
811 + dyt(j,8) * ta1(i,8,k)
817 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
822 dtx(i,1,k,e) = dtx(i,1,k,e) &
823 + dzt(k,1) * ta1(i,1,1) &
824 + dzt(k,2) * ta1(i,1,2) &
825 + dzt(k,3) * ta1(i,1,3) &
826 + dzt(k,4) * ta1(i,1,4) &
827 + dzt(k,5) * ta1(i,1,5) &
828 + dzt(k,6) * ta1(i,1,6) &
829 + dzt(k,7) * ta1(i,1,7) &
830 + dzt(k,8) * ta1(i,1,8)
835 end subroutine cpu_cdtp_lx8
837 subroutine cpu_cdtp_lx7(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
838 integer,
parameter :: lx = 7
839 integer,
intent(in) :: nel
840 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
841 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
842 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
843 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
844 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
845 integer :: e, i, j, k
850 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
854 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
859 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
860 + dxt(i,2) * ta1(2,j,1) &
861 + dxt(i,3) * ta1(3,j,1) &
862 + dxt(i,4) * ta1(4,j,1) &
863 + dxt(i,5) * ta1(5,j,1) &
864 + dxt(i,6) * ta1(6,j,1) &
865 + dxt(i,7) * ta1(7,j,1)
870 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
876 dtx(i,j,k,e) = dtx(i,j,k,e) &
877 + dyt(j,1) * ta1(i,1,k) &
878 + dyt(j,2) * ta1(i,2,k) &
879 + dyt(j,3) * ta1(i,3,k) &
880 + dyt(j,4) * ta1(i,4,k) &
881 + dyt(j,5) * ta1(i,5,k) &
882 + dyt(j,6) * ta1(i,6,k) &
883 + dyt(j,7) * ta1(i,7,k)
889 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
894 dtx(i,1,k,e) = dtx(i,1,k,e) &
895 + dzt(k,1) * ta1(i,1,1) &
896 + dzt(k,2) * ta1(i,1,2) &
897 + dzt(k,3) * ta1(i,1,3) &
898 + dzt(k,4) * ta1(i,1,4) &
899 + dzt(k,5) * ta1(i,1,5) &
900 + dzt(k,6) * ta1(i,1,6) &
901 + dzt(k,7) * ta1(i,1,7)
906 end subroutine cpu_cdtp_lx7
908 subroutine cpu_cdtp_lx6(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
909 integer,
parameter :: lx = 6
910 integer,
intent(in) :: nel
911 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
912 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
913 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
914 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
915 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
916 integer :: e, i, j, k
921 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
925 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
930 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
931 + dxt(i,2) * ta1(2,j,1) &
932 + dxt(i,3) * ta1(3,j,1) &
933 + dxt(i,4) * ta1(4,j,1) &
934 + dxt(i,5) * ta1(5,j,1) &
935 + dxt(i,6) * ta1(6,j,1)
940 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
946 dtx(i,j,k,e) = dtx(i,j,k,e) &
947 + dyt(j,1) * ta1(i,1,k) &
948 + dyt(j,2) * ta1(i,2,k) &
949 + dyt(j,3) * ta1(i,3,k) &
950 + dyt(j,4) * ta1(i,4,k) &
951 + dyt(j,5) * ta1(i,5,k) &
952 + dyt(j,6) * ta1(i,6,k)
958 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
963 dtx(i,1,k,e) = dtx(i,1,k,e) &
964 + dzt(k,1) * ta1(i,1,1) &
965 + dzt(k,2) * ta1(i,1,2) &
966 + dzt(k,3) * ta1(i,1,3) &
967 + dzt(k,4) * ta1(i,1,4) &
968 + dzt(k,5) * ta1(i,1,5) &
969 + dzt(k,6) * ta1(i,1,6)
974 end subroutine cpu_cdtp_lx6
976 subroutine cpu_cdtp_lx5(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
977 integer,
parameter :: lx = 5
978 integer,
intent(in) :: nel
979 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
980 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
981 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
982 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
983 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
984 integer :: e, i, j, k
989 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
993 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
998 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
999 + dxt(i,2) * ta1(2,j,1) &
1000 + dxt(i,3) * ta1(3,j,1) &
1001 + dxt(i,4) * ta1(4,j,1) &
1002 + dxt(i,5) * ta1(5,j,1)
1007 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
1013 dtx(i,j,k,e) = dtx(i,j,k,e) &
1014 + dyt(j,1) * ta1(i,1,k) &
1015 + dyt(j,2) * ta1(i,2,k) &
1016 + dyt(j,3) * ta1(i,3,k) &
1017 + dyt(j,4) * ta1(i,4,k) &
1018 + dyt(j,5) * ta1(i,5,k)
1024 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
1029 dtx(i,1,k,e) = dtx(i,1,k,e) &
1030 + dzt(k,1) * ta1(i,1,1) &
1031 + dzt(k,2) * ta1(i,1,2) &
1032 + dzt(k,3) * ta1(i,1,3) &
1033 + dzt(k,4) * ta1(i,1,4) &
1034 + dzt(k,5) * ta1(i,1,5)
1039 end subroutine cpu_cdtp_lx5
1041 subroutine cpu_cdtp_lx4(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
1042 integer,
parameter :: lx = 4
1043 integer,
intent(in) :: nel
1044 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
1045 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
1046 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1047 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1048 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1049 integer :: e, i, j, k
1054 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
1058 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
1063 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
1064 + dxt(i,2) * ta1(2,j,1) &
1065 + dxt(i,3) * ta1(3,j,1) &
1066 + dxt(i,4) * ta1(4,j,1)
1071 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
1077 dtx(i,j,k,e) = dtx(i,j,k,e) &
1078 + dyt(j,1) * ta1(i,1,k) &
1079 + dyt(j,2) * ta1(i,2,k) &
1080 + dyt(j,3) * ta1(i,3,k) &
1081 + dyt(j,4) * ta1(i,4,k)
1087 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
1092 dtx(i,1,k,e) = dtx(i,1,k,e) &
1093 + dzt(k,1) * ta1(i,1,1) &
1094 + dzt(k,2) * ta1(i,1,2) &
1095 + dzt(k,3) * ta1(i,1,3) &
1096 + dzt(k,4) * ta1(i,1,4)
1101 end subroutine cpu_cdtp_lx4
1103 subroutine cpu_cdtp_lx3(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
1104 integer,
parameter :: lx = 3
1105 integer,
intent(in) :: nel
1106 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
1107 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
1108 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1109 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1110 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1111 integer :: e, i, j, k
1116 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
1120 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
1125 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
1126 + dxt(i,2) * ta1(2,j,1) &
1127 + dxt(i,3) * ta1(3,j,1)
1132 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
1138 dtx(i,j,k,e) = dtx(i,j,k,e) &
1139 + dyt(j,1) * ta1(i,1,k) &
1140 + dyt(j,2) * ta1(i,2,k) &
1141 + dyt(j,3) * ta1(i,3,k)
1147 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
1152 dtx(i,1,k,e) = dtx(i,1,k,e) &
1153 + dzt(k,1) * ta1(i,1,1) &
1154 + dzt(k,2) * ta1(i,1,2) &
1155 + dzt(k,3) * ta1(i,1,3)
1160 end subroutine cpu_cdtp_lx3
1162 subroutine cpu_cdtp_lx2(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, nel)
1163 integer,
parameter :: lx = 2
1164 integer,
intent(in) :: nel
1165 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(inout) :: dtx
1166 real(kind=rp),
dimension(lx, lx, lx, nel),
intent(in) :: x, dr, ds, dt
1167 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1168 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1169 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1170 integer :: e, i, j, k
1175 wx(i,1,1) = x(i,1,1,e) * w3(i,1,1)
1179 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1,e)
1184 dtx(i,j,1,e) = dxt(i,1) * ta1(1,j,1) &
1185 + dxt(i,2) * ta1(2,j,1)
1190 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1,e)
1196 dtx(i,j,k,e) = dtx(i,j,k,e) &
1197 + dyt(j,1) * ta1(i,1,k) &
1198 + dyt(j,2) * ta1(i,2,k)
1204 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1,e)
1209 dtx(i,1,k,e) = dtx(i,1,k,e) &
1210 + dzt(k,1) * ta1(i,1,1) &
1211 + dzt(k,2) * ta1(i,1,2)
1216 end subroutine cpu_cdtp_lx2
1218 subroutine cpu_cdtp_lx_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3, lx)
1219 integer,
intent(in) :: lx
1220 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1221 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1222 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1223 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1224 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1225 real(kind=rp) :: tmp
1226 integer :: i, j, k, l
1229 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1233 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1241 tmp = tmp + dxt(i,k) * ta1(k,j,1)
1248 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1257 tmp = tmp + dyt(j,l) * ta1(i,l,k)
1259 dtx(i,j,k) = dtx(i,j,k) + tmp
1265 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1273 tmp = tmp + dzt(k,l) * ta1(i,1,l)
1275 dtx(i,1,k) = dtx(i,1,k) + tmp
1279 end subroutine cpu_cdtp_lx_single
1281 subroutine cpu_cdtp_lx14_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1282 integer,
parameter :: lx = 14
1283 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1284 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1285 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1286 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1287 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1291 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1295 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1300 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1301 + dxt(i,2) * ta1(2,j,1) &
1302 + dxt(i,3) * ta1(3,j,1) &
1303 + dxt(i,4) * ta1(4,j,1) &
1304 + dxt(i,5) * ta1(5,j,1) &
1305 + dxt(i,6) * ta1(6,j,1) &
1306 + dxt(i,7) * ta1(7,j,1) &
1307 + dxt(i,8) * ta1(8,j,1) &
1308 + dxt(i,9) * ta1(9,j,1) &
1309 + dxt(i,10) * ta1(10,j,1) &
1310 + dxt(i,11) * ta1(11,j,1) &
1311 + dxt(i,12) * ta1(12,j,1) &
1312 + dxt(i,13) * ta1(13,j,1) &
1313 + dxt(i,14) * ta1(14,j,1)
1318 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1324 dtx(i,j,k) = dtx(i,j,k) &
1325 + dyt(j,1) * ta1(i,1,k) &
1326 + dyt(j,2) * ta1(i,2,k) &
1327 + dyt(j,3) * ta1(i,3,k) &
1328 + dyt(j,4) * ta1(i,4,k) &
1329 + dyt(j,5) * ta1(i,5,k) &
1330 + dyt(j,6) * ta1(i,6,k) &
1331 + dyt(j,7) * ta1(i,7,k) &
1332 + dyt(j,8) * ta1(i,8,k) &
1333 + dyt(j,9) * ta1(i,9,k) &
1334 + dyt(j,10) * ta1(i,10,k) &
1335 + dyt(j,11) * ta1(i,11,k) &
1336 + dyt(j,12) * ta1(i,12,k) &
1337 + dyt(j,13) * ta1(i,13,k) &
1338 + dyt(j,14) * ta1(i,14,k)
1344 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1349 dtx(i,1,k) = dtx(i,1,k) &
1350 + dzt(k,1) * ta1(i,1,1) &
1351 + dzt(k,2) * ta1(i,1,2) &
1352 + dzt(k,3) * ta1(i,1,3) &
1353 + dzt(k,4) * ta1(i,1,4) &
1354 + dzt(k,5) * ta1(i,1,5) &
1355 + dzt(k,6) * ta1(i,1,6) &
1356 + dzt(k,7) * ta1(i,1,7) &
1357 + dzt(k,8) * ta1(i,1,8) &
1358 + dzt(k,9) * ta1(i,1,9) &
1359 + dzt(k,10) * ta1(i,1,10) &
1360 + dzt(k,11) * ta1(i,1,11) &
1361 + dzt(k,12) * ta1(i,1,12) &
1362 + dzt(k,13) * ta1(i,1,13) &
1363 + dzt(k,14) * ta1(i,1,14)
1367 end subroutine cpu_cdtp_lx14_single
1369 subroutine cpu_cdtp_lx13_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1370 integer,
parameter :: lx = 13
1371 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1372 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1373 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1374 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1375 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1379 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1383 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1388 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1389 + dxt(i,2) * ta1(2,j,1) &
1390 + dxt(i,3) * ta1(3,j,1) &
1391 + dxt(i,4) * ta1(4,j,1) &
1392 + dxt(i,5) * ta1(5,j,1) &
1393 + dxt(i,6) * ta1(6,j,1) &
1394 + dxt(i,7) * ta1(7,j,1) &
1395 + dxt(i,8) * ta1(8,j,1) &
1396 + dxt(i,9) * ta1(9,j,1) &
1397 + dxt(i,10) * ta1(10,j,1) &
1398 + dxt(i,11) * ta1(11,j,1) &
1399 + dxt(i,12) * ta1(12,j,1) &
1400 + dxt(i,13) * ta1(13,j,1)
1405 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1411 dtx(i,j,k) = dtx(i,j,k) &
1412 + dyt(j,1) * ta1(i,1,k) &
1413 + dyt(j,2) * ta1(i,2,k) &
1414 + dyt(j,3) * ta1(i,3,k) &
1415 + dyt(j,4) * ta1(i,4,k) &
1416 + dyt(j,5) * ta1(i,5,k) &
1417 + dyt(j,6) * ta1(i,6,k) &
1418 + dyt(j,7) * ta1(i,7,k) &
1419 + dyt(j,8) * ta1(i,8,k) &
1420 + dyt(j,9) * ta1(i,9,k) &
1421 + dyt(j,10) * ta1(i,10,k) &
1422 + dyt(j,11) * ta1(i,11,k) &
1423 + dyt(j,12) * ta1(i,12,k) &
1424 + dyt(j,13) * ta1(i,13,k)
1430 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1435 dtx(i,1,k) = dtx(i,1,k) &
1436 + dzt(k,1) * ta1(i,1,1) &
1437 + dzt(k,2) * ta1(i,1,2) &
1438 + dzt(k,3) * ta1(i,1,3) &
1439 + dzt(k,4) * ta1(i,1,4) &
1440 + dzt(k,5) * ta1(i,1,5) &
1441 + dzt(k,6) * ta1(i,1,6) &
1442 + dzt(k,7) * ta1(i,1,7) &
1443 + dzt(k,8) * ta1(i,1,8) &
1444 + dzt(k,9) * ta1(i,1,9) &
1445 + dzt(k,10) * ta1(i,1,10) &
1446 + dzt(k,11) * ta1(i,1,11) &
1447 + dzt(k,12) * ta1(i,1,12) &
1448 + dzt(k,13) * ta1(i,1,13)
1452 end subroutine cpu_cdtp_lx13_single
1454 subroutine cpu_cdtp_lx12_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1455 integer,
parameter :: lx = 12
1456 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1457 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1458 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1459 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1460 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1464 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1468 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1473 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1474 + dxt(i,2) * ta1(2,j,1) &
1475 + dxt(i,3) * ta1(3,j,1) &
1476 + dxt(i,4) * ta1(4,j,1) &
1477 + dxt(i,5) * ta1(5,j,1) &
1478 + dxt(i,6) * ta1(6,j,1) &
1479 + dxt(i,7) * ta1(7,j,1) &
1480 + dxt(i,8) * ta1(8,j,1) &
1481 + dxt(i,9) * ta1(9,j,1) &
1482 + dxt(i,10) * ta1(10,j,1) &
1483 + dxt(i,11) * ta1(11,j,1) &
1484 + dxt(i,12) * ta1(12,j,1)
1489 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1495 dtx(i,j,k) = dtx(i,j,k) &
1496 + dyt(j,1) * ta1(i,1,k) &
1497 + dyt(j,2) * ta1(i,2,k) &
1498 + dyt(j,3) * ta1(i,3,k) &
1499 + dyt(j,4) * ta1(i,4,k) &
1500 + dyt(j,5) * ta1(i,5,k) &
1501 + dyt(j,6) * ta1(i,6,k) &
1502 + dyt(j,7) * ta1(i,7,k) &
1503 + dyt(j,8) * ta1(i,8,k) &
1504 + dyt(j,9) * ta1(i,9,k) &
1505 + dyt(j,10) * ta1(i,10,k) &
1506 + dyt(j,11) * ta1(i,11,k) &
1507 + dyt(j,12) * ta1(i,12,k)
1513 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1518 dtx(i,1,k) = dtx(i,1,k) &
1519 + dzt(k,1) * ta1(i,1,1) &
1520 + dzt(k,2) * ta1(i,1,2) &
1521 + dzt(k,3) * ta1(i,1,3) &
1522 + dzt(k,4) * ta1(i,1,4) &
1523 + dzt(k,5) * ta1(i,1,5) &
1524 + dzt(k,6) * ta1(i,1,6) &
1525 + dzt(k,7) * ta1(i,1,7) &
1526 + dzt(k,8) * ta1(i,1,8) &
1527 + dzt(k,9) * ta1(i,1,9) &
1528 + dzt(k,10) * ta1(i,1,10) &
1529 + dzt(k,11) * ta1(i,1,11) &
1530 + dzt(k,12) * ta1(i,1,12)
1534 end subroutine cpu_cdtp_lx12_single
1536 subroutine cpu_cdtp_lx11_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1537 integer,
parameter :: lx = 11
1538 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1539 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1540 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1541 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1542 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1546 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1550 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1555 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1556 + dxt(i,2) * ta1(2,j,1) &
1557 + dxt(i,3) * ta1(3,j,1) &
1558 + dxt(i,4) * ta1(4,j,1) &
1559 + dxt(i,5) * ta1(5,j,1) &
1560 + dxt(i,6) * ta1(6,j,1) &
1561 + dxt(i,7) * ta1(7,j,1) &
1562 + dxt(i,8) * ta1(8,j,1) &
1563 + dxt(i,9) * ta1(9,j,1) &
1564 + dxt(i,10) * ta1(10,j,1) &
1565 + dxt(i,11) * ta1(11,j,1)
1570 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1576 dtx(i,j,k) = dtx(i,j,k) &
1577 + dyt(j,1) * ta1(i,1,k) &
1578 + dyt(j,2) * ta1(i,2,k) &
1579 + dyt(j,3) * ta1(i,3,k) &
1580 + dyt(j,4) * ta1(i,4,k) &
1581 + dyt(j,5) * ta1(i,5,k) &
1582 + dyt(j,6) * ta1(i,6,k) &
1583 + dyt(j,7) * ta1(i,7,k) &
1584 + dyt(j,8) * ta1(i,8,k) &
1585 + dyt(j,9) * ta1(i,9,k) &
1586 + dyt(j,10) * ta1(i,10,k) &
1587 + dyt(j,11) * ta1(i,11,k)
1593 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1598 dtx(i,1,k) = dtx(i,1,k) &
1599 + dzt(k,1) * ta1(i,1,1) &
1600 + dzt(k,2) * ta1(i,1,2) &
1601 + dzt(k,3) * ta1(i,1,3) &
1602 + dzt(k,4) * ta1(i,1,4) &
1603 + dzt(k,5) * ta1(i,1,5) &
1604 + dzt(k,6) * ta1(i,1,6) &
1605 + dzt(k,7) * ta1(i,1,7) &
1606 + dzt(k,8) * ta1(i,1,8) &
1607 + dzt(k,9) * ta1(i,1,9) &
1608 + dzt(k,10) * ta1(i,1,10) &
1609 + dzt(k,11) * ta1(i,1,11)
1613 end subroutine cpu_cdtp_lx11_single
1615 subroutine cpu_cdtp_lx10_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1616 integer,
parameter :: lx = 10
1617 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1618 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1619 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1620 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1621 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1625 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1629 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1634 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1635 + dxt(i,2) * ta1(2,j,1) &
1636 + dxt(i,3) * ta1(3,j,1) &
1637 + dxt(i,4) * ta1(4,j,1) &
1638 + dxt(i,5) * ta1(5,j,1) &
1639 + dxt(i,6) * ta1(6,j,1) &
1640 + dxt(i,7) * ta1(7,j,1) &
1641 + dxt(i,8) * ta1(8,j,1) &
1642 + dxt(i,9) * ta1(9,j,1) &
1643 + dxt(i,10) * ta1(10,j,1)
1648 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1654 dtx(i,j,k) = dtx(i,j,k) &
1655 + dyt(j,1) * ta1(i,1,k) &
1656 + dyt(j,2) * ta1(i,2,k) &
1657 + dyt(j,3) * ta1(i,3,k) &
1658 + dyt(j,4) * ta1(i,4,k) &
1659 + dyt(j,5) * ta1(i,5,k) &
1660 + dyt(j,6) * ta1(i,6,k) &
1661 + dyt(j,7) * ta1(i,7,k) &
1662 + dyt(j,8) * ta1(i,8,k) &
1663 + dyt(j,9) * ta1(i,9,k) &
1664 + dyt(j,10) * ta1(i,10,k)
1671 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1676 dtx(i,1,k) = dtx(i,1,k) &
1677 + dzt(k,1) * ta1(i,1,1) &
1678 + dzt(k,2) * ta1(i,1,2) &
1679 + dzt(k,3) * ta1(i,1,3) &
1680 + dzt(k,4) * ta1(i,1,4) &
1681 + dzt(k,5) * ta1(i,1,5) &
1682 + dzt(k,6) * ta1(i,1,6) &
1683 + dzt(k,7) * ta1(i,1,7) &
1684 + dzt(k,8) * ta1(i,1,8) &
1685 + dzt(k,9) * ta1(i,1,9) &
1686 + dzt(k,10) * ta1(i,1,10)
1690 end subroutine cpu_cdtp_lx10_single
1692 subroutine cpu_cdtp_lx9_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1693 integer,
parameter :: lx = 9
1694 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1695 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1696 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1697 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1698 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1702 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1706 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1711 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1712 + dxt(i,2) * ta1(2,j,1) &
1713 + dxt(i,3) * ta1(3,j,1) &
1714 + dxt(i,4) * ta1(4,j,1) &
1715 + dxt(i,5) * ta1(5,j,1) &
1716 + dxt(i,6) * ta1(6,j,1) &
1717 + dxt(i,7) * ta1(7,j,1) &
1718 + dxt(i,8) * ta1(8,j,1) &
1719 + dxt(i,9) * ta1(9,j,1)
1724 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1730 dtx(i,j,k) = dtx(i,j,k) &
1731 + dyt(j,1) * ta1(i,1,k) &
1732 + dyt(j,2) * ta1(i,2,k) &
1733 + dyt(j,3) * ta1(i,3,k) &
1734 + dyt(j,4) * ta1(i,4,k) &
1735 + dyt(j,5) * ta1(i,5,k) &
1736 + dyt(j,6) * ta1(i,6,k) &
1737 + dyt(j,7) * ta1(i,7,k) &
1738 + dyt(j,8) * ta1(i,8,k) &
1739 + dyt(j,9) * ta1(i,9,k)
1745 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1750 dtx(i,1,k) = dtx(i,1,k) &
1751 + dzt(k,1) * ta1(i,1,1) &
1752 + dzt(k,2) * ta1(i,1,2) &
1753 + dzt(k,3) * ta1(i,1,3) &
1754 + dzt(k,4) * ta1(i,1,4) &
1755 + dzt(k,5) * ta1(i,1,5) &
1756 + dzt(k,6) * ta1(i,1,6) &
1757 + dzt(k,7) * ta1(i,1,7) &
1758 + dzt(k,8) * ta1(i,1,8) &
1759 + dzt(k,9) * ta1(i,1,9)
1763 end subroutine cpu_cdtp_lx9_single
1765 subroutine cpu_cdtp_lx8_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1766 integer,
parameter :: lx = 8
1767 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1768 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1769 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1770 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1771 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1775 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1779 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1784 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1785 + dxt(i,2) * ta1(2,j,1) &
1786 + dxt(i,3) * ta1(3,j,1) &
1787 + dxt(i,4) * ta1(4,j,1) &
1788 + dxt(i,5) * ta1(5,j,1) &
1789 + dxt(i,6) * ta1(6,j,1) &
1790 + dxt(i,7) * ta1(7,j,1) &
1791 + dxt(i,8) * ta1(8,j,1)
1796 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1802 dtx(i,j,k) = dtx(i,j,k) &
1803 + dyt(j,1) * ta1(i,1,k) &
1804 + dyt(j,2) * ta1(i,2,k) &
1805 + dyt(j,3) * ta1(i,3,k) &
1806 + dyt(j,4) * ta1(i,4,k) &
1807 + dyt(j,5) * ta1(i,5,k) &
1808 + dyt(j,6) * ta1(i,6,k) &
1809 + dyt(j,7) * ta1(i,7,k) &
1810 + dyt(j,8) * ta1(i,8,k)
1816 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1821 dtx(i,1,k) = dtx(i,1,k) &
1822 + dzt(k,1) * ta1(i,1,1) &
1823 + dzt(k,2) * ta1(i,1,2) &
1824 + dzt(k,3) * ta1(i,1,3) &
1825 + dzt(k,4) * ta1(i,1,4) &
1826 + dzt(k,5) * ta1(i,1,5) &
1827 + dzt(k,6) * ta1(i,1,6) &
1828 + dzt(k,7) * ta1(i,1,7) &
1829 + dzt(k,8) * ta1(i,1,8)
1833 end subroutine cpu_cdtp_lx8_single
1835 subroutine cpu_cdtp_lx7_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1836 integer,
parameter :: lx = 7
1837 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1838 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1839 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1840 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1841 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1845 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1849 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1854 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1855 + dxt(i,2) * ta1(2,j,1) &
1856 + dxt(i,3) * ta1(3,j,1) &
1857 + dxt(i,4) * ta1(4,j,1) &
1858 + dxt(i,5) * ta1(5,j,1) &
1859 + dxt(i,6) * ta1(6,j,1) &
1860 + dxt(i,7) * ta1(7,j,1)
1865 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1871 dtx(i,j,k) = dtx(i,j,k) &
1872 + dyt(j,1) * ta1(i,1,k) &
1873 + dyt(j,2) * ta1(i,2,k) &
1874 + dyt(j,3) * ta1(i,3,k) &
1875 + dyt(j,4) * ta1(i,4,k) &
1876 + dyt(j,5) * ta1(i,5,k) &
1877 + dyt(j,6) * ta1(i,6,k) &
1878 + dyt(j,7) * ta1(i,7,k)
1884 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1889 dtx(i,1,k) = dtx(i,1,k) &
1890 + dzt(k,1) * ta1(i,1,1) &
1891 + dzt(k,2) * ta1(i,1,2) &
1892 + dzt(k,3) * ta1(i,1,3) &
1893 + dzt(k,4) * ta1(i,1,4) &
1894 + dzt(k,5) * ta1(i,1,5) &
1895 + dzt(k,6) * ta1(i,1,6) &
1896 + dzt(k,7) * ta1(i,1,7)
1900 end subroutine cpu_cdtp_lx7_single
1902 subroutine cpu_cdtp_lx6_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1903 integer,
parameter :: lx = 6
1904 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1905 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1906 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1907 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1908 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1912 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1916 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1921 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1922 + dxt(i,2) * ta1(2,j,1) &
1923 + dxt(i,3) * ta1(3,j,1) &
1924 + dxt(i,4) * ta1(4,j,1) &
1925 + dxt(i,5) * ta1(5,j,1) &
1926 + dxt(i,6) * ta1(6,j,1)
1931 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
1937 dtx(i,j,k) = dtx(i,j,k) &
1938 + dyt(j,1) * ta1(i,1,k) &
1939 + dyt(j,2) * ta1(i,2,k) &
1940 + dyt(j,3) * ta1(i,3,k) &
1941 + dyt(j,4) * ta1(i,4,k) &
1942 + dyt(j,5) * ta1(i,5,k) &
1943 + dyt(j,6) * ta1(i,6,k)
1949 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
1954 dtx(i,1,k) = dtx(i,1,k) &
1955 + dzt(k,1) * ta1(i,1,1) &
1956 + dzt(k,2) * ta1(i,1,2) &
1957 + dzt(k,3) * ta1(i,1,3) &
1958 + dzt(k,4) * ta1(i,1,4) &
1959 + dzt(k,5) * ta1(i,1,5) &
1960 + dzt(k,6) * ta1(i,1,6)
1964 end subroutine cpu_cdtp_lx6_single
1966 subroutine cpu_cdtp_lx5_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
1967 integer,
parameter :: lx = 5
1968 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
1969 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
1970 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1971 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
1972 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
1976 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
1980 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
1985 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
1986 + dxt(i,2) * ta1(2,j,1) &
1987 + dxt(i,3) * ta1(3,j,1) &
1988 + dxt(i,4) * ta1(4,j,1) &
1989 + dxt(i,5) * ta1(5,j,1)
1994 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
2000 dtx(i,j,k) = dtx(i,j,k) &
2001 + dyt(j,1) * ta1(i,1,k) &
2002 + dyt(j,2) * ta1(i,2,k) &
2003 + dyt(j,3) * ta1(i,3,k) &
2004 + dyt(j,4) * ta1(i,4,k) &
2005 + dyt(j,5) * ta1(i,5,k)
2011 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
2016 dtx(i,1,k) = dtx(i,1,k) &
2017 + dzt(k,1) * ta1(i,1,1) &
2018 + dzt(k,2) * ta1(i,1,2) &
2019 + dzt(k,3) * ta1(i,1,3) &
2020 + dzt(k,4) * ta1(i,1,4) &
2021 + dzt(k,5) * ta1(i,1,5)
2025 end subroutine cpu_cdtp_lx5_single
2027 subroutine cpu_cdtp_lx4_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
2028 integer,
parameter :: lx = 4
2029 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
2030 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
2031 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
2032 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
2033 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
2037 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
2041 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
2046 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
2047 + dxt(i,2) * ta1(2,j,1) &
2048 + dxt(i,3) * ta1(3,j,1) &
2049 + dxt(i,4) * ta1(4,j,1)
2054 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
2060 dtx(i,j,k) = dtx(i,j,k) &
2061 + dyt(j,1) * ta1(i,1,k) &
2062 + dyt(j,2) * ta1(i,2,k) &
2063 + dyt(j,3) * ta1(i,3,k) &
2064 + dyt(j,4) * ta1(i,4,k)
2070 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
2075 dtx(i,1,k) = dtx(i,1,k) &
2076 + dzt(k,1) * ta1(i,1,1) &
2077 + dzt(k,2) * ta1(i,1,2) &
2078 + dzt(k,3) * ta1(i,1,3) &
2079 + dzt(k,4) * ta1(i,1,4)
2083 end subroutine cpu_cdtp_lx4_single
2085 subroutine cpu_cdtp_lx3_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
2086 integer,
parameter :: lx = 3
2087 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
2088 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
2089 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
2090 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
2091 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
2095 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
2099 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
2104 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
2105 + dxt(i,2) * ta1(2,j,1) &
2106 + dxt(i,3) * ta1(3,j,1)
2111 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
2117 dtx(i,j,k) = dtx(i,j,k) &
2118 + dyt(j,1) * ta1(i,1,k) &
2119 + dyt(j,2) * ta1(i,2,k) &
2120 + dyt(j,3) * ta1(i,3,k)
2126 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
2131 dtx(i,1,k) = dtx(i,1,k) &
2132 + dzt(k,1) * ta1(i,1,1) &
2133 + dzt(k,2) * ta1(i,1,2) &
2134 + dzt(k,3) * ta1(i,1,3)
2138 end subroutine cpu_cdtp_lx3_single
2140 subroutine cpu_cdtp_lx2_single(dtx, x, dr, ds, dt, dxt, dyt, dzt, w3)
2141 integer,
parameter :: lx = 2
2142 real(kind=rp),
dimension(lx, lx, lx),
intent(inout) :: dtx
2143 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: x, dr, ds, dt
2144 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
2145 real(kind=rp),
intent(in),
dimension(lx, lx) :: dxt, dyt, dzt
2146 real(kind=rp),
dimension(lx, lx, lx) :: wx, ta1
2150 wx(i,1,1) = x(i,1,1) * w3(i,1,1)
2154 ta1(i,1,1) = wx(i,1,1) * dr(i,1,1)
2159 dtx(i,j,1) = dxt(i,1) * ta1(1,j,1) &
2160 + dxt(i,2) * ta1(2,j,1)
2165 ta1(i,1,1) = wx(i,1,1) * ds(i,1,1)
2171 dtx(i,j,k) = dtx(i,j,k) &
2172 + dyt(j,1) * ta1(i,1,k) &
2173 + dyt(j,2) * ta1(i,2,k)
2179 ta1(i,1,1) = wx(i,1,1) * dt(i,1,1)
2184 dtx(i,1,k) = dtx(i,1,k) &
2185 + dzt(k,1) * ta1(i,1,1) &
2186 + dzt(k,2) * ta1(i,1,2)
2190 end subroutine cpu_cdtp_lx2_single
2191 end submodule cpu_cdtp