731
732 INTEGER NOUT
733 parameter(nout=6)
734
735 REAL SFAC
736
737 INTEGER ICASE, INCX, INCY, N
738 LOGICAL PASS
739
740 REAL SC, SS
741 INTEGER I, K, KI, KN, KSIZE, LENX, LENY, MX, MY
742
743 REAL COPYX(5), COPYY(5), DT9X(7,4,4), DT9Y(7,4,4),
744 + DX1(7), DY1(7), MWPC(11), MWPS(11), MWPSTX(5),
745 + MWPSTY(5), MWPTX(11,5), MWPTY(11,5), MWPX(5),
746 + MWPY(5), SSIZE2(14,2), STX(7), STY(7), SX(7),
747 + SY(7)
748 INTEGER INCXS(4), INCYS(4), LENS(4,2), MWPINX(11),
749 + MWPINY(11), MWPN(11), NS(4)
750
752
753 INTRINSIC abs, min
754
755 COMMON /combla/icase, n, incx, incy, pass
756
757 DATA incxs/1, 2, -2, -1/
758 DATA incys/1, -2, 1, -2/
759 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/
760 DATA ns/0, 1, 2, 4/
761 DATA dx1/0.6e0, 0.1e0, -0.5e0, 0.8e0, 0.9e0, -0.3e0,
762 + -0.4e0/
763 DATA dy1/0.5e0, -0.9e0, 0.3e0, 0.7e0, -0.6e0, 0.2e0,
764 + 0.8e0/
765 DATA sc, ss/0.8e0, 0.6e0/
766 DATA dt9x/0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
767 + 0.0e0, 0.78e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
768 + 0.0e0, 0.0e0, 0.78e0, -0.46e0, 0.0e0, 0.0e0,
769 + 0.0e0, 0.0e0, 0.0e0, 0.78e0, -0.46e0, -0.22e0,
770 + 1.06e0, 0.0e0, 0.0e0, 0.0e0, 0.6e0, 0.0e0,
771 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.78e0,
772 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
773 + 0.66e0, 0.1e0, -0.1e0, 0.0e0, 0.0e0, 0.0e0,
774 + 0.0e0, 0.96e0, 0.1e0, -0.76e0, 0.8e0, 0.90e0,
775 + -0.3e0, -0.02e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0,
776 + 0.0e0, 0.0e0, 0.0e0, 0.78e0, 0.0e0, 0.0e0,
777 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, -0.06e0, 0.1e0,
778 + -0.1e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.90e0,
779 + 0.1e0, -0.22e0, 0.8e0, 0.18e0, -0.3e0, -0.02e0,
780 + 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
781 + 0.78e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
782 + 0.0e0, 0.78e0, 0.26e0, 0.0e0, 0.0e0, 0.0e0,
783 + 0.0e0, 0.0e0, 0.78e0, 0.26e0, -0.76e0, 1.12e0,
784 + 0.0e0, 0.0e0, 0.0e0/
785 DATA dt9y/0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
786 + 0.0e0, 0.04e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
787 + 0.0e0, 0.0e0, 0.04e0, -0.78e0, 0.0e0, 0.0e0,
788 + 0.0e0, 0.0e0, 0.0e0, 0.04e0, -0.78e0, 0.54e0,
789 + 0.08e0, 0.0e0, 0.0e0, 0.0e0, 0.5e0, 0.0e0,
790 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.04e0,
791 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.7e0,
792 + -0.9e0, -0.12e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
793 + 0.64e0, -0.9e0, -0.30e0, 0.7e0, -0.18e0, 0.2e0,
794 + 0.28e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
795 + 0.0e0, 0.0e0, 0.04e0, 0.0e0, 0.0e0, 0.0e0,
796 + 0.0e0, 0.0e0, 0.0e0, 0.7e0, -1.08e0, 0.0e0,
797 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.64e0, -1.26e0,
798 + 0.54e0, 0.20e0, 0.0e0, 0.0e0, 0.0e0, 0.5e0,
799 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
800 + 0.04e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
801 + 0.0e0, 0.04e0, -0.9e0, 0.18e0, 0.0e0, 0.0e0,
802 + 0.0e0, 0.0e0, 0.04e0, -0.9e0, 0.18e0, 0.7e0,
803 + -0.18e0, 0.2e0, 0.16e0/
804 DATA ssize2/0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
805 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
806 + 0.0e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0,
807 + 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0,
808 + 1.17e0, 1.17e0, 1.17e0/
809
810
811 DO 60 ki = 1, 4
812 incx = incxs(ki)
813 incy = incys(ki)
814 mx = abs(incx)
815 my = abs(incy)
816
817 DO 40 kn = 1, 4
818 n = ns(kn)
819 ksize = min(2,kn)
820 lenx = lens(kn,mx)
821 leny = lens(kn,my)
822
823 IF (icase.EQ.4) THEN
824
825 DO 20 i = 1, 7
826 sx(i) = dx1(i)
827 sy(i) = dy1(i)
828 stx(i) = dt9x(i,kn,ki)
829 sty(i) = dt9y(i,kn,ki)
830 20 CONTINUE
831 CALL srot(n,sx,incx,sy,incy,sc,ss)
832 CALL stest(lenx,sx,stx,ssize2(1,ksize),sfac)
833 CALL stest(leny,sy,sty,ssize2(1,ksize),sfac)
834 ELSE
835 WRITE (nout,*) ' Shouldn''t be here in CHECK3'
836 stop
837 END IF
838 40 CONTINUE
839 60 CONTINUE
840
841 mwpc(1) = 1
842 DO 80 i = 2, 11
843 mwpc(i) = 0
844 80 CONTINUE
845 mwps(1) = 0
846 DO 100 i = 2, 6
847 mwps(i) = 1
848 100 CONTINUE
849 DO 120 i = 7, 11
850 mwps(i) = -1
851 120 CONTINUE
852 mwpinx(1) = 1
853 mwpinx(2) = 1
854 mwpinx(3) = 1
855 mwpinx(4) = -1
856 mwpinx(5) = 1
857 mwpinx(6) = -1
858 mwpinx(7) = 1
859 mwpinx(8) = 1
860 mwpinx(9) = -1
861 mwpinx(10) = 1
862 mwpinx(11) = -1
863 mwpiny(1) = 1
864 mwpiny(2) = 1
865 mwpiny(3) = -1
866 mwpiny(4) = -1
867 mwpiny(5) = 2
868 mwpiny(6) = 1
869 mwpiny(7) = 1
870 mwpiny(8) = -1
871 mwpiny(9) = -1
872 mwpiny(10) = 2
873 mwpiny(11) = 1
874 DO 140 i = 1, 11
875 mwpn(i) = 5
876 140 CONTINUE
877 mwpn(5) = 3
878 mwpn(10) = 3
879 DO 160 i = 1, 5
880 mwpx(i) = i
881 mwpy(i) = i
882 mwptx(1,i) = i
883 mwpty(1,i) = i
884 mwptx(2,i) = i
885 mwpty(2,i) = -i
886 mwptx(3,i) = 6 - i
887 mwpty(3,i) = i - 6
888 mwptx(4,i) = i
889 mwpty(4,i) = -i
890 mwptx(6,i) = 6 - i
891 mwpty(6,i) = i - 6
892 mwptx(7,i) = -i
893 mwpty(7,i) = i
894 mwptx(8,i) = i - 6
895 mwpty(8,i) = 6 - i
896 mwptx(9,i) = -i
897 mwpty(9,i) = i
898 mwptx(11,i) = i - 6
899 mwpty(11,i) = 6 - i
900 160 CONTINUE
901 mwptx(5,1) = 1
902 mwptx(5,2) = 3
903 mwptx(5,3) = 5
904 mwptx(5,4) = 4
905 mwptx(5,5) = 5
906 mwpty(5,1) = -1
907 mwpty(5,2) = 2
908 mwpty(5,3) = -2
909 mwpty(5,4) = 4
910 mwpty(5,5) = -3
911 mwptx(10,1) = -1
912 mwptx(10,2) = -3
913 mwptx(10,3) = -5
914 mwptx(10,4) = 4
915 mwptx(10,5) = 5
916 mwpty(10,1) = 1
917 mwpty(10,2) = 2
918 mwpty(10,3) = 2
919 mwpty(10,4) = 4
920 mwpty(10,5) = 3
921 DO 200 i = 1, 11
922 incx = mwpinx(i)
923 incy = mwpiny(i)
924 DO 180 k = 1, 5
925 copyx(k) = mwpx(k)
926 copyy(k) = mwpy(k)
927 mwpstx(k) = mwptx(i,k)
928 mwpsty(k) = mwpty(i,k)
929 180 CONTINUE
930 CALL srot(mwpn(i),copyx,incx,copyy,incy,mwpc(i),mwps(i))
931 CALL stest(5,copyx,mwpstx,mwpstx,sfac)
932 CALL stest(5,copyy,mwpsty,mwpsty,sfac)
933 200 CONTINUE
934 RETURN
935
936
937
subroutine stest(LEN, SCOMP, STRUE, SSIZE, SFAC)
subroutine srot(N, SX, INCX, SY, INCY, C, S)
SROT