next up previous contents
Next: 2.6 Dynamic Allocation of Up: 2. JTpack77 Previous: 2.4 JTpack77 Design   Contents

2.5 Matrix-Vector Multiplication Routine

#include ``iadefines.h''
      subroutine JT_y_eq_Ax (a, ia, ja, x, y, status)
      implicit none
c
c ... Input:
      integer ia(_JT_no_of_storage_parameters_), ja(*)
      real a(*)
      real x(ia(_JT_nrows_))
c
c ... Output:
      integer status
      real y(ia(_JT_nrows_))
c
      if (ia(_JT_storage_) .eq. _JT_storage_full_) then
         call JT_y_eq_Ax_Full
     &     (ia(_JT_idim_), ia(_JT_nrows_),a,x,y,status)
      elseif (ia(_JT_storage_) .eq. _JT_storage_ELL_) then
         call JT_y_eq_Ax_ELL
     &     (ia(_JT_idim_),ia(_JT_nrows_),ia(_JT_maxnz_),a,ja,x,y,status)
         if (status .eq. -1) status = -3
      else
         status = -1   ! invalid value for ia(_JT_storage_)
      endif
c
      return
      end



next up previous contents
Next: 2.6 Dynamic Allocation of Up: 2. JTpack77 Previous: 2.4 JTpack77 Design   Contents
John A. Turner