y_eq_diagAx_Full.F


c**********************************************************************
#include "author.inc"
c*    $Id: y_eq_diagAx_Full.F,v 1.2 1995/10/10 05:42:29 turner Exp $
c*
c*    Computes y = diag(A)*x.
c*
c*    <PARAMETER LIST>
c*
c*     Input:
c*      idim - leading dimension of a
c*      n - number of rows/columns of A
c*      x - vector to be multiplied
c*      a - matrix
c*
c*     Output:
c*      y - destination vector
c*      status - return status
c*
#include "copyright.inc"
c**********************************************************************
      subroutine JT_y_eq_diagAx_Full (idim, n, x, a, y, status)
      implicit none
c
c ... Input:
      integer idim, n
      real a(idim,n), x(n)
c
c ... Output:
      integer status
      real y(n)
c
c ... Local:
      integer i
c
      do i=1,n
       y(i) = a(i,i)*x(i)
      enddo
c
      status = 0
      return
      end
c**********************************************************************
#include "author.inc"
c*
c*    Computes y = inv(diag(A))*x.
c*
c*    WARNING: This routine does not check to ensure that 
c*             a(i,i) /= 0.
c*
c*    <PARAMETER LIST>
c*
c*     Input:
c*      idim - leading dimension of a
c*      n - number of rows/columns of A
c*      a - matrix
c*      x - vector to be multiplied
c*
c*     Output:
c*      y - destination vector
c*      status - return status
c*
#include "copyright.inc"
c**********************************************************************
      subroutine JT_y_eq_invdiagAx_Full (idim, n, x, a, y, status)
      implicit none
c
c ... Input:
      integer idim, n
      real a(idim,n), x(n)
c
c ... Output:
      integer status
      real y(n)
c
c ... Local:
      integer i
c
      do i=1,n
       y(i) = x(i) / a(i,i)
      enddo
c
      status = 0
      return
      end