2 subroutine mxmf2(A,N1,B,N2,C,N3)
6 real a(n1,n2),b(n2,n3),c(n1,n3)
10 call mxf1(a,n1,b,n2,c,n3)
12 call mxf2(a,n1,b,n2,c,n3)
14 call mxf3(a,n1,b,n2,c,n3)
16 call mxf4(a,n1,b,n2,c,n3)
18 call mxf5(a,n1,b,n2,c,n3)
20 call mxf6(a,n1,b,n2,c,n3)
22 call mxf7(a,n1,b,n2,c,n3)
24 call mxf8(a,n1,b,n2,c,n3)
26 elseif (n2.le.16)
then
28 call mxf9(a,n1,b,n2,c,n3)
29 elseif (n2.eq.10)
then
30 call mxf10(a,n1,b,n2,c,n3)
31 elseif (n2.eq.11)
then
32 call mxf11(a,n1,b,n2,c,n3)
33 elseif (n2.eq.12)
then
34 call mxf12(a,n1,b,n2,c,n3)
35 elseif (n2.eq.13)
then
36 call mxf13(a,n1,b,n2,c,n3)
37 elseif (n2.eq.14)
then
38 call mxf14(a,n1,b,n2,c,n3)
39 elseif (n2.eq.15)
then
40 call mxf15(a,n1,b,n2,c,n3)
42 call mxf16(a,n1,b,n2,c,n3)
44 elseif (n2.le.24)
then
46 call mxf17(a,n1,b,n2,c,n3)
47 elseif (n2.eq.18)
then
48 call mxf18(a,n1,b,n2,c,n3)
49 elseif (n2.eq.19)
then
50 call mxf19(a,n1,b,n2,c,n3)
51 elseif (n2.eq.20)
then
52 call mxf20(a,n1,b,n2,c,n3)
53 elseif (n2.eq.21)
then
54 call mxf21(a,n1,b,n2,c,n3)
55 elseif (n2.eq.22)
then
56 call mxf22(a,n1,b,n2,c,n3)
57 elseif (n2.eq.23)
then
58 call mxf23(a,n1,b,n2,c,n3)
59 elseif (n2.eq.24)
then
60 call mxf24(a,n1,b,n2,c,n3)
69 subroutine mxf1(a,n1,b,n2,c,n3)
71 real a(n1,1),b(1,n3),c(n1,n3)
75 c(i,j) = a(i,1)*b(1,j)
81 subroutine mxf2(a,n1,b,n2,c,n3)
83 real a(n1,2),b(2,n3),c(n1,n3)
87 c(i,j) = a(i,1)*b(1,j)
94 subroutine mxf3(a,n1,b,n2,c,n3)
96 real a(n1,3),b(3,n3),c(n1,n3)
100 c(i,j) = a(i,1)*b(1,j)
108 subroutine mxf4(a,n1,b,n2,c,n3)
110 real a(n1,4),b(4,n3),c(n1,n3)
114 c(i,j) = a(i,1)*b(1,j)
123 subroutine mxf5(a,n1,b,n2,c,n3)
125 real a(n1,5),b(5,n3),c(n1,n3)
129 c(i,j) = a(i,1)*b(1,j)
139 subroutine mxf6(a,n1,b,n2,c,n3)
141 real a(n1,6),b(6,n3),c(n1,n3)
145 c(i,j) = a(i,1)*b(1,j)
156 subroutine mxf7(a,n1,b,n2,c,n3)
158 real a(n1,7),b(7,n3),c(n1,n3)
162 c(i,j) = a(i,1)*b(1,j)
174 subroutine mxf8(a,n1,b,n2,c,n3)
176 real a(n1,8),b(8,n3),c(n1,n3)
180 c(i,j) = a(i,1)*b(1,j)
193 subroutine mxf9(a,n1,b,n2,c,n3)
195 real a(n1,9),b(9,n3),c(n1,n3)
199 c(i,j) = a(i,1)*b(1,j)
215 real a(n1,10),b(10,n3),c(n1,n3)
219 c(i,j) = a(i,1)*b(1,j)
236 real a(n1,11),b(11,n3),c(n1,n3)
240 c(i,j) = a(i,1)*b(1,j)
258 real a(n1,12),b(12,n3),c(n1,n3)
262 c(i,j) = a(i,1)*b(1,j)
281 real a(n1,13),b(13,n3),c(n1,n3)
285 c(i,j) = a(i,1)*b(1,j)
305 real a(n1,14),b(14,n3),c(n1,n3)
309 c(i,j) = a(i,1)*b(1,j)
330 real a(n1,15),b(15,n3),c(n1,n3)
334 c(i,j) = a(i,1)*b(1,j)
356 real a(n1,16),b(16,n3),c(n1,n3)
360 c(i,j) = a(i,1)*b(1,j)
383 real a(n1,17),b(17,n3),c(n1,n3)
387 c(i,j) = a(i,1)*b(1,j)
411 real a(n1,18),b(18,n3),c(n1,n3)
415 c(i,j) = a(i,1)*b(1,j)
440 real a(n1,19),b(19,n3),c(n1,n3)
444 c(i,j) = a(i,1)*b(1,j)
470 real a(n1,20),b(20,n3),c(n1,n3)
474 c(i,j) = a(i,1)*b(1,j)
501 real a(n1,21),b(21,n3),c(n1,n3)
505 c(i,j) = a(i,1)*b(1,j)
533 real a(n1,22),b(22,n3),c(n1,n3)
537 c(i,j) = a(i,1)*b(1,j)
566 real a(n1,23),b(23,n3),c(n1,n3)
570 c(i,j) = a(i,1)*b(1,j)
600 real a(n1,24),b(24,n3),c(n1,n3)
604 c(i,j) = a(i,1)*b(1,j)
637 real a(m,k), b(k,n), c(m,n)
638 real s11, s12, s13, s14, s21, s22, s23, s24
639 real s31, s32, s33, s34, s41, s42, s43, s44
665 s11 = s11 + a(i,l)*b(l,j)
666 s12 = s12 + a(i,l)*b(l,j+1)
667 s13 = s13 + a(i,l)*b(l,j+2)
668 s14 = s14 + a(i,l)*b(l,j+3)
670 s21 = s21 + a(i+1,l)*b(l,j)
671 s22 = s22 + a(i+1,l)*b(l,j+1)
672 s23 = s23 + a(i+1,l)*b(l,j+2)
673 s24 = s24 + a(i+1,l)*b(l,j+3)
675 s31 = s31 + a(i+2,l)*b(l,j)
676 s32 = s32 + a(i+2,l)*b(l,j+1)
677 s33 = s33 + a(i+2,l)*b(l,j+2)
678 s34 = s34 + a(i+2,l)*b(l,j+3)
680 s41 = s41 + a(i+3,l)*b(l,j)
681 s42 = s42 + a(i+3,l)*b(l,j+1)
682 s43 = s43 + a(i+3,l)*b(l,j+2)
683 s44 = s44 + a(i+3,l)*b(l,j+3)
707 if (nresid .ne. 0)
then
708 if (nresid .eq. 1)
then
714 s11 = s11 + a(i,l)*b(l,n)
715 s21 = s21 + a(i+1,l)*b(l,n)
716 s31 = s31 + a(i+2,l)*b(l,n)
717 s41 = s41 + a(i+3,l)*b(l,n)
723 elseif (nresid .eq. 2)
then
733 s11 = s11 + a(i,l)*b(l,j)
734 s12 = s12 + a(i,l)*b(l,j+1)
736 s21 = s21 + a(i+1,l)*b(l,j)
737 s22 = s22 + a(i+1,l)*b(l,j+1)
739 s31 = s31 + a(i+2,l)*b(l,j)
740 s32 = s32 + a(i+2,l)*b(l,j+1)
742 s41 = s41 + a(i+3,l)*b(l,j)
743 s42 = s42 + a(i+3,l)*b(l,j+1)
769 s11 = s11 + a(i,l)*b(l,j)
770 s12 = s12 + a(i,l)*b(l,j+1)
771 s13 = s13 + a(i,l)*b(l,j+2)
773 s21 = s21 + a(i+1,l)*b(l,j)
774 s22 = s22 + a(i+1,l)*b(l,j+1)
775 s23 = s23 + a(i+1,l)*b(l,j+2)
777 s31 = s31 + a(i+2,l)*b(l,j)
778 s32 = s32 + a(i+2,l)*b(l,j+1)
779 s33 = s33 + a(i+2,l)*b(l,j+2)
781 s41 = s41 + a(i+3,l)*b(l,j)
782 s42 = s42 + a(i+3,l)*b(l,j+1)
783 s43 = s43 + a(i+3,l)*b(l,j+2)
802 if (mresid .eq. 0)
then
804 elseif (mresid .eq. 1)
then
811 s11 = s11 + a(m,l)*b(l,j)
812 s12 = s12 + a(m,l)*b(l,j+1)
813 s13 = s13 + a(m,l)*b(l,j+2)
814 s14 = s14 + a(m,l)*b(l,j+3)
822 if (nresid .eq. 0)
then
824 elseif (nresid .eq. 1)
then
827 s11 = s11 + a(m,l)*b(l,n)
831 elseif (nresid .eq. 2)
then
835 s11 = s11 + a(m,l)*b(l,n-1)
836 s12 = s12 + a(m,l)*b(l,n)
846 s11 = s11 + a(m,l)*b(l,n-2)
847 s12 = s12 + a(m,l)*b(l,n-1)
848 s13 = s13 + a(m,l)*b(l,n)
855 elseif (mresid .eq. 2)
then
866 s11 = s11 + a(m-1,l)*b(l,j)
867 s12 = s12 + a(m-1,l)*b(l,j+1)
868 s13 = s13 + a(m-1,l)*b(l,j+2)
869 s14 = s14 + a(m-1,l)*b(l,j+3)
871 s21 = s21 + a(m,l)*b(l,j)
872 s22 = s22 + a(m,l)*b(l,j+1)
873 s23 = s23 + a(m,l)*b(l,j+2)
874 s24 = s24 + a(m,l)*b(l,j+3)
886 if (nresid .eq. 0)
then
888 elseif (nresid .eq. 1)
then
892 s11 = s11 + a(m-1,l)*b(l,n)
893 s21 = s21 + a(m,l)*b(l,n)
898 elseif (nresid .eq. 2)
then
904 s11 = s11 + a(m-1,l)*b(l,n-1)
905 s12 = s12 + a(m-1,l)*b(l,n)
906 s21 = s21 + a(m,l)*b(l,n-1)
907 s22 = s22 + a(m,l)*b(l,n)
922 s11 = s11 + a(m-1,l)*b(l,n-2)
923 s12 = s12 + a(m-1,l)*b(l,n-1)
924 s13 = s13 + a(m-1,l)*b(l,n)
925 s21 = s21 + a(m,l)*b(l,n-2)
926 s22 = s22 + a(m,l)*b(l,n-1)
927 s23 = s23 + a(m,l)*b(l,n)
957 s11 = s11 + a(m-2,l)*b(l,j)
958 s12 = s12 + a(m-2,l)*b(l,j+1)
959 s13 = s13 + a(m-2,l)*b(l,j+2)
960 s14 = s14 + a(m-2,l)*b(l,j+3)
962 s21 = s21 + a(m-1,l)*b(l,j)
963 s22 = s22 + a(m-1,l)*b(l,j+1)
964 s23 = s23 + a(m-1,l)*b(l,j+2)
965 s24 = s24 + a(m-1,l)*b(l,j+3)
967 s31 = s31 + a(m,l)*b(l,j)
968 s32 = s32 + a(m,l)*b(l,j+1)
969 s33 = s33 + a(m,l)*b(l,j+2)
970 s34 = s34 + a(m,l)*b(l,j+3)
988 if (nresid .eq. 0)
then
990 elseif (nresid .eq. 1)
then
995 s11 = s11 + a(m-2,l)*b(l,n)
996 s21 = s21 + a(m-1,l)*b(l,n)
997 s31 = s31 + a(m,l)*b(l,n)
1003 elseif (nresid .eq. 2)
then
1011 s11 = s11 + a(m-2,l)*b(l,n-1)
1012 s12 = s12 + a(m-2,l)*b(l,n)
1013 s21 = s21 + a(m-1,l)*b(l,n-1)
1014 s22 = s22 + a(m-1,l)*b(l,n)
1015 s31 = s31 + a(m,l)*b(l,n-1)
1016 s32 = s32 + a(m,l)*b(l,n)
1036 s11 = s11 + a(m-2,l)*b(l,n-2)
1037 s12 = s12 + a(m-2,l)*b(l,n-1)
1038 s13 = s13 + a(m-2,l)*b(l,n)
1039 s21 = s21 + a(m-1,l)*b(l,n-2)
1040 s22 = s22 + a(m-1,l)*b(l,n-1)
1041 s23 = s23 + a(m-1,l)*b(l,n)
1042 s31 = s31 + a(m,l)*b(l,n-2)
1043 s32 = s32 + a(m,l)*b(l,n-1)
1044 s33 = s33 + a(m,l)*b(l,n)
1063 real a(m,2), b(2,n), c(m,n)
1070 c(i,j) = a(i,1)*b(1,j)
1072 c(i,j+1) = a(i,1)*b(1,j+1)
1074 c(i,j+2) = a(i,1)*b(1,j+2)
1076 c(i,j+3) = a(i,1)*b(1,j+3)
1080 if (nresid .eq. 0)
then
1082 elseif (nresid .eq. 1)
then
1084 c(i,n) = a(i,1)*b(1,n)
1087 elseif (nresid .eq. 2)
then
1089 c(i,n-1) = a(i,1)*b(1,n-1)
1091 c(i,n) = a(i,1)*b(1,n)
1096 c(i,n-2) = a(i,1)*b(1,n-2)
1098 c(i,n-1) = a(i,1)*b(1,n-1)
1100 c(i,n) = a(i,1)*b(1,n)
1112 external mxms,mxmur2,mxmur3,mxmd,mxmfb,mxmf3,mxmu4
1113 external madd,mxm,mxm44
1124 call mxmtest(s(1,1, 1,k),nn,c(k, 1),
mxm44 ,
'mxm44',k,ivb)
1125 call mxmtest(s(1,1, 2,k),nn,c(k, 2),
mxms ,
' std ',k,ivb)
1126 call mxmtest(s(1,1, 3,k),nn,c(k, 3),
mxmur2,
'mxmu2',k,ivb)
1127 call mxmtest(s(1,1, 4,k),nn,c(k, 4),
mxmur3,
'mxmu3',k,ivb)
1128 call mxmtest(s(1,1, 5,k),nn,c(k, 5),
mxmd ,
'mxmd ',k,ivb)
1129 call mxmtest(s(1,1, 6,k),nn,c(k, 6),
mxmfb ,
'mxmfb',k,ivb)
1130 call mxmtest(s(1,1, 7,k),nn,c(k, 7),
mxmu4 ,
'mxmu4',k,ivb)
1131 call mxmtest(s(1,1, 8,k),nn,c(k, 8),
mxmf3 ,
'mxmf3',k,ivb)
1133 $
call mxmtest(s(1,1, 9,k),nn,c(k, 9),
madd ,
'madd ',k,ivb)
1134 call mxmtest(s(1,1,10,k),nn,c(k,10),
mxm ,
'mxm ',k,ivb)
1151 a(i) = -.25*(a(i)+a(i+1)) + (x*x + k + l)/(x*x+m)
1152 b(i) = -.25*(b(i)+b(i+1)) + (x*x + k + m)/(x*x+l)
1154 a(n) = -.25*(a(n)+a(n)) + (x*x + k + l)/(x*x+m)
1155 b(n) = -.25*(b(n)+b(n)) + (x*x + k + m)/(x*x+l)
1166 REAL A(N1,N2),B(N2,N3),C(N1,N3)
1176 c(i,j)=c(i,j)+a(i,k)*bb
1188 REAL A(N1,N2),B(N2,N3),C(N1,N3)
1194 i1 = n1 - mod(n1,4) + 1
1199 c(i ,j)=c(i ,j)+a(i ,k)*bb
1200 c(i+1,j)=c(i+1,j)+a(i+1,k)*bb
1201 c(i+2,j)=c(i+2,j)+a(i+2,k)*bb
1202 c(i+3,j)=c(i+3,j)+a(i+3,k)*bb
1205 c(i ,j)=c(i ,j)+a(i ,k)*bb
1213 real a(n1,n2),b(n2,n3),c(n1,n3)
1217 c(i,j) = a(i,j)+b(i,j)
1231 REAL A(N1,N2),B(N2,N3),C(N1,N3)
1236 elseif (n2.eq.2)
then
1238 elseif (n2.eq.3)
then
1240 elseif (n2.eq.4)
then
1242 elseif (n2.eq.5)
then
1244 elseif (n2.eq.6)
then
1246 elseif (n2.eq.7)
then
1251 elseif (n2.le.16)
then
1254 elseif (n2.eq.10)
then
1256 elseif (n2.eq.11)
then
1258 elseif (n2.eq.12)
then
1260 elseif (n2.eq.13)
then
1262 elseif (n2.eq.14)
then
1264 elseif (n2.eq.15)
then
1278 c(i,j)=c(i,j)+a(i,k)*bb
1286 real a(n1,1),b(1,n3),c(n1,n3)
1290 c(i,j) = a(i,1)*b(1,j)
1297 real a(n1,2),b(2,n3),c(n1,n3)
1301 c(i,j) = a(i,1)*b(1,j)
1309 real a(n1,3),b(3,n3),c(n1,n3)
1313 c(i,j) = a(i,1)*b(1,j)
1322 real a(n1,4),b(4,n3),c(n1,n3)
1326 c(i,j) = a(i,1)*b(1,j)
1336 real a(n1,5),b(5,n3),c(n1,n3)
1340 c(i,j) = a(i,1)*b(1,j)
1351 real a(n1,6),b(6,n3),c(n1,n3)
1355 c(i,j) = a(i,1)*b(1,j)
1367 real a(n1,7),b(7,n3),c(n1,n3)
1371 c(i,j) = a(i,1)*b(1,j)
1384 real a(n1,8),b(8,n3),c(n1,n3)
1388 c(i,j) = a(i,1)*b(1,j)
1402 real a(n1,9),b(9,n3),c(n1,n3)
1406 c(i,j) = a(i,1)*b(1,j)
1421 real a(n1,10),b(10,n3),c(n1,n3)
1425 c(i,j) = a(i,1)*b(1,j)
1441 real a(n1,11),b(11,n3),c(n1,n3)
1445 c(i,j) = a(i,1)*b(1,j)
1462 real a(n1,12),b(12,n3),c(n1,n3)
1466 c(i,j) = a(i,1)*b(1,j)
1484 real a(n1,13),b(13,n3),c(n1,n3)
1488 c(i,j) = a(i,1)*b(1,j)
1507 real a(n1,14),b(14,n3),c(n1,n3)
1511 c(i,j) = a(i,1)*b(1,j)
1531 real a(n1,15),b(15,n3),c(n1,n3)
1535 c(i,j) = a(i,1)*b(1,j)
1556 real a(n1,16),b(16,n3),c(n1,n3)
1560 c(i,j) = a(i,1)*b(1,j)
1588 REAL A(N1,N2),B(N2,N3),C(N1,N3)
1597 elseif (n3.eq.2)
then
1599 elseif (n3.eq.3)
then
1601 elseif (n3.eq.4)
then
1603 elseif (n3.eq.5)
then
1605 elseif (n3.eq.6)
then
1607 elseif (n3.eq.7)
then
1612 elseif (n3.le.16)
then
1615 elseif (n3.eq.10)
then
1617 elseif (n3.eq.11)
then
1619 elseif (n3.eq.12)
then
1621 elseif (n3.eq.13)
then
1623 elseif (n3.eq.14)
then
1625 elseif (n3.eq.15)
then
1635 c(i,j)=c(i,j)+a(i,k)*bb
1642 real a(n1,n2),b(n2,16),c(n1,16)
1662 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1663 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1664 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1665 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1666 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1667 c(i, 6) = c(i, 6) + a(i,k) * tmp6
1668 c(i, 7) = c(i, 7) + a(i,k) * tmp7
1669 c(i, 8) = c(i, 8) + a(i,k) * tmp8
1670 c(i, 9) = c(i, 9) + a(i,k) * tmp9
1671 c(i,10) = c(i,10) + a(i,k) * tmp10
1672 c(i,11) = c(i,11) + a(i,k) * tmp11
1673 c(i,12) = c(i,12) + a(i,k) * tmp12
1674 c(i,13) = c(i,13) + a(i,k) * tmp13
1675 c(i,14) = c(i,14) + a(i,k) * tmp14
1676 c(i,15) = c(i,15) + a(i,k) * tmp15
1677 c(i,16) = c(i,16) + a(i,k) * tmp16
1685 real a(n1,n2),b(n2,15),c(n1,15)
1704 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1705 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1706 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1707 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1708 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1709 c(i, 6) = c(i, 6) + a(i,k) * tmp6
1710 c(i, 7) = c(i, 7) + a(i,k) * tmp7
1711 c(i, 8) = c(i, 8) + a(i,k) * tmp8
1712 c(i, 9) = c(i, 9) + a(i,k) * tmp9
1713 c(i,10) = c(i,10) + a(i,k) * tmp10
1714 c(i,11) = c(i,11) + a(i,k) * tmp11
1715 c(i,12) = c(i,12) + a(i,k) * tmp12
1716 c(i,13) = c(i,13) + a(i,k) * tmp13
1717 c(i,14) = c(i,14) + a(i,k) * tmp14
1718 c(i,15) = c(i,15) + a(i,k) * tmp15
1726 real a(n1,n2),b(n2,14),c(n1,14)
1744 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1745 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1746 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1747 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1748 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1749 c(i, 6) = c(i, 6) + a(i,k) * tmp6
1750 c(i, 7) = c(i, 7) + a(i,k) * tmp7
1751 c(i, 8) = c(i, 8) + a(i,k) * tmp8
1752 c(i, 9) = c(i, 9) + a(i,k) * tmp9
1753 c(i,10) = c(i,10) + a(i,k) * tmp10
1754 c(i,11) = c(i,11) + a(i,k) * tmp11
1755 c(i,12) = c(i,12) + a(i,k) * tmp12
1756 c(i,13) = c(i,13) + a(i,k) * tmp13
1757 c(i,14) = c(i,14) + a(i,k) * tmp14
1765 real a(n1,n2),b(n2,13),c(n1,13)
1782 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1783 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1784 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1785 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1786 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1787 c(i, 6) = c(i, 6) + a(i,k) * tmp6
1788 c(i, 7) = c(i, 7) + a(i,k) * tmp7
1789 c(i, 8) = c(i, 8) + a(i,k) * tmp8
1790 c(i, 9) = c(i, 9) + a(i,k) * tmp9
1791 c(i,10) = c(i,10) + a(i,k) * tmp10
1792 c(i,11) = c(i,11) + a(i,k) * tmp11
1793 c(i,12) = c(i,12) + a(i,k) * tmp12
1794 c(i,13) = c(i,13) + a(i,k) * tmp13
1802 real a(n1,n2),b(n2,12),c(n1,12)
1818 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1819 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1820 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1821 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1822 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1823 c(i, 6) = c(i, 6) + a(i,k) * tmp6
1824 c(i, 7) = c(i, 7) + a(i,k) * tmp7
1825 c(i, 8) = c(i, 8) + a(i,k) * tmp8
1826 c(i, 9) = c(i, 9) + a(i,k) * tmp9
1827 c(i,10) = c(i,10) + a(i,k) * tmp10
1828 c(i,11) = c(i,11) + a(i,k) * tmp11
1829 c(i,12) = c(i,12) + a(i,k) * tmp12
1837 real a(n1,n2),b(n2,11),c(n1,11)
1852 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1853 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1854 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1855 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1856 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1857 c(i, 6) = c(i, 6) + a(i,k) * tmp6
1858 c(i, 7) = c(i, 7) + a(i,k) * tmp7
1859 c(i, 8) = c(i, 8) + a(i,k) * tmp8
1860 c(i, 9) = c(i, 9) + a(i,k) * tmp9
1861 c(i,10) = c(i,10) + a(i,k) * tmp10
1862 c(i,11) = c(i,11) + a(i,k) * tmp11
1870 real a(n1,n2),b(n2,10),c(n1,10)
1884 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1885 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1886 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1887 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1888 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1889 c(i, 6) = c(i, 6) + a(i,k) * tmp6
1890 c(i, 7) = c(i, 7) + a(i,k) * tmp7
1891 c(i, 8) = c(i, 8) + a(i,k) * tmp8
1892 c(i, 9) = c(i, 9) + a(i,k) * tmp9
1893 c(i,10) = c(i,10) + a(i,k) * tmp10
1901 real a(n1,n2),b(n2,9),c(n1,9)
1914 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1915 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1916 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1917 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1918 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1919 c(i, 6) = c(i, 6) + a(i,k) * tmp6
1920 c(i, 7) = c(i, 7) + a(i,k) * tmp7
1921 c(i, 8) = c(i, 8) + a(i,k) * tmp8
1922 c(i, 9) = c(i, 9) + a(i,k) * tmp9
1930 real a(n1,n2),b(n2,8),c(n1,8)
1942 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1943 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1944 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1945 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1946 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1947 c(i, 6) = c(i, 6) + a(i,k) * tmp6
1948 c(i, 7) = c(i, 7) + a(i,k) * tmp7
1949 c(i, 8) = c(i, 8) + a(i,k) * tmp8
1957 real a(n1,n2),b(n2,7),c(n1,7)
1968 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1969 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1970 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1971 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1972 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1973 c(i, 6) = c(i, 6) + a(i,k) * tmp6
1974 c(i, 7) = c(i, 7) + a(i,k) * tmp7
1982 real a(n1,n2),b(n2,6),c(n1,6)
1992 c(i, 1) = c(i, 1) + a(i,k) * tmp1
1993 c(i, 2) = c(i, 2) + a(i,k) * tmp2
1994 c(i, 3) = c(i, 3) + a(i,k) * tmp3
1995 c(i, 4) = c(i, 4) + a(i,k) * tmp4
1996 c(i, 5) = c(i, 5) + a(i,k) * tmp5
1997 c(i, 6) = c(i, 6) + a(i,k) * tmp6
2005 real a(n1,n2),b(n2,5),c(n1,5)
2014 c(i, 1) = c(i, 1) + a(i,k) * tmp1
2015 c(i, 2) = c(i, 2) + a(i,k) * tmp2
2016 c(i, 3) = c(i, 3) + a(i,k) * tmp3
2017 c(i, 4) = c(i, 4) + a(i,k) * tmp4
2018 c(i, 5) = c(i, 5) + a(i,k) * tmp5
2026 real a(n1,n2),b(n2,4),c(n1,4)
2034 c(i, 1) = c(i, 1) + a(i,k) * tmp1
2035 c(i, 2) = c(i, 2) + a(i,k) * tmp2
2036 c(i, 3) = c(i, 3) + a(i,k) * tmp3
2037 c(i, 4) = c(i, 4) + a(i,k) * tmp4
2045 real a(n1,n2),b(n2,3),c(n1,3)
2052 c(i, 1) = c(i, 1) + a(i,k) * tmp1
2053 c(i, 2) = c(i, 2) + a(i,k) * tmp2
2054 c(i, 3) = c(i, 3) + a(i,k) * tmp3
2062 real a(n1,n2),b(n2,2),c(n1,2)
2068 c(i, 1) = c(i, 1) + a(i,k) * tmp1
2069 c(i, 2) = c(i, 2) + a(i,k) * tmp2
2077 real a(n1,n2),b(n2,1),c(n1,1)
2082 c(i, 1) = c(i, 1) + a(i,k) * tmp1
2095 REAL A(N1,N2),B(N2,N3),C(N1,N3)
2102 call dgemm(
'N',
'N',n1,n3,n2,one,a,n1,b,n2,zero,c,n1)
2113 REAL A(N1,N2),B(N2,N3),C(N1,N3)
2121 if (wdsize.eq.0)
then
2125 if (one+eps.eq.1.0) wdsize = 4
2131 elseif (n2.eq.2)
then
2133 elseif (n2.eq.3)
then
2135 elseif (n2.eq.4)
then
2137 elseif (n2.eq.5)
then
2139 elseif (n2.eq.6)
then
2141 elseif (n2.eq.7)
then
2146 elseif (n2.le.16)
then
2149 elseif (n2.eq.10)
then
2151 elseif (n2.eq.11)
then
2153 elseif (n2.eq.12)
then
2155 elseif (n2.eq.13)
then
2157 elseif (n2.eq.14)
then
2159 elseif (n2.eq.15)
then
2164 elseif (n2.le.24)
then
2167 elseif (n2.eq.18)
then
2169 elseif (n2.eq.19)
then
2171 elseif (n2.eq.20)
then
2173 elseif (n2.eq.21)
then
2175 elseif (n2.eq.22)
then
2177 elseif (n2.eq.23)
then
2179 elseif (n2.eq.24)
then
2186 call dgemm(
'N',
'N',n1,n3,n2,one,a,n1,b,n2,zero,c,n1)
2194 real a(n1,1),b(1,n3),c(n1,n3)
2198 c(i,j) = a(i,1)*b(1,j)
2206 real a(n1,2),b(2,n3),c(n1,n3)
2210 c(i,j) = a(i,1)*b(1,j)
2219 real a(n1,3),b(3,n3),c(n1,n3)
2223 c(i,j) = a(i,1)*b(1,j)
2233 real a(n1,4),b(4,n3),c(n1,n3)
2237 c(i,j) = a(i,1)*b(1,j)
2248 real a(n1,5),b(5,n3),c(n1,n3)
2252 c(i,j) = a(i,1)*b(1,j)
2264 real a(n1,6),b(6,n3),c(n1,n3)
2268 c(i,j) = a(i,1)*b(1,j)
2281 real a(n1,7),b(7,n3),c(n1,n3)
2285 c(i,j) = a(i,1)*b(1,j)
2299 real a(n1,8),b(8,n3),c(n1,n3)
2303 c(i,j) = a(i,1)*b(1,j)
2318 real a(n1,9),b(9,n3),c(n1,n3)
2322 c(i,j) = a(i,1)*b(1,j)
2338 real a(n1,10),b(10,n3),c(n1,n3)
2342 c(i,j) = a(i,1)*b(1,j)
2359 real a(n1,11),b(11,n3),c(n1,n3)
2363 c(i,j) = a(i,1)*b(1,j)
2381 real a(n1,12),b(12,n3),c(n1,n3)
2385 c(i,j) = a(i,1)*b(1,j)
2404 real a(n1,13),b(13,n3),c(n1,n3)
2408 c(i,j) = a(i,1)*b(1,j)
2428 real a(n1,14),b(14,n3),c(n1,n3)
2432 c(i,j) = a(i,1)*b(1,j)
2453 real a(n1,15),b(15,n3),c(n1,n3)
2457 c(i,j) = a(i,1)*b(1,j)
2479 real a(n1,16),b(16,n3),c(n1,n3)
2483 c(i,j) = a(i,1)*b(1,j)
2506 real a(n1,17),b(17,n3),c(n1,n3)
2510 c(i,j) = a(i,1)*b(1,j)
2534 real a(n1,18),b(18,n3),c(n1,n3)
2538 c(i,j) = a(i,1)*b(1,j)
2563 real a(n1,19),b(19,n3),c(n1,n3)
2567 c(i,j) = a(i,1)*b(1,j)
2593 real a(n1,20),b(20,n3),c(n1,n3)
2597 c(i,j) = a(i,1)*b(1,j)
2624 real a(n1,21),b(21,n3),c(n1,n3)
2628 c(i,j) = a(i,1)*b(1,j)
2656 real a(n1,22),b(22,n3),c(n1,n3)
2660 c(i,j) = a(i,1)*b(1,j)
2689 real a(n1,23),b(23,n3),c(n1,n3)
2693 c(i,j) = a(i,1)*b(1,j)
2723 real a(n1,24),b(24,n3),c(n1,n3)
2727 c(i,j) = a(i,1)*b(1,j)
2763 REAL A(N1,N2),B(N2,N3),C(N1,N3)
2771 if (wdsize.eq.0)
then
2775 if (one+eps.eq.1.0) wdsize = 4
2781 elseif (n2.eq.2)
then
2783 elseif (n2.eq.3)
then
2785 elseif (n2.eq.4)
then
2787 elseif (n2.eq.5)
then
2789 elseif (n2.eq.6)
then
2791 elseif (n2.eq.7)
then
2796 elseif (n2.le.16)
then
2799 elseif (n2.eq.10)
then
2801 elseif (n2.eq.11)
then
2803 elseif (n2.eq.12)
then
2805 elseif (n2.eq.13)
then
2807 elseif (n2.eq.14)
then
2809 elseif (n2.eq.15)
then
2814 elseif (n2.le.24)
then
2817 elseif (n2.eq.18)
then
2819 elseif (n2.eq.19)
then
2821 elseif (n2.eq.20)
then
2823 elseif (n2.eq.21)
then
2825 elseif (n2.eq.22)
then
2827 elseif (n2.eq.23)
then
2829 elseif (n2.eq.24)
then
2836 call dgemm(
'N',
'N',n1,n3,n2,one,a,n1,b,n2,zero,c,n1)
2855 real a(n1,1),b(1,n3),c(n1,n3)
2859 c(i,j) = a(i,1)*b(1,j)
2867 real a(n1,2),b(2,n3),c(n1,n3)
2871 c(i,j) = a(i,1)*b(1,j)
2880 real a(n1,3),b(3,n3),c(n1,n3)
2884 c(i,j) = a(i,1)*b(1,j)
2894 real a(n1,4),b(4,n3),c(n1,n3)
2898 c(i,j) = a(i,1)*b(1,j)
2909 real a(n1,5),b(5,n3),c(n1,n3)
2913 c(i,j) = a(i,1)*b(1,j)
2925 real a(n1,6),b(6,n3),c(n1,n3)
2929 c(i,j) = a(i,1)*b(1,j)
2942 real a(n1,7),b(7,n3),c(n1,n3)
2946 c(i,j) = a(i,1)*b(1,j)
2960 real a(n1,8),b(8,n3),c(n1,n3)
2964 c(i,j) = a(i,1)*b(1,j)
2979 real a(n1,9),b(9,n3),c(n1,n3)
2983 c(i,j) = a(i,1)*b(1,j)
2999 real a(n1,10),b(10,n3),c(n1,n3)
3003 c(i,j) = a(i,1)*b(1,j)
3020 real a(n1,11),b(11,n3),c(n1,n3)
3024 c(i,j) = a(i,1)*b(1,j)
3042 real a(n1,12),b(12,n3),c(n1,n3)
3046 c(i,j) = a(i,1)*b(1,j)
3065 real a(n1,13),b(13,n3),c(n1,n3)
3069 c(i,j) = a(i,1)*b(1,j)
3089 real a(n1,14),b(14,n3),c(n1,n3)
3093 c(i,j) = a(i,1)*b(1,j)
3114 real a(n1,15),b(15,n3),c(n1,n3)
3118 c(i,j) = a(i,1)*b(1,j)
3140 real a(n1,16),b(16,n3),c(n1,n3)
3144 c(i,j) = a(i,1)*b(1,j)
3167 real a(n1,17),b(17,n3),c(n1,n3)
3171 c(i,j) = a(i,1)*b(1,j)
3195 real a(n1,18),b(18,n3),c(n1,n3)
3199 c(i,j) = a(i,1)*b(1,j)
3224 real a(n1,19),b(19,n3),c(n1,n3)
3228 c(i,j) = a(i,1)*b(1,j)
3254 real a(n1,20),b(20,n3),c(n1,n3)
3258 c(i,j) = a(i,1)*b(1,j)
3285 real a(n1,21),b(21,n3),c(n1,n3)
3289 c(i,j) = a(i,1)*b(1,j)
3317 real a(n1,22),b(22,n3),c(n1,n3)
3321 c(i,j) = a(i,1)*b(1,j)
3350 real a(n1,23),b(23,n3),c(n1,n3)
3354 c(i,j) = a(i,1)*b(1,j)
3384 real a(n1,24),b(24,n3),c(n1,n3)
3388 c(i,j) = a(i,1)*b(1,j)
3431 REAL A(N1,N2),B(N2,N3),C(N1,N3)
3435 elseif (n2.eq.2)
then
3448 real a(m,k), b(k,n), c(m,n)
3449 real s11, s12, s13, s14, s21, s22, s23, s24
3450 real s31, s32, s33, s34, s41, s42, s43, s44
3479 s11 = s11 + a(i,l)*b(l,j)
3480 s12 = s12 + a(i,l)*b(l,j+1)
3481 s13 = s13 + a(i,l)*b(l,j+2)
3482 s14 = s14 + a(i,l)*b(l,j+3)
3484 s21 = s21 + a(i+1,l)*b(l,j)
3485 s22 = s22 + a(i+1,l)*b(l,j+1)
3486 s23 = s23 + a(i+1,l)*b(l,j+2)
3487 s24 = s24 + a(i+1,l)*b(l,j+3)
3489 s31 = s31 + a(i+2,l)*b(l,j)
3490 s32 = s32 + a(i+2,l)*b(l,j+1)
3491 s33 = s33 + a(i+2,l)*b(l,j+2)
3492 s34 = s34 + a(i+2,l)*b(l,j+3)
3494 s41 = s41 + a(i+3,l)*b(l,j)
3495 s42 = s42 + a(i+3,l)*b(l,j+1)
3496 s43 = s43 + a(i+3,l)*b(l,j+2)
3497 s44 = s44 + a(i+3,l)*b(l,j+3)
3521 if (nresid .ne. 0)
then
3522 if (nresid .eq. 1)
then
3528 s11 = s11 + a(i,l)*b(l,n)
3529 s21 = s21 + a(i+1,l)*b(l,n)
3530 s31 = s31 + a(i+2,l)*b(l,n)
3531 s41 = s41 + a(i+3,l)*b(l,n)
3537 elseif (nresid .eq. 2)
then
3547 s11 = s11 + a(i,l)*b(l,j)
3548 s12 = s12 + a(i,l)*b(l,j+1)
3550 s21 = s21 + a(i+1,l)*b(l,j)
3551 s22 = s22 + a(i+1,l)*b(l,j+1)
3553 s31 = s31 + a(i+2,l)*b(l,j)
3554 s32 = s32 + a(i+2,l)*b(l,j+1)
3556 s41 = s41 + a(i+3,l)*b(l,j)
3557 s42 = s42 + a(i+3,l)*b(l,j+1)
3583 s11 = s11 + a(i,l)*b(l,j)
3584 s12 = s12 + a(i,l)*b(l,j+1)
3585 s13 = s13 + a(i,l)*b(l,j+2)
3587 s21 = s21 + a(i+1,l)*b(l,j)
3588 s22 = s22 + a(i+1,l)*b(l,j+1)
3589 s23 = s23 + a(i+1,l)*b(l,j+2)
3591 s31 = s31 + a(i+2,l)*b(l,j)
3592 s32 = s32 + a(i+2,l)*b(l,j+1)
3593 s33 = s33 + a(i+2,l)*b(l,j+2)
3595 s41 = s41 + a(i+3,l)*b(l,j)
3596 s42 = s42 + a(i+3,l)*b(l,j+1)
3597 s43 = s43 + a(i+3,l)*b(l,j+2)
3616 if (mresid .eq. 0)
then
3618 elseif (mresid .eq. 1)
then
3625 s11 = s11 + a(m,l)*b(l,j)
3626 s12 = s12 + a(m,l)*b(l,j+1)
3627 s13 = s13 + a(m,l)*b(l,j+2)
3628 s14 = s14 + a(m,l)*b(l,j+3)
3636 if (nresid .eq. 0)
then
3638 elseif (nresid .eq. 1)
then
3641 s11 = s11 + a(m,l)*b(l,n)
3645 elseif (nresid .eq. 2)
then
3649 s11 = s11 + a(m,l)*b(l,n-1)
3650 s12 = s12 + a(m,l)*b(l,n)
3660 s11 = s11 + a(m,l)*b(l,n-2)
3661 s12 = s12 + a(m,l)*b(l,n-1)
3662 s13 = s13 + a(m,l)*b(l,n)
3669 elseif (mresid .eq. 2)
then
3680 s11 = s11 + a(m-1,l)*b(l,j)
3681 s12 = s12 + a(m-1,l)*b(l,j+1)
3682 s13 = s13 + a(m-1,l)*b(l,j+2)
3683 s14 = s14 + a(m-1,l)*b(l,j+3)
3685 s21 = s21 + a(m,l)*b(l,j)
3686 s22 = s22 + a(m,l)*b(l,j+1)
3687 s23 = s23 + a(m,l)*b(l,j+2)
3688 s24 = s24 + a(m,l)*b(l,j+3)
3700 if (nresid .eq. 0)
then
3702 elseif (nresid .eq. 1)
then
3706 s11 = s11 + a(m-1,l)*b(l,n)
3707 s21 = s21 + a(m,l)*b(l,n)
3712 elseif (nresid .eq. 2)
then
3718 s11 = s11 + a(m-1,l)*b(l,n-1)
3719 s12 = s12 + a(m-1,l)*b(l,n)
3720 s21 = s21 + a(m,l)*b(l,n-1)
3721 s22 = s22 + a(m,l)*b(l,n)
3736 s11 = s11 + a(m-1,l)*b(l,n-2)
3737 s12 = s12 + a(m-1,l)*b(l,n-1)
3738 s13 = s13 + a(m-1,l)*b(l,n)
3739 s21 = s21 + a(m,l)*b(l,n-2)
3740 s22 = s22 + a(m,l)*b(l,n-1)
3741 s23 = s23 + a(m,l)*b(l,n)
3771 s11 = s11 + a(m-2,l)*b(l,j)
3772 s12 = s12 + a(m-2,l)*b(l,j+1)
3773 s13 = s13 + a(m-2,l)*b(l,j+2)
3774 s14 = s14 + a(m-2,l)*b(l,j+3)
3776 s21 = s21 + a(m-1,l)*b(l,j)
3777 s22 = s22 + a(m-1,l)*b(l,j+1)
3778 s23 = s23 + a(m-1,l)*b(l,j+2)
3779 s24 = s24 + a(m-1,l)*b(l,j+3)
3781 s31 = s31 + a(m,l)*b(l,j)
3782 s32 = s32 + a(m,l)*b(l,j+1)
3783 s33 = s33 + a(m,l)*b(l,j+2)
3784 s34 = s34 + a(m,l)*b(l,j+3)
3802 if (nresid .eq. 0)
then
3804 elseif (nresid .eq. 1)
then
3809 s11 = s11 + a(m-2,l)*b(l,n)
3810 s21 = s21 + a(m-1,l)*b(l,n)
3811 s31 = s31 + a(m,l)*b(l,n)
3817 elseif (nresid .eq. 2)
then
3825 s11 = s11 + a(m-2,l)*b(l,n-1)
3826 s12 = s12 + a(m-2,l)*b(l,n)
3827 s21 = s21 + a(m-1,l)*b(l,n-1)
3828 s22 = s22 + a(m-1,l)*b(l,n)
3829 s31 = s31 + a(m,l)*b(l,n-1)
3830 s32 = s32 + a(m,l)*b(l,n)
3850 s11 = s11 + a(m-2,l)*b(l,n-2)
3851 s12 = s12 + a(m-2,l)*b(l,n-1)
3852 s13 = s13 + a(m-2,l)*b(l,n)
3853 s21 = s21 + a(m-1,l)*b(l,n-2)
3854 s22 = s22 + a(m-1,l)*b(l,n-1)
3855 s23 = s23 + a(m-1,l)*b(l,n)
3856 s31 = s31 + a(m,l)*b(l,n-2)
3857 s32 = s32 + a(m,l)*b(l,n-1)
3858 s33 = s33 + a(m,l)*b(l,n)
3877 real a(m,2), b(2,n), c(m,n)
3884 c(i,j) = a(i,1)*b(1,j)
3886 c(i,j+1) = a(i,1)*b(1,j+1)
3888 c(i,j+2) = a(i,1)*b(1,j+2)
3890 c(i,j+3) = a(i,1)*b(1,j+3)
3894 if (nresid .eq. 0)
then
3896 elseif (nresid .eq. 1)
then
3898 c(i,n) = a(i,1)*b(1,n)
3901 elseif (nresid .eq. 2)
then
3903 c(i,n-1) = a(i,1)*b(1,n-1)
3905 c(i,n) = a(i,1)*b(1,n)
3910 c(i,n-2) = a(i,1)*b(1,n-2)
3912 c(i,n-1) = a(i,1)*b(1,n-1)
3914 c(i,n) = a(i,1)*b(1,n)
3930 parameter(lt=4*lx1*ly1*lz1*lelt)
3931 common /scrns/ a(lt)
3932 common /scruz/ b(lt)
3933 common /scrmg/ c(lt)
3937 data ll,icalld /1,0/
3939 if (icalld.eq.0)
then
3944 if (nid.eq.0)
write(6,*)
'mxm test init:',lt,time2,name
3964 if (m.eq.1) n1 = n*n
3965 if (m.eq.3) n3 = n*n
3966 if (lt.gt.n1*n3)
then
3968 loop = 250000/(n1*n2*n3) + 500
3969 if (name.eq.
'madd ') loop = 200000/(n1*n3) + 5000
3979 if (ll.ge.lt-n1*n3) ll = 1
3980 call mxmt(a(ll),n1,b(ll),n2,c(ll),n3)
3984 time = time2-time1 - overh
3985 iops=loop*n1*n3*(2*n2-1)
3986 if (name.eq.
'madd ') iops = loop*n1*n3
3988 flops=iops/(1.0e6*time)
3992 if (nid.eq.0)
write(6,199) n,n1,n2,n3,flops,timel,name
3993 199
format(i3,
'm',1x,3i6,f10.4,e16.5,3x,a5,
' mem')
3999 call mxmt(a,n1,b,n2,c,n3)
4004 call mxmt(a,n1,b,n2,c,n3)
4007 time = time2-time1 - overh
4008 iops=loop*n1*n3*(2*n2-1)
4009 if (name.eq.
'madd ') iops = loop*n1*n3
4010 flops=iops/(1.0e6*time)
4014 if (nid.eq.0)
write(6,198) n,n1,n2,n3,flops,timel,name
4015 198
format(i3,
'f',1x,3i6,f10.4,e16.5,3x,a5,
' fast')
4050 if (s(n,1,it,k).gt.0)
then
4051 ai = ai + 1./s(n,1,it,k)
4055 if (ai.gt.0) ai = di/ai
4057 if (ai.gt.fmax.and.c(2,it).ne.
'madd ')
then
4063 if (nid.eq.0)
write(6,3) n,it,c(2,it),(s(n,1,it,k),k=1,3),fmax
4064 3
format(i3,i2,1x,a5,4f12.0,
' Peak harmonic')
4066 call out_anal(s,a,nn,c,nt,itmax,
'Harmonic',1,ivb)
4075 if (ai.gt.fmax.and.c(2,it).ne.
'madd ')
then
4081 if (k.eq.1)
call out_anal(s,a,nn,c,nt,itmax,
'Case N2N',k,ivb)
4082 if (k.eq.2)
call out_anal(s,a,nn,c,nt,itmax,
'Case NxN',k,ivb)
4083 if (k.eq.3)
call out_anal(s,a,nn,c,nt,itmax,
'Case NN2',k,ivb)
4098 if (nid.ne.0)
return
4110 write(6,1) n,s(n,1,it,k),c(2,it),name8
4111 1
format(i4,f14.0,4x,a5,4x,a8,
' MxM MFLOPS')
4125 real a(n1,n2),b(n2,n3),c(n1,n3)
4132 if (isclld.eq.0)
then
4136 rname(myrout) =
'mxma '
4138 isbcnt = n1*n3*(2*n2-1)
4139 dct(myrout) = dct(myrout) + (isbcnt)
4140 ncall(myrout) = ncall(myrout) + 1
4141 dcount = dcount + (isbcnt)
4145 call mxma2(a,n1,b,n2,c,n3)
4156 real a(n1,n2),b(n2,n3),c(n1,n3)
4164 if (wdsize.eq.0)
then
4168 if (one+eps.eq.1.0) wdsize = 4
4173 call mxa1(a,n1,b,n2,c,n3)
4174 elseif (n2.eq.2)
then
4175 call mxa2(a,n1,b,n2,c,n3)
4176 elseif (n2.eq.3)
then
4177 call mxa3(a,n1,b,n2,c,n3)
4178 elseif (n2.eq.4)
then
4179 call mxa4(a,n1,b,n2,c,n3)
4180 elseif (n2.eq.5)
then
4181 call mxa5(a,n1,b,n2,c,n3)
4182 elseif (n2.eq.6)
then
4183 call mxa6(a,n1,b,n2,c,n3)
4184 elseif (n2.eq.7)
then
4185 call mxa7(a,n1,b,n2,c,n3)
4187 call mxa8(a,n1,b,n2,c,n3)
4189 elseif (n2.le.16)
then
4191 call mxa9(a,n1,b,n2,c,n3)
4192 elseif (n2.eq.10)
then
4193 call mxa10(a,n1,b,n2,c,n3)
4194 elseif (n2.eq.11)
then
4195 call mxa11(a,n1,b,n2,c,n3)
4196 elseif (n2.eq.12)
then
4197 call mxa12(a,n1,b,n2,c,n3)
4198 elseif (n2.eq.13)
then
4199 call mxa13(a,n1,b,n2,c,n3)
4200 elseif (n2.eq.14)
then
4201 call mxa14(a,n1,b,n2,c,n3)
4202 elseif (n2.eq.15)
then
4203 call mxa15(a,n1,b,n2,c,n3)
4205 call mxa16(a,n1,b,n2,c,n3)
4207 elseif (n2.le.24)
then
4209 call mxa17(a,n1,b,n2,c,n3)
4210 elseif (n2.eq.18)
then
4211 call mxa18(a,n1,b,n2,c,n3)
4212 elseif (n2.eq.19)
then
4213 call mxa19(a,n1,b,n2,c,n3)
4214 elseif (n2.eq.20)
then
4215 call mxa20(a,n1,b,n2,c,n3)
4216 elseif (n2.eq.21)
then
4217 call mxa21(a,n1,b,n2,c,n3)
4218 elseif (n2.eq.22)
then
4219 call mxa22(a,n1,b,n2,c,n3)
4220 elseif (n2.eq.23)
then
4221 call mxa23(a,n1,b,n2,c,n3)
4222 elseif (n2.eq.24)
then
4223 call mxa24(a,n1,b,n2,c,n3)
4234 real a(n1,1),b(1,n3),c(n1,n3)
4247 real a(n1,2),b(2,n3),c(n1,n3)
4261 real a(n1,3),b(3,n3),c(n1,n3)
4276 real a(n1,4),b(4,n3),c(n1,n3)
4292 real a(n1,5),b(5,n3),c(n1,n3)
4309 real a(n1,6),b(6,n3),c(n1,n3)
4327 real a(n1,7),b(7,n3),c(n1,n3)
4346 real a(n1,8),b(8,n3),c(n1,n3)
4366 real a(n1,9),b(9,n3),c(n1,n3)
4387 real a(n1,10),b(10,n3),c(n1,n3)
4409 real a(n1,11),b(11,n3),c(n1,n3)
4432 real a(n1,12),b(12,n3),c(n1,n3)
4456 real a(n1,13),b(13,n3),c(n1,n3)
4481 real a(n1,14),b(14,n3),c(n1,n3)
4507 real a(n1,15),b(15,n3),c(n1,n3)
4534 real a(n1,16),b(16,n3),c(n1,n3)
4562 real a(n1,17),b(17,n3),c(n1,n3)
4591 real a(n1,18),b(18,n3),c(n1,n3)
4621 real a(n1,19),b(19,n3),c(n1,n3)
4652 real a(n1,20),b(20,n3),c(n1,n3)
4684 real a(n1,21),b(21,n3),c(n1,n3)
4717 real a(n1,22),b(22,n3),c(n1,n3)
4751 real a(n1,23),b(23,n3),c(n1,n3)
4786 real a(n1,24),b(24,n3),c(n1,n3)
4827 real a(m,k), b(k,n), c(m,n)
4828 real s11, s12, s13, s14, s21, s22, s23, s24
4829 real s31, s32, s33, s34, s41, s42, s43, s44
4863 s11 = s11 + a(i,l)*b(l,j)
4864 s12 = s12 + a(i,l)*b(l,j+1)
4865 s13 = s13 + a(i,l)*b(l,j+2)
4866 s14 = s14 + a(i,l)*b(l,j+3)
4868 s21 = s21 + a(i+1,l)*b(l,j)
4869 s22 = s22 + a(i+1,l)*b(l,j+1)
4870 s23 = s23 + a(i+1,l)*b(l,j+2)
4871 s24 = s24 + a(i+1,l)*b(l,j+3)
4873 s31 = s31 + a(i+2,l)*b(l,j)
4874 s32 = s32 + a(i+2,l)*b(l,j+1)
4875 s33 = s33 + a(i+2,l)*b(l,j+2)
4876 s34 = s34 + a(i+2,l)*b(l,j+3)
4878 s41 = s41 + a(i+3,l)*b(l,j)
4879 s42 = s42 + a(i+3,l)*b(l,j+1)
4880 s43 = s43 + a(i+3,l)*b(l,j+2)
4881 s44 = s44 + a(i+3,l)*b(l,j+3)
4905 if (nresid .ne. 0)
then
4906 if (nresid .eq. 1)
then
4912 s11 = s11 + a(i,l)*b(l,n)
4913 s21 = s21 + a(i+1,l)*b(l,n)
4914 s31 = s31 + a(i+2,l)*b(l,n)
4915 s41 = s41 + a(i+3,l)*b(l,n)
4921 elseif (nresid .eq. 2)
then
4931 s11 = s11 + a(i,l)*b(l,j)
4932 s12 = s12 + a(i,l)*b(l,j+1)
4934 s21 = s21 + a(i+1,l)*b(l,j)
4935 s22 = s22 + a(i+1,l)*b(l,j+1)
4937 s31 = s31 + a(i+2,l)*b(l,j)
4938 s32 = s32 + a(i+2,l)*b(l,j+1)
4940 s41 = s41 + a(i+3,l)*b(l,j)
4941 s42 = s42 + a(i+3,l)*b(l,j+1)
4965 s11 = s11 + a(i,l)*b(l,j)
4966 s12 = s12 + a(i,l)*b(l,j+1)
4967 s13 = s13 + a(i,l)*b(l,j+2)
4969 s21 = s21 + a(i+1,l)*b(l,j)
4970 s22 = s22 + a(i+1,l)*b(l,j+1)
4971 s23 = s23 + a(i+1,l)*b(l,j+2)
4973 s31 = s31 + a(i+2,l)*b(l,j)
4974 s32 = s32 + a(i+2,l)*b(l,j+1)
4975 s33 = s33 + a(i+2,l)*b(l,j+2)
4977 s41 = s41 + a(i+3,l)*b(l,j)
4978 s42 = s42 + a(i+3,l)*b(l,j+1)
4979 s43 = s43 + a(i+3,l)*b(l,j+2)
4998 if (mresid .eq. 0)
then
5000 elseif (mresid .eq. 1)
then
5007 s11 = s11 + a(m,l)*b(l,j)
5008 s12 = s12 + a(m,l)*b(l,j+1)
5009 s13 = s13 + a(m,l)*b(l,j+2)
5010 s14 = s14 + a(m,l)*b(l,j+3)
5018 if (nresid .eq. 0)
then
5020 elseif (nresid .eq. 1)
then
5023 s11 = s11 + a(m,l)*b(l,n)
5027 elseif (nresid .eq. 2)
then
5031 s11 = s11 + a(m,l)*b(l,n-1)
5032 s12 = s12 + a(m,l)*b(l,n)
5042 s11 = s11 + a(m,l)*b(l,n-2)
5043 s12 = s12 + a(m,l)*b(l,n-1)
5044 s13 = s13 + a(m,l)*b(l,n)
5051 elseif (mresid .eq. 2)
then
5062 s11 = s11 + a(m-1,l)*b(l,j)
5063 s12 = s12 + a(m-1,l)*b(l,j+1)
5064 s13 = s13 + a(m-1,l)*b(l,j+2)
5065 s14 = s14 + a(m-1,l)*b(l,j+3)
5067 s21 = s21 + a(m,l)*b(l,j)
5068 s22 = s22 + a(m,l)*b(l,j+1)
5069 s23 = s23 + a(m,l)*b(l,j+2)
5070 s24 = s24 + a(m,l)*b(l,j+3)
5082 if (nresid .eq. 0)
then
5084 elseif (nresid .eq. 1)
then
5088 s11 = s11 + a(m-1,l)*b(l,n)
5089 s21 = s21 + a(m,l)*b(l,n)
5094 elseif (nresid .eq. 2)
then
5100 s11 = s11 + a(m-1,l)*b(l,n-1)
5101 s12 = s12 + a(m-1,l)*b(l,n)
5102 s21 = s21 + a(m,l)*b(l,n-1)
5103 s22 = s22 + a(m,l)*b(l,n)
5118 s11 = s11 + a(m-1,l)*b(l,n-2)
5119 s12 = s12 + a(m-1,l)*b(l,n-1)
5120 s13 = s13 + a(m-1,l)*b(l,n)
5121 s21 = s21 + a(m,l)*b(l,n-2)
5122 s22 = s22 + a(m,l)*b(l,n-1)
5123 s23 = s23 + a(m,l)*b(l,n)
5152 s11 = s11 + a(m-2,l)*b(l,j)
5153 s12 = s12 + a(m-2,l)*b(l,j+1)
5154 s13 = s13 + a(m-2,l)*b(l,j+2)
5155 s14 = s14 + a(m-2,l)*b(l,j+3)
5157 s21 = s21 + a(m-1,l)*b(l,j)
5158 s22 = s22 + a(m-1,l)*b(l,j+1)
5159 s23 = s23 + a(m-1,l)*b(l,j+2)
5160 s24 = s24 + a(m-1,l)*b(l,j+3)
5162 s31 = s31 + a(m,l)*b(l,j)
5163 s32 = s32 + a(m,l)*b(l,j+1)
5164 s33 = s33 + a(m,l)*b(l,j+2)
5165 s34 = s34 + a(m,l)*b(l,j+3)
5183 if (nresid .eq. 0)
then
5185 elseif (nresid .eq. 1)
then
5190 s11 = s11 + a(m-2,l)*b(l,n)
5191 s21 = s21 + a(m-1,l)*b(l,n)
5192 s31 = s31 + a(m,l)*b(l,n)
5198 elseif (nresid .eq. 2)
then
5206 s11 = s11 + a(m-2,l)*b(l,n-1)
5207 s12 = s12 + a(m-2,l)*b(l,n)
5208 s21 = s21 + a(m-1,l)*b(l,n-1)
5209 s22 = s22 + a(m-1,l)*b(l,n)
5210 s31 = s31 + a(m,l)*b(l,n-1)
5211 s32 = s32 + a(m,l)*b(l,n)
5231 s11 = s11 + a(m-2,l)*b(l,n-2)
5232 s12 = s12 + a(m-2,l)*b(l,n-1)
5233 s13 = s13 + a(m-2,l)*b(l,n)
5234 s21 = s21 + a(m-1,l)*b(l,n-2)
5235 s22 = s22 + a(m-1,l)*b(l,n-1)
5236 s23 = s23 + a(m-1,l)*b(l,n)
5237 s31 = s31 + a(m,l)*b(l,n-2)
5238 s32 = s32 + a(m,l)*b(l,n-1)
5239 s33 = s33 + a(m,l)*b(l,n)
5258 real a(m,2), b(2,n), c(m,n)
5279 if (nresid .eq. 0)
then
5281 elseif (nresid .eq. 1)
then
5287 elseif (nresid .eq. 2)
then
real *8 function dnekclock()
subroutine dgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
subroutine out_anal(s, a, nn, c, nt, itmax, name8, k, ivb)
subroutine mxf15(a, n1, b, n2, c, n3)
subroutine mxm44_2_t(a, m, b, k, c, n)
subroutine mxmur2_6(a, n1, b, n2, c, n3)
subroutine mxmfb_17(a, n1, b, n2, c, n3)
subroutine mxa24(a, n1, b, n2, c, n3)
subroutine mxmur2(a, n1, b, n2, c, n3)
subroutine mxmfb_9(a, n1, b, n2, c, n3)
subroutine madd(a, n1, b, n2, c, n3)
subroutine mxmf3_6(a, n1, b, n2, c, n3)
subroutine mxmfb_13(a, n1, b, n2, c, n3)
subroutine mxa22(a, n1, b, n2, c, n3)
subroutine mxf7(a, n1, b, n2, c, n3)
subroutine mxmf3_11(a, n1, b, n2, c, n3)
subroutine mxmur2_10(a, n1, b, n2, c, n3)
subroutine mxa7(a, n1, b, n2, c, n3)
subroutine mxa5(a, n1, b, n2, c, n3)
subroutine mxf22(a, n1, b, n2, c, n3)
subroutine mxmf3_5(a, n1, b, n2, c, n3)
subroutine mxmfb_19(a, n1, b, n2, c, n3)
subroutine mxa14(a, n1, b, n2, c, n3)
subroutine mxf11(a, n1, b, n2, c, n3)
subroutine mxm44_0a(a, m, b, k, c, n)
subroutine mxa12(a, n1, b, n2, c, n3)
subroutine mxa11(a, n1, b, n2, c, n3)
subroutine mxmf3_21(a, n1, b, n2, c, n3)
subroutine mxa17(a, n1, b, n2, c, n3)
subroutine mxmur2_15(a, n1, b, n2, c, n3)
subroutine mxf19(a, n1, b, n2, c, n3)
subroutine mxmur3(a, n1, b, n2, c, n3)
subroutine mxmur3_7(a, n1, b, n2, c, n3)
subroutine mxmfb_15(a, n1, b, n2, c, n3)
subroutine mxmf3_14(a, n1, b, n2, c, n3)
subroutine mxmur3_11(a, n1, b, n2, c, n3)
subroutine mxmf3_19(a, n1, b, n2, c, n3)
subroutine mxmur2_16(a, n1, b, n2, c, n3)
subroutine mxa9(a, n1, b, n2, c, n3)
subroutine mxmf3_9(a, n1, b, n2, c, n3)
subroutine mxmfb_8(a, n1, b, n2, c, n3)
subroutine mxm_test_all(nid, ivb)
subroutine mxf4(a, n1, b, n2, c, n3)
subroutine mxf16(a, n1, b, n2, c, n3)
subroutine mxmf3_1(a, n1, b, n2, c, n3)
subroutine mxmur3_16(a, n1, b, n2, c, n3)
subroutine mxf17(a, n1, b, n2, c, n3)
subroutine mxf6(a, n1, b, n2, c, n3)
subroutine mxmfb_11(a, n1, b, n2, c, n3)
subroutine mxmf3_3(a, n1, b, n2, c, n3)
subroutine mxf23(a, n1, b, n2, c, n3)
subroutine mxa23(a, n1, b, n2, c, n3)
subroutine mxmur2_12(a, n1, b, n2, c, n3)
subroutine mxmur2_5(a, n1, b, n2, c, n3)
subroutine mxmf3_18(a, n1, b, n2, c, n3)
subroutine mxmfb_5(a, n1, b, n2, c, n3)
subroutine mxmur3_9(a, n1, b, n2, c, n3)
subroutine mxf18(a, n1, b, n2, c, n3)
subroutine mxa6(a, n1, b, n2, c, n3)
subroutine mxmfb_1(a, n1, b, n2, c, n3)
subroutine mxmur2_8(a, n1, b, n2, c, n3)
subroutine mxmfb(a, n1, b, n2, c, n3)
subroutine mxmf3_22(a, n1, b, n2, c, n3)
subroutine mxf10(a, n1, b, n2, c, n3)
subroutine mxmf3_15(a, n1, b, n2, c, n3)
subroutine mxf5(a, n1, b, n2, c, n3)
subroutine mxa3(a, n1, b, n2, c, n3)
subroutine mxa20(a, n1, b, n2, c, n3)
subroutine mxmfb_16(a, n1, b, n2, c, n3)
subroutine mxa2(a, n1, b, n2, c, n3)
subroutine mxa8(a, n1, b, n2, c, n3)
subroutine mxm44_0_t(a, m, b, k, c, n)
subroutine mxf13(a, n1, b, n2, c, n3)
subroutine mxf14(a, n1, b, n2, c, n3)
subroutine mxmur3_15(a, n1, b, n2, c, n3)
subroutine mxa16(a, n1, b, n2, c, n3)
subroutine mxmf3_8(a, n1, b, n2, c, n3)
subroutine mxmfb_22(a, n1, b, n2, c, n3)
subroutine mxmur3_10(a, n1, b, n2, c, n3)
subroutine mxmur3_6(a, n1, b, n2, c, n3)
subroutine mxmfb_6(a, n1, b, n2, c, n3)
subroutine mxmf3_23(a, n1, b, n2, c, n3)
subroutine mxf1(a, n1, b, n2, c, n3)
subroutine mxa1(a, n1, b, n2, c, n3)
subroutine mxmur2_2(a, n1, b, n2, c, n3)
subroutine mxf21(a, n1, b, n2, c, n3)
subroutine mxa10(a, n1, b, n2, c, n3)
subroutine mxmur2_1(a, n1, b, n2, c, n3)
subroutine mxmfb_3(a, n1, b, n2, c, n3)
subroutine mxm44(a, n1, b, n2, c, n3)
subroutine mxm_analyze(s, a, nn, c, nt, ivb)
subroutine mxmur3_5(a, n1, b, n2, c, n3)
subroutine mxa18(a, n1, b, n2, c, n3)
subroutine mxf9(a, n1, b, n2, c, n3)
subroutine mxmfb_23(a, n1, b, n2, c, n3)
subroutine mxmf3_7(a, n1, b, n2, c, n3)
subroutine mxmf3_10(a, n1, b, n2, c, n3)
subroutine mxmur2_14(a, n1, b, n2, c, n3)
subroutine mxmur2_13(a, n1, b, n2, c, n3)
subroutine mxmf3_4(a, n1, b, n2, c, n3)
subroutine mxmu4(a, n1, b, n2, c, n3)
subroutine mxmur2_4(a, n1, b, n2, c, n3)
subroutine mxmfb_24(a, n1, b, n2, c, n3)
subroutine mxmf3_12(a, n1, b, n2, c, n3)
subroutine mxmfb_18(a, n1, b, n2, c, n3)
subroutine mxmf2(A, N1, B, N2, C, N3)
subroutine mxmtest(s, nn, cn, mxmt, name, k, ivb)
subroutine mxa21(a, n1, b, n2, c, n3)
subroutine mxmfb_10(a, n1, b, n2, c, n3)
subroutine mxms(a, n1, b, n2, c, n3)
subroutine mxmf3(a, n1, b, n2, c, n3)
subroutine mxmfb_12(a, n1, b, n2, c, n3)
subroutine mxm44_2a(a, m, b, k, c, n)
subroutine mxf3(a, n1, b, n2, c, n3)
subroutine mxmur3_14(a, n1, b, n2, c, n3)
subroutine initab(a, b, n)
subroutine mxmf3_17(a, n1, b, n2, c, n3)
subroutine mxm44_0(a, m, b, k, c, n)
subroutine mxa19(a, n1, b, n2, c, n3)
subroutine mxf2(a, n1, b, n2, c, n3)
subroutine mxmur3_2(a, n1, b, n2, c, n3)
subroutine mxmur2_9(a, n1, b, n2, c, n3)
subroutine mxmfb_20(a, n1, b, n2, c, n3)
subroutine mxmur3_13(a, n1, b, n2, c, n3)
subroutine mxmf3_20(a, n1, b, n2, c, n3)
subroutine mxmf3_13(a, n1, b, n2, c, n3)
subroutine mxmur3_1(a, n1, b, n2, c, n3)
subroutine mxa15(a, n1, b, n2, c, n3)
subroutine mxmfb_2(a, n1, b, n2, c, n3)
subroutine mxmur3_12(a, n1, b, n2, c, n3)
subroutine mxmfb_21(a, n1, b, n2, c, n3)
subroutine mxmur2_3(a, n1, b, n2, c, n3)
subroutine mxma(a, n1, b, n2, c, n3)
subroutine mxmur3_8(a, n1, b, n2, c, n3)
subroutine mxmf3_2(a, n1, b, n2, c, n3)
subroutine mxmfb_14(a, n1, b, n2, c, n3)
subroutine mxmfb_7(a, n1, b, n2, c, n3)
subroutine mxmf3_24(a, n1, b, n2, c, n3)
subroutine mxf24(a, n1, b, n2, c, n3)
subroutine mxm44_2(a, m, b, k, c, n)
subroutine mxma2(a, n1, b, n2, c, n3)
subroutine mxmur2_7(a, n1, b, n2, c, n3)
subroutine mxmd(a, n1, b, n2, c, n3)
subroutine mxf8(a, n1, b, n2, c, n3)
subroutine mxmur3_3(a, n1, b, n2, c, n3)
subroutine mxa4(a, n1, b, n2, c, n3)
subroutine mxf20(a, n1, b, n2, c, n3)
subroutine mxa13(a, n1, b, n2, c, n3)
subroutine mxmf3_16(a, n1, b, n2, c, n3)
subroutine mxf12(a, n1, b, n2, c, n3)
subroutine mxmfb_4(a, n1, b, n2, c, n3)
subroutine mxmur3_4(a, n1, b, n2, c, n3)
subroutine mxmur2_11(a, n1, b, n2, c, n3)
subroutine mxm(a, n1, b, n2, c, n3)