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), u(nu*nu*nu)
133 real(kind=
rp),
intent(inout) :: a(1,nu),bt(nu, 1),ct(nu,1)
134 real(kind=
rp) :: work(nu**2), work2(nu)
136 integer :: i, j, k, l, nunu
143 tmp = tmp + a(1,k) * u(k + nu * (j - 1))
151 jj = k + nu * (i - 1)
152 tmp = tmp + work(jj) * bt(k,1)
159 tmp = tmp + work2(k) * ct(k, 1)
166 integer,
parameter :: n = 4
167 integer,
parameter :: nn = n**2
168 real(kind=
rp),
intent(inout) :: v(1), u(n*n*n)
169 real(kind=
rp),
intent(inout) :: a(1,n), bt(n,1), ct(n,1)
170 real(kind=
rp) :: work(n**2), work2(n)
175 work(j) = a(1,1) * u(1 + n * (j - 1)) &
176 + a(1,2) * u(2 + n * (j - 1)) &
177 + a(1,3) * u(3 + n * (j - 1)) &
178 + a(1,4) * u(4 + n * (j - 1))
182 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
183 + work(2 + n * (i - 1)) * bt(2,1) &
184 + work(3 + n * (i - 1)) * bt(3,1) &
185 + work(4 + n * (i - 1)) * bt(4,1)
188 v(1) = work2(1) * ct(1, 1) &
189 + work2(2) * ct(2, 1) &
190 + work2(3) * ct(3, 1) &
191 + work2(4) * ct(4, 1)
196 integer,
parameter :: n = 6
197 integer,
parameter :: nn = n**2
198 real(kind=
rp),
intent(inout) :: v(1), u(n*n*n)
199 real(kind=
rp),
intent(inout) :: a(1,n), bt(n,1), ct(n,1)
200 real(kind=
rp) :: work(n**2), work2(n)
205 work(j) = a(1,1) * u(1 + n * (j - 1)) &
206 + a(1,2) * u(2 + n * (j - 1)) &
207 + a(1,3) * u(3 + n * (j - 1)) &
208 + a(1,4) * u(4 + n * (j - 1)) &
209 + a(1,5) * u(5 + n * (j - 1)) &
210 + a(1,6) * u(6 + n * (j - 1))
214 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
215 + work(2 + n * (i - 1)) * bt(2,1) &
216 + work(3 + n * (i - 1)) * bt(3,1) &
217 + work(4 + n * (i - 1)) * bt(4,1) &
218 + work(5 + n * (i - 1)) * bt(5,1) &
219 + work(6 + n * (i - 1)) * bt(6,1)
222 v(1) = work2(1) * ct(1, 1) &
223 + work2(2) * ct(2, 1) &
224 + work2(3) * ct(3, 1) &
225 + work2(4) * ct(4, 1) &
226 + work2(5) * ct(5, 1) &
227 + work2(6) * ct(6, 1)
232 integer,
parameter :: n = 8
233 integer,
parameter :: nn = n**2
234 real(kind=
rp),
intent(inout) :: v(1), u(n*n*n)
235 real(kind=
rp),
intent(inout) :: a(1,n), bt(n,1), ct(n,1)
236 real(kind=
rp) :: work(n**2), work2(n)
241 work(j) = a(1,1) * u(1 + n * (j - 1)) &
242 + a(1,2) * u(2 + n * (j - 1)) &
243 + a(1,3) * u(3 + n * (j - 1)) &
244 + a(1,4) * u(4 + n * (j - 1)) &
245 + a(1,5) * u(5 + n * (j - 1)) &
246 + a(1,6) * u(6 + n * (j - 1)) &
247 + a(1,7) * u(7 + n * (j - 1)) &
248 + a(1,8) * u(8 + n * (j - 1))
252 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
253 + work(2 + n * (i - 1)) * bt(2,1) &
254 + work(3 + n * (i - 1)) * bt(3,1) &
255 + work(4 + n * (i - 1)) * bt(4,1) &
256 + work(5 + n * (i - 1)) * bt(5,1) &
257 + work(6 + n * (i - 1)) * bt(6,1) &
258 + work(7 + n * (i - 1)) * bt(7,1) &
259 + work(8 + n * (i - 1)) * bt(8,1)
262 v(1) = work2(1) * ct(1, 1) &
263 + work2(2) * ct(2, 1) &
264 + work2(3) * ct(3, 1) &
265 + work2(4) * ct(4, 1) &
266 + work2(5) * ct(5, 1) &
267 + work2(6) * ct(6, 1) &
268 + work2(7) * ct(7, 1) &
269 + work2(8) * ct(8, 1)
276 integer,
parameter :: n = 10
277 integer,
parameter :: nn = n**2
278 real(kind=
rp),
intent(inout) :: v(1), u(n*n*n)
279 real(kind=
rp),
intent(inout) :: a(1,n), bt(n,1), ct(n,1)
280 real(kind=
rp) :: work(n**2), work2(n)
285 work(j) = a(1,1) * u(1 + n * (j - 1)) &
286 + a(1,2) * u(2 + n * (j - 1)) &
287 + a(1,3) * u(3 + n * (j - 1)) &
288 + a(1,4) * u(4 + n * (j - 1)) &
289 + a(1,5) * u(5 + n * (j - 1)) &
290 + a(1,6) * u(6 + n * (j - 1)) &
291 + a(1,7) * u(7 + n * (j - 1)) &
292 + a(1,8) * u(8 + n * (j - 1)) &
293 + a(1,9) * u(9 + n * (j - 1)) &
294 + a(1,10) * u(10 + n * (j - 1))
298 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
299 + work(2 + n * (i - 1)) * bt(2,1) &
300 + work(3 + n * (i - 1)) * bt(3,1) &
301 + work(4 + n * (i - 1)) * bt(4,1) &
302 + work(5 + n * (i - 1)) * bt(5,1) &
303 + work(6 + n * (i - 1)) * bt(6,1) &
304 + work(7 + n * (i - 1)) * bt(7,1) &
305 + work(8 + n * (i - 1)) * bt(8,1) &
306 + work(9 + n * (i - 1)) * bt(9,1) &
307 + work(10 + n * (i - 1)) * bt(10,1)
310 v(1) = work2(1) * ct(1, 1) &
311 + work2(2) * ct(2, 1) &
312 + work2(3) * ct(3, 1) &
313 + work2(4) * ct(4, 1) &
314 + work2(5) * ct(5, 1) &
315 + work2(6) * ct(6, 1) &
316 + work2(7) * ct(7, 1) &
317 + work2(8) * ct(8, 1) &
318 + work2(9) * ct(9, 1) &
319 + work2(10) * ct(10, 1)
325 integer,
parameter :: n = 12
326 integer,
parameter :: nn = n**2
327 real(kind=
rp),
intent(inout) :: v(1), u(n*n*n)
328 real(kind=
rp),
intent(inout) :: a(1,n), bt(n,1), ct(n,1)
329 real(kind=
rp) :: work(n**2), work2(n)
334 work(j) = a(1,1) * u(1 + n * (j - 1)) &
335 + a(1,2) * u(2 + n * (j - 1)) &
336 + a(1,3) * u(3 + n * (j - 1)) &
337 + a(1,4) * u(4 + n * (j - 1)) &
338 + a(1,5) * u(5 + n * (j - 1)) &
339 + a(1,6) * u(6 + n * (j - 1)) &
340 + a(1,7) * u(7 + n * (j - 1)) &
341 + a(1,8) * u(8 + n * (j - 1)) &
342 + a(1,9) * u(9 + n * (j - 1)) &
343 + a(1,10) * u(10 + n * (j - 1)) &
344 + a(1,11) * u(11 + n * (j - 1)) &
345 + a(1,12) * u(12 + n * (j - 1))
349 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
350 + work(2 + n * (i - 1)) * bt(2,1) &
351 + work(3 + n * (i - 1)) * bt(3,1) &
352 + work(4 + n * (i - 1)) * bt(4,1) &
353 + work(5 + n * (i - 1)) * bt(5,1) &
354 + work(6 + n * (i - 1)) * bt(6,1) &
355 + work(7 + n * (i - 1)) * bt(7,1) &
356 + work(8 + n * (i - 1)) * bt(8,1) &
357 + work(9 + n * (i - 1)) * bt(9,1) &
358 + work(10 + n * (i - 1)) * bt(10,1) &
359 + work(11 + n * (i - 1)) * bt(11,1) &
360 + work(12 + n * (i - 1)) * bt(12,1)
363 v(1) = work2(1) * ct(1, 1) &
364 + work2(2) * ct(2, 1) &
365 + work2(3) * ct(3, 1) &
366 + work2(4) * ct(4, 1) &
367 + work2(5) * ct(5, 1) &
368 + work2(6) * ct(6, 1) &
369 + work2(7) * ct(7, 1) &
370 + work2(8) * ct(8, 1) &
371 + work2(9) * ct(9, 1) &
372 + work2(10) * ct(10, 1) &
373 + work2(11) * ct(11, 1) &
374 + work2(12) * ct(12, 1)
381 integer,
intent(in) :: n
382 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
383 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
384 real(kind=
rp) :: work(n**3), work2(n**3), tmp
385 integer :: i, j, l, k
386 integer :: ii, jj, nn
395 tmp = tmp + a(i,k) * u(k + n * (j - 1))
404 ii = l + n * (j - 1) + nn * (i - 1)
407 tmp = tmp + work(l + n * (k - 1) + nn * (i - 1)) * bt(k,j)
416 jj = i + nn * (j - 1)
419 tmp = tmp + work2(i + nn * (k - 1)) * ct(k, j)
428 integer,
parameter :: n = 14
429 integer,
parameter :: nn = n**2
430 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
431 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
432 real(kind=
rp) :: work(n**3), work2(n**3)
439 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
440 + a(i,2) * u(2 + n * (j - 1)) &
441 + a(i,3) * u(3 + n * (j - 1)) &
442 + a(i,4) * u(4 + n * (j - 1)) &
443 + a(i,5) * u(5 + n * (j - 1)) &
444 + a(i,6) * u(6 + n * (j - 1)) &
445 + a(i,7) * u(7 + n * (j - 1)) &
446 + a(i,8) * u(8 + n * (j - 1)) &
447 + a(i,9) * u(9 + n * (j - 1)) &
448 + a(i,10) * u(10 + n * (j - 1)) &
449 + a(i,11) * u(11 + n * (j - 1)) &
450 + a(i,12) * u(12 + n * (j - 1)) &
451 + a(i,13) * u(13 + n * (j - 1)) &
452 + a(i,14) * u(14 + n * (j - 1))
459 ii = l + n * (j - 1) + nn * (i - 1)
460 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
461 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
462 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
463 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
464 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
465 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
466 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
467 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
468 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
469 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
470 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j) &
471 + work(l + n * (12 - 1) + nn * (i - 1)) * bt(12,j) &
472 + work(l + n * (13 - 1) + nn * (i - 1)) * bt(13,j) &
473 + work(l + n * (14 - 1) + nn * (i - 1)) * bt(14,j)
480 jj = i + nn * (j - 1)
481 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
482 + work2(i + nn * (2 - 1)) * ct(2, j) &
483 + work2(i + nn * (3 - 1)) * ct(3, j) &
484 + work2(i + nn * (4 - 1)) * ct(4, j) &
485 + work2(i + nn * (5 - 1)) * ct(5, j) &
486 + work2(i + nn * (6 - 1)) * ct(6, j) &
487 + work2(i + nn * (7 - 1)) * ct(7, j) &
488 + work2(i + nn * (8 - 1)) * ct(8, j) &
489 + work2(i + nn * (9 - 1)) * ct(9, j) &
490 + work2(i + nn * (10 - 1)) * ct(10, j) &
491 + work2(i + nn * (11 - 1)) * ct(11, j) &
492 + work2(i + nn * (12 - 1)) * ct(12, j) &
493 + work2(i + nn * (13 - 1)) * ct(13, j) &
494 + work2(i + nn * (14 - 1)) * ct(14, j)
501 integer,
parameter :: n = 13
502 integer,
parameter :: nn = n**2
503 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
504 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
505 real(kind=
rp) :: work(n**3), work2(n**3)
512 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
513 + a(i,2) * u(2 + n * (j - 1)) &
514 + a(i,3) * u(3 + n * (j - 1)) &
515 + a(i,4) * u(4 + n * (j - 1)) &
516 + a(i,5) * u(5 + n * (j - 1)) &
517 + a(i,6) * u(6 + n * (j - 1)) &
518 + a(i,7) * u(7 + n * (j - 1)) &
519 + a(i,8) * u(8 + n * (j - 1)) &
520 + a(i,9) * u(9 + n * (j - 1)) &
521 + a(i,10) * u(10 + n * (j - 1)) &
522 + a(i,11) * u(11 + n * (j - 1)) &
523 + a(i,12) * u(12 + n * (j - 1)) &
524 + a(i,13) * u(13 + n * (j - 1))
531 ii = l + n * (j - 1) + nn * (i - 1)
532 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
533 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
534 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
535 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
536 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
537 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
538 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
539 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
540 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
541 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
542 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j) &
543 + work(l + n * (12 - 1) + nn * (i - 1)) * bt(12,j) &
544 + work(l + n * (13 - 1) + nn * (i - 1)) * bt(13,j)
551 jj = i + nn * (j - 1)
552 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
553 + work2(i + nn * (2 - 1)) * ct(2, j) &
554 + work2(i + nn * (3 - 1)) * ct(3, j) &
555 + work2(i + nn * (4 - 1)) * ct(4, j) &
556 + work2(i + nn * (5 - 1)) * ct(5, j) &
557 + work2(i + nn * (6 - 1)) * ct(6, j) &
558 + work2(i + nn * (7 - 1)) * ct(7, j) &
559 + work2(i + nn * (8 - 1)) * ct(8, j) &
560 + work2(i + nn * (9 - 1)) * ct(9, j) &
561 + work2(i + nn * (10 - 1)) * ct(10, j) &
562 + work2(i + nn * (11 - 1)) * ct(11, j) &
563 + work2(i + nn * (12 - 1)) * ct(12, j) &
564 + work2(i + nn * (13 - 1)) * ct(13, j)
571 integer,
parameter :: n = 12
572 integer,
parameter :: nn = n**2
573 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
574 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
575 real(kind=
rp) :: work(n**3), work2(n**3)
582 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
583 + a(i,2) * u(2 + n * (j - 1)) &
584 + a(i,3) * u(3 + n * (j - 1)) &
585 + a(i,4) * u(4 + n * (j - 1)) &
586 + a(i,5) * u(5 + n * (j - 1)) &
587 + a(i,6) * u(6 + n * (j - 1)) &
588 + a(i,7) * u(7 + n * (j - 1)) &
589 + a(i,8) * u(8 + n * (j - 1)) &
590 + a(i,9) * u(9 + n * (j - 1)) &
591 + a(i,10) * u(10 + n * (j - 1)) &
592 + a(i,11) * u(11 + n * (j - 1)) &
593 + a(i,12) * u(12 + n * (j - 1))
600 ii = l + n * (j - 1) + nn * (i - 1)
601 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
602 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
603 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
604 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
605 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
606 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
607 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
608 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
609 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
610 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
611 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j) &
612 + work(l + n * (12 - 1) + nn * (i - 1)) * bt(12,j)
619 jj = i + nn * (j - 1)
620 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
621 + work2(i + nn * (2 - 1)) * ct(2, j) &
622 + work2(i + nn * (3 - 1)) * ct(3, j) &
623 + work2(i + nn * (4 - 1)) * ct(4, j) &
624 + work2(i + nn * (5 - 1)) * ct(5, j) &
625 + work2(i + nn * (6 - 1)) * ct(6, j) &
626 + work2(i + nn * (7 - 1)) * ct(7, j) &
627 + work2(i + nn * (8 - 1)) * ct(8, j) &
628 + work2(i + nn * (9 - 1)) * ct(9, j) &
629 + work2(i + nn * (10 - 1)) * ct(10, j) &
630 + work2(i + nn * (11 - 1)) * ct(11, j) &
631 + work2(i + nn * (12 - 1)) * ct(12, j)
638 integer,
parameter :: n = 11
639 integer,
parameter :: nn = n**2
640 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
641 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
642 real(kind=
rp) :: work(n**3), work2(n**3)
649 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
650 + a(i,2) * u(2 + n * (j - 1)) &
651 + a(i,3) * u(3 + n * (j - 1)) &
652 + a(i,4) * u(4 + n * (j - 1)) &
653 + a(i,5) * u(5 + n * (j - 1)) &
654 + a(i,6) * u(6 + n * (j - 1)) &
655 + a(i,7) * u(7 + n * (j - 1)) &
656 + a(i,8) * u(8 + n * (j - 1)) &
657 + a(i,9) * u(9 + n * (j - 1)) &
658 + a(i,10) * u(10 + n * (j - 1)) &
659 + a(i,11) * u(11 + n * (j - 1))
666 ii = l + n * (j - 1) + nn * (i - 1)
667 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
668 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
669 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
670 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
671 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
672 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
673 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
674 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
675 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
676 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
677 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j)
684 jj = i + nn * (j - 1)
685 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
686 + work2(i + nn * (2 - 1)) * ct(2, j) &
687 + work2(i + nn * (3 - 1)) * ct(3, j) &
688 + work2(i + nn * (4 - 1)) * ct(4, j) &
689 + work2(i + nn * (5 - 1)) * ct(5, j) &
690 + work2(i + nn * (6 - 1)) * ct(6, j) &
691 + work2(i + nn * (7 - 1)) * ct(7, j) &
692 + work2(i + nn * (8 - 1)) * ct(8, j) &
693 + work2(i + nn * (9 - 1)) * ct(9, j) &
694 + work2(i + nn * (10 - 1)) * ct(10, j) &
695 + work2(i + nn * (11 - 1)) * ct(11, j)
702 integer,
parameter :: n = 10
703 integer,
parameter :: nn = n**2
704 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
705 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
706 real(kind=
rp) :: work(n**3), work2(n**3)
713 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
714 + a(i,2) * u(2 + n * (j - 1)) &
715 + a(i,3) * u(3 + n * (j - 1)) &
716 + a(i,4) * u(4 + n * (j - 1)) &
717 + a(i,5) * u(5 + n * (j - 1)) &
718 + a(i,6) * u(6 + n * (j - 1)) &
719 + a(i,7) * u(7 + n * (j - 1)) &
720 + a(i,8) * u(8 + n * (j - 1)) &
721 + a(i,9) * u(9 + n * (j - 1)) &
722 + a(i,10) * u(10 + n * (j - 1))
729 ii = l + n * (j - 1) + nn * (i - 1)
730 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
731 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
732 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
733 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
734 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
735 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
736 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
737 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
738 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
739 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j)
746 jj = i + nn * (j - 1)
747 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
748 + work2(i + nn * (2 - 1)) * ct(2, j) &
749 + work2(i + nn * (3 - 1)) * ct(3, j) &
750 + work2(i + nn * (4 - 1)) * ct(4, j) &
751 + work2(i + nn * (5 - 1)) * ct(5, j) &
752 + work2(i + nn * (6 - 1)) * ct(6, j) &
753 + work2(i + nn * (7 - 1)) * ct(7, j) &
754 + work2(i + nn * (8 - 1)) * ct(8, j) &
755 + work2(i + nn * (9 - 1)) * ct(9, j) &
756 + work2(i + nn * (10 - 1)) * ct(10, j)
763 integer,
parameter :: n = 9
764 integer,
parameter :: nn = n**2
765 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
766 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
767 real(kind=
rp) :: work(n**3), work2(n**3)
774 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
775 + a(i,2) * u(2 + n * (j - 1)) &
776 + a(i,3) * u(3 + n * (j - 1)) &
777 + a(i,4) * u(4 + n * (j - 1)) &
778 + a(i,5) * u(5 + n * (j - 1)) &
779 + a(i,6) * u(6 + n * (j - 1)) &
780 + a(i,7) * u(7 + n * (j - 1)) &
781 + a(i,8) * u(8 + n * (j - 1)) &
782 + a(i,9) * u(9 + n * (j - 1))
789 ii = l + n * (j - 1) + nn * (i - 1)
790 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
791 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
792 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
793 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
794 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
795 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
796 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
797 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
798 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j)
805 jj = i + nn * (j - 1)
806 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
807 + work2(i + nn * (2 - 1)) * ct(2, j) &
808 + work2(i + nn * (3 - 1)) * ct(3, j) &
809 + work2(i + nn * (4 - 1)) * ct(4, j) &
810 + work2(i + nn * (5 - 1)) * ct(5, j) &
811 + work2(i + nn * (6 - 1)) * ct(6, j) &
812 + work2(i + nn * (7 - 1)) * ct(7, j) &
813 + work2(i + nn * (8 - 1)) * ct(8, j) &
814 + work2(i + nn * (9 - 1)) * ct(9, j)
821 integer,
parameter :: n = 8
822 integer,
parameter :: nn = n**2
823 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
824 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
825 real(kind=
rp) :: work(n**3), work2(n**3)
832 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
833 + a(i,2) * u(2 + n * (j - 1)) &
834 + a(i,3) * u(3 + n * (j - 1)) &
835 + a(i,4) * u(4 + n * (j - 1)) &
836 + a(i,5) * u(5 + n * (j - 1)) &
837 + a(i,6) * u(6 + n * (j - 1)) &
838 + a(i,7) * u(7 + n * (j - 1)) &
839 + a(i,8) * u(8 + n * (j - 1))
846 ii = l + n * (j - 1) + nn * (i - 1)
847 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
848 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
849 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
850 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
851 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
852 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
853 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
854 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j)
861 jj = i + nn * (j - 1)
862 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
863 + work2(i + nn * (2 - 1)) * ct(2, j) &
864 + work2(i + nn * (3 - 1)) * ct(3, j) &
865 + work2(i + nn * (4 - 1)) * ct(4, j) &
866 + work2(i + nn * (5 - 1)) * ct(5, j) &
867 + work2(i + nn * (6 - 1)) * ct(6, j) &
868 + work2(i + nn * (7 - 1)) * ct(7, j) &
869 + work2(i + nn * (8 - 1)) * ct(8, j)
876 integer,
parameter :: n = 7
877 integer,
parameter :: nn = n**2
878 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
879 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
880 real(kind=
rp) :: work(n**3), work2(n**3)
887 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
888 + a(i,2) * u(2 + n * (j - 1)) &
889 + a(i,3) * u(3 + n * (j - 1)) &
890 + a(i,4) * u(4 + n * (j - 1)) &
891 + a(i,5) * u(5 + n * (j - 1)) &
892 + a(i,6) * u(6 + n * (j - 1)) &
893 + a(i,7) * u(7 + n * (j - 1))
900 ii = l + n * (j - 1) + nn * (i - 1)
901 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
902 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
903 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
904 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
905 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
906 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
907 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j)
914 jj = i + nn * (j - 1)
915 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
916 + work2(i + nn * (2 - 1)) * ct(2, j) &
917 + work2(i + nn * (3 - 1)) * ct(3, j) &
918 + work2(i + nn * (4 - 1)) * ct(4, j) &
919 + work2(i + nn * (5 - 1)) * ct(5, j) &
920 + work2(i + nn * (6 - 1)) * ct(6, j) &
921 + work2(i + nn * (7 - 1)) * ct(7, j)
928 integer,
parameter :: n = 6
929 integer,
parameter :: nn = n**2
930 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
931 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
932 real(kind=
rp) :: work(n**3), work2(n**3)
939 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
940 + a(i,2) * u(2 + n * (j - 1)) &
941 + a(i,3) * u(3 + n * (j - 1)) &
942 + a(i,4) * u(4 + n * (j - 1)) &
943 + a(i,5) * u(5 + n * (j - 1)) &
944 + a(i,6) * u(6 + n * (j - 1))
951 ii = l + n * (j - 1) + nn * (i - 1)
952 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
953 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
954 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
955 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
956 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
957 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j)
964 jj = i + nn * (j - 1)
965 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
966 + work2(i + nn * (2 - 1)) * ct(2, j) &
967 + work2(i + nn * (3 - 1)) * ct(3, j) &
968 + work2(i + nn * (4 - 1)) * ct(4, j) &
969 + work2(i + nn * (5 - 1)) * ct(5, j) &
970 + work2(i + nn * (6 - 1)) * ct(6, j)
977 integer,
parameter :: n = 5
978 integer,
parameter :: nn = n**2
979 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
980 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
981 real(kind=
rp) :: work(n**3), work2(n**3)
988 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
989 + a(i,2) * u(2 + n * (j - 1)) &
990 + a(i,3) * u(3 + n * (j - 1)) &
991 + a(i,4) * u(4 + n * (j - 1)) &
992 + a(i,5) * u(5 + n * (j - 1))
999 ii = l + n * (j - 1) + nn * (i - 1)
1000 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1001 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
1002 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
1003 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
1004 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j)
1011 jj = i + nn * (j - 1)
1012 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1013 + work2(i + nn * (2 - 1)) * ct(2, j) &
1014 + work2(i + nn * (3 - 1)) * ct(3, j) &
1015 + work2(i + nn * (4 - 1)) * ct(4, j) &
1016 + work2(i + nn * (5 - 1)) * ct(5, j)
1023 integer,
parameter :: n = 4
1024 integer,
parameter :: nn = n**2
1025 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
1026 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
1027 real(kind=
rp) :: work(n**3), work2(n**3)
1033 ii = i + n * (j - 1)
1034 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
1035 + a(i,2) * u(2 + n * (j - 1)) &
1036 + a(i,3) * u(3 + n * (j - 1)) &
1037 + a(i,4) * u(4 + n * (j - 1))
1044 ii = l + n * (j - 1) + nn * (i - 1)
1045 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1046 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
1047 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
1048 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j)
1055 jj = i + nn * (j - 1)
1056 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1057 + work2(i + nn * (2 - 1)) * ct(2, j) &
1058 + work2(i + nn * (3 - 1)) * ct(3, j) &
1059 + work2(i + nn * (4 - 1)) * ct(4, j)
1066 integer,
parameter :: n = 3
1067 integer,
parameter :: nn = n**2
1068 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
1069 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
1070 real(kind=
rp) :: work(n**3), work2(n**3)
1076 ii = i + n * (j - 1)
1077 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
1078 + a(i,2) * u(2 + n * (j - 1)) &
1079 + a(i,3) * u(3 + n * (j - 1))
1086 ii = l + n * (j - 1) + nn * (i - 1)
1087 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1088 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
1089 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j)
1096 jj = i + nn * (j - 1)
1097 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1098 + work2(i + nn * (2 - 1)) * ct(2, j) &
1099 + work2(i + nn * (3 - 1)) * ct(3, j)
1106 integer,
parameter :: n = 2
1107 integer,
parameter :: nn = n**2
1108 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
1109 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
1110 real(kind=
rp) :: work(n**3), work2(n**3)
1116 ii = i + n * (j - 1)
1117 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
1118 + a(i,2) * u(2 + n * (j - 1))
1125 ii = l + n * (j - 1) + nn * (i - 1)
1126 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1127 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j)
1134 jj = i + nn * (j - 1)
1135 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1136 + work2(i + nn * (2 - 1)) * ct(2, j)
1143 integer,
intent(in) :: nv, nu, nelv
1144 real(kind=
rp),
intent(inout) :: v(nv*nv*nv,nelv)
1145 real(kind=
rp),
intent(in) :: u(nu*nu*nu,nelv)
1146 real(kind=
rp),
intent(in) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1148 if (nu .eq. 2 .and. nv .eq. 4)
then
1150 else if (nu .eq. 4)
then
1159 integer,
intent(in) :: nv, nu, nelv
1160 real(kind=
rp),
intent(inout) :: v(nv*nv*nv,nelv)
1161 real(kind=
rp),
intent(in) :: u(nu*nu*nu,nelv)
1162 real(kind=
rp),
intent(in) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1163 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2), tmp
1164 integer :: ie, i, j, k, l, ii, jj
1165 integer :: nunu, nvnu, nvnv
1174 ii = i + nv * (j - 1)
1177 tmp = tmp + a(i,k) * u(k + nu * (j - 1), ie)
1186 ii = l + nv * (j - 1) + nvnv * (i - 1)
1189 jj = l + nv * (k - 1) + nvnu * (i - 1)
1190 tmp = tmp + work(jj) * bt(k,j)
1199 jj = i + nvnv * (j - 1)
1202 ii = i + nvnv * (k - 1)
1203 tmp = tmp + work2(ii) * ct(k, j)
1213 integer,
parameter :: nu = 2
1214 integer,
parameter :: nv = 4
1215 integer,
parameter :: nunu = 4
1216 integer,
parameter :: nvnu = 8
1217 integer,
parameter :: nvnv = 16
1218 integer,
intent(in) :: nelv
1219 real(kind=
rp),
intent(inout) :: v(nv*nv*nv,nelv)
1220 real(kind=
rp),
intent(in) :: u(nu*nu*nu,nelv)
1221 real(kind=
rp),
intent(in) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1222 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2), tmp
1223 integer :: ie, i, j, k, l, ii, jj
1228 ii = i + nv * (j - 1)
1229 work(ii) = a(i,1) * u(1 + nu * (j - 1), ie) &
1230 + a(i,2) * u(2 + nu * (j - 1), ie)
1237 ii = l + nv * (j - 1) + nvnv * (i - 1)
1240 jj = l + nv * (k - 1) + nvnu * (i - 1)
1241 tmp = tmp + work(jj) * bt(k,j)
1250 jj = i + nvnv * (j - 1)
1251 v(jj, ie) = work2(i + nvnv * (1 - 1)) * ct(1, j) &
1252 + work2(i + nvnv * (2 - 1)) * ct(2, j)
1260 integer,
parameter :: nu = 4
1261 integer,
parameter :: nunu = 16
1262 integer,
intent(in) :: nv, nelv
1263 real(kind=
rp),
intent(inout) :: v(nv*nv*nv,nelv)
1264 real(kind=
rp),
intent(in) :: u(nu*nu*nu,nelv)
1265 real(kind=
rp),
intent(in) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1266 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2), tmp
1267 integer :: ie, i, j, k, l, ii, jj
1268 integer :: nvnu, nvnv
1276 ii = i + nv * (j - 1)
1277 work(ii) = a(i,1) * u(1 + nu * (j - 1), ie) &
1278 + a(i,2) * u(2 + nu * (j - 1), ie) &
1279 + a(i,3) * u(3 + nu * (j - 1), ie) &
1280 + a(i,4) * u(4 + nu * (j - 1), ie)
1287 ii = l + nv * (j - 1) + nvnv * (i - 1)
1290 jj = l + nv * (k - 1) + nvnu * (i - 1)
1291 tmp = tmp + work(jj) * bt(k,j)
1300 jj = i + nvnv * (j - 1)
1301 v(jj, ie) = work2(i + nvnv * (1 - 1)) * ct(1, j) &
1302 + work2(i + nvnv * (2 - 1)) * ct(2, j) &
1303 + work2(i + nvnv * (3 - 1)) * ct(3, j) &
1304 + work2(i + nvnv * (4 - 1)) * ct(4, j)
1312 integer,
intent(in) :: nv, nu, nelv
1313 real(kind=
rp),
intent(inout) :: v(nv*nv*nv*nelv)
1314 real(kind=
rp),
intent(inout) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1316 if (nu .eq. 4 .and. nv .eq. 2)
then
1325 integer,
intent(in) :: nv, nu, nelv
1326 real(kind=
rp),
intent(inout) :: v(nv*nv*nv*nelv)
1327 real(kind=
rp),
intent(inout) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1328 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2)
1329 integer :: e, e0, ee, es, iu, iv, nu3, nv3
1330 integer :: i, j, k, l, ii, jj, kk
1331 integer :: nunu, nvnu, nvnv
1332 real(kind=
rp) :: tmp
1357 ii = i + nv * (j - 1)
1360 kk = k + nu * (j - 1) + iu
1361 tmp = tmp + a(i,k) * v(kk)
1370 ii = l + nv * (j - 1) + nvnv * (i - 1)
1373 jj = l + nv * (k - 1) + nvnu * (i - 1)
1374 tmp = tmp + work(jj) * bt(k,j)
1383 jj = i + nvnv * (j - 1) + iv
1386 ii = i + nvnv * (k - 1)
1387 tmp = tmp + work2(ii) * ct(k, j)
1397 integer,
parameter :: nu = 4
1398 integer,
parameter :: nv = 2
1399 integer,
parameter :: nunu = 16
1400 integer,
parameter :: nvnu = 8
1401 integer,
parameter :: nvnv = 4
1402 integer,
parameter :: nununu = 64
1403 integer,
parameter :: nvnvnv = 8
1404 integer,
intent(in) :: nelv
1405 real(kind=
rp),
intent(inout) :: v(nv*nv*nv*nelv)
1406 real(kind=
rp),
intent(inout) :: a(nv,nu), bt(nu, nv), ct(nu,nv)
1407 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2)
1408 integer :: e, iu, iv
1409 integer :: i, j, k, l, ii, jj
1410 real(kind=
rp) :: tmp
1418 ii = i + nv * (j - 1)
1419 work(ii) = a(i,1) * v(1 + nu * (j - 1) + iu) &
1420 + a(i,2) * v(2 + nu * (j - 1) + iu) &
1421 + a(i,3) * v(3 + nu * (j - 1) + iu) &
1422 + a(i,4) * v(4 + nu * (j - 1) + iu)
1429 ii = l + nv * (j - 1) + nvnv * (i - 1)
1432 jj = l + nv * (k - 1) + nvnu * (i - 1)
1433 tmp = tmp + work(jj) * bt(k,j)
1442 jj = i + nvnv * (j - 1) + iv
1443 v(jj) = work2(i + nvnv * (1 - 1)) * ct(1, j) &
1444 + work2(i + nvnv * (2 - 1)) * ct(2, j) &
1445 + work2(i + nvnv * (3 - 1)) * ct(3, j) &
1446 + 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)