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, 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)
176 work(j) = a(1,1) * u(1 + n * (j - 1)) &
177 + a(1,2) * u(2 + n * (j - 1)) &
178 + a(1,3) * u(3 + n * (j - 1)) &
179 + a(1,4) * u(4 + n * (j - 1))
183 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
184 + work(2 + n * (i - 1)) * bt(2,1) &
185 + work(3 + n * (i - 1)) * bt(3,1) &
186 + work(4 + n * (i - 1)) * bt(4,1)
189 v(1) = work2(1) * ct(1, 1) &
190 + work2(2) * ct(2, 1) &
191 + work2(3) * ct(3, 1) &
192 + work2(4) * ct(4, 1)
197 integer,
parameter :: n = 6
198 integer,
parameter :: nn = n**2
199 real(kind=
rp),
intent(inout) :: v(1)
200 real(kind=
rp),
intent(in) :: u(n*n*n)
201 real(kind=
rp),
intent(in) :: a(1,n), bt(n,1), ct(n,1)
202 real(kind=
rp) :: work(n**2), work2(n)
206 work(j) = a(1,1) * u(1 + n * (j - 1)) &
207 + a(1,2) * u(2 + n * (j - 1)) &
208 + a(1,3) * u(3 + n * (j - 1)) &
209 + a(1,4) * u(4 + n * (j - 1)) &
210 + a(1,5) * u(5 + n * (j - 1)) &
211 + a(1,6) * u(6 + n * (j - 1))
215 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
216 + work(2 + n * (i - 1)) * bt(2,1) &
217 + work(3 + n * (i - 1)) * bt(3,1) &
218 + work(4 + n * (i - 1)) * bt(4,1) &
219 + work(5 + n * (i - 1)) * bt(5,1) &
220 + work(6 + n * (i - 1)) * bt(6,1)
223 v(1) = work2(1) * ct(1, 1) &
224 + work2(2) * ct(2, 1) &
225 + work2(3) * ct(3, 1) &
226 + work2(4) * ct(4, 1) &
227 + work2(5) * ct(5, 1) &
228 + work2(6) * ct(6, 1)
233 integer,
parameter :: n = 8
234 integer,
parameter :: nn = n**2
235 real(kind=
rp),
intent(inout) :: v(1)
236 real(kind=
rp),
intent(in) :: u(n*n*n)
237 real(kind=
rp),
intent(in) :: a(1,n), bt(n,1), ct(n,1)
238 real(kind=
rp) :: work(n**2), work2(n)
242 work(j) = a(1,1) * u(1 + n * (j - 1)) &
243 + a(1,2) * u(2 + n * (j - 1)) &
244 + a(1,3) * u(3 + n * (j - 1)) &
245 + a(1,4) * u(4 + n * (j - 1)) &
246 + a(1,5) * u(5 + n * (j - 1)) &
247 + a(1,6) * u(6 + n * (j - 1)) &
248 + a(1,7) * u(7 + n * (j - 1)) &
249 + a(1,8) * u(8 + n * (j - 1))
253 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
254 + work(2 + n * (i - 1)) * bt(2,1) &
255 + work(3 + n * (i - 1)) * bt(3,1) &
256 + work(4 + n * (i - 1)) * bt(4,1) &
257 + work(5 + n * (i - 1)) * bt(5,1) &
258 + work(6 + n * (i - 1)) * bt(6,1) &
259 + work(7 + n * (i - 1)) * bt(7,1) &
260 + work(8 + n * (i - 1)) * bt(8,1)
263 v(1) = work2(1) * ct(1, 1) &
264 + work2(2) * ct(2, 1) &
265 + work2(3) * ct(3, 1) &
266 + work2(4) * ct(4, 1) &
267 + work2(5) * ct(5, 1) &
268 + work2(6) * ct(6, 1) &
269 + work2(7) * ct(7, 1) &
270 + work2(8) * ct(8, 1)
277 integer,
parameter :: n = 10
278 integer,
parameter :: nn = n**2
279 real(kind=
rp),
intent(inout) :: v(1)
280 real(kind=
rp),
intent(in) :: u(n*n*n)
281 real(kind=
rp),
intent(in) :: a(1,n), bt(n,1), ct(n,1)
282 real(kind=
rp) :: work(n**2), work2(n)
286 work(j) = a(1,1) * u(1 + n * (j - 1)) &
287 + a(1,2) * u(2 + n * (j - 1)) &
288 + a(1,3) * u(3 + n * (j - 1)) &
289 + a(1,4) * u(4 + n * (j - 1)) &
290 + a(1,5) * u(5 + n * (j - 1)) &
291 + a(1,6) * u(6 + n * (j - 1)) &
292 + a(1,7) * u(7 + n * (j - 1)) &
293 + a(1,8) * u(8 + n * (j - 1)) &
294 + a(1,9) * u(9 + n * (j - 1)) &
295 + a(1,10) * u(10 + n * (j - 1))
299 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
300 + work(2 + n * (i - 1)) * bt(2,1) &
301 + work(3 + n * (i - 1)) * bt(3,1) &
302 + work(4 + n * (i - 1)) * bt(4,1) &
303 + work(5 + n * (i - 1)) * bt(5,1) &
304 + work(6 + n * (i - 1)) * bt(6,1) &
305 + work(7 + n * (i - 1)) * bt(7,1) &
306 + work(8 + n * (i - 1)) * bt(8,1) &
307 + work(9 + n * (i - 1)) * bt(9,1) &
308 + work(10 + n * (i - 1)) * bt(10,1)
311 v(1) = work2(1) * ct(1, 1) &
312 + work2(2) * ct(2, 1) &
313 + work2(3) * ct(3, 1) &
314 + work2(4) * ct(4, 1) &
315 + work2(5) * ct(5, 1) &
316 + work2(6) * ct(6, 1) &
317 + work2(7) * ct(7, 1) &
318 + work2(8) * ct(8, 1) &
319 + work2(9) * ct(9, 1) &
320 + work2(10) * ct(10, 1)
326 integer,
parameter :: n = 12
327 integer,
parameter :: nn = n**2
328 real(kind=
rp),
intent(inout) :: v(1)
329 real(kind=
rp),
intent(in) :: u(n*n*n)
330 real(kind=
rp),
intent(in) :: a(1,n), bt(n,1), ct(n,1)
331 real(kind=
rp) :: work(n**2), work2(n)
335 work(j) = a(1,1) * u(1 + n * (j - 1)) &
336 + a(1,2) * u(2 + n * (j - 1)) &
337 + a(1,3) * u(3 + n * (j - 1)) &
338 + a(1,4) * u(4 + n * (j - 1)) &
339 + a(1,5) * u(5 + n * (j - 1)) &
340 + a(1,6) * u(6 + n * (j - 1)) &
341 + a(1,7) * u(7 + n * (j - 1)) &
342 + a(1,8) * u(8 + n * (j - 1)) &
343 + a(1,9) * u(9 + n * (j - 1)) &
344 + a(1,10) * u(10 + n * (j - 1)) &
345 + a(1,11) * u(11 + n * (j - 1)) &
346 + a(1,12) * u(12 + n * (j - 1))
350 work2(i) = work(1 + n * (i - 1)) * bt(1,1) &
351 + work(2 + n * (i - 1)) * bt(2,1) &
352 + work(3 + n * (i - 1)) * bt(3,1) &
353 + work(4 + n * (i - 1)) * bt(4,1) &
354 + work(5 + n * (i - 1)) * bt(5,1) &
355 + work(6 + n * (i - 1)) * bt(6,1) &
356 + work(7 + n * (i - 1)) * bt(7,1) &
357 + work(8 + n * (i - 1)) * bt(8,1) &
358 + work(9 + n * (i - 1)) * bt(9,1) &
359 + work(10 + n * (i - 1)) * bt(10,1) &
360 + work(11 + n * (i - 1)) * bt(11,1) &
361 + work(12 + n * (i - 1)) * bt(12,1)
364 v(1) = work2(1) * ct(1, 1) &
365 + work2(2) * ct(2, 1) &
366 + work2(3) * ct(3, 1) &
367 + work2(4) * ct(4, 1) &
368 + work2(5) * ct(5, 1) &
369 + work2(6) * ct(6, 1) &
370 + work2(7) * ct(7, 1) &
371 + work2(8) * ct(8, 1) &
372 + work2(9) * ct(9, 1) &
373 + work2(10) * ct(10, 1) &
374 + work2(11) * ct(11, 1) &
375 + work2(12) * ct(12, 1)
382 integer,
intent(in) :: n
383 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
384 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
385 real(kind=
rp) :: work(n**3), work2(n**3), tmp
386 integer :: i, j, l, k
387 integer :: ii, jj, nn
396 tmp = tmp + a(i,k) * u(k + n * (j - 1))
405 ii = l + n * (j - 1) + nn * (i - 1)
408 tmp = tmp + work(l + n * (k - 1) + nn * (i - 1)) * bt(k,j)
417 jj = i + nn * (j - 1)
420 tmp = tmp + work2(i + nn * (k - 1)) * ct(k, j)
429 integer,
parameter :: n = 14
430 integer,
parameter :: nn = n**2
431 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
432 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
433 real(kind=
rp) :: work(n**3), work2(n**3)
440 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
441 + a(i,2) * u(2 + n * (j - 1)) &
442 + a(i,3) * u(3 + n * (j - 1)) &
443 + a(i,4) * u(4 + n * (j - 1)) &
444 + a(i,5) * u(5 + n * (j - 1)) &
445 + a(i,6) * u(6 + n * (j - 1)) &
446 + a(i,7) * u(7 + n * (j - 1)) &
447 + a(i,8) * u(8 + n * (j - 1)) &
448 + a(i,9) * u(9 + n * (j - 1)) &
449 + a(i,10) * u(10 + n * (j - 1)) &
450 + a(i,11) * u(11 + n * (j - 1)) &
451 + a(i,12) * u(12 + n * (j - 1)) &
452 + a(i,13) * u(13 + n * (j - 1)) &
453 + a(i,14) * u(14 + n * (j - 1))
460 ii = l + n * (j - 1) + nn * (i - 1)
461 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
462 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
463 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
464 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
465 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
466 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
467 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
468 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
469 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
470 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
471 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j) &
472 + work(l + n * (12 - 1) + nn * (i - 1)) * bt(12,j) &
473 + work(l + n * (13 - 1) + nn * (i - 1)) * bt(13,j) &
474 + work(l + n * (14 - 1) + nn * (i - 1)) * bt(14,j)
481 jj = i + nn * (j - 1)
482 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
483 + work2(i + nn * (2 - 1)) * ct(2, j) &
484 + work2(i + nn * (3 - 1)) * ct(3, j) &
485 + work2(i + nn * (4 - 1)) * ct(4, j) &
486 + work2(i + nn * (5 - 1)) * ct(5, j) &
487 + work2(i + nn * (6 - 1)) * ct(6, j) &
488 + work2(i + nn * (7 - 1)) * ct(7, j) &
489 + work2(i + nn * (8 - 1)) * ct(8, j) &
490 + work2(i + nn * (9 - 1)) * ct(9, j) &
491 + work2(i + nn * (10 - 1)) * ct(10, j) &
492 + work2(i + nn * (11 - 1)) * ct(11, j) &
493 + work2(i + nn * (12 - 1)) * ct(12, j) &
494 + work2(i + nn * (13 - 1)) * ct(13, j) &
495 + work2(i + nn * (14 - 1)) * ct(14, j)
502 integer,
parameter :: n = 13
503 integer,
parameter :: nn = n**2
504 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
505 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
506 real(kind=
rp) :: work(n**3), work2(n**3)
513 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
514 + a(i,2) * u(2 + n * (j - 1)) &
515 + a(i,3) * u(3 + n * (j - 1)) &
516 + a(i,4) * u(4 + n * (j - 1)) &
517 + a(i,5) * u(5 + n * (j - 1)) &
518 + a(i,6) * u(6 + n * (j - 1)) &
519 + a(i,7) * u(7 + n * (j - 1)) &
520 + a(i,8) * u(8 + n * (j - 1)) &
521 + a(i,9) * u(9 + n * (j - 1)) &
522 + a(i,10) * u(10 + n * (j - 1)) &
523 + a(i,11) * u(11 + n * (j - 1)) &
524 + a(i,12) * u(12 + n * (j - 1)) &
525 + a(i,13) * u(13 + n * (j - 1))
532 ii = l + n * (j - 1) + nn * (i - 1)
533 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
534 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
535 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
536 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
537 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
538 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
539 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
540 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
541 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
542 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
543 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j) &
544 + work(l + n * (12 - 1) + nn * (i - 1)) * bt(12,j) &
545 + work(l + n * (13 - 1) + nn * (i - 1)) * bt(13,j)
552 jj = i + nn * (j - 1)
553 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
554 + work2(i + nn * (2 - 1)) * ct(2, j) &
555 + work2(i + nn * (3 - 1)) * ct(3, j) &
556 + work2(i + nn * (4 - 1)) * ct(4, j) &
557 + work2(i + nn * (5 - 1)) * ct(5, j) &
558 + work2(i + nn * (6 - 1)) * ct(6, j) &
559 + work2(i + nn * (7 - 1)) * ct(7, j) &
560 + work2(i + nn * (8 - 1)) * ct(8, j) &
561 + work2(i + nn * (9 - 1)) * ct(9, j) &
562 + work2(i + nn * (10 - 1)) * ct(10, j) &
563 + work2(i + nn * (11 - 1)) * ct(11, j) &
564 + work2(i + nn * (12 - 1)) * ct(12, j) &
565 + work2(i + nn * (13 - 1)) * ct(13, j)
572 integer,
parameter :: n = 12
573 integer,
parameter :: nn = n**2
574 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
575 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
576 real(kind=
rp) :: work(n**3), work2(n**3)
583 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
584 + a(i,2) * u(2 + n * (j - 1)) &
585 + a(i,3) * u(3 + n * (j - 1)) &
586 + a(i,4) * u(4 + n * (j - 1)) &
587 + a(i,5) * u(5 + n * (j - 1)) &
588 + a(i,6) * u(6 + n * (j - 1)) &
589 + a(i,7) * u(7 + n * (j - 1)) &
590 + a(i,8) * u(8 + n * (j - 1)) &
591 + a(i,9) * u(9 + n * (j - 1)) &
592 + a(i,10) * u(10 + n * (j - 1)) &
593 + a(i,11) * u(11 + n * (j - 1)) &
594 + a(i,12) * u(12 + n * (j - 1))
601 ii = l + n * (j - 1) + nn * (i - 1)
602 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
603 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
604 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
605 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
606 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
607 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
608 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
609 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
610 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
611 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
612 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j) &
613 + work(l + n * (12 - 1) + nn * (i - 1)) * bt(12,j)
620 jj = i + nn * (j - 1)
621 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
622 + work2(i + nn * (2 - 1)) * ct(2, j) &
623 + work2(i + nn * (3 - 1)) * ct(3, j) &
624 + work2(i + nn * (4 - 1)) * ct(4, j) &
625 + work2(i + nn * (5 - 1)) * ct(5, j) &
626 + work2(i + nn * (6 - 1)) * ct(6, j) &
627 + work2(i + nn * (7 - 1)) * ct(7, j) &
628 + work2(i + nn * (8 - 1)) * ct(8, j) &
629 + work2(i + nn * (9 - 1)) * ct(9, j) &
630 + work2(i + nn * (10 - 1)) * ct(10, j) &
631 + work2(i + nn * (11 - 1)) * ct(11, j) &
632 + work2(i + nn * (12 - 1)) * ct(12, j)
639 integer,
parameter :: n = 11
640 integer,
parameter :: nn = n**2
641 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
642 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
643 real(kind=
rp) :: work(n**3), work2(n**3)
650 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
651 + a(i,2) * u(2 + n * (j - 1)) &
652 + a(i,3) * u(3 + n * (j - 1)) &
653 + a(i,4) * u(4 + n * (j - 1)) &
654 + a(i,5) * u(5 + n * (j - 1)) &
655 + a(i,6) * u(6 + n * (j - 1)) &
656 + a(i,7) * u(7 + n * (j - 1)) &
657 + a(i,8) * u(8 + n * (j - 1)) &
658 + a(i,9) * u(9 + n * (j - 1)) &
659 + a(i,10) * u(10 + n * (j - 1)) &
660 + a(i,11) * u(11 + n * (j - 1))
667 ii = l + n * (j - 1) + nn * (i - 1)
668 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
669 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
670 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
671 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
672 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
673 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
674 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
675 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
676 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
677 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j) &
678 + work(l + n * (11 - 1) + nn * (i - 1)) * bt(11,j)
685 jj = i + nn * (j - 1)
686 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
687 + work2(i + nn * (2 - 1)) * ct(2, j) &
688 + work2(i + nn * (3 - 1)) * ct(3, j) &
689 + work2(i + nn * (4 - 1)) * ct(4, j) &
690 + work2(i + nn * (5 - 1)) * ct(5, j) &
691 + work2(i + nn * (6 - 1)) * ct(6, j) &
692 + work2(i + nn * (7 - 1)) * ct(7, j) &
693 + work2(i + nn * (8 - 1)) * ct(8, j) &
694 + work2(i + nn * (9 - 1)) * ct(9, j) &
695 + work2(i + nn * (10 - 1)) * ct(10, j) &
696 + work2(i + nn * (11 - 1)) * ct(11, j)
703 integer,
parameter :: n = 10
704 integer,
parameter :: nn = n**2
705 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
706 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
707 real(kind=
rp) :: work(n**3), work2(n**3)
714 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
715 + a(i,2) * u(2 + n * (j - 1)) &
716 + a(i,3) * u(3 + n * (j - 1)) &
717 + a(i,4) * u(4 + n * (j - 1)) &
718 + a(i,5) * u(5 + n * (j - 1)) &
719 + a(i,6) * u(6 + n * (j - 1)) &
720 + a(i,7) * u(7 + n * (j - 1)) &
721 + a(i,8) * u(8 + n * (j - 1)) &
722 + a(i,9) * u(9 + n * (j - 1)) &
723 + a(i,10) * u(10 + n * (j - 1))
730 ii = l + n * (j - 1) + nn * (i - 1)
731 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
732 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
733 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
734 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
735 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
736 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
737 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
738 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
739 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j) &
740 + work(l + n * (10 - 1) + nn * (i - 1)) * bt(10,j)
747 jj = i + nn * (j - 1)
748 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
749 + work2(i + nn * (2 - 1)) * ct(2, j) &
750 + work2(i + nn * (3 - 1)) * ct(3, j) &
751 + work2(i + nn * (4 - 1)) * ct(4, j) &
752 + work2(i + nn * (5 - 1)) * ct(5, j) &
753 + work2(i + nn * (6 - 1)) * ct(6, j) &
754 + work2(i + nn * (7 - 1)) * ct(7, j) &
755 + work2(i + nn * (8 - 1)) * ct(8, j) &
756 + work2(i + nn * (9 - 1)) * ct(9, j) &
757 + work2(i + nn * (10 - 1)) * ct(10, j)
764 integer,
parameter :: n = 9
765 integer,
parameter :: nn = n**2
766 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
767 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
768 real(kind=
rp) :: work(n**3), work2(n**3)
775 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
776 + a(i,2) * u(2 + n * (j - 1)) &
777 + a(i,3) * u(3 + n * (j - 1)) &
778 + a(i,4) * u(4 + n * (j - 1)) &
779 + a(i,5) * u(5 + n * (j - 1)) &
780 + a(i,6) * u(6 + n * (j - 1)) &
781 + a(i,7) * u(7 + n * (j - 1)) &
782 + a(i,8) * u(8 + n * (j - 1)) &
783 + a(i,9) * u(9 + n * (j - 1))
790 ii = l + n * (j - 1) + nn * (i - 1)
791 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
792 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
793 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
794 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
795 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
796 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
797 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
798 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j) &
799 + work(l + n * (9 - 1) + nn * (i - 1)) * bt(9,j)
806 jj = i + nn * (j - 1)
807 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
808 + work2(i + nn * (2 - 1)) * ct(2, j) &
809 + work2(i + nn * (3 - 1)) * ct(3, j) &
810 + work2(i + nn * (4 - 1)) * ct(4, j) &
811 + work2(i + nn * (5 - 1)) * ct(5, j) &
812 + work2(i + nn * (6 - 1)) * ct(6, j) &
813 + work2(i + nn * (7 - 1)) * ct(7, j) &
814 + work2(i + nn * (8 - 1)) * ct(8, j) &
815 + work2(i + nn * (9 - 1)) * ct(9, j)
822 integer,
parameter :: n = 8
823 integer,
parameter :: nn = n**2
824 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
825 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
826 real(kind=
rp) :: work(n**3), work2(n**3)
833 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
834 + a(i,2) * u(2 + n * (j - 1)) &
835 + a(i,3) * u(3 + n * (j - 1)) &
836 + a(i,4) * u(4 + n * (j - 1)) &
837 + a(i,5) * u(5 + n * (j - 1)) &
838 + a(i,6) * u(6 + n * (j - 1)) &
839 + a(i,7) * u(7 + n * (j - 1)) &
840 + a(i,8) * u(8 + n * (j - 1))
847 ii = l + n * (j - 1) + nn * (i - 1)
848 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
849 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
850 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
851 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
852 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
853 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
854 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j) &
855 + work(l + n * (8 - 1) + nn * (i - 1)) * bt(8,j)
862 jj = i + nn * (j - 1)
863 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
864 + work2(i + nn * (2 - 1)) * ct(2, j) &
865 + work2(i + nn * (3 - 1)) * ct(3, j) &
866 + work2(i + nn * (4 - 1)) * ct(4, j) &
867 + work2(i + nn * (5 - 1)) * ct(5, j) &
868 + work2(i + nn * (6 - 1)) * ct(6, j) &
869 + work2(i + nn * (7 - 1)) * ct(7, j) &
870 + work2(i + nn * (8 - 1)) * ct(8, j)
877 integer,
parameter :: n = 7
878 integer,
parameter :: nn = n**2
879 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
880 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
881 real(kind=
rp) :: work(n**3), work2(n**3)
888 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
889 + a(i,2) * u(2 + n * (j - 1)) &
890 + a(i,3) * u(3 + n * (j - 1)) &
891 + a(i,4) * u(4 + n * (j - 1)) &
892 + a(i,5) * u(5 + n * (j - 1)) &
893 + a(i,6) * u(6 + n * (j - 1)) &
894 + a(i,7) * u(7 + n * (j - 1))
901 ii = l + n * (j - 1) + nn * (i - 1)
902 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
903 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
904 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
905 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
906 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
907 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j) &
908 + work(l + n * (7 - 1) + nn * (i - 1)) * bt(7,j)
915 jj = i + nn * (j - 1)
916 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
917 + work2(i + nn * (2 - 1)) * ct(2, j) &
918 + work2(i + nn * (3 - 1)) * ct(3, j) &
919 + work2(i + nn * (4 - 1)) * ct(4, j) &
920 + work2(i + nn * (5 - 1)) * ct(5, j) &
921 + work2(i + nn * (6 - 1)) * ct(6, j) &
922 + work2(i + nn * (7 - 1)) * ct(7, j)
929 integer,
parameter :: n = 6
930 integer,
parameter :: nn = n**2
931 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
932 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
933 real(kind=
rp) :: work(n**3), work2(n**3)
940 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
941 + a(i,2) * u(2 + n * (j - 1)) &
942 + a(i,3) * u(3 + n * (j - 1)) &
943 + a(i,4) * u(4 + n * (j - 1)) &
944 + a(i,5) * u(5 + n * (j - 1)) &
945 + a(i,6) * u(6 + n * (j - 1))
952 ii = l + n * (j - 1) + nn * (i - 1)
953 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
954 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
955 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
956 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
957 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j) &
958 + work(l + n * (6 - 1) + nn * (i - 1)) * bt(6,j)
965 jj = i + nn * (j - 1)
966 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
967 + work2(i + nn * (2 - 1)) * ct(2, j) &
968 + work2(i + nn * (3 - 1)) * ct(3, j) &
969 + work2(i + nn * (4 - 1)) * ct(4, j) &
970 + work2(i + nn * (5 - 1)) * ct(5, j) &
971 + work2(i + nn * (6 - 1)) * ct(6, j)
978 integer,
parameter :: n = 5
979 integer,
parameter :: nn = n**2
980 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
981 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
982 real(kind=
rp) :: work(n**3), work2(n**3)
989 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
990 + a(i,2) * u(2 + n * (j - 1)) &
991 + a(i,3) * u(3 + n * (j - 1)) &
992 + a(i,4) * u(4 + n * (j - 1)) &
993 + a(i,5) * u(5 + n * (j - 1))
1000 ii = l + n * (j - 1) + nn * (i - 1)
1001 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1002 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
1003 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
1004 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j) &
1005 + work(l + n * (5 - 1) + nn * (i - 1)) * bt(5,j)
1012 jj = i + nn * (j - 1)
1013 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1014 + work2(i + nn * (2 - 1)) * ct(2, j) &
1015 + work2(i + nn * (3 - 1)) * ct(3, j) &
1016 + work2(i + nn * (4 - 1)) * ct(4, j) &
1017 + work2(i + nn * (5 - 1)) * ct(5, j)
1024 integer,
parameter :: n = 4
1025 integer,
parameter :: nn = n**2
1026 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
1027 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
1028 real(kind=
rp) :: work(n**3), work2(n**3)
1034 ii = i + n * (j - 1)
1035 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
1036 + a(i,2) * u(2 + n * (j - 1)) &
1037 + a(i,3) * u(3 + n * (j - 1)) &
1038 + a(i,4) * u(4 + n * (j - 1))
1045 ii = l + n * (j - 1) + nn * (i - 1)
1046 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1047 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
1048 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j) &
1049 + work(l + n * (4 - 1) + nn * (i - 1)) * bt(4,j)
1056 jj = i + nn * (j - 1)
1057 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1058 + work2(i + nn * (2 - 1)) * ct(2, j) &
1059 + work2(i + nn * (3 - 1)) * ct(3, j) &
1060 + work2(i + nn * (4 - 1)) * ct(4, j)
1067 integer,
parameter :: n = 3
1068 integer,
parameter :: nn = n**2
1069 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
1070 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
1071 real(kind=
rp) :: work(n**3), work2(n**3)
1077 ii = i + n * (j - 1)
1078 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
1079 + a(i,2) * u(2 + n * (j - 1)) &
1080 + a(i,3) * u(3 + n * (j - 1))
1087 ii = l + n * (j - 1) + nn * (i - 1)
1088 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1089 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j) &
1090 + work(l + n * (3 - 1) + nn * (i - 1)) * bt(3,j)
1097 jj = i + nn * (j - 1)
1098 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1099 + work2(i + nn * (2 - 1)) * ct(2, j) &
1100 + work2(i + nn * (3 - 1)) * ct(3, j)
1107 integer,
parameter :: n = 2
1108 integer,
parameter :: nn = n**2
1109 real(kind=
rp),
intent(inout) :: v(n*n*n), u(n*n*n)
1110 real(kind=
rp),
intent(inout) :: a(n,n), bt(n,n), ct(n,n)
1111 real(kind=
rp) :: work(n**3), work2(n**3)
1117 ii = i + n * (j - 1)
1118 work(ii) = a(i,1) * u(1 + n * (j - 1)) &
1119 + a(i,2) * u(2 + n * (j - 1))
1126 ii = l + n * (j - 1) + nn * (i - 1)
1127 work2(ii) = work(l + n * (1 - 1) + nn * (i - 1)) * bt(1,j) &
1128 + work(l + n * (2 - 1) + nn * (i - 1)) * bt(2,j)
1135 jj = i + nn * (j - 1)
1136 v(jj) = work2(i + nn * (1 - 1)) * ct(1, j) &
1137 + work2(i + nn * (2 - 1)) * ct(2, j)
1144 integer,
intent(in) :: nv, nu, nelv
1145 real(kind=
rp),
intent(inout) :: v(nv*nv*nv, nelv)
1146 real(kind=
rp),
intent(in) :: u(nu*nu*nu, nelv)
1147 real(kind=
rp),
intent(in) :: a(nv, nu), bt(nu, nv), ct(nu, nv)
1149 if (nu .eq. 2 .and. nv .eq. 4)
then
1151 else if (nu .eq. 4)
then
1160 integer,
intent(in) :: nv, nu, nelv
1161 real(kind=
rp),
intent(inout) :: v(nv*nv*nv, nelv)
1162 real(kind=
rp),
intent(in) :: u(nu*nu*nu, nelv)
1163 real(kind=
rp),
intent(in) :: a(nv, nu), bt(nu, nv), ct(nu, nv)
1164 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2), tmp
1165 integer :: ie, i, j, k, l, ii, jj
1166 integer :: nunu, nvnu, nvnv
1175 ii = i + nv * (j - 1)
1178 tmp = tmp + a(i,k) * u(k + nu * (j - 1), ie)
1187 ii = l + nv * (j - 1) + nvnv * (i - 1)
1190 jj = l + nv * (k - 1) + nvnu * (i - 1)
1191 tmp = tmp + work(jj) * bt(k,j)
1200 jj = i + nvnv * (j - 1)
1203 ii = i + nvnv * (k - 1)
1204 tmp = tmp + work2(ii) * ct(k, j)
1214 integer,
parameter :: nu = 2
1215 integer,
parameter :: nv = 4
1216 integer,
parameter :: nunu = 4
1217 integer,
parameter :: nvnu = 8
1218 integer,
parameter :: nvnv = 16
1219 integer,
intent(in) :: nelv
1220 real(kind=
rp),
intent(inout) :: v(nv*nv*nv, nelv)
1221 real(kind=
rp),
intent(in) :: u(nu*nu*nu, nelv)
1222 real(kind=
rp),
intent(in) :: a(nv, nu), bt(nu, nv), ct(nu, nv)
1223 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2), tmp
1224 integer :: ie, i, j, k, l, ii, jj
1229 ii = i + nv * (j - 1)
1230 work(ii) = a(i,1) * u(1 + nu * (j - 1), ie) &
1231 + a(i,2) * u(2 + nu * (j - 1), ie)
1238 ii = l + nv * (j - 1) + nvnv * (i - 1)
1241 jj = l + nv * (k - 1) + nvnu * (i - 1)
1242 tmp = tmp + work(jj) * bt(k,j)
1251 jj = i + nvnv * (j - 1)
1252 v(jj, ie) = work2(i + nvnv * (1 - 1)) * ct(1, j) &
1253 + work2(i + nvnv * (2 - 1)) * ct(2, j)
1261 integer,
parameter :: nu = 4
1262 integer,
parameter :: nunu = 16
1263 integer,
intent(in) :: nv, nelv
1264 real(kind=
rp),
intent(inout) :: v(nv*nv*nv, nelv)
1265 real(kind=
rp),
intent(in) :: u(nu*nu*nu, nelv)
1266 real(kind=
rp),
intent(in) :: a(nv, nu), bt(nu, nv), ct(nu, nv)
1267 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2), tmp
1268 integer :: ie, i, j, k, l, ii, jj
1269 integer :: nvnu, nvnv
1277 ii = i + nv * (j - 1)
1278 work(ii) = a(i,1) * u(1 + nu * (j - 1), ie) &
1279 + a(i,2) * u(2 + nu * (j - 1), ie) &
1280 + a(i,3) * u(3 + nu * (j - 1), ie) &
1281 + a(i,4) * u(4 + nu * (j - 1), ie)
1288 ii = l + nv * (j - 1) + nvnv * (i - 1)
1291 jj = l + nv * (k - 1) + nvnu * (i - 1)
1292 tmp = tmp + work(jj) * bt(k,j)
1301 jj = i + nvnv * (j - 1)
1302 v(jj, ie) = work2(i + nvnv * (1 - 1)) * ct(1, j) &
1303 + work2(i + nvnv * (2 - 1)) * ct(2, j) &
1304 + work2(i + nvnv * (3 - 1)) * ct(3, j) &
1305 + work2(i + nvnv * (4 - 1)) * ct(4, j)
1313 integer,
intent(in) :: nv, nu, nelv
1314 real(kind=
rp),
intent(inout) :: v(nv*nv*nv*nelv)
1315 real(kind=
rp),
intent(inout) :: a(nv, nu), bt(nu, nv), ct(nu, nv)
1317 if (nu .eq. 4 .and. nv .eq. 2)
then
1326 integer,
intent(in) :: nv, nu, nelv
1327 real(kind=
rp),
intent(inout) :: v(nv*nv*nv*nelv)
1328 real(kind=
rp),
intent(inout) :: a(nv, nu), bt(nu, nv), ct(nu, nv)
1329 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2)
1330 integer :: e, e0, ee, es, iu, iv, nu3, nv3
1331 integer :: i, j, k, l, ii, jj, kk
1332 integer :: nunu, nvnu, nvnv
1333 real(kind=
rp) :: tmp
1343 if (nv .gt. nu)
then
1358 ii = i + nv * (j - 1)
1361 kk = k + nu * (j - 1) + iu
1362 tmp = tmp + a(i,k) * v(kk)
1371 ii = l + nv * (j - 1) + nvnv * (i - 1)
1374 jj = l + nv * (k - 1) + nvnu * (i - 1)
1375 tmp = tmp + work(jj) * bt(k,j)
1384 jj = i + nvnv * (j - 1) + iv
1387 ii = i + nvnv * (k - 1)
1388 tmp = tmp + work2(ii) * ct(k, j)
1398 integer,
parameter :: nu = 4
1399 integer,
parameter :: nv = 2
1400 integer,
parameter :: nunu = 16
1401 integer,
parameter :: nvnu = 8
1402 integer,
parameter :: nvnv = 4
1403 integer,
parameter :: nununu = 64
1404 integer,
parameter :: nvnvnv = 8
1405 integer,
intent(in) :: nelv
1406 real(kind=
rp),
intent(inout) :: v(nv*nv*nv*nelv)
1407 real(kind=
rp),
intent(inout) :: a(nv, nu), bt(nu, nv), ct(nu, nv)
1408 real(kind=
rp) :: work(nu**2*nv), work2(nu*nv**2)
1409 integer :: e, iu, iv
1410 integer :: i, j, k, l, ii, jj
1411 real(kind=
rp) :: tmp
1419 ii = i + nv * (j - 1)
1420 work(ii) = a(i,1) * v(1 + nu * (j - 1) + iu) &
1421 + a(i,2) * v(2 + nu * (j - 1) + iu) &
1422 + a(i,3) * v(3 + nu * (j - 1) + iu) &
1423 + a(i,4) * v(4 + nu * (j - 1) + iu)
1430 ii = l + nv * (j - 1) + nvnv * (i - 1)
1433 jj = l + nv * (k - 1) + nvnu * (i - 1)
1434 tmp = tmp + work(jj) * bt(k,j)
1443 jj = i + nvnv * (j - 1) + iv
1444 v(jj) = work2(i + nvnv * (1 - 1)) * ct(1, j) &
1445 + work2(i + nvnv * (2 - 1)) * ct(2, j) &
1446 + work2(i + nvnv * (3 - 1)) * ct(3, j) &
1447 + 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)