Index: mxm_std.f =================================================================== --- mxm_std.f (revision 954) +++ mxm_std.f (working copy) @@ -4,63 +4,58 @@ c real a(n1,n2),b(n2,n3),c(n1,n3) - if (n2.le.8) then - if (n2.eq.1) then + select case (n2) + case (1) call mxf1(a,n1,b,n2,c,n3) - elseif (n2.eq.2) then + case (2) call mxf2(a,n1,b,n2,c,n3) - elseif (n2.eq.3) then + case (3) call mxf3(a,n1,b,n2,c,n3) - elseif (n2.eq.4) then + case (4) call mxf4(a,n1,b,n2,c,n3) - elseif (n2.eq.5) then + case (5) call mxf5(a,n1,b,n2,c,n3) - elseif (n2.eq.6) then + case (6) call mxf6(a,n1,b,n2,c,n3) - elseif (n2.eq.7) then + case (7) call mxf7(a,n1,b,n2,c,n3) - else + case (8) call mxf8(a,n1,b,n2,c,n3) - endif - elseif (n2.le.16) then - if (n2.eq.9) then + case (9) call mxf9(a,n1,b,n2,c,n3) - elseif (n2.eq.10) then + case (10) call mxf10(a,n1,b,n2,c,n3) - elseif (n2.eq.11) then + case (11) call mxf11(a,n1,b,n2,c,n3) - elseif (n2.eq.12) then + case (12) call mxf12(a,n1,b,n2,c,n3) - elseif (n2.eq.13) then + case (13) call mxf13(a,n1,b,n2,c,n3) - elseif (n2.eq.14) then + case (14) call mxf14(a,n1,b,n2,c,n3) - elseif (n2.eq.15) then + case (15) call mxf15(a,n1,b,n2,c,n3) - else + case (16) call mxf16(a,n1,b,n2,c,n3) - endif - elseif (n2.le.24) then - if (n2.eq.17) then + case (17) call mxf17(a,n1,b,n2,c,n3) - elseif (n2.eq.18) then + case (18) call mxf18(a,n1,b,n2,c,n3) - elseif (n2.eq.19) then + case (19) call mxf19(a,n1,b,n2,c,n3) - elseif (n2.eq.20) then + case (20) call mxf20(a,n1,b,n2,c,n3) - elseif (n2.eq.21) then + case (21) call mxf21(a,n1,b,n2,c,n3) - elseif (n2.eq.22) then + case (22) call mxf22(a,n1,b,n2,c,n3) - elseif (n2.eq.23) then + case (23) call mxf23(a,n1,b,n2,c,n3) - elseif (n2.eq.24) then + case (24) call mxf24(a,n1,b,n2,c,n3) - endif - else - call mxm44_0(a,n1,b,n2,c,n3) - endif + case default + call mxm44_0(a,n1,b,n2,c,n3) + end select c return end @@ -174,7 +169,12 @@ c real a(n1,8),b(8,n3),c(n1,n3) c +c DSK loops counts tuned for turbChannel example and may not be +c appropriate for other cases +cDEC$ LOOP COUNT (8,64) do j=1,n3 +cDEC$ LOOP COUNT (8,64) +cDEC$ VECTOR UNALIGNED do i=1,n1 c(i,j) = a(i,1)*b(1,j) $ + a(i,2)*b(2,j) @@ -256,7 +256,12 @@ c real a(n1,12),b(12,n3),c(n1,n3) c +c DSK loops counts tuned for turbChannel example and may not be +c appropriate for other cases +cDEC$ LOOP COUNT (12,144) do j=1,n3 +cDEC$ LOOP COUNT (12,144) +cDEC$ VECTOR UNALIGNED do i=1,n1 c(i,j) = a(i,1)*b(1,j) $ + a(i,2)*b(2,j)