15#include "scaleFElib.h"
149 real(rp),
intent(in) :: mat_x(2,2)
150 real(rp),
intent(in) :: vec_in(2,2**2)
151 real(rp),
intent(out) :: vec_out(2,2**2)
158 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
159 + mat_x(i,2) * vec_in(2,jk)
172 real(rp),
intent(in) :: mat_y_tr(2,2)
173 real(rp),
intent(in) :: vec_in(2,2,2)
174 real(rp),
intent(out) :: vec_out(2,2,2)
182 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
183 + vec_in(i,2,k) * mat_y_tr(2,j)
197 real(rp),
intent(in) :: mat_z_tr(2,2)
198 real(rp),
intent(in) :: vec_in(2,2,2)
199 real(rp),
intent(out) :: vec_out(2,2,2)
207 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
208 + vec_in(i,j,2) * mat_z_tr(2,k)
221 real(rp),
intent(in) :: lift(2,2,2,6)
222 real(rp),
intent(in) :: vec_in(2,2,6)
223 real(rp),
intent(out) :: vec_out(2,2,2)
231 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
232 + lift(i,j,k,2) * vec_in(j,k,2) &
233 + lift(i,j,k,3) * vec_in(i,k,3) &
234 + lift(i,j,k,4) * vec_in(j,k,4) &
235 + lift(i,j,k,5) * vec_in(i,j,5) &
236 + lift(i,j,k,6) * vec_in(i,j,6)
250 vec_out_x, vec_out_y, vec_out_z )
252 real(rp),
intent(in) :: mat(2,2)
253 real(rp),
intent(in) :: mat_tr(2,2)
254 real(rp),
intent(in) :: vec_in_(2,2**2)
255 real(rp),
intent(in) :: vec_in(2,2,2)
256 real(rp),
intent(out) :: vec_out_x(2,2**2)
257 real(rp),
intent(out) :: vec_out_y(2,2,2)
258 real(rp),
intent(out) :: vec_out_z(2,2,2)
260 integer :: i, j, k, jk
267 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
268 + mat(i,2) * vec_in_(2,jk)
276 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
277 + vec_in(i,2,k) * mat_tr(2,j)
286 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
287 + vec_in(i,j,2) * mat_tr(2,k)
301 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
302 vec_out_x, vec_out_y, vec_out_z )
304 real(rp),
intent(in) :: mat(2,2)
305 real(rp),
intent(in) :: mat_tr(2,2)
306 real(rp),
intent(in) :: vec_in_x(2,2**2)
307 real(rp),
intent(in) :: vec_in_y(2,2,2)
308 real(rp),
intent(in) :: vec_in_z(2,2,2)
309 real(rp),
intent(out) :: vec_out_x(2,2**2)
310 real(rp),
intent(out) :: vec_out_y(2,2**2)
311 real(rp),
intent(out) :: vec_out_z(2,2**2)
313 integer :: i, j, k, jk
320 vec_out_x(i,jk) = mat(i,1) * vec_in_x(1,jk) &
321 + mat(i,2) * vec_in_x(2,jk)
330 vec_out_y(i,jk) = vec_in_y(i,1,k) * mat_tr(1,j) &
331 + vec_in_y(i,2,k) * mat_tr(2,j)
341 vec_out_z(i,jk) = vec_in_z(i,j,1) * mat_tr(1,k) &
342 + vec_in_z(i,j,2) * mat_tr(2,k)
350 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p1( &
351 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
352 vec_out_x, vec_out_y, vec_out_z )
354 real(rp),
intent(in) :: mat(2,2)
355 real(rp),
intent(in) :: mat_tr(2,2)
356 real(rp),
intent(in) :: vec_in_x(2,2**2*5)
357 real(rp),
intent(in) :: vec_in_y(2,2,2*5)
358 real(rp),
intent(in) :: vec_in_z(2,2,2,5)
359 real(rp),
intent(out) :: vec_out_x(2,2**2*5)
360 real(rp),
intent(out) :: vec_out_y(2,2**2*5)
361 real(rp),
intent(out) :: vec_out_z(2,2**2,5)
363 integer :: i, j, k, jkv, jk, v, kv
370 vec_out_x(i,jkv) = mat(i,1) * vec_in_x(1,jkv) &
371 + mat(i,2) * vec_in_x(2,jkv)
380 vec_out_y(i,jkv) = vec_in_y(i,1,kv) * mat_tr(1,j) &
381 + vec_in_y(i,2,kv) * mat_tr(2,j)
392 vec_out_z(i,jk,v) = vec_in_z(i,j,1,v) * mat_tr(1,k) &
393 + vec_in_z(i,j,2,v) * mat_tr(2,k)
399 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p1
407 real(rp),
intent(in) :: mat_h1d(2,2)
408 real(rp),
intent(in) :: mat_h1d_tr(2,2)
409 real(rp),
intent(in) :: mat_v1d_tr(2,2)
410 real(rp),
intent(in) :: vec_in(2,2,2)
411 real(rp),
intent(out) :: vec_work(2,2,2)
412 real(rp),
intent(out) :: vec_out(2,2,2)
422 vec_out(i,j,k) = mat_h1d(i,1) * vec_in(1,j,k) &
423 + mat_h1d(i,2) * vec_in(2,j,k)
432 vec_work(i,j,k) = vec_out(i,1,k) * mat_h1d_tr(1,j) &
433 + vec_out(i,2,k) * mat_h1d_tr(2,j)
442 vec_out(i,j,k) = vec_work(i,j,1) * mat_v1d_tr(1,k) &
443 + vec_work(i,j,2) * mat_v1d_tr(2,k)
458 real(rp),
intent(in) :: mat_x(3,3)
459 real(rp),
intent(in) :: vec_in(3,3**2)
460 real(rp),
intent(out) :: vec_out(3,3**2)
467 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
468 + mat_x(i,2) * vec_in(2,jk) &
469 + mat_x(i,3) * vec_in(3,jk)
482 real(rp),
intent(in) :: mat_y_tr(3,3)
483 real(rp),
intent(in) :: vec_in(3,3,3)
484 real(rp),
intent(out) :: vec_out(3,3,3)
492 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
493 + vec_in(i,2,k) * mat_y_tr(2,j) &
494 + vec_in(i,3,k) * mat_y_tr(3,j)
508 real(rp),
intent(in) :: mat_z_tr(3,3)
509 real(rp),
intent(in) :: vec_in(3,3,3)
510 real(rp),
intent(out) :: vec_out(3,3,3)
518 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
519 + vec_in(i,j,2) * mat_z_tr(2,k) &
520 + vec_in(i,j,3) * mat_z_tr(3,k)
533 real(rp),
intent(in) :: lift(3,3,3,6)
534 real(rp),
intent(in) :: vec_in(3,3,6)
535 real(rp),
intent(out) :: vec_out(3,3,3)
543 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
544 + lift(i,j,k,2) * vec_in(j,k,2) &
545 + lift(i,j,k,3) * vec_in(i,k,3) &
546 + lift(i,j,k,4) * vec_in(j,k,4) &
547 + lift(i,j,k,5) * vec_in(i,j,5) &
548 + lift(i,j,k,6) * vec_in(i,j,6)
562 vec_out_x, vec_out_y, vec_out_z )
564 real(rp),
intent(in) :: mat(3,3)
565 real(rp),
intent(in) :: mat_tr(3,3)
566 real(rp),
intent(in) :: vec_in_(3,3**2)
567 real(rp),
intent(in) :: vec_in(3,3,3)
568 real(rp),
intent(out) :: vec_out_x(3,3**2)
569 real(rp),
intent(out) :: vec_out_y(3,3,3)
570 real(rp),
intent(out) :: vec_out_z(3,3,3)
572 integer :: i, j, k, jk
579 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
580 + mat(i,2) * vec_in_(2,jk) &
581 + mat(i,3) * vec_in_(3,jk)
589 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
590 + vec_in(i,2,k) * mat_tr(2,j) &
591 + vec_in(i,3,k) * mat_tr(3,j)
600 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
601 + vec_in(i,j,2) * mat_tr(2,k) &
602 + vec_in(i,j,3) * mat_tr(3,k)
616 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
617 vec_out_x, vec_out_y, vec_out_z )
619 real(rp),
intent(in) :: mat(3,3)
620 real(rp),
intent(in) :: mat_tr(3,3)
621 real(rp),
intent(in) :: vec_in_x(3,3**2)
622 real(rp),
intent(in) :: vec_in_y(3,3,3)
623 real(rp),
intent(in) :: vec_in_z(3,3,3)
624 real(rp),
intent(out) :: vec_out_x(3,3**2)
625 real(rp),
intent(out) :: vec_out_y(3,3**2)
626 real(rp),
intent(out) :: vec_out_z(3,3**2)
628 integer :: i, j, k, jk
635 vec_out_x(i,jk) = mat(i,1) * vec_in_x(1,jk) &
636 + mat(i,2) * vec_in_x(2,jk) &
637 + mat(i,3) * vec_in_x(3,jk)
646 vec_out_y(i,jk) = vec_in_y(i,1,k) * mat_tr(1,j) &
647 + vec_in_y(i,2,k) * mat_tr(2,j) &
648 + vec_in_y(i,3,k) * mat_tr(3,j)
658 vec_out_z(i,jk) = vec_in_z(i,j,1) * mat_tr(1,k) &
659 + vec_in_z(i,j,2) * mat_tr(2,k) &
660 + vec_in_z(i,j,3) * mat_tr(3,k)
668 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p2( &
669 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
670 vec_out_x, vec_out_y, vec_out_z )
672 real(rp),
intent(in) :: mat(3,3)
673 real(rp),
intent(in) :: mat_tr(3,3)
674 real(rp),
intent(in) :: vec_in_x(3,3**2*5)
675 real(rp),
intent(in) :: vec_in_y(3,3,3*5)
676 real(rp),
intent(in) :: vec_in_z(3,3,3,5)
677 real(rp),
intent(out) :: vec_out_x(3,3**2*5)
678 real(rp),
intent(out) :: vec_out_y(3,3**2*5)
679 real(rp),
intent(out) :: vec_out_z(3,3**2,5)
681 integer :: i, j, k, jkv, jk, v, kv
688 vec_out_x(i,jkv) = mat(i,1) * vec_in_x(1,jkv) &
689 + mat(i,2) * vec_in_x(2,jkv) &
690 + mat(i,3) * vec_in_x(3,jkv)
699 vec_out_y(i,jkv) = vec_in_y(i,1,kv) * mat_tr(1,j) &
700 + vec_in_y(i,2,kv) * mat_tr(2,j) &
701 + vec_in_y(i,3,kv) * mat_tr(3,j)
712 vec_out_z(i,jk,v) = vec_in_z(i,j,1,v) * mat_tr(1,k) &
713 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
714 + vec_in_z(i,j,3,v) * mat_tr(3,k)
720 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p2
728 real(rp),
intent(in) :: mat_h1d(3,3)
729 real(rp),
intent(in) :: mat_h1d_tr(3,3)
730 real(rp),
intent(in) :: mat_v1d_tr(3,3)
731 real(rp),
intent(in) :: vec_in(3,3,3)
732 real(rp),
intent(out) :: vec_work(3,3,3)
733 real(rp),
intent(out) :: vec_out(3,3,3)
743 vec_out(i,j,k) = mat_h1d(i,1) * vec_in(1,j,k) &
744 + mat_h1d(i,2) * vec_in(2,j,k) &
745 + mat_h1d(i,3) * vec_in(3,j,k)
754 vec_work(i,j,k) = vec_out(i,1,k) * mat_h1d_tr(1,j) &
755 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
756 + vec_out(i,3,k) * mat_h1d_tr(3,j)
765 vec_out(i,j,k) = vec_work(i,j,1) * mat_v1d_tr(1,k) &
766 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
767 + vec_work(i,j,3) * mat_v1d_tr(3,k)
782 real(rp),
intent(in) :: mat_x(4,4)
783 real(rp),
intent(in) :: vec_in(4,4**2)
784 real(rp),
intent(out) :: vec_out(4,4**2)
791 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
792 + mat_x(i,2) * vec_in(2,jk) &
793 + mat_x(i,3) * vec_in(3,jk) &
794 + mat_x(i,4) * vec_in(4,jk)
807 real(rp),
intent(in) :: mat_y_tr(4,4)
808 real(rp),
intent(in) :: vec_in(4,4,4)
809 real(rp),
intent(out) :: vec_out(4,4,4)
817 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
818 + vec_in(i,2,k) * mat_y_tr(2,j) &
819 + vec_in(i,3,k) * mat_y_tr(3,j) &
820 + vec_in(i,4,k) * mat_y_tr(4,j)
834 real(rp),
intent(in) :: mat_z_tr(4,4)
835 real(rp),
intent(in) :: vec_in(4,4,4)
836 real(rp),
intent(out) :: vec_out(4,4,4)
844 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
845 + vec_in(i,j,2) * mat_z_tr(2,k) &
846 + vec_in(i,j,3) * mat_z_tr(3,k) &
847 + vec_in(i,j,4) * mat_z_tr(4,k)
860 real(rp),
intent(in) :: lift(4,4,4,6)
861 real(rp),
intent(in) :: vec_in(4,4,6)
862 real(rp),
intent(out) :: vec_out(4,4,4)
870 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
871 + lift(i,j,k,2) * vec_in(j,k,2) &
872 + lift(i,j,k,3) * vec_in(i,k,3) &
873 + lift(i,j,k,4) * vec_in(j,k,4) &
874 + lift(i,j,k,5) * vec_in(i,j,5) &
875 + lift(i,j,k,6) * vec_in(i,j,6)
889 vec_out_x, vec_out_y, vec_out_z )
891 real(rp),
intent(in) :: mat(4,4)
892 real(rp),
intent(in) :: mat_tr(4,4)
893 real(rp),
intent(in) :: vec_in_(4,4**2)
894 real(rp),
intent(in) :: vec_in(4,4,4)
895 real(rp),
intent(out) :: vec_out_x(4,4**2)
896 real(rp),
intent(out) :: vec_out_y(4,4,4)
897 real(rp),
intent(out) :: vec_out_z(4,4,4)
899 integer :: i, j, k, jk
906 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
907 + mat(i,2) * vec_in_(2,jk) &
908 + mat(i,3) * vec_in_(3,jk) &
909 + mat(i,4) * vec_in_(4,jk)
917 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
918 + vec_in(i,2,k) * mat_tr(2,j) &
919 + vec_in(i,3,k) * mat_tr(3,j) &
920 + vec_in(i,4,k) * mat_tr(4,j)
929 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
930 + vec_in(i,j,2) * mat_tr(2,k) &
931 + vec_in(i,j,3) * mat_tr(3,k) &
932 + vec_in(i,j,4) * mat_tr(4,k)
946 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
947 vec_out_x, vec_out_y, vec_out_z )
949 real(rp),
intent(in) :: mat(4,4)
950 real(rp),
intent(in) :: mat_tr(4,4)
951 real(rp),
intent(in) :: vec_in_x(4,4**2)
952 real(rp),
intent(in) :: vec_in_y(4,4,4)
953 real(rp),
intent(in) :: vec_in_z(4,4,4)
954 real(rp),
intent(out) :: vec_out_x(4,4**2)
955 real(rp),
intent(out) :: vec_out_y(4,4**2)
956 real(rp),
intent(out) :: vec_out_z(4,4**2)
958 integer :: i, j, k, jk
965 vec_out_x(i,jk) = mat(i,1) * vec_in_x(1,jk) &
966 + mat(i,2) * vec_in_x(2,jk) &
967 + mat(i,3) * vec_in_x(3,jk) &
968 + mat(i,4) * vec_in_x(4,jk)
977 vec_out_y(i,jk) = vec_in_y(i,1,k) * mat_tr(1,j) &
978 + vec_in_y(i,2,k) * mat_tr(2,j) &
979 + vec_in_y(i,3,k) * mat_tr(3,j) &
980 + vec_in_y(i,4,k) * mat_tr(4,j)
990 vec_out_z(i,jk) = vec_in_z(i,j,1) * mat_tr(1,k) &
991 + vec_in_z(i,j,2) * mat_tr(2,k) &
992 + vec_in_z(i,j,3) * mat_tr(3,k) &
993 + vec_in_z(i,j,4) * mat_tr(4,k)
1001 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p3( &
1002 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
1003 vec_out_x, vec_out_y, vec_out_z )
1005 real(rp),
intent(in) :: mat(4,4)
1006 real(rp),
intent(in) :: mat_tr(4,4)
1007 real(rp),
intent(in) :: vec_in_x(4,4**2*5)
1008 real(rp),
intent(in) :: vec_in_y(4,4,4*5)
1009 real(rp),
intent(in) :: vec_in_z(4,4,4,5)
1010 real(rp),
intent(out) :: vec_out_x(4,4**2*5)
1011 real(rp),
intent(out) :: vec_out_y(4,4**2*5)
1012 real(rp),
intent(out) :: vec_out_z(4,4**2,5)
1014 integer :: i, j, k, jkv, jk, v, kv
1021 vec_out_x(i,jkv) = mat(i,1) * vec_in_x(1,jkv) &
1022 + mat(i,2) * vec_in_x(2,jkv) &
1023 + mat(i,3) * vec_in_x(3,jkv) &
1024 + mat(i,4) * vec_in_x(4,jkv)
1033 vec_out_y(i,jkv) = vec_in_y(i,1,kv) * mat_tr(1,j) &
1034 + vec_in_y(i,2,kv) * mat_tr(2,j) &
1035 + vec_in_y(i,3,kv) * mat_tr(3,j) &
1036 + vec_in_y(i,4,kv) * mat_tr(4,j)
1047 vec_out_z(i,jk,v) = vec_in_z(i,j,1,v) * mat_tr(1,k) &
1048 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
1049 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
1050 + vec_in_z(i,j,4,v) * mat_tr(4,k)
1056 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p3
1064 real(rp),
intent(in) :: mat_h1d(4,4)
1065 real(rp),
intent(in) :: mat_h1d_tr(4,4)
1066 real(rp),
intent(in) :: mat_v1d_tr(4,4)
1067 real(rp),
intent(in) :: vec_in(4,4,4)
1068 real(rp),
intent(out) :: vec_work(4,4,4)
1069 real(rp),
intent(out) :: vec_out(4,4,4)
1079 vec_out(i,j,k) = mat_h1d(i,1) * vec_in(1,j,k) &
1080 + mat_h1d(i,2) * vec_in(2,j,k) &
1081 + mat_h1d(i,3) * vec_in(3,j,k) &
1082 + mat_h1d(i,4) * vec_in(4,j,k)
1091 vec_work(i,j,k) = vec_out(i,1,k) * mat_h1d_tr(1,j) &
1092 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
1093 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
1094 + vec_out(i,4,k) * mat_h1d_tr(4,j)
1103 vec_out(i,j,k) = vec_work(i,j,1) * mat_v1d_tr(1,k) &
1104 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
1105 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
1106 + vec_work(i,j,4) * mat_v1d_tr(4,k)
1121 real(rp),
intent(in) :: mat_x(5,5)
1122 real(rp),
intent(in) :: vec_in(5,5**2)
1123 real(rp),
intent(out) :: vec_out(5,5**2)
1130 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
1131 + mat_x(i,2) * vec_in(2,jk) &
1132 + mat_x(i,3) * vec_in(3,jk) &
1133 + mat_x(i,4) * vec_in(4,jk) &
1134 + mat_x(i,5) * vec_in(5,jk)
1147 real(rp),
intent(in) :: mat_y_tr(5,5)
1148 real(rp),
intent(in) :: vec_in(5,5,5)
1149 real(rp),
intent(out) :: vec_out(5,5,5)
1157 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
1158 + vec_in(i,2,k) * mat_y_tr(2,j) &
1159 + vec_in(i,3,k) * mat_y_tr(3,j) &
1160 + vec_in(i,4,k) * mat_y_tr(4,j) &
1161 + vec_in(i,5,k) * mat_y_tr(5,j)
1175 real(rp),
intent(in) :: mat_z_tr(5,5)
1176 real(rp),
intent(in) :: vec_in(5,5,5)
1177 real(rp),
intent(out) :: vec_out(5,5,5)
1185 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
1186 + vec_in(i,j,2) * mat_z_tr(2,k) &
1187 + vec_in(i,j,3) * mat_z_tr(3,k) &
1188 + vec_in(i,j,4) * mat_z_tr(4,k) &
1189 + vec_in(i,j,5) * mat_z_tr(5,k)
1202 real(rp),
intent(in) :: lift(5,5,5,6)
1203 real(rp),
intent(in) :: vec_in(5,5,6)
1204 real(rp),
intent(out) :: vec_out(5,5,5)
1212 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
1213 + lift(i,j,k,2) * vec_in(j,k,2) &
1214 + lift(i,j,k,3) * vec_in(i,k,3) &
1215 + lift(i,j,k,4) * vec_in(j,k,4) &
1216 + lift(i,j,k,5) * vec_in(i,j,5) &
1217 + lift(i,j,k,6) * vec_in(i,j,6)
1231 vec_out_x, vec_out_y, vec_out_z )
1233 real(rp),
intent(in) :: mat(5,5)
1234 real(rp),
intent(in) :: mat_tr(5,5)
1235 real(rp),
intent(in) :: vec_in_(5,5**2)
1236 real(rp),
intent(in) :: vec_in(5,5,5)
1237 real(rp),
intent(out) :: vec_out_x(5,5**2)
1238 real(rp),
intent(out) :: vec_out_y(5,5,5)
1239 real(rp),
intent(out) :: vec_out_z(5,5,5)
1241 integer :: i, j, k, jk
1248 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
1249 + mat(i,2) * vec_in_(2,jk) &
1250 + mat(i,3) * vec_in_(3,jk) &
1251 + mat(i,4) * vec_in_(4,jk) &
1252 + mat(i,5) * vec_in_(5,jk)
1260 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
1261 + vec_in(i,2,k) * mat_tr(2,j) &
1262 + vec_in(i,3,k) * mat_tr(3,j) &
1263 + vec_in(i,4,k) * mat_tr(4,j) &
1264 + vec_in(i,5,k) * mat_tr(5,j)
1273 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
1274 + vec_in(i,j,2) * mat_tr(2,k) &
1275 + vec_in(i,j,3) * mat_tr(3,k) &
1276 + vec_in(i,j,4) * mat_tr(4,k) &
1277 + vec_in(i,j,5) * mat_tr(5,k)
1291 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
1292 vec_out_x, vec_out_y, vec_out_z )
1294 real(rp),
intent(in) :: mat(5,5)
1295 real(rp),
intent(in) :: mat_tr(5,5)
1296 real(rp),
intent(in) :: vec_in_x(5,5**2)
1297 real(rp),
intent(in) :: vec_in_y(5,5,5)
1298 real(rp),
intent(in) :: vec_in_z(5,5,5)
1299 real(rp),
intent(out) :: vec_out_x(5,5**2)
1300 real(rp),
intent(out) :: vec_out_y(5,5**2)
1301 real(rp),
intent(out) :: vec_out_z(5,5**2)
1303 integer :: i, j, k, jk
1310 vec_out_x(i,jk) = mat(i,1) * vec_in_x(1,jk) &
1311 + mat(i,2) * vec_in_x(2,jk) &
1312 + mat(i,3) * vec_in_x(3,jk) &
1313 + mat(i,4) * vec_in_x(4,jk) &
1314 + mat(i,5) * vec_in_x(5,jk)
1323 vec_out_y(i,jk) = vec_in_y(i,1,k) * mat_tr(1,j) &
1324 + vec_in_y(i,2,k) * mat_tr(2,j) &
1325 + vec_in_y(i,3,k) * mat_tr(3,j) &
1326 + vec_in_y(i,4,k) * mat_tr(4,j) &
1327 + vec_in_y(i,5,k) * mat_tr(5,j)
1337 vec_out_z(i,jk) = vec_in_z(i,j,1) * mat_tr(1,k) &
1338 + vec_in_z(i,j,2) * mat_tr(2,k) &
1339 + vec_in_z(i,j,3) * mat_tr(3,k) &
1340 + vec_in_z(i,j,4) * mat_tr(4,k) &
1341 + vec_in_z(i,j,5) * mat_tr(5,k)
1349 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p4( &
1350 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
1351 vec_out_x, vec_out_y, vec_out_z )
1353 real(rp),
intent(in) :: mat(5,5)
1354 real(rp),
intent(in) :: mat_tr(5,5)
1355 real(rp),
intent(in) :: vec_in_x(5,5**2*5)
1356 real(rp),
intent(in) :: vec_in_y(5,5,5*5)
1357 real(rp),
intent(in) :: vec_in_z(5,5,5,5)
1358 real(rp),
intent(out) :: vec_out_x(5,5**2*5)
1359 real(rp),
intent(out) :: vec_out_y(5,5**2*5)
1360 real(rp),
intent(out) :: vec_out_z(5,5**2,5)
1362 integer :: i, j, k, jkv, jk, v, kv
1369 vec_out_x(i,jkv) = mat(i,1) * vec_in_x(1,jkv) &
1370 + mat(i,2) * vec_in_x(2,jkv) &
1371 + mat(i,3) * vec_in_x(3,jkv) &
1372 + mat(i,4) * vec_in_x(4,jkv) &
1373 + mat(i,5) * vec_in_x(5,jkv)
1382 vec_out_y(i,jkv) = vec_in_y(i,1,kv) * mat_tr(1,j) &
1383 + vec_in_y(i,2,kv) * mat_tr(2,j) &
1384 + vec_in_y(i,3,kv) * mat_tr(3,j) &
1385 + vec_in_y(i,4,kv) * mat_tr(4,j) &
1386 + vec_in_y(i,5,kv) * mat_tr(5,j)
1397 vec_out_z(i,jk,v) = vec_in_z(i,j,1,v) * mat_tr(1,k) &
1398 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
1399 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
1400 + vec_in_z(i,j,4,v) * mat_tr(4,k) &
1401 + vec_in_z(i,j,5,v) * mat_tr(5,k)
1407 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p4
1415 real(rp),
intent(in) :: mat_h1d(5,5)
1416 real(rp),
intent(in) :: mat_h1d_tr(5,5)
1417 real(rp),
intent(in) :: mat_v1d_tr(5,5)
1418 real(rp),
intent(in) :: vec_in(5,5,5)
1419 real(rp),
intent(out) :: vec_work(5,5,5)
1420 real(rp),
intent(out) :: vec_out(5,5,5)
1430 vec_out(i,j,k) = mat_h1d(i,1) * vec_in(1,j,k) &
1431 + mat_h1d(i,2) * vec_in(2,j,k) &
1432 + mat_h1d(i,3) * vec_in(3,j,k) &
1433 + mat_h1d(i,4) * vec_in(4,j,k) &
1434 + mat_h1d(i,5) * vec_in(5,j,k)
1443 vec_work(i,j,k) = vec_out(i,1,k) * mat_h1d_tr(1,j) &
1444 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
1445 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
1446 + vec_out(i,4,k) * mat_h1d_tr(4,j) &
1447 + vec_out(i,5,k) * mat_h1d_tr(5,j)
1456 vec_out(i,j,k) = vec_work(i,j,1) * mat_v1d_tr(1,k) &
1457 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
1458 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
1459 + vec_work(i,j,4) * mat_v1d_tr(4,k) &
1460 + vec_work(i,j,5) * mat_v1d_tr(5,k)
1475 real(rp),
intent(in) :: mat_x(6,6)
1476 real(rp),
intent(in) :: vec_in(6,6**2)
1477 real(rp),
intent(out) :: vec_out(6,6**2)
1484 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
1485 + mat_x(i,2) * vec_in(2,jk) &
1486 + mat_x(i,3) * vec_in(3,jk) &
1487 + mat_x(i,4) * vec_in(4,jk) &
1488 + mat_x(i,5) * vec_in(5,jk) &
1489 + mat_x(i,6) * vec_in(6,jk)
1502 real(rp),
intent(in) :: mat_y_tr(6,6)
1503 real(rp),
intent(in) :: vec_in(6,6,6)
1504 real(rp),
intent(out) :: vec_out(6,6,6)
1512 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
1513 + vec_in(i,2,k) * mat_y_tr(2,j) &
1514 + vec_in(i,3,k) * mat_y_tr(3,j) &
1515 + vec_in(i,4,k) * mat_y_tr(4,j) &
1516 + vec_in(i,5,k) * mat_y_tr(5,j) &
1517 + vec_in(i,6,k) * mat_y_tr(6,j)
1531 real(rp),
intent(in) :: mat_z_tr(6,6)
1532 real(rp),
intent(in) :: vec_in(6,6,6)
1533 real(rp),
intent(out) :: vec_out(6,6,6)
1541 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
1542 + vec_in(i,j,2) * mat_z_tr(2,k) &
1543 + vec_in(i,j,3) * mat_z_tr(3,k) &
1544 + vec_in(i,j,4) * mat_z_tr(4,k) &
1545 + vec_in(i,j,5) * mat_z_tr(5,k) &
1546 + vec_in(i,j,6) * mat_z_tr(6,k)
1559 real(rp),
intent(in) :: lift(6,6,6,6)
1560 real(rp),
intent(in) :: vec_in(6,6,6)
1561 real(rp),
intent(out) :: vec_out(6,6,6)
1569 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
1570 + lift(i,j,k,2) * vec_in(j,k,2) &
1571 + lift(i,j,k,3) * vec_in(i,k,3) &
1572 + lift(i,j,k,4) * vec_in(j,k,4) &
1573 + lift(i,j,k,5) * vec_in(i,j,5) &
1574 + lift(i,j,k,6) * vec_in(i,j,6)
1588 vec_out_x, vec_out_y, vec_out_z )
1590 real(rp),
intent(in) :: mat(6,6)
1591 real(rp),
intent(in) :: mat_tr(6,6)
1592 real(rp),
intent(in) :: vec_in_(6,6**2)
1593 real(rp),
intent(in) :: vec_in(6,6,6)
1594 real(rp),
intent(out) :: vec_out_x(6,6**2)
1595 real(rp),
intent(out) :: vec_out_y(6,6,6)
1596 real(rp),
intent(out) :: vec_out_z(6,6,6)
1598 integer :: i, j, k, jk
1605 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
1606 + mat(i,2) * vec_in_(2,jk) &
1607 + mat(i,3) * vec_in_(3,jk) &
1608 + mat(i,4) * vec_in_(4,jk) &
1609 + mat(i,5) * vec_in_(5,jk) &
1610 + mat(i,6) * vec_in_(6,jk)
1618 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
1619 + vec_in(i,2,k) * mat_tr(2,j) &
1620 + vec_in(i,3,k) * mat_tr(3,j) &
1621 + vec_in(i,4,k) * mat_tr(4,j) &
1622 + vec_in(i,5,k) * mat_tr(5,j) &
1623 + vec_in(i,6,k) * mat_tr(6,j)
1632 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
1633 + vec_in(i,j,2) * mat_tr(2,k) &
1634 + vec_in(i,j,3) * mat_tr(3,k) &
1635 + vec_in(i,j,4) * mat_tr(4,k) &
1636 + vec_in(i,j,5) * mat_tr(5,k) &
1637 + vec_in(i,j,6) * mat_tr(6,k)
1651 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
1652 vec_out_x, vec_out_y, vec_out_z )
1654 real(rp),
intent(in) :: mat(6,6)
1655 real(rp),
intent(in) :: mat_tr(6,6)
1656 real(rp),
intent(in) :: vec_in_x(6,6**2)
1657 real(rp),
intent(in) :: vec_in_y(6,6,6)
1658 real(rp),
intent(in) :: vec_in_z(6,6,6)
1659 real(rp),
intent(out) :: vec_out_x(6,6**2)
1660 real(rp),
intent(out) :: vec_out_y(6,6**2)
1661 real(rp),
intent(out) :: vec_out_z(6,6**2)
1663 integer :: i, j, k, jk
1670 vec_out_x(i,jk) = mat(i,1) * vec_in_x(1,jk) &
1671 + mat(i,2) * vec_in_x(2,jk) &
1672 + mat(i,3) * vec_in_x(3,jk) &
1673 + mat(i,4) * vec_in_x(4,jk) &
1674 + mat(i,5) * vec_in_x(5,jk) &
1675 + mat(i,6) * vec_in_x(6,jk)
1684 vec_out_y(i,jk) = vec_in_y(i,1,k) * mat_tr(1,j) &
1685 + vec_in_y(i,2,k) * mat_tr(2,j) &
1686 + vec_in_y(i,3,k) * mat_tr(3,j) &
1687 + vec_in_y(i,4,k) * mat_tr(4,j) &
1688 + vec_in_y(i,5,k) * mat_tr(5,j) &
1689 + vec_in_y(i,6,k) * mat_tr(6,j)
1699 vec_out_z(i,jk) = vec_in_z(i,j,1) * mat_tr(1,k) &
1700 + vec_in_z(i,j,2) * mat_tr(2,k) &
1701 + vec_in_z(i,j,3) * mat_tr(3,k) &
1702 + vec_in_z(i,j,4) * mat_tr(4,k) &
1703 + vec_in_z(i,j,5) * mat_tr(5,k) &
1704 + vec_in_z(i,j,6) * mat_tr(6,k)
1712 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p5( &
1713 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
1714 vec_out_x, vec_out_y, vec_out_z )
1716 real(rp),
intent(in) :: mat(6,6)
1717 real(rp),
intent(in) :: mat_tr(6,6)
1718 real(rp),
intent(in) :: vec_in_x(6,6**2*5)
1719 real(rp),
intent(in) :: vec_in_y(6,6,6*5)
1720 real(rp),
intent(in) :: vec_in_z(6,6,6,5)
1721 real(rp),
intent(out) :: vec_out_x(6,6**2*5)
1722 real(rp),
intent(out) :: vec_out_y(6,6**2*5)
1723 real(rp),
intent(out) :: vec_out_z(6,6**2,5)
1725 integer :: i, j, k, jkv, jk, v, kv
1732 vec_out_x(i,jkv) = mat(i,1) * vec_in_x(1,jkv) &
1733 + mat(i,2) * vec_in_x(2,jkv) &
1734 + mat(i,3) * vec_in_x(3,jkv) &
1735 + mat(i,4) * vec_in_x(4,jkv) &
1736 + mat(i,5) * vec_in_x(5,jkv) &
1737 + mat(i,6) * vec_in_x(6,jkv)
1746 vec_out_y(i,jkv) = vec_in_y(i,1,kv) * mat_tr(1,j) &
1747 + vec_in_y(i,2,kv) * mat_tr(2,j) &
1748 + vec_in_y(i,3,kv) * mat_tr(3,j) &
1749 + vec_in_y(i,4,kv) * mat_tr(4,j) &
1750 + vec_in_y(i,5,kv) * mat_tr(5,j) &
1751 + vec_in_y(i,6,kv) * mat_tr(6,j)
1762 vec_out_z(i,jk,v) = vec_in_z(i,j,1,v) * mat_tr(1,k) &
1763 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
1764 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
1765 + vec_in_z(i,j,4,v) * mat_tr(4,k) &
1766 + vec_in_z(i,j,5,v) * mat_tr(5,k) &
1767 + vec_in_z(i,j,6,v) * mat_tr(6,k)
1773 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p5
1781 real(rp),
intent(in) :: mat_h1d(6,6)
1782 real(rp),
intent(in) :: mat_h1d_tr(6,6)
1783 real(rp),
intent(in) :: mat_v1d_tr(6,6)
1784 real(rp),
intent(in) :: vec_in(6,6,6)
1785 real(rp),
intent(out) :: vec_work(6,6,6)
1786 real(rp),
intent(out) :: vec_out(6,6,6)
1796 vec_out(i,j,k) = mat_h1d(i,1) * vec_in(1,j,k) &
1797 + mat_h1d(i,2) * vec_in(2,j,k) &
1798 + mat_h1d(i,3) * vec_in(3,j,k) &
1799 + mat_h1d(i,4) * vec_in(4,j,k) &
1800 + mat_h1d(i,5) * vec_in(5,j,k) &
1801 + mat_h1d(i,6) * vec_in(6,j,k)
1810 vec_work(i,j,k) = vec_out(i,1,k) * mat_h1d_tr(1,j) &
1811 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
1812 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
1813 + vec_out(i,4,k) * mat_h1d_tr(4,j) &
1814 + vec_out(i,5,k) * mat_h1d_tr(5,j) &
1815 + vec_out(i,6,k) * mat_h1d_tr(6,j)
1824 vec_out(i,j,k) = vec_work(i,j,1) * mat_v1d_tr(1,k) &
1825 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
1826 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
1827 + vec_work(i,j,4) * mat_v1d_tr(4,k) &
1828 + vec_work(i,j,5) * mat_v1d_tr(5,k) &
1829 + vec_work(i,j,6) * mat_v1d_tr(6,k)
1844 real(rp),
intent(in) :: mat_x(7,7)
1845 real(rp),
intent(in) :: vec_in(7,7**2)
1846 real(rp),
intent(out) :: vec_out(7,7**2)
1853 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
1854 + mat_x(i,2) * vec_in(2,jk) &
1855 + mat_x(i,3) * vec_in(3,jk) &
1856 + mat_x(i,4) * vec_in(4,jk) &
1857 + mat_x(i,5) * vec_in(5,jk) &
1858 + mat_x(i,6) * vec_in(6,jk) &
1859 + mat_x(i,7) * vec_in(7,jk)
1872 real(rp),
intent(in) :: mat_y_tr(7,7)
1873 real(rp),
intent(in) :: vec_in(7,7,7)
1874 real(rp),
intent(out) :: vec_out(7,7,7)
1882 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
1883 + vec_in(i,2,k) * mat_y_tr(2,j) &
1884 + vec_in(i,3,k) * mat_y_tr(3,j) &
1885 + vec_in(i,4,k) * mat_y_tr(4,j) &
1886 + vec_in(i,5,k) * mat_y_tr(5,j) &
1887 + vec_in(i,6,k) * mat_y_tr(6,j) &
1888 + vec_in(i,7,k) * mat_y_tr(7,j)
1902 real(rp),
intent(in) :: mat_z_tr(7,7)
1903 real(rp),
intent(in) :: vec_in(7,7,7)
1904 real(rp),
intent(out) :: vec_out(7,7,7)
1912 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
1913 + vec_in(i,j,2) * mat_z_tr(2,k) &
1914 + vec_in(i,j,3) * mat_z_tr(3,k) &
1915 + vec_in(i,j,4) * mat_z_tr(4,k) &
1916 + vec_in(i,j,5) * mat_z_tr(5,k) &
1917 + vec_in(i,j,6) * mat_z_tr(6,k) &
1918 + vec_in(i,j,7) * mat_z_tr(7,k)
1931 real(rp),
intent(in) :: lift(7,7,7,6)
1932 real(rp),
intent(in) :: vec_in(7,7,6)
1933 real(rp),
intent(out) :: vec_out(7,7,7)
1941 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
1942 + lift(i,j,k,2) * vec_in(j,k,2) &
1943 + lift(i,j,k,3) * vec_in(i,k,3) &
1944 + lift(i,j,k,4) * vec_in(j,k,4) &
1945 + lift(i,j,k,5) * vec_in(i,j,5) &
1946 + lift(i,j,k,6) * vec_in(i,j,6)
1960 vec_out_x, vec_out_y, vec_out_z )
1962 real(rp),
intent(in) :: mat(7,7)
1963 real(rp),
intent(in) :: mat_tr(7,7)
1964 real(rp),
intent(in) :: vec_in_(7,7**2)
1965 real(rp),
intent(in) :: vec_in(7,7,7)
1966 real(rp),
intent(out) :: vec_out_x(7,7**2)
1967 real(rp),
intent(out) :: vec_out_y(7,7,7)
1968 real(rp),
intent(out) :: vec_out_z(7,7,7)
1970 integer :: i, j, k, jk
1977 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
1978 + mat(i,2) * vec_in_(2,jk) &
1979 + mat(i,3) * vec_in_(3,jk) &
1980 + mat(i,4) * vec_in_(4,jk) &
1981 + mat(i,5) * vec_in_(5,jk) &
1982 + mat(i,6) * vec_in_(6,jk) &
1983 + mat(i,7) * vec_in_(7,jk)
1991 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
1992 + vec_in(i,2,k) * mat_tr(2,j) &
1993 + vec_in(i,3,k) * mat_tr(3,j) &
1994 + vec_in(i,4,k) * mat_tr(4,j) &
1995 + vec_in(i,5,k) * mat_tr(5,j) &
1996 + vec_in(i,6,k) * mat_tr(6,j) &
1997 + vec_in(i,7,k) * mat_tr(7,j)
2006 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
2007 + vec_in(i,j,2) * mat_tr(2,k) &
2008 + vec_in(i,j,3) * mat_tr(3,k) &
2009 + vec_in(i,j,4) * mat_tr(4,k) &
2010 + vec_in(i,j,5) * mat_tr(5,k) &
2011 + vec_in(i,j,6) * mat_tr(6,k) &
2012 + vec_in(i,j,7) * mat_tr(7,k)
2026 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
2027 vec_out_x, vec_out_y, vec_out_z )
2029 real(rp),
intent(in) :: mat(7,7)
2030 real(rp),
intent(in) :: mat_tr(7,7)
2031 real(rp),
intent(in) :: vec_in_x(7,7**2)
2032 real(rp),
intent(in) :: vec_in_y(7,7,7)
2033 real(rp),
intent(in) :: vec_in_z(7,7,7)
2034 real(rp),
intent(out) :: vec_out_x(7,7**2)
2035 real(rp),
intent(out) :: vec_out_y(7,7**2)
2036 real(rp),
intent(out) :: vec_out_z(7,7**2)
2038 integer :: i, j, k, jk
2045 vec_out_x(i,jk) = mat(i,1) * vec_in_x(1,jk) &
2046 + mat(i,2) * vec_in_x(2,jk) &
2047 + mat(i,3) * vec_in_x(3,jk) &
2048 + mat(i,4) * vec_in_x(4,jk) &
2049 + mat(i,5) * vec_in_x(5,jk) &
2050 + mat(i,6) * vec_in_x(6,jk) &
2051 + mat(i,7) * vec_in_x(7,jk)
2060 vec_out_y(i,jk) = vec_in_y(i,1,k) * mat_tr(1,j) &
2061 + vec_in_y(i,2,k) * mat_tr(2,j) &
2062 + vec_in_y(i,3,k) * mat_tr(3,j) &
2063 + vec_in_y(i,4,k) * mat_tr(4,j) &
2064 + vec_in_y(i,5,k) * mat_tr(5,j) &
2065 + vec_in_y(i,6,k) * mat_tr(6,j) &
2066 + vec_in_y(i,7,k) * mat_tr(7,j)
2076 vec_out_z(i,jk) = vec_in_z(i,j,1) * mat_tr(1,k) &
2077 + vec_in_z(i,j,2) * mat_tr(2,k) &
2078 + vec_in_z(i,j,3) * mat_tr(3,k) &
2079 + vec_in_z(i,j,4) * mat_tr(4,k) &
2080 + vec_in_z(i,j,5) * mat_tr(5,k) &
2081 + vec_in_z(i,j,6) * mat_tr(6,k) &
2082 + vec_in_z(i,j,7) * mat_tr(7,k)
2090 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p6( &
2091 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
2092 vec_out_x, vec_out_y, vec_out_z )
2094 real(rp),
intent(in) :: mat(7,7)
2095 real(rp),
intent(in) :: mat_tr(7,7)
2096 real(rp),
intent(in) :: vec_in_x(7,7**2*5)
2097 real(rp),
intent(in) :: vec_in_y(7,7,7*5)
2098 real(rp),
intent(in) :: vec_in_z(7,7,7,5)
2099 real(rp),
intent(out) :: vec_out_x(7,7**2*5)
2100 real(rp),
intent(out) :: vec_out_y(7,7**2*5)
2101 real(rp),
intent(out) :: vec_out_z(7,7**2,5)
2103 integer :: i, j, k, jkv, jk, v, kv
2110 vec_out_x(i,jkv) = mat(i,1) * vec_in_x(1,jkv) &
2111 + mat(i,2) * vec_in_x(2,jkv) &
2112 + mat(i,3) * vec_in_x(3,jkv) &
2113 + mat(i,4) * vec_in_x(4,jkv) &
2114 + mat(i,5) * vec_in_x(5,jkv) &
2115 + mat(i,6) * vec_in_x(6,jkv) &
2116 + mat(i,7) * vec_in_x(7,jkv)
2125 vec_out_y(i,jkv) = vec_in_y(i,1,kv) * mat_tr(1,j) &
2126 + vec_in_y(i,2,kv) * mat_tr(2,j) &
2127 + vec_in_y(i,3,kv) * mat_tr(3,j) &
2128 + vec_in_y(i,4,kv) * mat_tr(4,j) &
2129 + vec_in_y(i,5,kv) * mat_tr(5,j) &
2130 + vec_in_y(i,6,kv) * mat_tr(6,j) &
2131 + vec_in_y(i,7,kv) * mat_tr(7,j)
2142 vec_out_z(i,jk,v) = vec_in_z(i,j,1,v) * mat_tr(1,k) &
2143 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
2144 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
2145 + vec_in_z(i,j,4,v) * mat_tr(4,k) &
2146 + vec_in_z(i,j,5,v) * mat_tr(5,k) &
2147 + vec_in_z(i,j,6,v) * mat_tr(6,k) &
2148 + vec_in_z(i,j,7,v) * mat_tr(7,k)
2154 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p6
2162 real(rp),
intent(in) :: mat_h1d(7,7)
2163 real(rp),
intent(in) :: mat_h1d_tr(7,7)
2164 real(rp),
intent(in) :: mat_v1d_tr(7,7)
2165 real(rp),
intent(in) :: vec_in(7,7,7)
2166 real(rp),
intent(out) :: vec_work(7,7,7)
2167 real(rp),
intent(out) :: vec_out(7,7,7)
2177 vec_out(i,j,k) = mat_h1d(i,1) * vec_in(1,j,k) &
2178 + mat_h1d(i,2) * vec_in(2,j,k) &
2179 + mat_h1d(i,3) * vec_in(3,j,k) &
2180 + mat_h1d(i,4) * vec_in(4,j,k) &
2181 + mat_h1d(i,5) * vec_in(5,j,k) &
2182 + mat_h1d(i,6) * vec_in(6,j,k) &
2183 + mat_h1d(i,7) * vec_in(7,j,k)
2192 vec_work(i,j,k) = vec_out(i,1,k) * mat_h1d_tr(1,j) &
2193 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
2194 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
2195 + vec_out(i,4,k) * mat_h1d_tr(4,j) &
2196 + vec_out(i,5,k) * mat_h1d_tr(5,j) &
2197 + vec_out(i,6,k) * mat_h1d_tr(6,j) &
2198 + vec_out(i,7,k) * mat_h1d_tr(7,j)
2207 vec_out(i,j,k) = vec_work(i,j,1) * mat_v1d_tr(1,k) &
2208 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
2209 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
2210 + vec_work(i,j,4) * mat_v1d_tr(4,k) &
2211 + vec_work(i,j,5) * mat_v1d_tr(5,k) &
2212 + vec_work(i,j,6) * mat_v1d_tr(6,k) &
2213 + vec_work(i,j,7) * mat_v1d_tr(7,k)
2228 real(rp),
intent(in) :: mat_x(8,8)
2229 real(rp),
intent(in) :: vec_in(8,8**2)
2230 real(rp),
intent(out) :: vec_out(8,8**2)
2237 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
2238 + mat_x(i,2) * vec_in(2,jk) &
2239 + mat_x(i,3) * vec_in(3,jk) &
2240 + mat_x(i,4) * vec_in(4,jk) &
2241 + mat_x(i,5) * vec_in(5,jk) &
2242 + mat_x(i,6) * vec_in(6,jk) &
2243 + mat_x(i,7) * vec_in(7,jk) &
2244 + mat_x(i,8) * vec_in(8,jk)
2257 real(rp),
intent(in) :: mat_y_tr(8,8)
2258 real(rp),
intent(in) :: vec_in(8,8,8)
2259 real(rp),
intent(out) :: vec_out(8,8,8)
2267 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
2268 + vec_in(i,2,k) * mat_y_tr(2,j) &
2269 + vec_in(i,3,k) * mat_y_tr(3,j) &
2270 + vec_in(i,4,k) * mat_y_tr(4,j) &
2271 + vec_in(i,5,k) * mat_y_tr(5,j) &
2272 + vec_in(i,6,k) * mat_y_tr(6,j) &
2273 + vec_in(i,7,k) * mat_y_tr(7,j) &
2274 + vec_in(i,8,k) * mat_y_tr(8,j)
2288 real(rp),
intent(in) :: mat_z_tr(8,8)
2289 real(rp),
intent(in) :: vec_in(8,8,8)
2290 real(rp),
intent(out) :: vec_out(8,8,8)
2298 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
2299 + vec_in(i,j,2) * mat_z_tr(2,k) &
2300 + vec_in(i,j,3) * mat_z_tr(3,k) &
2301 + vec_in(i,j,4) * mat_z_tr(4,k) &
2302 + vec_in(i,j,5) * mat_z_tr(5,k) &
2303 + vec_in(i,j,6) * mat_z_tr(6,k) &
2304 + vec_in(i,j,7) * mat_z_tr(7,k) &
2305 + vec_in(i,j,8) * mat_z_tr(8,k)
2318 real(rp),
intent(in) :: lift(8,8,8,6)
2319 real(rp),
intent(in) :: vec_in(8,8,6)
2320 real(rp),
intent(out) :: vec_out(8,8,8)
2328 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
2329 + lift(i,j,k,2) * vec_in(j,k,2) &
2330 + lift(i,j,k,3) * vec_in(i,k,3) &
2331 + lift(i,j,k,4) * vec_in(j,k,4) &
2332 + lift(i,j,k,5) * vec_in(i,j,5) &
2333 + lift(i,j,k,6) * vec_in(i,j,6)
2347 vec_out_x, vec_out_y, vec_out_z )
2349 real(rp),
intent(in) :: mat(8,8)
2350 real(rp),
intent(in) :: mat_tr(8,8)
2351 real(rp),
intent(in) :: vec_in_(8,8**2)
2352 real(rp),
intent(in) :: vec_in(8,8,8)
2353 real(rp),
intent(out) :: vec_out_x(8,8**2)
2354 real(rp),
intent(out) :: vec_out_y(8,8,8)
2355 real(rp),
intent(out) :: vec_out_z(8,8,8)
2357 integer :: i, j, k, jk
2364 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
2365 + mat(i,2) * vec_in_(2,jk) &
2366 + mat(i,3) * vec_in_(3,jk) &
2367 + mat(i,4) * vec_in_(4,jk) &
2368 + mat(i,5) * vec_in_(5,jk) &
2369 + mat(i,6) * vec_in_(6,jk) &
2370 + mat(i,7) * vec_in_(7,jk) &
2371 + mat(i,8) * vec_in_(8,jk)
2379 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
2380 + vec_in(i,2,k) * mat_tr(2,j) &
2381 + vec_in(i,3,k) * mat_tr(3,j) &
2382 + vec_in(i,4,k) * mat_tr(4,j) &
2383 + vec_in(i,5,k) * mat_tr(5,j) &
2384 + vec_in(i,6,k) * mat_tr(6,j) &
2385 + vec_in(i,7,k) * mat_tr(7,j) &
2386 + vec_in(i,8,k) * mat_tr(8,j)
2395 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
2396 + vec_in(i,j,2) * mat_tr(2,k) &
2397 + vec_in(i,j,3) * mat_tr(3,k) &
2398 + vec_in(i,j,4) * mat_tr(4,k) &
2399 + vec_in(i,j,5) * mat_tr(5,k) &
2400 + vec_in(i,j,6) * mat_tr(6,k) &
2401 + vec_in(i,j,7) * mat_tr(7,k) &
2402 + vec_in(i,j,8) * mat_tr(8,k)
2416 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
2417 vec_out_x, vec_out_y, vec_out_z )
2419 real(rp),
intent(in) :: mat(8,8)
2420 real(rp),
intent(in) :: mat_tr(8,8)
2421 real(rp),
intent(in) :: vec_in_x(8,8**2)
2422 real(rp),
intent(in) :: vec_in_y(8,8,8)
2423 real(rp),
intent(in) :: vec_in_z(8,8,8)
2424 real(rp),
intent(out) :: vec_out_x(8,8**2)
2425 real(rp),
intent(out) :: vec_out_y(8,8**2)
2426 real(rp),
intent(out) :: vec_out_z(8,8**2)
2428 integer :: i, j, k, jk
2435 vec_out_x(i,jk) = mat(i,1) * vec_in_x(1,jk) &
2436 + mat(i,2) * vec_in_x(2,jk) &
2437 + mat(i,3) * vec_in_x(3,jk) &
2438 + mat(i,4) * vec_in_x(4,jk) &
2439 + mat(i,5) * vec_in_x(5,jk) &
2440 + mat(i,6) * vec_in_x(6,jk) &
2441 + mat(i,7) * vec_in_x(7,jk) &
2442 + mat(i,8) * vec_in_x(8,jk)
2451 vec_out_y(i,jk) = vec_in_y(i,1,k) * mat_tr(1,j) &
2452 + vec_in_y(i,2,k) * mat_tr(2,j) &
2453 + vec_in_y(i,3,k) * mat_tr(3,j) &
2454 + vec_in_y(i,4,k) * mat_tr(4,j) &
2455 + vec_in_y(i,5,k) * mat_tr(5,j) &
2456 + vec_in_y(i,6,k) * mat_tr(6,j) &
2457 + vec_in_y(i,7,k) * mat_tr(7,j) &
2458 + vec_in_y(i,8,k) * mat_tr(8,j)
2468 vec_out_z(i,jk) = vec_in_z(i,j,1) * mat_tr(1,k) &
2469 + vec_in_z(i,j,2) * mat_tr(2,k) &
2470 + vec_in_z(i,j,3) * mat_tr(3,k) &
2471 + vec_in_z(i,j,4) * mat_tr(4,k) &
2472 + vec_in_z(i,j,5) * mat_tr(5,k) &
2473 + vec_in_z(i,j,6) * mat_tr(6,k) &
2474 + vec_in_z(i,j,7) * mat_tr(7,k) &
2475 + vec_in_z(i,j,8) * mat_tr(8,k)
2483 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p7( &
2484 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
2485 vec_out_x, vec_out_y, vec_out_z )
2487 real(rp),
intent(in) :: mat(8,8)
2488 real(rp),
intent(in) :: mat_tr(8,8)
2489 real(rp),
intent(in) :: vec_in_x(8,8**2*5)
2490 real(rp),
intent(in) :: vec_in_y(8,8,8*5)
2491 real(rp),
intent(in) :: vec_in_z(8,8,8,5)
2492 real(rp),
intent(out) :: vec_out_x(8,8**2*5)
2493 real(rp),
intent(out) :: vec_out_y(8,8**2*5)
2494 real(rp),
intent(out) :: vec_out_z(8,8**2,5)
2496 integer :: i, j, k, jkv, jk, v, kv
2503 vec_out_x(i,jkv) = mat(i,1) * vec_in_x(1,jkv) &
2504 + mat(i,2) * vec_in_x(2,jkv) &
2505 + mat(i,3) * vec_in_x(3,jkv) &
2506 + mat(i,4) * vec_in_x(4,jkv) &
2507 + mat(i,5) * vec_in_x(5,jkv) &
2508 + mat(i,6) * vec_in_x(6,jkv) &
2509 + mat(i,7) * vec_in_x(7,jkv) &
2510 + mat(i,8) * vec_in_x(8,jkv)
2519 vec_out_y(i,jkv) = vec_in_y(i,1,kv) * mat_tr(1,j) &
2520 + vec_in_y(i,2,kv) * mat_tr(2,j) &
2521 + vec_in_y(i,3,kv) * mat_tr(3,j) &
2522 + vec_in_y(i,4,kv) * mat_tr(4,j) &
2523 + vec_in_y(i,5,kv) * mat_tr(5,j) &
2524 + vec_in_y(i,6,kv) * mat_tr(6,j) &
2525 + vec_in_y(i,7,kv) * mat_tr(7,j) &
2526 + vec_in_y(i,8,kv) * mat_tr(8,j)
2537 vec_out_z(i,jk,v) = vec_in_z(i,j,1,v) * mat_tr(1,k) &
2538 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
2539 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
2540 + vec_in_z(i,j,4,v) * mat_tr(4,k) &
2541 + vec_in_z(i,j,5,v) * mat_tr(5,k) &
2542 + vec_in_z(i,j,6,v) * mat_tr(6,k) &
2543 + vec_in_z(i,j,7,v) * mat_tr(7,k) &
2544 + vec_in_z(i,j,8,v) * mat_tr(8,k)
2550 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p7
2558 real(rp),
intent(in) :: mat_h1d(8,8)
2559 real(rp),
intent(in) :: mat_h1d_tr(8,8)
2560 real(rp),
intent(in) :: mat_v1d_tr(8,8)
2561 real(rp),
intent(in) :: vec_in(8,8,8)
2562 real(rp),
intent(out) :: vec_work(8,8,8)
2563 real(rp),
intent(out) :: vec_out(8,8,8)
2573 vec_out(i,j,k) = mat_h1d(i,1) * vec_in(1,j,k) &
2574 + mat_h1d(i,2) * vec_in(2,j,k) &
2575 + mat_h1d(i,3) * vec_in(3,j,k) &
2576 + mat_h1d(i,4) * vec_in(4,j,k) &
2577 + mat_h1d(i,5) * vec_in(5,j,k) &
2578 + mat_h1d(i,6) * vec_in(6,j,k) &
2579 + mat_h1d(i,7) * vec_in(7,j,k) &
2580 + mat_h1d(i,8) * vec_in(8,j,k)
2589 vec_work(i,j,k) = vec_out(i,1,k) * mat_h1d_tr(1,j) &
2590 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
2591 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
2592 + vec_out(i,4,k) * mat_h1d_tr(4,j) &
2593 + vec_out(i,5,k) * mat_h1d_tr(5,j) &
2594 + vec_out(i,6,k) * mat_h1d_tr(6,j) &
2595 + vec_out(i,7,k) * mat_h1d_tr(7,j) &
2596 + vec_out(i,8,k) * mat_h1d_tr(8,j)
2605 vec_out(i,j,k) = vec_work(i,j,1) * mat_v1d_tr(1,k) &
2606 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
2607 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
2608 + vec_work(i,j,4) * mat_v1d_tr(4,k) &
2609 + vec_work(i,j,5) * mat_v1d_tr(5,k) &
2610 + vec_work(i,j,6) * mat_v1d_tr(6,k) &
2611 + vec_work(i,j,7) * mat_v1d_tr(7,k) &
2612 + vec_work(i,j,8) * mat_v1d_tr(8,k)
2627 real(rp),
intent(in) :: mat_x(9,9)
2628 real(rp),
intent(in) :: vec_in(9,9**2)
2629 real(rp),
intent(out) :: vec_out(9,9**2)
2636 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
2637 + mat_x(i,2) * vec_in(2,jk) &
2638 + mat_x(i,3) * vec_in(3,jk) &
2639 + mat_x(i,4) * vec_in(4,jk) &
2640 + mat_x(i,5) * vec_in(5,jk) &
2641 + mat_x(i,6) * vec_in(6,jk) &
2642 + mat_x(i,7) * vec_in(7,jk) &
2643 + mat_x(i,8) * vec_in(8,jk) &
2644 + mat_x(i,9) * vec_in(9,jk)
2657 real(rp),
intent(in) :: mat_y_tr(9,9)
2658 real(rp),
intent(in) :: vec_in(9,9,9)
2659 real(rp),
intent(out) :: vec_out(9,9,9)
2667 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
2668 + vec_in(i,2,k) * mat_y_tr(2,j) &
2669 + vec_in(i,3,k) * mat_y_tr(3,j) &
2670 + vec_in(i,4,k) * mat_y_tr(4,j) &
2671 + vec_in(i,5,k) * mat_y_tr(5,j) &
2672 + vec_in(i,6,k) * mat_y_tr(6,j) &
2673 + vec_in(i,7,k) * mat_y_tr(7,j) &
2674 + vec_in(i,8,k) * mat_y_tr(8,j) &
2675 + vec_in(i,9,k) * mat_y_tr(9,j)
2689 real(rp),
intent(in) :: mat_z_tr(9,9)
2690 real(rp),
intent(in) :: vec_in(9,9,9)
2691 real(rp),
intent(out) :: vec_out(9,9,9)
2699 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
2700 + vec_in(i,j,2) * mat_z_tr(2,k) &
2701 + vec_in(i,j,3) * mat_z_tr(3,k) &
2702 + vec_in(i,j,4) * mat_z_tr(4,k) &
2703 + vec_in(i,j,5) * mat_z_tr(5,k) &
2704 + vec_in(i,j,6) * mat_z_tr(6,k) &
2705 + vec_in(i,j,7) * mat_z_tr(7,k) &
2706 + vec_in(i,j,8) * mat_z_tr(8,k) &
2707 + vec_in(i,j,9) * mat_z_tr(9,k)
2720 real(rp),
intent(in) :: lift(9,9,9,6)
2721 real(rp),
intent(in) :: vec_in(9,9,6)
2722 real(rp),
intent(out) :: vec_out(9,9,9)
2730 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
2731 + lift(i,j,k,2) * vec_in(j,k,2) &
2732 + lift(i,j,k,3) * vec_in(i,k,3) &
2733 + lift(i,j,k,4) * vec_in(j,k,4) &
2734 + lift(i,j,k,5) * vec_in(i,j,5) &
2735 + lift(i,j,k,6) * vec_in(i,j,6)
2749 vec_out_x, vec_out_y, vec_out_z )
2751 real(rp),
intent(in) :: mat(9,9)
2752 real(rp),
intent(in) :: mat_tr(9,9)
2753 real(rp),
intent(in) :: vec_in_(9,9**2)
2754 real(rp),
intent(in) :: vec_in(9,9,9)
2755 real(rp),
intent(out) :: vec_out_x(9,9**2)
2756 real(rp),
intent(out) :: vec_out_y(9,9,9)
2757 real(rp),
intent(out) :: vec_out_z(9,9,9)
2759 integer :: i, j, k, jk
2766 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
2767 + mat(i,2) * vec_in_(2,jk) &
2768 + mat(i,3) * vec_in_(3,jk) &
2769 + mat(i,4) * vec_in_(4,jk) &
2770 + mat(i,5) * vec_in_(5,jk) &
2771 + mat(i,6) * vec_in_(6,jk) &
2772 + mat(i,7) * vec_in_(7,jk) &
2773 + mat(i,8) * vec_in_(8,jk) &
2774 + mat(i,9) * vec_in_(9,jk)
2782 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
2783 + vec_in(i,2,k) * mat_tr(2,j) &
2784 + vec_in(i,3,k) * mat_tr(3,j) &
2785 + vec_in(i,4,k) * mat_tr(4,j) &
2786 + vec_in(i,5,k) * mat_tr(5,j) &
2787 + vec_in(i,6,k) * mat_tr(6,j) &
2788 + vec_in(i,7,k) * mat_tr(7,j) &
2789 + vec_in(i,8,k) * mat_tr(8,j) &
2790 + vec_in(i,9,k) * mat_tr(9,j)
2799 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
2800 + vec_in(i,j,2) * mat_tr(2,k) &
2801 + vec_in(i,j,3) * mat_tr(3,k) &
2802 + vec_in(i,j,4) * mat_tr(4,k) &
2803 + vec_in(i,j,5) * mat_tr(5,k) &
2804 + vec_in(i,j,6) * mat_tr(6,k) &
2805 + vec_in(i,j,7) * mat_tr(7,k) &
2806 + vec_in(i,j,8) * mat_tr(8,k) &
2807 + vec_in(i,j,9) * mat_tr(9,k)
2821 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
2822 vec_out_x, vec_out_y, vec_out_z )
2824 real(rp),
intent(in) :: mat(9,9)
2825 real(rp),
intent(in) :: mat_tr(9,9)
2826 real(rp),
intent(in) :: vec_in_x(9,9**2)
2827 real(rp),
intent(in) :: vec_in_y(9,9,9)
2828 real(rp),
intent(in) :: vec_in_z(9,9,9)
2829 real(rp),
intent(out) :: vec_out_x(9,9**2)
2830 real(rp),
intent(out) :: vec_out_y(9,9**2)
2831 real(rp),
intent(out) :: vec_out_z(9,9**2)
2833 integer :: i, j, k, jk
2834 real(rp) :: tmp1, tmp2, tmp3
2841 tmp1 = mat(i,1) * vec_in_x(1,jk) &
2842 + mat(i,2) * vec_in_x(2,jk) &
2843 + mat(i,3) * vec_in_x(3,jk)
2844 tmp2 = mat(i,4) * vec_in_x(4,jk) &
2845 + mat(i,5) * vec_in_x(5,jk) &
2846 + mat(i,6) * vec_in_x(6,jk)
2847 tmp3 = mat(i,7) * vec_in_x(7,jk) &
2848 + mat(i,8) * vec_in_x(8,jk) &
2849 + mat(i,9) * vec_in_x(9,jk)
2850 vec_out_x(i,jk) = tmp1 + tmp2 + tmp3
2859 tmp1 = vec_in_y(i,1,k) * mat_tr(1,j) &
2860 + vec_in_y(i,2,k) * mat_tr(2,j) &
2861 + vec_in_y(i,3,k) * mat_tr(3,j)
2862 tmp2 = vec_in_y(i,4,k) * mat_tr(4,j) &
2863 + vec_in_y(i,5,k) * mat_tr(5,j) &
2864 + vec_in_y(i,6,k) * mat_tr(6,j)
2865 tmp3 = vec_in_y(i,7,k) * mat_tr(7,j) &
2866 + vec_in_y(i,8,k) * mat_tr(8,j) &
2867 + vec_in_y(i,9,k) * mat_tr(9,j)
2868 vec_out_y(i,jk) = tmp1 + tmp2 + tmp3
2878 tmp1 = vec_in_z(i,j,1) * mat_tr(1,k) &
2879 + vec_in_z(i,j,2) * mat_tr(2,k) &
2880 + vec_in_z(i,j,3) * mat_tr(3,k)
2881 tmp2 = vec_in_z(i,j,4) * mat_tr(4,k) &
2882 + vec_in_z(i,j,5) * mat_tr(5,k) &
2883 + vec_in_z(i,j,6) * mat_tr(6,k)
2884 tmp3 = vec_in_z(i,j,7) * mat_tr(7,k) &
2885 + vec_in_z(i,j,8) * mat_tr(8,k) &
2886 + vec_in_z(i,j,9) * mat_tr(9,k)
2887 vec_out_z(i,jk) = tmp1 + tmp2 + tmp3
2895 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p8( &
2896 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
2897 vec_out_x, vec_out_y, vec_out_z )
2899 real(rp),
intent(in) :: mat(9,9)
2900 real(rp),
intent(in) :: mat_tr(9,9)
2901 real(rp),
intent(in) :: vec_in_x(9,9**2*5)
2902 real(rp),
intent(in) :: vec_in_y(9,9,9*5)
2903 real(rp),
intent(in) :: vec_in_z(9,9,9,5)
2904 real(rp),
intent(out) :: vec_out_x(9,9**2*5)
2905 real(rp),
intent(out) :: vec_out_y(9,9**2*5)
2906 real(rp),
intent(out) :: vec_out_z(9,9**2,5)
2908 integer :: i, j, k, jkv, jk, v, kv
2909 real(rp) :: tmp1, tmp2, tmp3
2916 tmp1 = mat(i,1) * vec_in_x(1,jkv) &
2917 + mat(i,2) * vec_in_x(2,jkv) &
2918 + mat(i,3) * vec_in_x(3,jkv)
2919 tmp2 = mat(i,4) * vec_in_x(4,jkv) &
2920 + mat(i,5) * vec_in_x(5,jkv) &
2921 + mat(i,6) * vec_in_x(6,jkv)
2922 tmp3 = mat(i,7) * vec_in_x(7,jkv) &
2923 + mat(i,8) * vec_in_x(8,jkv) &
2924 + mat(i,9) * vec_in_x(9,jkv)
2925 vec_out_x(i,jkv) = tmp1 + tmp2 + tmp3
2934 tmp1 = vec_in_y(i,1,kv) * mat_tr(1,j) &
2935 + vec_in_y(i,2,kv) * mat_tr(2,j) &
2936 + vec_in_y(i,3,kv) * mat_tr(3,j)
2937 tmp2 = vec_in_y(i,4,kv) * mat_tr(4,j) &
2938 + vec_in_y(i,5,kv) * mat_tr(5,j) &
2939 + vec_in_y(i,6,kv) * mat_tr(6,j)
2940 tmp3 = vec_in_y(i,7,kv) * mat_tr(7,j) &
2941 + vec_in_y(i,8,kv) * mat_tr(8,j) &
2942 + vec_in_y(i,9,kv) * mat_tr(9,j)
2943 vec_out_y(i,jkv) = tmp1 + tmp2 + tmp3
2954 tmp1 = vec_in_z(i,j,1,v) * mat_tr(1,k) &
2955 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
2956 + vec_in_z(i,j,3,v) * mat_tr(3,k)
2957 tmp2 = vec_in_z(i,j,4,v) * mat_tr(4,k) &
2958 + vec_in_z(i,j,5,v) * mat_tr(5,k) &
2959 + vec_in_z(i,j,6,v) * mat_tr(6,k)
2960 tmp3 = vec_in_z(i,j,7,v) * mat_tr(7,k) &
2961 + vec_in_z(i,j,8,v) * mat_tr(8,k) &
2962 + vec_in_z(i,j,9,v) * mat_tr(9,k)
2963 vec_out_z(i,jk,v) = tmp1 + tmp2 + tmp3
2969 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p8
2977 real(rp),
intent(in) :: mat_h1d(9,9)
2978 real(rp),
intent(in) :: mat_h1d_tr(9,9)
2979 real(rp),
intent(in) :: mat_v1d_tr(9,9)
2980 real(rp),
intent(in) :: vec_in(9,9,9)
2981 real(rp),
intent(out) :: vec_work(9,9,9)
2982 real(rp),
intent(out) :: vec_out(9,9,9)
2985 real(rp) :: tmp1, tmp2, tmp3
2993 tmp1 = mat_h1d(i,1) * vec_in(1,j,k) &
2994 + mat_h1d(i,2) * vec_in(2,j,k) &
2995 + mat_h1d(i,3) * vec_in(3,j,k)
2996 tmp2 = mat_h1d(i,4) * vec_in(4,j,k) &
2997 + mat_h1d(i,5) * vec_in(5,j,k) &
2998 + mat_h1d(i,6) * vec_in(6,j,k)
2999 tmp3 = mat_h1d(i,7) * vec_in(7,j,k) &
3000 + mat_h1d(i,8) * vec_in(8,j,k) &
3001 + mat_h1d(i,9) * vec_in(9,j,k)
3002 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
3011 tmp1 = vec_out(i,1,k) * mat_h1d_tr(1,j) &
3012 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
3013 + vec_out(i,3,k) * mat_h1d_tr(3,j)
3014 tmp2 = vec_out(i,4,k) * mat_h1d_tr(4,j) &
3015 + vec_out(i,5,k) * mat_h1d_tr(5,j) &
3016 + vec_out(i,6,k) * mat_h1d_tr(6,j)
3017 tmp3 = vec_out(i,7,k) * mat_h1d_tr(7,j) &
3018 + vec_out(i,8,k) * mat_h1d_tr(8,j) &
3019 + vec_out(i,9,k) * mat_h1d_tr(9,j)
3020 vec_work(i,j,k) = tmp1 + tmp2 + tmp3
3029 tmp1 = vec_work(i,j,1) * mat_v1d_tr(1,k) &
3030 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
3031 + vec_work(i,j,3) * mat_v1d_tr(3,k)
3032 tmp2 = vec_work(i,j,4) * mat_v1d_tr(4,k) &
3033 + vec_work(i,j,5) * mat_v1d_tr(5,k) &
3034 + vec_work(i,j,6) * mat_v1d_tr(6,k)
3035 tmp3 = vec_work(i,j,7) * mat_v1d_tr(7,k) &
3036 + vec_work(i,j,8) * mat_v1d_tr(8,k) &
3037 + vec_work(i,j,9) * mat_v1d_tr(9,k)
3038 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
3053 real(rp),
intent(in) :: mat_x(10,10)
3054 real(rp),
intent(in) :: vec_in(10,10**2)
3055 real(rp),
intent(out) :: vec_out(10,10**2)
3062 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
3063 + mat_x(i,2) * vec_in(2,jk) &
3064 + mat_x(i,3) * vec_in(3,jk) &
3065 + mat_x(i,4) * vec_in(4,jk) &
3066 + mat_x(i,5) * vec_in(5,jk) &
3067 + mat_x(i,6) * vec_in(6,jk) &
3068 + mat_x(i,7) * vec_in(7,jk) &
3069 + mat_x(i,8) * vec_in(8,jk) &
3070 + mat_x(i,9) * vec_in(9,jk) &
3071 + mat_x(i,10) * vec_in(10,jk)
3084 real(rp),
intent(in) :: mat_y_tr(10,10)
3085 real(rp),
intent(in) :: vec_in(10,10,10)
3086 real(rp),
intent(out) :: vec_out(10,10,10)
3094 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
3095 + vec_in(i,2,k) * mat_y_tr(2,j) &
3096 + vec_in(i,3,k) * mat_y_tr(3,j) &
3097 + vec_in(i,4,k) * mat_y_tr(4,j) &
3098 + vec_in(i,5,k) * mat_y_tr(5,j) &
3099 + vec_in(i,6,k) * mat_y_tr(6,j) &
3100 + vec_in(i,7,k) * mat_y_tr(7,j) &
3101 + vec_in(i,8,k) * mat_y_tr(8,j) &
3102 + vec_in(i,9,k) * mat_y_tr(9,j) &
3103 + vec_in(i,10,k) * mat_y_tr(10,j)
3117 real(rp),
intent(in) :: mat_z_tr(10,10)
3118 real(rp),
intent(in) :: vec_in(10,10,10)
3119 real(rp),
intent(out) :: vec_out(10,10,10)
3127 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
3128 + vec_in(i,j,2) * mat_z_tr(2,k) &
3129 + vec_in(i,j,3) * mat_z_tr(3,k) &
3130 + vec_in(i,j,4) * mat_z_tr(4,k) &
3131 + vec_in(i,j,5) * mat_z_tr(5,k) &
3132 + vec_in(i,j,6) * mat_z_tr(6,k) &
3133 + vec_in(i,j,7) * mat_z_tr(7,k) &
3134 + vec_in(i,j,8) * mat_z_tr(8,k) &
3135 + vec_in(i,j,9) * mat_z_tr(9,k) &
3136 + vec_in(i,j,10) * mat_z_tr(10,k)
3149 real(rp),
intent(in) :: lift(10,10,10,6)
3150 real(rp),
intent(in) :: vec_in(10,10,6)
3151 real(rp),
intent(out) :: vec_out(10,10,10)
3159 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
3160 + lift(i,j,k,2) * vec_in(j,k,2) &
3161 + lift(i,j,k,3) * vec_in(i,k,3) &
3162 + lift(i,j,k,4) * vec_in(j,k,4) &
3163 + lift(i,j,k,5) * vec_in(i,j,5) &
3164 + lift(i,j,k,6) * vec_in(i,j,6)
3178 vec_out_x, vec_out_y, vec_out_z )
3180 real(rp),
intent(in) :: mat(10,10)
3181 real(rp),
intent(in) :: mat_tr(10,10)
3182 real(rp),
intent(in) :: vec_in_(10,10**2)
3183 real(rp),
intent(in) :: vec_in(10,10,10)
3184 real(rp),
intent(out) :: vec_out_x(10,10**2)
3185 real(rp),
intent(out) :: vec_out_y(10,10,10)
3186 real(rp),
intent(out) :: vec_out_z(10,10,10)
3188 integer :: i, j, k, jk
3195 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
3196 + mat(i,2) * vec_in_(2,jk) &
3197 + mat(i,3) * vec_in_(3,jk) &
3198 + mat(i,4) * vec_in_(4,jk) &
3199 + mat(i,5) * vec_in_(5,jk) &
3200 + mat(i,6) * vec_in_(6,jk) &
3201 + mat(i,7) * vec_in_(7,jk) &
3202 + mat(i,8) * vec_in_(8,jk) &
3203 + mat(i,9) * vec_in_(9,jk) &
3204 + mat(i,10) * vec_in_(10,jk)
3212 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
3213 + vec_in(i,2,k) * mat_tr(2,j) &
3214 + vec_in(i,3,k) * mat_tr(3,j) &
3215 + vec_in(i,4,k) * mat_tr(4,j) &
3216 + vec_in(i,5,k) * mat_tr(5,j) &
3217 + vec_in(i,6,k) * mat_tr(6,j) &
3218 + vec_in(i,7,k) * mat_tr(7,j) &
3219 + vec_in(i,8,k) * mat_tr(8,j) &
3220 + vec_in(i,9,k) * mat_tr(9,j) &
3221 + vec_in(i,10,k) * mat_tr(10,j)
3230 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
3231 + vec_in(i,j,2) * mat_tr(2,k) &
3232 + vec_in(i,j,3) * mat_tr(3,k) &
3233 + vec_in(i,j,4) * mat_tr(4,k) &
3234 + vec_in(i,j,5) * mat_tr(5,k) &
3235 + vec_in(i,j,6) * mat_tr(6,k) &
3236 + vec_in(i,j,7) * mat_tr(7,k) &
3237 + vec_in(i,j,8) * mat_tr(8,k) &
3238 + vec_in(i,j,9) * mat_tr(9,k) &
3239 + vec_in(i,j,10) * mat_tr(10,k)
3253 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
3254 vec_out_x, vec_out_y, vec_out_z )
3256 real(rp),
intent(in) :: mat(10,10)
3257 real(rp),
intent(in) :: mat_tr(10,10)
3258 real(rp),
intent(in) :: vec_in_x(10,10**2)
3259 real(rp),
intent(in) :: vec_in_y(10,10,10)
3260 real(rp),
intent(in) :: vec_in_z(10,10,10)
3261 real(rp),
intent(out) :: vec_out_x(10,10**2)
3262 real(rp),
intent(out) :: vec_out_y(10,10**2)
3263 real(rp),
intent(out) :: vec_out_z(10,10**2)
3265 integer :: i, j, k, jk
3266 real(rp) :: tmp1, tmp2, tmp3
3273 tmp1 = mat(i,1) * vec_in_x(1,jk) &
3274 + mat(i,2) * vec_in_x(2,jk) &
3275 + mat(i,3) * vec_in_x(3,jk)
3276 tmp2 = mat(i,4) * vec_in_x(4,jk) &
3277 + mat(i,5) * vec_in_x(5,jk) &
3278 + mat(i,6) * vec_in_x(6,jk)
3279 tmp3 = mat(i,7) * vec_in_x(7,jk) &
3280 + mat(i,8) * vec_in_x(8,jk) &
3281 + mat(i,9) * vec_in_x(9,jk) &
3282 + mat(i,10) * vec_in_x(10,jk)
3283 vec_out_x(i,jk) = tmp1 + tmp2 + tmp3
3292 tmp1 = vec_in_y(i,1,k) * mat_tr(1,j) &
3293 + vec_in_y(i,2,k) * mat_tr(2,j) &
3294 + vec_in_y(i,3,k) * mat_tr(3,j)
3295 tmp2 = vec_in_y(i,4,k) * mat_tr(4,j) &
3296 + vec_in_y(i,5,k) * mat_tr(5,j) &
3297 + vec_in_y(i,6,k) * mat_tr(6,j)
3298 tmp3 = vec_in_y(i,7,k) * mat_tr(7,j) &
3299 + vec_in_y(i,8,k) * mat_tr(8,j) &
3300 + vec_in_y(i,9,k) * mat_tr(9,j) &
3301 + vec_in_y(i,10,k) * mat_tr(10,j)
3302 vec_out_y(i,jk) = tmp1 + tmp2 + tmp3
3312 tmp1 = vec_in_z(i,j,1) * mat_tr(1,k) &
3313 + vec_in_z(i,j,2) * mat_tr(2,k) &
3314 + vec_in_z(i,j,3) * mat_tr(3,k)
3315 tmp2 = vec_in_z(i,j,4) * mat_tr(4,k) &
3316 + vec_in_z(i,j,5) * mat_tr(5,k) &
3317 + vec_in_z(i,j,6) * mat_tr(6,k)
3318 tmp3 = vec_in_z(i,j,7) * mat_tr(7,k) &
3319 + vec_in_z(i,j,8) * mat_tr(8,k) &
3320 + vec_in_z(i,j,9) * mat_tr(9,k) &
3321 + vec_in_z(i,j,10) * mat_tr(10,k)
3322 vec_out_z(i,jk) = tmp1 + tmp2 + tmp3
3330 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p9( &
3331 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
3332 vec_out_x, vec_out_y, vec_out_z )
3334 real(rp),
intent(in) :: mat(10,10)
3335 real(rp),
intent(in) :: mat_tr(10,10)
3336 real(rp),
intent(in) :: vec_in_x(10,10**2*5)
3337 real(rp),
intent(in) :: vec_in_y(10,10,10*5)
3338 real(rp),
intent(in) :: vec_in_z(10,10,10,5)
3339 real(rp),
intent(out) :: vec_out_x(10,10**2*5)
3340 real(rp),
intent(out) :: vec_out_y(10,10**2*5)
3341 real(rp),
intent(out) :: vec_out_z(10,10**2,5)
3343 integer :: i, j, k, jkv, jk, v, kv
3344 real(rp) :: tmp1, tmp2, tmp3
3351 tmp1 = mat(i,1) * vec_in_x(1,jkv) &
3352 + mat(i,2) * vec_in_x(2,jkv) &
3353 + mat(i,3) * vec_in_x(3,jkv)
3354 tmp2 = mat(i,4) * vec_in_x(4,jkv) &
3355 + mat(i,5) * vec_in_x(5,jkv) &
3356 + mat(i,6) * vec_in_x(6,jkv)
3357 tmp3 = mat(i,7) * vec_in_x(7,jkv) &
3358 + mat(i,8) * vec_in_x(8,jkv) &
3359 + mat(i,9) * vec_in_x(9,jkv) &
3360 + mat(i,10) * vec_in_x(10,jkv)
3361 vec_out_x(i,jkv) = tmp1 + tmp2 + tmp3
3370 tmp1 = vec_in_y(i,1,kv) * mat_tr(1,j) &
3371 + vec_in_y(i,2,kv) * mat_tr(2,j) &
3372 + vec_in_y(i,3,kv) * mat_tr(3,j)
3373 tmp2 = vec_in_y(i,4,kv) * mat_tr(4,j) &
3374 + vec_in_y(i,5,kv) * mat_tr(5,j) &
3375 + vec_in_y(i,6,kv) * mat_tr(6,j)
3376 tmp3 = vec_in_y(i,7,kv) * mat_tr(7,j) &
3377 + vec_in_y(i,8,kv) * mat_tr(8,j) &
3378 + vec_in_y(i,9,kv) * mat_tr(9,j) &
3379 + vec_in_y(i,10,kv) * mat_tr(10,j)
3380 vec_out_y(i,jkv) = tmp1 + tmp2 + tmp3
3391 tmp1 = vec_in_z(i,j,1,v) * mat_tr(1,k) &
3392 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
3393 + vec_in_z(i,j,3,v) * mat_tr(3,k)
3394 tmp2 = vec_in_z(i,j,4,v) * mat_tr(4,k) &
3395 + vec_in_z(i,j,5,v) * mat_tr(5,k) &
3396 + vec_in_z(i,j,6,v) * mat_tr(6,k)
3397 tmp3 = vec_in_z(i,j,7,v) * mat_tr(7,k) &
3398 + vec_in_z(i,j,8,v) * mat_tr(8,k) &
3399 + vec_in_z(i,j,9,v) * mat_tr(9,k) &
3400 + vec_in_z(i,j,10,v) * mat_tr(10,k)
3401 vec_out_z(i,jk,v) = tmp1 + tmp2 + tmp3
3407 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p9
3415 real(rp),
intent(in) :: mat_h1d(10,10)
3416 real(rp),
intent(in) :: mat_h1d_tr(10,10)
3417 real(rp),
intent(in) :: mat_v1d_tr(10,10)
3418 real(rp),
intent(in) :: vec_in(10,10,10)
3419 real(rp),
intent(out) :: vec_work(10,10,10)
3420 real(rp),
intent(out) :: vec_out(10,10,10)
3423 real(rp) :: tmp1, tmp2, tmp3
3431 tmp1 = mat_h1d(i,1) * vec_in(1,j,k) &
3432 + mat_h1d(i,2) * vec_in(2,j,k) &
3433 + mat_h1d(i,3) * vec_in(3,j,k)
3434 tmp2 = mat_h1d(i,4) * vec_in(4,j,k) &
3435 + mat_h1d(i,5) * vec_in(5,j,k) &
3436 + mat_h1d(i,6) * vec_in(6,j,k)
3437 tmp3 = mat_h1d(i,7) * vec_in(7,j,k) &
3438 + mat_h1d(i,8) * vec_in(8,j,k) &
3439 + mat_h1d(i,9) * vec_in(9,j,k) &
3440 + mat_h1d(i,10) * vec_in(10,j,k)
3441 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
3450 tmp1 = vec_out(i,1,k) * mat_h1d_tr(1,j) &
3451 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
3452 + vec_out(i,3,k) * mat_h1d_tr(3,j)
3453 tmp2 = vec_out(i,4,k) * mat_h1d_tr(4,j) &
3454 + vec_out(i,5,k) * mat_h1d_tr(5,j) &
3455 + vec_out(i,6,k) * mat_h1d_tr(6,j)
3456 tmp3 = vec_out(i,7,k) * mat_h1d_tr(7,j) &
3457 + vec_out(i,8,k) * mat_h1d_tr(8,j) &
3458 + vec_out(i,9,k) * mat_h1d_tr(9,j) &
3459 + vec_out(i,10,k) * mat_h1d_tr(10,j)
3460 vec_work(i,j,k) = tmp1 + tmp2 + tmp3
3469 tmp1 = vec_work(i,j,1) * mat_v1d_tr(1,k) &
3470 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
3471 + vec_work(i,j,3) * mat_v1d_tr(3,k)
3472 tmp2 = vec_work(i,j,4) * mat_v1d_tr(4,k) &
3473 + vec_work(i,j,5) * mat_v1d_tr(5,k) &
3474 + vec_work(i,j,6) * mat_v1d_tr(6,k)
3475 tmp3 = vec_work(i,j,7) * mat_v1d_tr(7,k) &
3476 + vec_work(i,j,8) * mat_v1d_tr(8,k) &
3477 + vec_work(i,j,9) * mat_v1d_tr(9,k) &
3478 + vec_work(i,j,10) * mat_v1d_tr(10,k)
3479 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
3494 real(rp),
intent(in) :: mat_x(11,11)
3495 real(rp),
intent(in) :: vec_in(11,11**2)
3496 real(rp),
intent(out) :: vec_out(11,11**2)
3503 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
3504 + mat_x(i,2) * vec_in(2,jk) &
3505 + mat_x(i,3) * vec_in(3,jk) &
3506 + mat_x(i,4) * vec_in(4,jk) &
3507 + mat_x(i,5) * vec_in(5,jk) &
3508 + mat_x(i,6) * vec_in(6,jk) &
3509 + mat_x(i,7) * vec_in(7,jk) &
3510 + mat_x(i,8) * vec_in(8,jk) &
3511 + mat_x(i,9) * vec_in(9,jk) &
3512 + mat_x(i,10) * vec_in(10,jk) &
3513 + mat_x(i,11) * vec_in(11,jk)
3526 real(rp),
intent(in) :: mat_y_tr(11,11)
3527 real(rp),
intent(in) :: vec_in(11,11,11)
3528 real(rp),
intent(out) :: vec_out(11,11,11)
3536 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
3537 + vec_in(i,2,k) * mat_y_tr(2,j) &
3538 + vec_in(i,3,k) * mat_y_tr(3,j) &
3539 + vec_in(i,4,k) * mat_y_tr(4,j) &
3540 + vec_in(i,5,k) * mat_y_tr(5,j) &
3541 + vec_in(i,6,k) * mat_y_tr(6,j) &
3542 + vec_in(i,7,k) * mat_y_tr(7,j) &
3543 + vec_in(i,8,k) * mat_y_tr(8,j) &
3544 + vec_in(i,9,k) * mat_y_tr(9,j) &
3545 + vec_in(i,10,k) * mat_y_tr(10,j) &
3546 + vec_in(i,11,k) * mat_y_tr(11,j)
3560 real(rp),
intent(in) :: mat_z_tr(11,11)
3561 real(rp),
intent(in) :: vec_in(11,11,11)
3562 real(rp),
intent(out) :: vec_out(11,11,11)
3570 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
3571 + vec_in(i,j,2) * mat_z_tr(2,k) &
3572 + vec_in(i,j,3) * mat_z_tr(3,k) &
3573 + vec_in(i,j,4) * mat_z_tr(4,k) &
3574 + vec_in(i,j,5) * mat_z_tr(5,k) &
3575 + vec_in(i,j,6) * mat_z_tr(6,k) &
3576 + vec_in(i,j,7) * mat_z_tr(7,k) &
3577 + vec_in(i,j,8) * mat_z_tr(8,k) &
3578 + vec_in(i,j,9) * mat_z_tr(9,k) &
3579 + vec_in(i,j,10) * mat_z_tr(10,k) &
3580 + vec_in(i,j,11) * mat_z_tr(11,k)
3593 real(rp),
intent(in) :: lift(11,11,11,6)
3594 real(rp),
intent(in) :: vec_in(11,11,6)
3595 real(rp),
intent(out) :: vec_out(11,11,11)
3603 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
3604 + lift(i,j,k,2) * vec_in(j,k,2) &
3605 + lift(i,j,k,3) * vec_in(i,k,3) &
3606 + lift(i,j,k,4) * vec_in(j,k,4) &
3607 + lift(i,j,k,5) * vec_in(i,j,5) &
3608 + lift(i,j,k,6) * vec_in(i,j,6)
3622 vec_out_x, vec_out_y, vec_out_z )
3624 real(rp),
intent(in) :: mat(11,11)
3625 real(rp),
intent(in) :: mat_tr(11,11)
3626 real(rp),
intent(in) :: vec_in_(11,11**2)
3627 real(rp),
intent(in) :: vec_in(11,11,11)
3628 real(rp),
intent(out) :: vec_out_x(11,11**2)
3629 real(rp),
intent(out) :: vec_out_y(11,11,11)
3630 real(rp),
intent(out) :: vec_out_z(11,11,11)
3632 integer :: i, j, k, jk
3639 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
3640 + mat(i,2) * vec_in_(2,jk) &
3641 + mat(i,3) * vec_in_(3,jk) &
3642 + mat(i,4) * vec_in_(4,jk) &
3643 + mat(i,5) * vec_in_(5,jk) &
3644 + mat(i,6) * vec_in_(6,jk) &
3645 + mat(i,7) * vec_in_(7,jk) &
3646 + mat(i,8) * vec_in_(8,jk) &
3647 + mat(i,9) * vec_in_(9,jk) &
3648 + mat(i,10) * vec_in_(10,jk) &
3649 + mat(i,11) * vec_in_(11,jk)
3657 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
3658 + vec_in(i,2,k) * mat_tr(2,j) &
3659 + vec_in(i,3,k) * mat_tr(3,j) &
3660 + vec_in(i,4,k) * mat_tr(4,j) &
3661 + vec_in(i,5,k) * mat_tr(5,j) &
3662 + vec_in(i,6,k) * mat_tr(6,j) &
3663 + vec_in(i,7,k) * mat_tr(7,j) &
3664 + vec_in(i,8,k) * mat_tr(8,j) &
3665 + vec_in(i,9,k) * mat_tr(9,j) &
3666 + vec_in(i,10,k) * mat_tr(10,j) &
3667 + vec_in(i,11,k) * mat_tr(11,j)
3676 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
3677 + vec_in(i,j,2) * mat_tr(2,k) &
3678 + vec_in(i,j,3) * mat_tr(3,k) &
3679 + vec_in(i,j,4) * mat_tr(4,k) &
3680 + vec_in(i,j,5) * mat_tr(5,k) &
3681 + vec_in(i,j,6) * mat_tr(6,k) &
3682 + vec_in(i,j,7) * mat_tr(7,k) &
3683 + vec_in(i,j,8) * mat_tr(8,k) &
3684 + vec_in(i,j,9) * mat_tr(9,k) &
3685 + vec_in(i,j,10) * mat_tr(10,k) &
3686 + vec_in(i,j,11) * mat_tr(11,k)
3700 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
3701 vec_out_x, vec_out_y, vec_out_z )
3703 real(rp),
intent(in) :: mat(11,11)
3704 real(rp),
intent(in) :: mat_tr(11,11)
3705 real(rp),
intent(in) :: vec_in_x(11,11**2)
3706 real(rp),
intent(in) :: vec_in_y(11,11,11)
3707 real(rp),
intent(in) :: vec_in_z(11,11,11)
3708 real(rp),
intent(out) :: vec_out_x(11,11**2)
3709 real(rp),
intent(out) :: vec_out_y(11,11**2)
3710 real(rp),
intent(out) :: vec_out_z(11,11**2)
3712 integer :: i, j, k, jk
3713 real(rp) :: tmp1, tmp2, tmp3
3720 tmp1 = mat(i,1) * vec_in_x(1,jk) &
3721 + mat(i,2) * vec_in_x(2,jk) &
3722 + mat(i,3) * vec_in_x(3,jk) &
3723 + mat(i,4) * vec_in_x(4,jk)
3724 tmp2 = mat(i,5) * vec_in_x(5,jk) &
3725 + mat(i,6) * vec_in_x(6,jk) &
3726 + mat(i,7) * vec_in_x(7,jk) &
3727 + mat(i,8) * vec_in_x(8,jk)
3728 tmp3 = mat(i,9) * vec_in_x(9,jk) &
3729 + mat(i,10) * vec_in_x(10,jk) &
3730 + mat(i,11) * vec_in_x(11,jk)
3731 vec_out_x(i,jk) = tmp1 + tmp2 + tmp3
3740 tmp1 = vec_in_y(i,1,k) * mat_tr(1,j) &
3741 + vec_in_y(i,2,k) * mat_tr(2,j) &
3742 + vec_in_y(i,3,k) * mat_tr(3,j) &
3743 + vec_in_y(i,4,k) * mat_tr(4,j)
3744 tmp2 = vec_in_y(i,5,k) * mat_tr(5,j) &
3745 + vec_in_y(i,6,k) * mat_tr(6,j) &
3746 + vec_in_y(i,7,k) * mat_tr(7,j) &
3747 + vec_in_y(i,8,k) * mat_tr(8,j)
3748 tmp3 = vec_in_y(i,9,k) * mat_tr(9,j) &
3749 + vec_in_y(i,10,k) * mat_tr(10,j) &
3750 + vec_in_y(i,11,k) * mat_tr(11,j)
3751 vec_out_y(i,jk) = tmp1 + tmp2 + tmp3
3761 tmp1 = vec_in_z(i,j,1) * mat_tr(1,k) &
3762 + vec_in_z(i,j,2) * mat_tr(2,k) &
3763 + vec_in_z(i,j,3) * mat_tr(3,k) &
3764 + vec_in_z(i,j,4) * mat_tr(4,k)
3765 tmp2 = vec_in_z(i,j,5) * mat_tr(5,k) &
3766 + vec_in_z(i,j,6) * mat_tr(6,k) &
3767 + vec_in_z(i,j,7) * mat_tr(7,k) &
3768 + vec_in_z(i,j,8) * mat_tr(8,k)
3769 tmp3 = vec_in_z(i,j,9) * mat_tr(9,k) &
3770 + vec_in_z(i,j,10) * mat_tr(10,k) &
3771 + vec_in_z(i,j,11) * mat_tr(11,k)
3772 vec_out_z(i,jk) = tmp1 + tmp2 + tmp3
3780 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p10( &
3781 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
3782 vec_out_x, vec_out_y, vec_out_z )
3784 real(rp),
intent(in) :: mat(11,11)
3785 real(rp),
intent(in) :: mat_tr(11,11)
3786 real(rp),
intent(in) :: vec_in_x(11,11**2*5)
3787 real(rp),
intent(in) :: vec_in_y(11,11,11*5)
3788 real(rp),
intent(in) :: vec_in_z(11,11,11,5)
3789 real(rp),
intent(out) :: vec_out_x(11,11**2*5)
3790 real(rp),
intent(out) :: vec_out_y(11,11**2*5)
3791 real(rp),
intent(out) :: vec_out_z(11,11**2,5)
3793 integer :: i, j, k, jkv, jk, v, kv
3794 real(rp) :: tmp1, tmp2, tmp3
3801 tmp1 = mat(i,1) * vec_in_x(1,jkv) &
3802 + mat(i,2) * vec_in_x(2,jkv) &
3803 + mat(i,3) * vec_in_x(3,jkv) &
3804 + mat(i,4) * vec_in_x(4,jkv)
3805 tmp2 = mat(i,5) * vec_in_x(5,jkv) &
3806 + mat(i,6) * vec_in_x(6,jkv) &
3807 + mat(i,7) * vec_in_x(7,jkv) &
3808 + mat(i,8) * vec_in_x(8,jkv)
3809 tmp3 = mat(i,9) * vec_in_x(9,jkv) &
3810 + mat(i,10) * vec_in_x(10,jkv) &
3811 + mat(i,11) * vec_in_x(11,jkv)
3812 vec_out_x(i,jkv) = tmp1 + tmp2 + tmp3
3821 tmp1 = vec_in_y(i,1,kv) * mat_tr(1,j) &
3822 + vec_in_y(i,2,kv) * mat_tr(2,j) &
3823 + vec_in_y(i,3,kv) * mat_tr(3,j) &
3824 + vec_in_y(i,4,kv) * mat_tr(4,j)
3825 tmp2 = vec_in_y(i,5,kv) * mat_tr(5,j) &
3826 + vec_in_y(i,6,kv) * mat_tr(6,j) &
3827 + vec_in_y(i,7,kv) * mat_tr(7,j) &
3828 + vec_in_y(i,8,kv) * mat_tr(8,j)
3829 tmp3 = vec_in_y(i,9,kv) * mat_tr(9,j) &
3830 + vec_in_y(i,10,kv) * mat_tr(10,j) &
3831 + vec_in_y(i,11,kv) * mat_tr(11,j)
3832 vec_out_y(i,jkv) = tmp1 + tmp2 + tmp3
3843 tmp1 = vec_in_z(i,j,1,v) * mat_tr(1,k) &
3844 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
3845 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
3846 + vec_in_z(i,j,4,v) * mat_tr(4,k)
3847 tmp2 = vec_in_z(i,j,5,v) * mat_tr(5,k) &
3848 + vec_in_z(i,j,6,v) * mat_tr(6,k) &
3849 + vec_in_z(i,j,7,v) * mat_tr(7,k) &
3850 + vec_in_z(i,j,8,v) * mat_tr(8,k)
3851 tmp3 = vec_in_z(i,j,9,v) * mat_tr(9,k) &
3852 + vec_in_z(i,j,10,v) * mat_tr(10,k) &
3853 + vec_in_z(i,j,11,v) * mat_tr(11,k)
3854 vec_out_z(i,jk,v) = tmp1 + tmp2 + tmp3
3860 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p10
3868 real(rp),
intent(in) :: mat_h1d(11,11)
3869 real(rp),
intent(in) :: mat_h1d_tr(11,11)
3870 real(rp),
intent(in) :: mat_v1d_tr(11,11)
3871 real(rp),
intent(in) :: vec_in(11,11,11)
3872 real(rp),
intent(out) :: vec_work(11,11,11)
3873 real(rp),
intent(out) :: vec_out(11,11,11)
3876 real(rp) :: tmp1, tmp2, tmp3
3884 tmp1 = mat_h1d(i,1) * vec_in(1,j,k) &
3885 + mat_h1d(i,2) * vec_in(2,j,k) &
3886 + mat_h1d(i,3) * vec_in(3,j,k) &
3887 + mat_h1d(i,4) * vec_in(4,j,k)
3888 tmp2 = mat_h1d(i,5) * vec_in(5,j,k) &
3889 + mat_h1d(i,6) * vec_in(6,j,k) &
3890 + mat_h1d(i,7) * vec_in(7,j,k) &
3891 + mat_h1d(i,8) * vec_in(8,j,k)
3892 tmp3 = mat_h1d(i,9) * vec_in(9,j,k) &
3893 + mat_h1d(i,10) * vec_in(10,j,k) &
3894 + mat_h1d(i,11) * vec_in(11,j,k)
3895 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
3904 tmp1 = vec_out(i,1,k) * mat_h1d_tr(1,j) &
3905 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
3906 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
3907 + vec_out(i,4,k) * mat_h1d_tr(4,j)
3908 tmp2 = vec_out(i,5,k) * mat_h1d_tr(5,j) &
3909 + vec_out(i,6,k) * mat_h1d_tr(6,j) &
3910 + vec_out(i,7,k) * mat_h1d_tr(7,j) &
3911 + vec_out(i,8,k) * mat_h1d_tr(8,j)
3912 tmp3 = vec_out(i,9,k) * mat_h1d_tr(9,j) &
3913 + vec_out(i,10,k) * mat_h1d_tr(10,j) &
3914 + vec_out(i,11,k) * mat_h1d_tr(11,j)
3915 vec_work(i,j,k) = tmp1 + tmp2 + tmp3
3924 tmp1 = vec_work(i,j,1) * mat_v1d_tr(1,k) &
3925 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
3926 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
3927 + vec_work(i,j,4) * mat_v1d_tr(4,k)
3928 tmp2 = vec_work(i,j,5) * mat_v1d_tr(5,k) &
3929 + vec_work(i,j,6) * mat_v1d_tr(6,k) &
3930 + vec_work(i,j,7) * mat_v1d_tr(7,k) &
3931 + vec_work(i,j,8) * mat_v1d_tr(8,k)
3932 tmp3 = vec_work(i,j,9) * mat_v1d_tr(9,k) &
3933 + vec_work(i,j,10) * mat_v1d_tr(10,k) &
3934 + vec_work(i,j,11) * mat_v1d_tr(11,k)
3935 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
3950 real(rp),
intent(in) :: mat_x(12,12)
3951 real(rp),
intent(in) :: vec_in(12,12**2)
3952 real(rp),
intent(out) :: vec_out(12,12**2)
3959 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
3960 + mat_x(i,2) * vec_in(2,jk) &
3961 + mat_x(i,3) * vec_in(3,jk) &
3962 + mat_x(i,4) * vec_in(4,jk) &
3963 + mat_x(i,5) * vec_in(5,jk) &
3964 + mat_x(i,6) * vec_in(6,jk) &
3965 + mat_x(i,7) * vec_in(7,jk) &
3966 + mat_x(i,8) * vec_in(8,jk) &
3967 + mat_x(i,9) * vec_in(9,jk) &
3968 + mat_x(i,10) * vec_in(10,jk) &
3969 + mat_x(i,11) * vec_in(11,jk) &
3970 + mat_x(i,12) * vec_in(12,jk)
3983 real(rp),
intent(in) :: mat_y_tr(12,12)
3984 real(rp),
intent(in) :: vec_in(12,12,12)
3985 real(rp),
intent(out) :: vec_out(12,12,12)
3993 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
3994 + vec_in(i,2,k) * mat_y_tr(2,j) &
3995 + vec_in(i,3,k) * mat_y_tr(3,j) &
3996 + vec_in(i,4,k) * mat_y_tr(4,j) &
3997 + vec_in(i,5,k) * mat_y_tr(5,j) &
3998 + vec_in(i,6,k) * mat_y_tr(6,j) &
3999 + vec_in(i,7,k) * mat_y_tr(7,j) &
4000 + vec_in(i,8,k) * mat_y_tr(8,j) &
4001 + vec_in(i,9,k) * mat_y_tr(9,j) &
4002 + vec_in(i,10,k) * mat_y_tr(10,j) &
4003 + vec_in(i,11,k) * mat_y_tr(11,j) &
4004 + vec_in(i,12,k) * mat_y_tr(12,j)
4018 real(rp),
intent(in) :: mat_z_tr(12,12)
4019 real(rp),
intent(in) :: vec_in(12,12,12)
4020 real(rp),
intent(out) :: vec_out(12,12,12)
4028 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
4029 + vec_in(i,j,2) * mat_z_tr(2,k) &
4030 + vec_in(i,j,3) * mat_z_tr(3,k) &
4031 + vec_in(i,j,4) * mat_z_tr(4,k) &
4032 + vec_in(i,j,5) * mat_z_tr(5,k) &
4033 + vec_in(i,j,6) * mat_z_tr(6,k) &
4034 + vec_in(i,j,7) * mat_z_tr(7,k) &
4035 + vec_in(i,j,8) * mat_z_tr(8,k) &
4036 + vec_in(i,j,9) * mat_z_tr(9,k) &
4037 + vec_in(i,j,10) * mat_z_tr(10,k) &
4038 + vec_in(i,j,11) * mat_z_tr(11,k) &
4039 + vec_in(i,j,12) * mat_z_tr(12,k)
4052 real(rp),
intent(in) :: lift(12,12,12,6)
4053 real(rp),
intent(in) :: vec_in(12,12,6)
4054 real(rp),
intent(out) :: vec_out(12,12,12)
4062 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
4063 + lift(i,j,k,2) * vec_in(j,k,2) &
4064 + lift(i,j,k,3) * vec_in(i,k,3) &
4065 + lift(i,j,k,4) * vec_in(j,k,4) &
4066 + lift(i,j,k,5) * vec_in(i,j,5) &
4067 + lift(i,j,k,6) * vec_in(i,j,6)
4081 vec_out_x, vec_out_y, vec_out_z )
4083 real(rp),
intent(in) :: mat(12,12)
4084 real(rp),
intent(in) :: mat_tr(12,12)
4085 real(rp),
intent(in) :: vec_in_(12,12**2)
4086 real(rp),
intent(in) :: vec_in(12,12,12)
4087 real(rp),
intent(out) :: vec_out_x(12,12**2)
4088 real(rp),
intent(out) :: vec_out_y(12,12,12)
4089 real(rp),
intent(out) :: vec_out_z(12,12,12)
4091 integer :: i, j, k, jk
4098 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
4099 + mat(i,2) * vec_in_(2,jk) &
4100 + mat(i,3) * vec_in_(3,jk) &
4101 + mat(i,4) * vec_in_(4,jk) &
4102 + mat(i,5) * vec_in_(5,jk) &
4103 + mat(i,6) * vec_in_(6,jk) &
4104 + mat(i,7) * vec_in_(7,jk) &
4105 + mat(i,8) * vec_in_(8,jk) &
4106 + mat(i,9) * vec_in_(9,jk) &
4107 + mat(i,10) * vec_in_(10,jk) &
4108 + mat(i,11) * vec_in_(11,jk) &
4109 + mat(i,12) * vec_in_(12,jk)
4117 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
4118 + vec_in(i,2,k) * mat_tr(2,j) &
4119 + vec_in(i,3,k) * mat_tr(3,j) &
4120 + vec_in(i,4,k) * mat_tr(4,j) &
4121 + vec_in(i,5,k) * mat_tr(5,j) &
4122 + vec_in(i,6,k) * mat_tr(6,j) &
4123 + vec_in(i,7,k) * mat_tr(7,j) &
4124 + vec_in(i,8,k) * mat_tr(8,j) &
4125 + vec_in(i,9,k) * mat_tr(9,j) &
4126 + vec_in(i,10,k) * mat_tr(10,j) &
4127 + vec_in(i,11,k) * mat_tr(11,j) &
4128 + vec_in(i,12,k) * mat_tr(12,j)
4137 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
4138 + vec_in(i,j,2) * mat_tr(2,k) &
4139 + vec_in(i,j,3) * mat_tr(3,k) &
4140 + vec_in(i,j,4) * mat_tr(4,k) &
4141 + vec_in(i,j,5) * mat_tr(5,k) &
4142 + vec_in(i,j,6) * mat_tr(6,k) &
4143 + vec_in(i,j,7) * mat_tr(7,k) &
4144 + vec_in(i,j,8) * mat_tr(8,k) &
4145 + vec_in(i,j,9) * mat_tr(9,k) &
4146 + vec_in(i,j,10) * mat_tr(10,k) &
4147 + vec_in(i,j,11) * mat_tr(11,k) &
4148 + vec_in(i,j,12) * mat_tr(12,k)
4162 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
4163 vec_out_x, vec_out_y, vec_out_z )
4165 real(rp),
intent(in) :: mat(12,12)
4166 real(rp),
intent(in) :: mat_tr(12,12)
4167 real(rp),
intent(in) :: vec_in_x(12,12**2)
4168 real(rp),
intent(in) :: vec_in_y(12,12,12)
4169 real(rp),
intent(in) :: vec_in_z(12,12,12)
4170 real(rp),
intent(out) :: vec_out_x(12,12**2)
4171 real(rp),
intent(out) :: vec_out_y(12,12**2)
4172 real(rp),
intent(out) :: vec_out_z(12,12**2)
4174 integer :: i, j, k, jk
4175 real(rp) :: tmp1, tmp2, tmp3
4182 tmp1 = mat(i,1) * vec_in_x(1,jk) &
4183 + mat(i,2) * vec_in_x(2,jk) &
4184 + mat(i,3) * vec_in_x(3,jk) &
4185 + mat(i,4) * vec_in_x(4,jk)
4186 tmp2 = mat(i,5) * vec_in_x(5,jk) &
4187 + mat(i,6) * vec_in_x(6,jk) &
4188 + mat(i,7) * vec_in_x(7,jk) &
4189 + mat(i,8) * vec_in_x(8,jk)
4190 tmp3 = mat(i,9) * vec_in_x(9,jk) &
4191 + mat(i,10) * vec_in_x(10,jk) &
4192 + mat(i,11) * vec_in_x(11,jk) &
4193 + mat(i,12) * vec_in_x(12,jk)
4194 vec_out_x(i,jk) = tmp1 + tmp2 + tmp3
4203 tmp1 = vec_in_y(i,1,k) * mat_tr(1,j) &
4204 + vec_in_y(i,2,k) * mat_tr(2,j) &
4205 + vec_in_y(i,3,k) * mat_tr(3,j) &
4206 + vec_in_y(i,4,k) * mat_tr(4,j)
4207 tmp2 = vec_in_y(i,5,k) * mat_tr(5,j) &
4208 + vec_in_y(i,6,k) * mat_tr(6,j) &
4209 + vec_in_y(i,7,k) * mat_tr(7,j) &
4210 + vec_in_y(i,8,k) * mat_tr(8,j)
4211 tmp3 = vec_in_y(i,9,k) * mat_tr(9,j) &
4212 + vec_in_y(i,10,k) * mat_tr(10,j) &
4213 + vec_in_y(i,11,k) * mat_tr(11,j) &
4214 + vec_in_y(i,12,k) * mat_tr(12,j)
4215 vec_out_y(i,jk) = tmp1 + tmp2 + tmp3
4225 tmp1 = vec_in_z(i,j,1) * mat_tr(1,k) &
4226 + vec_in_z(i,j,2) * mat_tr(2,k) &
4227 + vec_in_z(i,j,3) * mat_tr(3,k) &
4228 + vec_in_z(i,j,4) * mat_tr(4,k)
4229 tmp2 = vec_in_z(i,j,5) * mat_tr(5,k) &
4230 + vec_in_z(i,j,6) * mat_tr(6,k) &
4231 + vec_in_z(i,j,7) * mat_tr(7,k) &
4232 + vec_in_z(i,j,8) * mat_tr(8,k)
4233 tmp3 = vec_in_z(i,j,9) * mat_tr(9,k) &
4234 + vec_in_z(i,j,10) * mat_tr(10,k) &
4235 + vec_in_z(i,j,11) * mat_tr(11,k) &
4236 + vec_in_z(i,j,12) * mat_tr(12,k)
4237 vec_out_z(i,jk) = tmp1 + tmp2 + tmp3
4245 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p11( &
4246 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
4247 vec_out_x, vec_out_y, vec_out_z )
4249 real(rp),
intent(in) :: mat(12,12)
4250 real(rp),
intent(in) :: mat_tr(12,12)
4251 real(rp),
intent(in) :: vec_in_x(12,12**2*5)
4252 real(rp),
intent(in) :: vec_in_y(12,12,12*5)
4253 real(rp),
intent(in) :: vec_in_z(12,12,12,5)
4254 real(rp),
intent(out) :: vec_out_x(12,12**2*5)
4255 real(rp),
intent(out) :: vec_out_y(12,12**2*5)
4256 real(rp),
intent(out) :: vec_out_z(12,12**2,5)
4258 integer :: i, j, k, jkv, jk, v, kv
4259 real(rp) :: tmp1, tmp2, tmp3
4266 tmp1 = mat(i,1) * vec_in_x(1,jkv) &
4267 + mat(i,2) * vec_in_x(2,jkv) &
4268 + mat(i,3) * vec_in_x(3,jkv) &
4269 + mat(i,4) * vec_in_x(4,jkv)
4270 tmp2 = mat(i,5) * vec_in_x(5,jkv) &
4271 + mat(i,6) * vec_in_x(6,jkv) &
4272 + mat(i,7) * vec_in_x(7,jkv) &
4273 + mat(i,8) * vec_in_x(8,jkv)
4274 tmp3 = mat(i,9) * vec_in_x(9,jkv) &
4275 + mat(i,10) * vec_in_x(10,jkv) &
4276 + mat(i,11) * vec_in_x(11,jkv) &
4277 + mat(i,12) * vec_in_x(12,jkv)
4278 vec_out_x(i,jkv) = tmp1 + tmp2 + tmp3
4287 tmp1 = vec_in_y(i,1,kv) * mat_tr(1,j) &
4288 + vec_in_y(i,2,kv) * mat_tr(2,j) &
4289 + vec_in_y(i,3,kv) * mat_tr(3,j) &
4290 + vec_in_y(i,4,kv) * mat_tr(4,j)
4291 tmp2 = vec_in_y(i,5,kv) * mat_tr(5,j) &
4292 + vec_in_y(i,6,kv) * mat_tr(6,j) &
4293 + vec_in_y(i,7,kv) * mat_tr(7,j) &
4294 + vec_in_y(i,8,kv) * mat_tr(8,j)
4295 tmp3 = vec_in_y(i,9,kv) * mat_tr(9,j) &
4296 + vec_in_y(i,10,kv) * mat_tr(10,j) &
4297 + vec_in_y(i,11,kv) * mat_tr(11,j) &
4298 + vec_in_y(i,12,kv) * mat_tr(12,j)
4299 vec_out_y(i,jkv) = tmp1 + tmp2 + tmp3
4310 tmp1 = vec_in_z(i,j,1,v) * mat_tr(1,k) &
4311 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
4312 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
4313 + vec_in_z(i,j,4,v) * mat_tr(4,k)
4314 tmp2 = vec_in_z(i,j,5,v) * mat_tr(5,k) &
4315 + vec_in_z(i,j,6,v) * mat_tr(6,k) &
4316 + vec_in_z(i,j,7,v) * mat_tr(7,k) &
4317 + vec_in_z(i,j,8,v) * mat_tr(8,k)
4318 tmp3 = vec_in_z(i,j,9,v) * mat_tr(9,k) &
4319 + vec_in_z(i,j,10,v) * mat_tr(10,k) &
4320 + vec_in_z(i,j,11,v) * mat_tr(11,k) &
4321 + vec_in_z(i,j,12,v) * mat_tr(12,k)
4322 vec_out_z(i,jk,v) = tmp1 + tmp2 + tmp3
4328 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p11
4336 real(rp),
intent(in) :: mat_h1d(12,12)
4337 real(rp),
intent(in) :: mat_h1d_tr(12,12)
4338 real(rp),
intent(in) :: mat_v1d_tr(12,12)
4339 real(rp),
intent(in) :: vec_in(12,12,12)
4340 real(rp),
intent(out) :: vec_work(12,12,12)
4341 real(rp),
intent(out) :: vec_out(12,12,12)
4344 real(rp) :: tmp1, tmp2, tmp3
4352 tmp1 = mat_h1d(i,1) * vec_in(1,j,k) &
4353 + mat_h1d(i,2) * vec_in(2,j,k) &
4354 + mat_h1d(i,3) * vec_in(3,j,k) &
4355 + mat_h1d(i,4) * vec_in(4,j,k)
4356 tmp2 = mat_h1d(i,5) * vec_in(5,j,k) &
4357 + mat_h1d(i,6) * vec_in(6,j,k) &
4358 + mat_h1d(i,7) * vec_in(7,j,k) &
4359 + mat_h1d(i,8) * vec_in(8,j,k)
4360 tmp3 = mat_h1d(i,9) * vec_in(9,j,k) &
4361 + mat_h1d(i,10) * vec_in(10,j,k) &
4362 + mat_h1d(i,11) * vec_in(11,j,k) &
4363 + mat_h1d(i,12) * vec_in(12,j,k)
4364 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
4373 tmp1 = vec_out(i,1,k) * mat_h1d_tr(1,j) &
4374 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
4375 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
4376 + vec_out(i,4,k) * mat_h1d_tr(4,j)
4377 tmp2 = vec_out(i,5,k) * mat_h1d_tr(5,j) &
4378 + vec_out(i,6,k) * mat_h1d_tr(6,j) &
4379 + vec_out(i,7,k) * mat_h1d_tr(7,j) &
4380 + vec_out(i,8,k) * mat_h1d_tr(8,j)
4381 tmp3 = vec_out(i,9,k) * mat_h1d_tr(9,j) &
4382 + vec_out(i,10,k) * mat_h1d_tr(10,j) &
4383 + vec_out(i,11,k) * mat_h1d_tr(11,j) &
4384 + vec_out(i,12,k) * mat_h1d_tr(12,j)
4385 vec_work(i,j,k) = tmp1 + tmp2 + tmp3
4394 tmp1 = vec_work(i,j,1) * mat_v1d_tr(1,k) &
4395 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
4396 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
4397 + vec_work(i,j,4) * mat_v1d_tr(4,k)
4398 tmp2 = vec_work(i,j,5) * mat_v1d_tr(5,k) &
4399 + vec_work(i,j,6) * mat_v1d_tr(6,k) &
4400 + vec_work(i,j,7) * mat_v1d_tr(7,k) &
4401 + vec_work(i,j,8) * mat_v1d_tr(8,k)
4402 tmp3 = vec_work(i,j,9) * mat_v1d_tr(9,k) &
4403 + vec_work(i,j,10) * mat_v1d_tr(10,k) &
4404 + vec_work(i,j,11) * mat_v1d_tr(11,k) &
4405 + vec_work(i,j,12) * mat_v1d_tr(12,k)
4406 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
4421 real(rp),
intent(in) :: mat_x(13,13)
4422 real(rp),
intent(in) :: vec_in(13,13**2)
4423 real(rp),
intent(out) :: vec_out(13,13**2)
4430 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
4431 + mat_x(i,2) * vec_in(2,jk) &
4432 + mat_x(i,3) * vec_in(3,jk) &
4433 + mat_x(i,4) * vec_in(4,jk) &
4434 + mat_x(i,5) * vec_in(5,jk) &
4435 + mat_x(i,6) * vec_in(6,jk) &
4436 + mat_x(i,7) * vec_in(7,jk) &
4437 + mat_x(i,8) * vec_in(8,jk) &
4438 + mat_x(i,9) * vec_in(9,jk) &
4439 + mat_x(i,10) * vec_in(10,jk) &
4440 + mat_x(i,11) * vec_in(11,jk) &
4441 + mat_x(i,12) * vec_in(12,jk) &
4442 + mat_x(i,13) * vec_in(13,jk)
4455 real(rp),
intent(in) :: mat_y_tr(13,13)
4456 real(rp),
intent(in) :: vec_in(13,13,13)
4457 real(rp),
intent(out) :: vec_out(13,13,13)
4465 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
4466 + vec_in(i,2,k) * mat_y_tr(2,j) &
4467 + vec_in(i,3,k) * mat_y_tr(3,j) &
4468 + vec_in(i,4,k) * mat_y_tr(4,j) &
4469 + vec_in(i,5,k) * mat_y_tr(5,j) &
4470 + vec_in(i,6,k) * mat_y_tr(6,j) &
4471 + vec_in(i,7,k) * mat_y_tr(7,j) &
4472 + vec_in(i,8,k) * mat_y_tr(8,j) &
4473 + vec_in(i,9,k) * mat_y_tr(9,j) &
4474 + vec_in(i,10,k) * mat_y_tr(10,j) &
4475 + vec_in(i,11,k) * mat_y_tr(11,j) &
4476 + vec_in(i,12,k) * mat_y_tr(12,j) &
4477 + vec_in(i,13,k) * mat_y_tr(13,j)
4491 real(rp),
intent(in) :: mat_z_tr(13,13)
4492 real(rp),
intent(in) :: vec_in(13,13,13)
4493 real(rp),
intent(out) :: vec_out(13,13,13)
4501 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
4502 + vec_in(i,j,2) * mat_z_tr(2,k) &
4503 + vec_in(i,j,3) * mat_z_tr(3,k) &
4504 + vec_in(i,j,4) * mat_z_tr(4,k) &
4505 + vec_in(i,j,5) * mat_z_tr(5,k) &
4506 + vec_in(i,j,6) * mat_z_tr(6,k) &
4507 + vec_in(i,j,7) * mat_z_tr(7,k) &
4508 + vec_in(i,j,8) * mat_z_tr(8,k) &
4509 + vec_in(i,j,9) * mat_z_tr(9,k) &
4510 + vec_in(i,j,10) * mat_z_tr(10,k) &
4511 + vec_in(i,j,11) * mat_z_tr(11,k) &
4512 + vec_in(i,j,12) * mat_z_tr(12,k) &
4513 + vec_in(i,j,13) * mat_z_tr(13,k)
4526 real(rp),
intent(in) :: lift(13,13,13,6)
4527 real(rp),
intent(in) :: vec_in(13,13,6)
4528 real(rp),
intent(out) :: vec_out(13,13,13)
4536 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
4537 + lift(i,j,k,2) * vec_in(j,k,2) &
4538 + lift(i,j,k,3) * vec_in(i,k,3) &
4539 + lift(i,j,k,4) * vec_in(j,k,4) &
4540 + lift(i,j,k,5) * vec_in(i,j,5) &
4541 + lift(i,j,k,6) * vec_in(i,j,6)
4555 vec_out_x, vec_out_y, vec_out_z )
4557 real(rp),
intent(in) :: mat(13,13)
4558 real(rp),
intent(in) :: mat_tr(13,13)
4559 real(rp),
intent(in) :: vec_in_(13,13**2)
4560 real(rp),
intent(in) :: vec_in(13,13,13)
4561 real(rp),
intent(out) :: vec_out_x(13,13**2)
4562 real(rp),
intent(out) :: vec_out_y(13,13,13)
4563 real(rp),
intent(out) :: vec_out_z(13,13,13)
4565 integer :: i, j, k, jk
4572 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
4573 + mat(i,2) * vec_in_(2,jk) &
4574 + mat(i,3) * vec_in_(3,jk) &
4575 + mat(i,4) * vec_in_(4,jk) &
4576 + mat(i,5) * vec_in_(5,jk) &
4577 + mat(i,6) * vec_in_(6,jk) &
4578 + mat(i,7) * vec_in_(7,jk) &
4579 + mat(i,8) * vec_in_(8,jk) &
4580 + mat(i,9) * vec_in_(9,jk) &
4581 + mat(i,10) * vec_in_(10,jk) &
4582 + mat(i,11) * vec_in_(11,jk) &
4583 + mat(i,12) * vec_in_(12,jk) &
4584 + mat(i,13) * vec_in_(13,jk)
4592 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
4593 + vec_in(i,2,k) * mat_tr(2,j) &
4594 + vec_in(i,3,k) * mat_tr(3,j) &
4595 + vec_in(i,4,k) * mat_tr(4,j) &
4596 + vec_in(i,5,k) * mat_tr(5,j) &
4597 + vec_in(i,6,k) * mat_tr(6,j) &
4598 + vec_in(i,7,k) * mat_tr(7,j) &
4599 + vec_in(i,8,k) * mat_tr(8,j) &
4600 + vec_in(i,9,k) * mat_tr(9,j) &
4601 + vec_in(i,10,k) * mat_tr(10,j) &
4602 + vec_in(i,11,k) * mat_tr(11,j) &
4603 + vec_in(i,12,k) * mat_tr(12,j) &
4604 + vec_in(i,13,k) * mat_tr(13,j)
4613 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
4614 + vec_in(i,j,2) * mat_tr(2,k) &
4615 + vec_in(i,j,3) * mat_tr(3,k) &
4616 + vec_in(i,j,4) * mat_tr(4,k) &
4617 + vec_in(i,j,5) * mat_tr(5,k) &
4618 + vec_in(i,j,6) * mat_tr(6,k) &
4619 + vec_in(i,j,7) * mat_tr(7,k) &
4620 + vec_in(i,j,8) * mat_tr(8,k) &
4621 + vec_in(i,j,9) * mat_tr(9,k) &
4622 + vec_in(i,j,10) * mat_tr(10,k) &
4623 + vec_in(i,j,11) * mat_tr(11,k) &
4624 + vec_in(i,j,12) * mat_tr(12,k) &
4625 + vec_in(i,j,13) * mat_tr(13,k)
4639 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
4640 vec_out_x, vec_out_y, vec_out_z )
4642 real(rp),
intent(in) :: mat(13,13)
4643 real(rp),
intent(in) :: mat_tr(13,13)
4644 real(rp),
intent(in) :: vec_in_x(13,13**2)
4645 real(rp),
intent(in) :: vec_in_y(13,13,13)
4646 real(rp),
intent(in) :: vec_in_z(13,13,13)
4647 real(rp),
intent(out) :: vec_out_x(13,13**2)
4648 real(rp),
intent(out) :: vec_out_y(13,13**2)
4649 real(rp),
intent(out) :: vec_out_z(13,13**2)
4651 integer :: i, j, k, jk
4652 real(rp) :: tmp1, tmp2, tmp3
4659 tmp1 = mat(i,1) * vec_in_x(1,jk) &
4660 + mat(i,2) * vec_in_x(2,jk) &
4661 + mat(i,3) * vec_in_x(3,jk) &
4662 + mat(i,4) * vec_in_x(4,jk)
4663 tmp2 = mat(i,5) * vec_in_x(5,jk) &
4664 + mat(i,6) * vec_in_x(6,jk) &
4665 + mat(i,7) * vec_in_x(7,jk) &
4666 + mat(i,8) * vec_in_x(8,jk)
4667 tmp3 = mat(i,9) * vec_in_x(9,jk) &
4668 + mat(i,10) * vec_in_x(10,jk) &
4669 + mat(i,11) * vec_in_x(11,jk) &
4670 + mat(i,12) * vec_in_x(12,jk) &
4671 + mat(i,13) * vec_in_x(13,jk)
4672 vec_out_x(i,jk) = tmp1 + tmp2 + tmp3
4681 tmp1 = vec_in_y(i,1,k) * mat_tr(1,j) &
4682 + vec_in_y(i,2,k) * mat_tr(2,j) &
4683 + vec_in_y(i,3,k) * mat_tr(3,j) &
4684 + vec_in_y(i,4,k) * mat_tr(4,j)
4685 tmp2 = vec_in_y(i,5,k) * mat_tr(5,j) &
4686 + vec_in_y(i,6,k) * mat_tr(6,j) &
4687 + vec_in_y(i,7,k) * mat_tr(7,j) &
4688 + vec_in_y(i,8,k) * mat_tr(8,j)
4689 tmp3 = vec_in_y(i,9,k) * mat_tr(9,j) &
4690 + vec_in_y(i,10,k) * mat_tr(10,j) &
4691 + vec_in_y(i,11,k) * mat_tr(11,j) &
4692 + vec_in_y(i,12,k) * mat_tr(12,j) &
4693 + vec_in_y(i,13,k) * mat_tr(13,j)
4694 vec_out_y(i,jk) = tmp1 + tmp2 + tmp3
4704 tmp1 = vec_in_z(i,j,1) * mat_tr(1,k) &
4705 + vec_in_z(i,j,2) * mat_tr(2,k) &
4706 + vec_in_z(i,j,3) * mat_tr(3,k) &
4707 + vec_in_z(i,j,4) * mat_tr(4,k)
4708 tmp2 = vec_in_z(i,j,5) * mat_tr(5,k) &
4709 + vec_in_z(i,j,6) * mat_tr(6,k) &
4710 + vec_in_z(i,j,7) * mat_tr(7,k) &
4711 + vec_in_z(i,j,8) * mat_tr(8,k)
4712 tmp3 = vec_in_z(i,j,9) * mat_tr(9,k) &
4713 + vec_in_z(i,j,10) * mat_tr(10,k) &
4714 + vec_in_z(i,j,11) * mat_tr(11,k) &
4715 + vec_in_z(i,j,12) * mat_tr(12,k) &
4716 + vec_in_z(i,j,13) * mat_tr(13,k)
4717 vec_out_z(i,jk) = tmp1 + tmp2 + tmp3
4725 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p12( &
4726 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
4727 vec_out_x, vec_out_y, vec_out_z )
4729 real(rp),
intent(in) :: mat(13,13)
4730 real(rp),
intent(in) :: mat_tr(13,13)
4731 real(rp),
intent(in) :: vec_in_x(13,13**2*5)
4732 real(rp),
intent(in) :: vec_in_y(13,13,13*5)
4733 real(rp),
intent(in) :: vec_in_z(13,13,13,5)
4734 real(rp),
intent(out) :: vec_out_x(13,13**2*5)
4735 real(rp),
intent(out) :: vec_out_y(13,13**2*5)
4736 real(rp),
intent(out) :: vec_out_z(13,13**2,5)
4738 integer :: i, j, k, jkv, jk, v, kv
4739 real(rp) :: tmp1, tmp2, tmp3
4746 tmp1 = mat(i,1) * vec_in_x(1,jkv) &
4747 + mat(i,2) * vec_in_x(2,jkv) &
4748 + mat(i,3) * vec_in_x(3,jkv) &
4749 + mat(i,4) * vec_in_x(4,jkv)
4750 tmp2 = mat(i,5) * vec_in_x(5,jkv) &
4751 + mat(i,6) * vec_in_x(6,jkv) &
4752 + mat(i,7) * vec_in_x(7,jkv) &
4753 + mat(i,8) * vec_in_x(8,jkv)
4754 tmp3 = mat(i,9) * vec_in_x(9,jkv) &
4755 + mat(i,10) * vec_in_x(10,jkv) &
4756 + mat(i,11) * vec_in_x(11,jkv) &
4757 + mat(i,12) * vec_in_x(12,jkv) &
4758 + mat(i,13) * vec_in_x(13,jkv)
4759 vec_out_x(i,jkv) = tmp1 + tmp2 + tmp3
4768 tmp1 = vec_in_y(i,1,kv) * mat_tr(1,j) &
4769 + vec_in_y(i,2,kv) * mat_tr(2,j) &
4770 + vec_in_y(i,3,kv) * mat_tr(3,j) &
4771 + vec_in_y(i,4,kv) * mat_tr(4,j)
4772 tmp2 = vec_in_y(i,5,kv) * mat_tr(5,j) &
4773 + vec_in_y(i,6,kv) * mat_tr(6,j) &
4774 + vec_in_y(i,7,kv) * mat_tr(7,j) &
4775 + vec_in_y(i,8,kv) * mat_tr(8,j)
4776 tmp3 = vec_in_y(i,9,kv) * mat_tr(9,j) &
4777 + vec_in_y(i,10,kv) * mat_tr(10,j) &
4778 + vec_in_y(i,11,kv) * mat_tr(11,j) &
4779 + vec_in_y(i,12,kv) * mat_tr(12,j) &
4780 + vec_in_y(i,13,kv) * mat_tr(13,j)
4781 vec_out_y(i,jkv) = tmp1 + tmp2 + tmp3
4792 tmp1 = vec_in_z(i,j,1,v) * mat_tr(1,k) &
4793 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
4794 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
4795 + vec_in_z(i,j,4,v) * mat_tr(4,k)
4796 tmp2 = vec_in_z(i,j,5,v) * mat_tr(5,k) &
4797 + vec_in_z(i,j,6,v) * mat_tr(6,k) &
4798 + vec_in_z(i,j,7,v) * mat_tr(7,k) &
4799 + vec_in_z(i,j,8,v) * mat_tr(8,k)
4800 tmp3 = vec_in_z(i,j,9,v) * mat_tr(9,k) &
4801 + vec_in_z(i,j,10,v) * mat_tr(10,k) &
4802 + vec_in_z(i,j,11,v) * mat_tr(11,k) &
4803 + vec_in_z(i,j,12,v) * mat_tr(12,k) &
4804 + vec_in_z(i,j,13,v) * mat_tr(13,k)
4805 vec_out_z(i,jk,v) = tmp1 + tmp2 + tmp3
4811 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p12
4819 real(rp),
intent(in) :: mat_h1d(13,13)
4820 real(rp),
intent(in) :: mat_h1d_tr(13,13)
4821 real(rp),
intent(in) :: mat_v1d_tr(13,13)
4822 real(rp),
intent(in) :: vec_in(13,13,13)
4823 real(rp),
intent(out) :: vec_work(13,13,13)
4824 real(rp),
intent(out) :: vec_out(13,13,13)
4827 real(rp) :: tmp1, tmp2, tmp3
4835 tmp1 = mat_h1d(i,1) * vec_in(1,j,k) &
4836 + mat_h1d(i,2) * vec_in(2,j,k) &
4837 + mat_h1d(i,3) * vec_in(3,j,k) &
4838 + mat_h1d(i,4) * vec_in(4,j,k)
4839 tmp2 = mat_h1d(i,5) * vec_in(5,j,k) &
4840 + mat_h1d(i,6) * vec_in(6,j,k) &
4841 + mat_h1d(i,7) * vec_in(7,j,k) &
4842 + mat_h1d(i,8) * vec_in(8,j,k)
4843 tmp3 = mat_h1d(i,9) * vec_in(9,j,k) &
4844 + mat_h1d(i,10) * vec_in(10,j,k) &
4845 + mat_h1d(i,11) * vec_in(11,j,k) &
4846 + mat_h1d(i,12) * vec_in(12,j,k) &
4847 + mat_h1d(i,13) * vec_in(13,j,k)
4848 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
4857 tmp1 = vec_out(i,1,k) * mat_h1d_tr(1,j) &
4858 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
4859 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
4860 + vec_out(i,4,k) * mat_h1d_tr(4,j)
4861 tmp2 = vec_out(i,5,k) * mat_h1d_tr(5,j) &
4862 + vec_out(i,6,k) * mat_h1d_tr(6,j) &
4863 + vec_out(i,7,k) * mat_h1d_tr(7,j) &
4864 + vec_out(i,8,k) * mat_h1d_tr(8,j)
4865 tmp3 = vec_out(i,9,k) * mat_h1d_tr(9,j) &
4866 + vec_out(i,10,k) * mat_h1d_tr(10,j) &
4867 + vec_out(i,11,k) * mat_h1d_tr(11,j) &
4868 + vec_out(i,12,k) * mat_h1d_tr(12,j) &
4869 + vec_out(i,13,k) * mat_h1d_tr(13,j)
4870 vec_work(i,j,k) = tmp1 + tmp2 + tmp3
4879 tmp1 = vec_work(i,j,1) * mat_v1d_tr(1,k) &
4880 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
4881 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
4882 + vec_work(i,j,4) * mat_v1d_tr(4,k)
4883 tmp2 = vec_work(i,j,5) * mat_v1d_tr(5,k) &
4884 + vec_work(i,j,6) * mat_v1d_tr(6,k) &
4885 + vec_work(i,j,7) * mat_v1d_tr(7,k) &
4886 + vec_work(i,j,8) * mat_v1d_tr(8,k)
4887 tmp3 = vec_work(i,j,9) * mat_v1d_tr(9,k) &
4888 + vec_work(i,j,10) * mat_v1d_tr(10,k) &
4889 + vec_work(i,j,11) * mat_v1d_tr(11,k) &
4890 + vec_work(i,j,12) * mat_v1d_tr(12,k) &
4891 + vec_work(i,j,13) * mat_v1d_tr(13,k)
4892 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
4907 real(rp),
intent(in) :: mat_x(14,14)
4908 real(rp),
intent(in) :: vec_in(14,14**2)
4909 real(rp),
intent(out) :: vec_out(14,14**2)
4916 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
4917 + mat_x(i,2) * vec_in(2,jk) &
4918 + mat_x(i,3) * vec_in(3,jk) &
4919 + mat_x(i,4) * vec_in(4,jk) &
4920 + mat_x(i,5) * vec_in(5,jk) &
4921 + mat_x(i,6) * vec_in(6,jk) &
4922 + mat_x(i,7) * vec_in(7,jk) &
4923 + mat_x(i,8) * vec_in(8,jk) &
4924 + mat_x(i,9) * vec_in(9,jk) &
4925 + mat_x(i,10) * vec_in(10,jk) &
4926 + mat_x(i,11) * vec_in(11,jk) &
4927 + mat_x(i,12) * vec_in(12,jk) &
4928 + mat_x(i,13) * vec_in(13,jk) &
4929 + mat_x(i,14) * vec_in(14,jk)
4942 real(rp),
intent(in) :: mat_y_tr(14,14)
4943 real(rp),
intent(in) :: vec_in(14,14,14)
4944 real(rp),
intent(out) :: vec_out(14,14,14)
4952 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
4953 + vec_in(i,2,k) * mat_y_tr(2,j) &
4954 + vec_in(i,3,k) * mat_y_tr(3,j) &
4955 + vec_in(i,4,k) * mat_y_tr(4,j) &
4956 + vec_in(i,5,k) * mat_y_tr(5,j) &
4957 + vec_in(i,6,k) * mat_y_tr(6,j) &
4958 + vec_in(i,7,k) * mat_y_tr(7,j) &
4959 + vec_in(i,8,k) * mat_y_tr(8,j) &
4960 + vec_in(i,9,k) * mat_y_tr(9,j) &
4961 + vec_in(i,10,k) * mat_y_tr(10,j) &
4962 + vec_in(i,11,k) * mat_y_tr(11,j) &
4963 + vec_in(i,12,k) * mat_y_tr(12,j) &
4964 + vec_in(i,13,k) * mat_y_tr(13,j) &
4965 + vec_in(i,14,k) * mat_y_tr(14,j)
4979 real(rp),
intent(in) :: mat_z_tr(14,14)
4980 real(rp),
intent(in) :: vec_in(14,14,14)
4981 real(rp),
intent(out) :: vec_out(14,14,14)
4989 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
4990 + vec_in(i,j,2) * mat_z_tr(2,k) &
4991 + vec_in(i,j,3) * mat_z_tr(3,k) &
4992 + vec_in(i,j,4) * mat_z_tr(4,k) &
4993 + vec_in(i,j,5) * mat_z_tr(5,k) &
4994 + vec_in(i,j,6) * mat_z_tr(6,k) &
4995 + vec_in(i,j,7) * mat_z_tr(7,k) &
4996 + vec_in(i,j,8) * mat_z_tr(8,k) &
4997 + vec_in(i,j,9) * mat_z_tr(9,k) &
4998 + vec_in(i,j,10) * mat_z_tr(10,k) &
4999 + vec_in(i,j,11) * mat_z_tr(11,k) &
5000 + vec_in(i,j,12) * mat_z_tr(12,k) &
5001 + vec_in(i,j,13) * mat_z_tr(13,k) &
5002 + vec_in(i,j,14) * mat_z_tr(14,k)
5015 real(rp),
intent(in) :: lift(14,14,14,6)
5016 real(rp),
intent(in) :: vec_in(14,14,6)
5017 real(rp),
intent(out) :: vec_out(14,14,14)
5025 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
5026 + lift(i,j,k,2) * vec_in(j,k,2) &
5027 + lift(i,j,k,3) * vec_in(i,k,3) &
5028 + lift(i,j,k,4) * vec_in(j,k,4) &
5029 + lift(i,j,k,5) * vec_in(i,j,5) &
5030 + lift(i,j,k,6) * vec_in(i,j,6)
5044 vec_out_x, vec_out_y, vec_out_z )
5046 real(rp),
intent(in) :: mat(14,14)
5047 real(rp),
intent(in) :: mat_tr(14,14)
5048 real(rp),
intent(in) :: vec_in_(14,14**2)
5049 real(rp),
intent(in) :: vec_in(14,14,14)
5050 real(rp),
intent(out) :: vec_out_x(14,14**2)
5051 real(rp),
intent(out) :: vec_out_y(14,14,14)
5052 real(rp),
intent(out) :: vec_out_z(14,14,14)
5054 integer :: i, j, k, jk
5061 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
5062 + mat(i,2) * vec_in_(2,jk) &
5063 + mat(i,3) * vec_in_(3,jk) &
5064 + mat(i,4) * vec_in_(4,jk) &
5065 + mat(i,5) * vec_in_(5,jk) &
5066 + mat(i,6) * vec_in_(6,jk) &
5067 + mat(i,7) * vec_in_(7,jk) &
5068 + mat(i,8) * vec_in_(8,jk) &
5069 + mat(i,9) * vec_in_(9,jk) &
5070 + mat(i,10) * vec_in_(10,jk) &
5071 + mat(i,11) * vec_in_(11,jk) &
5072 + mat(i,12) * vec_in_(12,jk) &
5073 + mat(i,13) * vec_in_(13,jk) &
5074 + mat(i,14) * vec_in_(14,jk)
5082 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
5083 + vec_in(i,2,k) * mat_tr(2,j) &
5084 + vec_in(i,3,k) * mat_tr(3,j) &
5085 + vec_in(i,4,k) * mat_tr(4,j) &
5086 + vec_in(i,5,k) * mat_tr(5,j) &
5087 + vec_in(i,6,k) * mat_tr(6,j) &
5088 + vec_in(i,7,k) * mat_tr(7,j) &
5089 + vec_in(i,8,k) * mat_tr(8,j) &
5090 + vec_in(i,9,k) * mat_tr(9,j) &
5091 + vec_in(i,10,k) * mat_tr(10,j) &
5092 + vec_in(i,11,k) * mat_tr(11,j) &
5093 + vec_in(i,12,k) * mat_tr(12,j) &
5094 + vec_in(i,13,k) * mat_tr(13,j) &
5095 + vec_in(i,14,k) * mat_tr(14,j)
5104 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
5105 + vec_in(i,j,2) * mat_tr(2,k) &
5106 + vec_in(i,j,3) * mat_tr(3,k) &
5107 + vec_in(i,j,4) * mat_tr(4,k) &
5108 + vec_in(i,j,5) * mat_tr(5,k) &
5109 + vec_in(i,j,6) * mat_tr(6,k) &
5110 + vec_in(i,j,7) * mat_tr(7,k) &
5111 + vec_in(i,j,8) * mat_tr(8,k) &
5112 + vec_in(i,j,9) * mat_tr(9,k) &
5113 + vec_in(i,j,10) * mat_tr(10,k) &
5114 + vec_in(i,j,11) * mat_tr(11,k) &
5115 + vec_in(i,j,12) * mat_tr(12,k) &
5116 + vec_in(i,j,13) * mat_tr(13,k) &
5117 + vec_in(i,j,14) * mat_tr(14,k)
5131 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
5132 vec_out_x, vec_out_y, vec_out_z )
5134 real(rp),
intent(in) :: mat(14,14)
5135 real(rp),
intent(in) :: mat_tr(14,14)
5136 real(rp),
intent(in) :: vec_in_x(14,14**2)
5137 real(rp),
intent(in) :: vec_in_y(14,14,14)
5138 real(rp),
intent(in) :: vec_in_z(14,14,14)
5139 real(rp),
intent(out) :: vec_out_x(14,14**2)
5140 real(rp),
intent(out) :: vec_out_y(14,14**2)
5141 real(rp),
intent(out) :: vec_out_z(14,14**2)
5143 integer :: i, j, k, jk
5144 real(rp) :: tmp1, tmp2, tmp3
5151 tmp1 = mat(i,1) * vec_in_x(1,jk) &
5152 + mat(i,2) * vec_in_x(2,jk) &
5153 + mat(i,3) * vec_in_x(3,jk) &
5154 + mat(i,4) * vec_in_x(4,jk) &
5155 + mat(i,5) * vec_in_x(5,jk)
5156 tmp2 = mat(i,6) * vec_in_x(6,jk) &
5157 + mat(i,7) * vec_in_x(7,jk) &
5158 + mat(i,8) * vec_in_x(8,jk) &
5159 + mat(i,9) * vec_in_x(9,jk) &
5160 + mat(i,10) * vec_in_x(10,jk)
5161 tmp3 = mat(i,11) * vec_in_x(11,jk) &
5162 + mat(i,12) * vec_in_x(12,jk) &
5163 + mat(i,13) * vec_in_x(13,jk) &
5164 + mat(i,14) * vec_in_x(14,jk)
5165 vec_out_x(i,jk) = tmp1 + tmp2 + tmp3
5174 tmp1 = vec_in_y(i,1,k) * mat_tr(1,j) &
5175 + vec_in_y(i,2,k) * mat_tr(2,j) &
5176 + vec_in_y(i,3,k) * mat_tr(3,j) &
5177 + vec_in_y(i,4,k) * mat_tr(4,j) &
5178 + vec_in_y(i,5,k) * mat_tr(5,j)
5179 tmp2 = vec_in_y(i,6,k) * mat_tr(6,j) &
5180 + vec_in_y(i,7,k) * mat_tr(7,j) &
5181 + vec_in_y(i,8,k) * mat_tr(8,j) &
5182 + vec_in_y(i,9,k) * mat_tr(9,j) &
5183 + vec_in_y(i,10,k) * mat_tr(10,j)
5184 tmp3 = vec_in_y(i,11,k) * mat_tr(11,j) &
5185 + vec_in_y(i,12,k) * mat_tr(12,j) &
5186 + vec_in_y(i,13,k) * mat_tr(13,j) &
5187 + vec_in_y(i,14,k) * mat_tr(14,j)
5188 vec_out_y(i,jk) = tmp1 + tmp2 + tmp3
5198 tmp1 = vec_in_z(i,j,1) * mat_tr(1,k) &
5199 + vec_in_z(i,j,2) * mat_tr(2,k) &
5200 + vec_in_z(i,j,3) * mat_tr(3,k) &
5201 + vec_in_z(i,j,4) * mat_tr(4,k) &
5202 + vec_in_z(i,j,5) * mat_tr(5,k)
5203 tmp2 = vec_in_z(i,j,6) * mat_tr(6,k) &
5204 + vec_in_z(i,j,7) * mat_tr(7,k) &
5205 + vec_in_z(i,j,8) * mat_tr(8,k) &
5206 + vec_in_z(i,j,9) * mat_tr(9,k) &
5207 + vec_in_z(i,j,10) * mat_tr(10,k)
5208 tmp3 = vec_in_z(i,j,11) * mat_tr(11,k) &
5209 + vec_in_z(i,j,12) * mat_tr(12,k) &
5210 + vec_in_z(i,j,13) * mat_tr(13,k) &
5211 + vec_in_z(i,j,14) * mat_tr(14,k)
5212 vec_out_z(i,jk) = tmp1 + tmp2 + tmp3
5220 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p13( &
5221 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
5222 vec_out_x, vec_out_y, vec_out_z )
5224 real(rp),
intent(in) :: mat(14,14)
5225 real(rp),
intent(in) :: mat_tr(14,14)
5226 real(rp),
intent(in) :: vec_in_x(14,14**2*5)
5227 real(rp),
intent(in) :: vec_in_y(14,14,14*5)
5228 real(rp),
intent(in) :: vec_in_z(14,14,14,5)
5229 real(rp),
intent(out) :: vec_out_x(14,14**2*5)
5230 real(rp),
intent(out) :: vec_out_y(14,14**2*5)
5231 real(rp),
intent(out) :: vec_out_z(14,14**2,5)
5233 integer :: i, j, k, jkv, jk, v, kv
5234 real(rp) :: tmp1, tmp2, tmp3
5241 tmp1 = mat(i,1) * vec_in_x(1,jkv) &
5242 + mat(i,2) * vec_in_x(2,jkv) &
5243 + mat(i,3) * vec_in_x(3,jkv) &
5244 + mat(i,4) * vec_in_x(4,jkv) &
5245 + mat(i,5) * vec_in_x(5,jkv)
5246 tmp2 = mat(i,6) * vec_in_x(6,jkv) &
5247 + mat(i,7) * vec_in_x(7,jkv) &
5248 + mat(i,8) * vec_in_x(8,jkv) &
5249 + mat(i,9) * vec_in_x(9,jkv) &
5250 + mat(i,10) * vec_in_x(10,jkv)
5251 tmp3 = mat(i,11) * vec_in_x(11,jkv) &
5252 + mat(i,12) * vec_in_x(12,jkv) &
5253 + mat(i,13) * vec_in_x(13,jkv) &
5254 + mat(i,14) * vec_in_x(14,jkv)
5255 vec_out_x(i,jkv) = tmp1 + tmp2 + tmp3
5264 tmp1 = vec_in_y(i,1,kv) * mat_tr(1,j) &
5265 + vec_in_y(i,2,kv) * mat_tr(2,j) &
5266 + vec_in_y(i,3,kv) * mat_tr(3,j) &
5267 + vec_in_y(i,4,kv) * mat_tr(4,j) &
5268 + vec_in_y(i,5,kv) * mat_tr(5,j)
5269 tmp2 = vec_in_y(i,6,kv) * mat_tr(6,j) &
5270 + vec_in_y(i,7,kv) * mat_tr(7,j) &
5271 + vec_in_y(i,8,kv) * mat_tr(8,j) &
5272 + vec_in_y(i,9,kv) * mat_tr(9,j) &
5273 + vec_in_y(i,10,kv) * mat_tr(10,j)
5274 tmp3 = vec_in_y(i,11,kv) * mat_tr(11,j) &
5275 + vec_in_y(i,12,kv) * mat_tr(12,j) &
5276 + vec_in_y(i,13,kv) * mat_tr(13,j) &
5277 + vec_in_y(i,14,kv) * mat_tr(14,j)
5278 vec_out_y(i,jkv) = tmp1 + tmp2 + tmp3
5289 tmp1 = vec_in_z(i,j,1,v) * mat_tr(1,k) &
5290 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
5291 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
5292 + vec_in_z(i,j,4,v) * mat_tr(4,k) &
5293 + vec_in_z(i,j,5,v) * mat_tr(5,k)
5294 tmp2 = vec_in_z(i,j,6,v) * mat_tr(6,k) &
5295 + vec_in_z(i,j,7,v) * mat_tr(7,k) &
5296 + vec_in_z(i,j,8,v) * mat_tr(8,k) &
5297 + vec_in_z(i,j,9,v) * mat_tr(9,k) &
5298 + vec_in_z(i,j,10,v) * mat_tr(10,k)
5299 tmp3 = vec_in_z(i,j,11,v) * mat_tr(11,k) &
5300 + vec_in_z(i,j,12,v) * mat_tr(12,k) &
5301 + vec_in_z(i,j,13,v) * mat_tr(13,k) &
5302 + vec_in_z(i,j,14,v) * mat_tr(14,k)
5303 vec_out_z(i,jk,v) = tmp1 + tmp2 + tmp3
5309 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p13
5317 real(rp),
intent(in) :: mat_h1d(14,14)
5318 real(rp),
intent(in) :: mat_h1d_tr(14,14)
5319 real(rp),
intent(in) :: mat_v1d_tr(14,14)
5320 real(rp),
intent(in) :: vec_in(14,14,14)
5321 real(rp),
intent(out) :: vec_work(14,14,14)
5322 real(rp),
intent(out) :: vec_out(14,14,14)
5325 real(rp) :: tmp1, tmp2, tmp3
5333 tmp1 = mat_h1d(i,1) * vec_in(1,j,k) &
5334 + mat_h1d(i,2) * vec_in(2,j,k) &
5335 + mat_h1d(i,3) * vec_in(3,j,k) &
5336 + mat_h1d(i,4) * vec_in(4,j,k) &
5337 + mat_h1d(i,5) * vec_in(5,j,k)
5338 tmp2 = mat_h1d(i,6) * vec_in(6,j,k) &
5339 + mat_h1d(i,7) * vec_in(7,j,k) &
5340 + mat_h1d(i,8) * vec_in(8,j,k) &
5341 + mat_h1d(i,9) * vec_in(9,j,k) &
5342 + mat_h1d(i,10) * vec_in(10,j,k)
5343 tmp3 = mat_h1d(i,11) * vec_in(11,j,k) &
5344 + mat_h1d(i,12) * vec_in(12,j,k) &
5345 + mat_h1d(i,13) * vec_in(13,j,k) &
5346 + mat_h1d(i,14) * vec_in(14,j,k)
5347 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
5356 tmp1 = vec_out(i,1,k) * mat_h1d_tr(1,j) &
5357 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
5358 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
5359 + vec_out(i,4,k) * mat_h1d_tr(4,j) &
5360 + vec_out(i,5,k) * mat_h1d_tr(5,j)
5361 tmp2 = vec_out(i,6,k) * mat_h1d_tr(6,j) &
5362 + vec_out(i,7,k) * mat_h1d_tr(7,j) &
5363 + vec_out(i,8,k) * mat_h1d_tr(8,j) &
5364 + vec_out(i,9,k) * mat_h1d_tr(9,j) &
5365 + vec_out(i,10,k) * mat_h1d_tr(10,j)
5366 tmp3 = vec_out(i,11,k) * mat_h1d_tr(11,j) &
5367 + vec_out(i,12,k) * mat_h1d_tr(12,j) &
5368 + vec_out(i,13,k) * mat_h1d_tr(13,j) &
5369 + vec_out(i,14,k) * mat_h1d_tr(14,j)
5370 vec_work(i,j,k) = tmp1 + tmp2 + tmp3
5379 tmp1 = vec_work(i,j,1) * mat_v1d_tr(1,k) &
5380 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
5381 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
5382 + vec_work(i,j,4) * mat_v1d_tr(4,k) &
5383 + vec_work(i,j,5) * mat_v1d_tr(5,k)
5384 tmp2 = vec_work(i,j,6) * mat_v1d_tr(6,k) &
5385 + vec_work(i,j,7) * mat_v1d_tr(7,k) &
5386 + vec_work(i,j,8) * mat_v1d_tr(8,k) &
5387 + vec_work(i,j,9) * mat_v1d_tr(9,k) &
5388 + vec_work(i,j,10) * mat_v1d_tr(10,k)
5389 tmp3 = vec_work(i,j,11) * mat_v1d_tr(11,k) &
5390 + vec_work(i,j,12) * mat_v1d_tr(12,k) &
5391 + vec_work(i,j,13) * mat_v1d_tr(13,k) &
5392 + vec_work(i,j,14) * mat_v1d_tr(14,k)
5393 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
5408 real(rp),
intent(in) :: mat_x(15,15)
5409 real(rp),
intent(in) :: vec_in(15,15**2)
5410 real(rp),
intent(out) :: vec_out(15,15**2)
5417 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
5418 + mat_x(i,2) * vec_in(2,jk) &
5419 + mat_x(i,3) * vec_in(3,jk) &
5420 + mat_x(i,4) * vec_in(4,jk) &
5421 + mat_x(i,5) * vec_in(5,jk) &
5422 + mat_x(i,6) * vec_in(6,jk) &
5423 + mat_x(i,7) * vec_in(7,jk) &
5424 + mat_x(i,8) * vec_in(8,jk) &
5425 + mat_x(i,9) * vec_in(9,jk) &
5426 + mat_x(i,10) * vec_in(10,jk) &
5427 + mat_x(i,11) * vec_in(11,jk) &
5428 + mat_x(i,12) * vec_in(12,jk) &
5429 + mat_x(i,13) * vec_in(13,jk) &
5430 + mat_x(i,14) * vec_in(14,jk) &
5431 + mat_x(i,15) * vec_in(15,jk)
5444 real(rp),
intent(in) :: mat_y_tr(15,15)
5445 real(rp),
intent(in) :: vec_in(15,15,15)
5446 real(rp),
intent(out) :: vec_out(15,15,15)
5454 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
5455 + vec_in(i,2,k) * mat_y_tr(2,j) &
5456 + vec_in(i,3,k) * mat_y_tr(3,j) &
5457 + vec_in(i,4,k) * mat_y_tr(4,j) &
5458 + vec_in(i,5,k) * mat_y_tr(5,j) &
5459 + vec_in(i,6,k) * mat_y_tr(6,j) &
5460 + vec_in(i,7,k) * mat_y_tr(7,j) &
5461 + vec_in(i,8,k) * mat_y_tr(8,j) &
5462 + vec_in(i,9,k) * mat_y_tr(9,j) &
5463 + vec_in(i,10,k) * mat_y_tr(10,j) &
5464 + vec_in(i,11,k) * mat_y_tr(11,j) &
5465 + vec_in(i,12,k) * mat_y_tr(12,j) &
5466 + vec_in(i,13,k) * mat_y_tr(13,j) &
5467 + vec_in(i,14,k) * mat_y_tr(14,j) &
5468 + vec_in(i,15,k) * mat_y_tr(15,j)
5482 real(rp),
intent(in) :: mat_z_tr(15,15)
5483 real(rp),
intent(in) :: vec_in(15,15,15)
5484 real(rp),
intent(out) :: vec_out(15,15,15)
5492 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
5493 + vec_in(i,j,2) * mat_z_tr(2,k) &
5494 + vec_in(i,j,3) * mat_z_tr(3,k) &
5495 + vec_in(i,j,4) * mat_z_tr(4,k) &
5496 + vec_in(i,j,5) * mat_z_tr(5,k) &
5497 + vec_in(i,j,6) * mat_z_tr(6,k) &
5498 + vec_in(i,j,7) * mat_z_tr(7,k) &
5499 + vec_in(i,j,8) * mat_z_tr(8,k) &
5500 + vec_in(i,j,9) * mat_z_tr(9,k) &
5501 + vec_in(i,j,10) * mat_z_tr(10,k) &
5502 + vec_in(i,j,11) * mat_z_tr(11,k) &
5503 + vec_in(i,j,12) * mat_z_tr(12,k) &
5504 + vec_in(i,j,13) * mat_z_tr(13,k) &
5505 + vec_in(i,j,14) * mat_z_tr(14,k) &
5506 + vec_in(i,j,15) * mat_z_tr(15,k)
5519 real(rp),
intent(in) :: lift(15,15,15,6)
5520 real(rp),
intent(in) :: vec_in(15,15,6)
5521 real(rp),
intent(out) :: vec_out(15,15,15)
5529 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
5530 + lift(i,j,k,2) * vec_in(j,k,2) &
5531 + lift(i,j,k,3) * vec_in(i,k,3) &
5532 + lift(i,j,k,4) * vec_in(j,k,4) &
5533 + lift(i,j,k,5) * vec_in(i,j,5) &
5534 + lift(i,j,k,6) * vec_in(i,j,6)
5548 vec_out_x, vec_out_y, vec_out_z )
5550 real(rp),
intent(in) :: mat(15,15)
5551 real(rp),
intent(in) :: mat_tr(15,15)
5552 real(rp),
intent(in) :: vec_in_(15,15**2)
5553 real(rp),
intent(in) :: vec_in(15,15,15)
5554 real(rp),
intent(out) :: vec_out_x(15,15**2)
5555 real(rp),
intent(out) :: vec_out_y(15,15,15)
5556 real(rp),
intent(out) :: vec_out_z(15,15,15)
5558 integer :: i, j, k, jk
5565 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
5566 + mat(i,2) * vec_in_(2,jk) &
5567 + mat(i,3) * vec_in_(3,jk) &
5568 + mat(i,4) * vec_in_(4,jk) &
5569 + mat(i,5) * vec_in_(5,jk) &
5570 + mat(i,6) * vec_in_(6,jk) &
5571 + mat(i,7) * vec_in_(7,jk) &
5572 + mat(i,8) * vec_in_(8,jk) &
5573 + mat(i,9) * vec_in_(9,jk) &
5574 + mat(i,10) * vec_in_(10,jk) &
5575 + mat(i,11) * vec_in_(11,jk) &
5576 + mat(i,12) * vec_in_(12,jk) &
5577 + mat(i,13) * vec_in_(13,jk) &
5578 + mat(i,14) * vec_in_(14,jk) &
5579 + mat(i,15) * vec_in_(15,jk)
5587 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
5588 + vec_in(i,2,k) * mat_tr(2,j) &
5589 + vec_in(i,3,k) * mat_tr(3,j) &
5590 + vec_in(i,4,k) * mat_tr(4,j) &
5591 + vec_in(i,5,k) * mat_tr(5,j) &
5592 + vec_in(i,6,k) * mat_tr(6,j) &
5593 + vec_in(i,7,k) * mat_tr(7,j) &
5594 + vec_in(i,8,k) * mat_tr(8,j) &
5595 + vec_in(i,9,k) * mat_tr(9,j) &
5596 + vec_in(i,10,k) * mat_tr(10,j) &
5597 + vec_in(i,11,k) * mat_tr(11,j) &
5598 + vec_in(i,12,k) * mat_tr(12,j) &
5599 + vec_in(i,13,k) * mat_tr(13,j) &
5600 + vec_in(i,14,k) * mat_tr(14,j) &
5601 + vec_in(i,15,k) * mat_tr(15,j)
5610 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
5611 + vec_in(i,j,2) * mat_tr(2,k) &
5612 + vec_in(i,j,3) * mat_tr(3,k) &
5613 + vec_in(i,j,4) * mat_tr(4,k) &
5614 + vec_in(i,j,5) * mat_tr(5,k) &
5615 + vec_in(i,j,6) * mat_tr(6,k) &
5616 + vec_in(i,j,7) * mat_tr(7,k) &
5617 + vec_in(i,j,8) * mat_tr(8,k) &
5618 + vec_in(i,j,9) * mat_tr(9,k) &
5619 + vec_in(i,j,10) * mat_tr(10,k) &
5620 + vec_in(i,j,11) * mat_tr(11,k) &
5621 + vec_in(i,j,12) * mat_tr(12,k) &
5622 + vec_in(i,j,13) * mat_tr(13,k) &
5623 + vec_in(i,j,14) * mat_tr(14,k) &
5624 + vec_in(i,j,15) * mat_tr(15,k)
5638 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
5639 vec_out_x, vec_out_y, vec_out_z )
5641 real(rp),
intent(in) :: mat(15,15)
5642 real(rp),
intent(in) :: mat_tr(15,15)
5643 real(rp),
intent(in) :: vec_in_x(15,15**2)
5644 real(rp),
intent(in) :: vec_in_y(15,15,15)
5645 real(rp),
intent(in) :: vec_in_z(15,15,15)
5646 real(rp),
intent(out) :: vec_out_x(15,15**2)
5647 real(rp),
intent(out) :: vec_out_y(15,15**2)
5648 real(rp),
intent(out) :: vec_out_z(15,15**2)
5650 integer :: i, j, k, jk
5651 real(rp) :: tmp1, tmp2, tmp3
5658 tmp1 = mat(i,1) * vec_in_x(1,jk) &
5659 + mat(i,2) * vec_in_x(2,jk) &
5660 + mat(i,3) * vec_in_x(3,jk) &
5661 + mat(i,4) * vec_in_x(4,jk) &
5662 + mat(i,5) * vec_in_x(5,jk)
5663 tmp2 = mat(i,6) * vec_in_x(6,jk) &
5664 + mat(i,7) * vec_in_x(7,jk) &
5665 + mat(i,8) * vec_in_x(8,jk) &
5666 + mat(i,9) * vec_in_x(9,jk) &
5667 + mat(i,10) * vec_in_x(10,jk)
5668 tmp3 = mat(i,11) * vec_in_x(11,jk) &
5669 + mat(i,12) * vec_in_x(12,jk) &
5670 + mat(i,13) * vec_in_x(13,jk) &
5671 + mat(i,14) * vec_in_x(14,jk) &
5672 + mat(i,15) * vec_in_x(15,jk)
5673 vec_out_x(i,jk) = tmp1 + tmp2 + tmp3
5682 tmp1 = vec_in_y(i,1,k) * mat_tr(1,j) &
5683 + vec_in_y(i,2,k) * mat_tr(2,j) &
5684 + vec_in_y(i,3,k) * mat_tr(3,j) &
5685 + vec_in_y(i,4,k) * mat_tr(4,j) &
5686 + vec_in_y(i,5,k) * mat_tr(5,j)
5687 tmp2 = vec_in_y(i,6,k) * mat_tr(6,j) &
5688 + vec_in_y(i,7,k) * mat_tr(7,j) &
5689 + vec_in_y(i,8,k) * mat_tr(8,j) &
5690 + vec_in_y(i,9,k) * mat_tr(9,j) &
5691 + vec_in_y(i,10,k) * mat_tr(10,j)
5692 tmp3 = vec_in_y(i,11,k) * mat_tr(11,j) &
5693 + vec_in_y(i,12,k) * mat_tr(12,j) &
5694 + vec_in_y(i,13,k) * mat_tr(13,j) &
5695 + vec_in_y(i,14,k) * mat_tr(14,j) &
5696 + vec_in_y(i,15,k) * mat_tr(15,j)
5697 vec_out_y(i,jk) = tmp1 + tmp2 + tmp3
5707 tmp1 = vec_in_z(i,j,1) * mat_tr(1,k) &
5708 + vec_in_z(i,j,2) * mat_tr(2,k) &
5709 + vec_in_z(i,j,3) * mat_tr(3,k) &
5710 + vec_in_z(i,j,4) * mat_tr(4,k) &
5711 + vec_in_z(i,j,5) * mat_tr(5,k)
5712 tmp2 = vec_in_z(i,j,6) * mat_tr(6,k) &
5713 + vec_in_z(i,j,7) * mat_tr(7,k) &
5714 + vec_in_z(i,j,8) * mat_tr(8,k) &
5715 + vec_in_z(i,j,9) * mat_tr(9,k) &
5716 + vec_in_z(i,j,10) * mat_tr(10,k)
5717 tmp3 = vec_in_z(i,j,11) * mat_tr(11,k) &
5718 + vec_in_z(i,j,12) * mat_tr(12,k) &
5719 + vec_in_z(i,j,13) * mat_tr(13,k) &
5720 + vec_in_z(i,j,14) * mat_tr(14,k) &
5721 + vec_in_z(i,j,15) * mat_tr(15,k)
5722 vec_out_z(i,jk) = tmp1 + tmp2 + tmp3
5730 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p14( &
5731 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
5732 vec_out_x, vec_out_y, vec_out_z )
5734 real(rp),
intent(in) :: mat(15,15)
5735 real(rp),
intent(in) :: mat_tr(15,15)
5736 real(rp),
intent(in) :: vec_in_x(15,15**2*5)
5737 real(rp),
intent(in) :: vec_in_y(15,15,15*5)
5738 real(rp),
intent(in) :: vec_in_z(15,15,15,5)
5739 real(rp),
intent(out) :: vec_out_x(15,15**2*5)
5740 real(rp),
intent(out) :: vec_out_y(15,15**2*5)
5741 real(rp),
intent(out) :: vec_out_z(15,15**2,5)
5743 integer :: i, j, k, jkv, jk, v, kv
5744 real(rp) :: tmp1, tmp2, tmp3
5751 tmp1 = mat(i,1) * vec_in_x(1,jkv) &
5752 + mat(i,2) * vec_in_x(2,jkv) &
5753 + mat(i,3) * vec_in_x(3,jkv) &
5754 + mat(i,4) * vec_in_x(4,jkv) &
5755 + mat(i,5) * vec_in_x(5,jkv)
5756 tmp2 = mat(i,6) * vec_in_x(6,jkv) &
5757 + mat(i,7) * vec_in_x(7,jkv) &
5758 + mat(i,8) * vec_in_x(8,jkv) &
5759 + mat(i,9) * vec_in_x(9,jkv) &
5760 + mat(i,10) * vec_in_x(10,jkv)
5761 tmp3 = mat(i,11) * vec_in_x(11,jkv) &
5762 + mat(i,12) * vec_in_x(12,jkv) &
5763 + mat(i,13) * vec_in_x(13,jkv) &
5764 + mat(i,14) * vec_in_x(14,jkv) &
5765 + mat(i,15) * vec_in_x(15,jkv)
5766 vec_out_x(i,jkv) = tmp1 + tmp2 + tmp3
5775 tmp1 = vec_in_y(i,1,kv) * mat_tr(1,j) &
5776 + vec_in_y(i,2,kv) * mat_tr(2,j) &
5777 + vec_in_y(i,3,kv) * mat_tr(3,j) &
5778 + vec_in_y(i,4,kv) * mat_tr(4,j) &
5779 + vec_in_y(i,5,kv) * mat_tr(5,j)
5780 tmp2 = vec_in_y(i,6,kv) * mat_tr(6,j) &
5781 + vec_in_y(i,7,kv) * mat_tr(7,j) &
5782 + vec_in_y(i,8,kv) * mat_tr(8,j) &
5783 + vec_in_y(i,9,kv) * mat_tr(9,j) &
5784 + vec_in_y(i,10,kv) * mat_tr(10,j)
5785 tmp3 = vec_in_y(i,11,kv) * mat_tr(11,j) &
5786 + vec_in_y(i,12,kv) * mat_tr(12,j) &
5787 + vec_in_y(i,13,kv) * mat_tr(13,j) &
5788 + vec_in_y(i,14,kv) * mat_tr(14,j) &
5789 + vec_in_y(i,15,kv) * mat_tr(15,j)
5790 vec_out_y(i,jkv) = tmp1 + tmp2 + tmp3
5801 tmp1 = vec_in_z(i,j,1,v) * mat_tr(1,k) &
5802 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
5803 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
5804 + vec_in_z(i,j,4,v) * mat_tr(4,k) &
5805 + vec_in_z(i,j,5,v) * mat_tr(5,k)
5806 tmp2 = vec_in_z(i,j,6,v) * mat_tr(6,k) &
5807 + vec_in_z(i,j,7,v) * mat_tr(7,k) &
5808 + vec_in_z(i,j,8,v) * mat_tr(8,k) &
5809 + vec_in_z(i,j,9,v) * mat_tr(9,k) &
5810 + vec_in_z(i,j,10,v) * mat_tr(10,k)
5811 tmp3 = vec_in_z(i,j,11,v) * mat_tr(11,k) &
5812 + vec_in_z(i,j,12,v) * mat_tr(12,k) &
5813 + vec_in_z(i,j,13,v) * mat_tr(13,k) &
5814 + vec_in_z(i,j,14,v) * mat_tr(14,k) &
5815 + vec_in_z(i,j,15,v) * mat_tr(15,k)
5816 vec_out_z(i,jk,v) = tmp1 + tmp2 + tmp3
5822 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p14
5830 real(rp),
intent(in) :: mat_h1d(15,15)
5831 real(rp),
intent(in) :: mat_h1d_tr(15,15)
5832 real(rp),
intent(in) :: mat_v1d_tr(15,15)
5833 real(rp),
intent(in) :: vec_in(15,15,15)
5834 real(rp),
intent(out) :: vec_work(15,15,15)
5835 real(rp),
intent(out) :: vec_out(15,15,15)
5838 real(rp) :: tmp1, tmp2, tmp3
5846 tmp1 = mat_h1d(i,1) * vec_in(1,j,k) &
5847 + mat_h1d(i,2) * vec_in(2,j,k) &
5848 + mat_h1d(i,3) * vec_in(3,j,k) &
5849 + mat_h1d(i,4) * vec_in(4,j,k) &
5850 + mat_h1d(i,5) * vec_in(5,j,k)
5851 tmp2 = mat_h1d(i,6) * vec_in(6,j,k) &
5852 + mat_h1d(i,7) * vec_in(7,j,k) &
5853 + mat_h1d(i,8) * vec_in(8,j,k) &
5854 + mat_h1d(i,9) * vec_in(9,j,k) &
5855 + mat_h1d(i,10) * vec_in(10,j,k)
5856 tmp3 = mat_h1d(i,11) * vec_in(11,j,k) &
5857 + mat_h1d(i,12) * vec_in(12,j,k) &
5858 + mat_h1d(i,13) * vec_in(13,j,k) &
5859 + mat_h1d(i,14) * vec_in(14,j,k) &
5860 + mat_h1d(i,15) * vec_in(15,j,k)
5861 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
5870 tmp1 = vec_out(i,1,k) * mat_h1d_tr(1,j) &
5871 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
5872 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
5873 + vec_out(i,4,k) * mat_h1d_tr(4,j) &
5874 + vec_out(i,5,k) * mat_h1d_tr(5,j)
5875 tmp2 = vec_out(i,6,k) * mat_h1d_tr(6,j) &
5876 + vec_out(i,7,k) * mat_h1d_tr(7,j) &
5877 + vec_out(i,8,k) * mat_h1d_tr(8,j) &
5878 + vec_out(i,9,k) * mat_h1d_tr(9,j) &
5879 + vec_out(i,10,k) * mat_h1d_tr(10,j)
5880 tmp3 = vec_out(i,11,k) * mat_h1d_tr(11,j) &
5881 + vec_out(i,12,k) * mat_h1d_tr(12,j) &
5882 + vec_out(i,13,k) * mat_h1d_tr(13,j) &
5883 + vec_out(i,14,k) * mat_h1d_tr(14,j) &
5884 + vec_out(i,15,k) * mat_h1d_tr(15,j)
5885 vec_work(i,j,k) = tmp1 + tmp2 + tmp3
5894 tmp1 = vec_work(i,j,1) * mat_v1d_tr(1,k) &
5895 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
5896 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
5897 + vec_work(i,j,4) * mat_v1d_tr(4,k) &
5898 + vec_work(i,j,5) * mat_v1d_tr(5,k)
5899 tmp2 = vec_work(i,j,6) * mat_v1d_tr(6,k) &
5900 + vec_work(i,j,7) * mat_v1d_tr(7,k) &
5901 + vec_work(i,j,8) * mat_v1d_tr(8,k) &
5902 + vec_work(i,j,9) * mat_v1d_tr(9,k) &
5903 + vec_work(i,j,10) * mat_v1d_tr(10,k)
5904 tmp3 = vec_work(i,j,11) * mat_v1d_tr(11,k) &
5905 + vec_work(i,j,12) * mat_v1d_tr(12,k) &
5906 + vec_work(i,j,13) * mat_v1d_tr(13,k) &
5907 + vec_work(i,j,14) * mat_v1d_tr(14,k) &
5908 + vec_work(i,j,15) * mat_v1d_tr(15,k)
5909 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
5924 real(rp),
intent(in) :: mat_x(16,16)
5925 real(rp),
intent(in) :: vec_in(16,16**2)
5926 real(rp),
intent(out) :: vec_out(16,16**2)
5933 vec_out(i,jk) = mat_x(i,1) * vec_in(1,jk) &
5934 + mat_x(i,2) * vec_in(2,jk) &
5935 + mat_x(i,3) * vec_in(3,jk) &
5936 + mat_x(i,4) * vec_in(4,jk) &
5937 + mat_x(i,5) * vec_in(5,jk) &
5938 + mat_x(i,6) * vec_in(6,jk) &
5939 + mat_x(i,7) * vec_in(7,jk) &
5940 + mat_x(i,8) * vec_in(8,jk) &
5941 + mat_x(i,9) * vec_in(9,jk) &
5942 + mat_x(i,10) * vec_in(10,jk) &
5943 + mat_x(i,11) * vec_in(11,jk) &
5944 + mat_x(i,12) * vec_in(12,jk) &
5945 + mat_x(i,13) * vec_in(13,jk) &
5946 + mat_x(i,14) * vec_in(14,jk) &
5947 + mat_x(i,15) * vec_in(15,jk) &
5948 + mat_x(i,16) * vec_in(16,jk)
5961 real(rp),
intent(in) :: mat_y_tr(16,16)
5962 real(rp),
intent(in) :: vec_in(16,16,16)
5963 real(rp),
intent(out) :: vec_out(16,16,16)
5971 vec_out(i,j,k) = vec_in(i,1,k) * mat_y_tr(1,j) &
5972 + vec_in(i,2,k) * mat_y_tr(2,j) &
5973 + vec_in(i,3,k) * mat_y_tr(3,j) &
5974 + vec_in(i,4,k) * mat_y_tr(4,j) &
5975 + vec_in(i,5,k) * mat_y_tr(5,j) &
5976 + vec_in(i,6,k) * mat_y_tr(6,j) &
5977 + vec_in(i,7,k) * mat_y_tr(7,j) &
5978 + vec_in(i,8,k) * mat_y_tr(8,j) &
5979 + vec_in(i,9,k) * mat_y_tr(9,j) &
5980 + vec_in(i,10,k) * mat_y_tr(10,j) &
5981 + vec_in(i,11,k) * mat_y_tr(11,j) &
5982 + vec_in(i,12,k) * mat_y_tr(12,j) &
5983 + vec_in(i,13,k) * mat_y_tr(13,j) &
5984 + vec_in(i,14,k) * mat_y_tr(14,j) &
5985 + vec_in(i,15,k) * mat_y_tr(15,j) &
5986 + vec_in(i,16,k) * mat_y_tr(16,j)
6000 real(rp),
intent(in) :: mat_z_tr(16,16)
6001 real(rp),
intent(in) :: vec_in(16,16,16)
6002 real(rp),
intent(out) :: vec_out(16,16,16)
6010 vec_out(i,j,k) = vec_in(i,j,1) * mat_z_tr(1,k) &
6011 + vec_in(i,j,2) * mat_z_tr(2,k) &
6012 + vec_in(i,j,3) * mat_z_tr(3,k) &
6013 + vec_in(i,j,4) * mat_z_tr(4,k) &
6014 + vec_in(i,j,5) * mat_z_tr(5,k) &
6015 + vec_in(i,j,6) * mat_z_tr(6,k) &
6016 + vec_in(i,j,7) * mat_z_tr(7,k) &
6017 + vec_in(i,j,8) * mat_z_tr(8,k) &
6018 + vec_in(i,j,9) * mat_z_tr(9,k) &
6019 + vec_in(i,j,10) * mat_z_tr(10,k) &
6020 + vec_in(i,j,11) * mat_z_tr(11,k) &
6021 + vec_in(i,j,12) * mat_z_tr(12,k) &
6022 + vec_in(i,j,13) * mat_z_tr(13,k) &
6023 + vec_in(i,j,14) * mat_z_tr(14,k) &
6024 + vec_in(i,j,15) * mat_z_tr(15,k) &
6025 + vec_in(i,j,16) * mat_z_tr(16,k)
6038 real(rp),
intent(in) :: lift(16,16,16,6)
6039 real(rp),
intent(in) :: vec_in(16,16,6)
6040 real(rp),
intent(out) :: vec_out(16,16,16)
6048 vec_out(i,j,k) = lift(i,j,k,1) * vec_in(i,k,1) &
6049 + lift(i,j,k,2) * vec_in(j,k,2) &
6050 + lift(i,j,k,3) * vec_in(i,k,3) &
6051 + lift(i,j,k,4) * vec_in(j,k,4) &
6052 + lift(i,j,k,5) * vec_in(i,j,5) &
6053 + lift(i,j,k,6) * vec_in(i,j,6)
6067 vec_out_x, vec_out_y, vec_out_z )
6069 real(rp),
intent(in) :: mat(16,16)
6070 real(rp),
intent(in) :: mat_tr(16,16)
6071 real(rp),
intent(in) :: vec_in_(16,16**2)
6072 real(rp),
intent(in) :: vec_in(16,16,16)
6073 real(rp),
intent(out) :: vec_out_x(16,16**2)
6074 real(rp),
intent(out) :: vec_out_y(16,16,16)
6075 real(rp),
intent(out) :: vec_out_z(16,16,16)
6077 integer :: i, j, k, jk
6084 vec_out_x(i,jk) = mat(i,1) * vec_in_(1,jk) &
6085 + mat(i,2) * vec_in_(2,jk) &
6086 + mat(i,3) * vec_in_(3,jk) &
6087 + mat(i,4) * vec_in_(4,jk) &
6088 + mat(i,5) * vec_in_(5,jk) &
6089 + mat(i,6) * vec_in_(6,jk) &
6090 + mat(i,7) * vec_in_(7,jk) &
6091 + mat(i,8) * vec_in_(8,jk) &
6092 + mat(i,9) * vec_in_(9,jk) &
6093 + mat(i,10) * vec_in_(10,jk) &
6094 + mat(i,11) * vec_in_(11,jk) &
6095 + mat(i,12) * vec_in_(12,jk) &
6096 + mat(i,13) * vec_in_(13,jk) &
6097 + mat(i,14) * vec_in_(14,jk) &
6098 + mat(i,15) * vec_in_(15,jk) &
6099 + mat(i,16) * vec_in_(16,jk)
6107 vec_out_y(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
6108 + vec_in(i,2,k) * mat_tr(2,j) &
6109 + vec_in(i,3,k) * mat_tr(3,j) &
6110 + vec_in(i,4,k) * mat_tr(4,j) &
6111 + vec_in(i,5,k) * mat_tr(5,j) &
6112 + vec_in(i,6,k) * mat_tr(6,j) &
6113 + vec_in(i,7,k) * mat_tr(7,j) &
6114 + vec_in(i,8,k) * mat_tr(8,j) &
6115 + vec_in(i,9,k) * mat_tr(9,j) &
6116 + vec_in(i,10,k) * mat_tr(10,j) &
6117 + vec_in(i,11,k) * mat_tr(11,j) &
6118 + vec_in(i,12,k) * mat_tr(12,j) &
6119 + vec_in(i,13,k) * mat_tr(13,j) &
6120 + vec_in(i,14,k) * mat_tr(14,j) &
6121 + vec_in(i,15,k) * mat_tr(15,j) &
6122 + vec_in(i,16,k) * mat_tr(16,j)
6131 vec_out_z(i,j,k) = vec_in(i,1,k) * mat_tr(1,j) &
6132 + vec_in(i,j,2) * mat_tr(2,k) &
6133 + vec_in(i,j,3) * mat_tr(3,k) &
6134 + vec_in(i,j,4) * mat_tr(4,k) &
6135 + vec_in(i,j,5) * mat_tr(5,k) &
6136 + vec_in(i,j,6) * mat_tr(6,k) &
6137 + vec_in(i,j,7) * mat_tr(7,k) &
6138 + vec_in(i,j,8) * mat_tr(8,k) &
6139 + vec_in(i,j,9) * mat_tr(9,k) &
6140 + vec_in(i,j,10) * mat_tr(10,k) &
6141 + vec_in(i,j,11) * mat_tr(11,k) &
6142 + vec_in(i,j,12) * mat_tr(12,k) &
6143 + vec_in(i,j,13) * mat_tr(13,k) &
6144 + vec_in(i,j,14) * mat_tr(14,k) &
6145 + vec_in(i,j,15) * mat_tr(15,k) &
6146 + vec_in(i,j,16) * mat_tr(16,k)
6160 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
6161 vec_out_x, vec_out_y, vec_out_z )
6163 real(rp),
intent(in) :: mat(16,16)
6164 real(rp),
intent(in) :: mat_tr(16,16)
6165 real(rp),
intent(in) :: vec_in_x(16,16**2)
6166 real(rp),
intent(in) :: vec_in_y(16,16,16)
6167 real(rp),
intent(in) :: vec_in_z(16,16,16)
6168 real(rp),
intent(out) :: vec_out_x(16,16**2)
6169 real(rp),
intent(out) :: vec_out_y(16,16**2)
6170 real(rp),
intent(out) :: vec_out_z(16,16**2)
6172 integer :: i, j, k, jk
6173 real(rp) :: tmp1, tmp2, tmp3
6180 tmp1 = mat(i,1) * vec_in_x(1,jk) &
6181 + mat(i,2) * vec_in_x(2,jk) &
6182 + mat(i,3) * vec_in_x(3,jk) &
6183 + mat(i,4) * vec_in_x(4,jk) &
6184 + mat(i,5) * vec_in_x(5,jk)
6185 tmp2 = mat(i,6) * vec_in_x(6,jk) &
6186 + mat(i,7) * vec_in_x(7,jk) &
6187 + mat(i,8) * vec_in_x(8,jk) &
6188 + mat(i,9) * vec_in_x(9,jk) &
6189 + mat(i,10) * vec_in_x(10,jk)
6190 tmp3 = mat(i,11) * vec_in_x(11,jk) &
6191 + mat(i,12) * vec_in_x(12,jk) &
6192 + mat(i,13) * vec_in_x(13,jk) &
6193 + mat(i,14) * vec_in_x(14,jk) &
6194 + mat(i,15) * vec_in_x(15,jk) &
6195 + mat(i,16) * vec_in_x(16,jk)
6196 vec_out_x(i,jk) = tmp1 + tmp2 + tmp3
6205 tmp1 = vec_in_y(i,1,k) * mat_tr(1,j) &
6206 + vec_in_y(i,2,k) * mat_tr(2,j) &
6207 + vec_in_y(i,3,k) * mat_tr(3,j) &
6208 + vec_in_y(i,4,k) * mat_tr(4,j) &
6209 + vec_in_y(i,5,k) * mat_tr(5,j)
6210 tmp2 = vec_in_y(i,6,k) * mat_tr(6,j) &
6211 + vec_in_y(i,7,k) * mat_tr(7,j) &
6212 + vec_in_y(i,8,k) * mat_tr(8,j) &
6213 + vec_in_y(i,9,k) * mat_tr(9,j) &
6214 + vec_in_y(i,10,k) * mat_tr(10,j)
6215 tmp3 = vec_in_y(i,11,k) * mat_tr(11,j) &
6216 + vec_in_y(i,12,k) * mat_tr(12,j) &
6217 + vec_in_y(i,13,k) * mat_tr(13,j) &
6218 + vec_in_y(i,14,k) * mat_tr(14,j) &
6219 + vec_in_y(i,15,k) * mat_tr(15,j) &
6220 + vec_in_y(i,16,k) * mat_tr(16,j)
6221 vec_out_y(i,jk) = tmp1 + tmp2 + tmp3
6231 tmp1 = vec_in_z(i,j,1) * mat_tr(1,k) &
6232 + vec_in_z(i,j,2) * mat_tr(2,k) &
6233 + vec_in_z(i,j,3) * mat_tr(3,k) &
6234 + vec_in_z(i,j,4) * mat_tr(4,k) &
6235 + vec_in_z(i,j,5) * mat_tr(5,k)
6236 tmp2 = vec_in_z(i,j,6) * mat_tr(6,k) &
6237 + vec_in_z(i,j,7) * mat_tr(7,k) &
6238 + vec_in_z(i,j,8) * mat_tr(8,k) &
6239 + vec_in_z(i,j,9) * mat_tr(9,k) &
6240 + vec_in_z(i,j,10) * mat_tr(10,k)
6241 tmp3 = vec_in_z(i,j,11) * mat_tr(11,k) &
6242 + vec_in_z(i,j,12) * mat_tr(12,k) &
6243 + vec_in_z(i,j,13) * mat_tr(13,k) &
6244 + vec_in_z(i,j,14) * mat_tr(14,k) &
6245 + vec_in_z(i,j,15) * mat_tr(15,k) &
6246 + vec_in_z(i,j,16) * mat_tr(16,k)
6247 vec_out_z(i,jk) = tmp1 + tmp2 + tmp3
6255 subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p15( &
6256 Mat, Mat_tr, vec_in_x, vec_in_y, vec_in_z, &
6257 vec_out_x, vec_out_y, vec_out_z )
6259 real(rp),
intent(in) :: mat(16,16)
6260 real(rp),
intent(in) :: mat_tr(16,16)
6261 real(rp),
intent(in) :: vec_in_x(16,16**2*5)
6262 real(rp),
intent(in) :: vec_in_y(16,16,16*5)
6263 real(rp),
intent(in) :: vec_in_z(16,16,16,5)
6264 real(rp),
intent(out) :: vec_out_x(16,16**2*5)
6265 real(rp),
intent(out) :: vec_out_y(16,16**2*5)
6266 real(rp),
intent(out) :: vec_out_z(16,16**2,5)
6268 integer :: i, j, k, jkv, jk, v, kv
6269 real(rp) :: tmp1, tmp2, tmp3
6276 tmp1 = mat(i,1) * vec_in_x(1,jkv) &
6277 + mat(i,2) * vec_in_x(2,jkv) &
6278 + mat(i,3) * vec_in_x(3,jkv) &
6279 + mat(i,4) * vec_in_x(4,jkv) &
6280 + mat(i,5) * vec_in_x(5,jkv)
6281 tmp2 = mat(i,6) * vec_in_x(6,jkv) &
6282 + mat(i,7) * vec_in_x(7,jkv) &
6283 + mat(i,8) * vec_in_x(8,jkv) &
6284 + mat(i,9) * vec_in_x(9,jkv) &
6285 + mat(i,10) * vec_in_x(10,jkv)
6286 tmp3 = mat(i,11) * vec_in_x(11,jkv) &
6287 + mat(i,12) * vec_in_x(12,jkv) &
6288 + mat(i,13) * vec_in_x(13,jkv) &
6289 + mat(i,14) * vec_in_x(14,jkv) &
6290 + mat(i,15) * vec_in_x(15,jkv) &
6291 + mat(i,16) * vec_in_x(16,jkv)
6292 vec_out_x(i,jkv) = tmp1 + tmp2 + tmp3
6301 tmp1 = vec_in_y(i,1,kv) * mat_tr(1,j) &
6302 + vec_in_y(i,2,kv) * mat_tr(2,j) &
6303 + vec_in_y(i,3,kv) * mat_tr(3,j) &
6304 + vec_in_y(i,4,kv) * mat_tr(4,j) &
6305 + vec_in_y(i,5,kv) * mat_tr(5,j)
6306 tmp2 = vec_in_y(i,6,kv) * mat_tr(6,j) &
6307 + vec_in_y(i,7,kv) * mat_tr(7,j) &
6308 + vec_in_y(i,8,kv) * mat_tr(8,j) &
6309 + vec_in_y(i,9,kv) * mat_tr(9,j) &
6310 + vec_in_y(i,10,kv) * mat_tr(10,j)
6311 tmp3 = vec_in_y(i,11,kv) * mat_tr(11,j) &
6312 + vec_in_y(i,12,kv) * mat_tr(12,j) &
6313 + vec_in_y(i,13,kv) * mat_tr(13,j) &
6314 + vec_in_y(i,14,kv) * mat_tr(14,j) &
6315 + vec_in_y(i,15,kv) * mat_tr(15,j) &
6316 + vec_in_y(i,16,kv) * mat_tr(16,j)
6317 vec_out_y(i,jkv) = tmp1 + tmp2 + tmp3
6328 tmp1 = vec_in_z(i,j,1,v) * mat_tr(1,k) &
6329 + vec_in_z(i,j,2,v) * mat_tr(2,k) &
6330 + vec_in_z(i,j,3,v) * mat_tr(3,k) &
6331 + vec_in_z(i,j,4,v) * mat_tr(4,k) &
6332 + vec_in_z(i,j,5,v) * mat_tr(5,k)
6333 tmp2 = vec_in_z(i,j,6,v) * mat_tr(6,k) &
6334 + vec_in_z(i,j,7,v) * mat_tr(7,k) &
6335 + vec_in_z(i,j,8,v) * mat_tr(8,k) &
6336 + vec_in_z(i,j,9,v) * mat_tr(9,k) &
6337 + vec_in_z(i,j,10,v) * mat_tr(10,k)
6338 tmp3 = vec_in_z(i,j,11,v) * mat_tr(11,k) &
6339 + vec_in_z(i,j,12,v) * mat_tr(12,k) &
6340 + vec_in_z(i,j,13,v) * mat_tr(13,k) &
6341 + vec_in_z(i,j,14,v) * mat_tr(14,k) &
6342 + vec_in_z(i,j,15,v) * mat_tr(15,k) &
6343 + vec_in_z(i,j,16,v) * mat_tr(16,k)
6344 vec_out_z(i,jk,v) = tmp1 + tmp2 + tmp3
6350 end subroutine element_operation_kernel_matvec_divlike_dirxyz_var5_p15
6358 real(rp),
intent(in) :: mat_h1d(16,16)
6359 real(rp),
intent(in) :: mat_h1d_tr(16,16)
6360 real(rp),
intent(in) :: mat_v1d_tr(16,16)
6361 real(rp),
intent(in) :: vec_in(16,16,16)
6362 real(rp),
intent(out) :: vec_work(16,16,16)
6363 real(rp),
intent(out) :: vec_out(16,16,16)
6366 real(rp) :: tmp1, tmp2, tmp3
6374 tmp1 = mat_h1d(i,1) * vec_in(1,j,k) &
6375 + mat_h1d(i,2) * vec_in(2,j,k) &
6376 + mat_h1d(i,3) * vec_in(3,j,k) &
6377 + mat_h1d(i,4) * vec_in(4,j,k) &
6378 + mat_h1d(i,5) * vec_in(5,j,k)
6379 tmp2 = mat_h1d(i,6) * vec_in(6,j,k) &
6380 + mat_h1d(i,7) * vec_in(7,j,k) &
6381 + mat_h1d(i,8) * vec_in(8,j,k) &
6382 + mat_h1d(i,9) * vec_in(9,j,k) &
6383 + mat_h1d(i,10) * vec_in(10,j,k)
6384 tmp3 = mat_h1d(i,11) * vec_in(11,j,k) &
6385 + mat_h1d(i,12) * vec_in(12,j,k) &
6386 + mat_h1d(i,13) * vec_in(13,j,k) &
6387 + mat_h1d(i,14) * vec_in(14,j,k) &
6388 + mat_h1d(i,15) * vec_in(15,j,k) &
6389 + mat_h1d(i,16) * vec_in(16,j,k)
6390 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
6399 tmp1 = vec_out(i,1,k) * mat_h1d_tr(1,j) &
6400 + vec_out(i,2,k) * mat_h1d_tr(2,j) &
6401 + vec_out(i,3,k) * mat_h1d_tr(3,j) &
6402 + vec_out(i,4,k) * mat_h1d_tr(4,j) &
6403 + vec_out(i,5,k) * mat_h1d_tr(5,j)
6404 tmp2 = vec_out(i,6,k) * mat_h1d_tr(6,j) &
6405 + vec_out(i,7,k) * mat_h1d_tr(7,j) &
6406 + vec_out(i,8,k) * mat_h1d_tr(8,j) &
6407 + vec_out(i,9,k) * mat_h1d_tr(9,j) &
6408 + vec_out(i,10,k) * mat_h1d_tr(10,j)
6409 tmp3 = vec_out(i,11,k) * mat_h1d_tr(11,j) &
6410 + vec_out(i,12,k) * mat_h1d_tr(12,j) &
6411 + vec_out(i,13,k) * mat_h1d_tr(13,j) &
6412 + vec_out(i,14,k) * mat_h1d_tr(14,j) &
6413 + vec_out(i,15,k) * mat_h1d_tr(15,j) &
6414 + vec_out(i,16,k) * mat_h1d_tr(16,j)
6415 vec_work(i,j,k) = tmp1 + tmp2 + tmp3
6424 tmp1 = vec_work(i,j,1) * mat_v1d_tr(1,k) &
6425 + vec_work(i,j,2) * mat_v1d_tr(2,k) &
6426 + vec_work(i,j,3) * mat_v1d_tr(3,k) &
6427 + vec_work(i,j,4) * mat_v1d_tr(4,k) &
6428 + vec_work(i,j,5) * mat_v1d_tr(5,k)
6429 tmp2 = vec_work(i,j,6) * mat_v1d_tr(6,k) &
6430 + vec_work(i,j,7) * mat_v1d_tr(7,k) &
6431 + vec_work(i,j,8) * mat_v1d_tr(8,k) &
6432 + vec_work(i,j,9) * mat_v1d_tr(9,k) &
6433 + vec_work(i,j,10) * mat_v1d_tr(10,k)
6434 tmp3 = vec_work(i,j,11) * mat_v1d_tr(11,k) &
6435 + vec_work(i,j,12) * mat_v1d_tr(12,k) &
6436 + vec_work(i,j,13) * mat_v1d_tr(13,k) &
6437 + vec_work(i,j,14) * mat_v1d_tr(14,k) &
6438 + vec_work(i,j,15) * mat_v1d_tr(15,k) &
6439 + vec_work(i,j,16) * mat_v1d_tr(16,k)
6440 vec_out(i,j,k) = tmp1 + tmp2 + tmp3
module FElib / Element / Base
subroutine, public elementbase3d_init(elem, lumpedmat_flag)
Initialize an object to manage a 3D reference element.
subroutine, public elementbase3d_final(elem)
Finalize an object to manage a 3D reference element.
module FElib / Element / Operation with 3D tensor product elements
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p14(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_modalfilter_p15(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=15.
subroutine, public element_operation_kernel_matvec_dirz_p15(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_dirz_p3(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p1(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_modalfilter_p13(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=13.
subroutine, public element_operation_kernel_matvec_modalfilter_p8(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=8.
subroutine, public element_operation_kernel_matvec_dirx_p4(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p3(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_dirx_p3(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p5(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p6(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p6(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_diry_p12(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_dirx_p12(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_modalfilter_p14(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=14.
subroutine, public element_operation_kernel_matvec_dirz_p6(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_modalfilter_p4(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=4.
subroutine, public element_operation_kernel_matvec_dirz_p8(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_diry_p5(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p13(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p14(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_modalfilter_p6(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=6.
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p12(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_modalfilter_p10(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=10.
subroutine, public element_operation_kernel_matvec_dirz_p12(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_diry_p15(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_dirz_p4(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_diry_p3(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_diry_p14(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_modalfilter_p2(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=2.
subroutine, public element_operation_kernel_matvec_diry_p10(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p2(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_diry_p9(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p4(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_modalfilter_p7(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=7.
subroutine, public element_operation_kernel_matvec_modalfilter_p9(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=9.
subroutine, public element_operation_kernel_matvec_diry_p6(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p5(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p12(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_diry_p1(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_modalfilter_p11(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=11.
subroutine, public element_operation_kernel_matvec_dirx_p9(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p14(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_dirx_p10(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p15(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p10(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_modalfilter_p12(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=12.
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p2(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_dirx_p14(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p2(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_diry_p7(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_dirx_p1(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p7(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_diry_p2(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p8(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p3(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_dirx_p7(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p15(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p10(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_modalfilter_p1(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=1.
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p13(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_dirx_p15(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_dirz_p1(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p7(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p1(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_dirx_p5(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_dirx_p8(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_diry_p11(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p9(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_diry_p4(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_modalfilter_p3(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=3.
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p11(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_dirz_p7(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p3(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_dirx_p13(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p8(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p1(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p10(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p13(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_diry_p8(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p9(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_modalfilter_p5(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=5.
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p8(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p7(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p4(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_dirz_p10(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_dirz_p5(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p4(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_dirx_p11(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_dirz_p9(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_dirx_p2(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_dirx_p6(mat_x, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the x direction (...
subroutine, public element_operation_kernel_matvec_dirz_p11(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p15(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p5(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_diry_p13(mat_y_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the y direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p11(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_divlike_dirxyz_p12(mat, mat_tr, vec_in_x, vec_in_y, vec_in_z, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_dirz_p14(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p9(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
subroutine, public element_operation_kernel_matvec_dirz_p13(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_lift_hexahedral_p6(lift, vec_in, vec_out)
Calculate a matrix-vector multiplication with lifting operations for a hexahedral element of order p=...
subroutine, public element_operation_kernel_matvec_dirz_p2(mat_z_tr, vec_in, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_gradlike_dirxyz_p11(mat, mat_tr, vec_in, vec_in_, vec_out_x, vec_out_y, vec_out_z)
Calculate a matrix-vector multiplication associated with mathematical operations in the x,...
Derived type representing a 3D reference element.