Purpose
  To perform the matrix-vector operation
     y := alpha*A*x + beta*y,
  where alpha and beta are scalars, x and y are vectors of length
  n and A is an n-by-n skew-symmetric matrix.
  This is a modified version of the vanilla implemented BLAS
  routine DSYMV written by Jack Dongarra, Jeremy Du Croz,
  Sven Hammarling, and Richard Hanson.
Specification
      SUBROUTINE MB01MD( UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y,
     $                   INCY )
C     .. Scalar Arguments ..
      DOUBLE PRECISION   ALPHA, BETA
      INTEGER            INCX, INCY, LDA, N
      CHARACTER          UPLO
C     .. Array Arguments ..
      DOUBLE PRECISION   A(LDA,*), X(*), Y(*)
Arguments
Mode Parameters
  UPLO    CHARACTER*1
          Specifies whether the upper or lower triangular part of
          the array A is to be referenced as follows:
          = 'U':  only the strictly upper triangular part of A is to
                  be referenced;
          = 'L':  only the strictly lower triangular part of A is to
                  be referenced.
Input/Output Parameters
  N       (input) INTEGER
          The order of the matrix A.  N >= 0.
  ALPHA   (input) DOUBLE PRECISION
          The scalar alpha. If alpha is zero the array A is not
          referenced.
  A       (input) DOUBLE PRECISION array, dimension (LDA,N)
          On entry with UPLO = 'U', the leading N-by-N part of this
          array must contain the strictly upper triangular part of
          the matrix A. The lower triangular part of this array is
          not referenced.
          On entry with UPLO = 'L', the leading N-by-N part of this
          array must contain the strictly lower triangular part of
          the matrix A. The upper triangular part of this array is
          not referenced.
  LDA     INTEGER
          The leading dimension of the array A.  LDA >= MAX(1,N)
  X       (input) DOUBLE PRECISION array, dimension
          ( 1 + ( N - 1 )*abs( INCX ) ).
          On entry, elements 1, INCX+1, .., ( N - 1 )*INCX + 1 of
          this array must contain the elements of the vector X.
  INCX    (input) INTEGER
          The increment for the elements of X. IF INCX < 0 then the
          elements of X are accessed in reversed order.  INCX <> 0.
  BETA    (input) DOUBLE PRECISION
          The scalar beta. If beta is zero then Y need not be set on
          input.
  Y       (input/output) DOUBLE PRECISION array, dimension
          ( 1 + ( N - 1 )*abs( INCY ) ).
          On entry, elements 1, INCY+1, .., ( N - 1 )*INCY + 1 of
          this array must contain the elements of the vector Y.
          On exit, elements 1, INCY+1, .., ( N - 1 )*INCY + 1 of
          this array contain the updated elements of the vector Y.
  INCY    (input) INTEGER
          The increment for the elements of Y. IF INCY < 0 then the
          elements of Y are accessed in reversed order.  INCY <> 0.
Numerical Aspects
Though being almost identical with the vanilla implementation of the BLAS routine DSYMV the performance of this routine could be significantly lower in the case of vendor supplied, highly optimized BLAS.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None