"Fossies" - the Fresh Open Source Software Archive

Member "lapack-3.9.1/TESTING/LIN/aladhd.f" (25 Mar 2021, 18693 Bytes) of package /linux/misc/lapack-3.9.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Fortran 77 source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "aladhd.f": 3.9.0_vs_3.9.1.

    1 *> \brief \b ALADHD
    2 *
    3 *  =========== DOCUMENTATION ===========
    4 *
    5 * Online html documentation available at
    6 *            http://www.netlib.org/lapack/explore-html/
    7 *
    8 *  Definition:
    9 *  ===========
   10 *
   11 *       SUBROUTINE ALADHD( IOUNIT, PATH )
   12 *
   13 *       .. Scalar Arguments ..
   14 *       CHARACTER*3        PATH
   15 *       INTEGER            IOUNIT
   16 *       ..
   17 *
   18 *
   19 *> \par Purpose:
   20 *  =============
   21 *>
   22 *> \verbatim
   23 *>
   24 *> ALADHD prints header information for the driver routines test paths.
   25 *> \endverbatim
   26 *
   27 *  Arguments:
   28 *  ==========
   29 *
   30 *> \param[in] IOUNIT
   31 *> \verbatim
   32 *>          IOUNIT is INTEGER
   33 *>          The unit number to which the header information should be
   34 *>          printed.
   35 *> \endverbatim
   36 *>
   37 *> \param[in] PATH
   38 *> \verbatim
   39 *>          PATH is CHARACTER*3
   40 *>          The name of the path for which the header information is to
   41 *>          be printed.  Current paths are
   42 *>             _GE:  General matrices
   43 *>             _GB:  General band
   44 *>             _GT:  General Tridiagonal
   45 *>             _PO:  Symmetric or Hermitian positive definite
   46 *>             _PS:  Symmetric or Hermitian positive semi-definite
   47 *>             _PP:  Symmetric or Hermitian positive definite packed
   48 *>             _PB:  Symmetric or Hermitian positive definite band
   49 *>             _PT:  Symmetric or Hermitian positive definite tridiagonal
   50 *>             _SY:  Symmetric indefinite,
   51 *>                     with partial (Bunch-Kaufman) pivoting
   52 *>             _SR:  Symmetric indefinite,
   53 *>                     with rook (bounded Bunch-Kaufman) pivoting
   54 *>             _SK:  Symmetric indefinite,
   55 *>                     with rook (bounded Bunch-Kaufman) pivoting
   56 *>                     ( new storage format for factors:
   57 *>                       L and diagonal of D is stored in A,
   58 *>                       subdiagonal of D is stored in E )
   59 *>             _SP:  Symmetric indefinite packed,
   60 *>                     with partial (Bunch-Kaufman) pivoting
   61 *>             _HA:  (complex) Hermitian ,
   62 *>                     Assen Algorithm
   63 *>             _HE:  (complex) Hermitian indefinite,
   64 *>                     with partial (Bunch-Kaufman) pivoting
   65 *>             _HR:  (complex) Hermitian indefinite,
   66 *>                     with rook (bounded Bunch-Kaufman) pivoting
   67 *>             _HK:  (complex) Hermitian indefinite,
   68 *>                     with rook (bounded Bunch-Kaufman) pivoting
   69 *>                     ( new storage format for factors:
   70 *>                       L and diagonal of D is stored in A,
   71 *>                       subdiagonal of D is stored in E )
   72 *>             _HP:  (complex) Hermitian indefinite packed,
   73 *>                     with partial (Bunch-Kaufman) pivoting
   74 *>          The first character must be one of S, D, C, or Z (C or Z only
   75 *>          if complex).
   76 *> \endverbatim
   77 *
   78 *  Authors:
   79 *  ========
   80 *
   81 *> \author Univ. of Tennessee
   82 *> \author Univ. of California Berkeley
   83 *> \author Univ. of Colorado Denver
   84 *> \author NAG Ltd.
   85 *
   86 *> \ingroup aux_lin
   87 *
   88 *  =====================================================================
   89       SUBROUTINE ALADHD( IOUNIT, PATH )
   90 *
   91 *  -- LAPACK test routine --
   92 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
   93 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
   94 *
   95 *     .. Scalar Arguments ..
   96       CHARACTER*3        PATH
   97       INTEGER            IOUNIT
   98 *     ..
   99 *
  100 *  =====================================================================
  101 *
  102 *     .. Local Scalars ..
  103       LOGICAL            CORZ, SORD
  104       CHARACTER          C1, C3
  105       CHARACTER*2        P2
  106       CHARACTER*9        SYM
  107 *     ..
  108 *     .. External Functions ..
  109       LOGICAL            LSAME, LSAMEN
  110       EXTERNAL           LSAME, LSAMEN
  111 *     ..
  112 *     .. Executable Statements ..
  113 *
  114       IF( IOUNIT.LE.0 )
  115      $   RETURN
  116       C1 = PATH( 1: 1 )
  117       C3 = PATH( 3: 3 )
  118       P2 = PATH( 2: 3 )
  119       SORD = LSAME( C1, 'S' ) .OR. LSAME( C1, 'D' )
  120       CORZ = LSAME( C1, 'C' ) .OR. LSAME( C1, 'Z' )
  121       IF( .NOT.( SORD .OR. CORZ ) )
  122      $   RETURN
  123 *
  124       IF( LSAMEN( 2, P2, 'GE' ) ) THEN
  125 *
  126 *        GE: General dense
  127 *
  128          WRITE( IOUNIT, FMT = 9999 )PATH
  129          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  130          WRITE( IOUNIT, FMT = 9989 )
  131          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  132          WRITE( IOUNIT, FMT = 9981 )1
  133          WRITE( IOUNIT, FMT = 9980 )2
  134          WRITE( IOUNIT, FMT = 9979 )3
  135          WRITE( IOUNIT, FMT = 9978 )4
  136          WRITE( IOUNIT, FMT = 9977 )5
  137          WRITE( IOUNIT, FMT = 9976 )6
  138          WRITE( IOUNIT, FMT = 9972 )7
  139          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  140 *
  141       ELSE IF( LSAMEN( 2, P2, 'GB' ) ) THEN
  142 *
  143 *        GB: General band
  144 *
  145          WRITE( IOUNIT, FMT = 9998 )PATH
  146          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  147          WRITE( IOUNIT, FMT = 9988 )
  148          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  149          WRITE( IOUNIT, FMT = 9981 )1
  150          WRITE( IOUNIT, FMT = 9980 )2
  151          WRITE( IOUNIT, FMT = 9979 )3
  152          WRITE( IOUNIT, FMT = 9978 )4
  153          WRITE( IOUNIT, FMT = 9977 )5
  154          WRITE( IOUNIT, FMT = 9976 )6
  155          WRITE( IOUNIT, FMT = 9972 )7
  156          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  157 *
  158       ELSE IF( LSAMEN( 2, P2, 'GT' ) ) THEN
  159 *
  160 *        GT: General tridiagonal
  161 *
  162          WRITE( IOUNIT, FMT = 9997 )PATH
  163          WRITE( IOUNIT, FMT = 9987 )
  164          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  165          WRITE( IOUNIT, FMT = 9981 )1
  166          WRITE( IOUNIT, FMT = 9980 )2
  167          WRITE( IOUNIT, FMT = 9979 )3
  168          WRITE( IOUNIT, FMT = 9978 )4
  169          WRITE( IOUNIT, FMT = 9977 )5
  170          WRITE( IOUNIT, FMT = 9976 )6
  171          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  172 *
  173       ELSE IF( LSAMEN( 2, P2, 'PO' ) .OR. LSAMEN( 2, P2, 'PP' )
  174      $         .OR. LSAMEN( 2, P2, 'PS' ) ) THEN
  175 *
  176 *        PO: Positive definite full
  177 *        PS: Positive definite full
  178 *        PP: Positive definite packed
  179 *
  180          IF( SORD ) THEN
  181             SYM = 'Symmetric'
  182          ELSE
  183             SYM = 'Hermitian'
  184          END IF
  185          IF( LSAME( C3, 'O' ) ) THEN
  186             WRITE( IOUNIT, FMT = 9996 )PATH, SYM
  187          ELSE
  188             WRITE( IOUNIT, FMT = 9995 )PATH, SYM
  189          END IF
  190          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  191          WRITE( IOUNIT, FMT = 9985 )PATH
  192          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  193          WRITE( IOUNIT, FMT = 9975 )1
  194          WRITE( IOUNIT, FMT = 9980 )2
  195          WRITE( IOUNIT, FMT = 9979 )3
  196          WRITE( IOUNIT, FMT = 9978 )4
  197          WRITE( IOUNIT, FMT = 9977 )5
  198          WRITE( IOUNIT, FMT = 9976 )6
  199          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  200 *
  201       ELSE IF( LSAMEN( 2, P2, 'PB' ) ) THEN
  202 *
  203 *        PB: Positive definite band
  204 *
  205          IF( SORD ) THEN
  206             WRITE( IOUNIT, FMT = 9994 )PATH, 'Symmetric'
  207          ELSE
  208             WRITE( IOUNIT, FMT = 9994 )PATH, 'Hermitian'
  209          END IF
  210          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  211          WRITE( IOUNIT, FMT = 9984 )PATH
  212          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  213          WRITE( IOUNIT, FMT = 9975 )1
  214          WRITE( IOUNIT, FMT = 9980 )2
  215          WRITE( IOUNIT, FMT = 9979 )3
  216          WRITE( IOUNIT, FMT = 9978 )4
  217          WRITE( IOUNIT, FMT = 9977 )5
  218          WRITE( IOUNIT, FMT = 9976 )6
  219          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  220 *
  221       ELSE IF( LSAMEN( 2, P2, 'PT' ) ) THEN
  222 *
  223 *        PT: Positive definite tridiagonal
  224 *
  225          IF( SORD ) THEN
  226             WRITE( IOUNIT, FMT = 9993 )PATH, 'Symmetric'
  227          ELSE
  228             WRITE( IOUNIT, FMT = 9993 )PATH, 'Hermitian'
  229          END IF
  230          WRITE( IOUNIT, FMT = 9986 )
  231          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  232          WRITE( IOUNIT, FMT = 9973 )1
  233          WRITE( IOUNIT, FMT = 9980 )2
  234          WRITE( IOUNIT, FMT = 9979 )3
  235          WRITE( IOUNIT, FMT = 9978 )4
  236          WRITE( IOUNIT, FMT = 9977 )5
  237          WRITE( IOUNIT, FMT = 9976 )6
  238          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  239 *
  240       ELSE IF( LSAMEN( 2, P2, 'SY' ) .OR. LSAMEN( 2, P2, 'SP' ) ) THEN
  241 *
  242 *        SY: Symmetric indefinite full
  243 *            with partial (Bunch-Kaufman) pivoting algorithm
  244 *        SP: Symmetric indefinite packed
  245 *            with partial (Bunch-Kaufman) pivoting algorithm
  246 *
  247          IF( LSAME( C3, 'Y' ) ) THEN
  248             WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
  249          ELSE
  250             WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric'
  251          END IF
  252          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  253          IF( SORD ) THEN
  254             WRITE( IOUNIT, FMT = 9983 )
  255          ELSE
  256             WRITE( IOUNIT, FMT = 9982 )
  257          END IF
  258          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  259          WRITE( IOUNIT, FMT = 9974 )1
  260          WRITE( IOUNIT, FMT = 9980 )2
  261          WRITE( IOUNIT, FMT = 9979 )3
  262          WRITE( IOUNIT, FMT = 9977 )4
  263          WRITE( IOUNIT, FMT = 9978 )5
  264          WRITE( IOUNIT, FMT = 9976 )6
  265          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  266 *
  267       ELSE IF( LSAMEN( 2, P2, 'SR' ) .OR. LSAMEN( 2, P2, 'SK') ) THEN
  268 *
  269 *        SR: Symmetric indefinite full,
  270 *            with rook (bounded Bunch-Kaufman) pivoting algorithm
  271 *
  272 *        SK: Symmetric indefinite full,
  273 *            with rook (bounded Bunch-Kaufman) pivoting algorithm,
  274 *            ( new storage format for factors:
  275 *              L and diagonal of D is stored in A,
  276 *              subdiagonal of D is stored in E )
  277 *
  278          WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
  279 *
  280          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  281          IF( SORD ) THEN
  282             WRITE( IOUNIT, FMT = 9983 )
  283          ELSE
  284             WRITE( IOUNIT, FMT = 9982 )
  285          END IF
  286 *
  287          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  288          WRITE( IOUNIT, FMT = 9974 )1
  289          WRITE( IOUNIT, FMT = 9980 )2
  290          WRITE( IOUNIT, FMT = 9979 )3
  291          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  292 *
  293       ELSE IF( LSAMEN( 2, P2, 'HA' ) ) THEN
  294 *
  295 *        HA: Hermitian
  296 *            Aasen algorithm
  297          WRITE( IOUNIT, FMT = 9971 )PATH, 'Hermitian'
  298 *
  299          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  300          WRITE( IOUNIT, FMT = 9983 )
  301 *
  302          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  303          WRITE( IOUNIT, FMT = 9974 )1
  304          WRITE( IOUNIT, FMT = 9980 )2
  305          WRITE( IOUNIT, FMT = 9979 )3
  306          WRITE( IOUNIT, FMT = 9977 )4
  307          WRITE( IOUNIT, FMT = 9978 )5
  308          WRITE( IOUNIT, FMT = 9976 )6
  309          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  310 
  311 
  312       ELSE IF( LSAMEN( 2, P2, 'HE' ) .OR.
  313      $         LSAMEN( 2, P2, 'HP' ) ) THEN
  314 *
  315 *        HE: Hermitian indefinite full
  316 *            with partial (Bunch-Kaufman) pivoting algorithm
  317 *        HP: Hermitian indefinite packed
  318 *            with partial (Bunch-Kaufman) pivoting algorithm
  319 *
  320          IF( LSAME( C3, 'E' ) ) THEN
  321             WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
  322          ELSE
  323             WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian'
  324          END IF
  325 *
  326          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  327          WRITE( IOUNIT, FMT = 9983 )
  328 *
  329          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  330          WRITE( IOUNIT, FMT = 9974 )1
  331          WRITE( IOUNIT, FMT = 9980 )2
  332          WRITE( IOUNIT, FMT = 9979 )3
  333          WRITE( IOUNIT, FMT = 9977 )4
  334          WRITE( IOUNIT, FMT = 9978 )5
  335          WRITE( IOUNIT, FMT = 9976 )6
  336          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  337 *
  338       ELSE IF( LSAMEN( 2, P2, 'HR' ) .OR. LSAMEN( 2, P2, 'HK' ) ) THEN
  339 *
  340 *        HR: Hermitian indefinite full,
  341 *            with rook (bounded Bunch-Kaufman) pivoting algorithm
  342 *
  343 *        HK: Hermitian indefinite full,
  344 *            with rook (bounded Bunch-Kaufman) pivoting algorithm,
  345 *            ( new storage format for factors:
  346 *              L and diagonal of D is stored in A,
  347 *              subdiagonal of D is stored in E )
  348 *
  349          WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
  350 *
  351          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  352          WRITE( IOUNIT, FMT = 9983 )
  353 *
  354          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  355          WRITE( IOUNIT, FMT = 9974 )1
  356          WRITE( IOUNIT, FMT = 9980 )2
  357          WRITE( IOUNIT, FMT = 9979 )3
  358          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  359 *
  360       ELSE
  361 *
  362 *        Print error message if no header is available.
  363 *
  364          WRITE( IOUNIT, FMT = 9990 )PATH
  365       END IF
  366 *
  367 *     First line of header
  368 *
  369  9999 FORMAT( / 1X, A3, ' drivers:  General dense matrices' )
  370  9998 FORMAT( / 1X, A3, ' drivers:  General band matrices' )
  371  9997 FORMAT( / 1X, A3, ' drivers:  General tridiagonal' )
  372  9996 FORMAT( / 1X, A3, ' drivers:  ', A9,
  373      $      ' positive definite matrices' )
  374  9995 FORMAT( / 1X, A3, ' drivers:  ', A9,
  375      $      ' positive definite packed matrices' )
  376  9994 FORMAT( / 1X, A3, ' drivers:  ', A9,
  377      $      ' positive definite band matrices' )
  378  9993 FORMAT( / 1X, A3, ' drivers:  ', A9,
  379      $      ' positive definite tridiagonal' )
  380  9971 FORMAT( / 1X, A3, ' drivers:  ', A9, ' indefinite matrices',
  381      $     ', "Aasen" Algorithm' )
  382  9992 FORMAT( / 1X, A3, ' drivers:  ', A9, ' indefinite matrices',
  383      $     ', "rook" (bounded Bunch-Kaufman) pivoting' )
  384  9991 FORMAT( / 1X, A3, ' drivers:  ', A9,
  385      $      ' indefinite packed matrices',
  386      $      ', partial (Bunch-Kaufman) pivoting' )
  387  9891 FORMAT( / 1X, A3, ' drivers:  ', A9,
  388      $      ' indefinite packed matrices',
  389      $      ', "rook" (bounded Bunch-Kaufman) pivoting' )
  390  9990 FORMAT( / 1X, A3, ':  No header available' )
  391 *
  392 *     GE matrix types
  393 *
  394  9989 FORMAT( 4X, '1. Diagonal', 24X, '7. Last n/2 columns zero', / 4X,
  395      $      '2. Upper triangular', 16X,
  396      $      '8. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
  397      $      '3. Lower triangular', 16X, '9. Random, CNDNUM = 0.1/EPS',
  398      $      / 4X, '4. Random, CNDNUM = 2', 13X,
  399      $      '10. Scaled near underflow', / 4X, '5. First column zero',
  400      $      14X, '11. Scaled near overflow', / 4X,
  401      $      '6. Last column zero' )
  402 *
  403 *     GB matrix types
  404 *
  405  9988 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
  406      $      '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
  407      $      '2. First column zero', 15X, '6. Random, CNDNUM = 0.1/EPS',
  408      $      / 4X, '3. Last column zero', 16X,
  409      $      '7. Scaled near underflow', / 4X,
  410      $      '4. Last n/2 columns zero', 11X, '8. Scaled near overflow' )
  411 *
  412 *     GT matrix types
  413 *
  414  9987 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
  415      $      / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
  416      $      / 4X, '2. Random, CNDNUM = 2', 14X, '8. First column zero',
  417      $      / 4X, '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
  418      $      '9. Last column zero', / 4X, '4. Random, CNDNUM = 0.1/EPS',
  419      $      7X, '10. Last n/2 columns zero', / 4X,
  420      $      '5. Scaled near underflow', 10X,
  421      $      '11. Scaled near underflow', / 4X,
  422      $      '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
  423 *
  424 *     PT matrix types
  425 *
  426  9986 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
  427      $      / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
  428      $      / 4X, '2. Random, CNDNUM = 2', 14X,
  429      $      '8. First row and column zero', / 4X,
  430      $      '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
  431      $      '9. Last row and column zero', / 4X,
  432      $      '4. Random, CNDNUM = 0.1/EPS', 7X,
  433      $      '10. Middle row and column zero', / 4X,
  434      $      '5. Scaled near underflow', 10X,
  435      $      '11. Scaled near underflow', / 4X,
  436      $      '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
  437 *
  438 *     PO, PP matrix types
  439 *
  440  9985 FORMAT( 4X, '1. Diagonal', 24X,
  441      $      '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
  442      $      '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
  443      $      / 3X, '*3. First row and column zero', 7X,
  444      $      '8. Scaled near underflow', / 3X,
  445      $      '*4. Last row and column zero', 8X,
  446      $      '9. Scaled near overflow', / 3X,
  447      $      '*5. Middle row and column zero', / 3X,
  448      $      '(* - tests error exits from ', A3,
  449      $      'TRF, no test ratios are computed)' )
  450 *
  451 *     PB matrix types
  452 *
  453  9984 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
  454      $      '5. Random, CNDNUM = sqrt(0.1/EPS)', / 3X,
  455      $      '*2. First row and column zero', 7X,
  456      $      '6. Random, CNDNUM = 0.1/EPS', / 3X,
  457      $      '*3. Last row and column zero', 8X,
  458      $      '7. Scaled near underflow', / 3X,
  459      $      '*4. Middle row and column zero', 6X,
  460      $      '8. Scaled near overflow', / 3X,
  461      $      '(* - tests error exits from ', A3,
  462      $      'TRF, no test ratios are computed)' )
  463 *
  464 *     SSY, SSP, CHE, CHP matrix types
  465 *
  466  9983 FORMAT( 4X, '1. Diagonal', 24X,
  467      $      '6. Last n/2 rows and columns zero', / 4X,
  468      $      '2. Random, CNDNUM = 2', 14X,
  469      $      '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
  470      $      '3. First row and column zero', 7X,
  471      $      '8. Random, CNDNUM = 0.1/EPS', / 4X,
  472      $      '4. Last row and column zero', 8X,
  473      $      '9. Scaled near underflow', / 4X,
  474      $      '5. Middle row and column zero', 5X,
  475      $      '10. Scaled near overflow' )
  476 *
  477 *     CSY, CSP matrix types
  478 *
  479  9982 FORMAT( 4X, '1. Diagonal', 24X,
  480      $      '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
  481      $      '2. Random, CNDNUM = 2', 14X, '8. Random, CNDNUM = 0.1/EPS',
  482      $      / 4X, '3. First row and column zero', 7X,
  483      $      '9. Scaled near underflow', / 4X,
  484      $      '4. Last row and column zero', 7X,
  485      $      '10. Scaled near overflow', / 4X,
  486      $      '5. Middle row and column zero', 5X,
  487      $      '11. Block diagonal matrix', / 4X,
  488      $      '6. Last n/2 rows and columns zero' )
  489 *
  490 *     Test ratios
  491 *
  492  9981 FORMAT( 3X, I2, ': norm( L * U - A )  / ( N * norm(A) * EPS )' )
  493  9980 FORMAT( 3X, I2, ': norm( B - A * X )  / ',
  494      $      '( norm(A) * norm(X) * EPS )' )
  495  9979 FORMAT( 3X, I2, ': norm( X - XACT )   / ',
  496      $      '( norm(XACT) * CNDNUM * EPS )' )
  497  9978 FORMAT( 3X, I2, ': norm( X - XACT )   / ',
  498      $      '( norm(XACT) * (error bound) )' )
  499  9977 FORMAT( 3X, I2, ': (backward error)   / EPS' )
  500  9976 FORMAT( 3X, I2, ': RCOND * CNDNUM - 1.0' )
  501  9975 FORMAT( 3X, I2, ': norm( U'' * U - A ) / ( N * norm(A) * EPS )',
  502      $      ', or', / 7X, 'norm( L * L'' - A ) / ( N * norm(A) * EPS )'
  503      $       )
  504  9974 FORMAT( 3X, I2, ': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )',
  505      $      ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
  506      $       )
  507  9973 FORMAT( 3X, I2, ': norm( U''*D*U - A ) / ( N * norm(A) * EPS )',
  508      $      ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
  509      $       )
  510  9972 FORMAT( 3X, I2, ': abs( WORK(1) - RPVGRW ) /',
  511      $      ' ( max( WORK(1), RPVGRW ) * EPS )' )
  512 *
  513       RETURN
  514 *
  515 *     End of ALADHD
  516 *
  517       END