      SUBROUTINE MXV (A,NROWS,X,NCOLS,Y)
      INTEGER NROWS, NCOLS
      DOUBLE PRECISION A(NROWS,NCOLS), X(*), Y(*)
      DOUBLE PRECISION ZERO
      PARAMETER (ZERO=0.0D0)
      INTEGER I, J
      DO 100 I=1,NROWS
         Y(I) = ZERO
 100  CONTINUE
      DO 110 J=1,NCOLS
         CALL SAXPY (NROWS,X(J),A(1,J),1,Y,1)
 110  CONTINUE
      RETURN
      END
