12 integer,
intent(in) :: nv, nu
13 real(kind=
rp),
intent(inout) :: v(nv*nv), u(nu*nu)
14 real(kind=
rp),
intent(inout) :: a(nv,nu), bt(nu,nv)
15 real(kind=
rp) :: work(0:nu**2*nv)
17 call mxm(a, nv, u, nu, work, nu)
18 call mxm(work, nv, bt, nu, v, nv)
23 integer,
intent(in) :: nv, nu
24 real(kind=
rp),
intent(inout) :: v(nv*nv*nv), u(nu*nu*nu)
25 real(kind=
rp),
intent(inout) :: a(nv,nu),bt(nu, nv),ct(nu,nv)
58 else if (nv .eq. 1)
then
80 integer,
intent(in) :: nv, nu
81 real(kind=
rp),
intent(inout) :: v(nv*nv*nv), u(nu*nu*nu)
82 real(kind=
rp),
intent(inout) :: a(nv,nu),bt(nu, nv),ct(nu,nv)
83 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2)
85 integer :: i, j, k, l, nunu, nvnu, nvnv
96 tmp = tmp + a(i,k) * u(k + nu * (j - 1))
105 ii = l + nv * (j - 1) + nvnv * (i - 1)
108 jj = l + nv * (k - 1) + nvnu * (i - 1)
109 tmp = tmp + work(jj) * bt(k,j)
118 jj = i + nvnv * (j - 1)
121 ii = i + nvnv * (k - 1)
122 tmp = tmp + work2(ii) * ct(k, j)
131 integer,
intent(in) :: nu
132 real(kind=
rp),
intent(inout) :: v(1)
133 real(kind=
rp),
intent(in) :: u(nu*nu*nu)
134 real(kind=
rp),
intent(in) :: a(1,nu),bt(nu, 1),ct(nu,1)
135 real(kind=
rp) :: work(nu**2), work2(nu)
137 integer :: i, j, k, l, nunu
144 tmp = tmp + a(1,k) * u(k + nu * (j - 1))
152 jj = k + nu * (i - 1)
153 tmp = tmp + work(jj) * bt(k,1)
160 tmp = tmp + work2(k) * ct(k, 1)
167 integer,
parameter :: n = 4
168 integer,
parameter :: nn = n**2
169 real(kind=
rp),
intent(inout) :: v(1)
170 real(kind=
rp),
intent(in) :: u(n*n*n)
171 real(kind=
rp),
intent(in) :: a(1,n), bt(n,1), ct(n,1)
172 real(kind=
rp) :: work(n**2), work2(n)
177 work(j) = a(1,1) * u(1 + n * (j - 1)) &
178 + a(1,2) * u(2 + n * (j - 1)) &
179 + a(1,3) * u(3 + n * (j - 1)) &
180 + a(1,4) * u(4 + n * (j - 1))
184 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
185 + work(2 + n * (i - 1)) * bt(2,1) &
186 + work(3 + n * (i - 1)) * bt(3,1) &
187 + work(4 + n * (i - 1)) * bt(4,1)
190 v(1) = work2(1) * ct(1, 1) &
191 + work2(2) * ct(2, 1) &
192 + work2(3) * ct(3, 1) &
193 + work2(4) * ct(4, 1)
198 integer,
parameter :: n = 6
199 integer,
parameter :: nn = n**2
200 real(kind=
rp),
intent(inout) :: v(1)
201 real(kind=
rp),
intent(in) :: u(n*n*n)
202 real(kind=
rp),
intent(in) :: a(1,n), bt(n,1), ct(n,1)
203 real(kind=
rp) :: work(n**2), work2(n)
208 work(j) = a(1,1) * u(1 + n * (j - 1)) &
209 + a(1,2) * u(2 + n * (j - 1)) &
210 + a(1,3) * u(3 + n * (j - 1)) &
211 + a(1,4) * u(4 + n * (j - 1)) &
212 + a(1,5) * u(5 + n * (j - 1)) &
213 + a(1,6) * u(6 + n * (j - 1))
217 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
218 + work(2 + n * (i - 1)) * bt(2,1) &
219 + work(3 + n * (i - 1)) * bt(3,1) &
220 + work(4 + n * (i - 1)) * bt(4,1) &
221 + work(5 + n * (i - 1)) * bt(5,1) &
222 + work(6 + n * (i - 1)) * bt(6,1)
225 v(1) = work2(1) * ct(1, 1) &
226 + work2(2) * ct(2, 1) &
227 + work2(3) * ct(3, 1) &
228 + work2(4) * ct(4, 1) &
229 + work2(5) * ct(5, 1) &
230 + work2(6) * ct(6, 1)
235 integer,
parameter :: n = 8
236 integer,
parameter :: nn = n**2
237 real(kind=
rp),
intent(inout) :: v(1)
238 real(kind=
rp),
intent(in) :: u(n*n*n)
239 real(kind=
rp),
intent(in) :: a(1,n), bt(n,1), ct(n,1)
240 real(kind=
rp) :: work(n**2), work2(n)
245 work(j) = a(1,1) * u(1 + n * (j - 1)) &
246 + a(1,2) * u(2 + n * (j - 1)) &
247 + a(1,3) * u(3 + n * (j - 1)) &
248 + a(1,4) * u(4 + n * (j - 1)) &
249 + a(1,5) * u(5 + n * (j - 1)) &
250 + a(1,6) * u(6 + n * (j - 1)) &
251 + a(1,7) * u(7 + n * (j - 1)) &
252 + a(1,8) * u(8 + n * (j - 1))
256 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
257 + work(2 + n * (i - 1)) * bt(2,1) &
258 + work(3 + n * (i - 1)) * bt(3,1) &
259 + work(4 + n * (i - 1)) * bt(4,1) &
260 + work(5 + n * (i - 1)) * bt(5,1) &
261 + work(6 + n * (i - 1)) * bt(6,1) &
262 + work(7 + n * (i - 1)) * bt(7,1) &
263 + work(8 + n * (i - 1)) * bt(8,1)
266 v(1) = work2(1) * ct(1, 1) &
267 + work2(2) * ct(2, 1) &
268 + work2(3) * ct(3, 1) &
269 + work2(4) * ct(4, 1) &
270 + work2(5) * ct(5, 1) &
271 + work2(6) * ct(6, 1) &
272 + work2(7) * ct(7, 1) &
273 + work2(8) * ct(8, 1)
280 integer,
parameter :: n = 10
281 integer,
parameter :: nn = n**2
282 real(kind=
rp),
intent(inout) :: v(1)
283 real(kind=
rp),
intent(in) :: u(n*n*n)
284 real(kind=
rp),
intent(in) :: a(1,n), bt(n,1), ct(n,1)
285 real(kind=
rp) :: work(n**2), work2(n)
290 work(j) = a(1,1) * u(1 + n * (j - 1)) &
291 + a(1,2) * u(2 + n * (j - 1)) &
292 + a(1,3) * u(3 + n * (j - 1)) &
293 + a(1,4) * u(4 + n * (j - 1)) &
294 + a(1,5) * u(5 + n * (j - 1)) &
295 + a(1,6) * u(6 + n * (j - 1)) &
296 + a(1,7) * u(7 + n * (j - 1)) &
297 + a(1,8) * u(8 + n * (j - 1)) &
298 + a(1,9) * u(9 + n * (j - 1)) &
299 + a(1,10) * u(10 + n * (j - 1))
303 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
304 + work(2 + n * (i - 1)) * bt(2,1) &
305 + work(3 + n * (i - 1)) * bt(3,1) &
306 + work(4 + n * (i - 1)) * bt(4,1) &
307 + work(5 + n * (i - 1)) * bt(5,1) &
308 + work(6 + n * (i - 1)) * bt(6,1) &
309 + work(7 + n * (i - 1)) * bt(7,1) &
310 + work(8 + n * (i - 1)) * bt(8,1) &
311 + work(9 + n * (i - 1)) * bt(9,1) &
312 + work(10 + n * (i - 1)) * bt(10,1)
315 v(1) = work2(1) * ct(1, 1) &
316 + work2(2) * ct(2, 1) &
317 + work2(3) * ct(3, 1) &
318 + work2(4) * ct(4, 1) &
319 + work2(5) * ct(5, 1) &
320 + work2(6) * ct(6, 1) &
321 + work2(7) * ct(7, 1) &
322 + work2(8) * ct(8, 1) &
323 + work2(9) * ct(9, 1) &
324 + work2(10) * ct(10, 1)
330 integer,
parameter :: n = 12
331 integer,
parameter :: nn = n**2
332 real(kind=
rp),
intent(inout) :: v(1)
333 real(kind=
rp),
intent(in) :: u(n*n*n)
334 real(kind=
rp),
intent(in) :: a(1,n), bt(n,1), ct(n,1)
335 real(kind=
rp) :: work(n**2), work2(n)
340 work(j) = a(1,1) * u(1 + n * (j - 1)) &
341 + a(1,2) * u(2 + n * (j - 1)) &
342 + a(1,3) * u(3 + n * (j - 1)) &
343 + a(1,4) * u(4 + n * (j - 1)) &
344 + a(1,5) * u(5 + n * (j - 1)) &
345 + a(1,6) * u(6 + n * (j - 1)) &
346 + a(1,7) * u(7 + n * (j - 1)) &
347 + a(1,8) * u(8 + n * (j - 1)) &
348 + a(1,9) * u(9 + n * (j - 1)) &
349 + a(1,10) * u(10 + n * (j - 1)) &
350 + a(1,11) * u(11 + n * (j - 1)) &
351 + a(1,12) * u(12 + n * (j - 1))
355 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
356 + work(2 + n * (i - 1)) * bt(2,1) &
357 + work(3 + n * (i - 1)) * bt(3,1) &
358 + work(4 + n * (i - 1)) * bt(4,1) &
359 + work(5 + n * (i - 1)) * bt(5,1) &
360 + work(6 + n * (i - 1)) * bt(6,1) &
361 + work(7 + n * (i - 1)) * bt(7,1) &
362 + work(8 + n * (i - 1)) * bt(8,1) &
363 + work(9 + n * (i - 1)) * bt(9,1) &
364 + work(10 + n * (i - 1)) * bt(10,1) &
365 + work(11 + n * (i - 1)) * bt(11,1) &
366 + work(12 + n * (i - 1)) * bt(12,1)
369 v(1) = work2(1) * ct(1, 1) &
370 + work2(2) * ct(2, 1) &
371 + work2(3) * ct(3, 1) &
372 + work2(4) * ct(4, 1) &
373 + work2(5) * ct(5, 1) &
374 + work2(6) * ct(6, 1) &
375 + work2(7) * ct(7, 1) &
376 + work2(8) * ct(8, 1) &
377 + work2(9) * ct(9, 1) &
378 + work2(10) * ct(10, 1) &
379 + work2(11) * ct(11, 1) &
380 + work2(12) * ct(12, 1)
387 integer,
intent(in) :: n
388 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
389 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
390 real(kind=
rp) :: work(n**3), work2(n**3), tmp
391 integer :: i, j, l, k
392 integer :: ii, jj, nn
401 tmp = tmp + a(i,k) * u(k + n * (j - 1))
410 ii = l + n * (j - 1) + nn * (i - 1)
413 tmp = tmp + work(l + n * (k - 1) + nn * (i - 1)) * bt(k,j)
422 jj = i + nn * (j - 1)
425 tmp = tmp + work2(i + nn * (k - 1)) * ct(k, j)
434 integer,
parameter :: n = 14
435 integer,
parameter :: nn = n**2
436 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
437 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
438 real(kind=
rp) :: work(n**3), work2(n**3)
445 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
446 + a(i,2) * u(2 + n * (j - 1)) &
447 + a(i,3) * u(3 + n * (j - 1)) &
448 + a(i,4) * u(4 + n * (j - 1)) &
449 + a(i,5) * u(5 + n * (j - 1)) &
450 + a(i,6) * u(6 + n * (j - 1)) &
451 + a(i,7) * u(7 + n * (j - 1)) &
452 + a(i,8) * u(8 + n * (j - 1)) &
453 + a(i,9) * u(9 + n * (j - 1)) &
454 + a(i,10) * u(10 + n * (j - 1)) &
455 + a(i,11) * u(11 + n * (j - 1)) &
456 + a(i,12) * u(12 + n * (j - 1)) &
457 + a(i,13) * u(13 + n * (j - 1)) &
458 + a(i,14) * u(14 + n * (j - 1))
465 ii = l + n * (j - 1) + nn * (i - 1)
466 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
467 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
468 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
469 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
470 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
471 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
472 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
473 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
474 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
475 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
476 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j) &
477 + work(l + n * (12 - 1) + nn * (i - 1)) * bt(12,j) &
478 + work(l + n * (13 - 1) + nn * (i - 1)) * bt(13,j) &
479 + work(l + n * (14 - 1) + nn * (i - 1)) * bt(14,j)
486 jj = i + nn * (j - 1)
487 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
488 + work2(i + nn * (2 - 1)) * ct(2, j) &
489 + work2(i + nn * (3 - 1)) * ct(3, j) &
490 + work2(i + nn * (4 - 1)) * ct(4, j) &
491 + work2(i + nn * (5 - 1)) * ct(5, j) &
492 + work2(i + nn * (6 - 1)) * ct(6, j) &
493 + work2(i + nn * (7 - 1)) * ct(7, j) &
494 + work2(i + nn * (8 - 1)) * ct(8, j) &
495 + work2(i + nn * (9 - 1)) * ct(9, j) &
496 + work2(i + nn * (10 - 1)) * ct(10, j) &
497 + work2(i + nn * (11 - 1)) * ct(11, j) &
498 + work2(i + nn * (12 - 1)) * ct(12, j) &
499 + work2(i + nn * (13 - 1)) * ct(13, j) &
500 + work2(i + nn * (14 - 1)) * ct(14, j)
507 integer,
parameter :: n = 13
508 integer,
parameter :: nn = n**2
509 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
510 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
511 real(kind=
rp) :: work(n**3), work2(n**3)
518 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
519 + a(i,2) * u(2 + n * (j - 1)) &
520 + a(i,3) * u(3 + n * (j - 1)) &
521 + a(i,4) * u(4 + n * (j - 1)) &
522 + a(i,5) * u(5 + n * (j - 1)) &
523 + a(i,6) * u(6 + n * (j - 1)) &
524 + a(i,7) * u(7 + n * (j - 1)) &
525 + a(i,8) * u(8 + n * (j - 1)) &
526 + a(i,9) * u(9 + n * (j - 1)) &
527 + a(i,10) * u(10 + n * (j - 1)) &
528 + a(i,11) * u(11 + n * (j - 1)) &
529 + a(i,12) * u(12 + n * (j - 1)) &
530 + a(i,13) * u(13 + n * (j - 1))
537 ii = l + n * (j - 1) + nn * (i - 1)
538 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
539 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
540 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
541 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
542 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
543 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
544 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
545 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
546 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
547 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
548 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j) &
549 + work(l + n * (12 - 1) + nn * (i - 1)) * bt(12,j) &
550 + work(l + n * (13 - 1) + nn * (i - 1)) * bt(13,j)
557 jj = i + nn * (j - 1)
558 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
559 + work2(i + nn * (2 - 1)) * ct(2, j) &
560 + work2(i + nn * (3 - 1)) * ct(3, j) &
561 + work2(i + nn * (4 - 1)) * ct(4, j) &
562 + work2(i + nn * (5 - 1)) * ct(5, j) &
563 + work2(i + nn * (6 - 1)) * ct(6, j) &
564 + work2(i + nn * (7 - 1)) * ct(7, j) &
565 + work2(i + nn * (8 - 1)) * ct(8, j) &
566 + work2(i + nn * (9 - 1)) * ct(9, j) &
567 + work2(i + nn * (10 - 1)) * ct(10, j) &
568 + work2(i + nn * (11 - 1)) * ct(11, j) &
569 + work2(i + nn * (12 - 1)) * ct(12, j) &
570 + work2(i + nn * (13 - 1)) * ct(13, j)
577 integer,
parameter :: n = 12
578 integer,
parameter :: nn = n**2
579 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
580 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
581 real(kind=
rp) :: work(n**3), work2(n**3)
588 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
589 + a(i,2) * u(2 + n * (j - 1)) &
590 + a(i,3) * u(3 + n * (j - 1)) &
591 + a(i,4) * u(4 + n * (j - 1)) &
592 + a(i,5) * u(5 + n * (j - 1)) &
593 + a(i,6) * u(6 + n * (j - 1)) &
594 + a(i,7) * u(7 + n * (j - 1)) &
595 + a(i,8) * u(8 + n * (j - 1)) &
596 + a(i,9) * u(9 + n * (j - 1)) &
597 + a(i,10) * u(10 + n * (j - 1)) &
598 + a(i,11) * u(11 + n * (j - 1)) &
599 + a(i,12) * u(12 + n * (j - 1))
606 ii = l + n * (j - 1) + nn * (i - 1)
607 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
608 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
609 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
610 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
611 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
612 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
613 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
614 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
615 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
616 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
617 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j) &
618 + work(l + n * (12 - 1) + nn * (i - 1)) * bt(12,j)
625 jj = i + nn * (j - 1)
626 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
627 + work2(i + nn * (2 - 1)) * ct(2, j) &
628 + work2(i + nn * (3 - 1)) * ct(3, j) &
629 + work2(i + nn * (4 - 1)) * ct(4, j) &
630 + work2(i + nn * (5 - 1)) * ct(5, j) &
631 + work2(i + nn * (6 - 1)) * ct(6, j) &
632 + work2(i + nn * (7 - 1)) * ct(7, j) &
633 + work2(i + nn * (8 - 1)) * ct(8, j) &
634 + work2(i + nn * (9 - 1)) * ct(9, j) &
635 + work2(i + nn * (10 - 1)) * ct(10, j) &
636 + work2(i + nn * (11 - 1)) * ct(11, j) &
637 + work2(i + nn * (12 - 1)) * ct(12, j)
644 integer,
parameter :: n = 11
645 integer,
parameter :: nn = n**2
646 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
647 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
648 real(kind=
rp) :: work(n**3), work2(n**3)
655 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
656 + a(i,2) * u(2 + n * (j - 1)) &
657 + a(i,3) * u(3 + n * (j - 1)) &
658 + a(i,4) * u(4 + n * (j - 1)) &
659 + a(i,5) * u(5 + n * (j - 1)) &
660 + a(i,6) * u(6 + n * (j - 1)) &
661 + a(i,7) * u(7 + n * (j - 1)) &
662 + a(i,8) * u(8 + n * (j - 1)) &
663 + a(i,9) * u(9 + n * (j - 1)) &
664 + a(i,10) * u(10 + n * (j - 1)) &
665 + a(i,11) * u(11 + n * (j - 1))
672 ii = l + n * (j - 1) + nn * (i - 1)
673 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
674 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
675 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
676 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
677 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
678 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
679 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
680 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
681 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
682 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
683 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j)
690 jj = i + nn * (j - 1)
691 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
692 + work2(i + nn * (2 - 1)) * ct(2, j) &
693 + work2(i + nn * (3 - 1)) * ct(3, j) &
694 + work2(i + nn * (4 - 1)) * ct(4, j) &
695 + work2(i + nn * (5 - 1)) * ct(5, j) &
696 + work2(i + nn * (6 - 1)) * ct(6, j) &
697 + work2(i + nn * (7 - 1)) * ct(7, j) &
698 + work2(i + nn * (8 - 1)) * ct(8, j) &
699 + work2(i + nn * (9 - 1)) * ct(9, j) &
700 + work2(i + nn * (10 - 1)) * ct(10, j) &
701 + work2(i + nn * (11 - 1)) * ct(11, j)
708 integer,
parameter :: n = 10
709 integer,
parameter :: nn = n**2
710 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
711 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
712 real(kind=
rp) :: work(n**3), work2(n**3)
719 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
720 + a(i,2) * u(2 + n * (j - 1)) &
721 + a(i,3) * u(3 + n * (j - 1)) &
722 + a(i,4) * u(4 + n * (j - 1)) &
723 + a(i,5) * u(5 + n * (j - 1)) &
724 + a(i,6) * u(6 + n * (j - 1)) &
725 + a(i,7) * u(7 + n * (j - 1)) &
726 + a(i,8) * u(8 + n * (j - 1)) &
727 + a(i,9) * u(9 + n * (j - 1)) &
728 + a(i,10) * u(10 + n * (j - 1))
735 ii = l + n * (j - 1) + nn * (i - 1)
736 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
737 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
738 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
739 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
740 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
741 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
742 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
743 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
744 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
745 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j)
752 jj = i + nn * (j - 1)
753 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
754 + work2(i + nn * (2 - 1)) * ct(2, j) &
755 + work2(i + nn * (3 - 1)) * ct(3, j) &
756 + work2(i + nn * (4 - 1)) * ct(4, j) &
757 + work2(i + nn * (5 - 1)) * ct(5, j) &
758 + work2(i + nn * (6 - 1)) * ct(6, j) &
759 + work2(i + nn * (7 - 1)) * ct(7, j) &
760 + work2(i + nn * (8 - 1)) * ct(8, j) &
761 + work2(i + nn * (9 - 1)) * ct(9, j) &
762 + work2(i + nn * (10 - 1)) * ct(10, j)
769 integer,
parameter :: n = 9
770 integer,
parameter :: nn = n**2
771 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
772 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
773 real(kind=
rp) :: work(n**3), work2(n**3)
780 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
781 + a(i,2) * u(2 + n * (j - 1)) &
782 + a(i,3) * u(3 + n * (j - 1)) &
783 + a(i,4) * u(4 + n * (j - 1)) &
784 + a(i,5) * u(5 + n * (j - 1)) &
785 + a(i,6) * u(6 + n * (j - 1)) &
786 + a(i,7) * u(7 + n * (j - 1)) &
787 + a(i,8) * u(8 + n * (j - 1)) &
788 + a(i,9) * u(9 + n * (j - 1))
795 ii = l + n * (j - 1) + nn * (i - 1)
796 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
797 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
798 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
799 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
800 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
801 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
802 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
803 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
804 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j)
811 jj = i + nn * (j - 1)
812 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
813 + work2(i + nn * (2 - 1)) * ct(2, j) &
814 + work2(i + nn * (3 - 1)) * ct(3, j) &
815 + work2(i + nn * (4 - 1)) * ct(4, j) &
816 + work2(i + nn * (5 - 1)) * ct(5, j) &
817 + work2(i + nn * (6 - 1)) * ct(6, j) &
818 + work2(i + nn * (7 - 1)) * ct(7, j) &
819 + work2(i + nn * (8 - 1)) * ct(8, j) &
820 + work2(i + nn * (9 - 1)) * ct(9, j)
827 integer,
parameter :: n = 8
828 integer,
parameter :: nn = n**2
829 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
830 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
831 real(kind=
rp) :: work(n**3), work2(n**3)
838 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
839 + a(i,2) * u(2 + n * (j - 1)) &
840 + a(i,3) * u(3 + n * (j - 1)) &
841 + a(i,4) * u(4 + n * (j - 1)) &
842 + a(i,5) * u(5 + n * (j - 1)) &
843 + a(i,6) * u(6 + n * (j - 1)) &
844 + a(i,7) * u(7 + n * (j - 1)) &
845 + a(i,8) * u(8 + n * (j - 1))
852 ii = l + n * (j - 1) + nn * (i - 1)
853 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
854 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
855 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
856 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
857 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
858 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
859 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
860 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j)
867 jj = i + nn * (j - 1)
868 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
869 + work2(i + nn * (2 - 1)) * ct(2, j) &
870 + work2(i + nn * (3 - 1)) * ct(3, j) &
871 + work2(i + nn * (4 - 1)) * ct(4, j) &
872 + work2(i + nn * (5 - 1)) * ct(5, j) &
873 + work2(i + nn * (6 - 1)) * ct(6, j) &
874 + work2(i + nn * (7 - 1)) * ct(7, j) &
875 + work2(i + nn * (8 - 1)) * ct(8, j)
882 integer,
parameter :: n = 7
883 integer,
parameter :: nn = n**2
884 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
885 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
886 real(kind=
rp) :: work(n**3), work2(n**3)
893 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
894 + a(i,2) * u(2 + n * (j - 1)) &
895 + a(i,3) * u(3 + n * (j - 1)) &
896 + a(i,4) * u(4 + n * (j - 1)) &
897 + a(i,5) * u(5 + n * (j - 1)) &
898 + a(i,6) * u(6 + n * (j - 1)) &
899 + a(i,7) * u(7 + n * (j - 1))
906 ii = l + n * (j - 1) + nn * (i - 1)
907 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
908 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
909 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
910 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
911 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
912 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
913 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j)
920 jj = i + nn * (j - 1)
921 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
922 + work2(i + nn * (2 - 1)) * ct(2, j) &
923 + work2(i + nn * (3 - 1)) * ct(3, j) &
924 + work2(i + nn * (4 - 1)) * ct(4, j) &
925 + work2(i + nn * (5 - 1)) * ct(5, j) &
926 + work2(i + nn * (6 - 1)) * ct(6, j) &
927 + work2(i + nn * (7 - 1)) * ct(7, j)
934 integer,
parameter :: n = 6
935 integer,
parameter :: nn = n**2
936 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
937 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
938 real(kind=
rp) :: work(n**3), work2(n**3)
945 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
946 + a(i,2) * u(2 + n * (j - 1)) &
947 + a(i,3) * u(3 + n * (j - 1)) &
948 + a(i,4) * u(4 + n * (j - 1)) &
949 + a(i,5) * u(5 + n * (j - 1)) &
950 + a(i,6) * u(6 + n * (j - 1))
957 ii = l + n * (j - 1) + nn * (i - 1)
958 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
959 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
960 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
961 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
962 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
963 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j)
970 jj = i + nn * (j - 1)
971 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
972 + work2(i + nn * (2 - 1)) * ct(2, j) &
973 + work2(i + nn * (3 - 1)) * ct(3, j) &
974 + work2(i + nn * (4 - 1)) * ct(4, j) &
975 + work2(i + nn * (5 - 1)) * ct(5, j) &
976 + work2(i + nn * (6 - 1)) * ct(6, j)
983 integer,
parameter :: n = 5
984 integer,
parameter :: nn = n**2
985 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
986 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
987 real(kind=
rp) :: work(n**3), work2(n**3)
994 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
995 + a(i,2) * u(2 + n * (j - 1)) &
996 + a(i,3) * u(3 + n * (j - 1)) &
997 + a(i,4) * u(4 + n * (j - 1)) &
998 + a(i,5) * u(5 + n * (j - 1))
1005 ii = l + n * (j - 1) + nn * (i - 1)
1006 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1007 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
1008 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
1009 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
1010 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j)
1017 jj = i + nn * (j - 1)
1018 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1019 + work2(i + nn * (2 - 1)) * ct(2, j) &
1020 + work2(i + nn * (3 - 1)) * ct(3, j) &
1021 + work2(i + nn * (4 - 1)) * ct(4, j) &
1022 + work2(i + nn * (5 - 1)) * ct(5, j)
1029 integer,
parameter :: n = 4
1030 integer,
parameter :: nn = n**2
1031 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
1032 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
1033 real(kind=
rp) :: work(n**3), work2(n**3)
1039 ii = i + n * (j - 1)
1040 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
1041 + a(i,2) * u(2 + n * (j - 1)) &
1042 + a(i,3) * u(3 + n * (j - 1)) &
1043 + a(i,4) * u(4 + n * (j - 1))
1050 ii = l + n * (j - 1) + nn * (i - 1)
1051 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1052 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
1053 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
1054 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j)
1061 jj = i + nn * (j - 1)
1062 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1063 + work2(i + nn * (2 - 1)) * ct(2, j) &
1064 + work2(i + nn * (3 - 1)) * ct(3, j) &
1065 + work2(i + nn * (4 - 1)) * ct(4, j)
1072 integer,
parameter :: n = 3
1073 integer,
parameter :: nn = n**2
1074 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
1075 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
1076 real(kind=
rp) :: work(n**3), work2(n**3)
1082 ii = i + n * (j - 1)
1083 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
1084 + a(i,2) * u(2 + n * (j - 1)) &
1085 + a(i,3) * u(3 + n * (j - 1))
1092 ii = l + n * (j - 1) + nn * (i - 1)
1093 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1094 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
1095 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j)
1102 jj = i + nn * (j - 1)
1103 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1104 + work2(i + nn * (2 - 1)) * ct(2, j) &
1105 + work2(i + nn * (3 - 1)) * ct(3, j)
1112 integer,
parameter :: n = 2
1113 integer,
parameter :: nn = n**2
1114 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
1115 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
1116 real(kind=
rp) :: work(n**3), work2(n**3)
1122 ii = i + n * (j - 1)
1123 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
1124 + a(i,2) * u(2 + n * (j - 1))
1131 ii = l + n * (j - 1) + nn * (i - 1)
1132 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1133 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j)
1140 jj = i + nn * (j - 1)
1141 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1142 + work2(i + nn * (2 - 1)) * ct(2, j)
1149 integer,
intent(in) :: nv, nu, nelv
1150 real(kind=
rp),
intent(inout) :: v(nv*nv*nv,nelv)
1151 real(kind=
rp),
intent(in) :: u(nu*nu*nu,nelv)
1152 real(kind=
rp),
intent(in) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1154 if (nu .eq. 2 .and. nv .eq. 4)
then
1156 else if (nu .eq. 4)
then
1165 integer,
intent(in) :: nv, nu, nelv
1166 real(kind=
rp),
intent(inout) :: v(nv*nv*nv,nelv)
1167 real(kind=
rp),
intent(in) :: u(nu*nu*nu,nelv)
1168 real(kind=
rp),
intent(in) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1169 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2), tmp
1170 integer :: ie, i, j, k, l, ii, jj
1171 integer :: nunu, nvnu, nvnv
1180 ii = i + nv * (j - 1)
1183 tmp = tmp + a(i,k) * u(k + nu * (j - 1), ie)
1192 ii = l + nv * (j - 1) + nvnv * (i - 1)
1195 jj = l + nv * (k - 1) + nvnu * (i - 1)
1196 tmp = tmp + work(jj) * bt(k,j)
1205 jj = i + nvnv * (j - 1)
1208 ii = i + nvnv * (k - 1)
1209 tmp = tmp + work2(ii) * ct(k, j)
1219 integer,
parameter :: nu = 2
1220 integer,
parameter :: nv = 4
1221 integer,
parameter :: nunu = 4
1222 integer,
parameter :: nvnu = 8
1223 integer,
parameter :: nvnv = 16
1224 integer,
intent(in) :: nelv
1225 real(kind=
rp),
intent(inout) :: v(nv*nv*nv,nelv)
1226 real(kind=
rp),
intent(in) :: u(nu*nu*nu,nelv)
1227 real(kind=
rp),
intent(in) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1228 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2), tmp
1229 integer :: ie, i, j, k, l, ii, jj
1234 ii = i + nv * (j - 1)
1235 work(ii) = a(i,1) * u(1 + nu * (j - 1), ie) &
1236 + a(i,2) * u(2 + nu * (j - 1), ie)
1243 ii = l + nv * (j - 1) + nvnv * (i - 1)
1246 jj = l + nv * (k - 1) + nvnu * (i - 1)
1247 tmp = tmp + work(jj) * bt(k,j)
1256 jj = i + nvnv * (j - 1)
1257 v(jj, ie) = work2(i + nvnv * (1 - 1)) * ct(1, j) &
1258 + work2(i + nvnv * (2 - 1)) * ct(2, j)
1266 integer,
parameter :: nu = 4
1267 integer,
parameter :: nunu = 16
1268 integer,
intent(in) :: nv, nelv
1269 real(kind=
rp),
intent(inout) :: v(nv*nv*nv,nelv)
1270 real(kind=
rp),
intent(in) :: u(nu*nu*nu,nelv)
1271 real(kind=
rp),
intent(in) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1272 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2), tmp
1273 integer :: ie, i, j, k, l, ii, jj
1274 integer :: nvnu, nvnv
1282 ii = i + nv * (j - 1)
1283 work(ii) = a(i,1) * u(1 + nu * (j - 1), ie) &
1284 + a(i,2) * u(2 + nu * (j - 1), ie) &
1285 + a(i,3) * u(3 + nu * (j - 1), ie) &
1286 + a(i,4) * u(4 + nu * (j - 1), ie)
1293 ii = l + nv * (j - 1) + nvnv * (i - 1)
1296 jj = l + nv * (k - 1) + nvnu * (i - 1)
1297 tmp = tmp + work(jj) * bt(k,j)
1306 jj = i + nvnv * (j - 1)
1307 v(jj, ie) = work2(i + nvnv * (1 - 1)) * ct(1, j) &
1308 + work2(i + nvnv * (2 - 1)) * ct(2, j) &
1309 + work2(i + nvnv * (3 - 1)) * ct(3, j) &
1310 + work2(i + nvnv * (4 - 1)) * ct(4, j)
1318 integer,
intent(in) :: nv, nu, nelv
1319 real(kind=
rp),
intent(inout) :: v(nv*nv*nv*nelv)
1320 real(kind=
rp),
intent(inout) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1322 if (nu .eq. 4 .and. nv .eq. 2)
then
1331 integer,
intent(in) :: nv, nu, nelv
1332 real(kind=
rp),
intent(inout) :: v(nv*nv*nv*nelv)
1333 real(kind=
rp),
intent(inout) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1334 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2)
1335 integer :: e, e0, ee, es, iu, iv, nu3, nv3
1336 integer :: i, j, k, l, ii, jj, kk
1337 integer :: nunu, nvnu, nvnv
1338 real(kind=
rp) :: tmp
1363 ii = i + nv * (j - 1)
1366 kk = k + nu * (j - 1) + iu
1367 tmp = tmp + a(i,k) * v(kk)
1376 ii = l + nv * (j - 1) + nvnv * (i - 1)
1379 jj = l + nv * (k - 1) + nvnu * (i - 1)
1380 tmp = tmp + work(jj) * bt(k,j)
1389 jj = i + nvnv * (j - 1) + iv
1392 ii = i + nvnv * (k - 1)
1393 tmp = tmp + work2(ii) * ct(k, j)
1403 integer,
parameter :: nu = 4
1404 integer,
parameter :: nv = 2
1405 integer,
parameter :: nunu = 16
1406 integer,
parameter :: nvnu = 8
1407 integer,
parameter :: nvnv = 4
1408 integer,
parameter :: nununu = 64
1409 integer,
parameter :: nvnvnv = 8
1410 integer,
intent(in) :: nelv
1411 real(kind=
rp),
intent(inout) :: v(nv*nv*nv*nelv)
1412 real(kind=
rp),
intent(inout) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1413 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2)
1414 integer :: e, iu, iv
1415 integer :: i, j, k, l, ii, jj
1416 real(kind=
rp) :: tmp
1424 ii = i + nv * (j - 1)
1425 work(ii) = a(i,1) * v(1 + nu * (j - 1) + iu) &
1426 + a(i,2) * v(2 + nu * (j - 1) + iu) &
1427 + a(i,3) * v(3 + nu * (j - 1) + iu) &
1428 + a(i,4) * v(4 + nu * (j - 1) + iu)
1435 ii = l + nv * (j - 1) + nvnv * (i - 1)
1438 jj = l + nv * (k - 1) + nvnu * (i - 1)
1439 tmp = tmp + work(jj) * bt(k,j)
1448 jj = i + nvnv * (j - 1) + iv
1449 v(jj) = work2(i + nvnv * (1 - 1)) * ct(1, j) &
1450 + work2(i + nvnv * (2 - 1)) * ct(2, j) &
1451 + work2(i + nvnv * (3 - 1)) * ct(3, j) &
1452 + work2(i + nvnv * (4 - 1)) * ct(4, j)
Wrapper for all matrix-matrix product implementations.
subroutine, public mxm(a, n1, b, n2, c, n3)
Compute matrix-matrix product for contiguously packed matrices A,B, and C.
integer, parameter, public rp
Global precision used in computations.
subroutine tnsr3d_el_1_12_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_n5_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_1_8_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_1_6_cpu(v, u, a, bt, ct)
subroutine tnsr1_3d_nvnu_cpu(v, nv, nu, a, bt, ct, nelv)
subroutine tnsr3d_el_n13_cpu(v, u, a, bt, ct)
subroutine, public tnsr3d_cpu(v, nv, u, nu, a, bt, ct, nelv)
subroutine tnsr3d_el_n3_cpu(v, u, a, bt, ct)
subroutine tnsr3d_nu2nv4_cpu(v, u, a, bt, ct, nelv)
subroutine tnsr3d_nvnu_cpu(v, nv, u, nu, a, bt, ct, nelv)
subroutine tnsr3d_el_n7_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_n11_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_1_nu_cpu(v, u, nu, a, bt, ct)
subroutine tnsr3d_el_n9_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_n6_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_n2_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_n12_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_1_4_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_n4_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_1_10_cpu(v, u, a, bt, ct)
subroutine tnsr1_3d_nu4nv2_cpu(v, a, bt, ct, nelv)
subroutine, public tnsr2d_el_cpu(v, nv, u, nu, a, bt)
subroutine, public tnsr1_3d_cpu(v, nv, nu, a, bt, ct, nelv)
subroutine tnsr3d_nu4_cpu(v, nv, u, a, bt, ct, nelv)
subroutine, public tnsr3d_el_cpu(v, nv, u, nu, a, bt, ct)
subroutine tnsr3d_el_n_cpu(v, u, a, bt, ct, n)
subroutine tnsr3d_el_nvnu_cpu(v, nv, u, nu, a, bt, ct)
subroutine tnsr3d_el_n14_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_n10_cpu(v, u, a, bt, ct)
subroutine tnsr3d_el_n8_cpu(v, u, a, bt, ct)