77
   78      INTEGER           NOUT
   79      parameter(nout=6)
   80
   81      REAL              SFAC
   82
   83      INTEGER           ICASE, INCX, INCY, MODE, N
   84      LOGICAL           PASS
   85
   86      COMPLEX           CA
   87      REAL              SA
   88      INTEGER           I, J, LEN, NP1
   89
   90      COMPLEX           CTRUE5(8,5,2), CTRUE6(8,5,2), CV(8,5,2), CX(8),
   91     +                  MWPCS(5), MWPCT(5)
   92      REAL              STRUE2(5), STRUE4(5)
   93      INTEGER           ITRUE3(5)
   94
   95      REAL              SCASUMTEST, SCNRM2TEST
   96      INTEGER           ICAMAXTEST
   97      EXTERNAL          scasumtest, scnrm2test, icamaxtest
   98
  100
  101      INTRINSIC         max
  102
  103      COMMON            /combla/icase, n, incx, incy, mode, pass
  104
  105      DATA              sa, ca/0.3e0, (0.4e0,-0.7e0)/
  106      DATA              ((cv(i,j,1),i=1,8),j=1,5)/(0.1e0,0.1e0),
  107     +                  (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
  108     +                  (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
  109     +                  (1.0e0,2.0e0), (0.3e0,-0.4e0), (3.0e0,4.0e0),
  110     +                  (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
  111     +                  (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
  112     +                  (0.1e0,-0.3e0), (0.5e0,-0.1e0), (5.0e0,6.0e0),
  113     +                  (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
  114     +                  (5.0e0,6.0e0), (5.0e0,6.0e0), (0.1e0,0.1e0),
  115     +                  (-0.6e0,0.1e0), (0.1e0,-0.3e0), (7.0e0,8.0e0),
  116     +                  (7.0e0,8.0e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
  117     +                  (7.0e0,8.0e0), (0.3e0,0.1e0), (0.1e0,0.4e0),
  118     +                  (0.4e0,0.1e0), (0.1e0,0.2e0), (2.0e0,3.0e0),
  119     +                  (2.0e0,3.0e0), (2.0e0,3.0e0), (2.0e0,3.0e0)/
  120      DATA              ((cv(i,j,2),i=1,8),j=1,5)/(0.1e0,0.1e0),
  121     +                  (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
  122     +                  (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
  123     +                  (4.0e0,5.0e0), (0.3e0,-0.4e0), (6.0e0,7.0e0),
  124     +                  (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
  125     +                  (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
  126     +                  (0.1e0,-0.3e0), (8.0e0,9.0e0), (0.5e0,-0.1e0),
  127     +                  (2.0e0,5.0e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
  128     +                  (2.0e0,5.0e0), (2.0e0,5.0e0), (0.1e0,0.1e0),
  129     +                  (3.0e0,6.0e0), (-0.6e0,0.1e0), (4.0e0,7.0e0),
  130     +                  (0.1e0,-0.3e0), (7.0e0,2.0e0), (7.0e0,2.0e0),
  131     +                  (7.0e0,2.0e0), (0.3e0,0.1e0), (5.0e0,8.0e0),
  132     +                  (0.1e0,0.4e0), (6.0e0,9.0e0), (0.4e0,0.1e0),
  133     +                  (8.0e0,3.0e0), (0.1e0,0.2e0), (9.0e0,4.0e0)/
  134      DATA              strue2/0.0e0, 0.5e0, 0.6e0, 0.7e0, 0.7e0/
  135      DATA              strue4/0.0e0, 0.7e0, 1.0e0, 1.3e0, 1.7e0/
  136      DATA              ((ctrue5(i,j,1),i=1,8),j=1,5)/(0.1e0,0.1e0),
  137     +                  (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
  138     +                  (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
  139     +                  (1.0e0,2.0e0), (-0.16e0,-0.37e0), (3.0e0,4.0e0),
  140     +                  (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
  141     +                  (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
  142     +                  (-0.17e0,-0.19e0), (0.13e0,-0.39e0),
  143     +                  (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
  144     +                  (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
  145     +                  (0.11e0,-0.03e0), (-0.17e0,0.46e0),
  146     +                  (-0.17e0,-0.19e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
  147     +                  (7.0e0,8.0e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
  148     +                  (0.19e0,-0.17e0), (0.32e0,0.09e0),
  149     +                  (0.23e0,-0.24e0), (0.18e0,0.01e0),
  150     +                  (2.0e0,3.0e0), (2.0e0,3.0e0), (2.0e0,3.0e0),
  151     +                  (2.0e0,3.0e0)/
  152      DATA              ((ctrue5(i,j,2),i=1,8),j=1,5)/(0.1e0,0.1e0),
  153     +                  (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
  154     +                  (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
  155     +                  (4.0e0,5.0e0), (-0.16e0,-0.37e0), (6.0e0,7.0e0),
  156     +                  (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
  157     +                  (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
  158     +                  (-0.17e0,-0.19e0), (8.0e0,9.0e0),
  159     +                  (0.13e0,-0.39e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
  160     +                  (2.0e0,5.0e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
  161     +                  (0.11e0,-0.03e0), (3.0e0,6.0e0),
  162     +                  (-0.17e0,0.46e0), (4.0e0,7.0e0),
  163     +                  (-0.17e0,-0.19e0), (7.0e0,2.0e0), (7.0e0,2.0e0),
  164     +                  (7.0e0,2.0e0), (0.19e0,-0.17e0), (5.0e0,8.0e0),
  165     +                  (0.32e0,0.09e0), (6.0e0,9.0e0),
  166     +                  (0.23e0,-0.24e0), (8.0e0,3.0e0),
  167     +                  (0.18e0,0.01e0), (9.0e0,4.0e0)/
  168      DATA              ((ctrue6(i,j,1),i=1,8),j=1,5)/(0.1e0,0.1e0),
  169     +                  (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
  170     +                  (1.0e0,2.0e0), (1.0e0,2.0e0), (1.0e0,2.0e0),
  171     +                  (1.0e0,2.0e0), (0.09e0,-0.12e0), (3.0e0,4.0e0),
  172     +                  (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
  173     +                  (3.0e0,4.0e0), (3.0e0,4.0e0), (3.0e0,4.0e0),
  174     +                  (0.03e0,-0.09e0), (0.15e0,-0.03e0),
  175     +                  (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
  176     +                  (5.0e0,6.0e0), (5.0e0,6.0e0), (5.0e0,6.0e0),
  177     +                  (0.03e0,0.03e0), (-0.18e0,0.03e0),
  178     +                  (0.03e0,-0.09e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
  179     +                  (7.0e0,8.0e0), (7.0e0,8.0e0), (7.0e0,8.0e0),
  180     +                  (0.09e0,0.03e0), (0.03e0,0.12e0),
  181     +                  (0.12e0,0.03e0), (0.03e0,0.06e0), (2.0e0,3.0e0),
  182     +                  (2.0e0,3.0e0), (2.0e0,3.0e0), (2.0e0,3.0e0)/
  183      DATA              ((ctrue6(i,j,2),i=1,8),j=1,5)/(0.1e0,0.1e0),
  184     +                  (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
  185     +                  (4.0e0,5.0e0), (4.0e0,5.0e0), (4.0e0,5.0e0),
  186     +                  (4.0e0,5.0e0), (0.09e0,-0.12e0), (6.0e0,7.0e0),
  187     +                  (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
  188     +                  (6.0e0,7.0e0), (6.0e0,7.0e0), (6.0e0,7.0e0),
  189     +                  (0.03e0,-0.09e0), (8.0e0,9.0e0),
  190     +                  (0.15e0,-0.03e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
  191     +                  (2.0e0,5.0e0), (2.0e0,5.0e0), (2.0e0,5.0e0),
  192     +                  (0.03e0,0.03e0), (3.0e0,6.0e0),
  193     +                  (-0.18e0,0.03e0), (4.0e0,7.0e0),
  194     +                  (0.03e0,-0.09e0), (7.0e0,2.0e0), (7.0e0,2.0e0),
  195     +                  (7.0e0,2.0e0), (0.09e0,0.03e0), (5.0e0,8.0e0),
  196     +                  (0.03e0,0.12e0), (6.0e0,9.0e0), (0.12e0,0.03e0),
  197     +                  (8.0e0,3.0e0), (0.03e0,0.06e0), (9.0e0,4.0e0)/
  198      DATA              itrue3/0, 1, 2, 2, 2/
  199
  200      DO 60 incx = 1, 2
  201         DO 40 np1 = 1, 5
  202            n = np1 - 1
  203            len = 2*max(n,1)
  204
  205            DO 20 i = 1, len
  206               cx(i) = cv(i,np1,incx)
  207   20       CONTINUE
  208            IF (icase.EQ.6) THEN
  209
  210               CALL stest1(scnrm2test(n,cx,incx),strue2(np1),
 
  211     +                    strue2(np1), sfac)
  212            ELSE IF (icase.EQ.7) THEN
  213
  214               CALL stest1(scasumtest(n,cx,incx),strue4(np1),
 
  215     +                     strue4(np1),sfac)
  216            ELSE IF (icase.EQ.8) THEN
  217
  218               CALL cscal(n,ca,cx,incx)
 
  219               CALL ctest(len,cx,ctrue5(1,np1,incx),ctrue5(1,np1,incx),
 
  220     +                    sfac)
  221            ELSE IF (icase.EQ.9) THEN
  222
  223               CALL csscaltest(n,sa,cx,incx)
  224               CALL ctest(len,cx,ctrue6(1,np1,incx),ctrue6(1,np1,incx),
 
  225     +                    sfac)
  226            ELSE IF (icase.EQ.10) THEN
  227
  228               CALL itest1(icamaxtest(n,cx,incx),itrue3(np1))
 
  229            ELSE
  230               WRITE (nout,*) ' Shouldn''t be here in CHECK1'
  231               stop
  232            END IF
  233
  234   40    CONTINUE
  235   60 CONTINUE
  236
  237      incx = 1
  238      IF (icase.EQ.8) THEN
  239
  240
  241         ca = (0.0e0,0.0e0)
  242         DO 80 i = 1, 5
  243            mwpct(i) = (0.0e0,0.0e0)
  244            mwpcs(i) = (1.0e0,1.0e0)
  245   80    CONTINUE
  246         CALL cscal(5,ca,cx,incx)
 
  247         CALL ctest(5,cx,mwpct,mwpcs,sfac)
 
  248      ELSE IF (icase.EQ.9) THEN
  249
  250
  251         sa = 0.0e0
  252         DO 100 i = 1, 5
  253            mwpct(i) = (0.0e0,0.0e0)
  254            mwpcs(i) = (1.0e0,1.0e0)
  255  100    CONTINUE
  256         CALL csscaltest(5,sa,cx,incx)
  257         CALL ctest(5,cx,mwpct,mwpcs,sfac)
 
  258
  259         sa = 1.0e0
  260         DO 120 i = 1, 5
  261            mwpct(i) = cx(i)
  262            mwpcs(i) = cx(i)
  263  120    CONTINUE
  264         CALL csscaltest(5,sa,cx,incx)
  265         CALL ctest(5,cx,mwpct,mwpcs,sfac)
 
  266
  267         sa = -1.0e0
  268         DO 140 i = 1, 5
  269            mwpct(i) = -cx(i)
  270            mwpcs(i) = -cx(i)
  271  140    CONTINUE
  272         CALL csscaltest(5,sa,cx,incx)
  273         CALL ctest(5,cx,mwpct,mwpcs,sfac)
 
  274      END IF
  275      RETURN
subroutine ctest(len, ccomp, ctrue, csize, sfac)
subroutine stest1(scomp1, strue1, ssize, sfac)
subroutine itest1(icomp, itrue)
subroutine cscal(n, ca, cx, incx)
CSCAL