7     allocated_space, cols, values, row_lengths, ierr)
 
   11   integer(kind=kint), 
intent(in) :: id
 
   12   integer(kind=kint), 
intent(in) :: n_requested_rows
 
   13   integer(kind=kint), 
intent(in) :: requested_rows(n_requested_rows)
 
   14   integer(kind=kint), 
intent(in) :: allocated_space
 
   15   integer(kind=kint), 
intent(out) :: cols(allocated_space)
 
   16   real(kind=
kreal), 
intent(out) :: values(allocated_space)
 
   17   integer(kind=kint), 
intent(out) :: row_lengths(n_requested_rows)
 
   18   integer(kind=kint), 
intent(out) :: ierr
 
   21   integer(kind=kint) :: m, i, row, inod, idof, nl, nd, nu, js, je, j, jj, jdof, start
 
   25   do i = 1, n_requested_rows
 
   26     row = requested_rows(i) + 1 
 
   28     idof = row - (inod-1)*3
 
   29     nl = (hecmat%indexL(inod) - hecmat%indexL(inod-1)) * 3
 
   31     nu = (hecmat%indexU(inod) - hecmat%indexU(inod-1)) * 3
 
   32     if (allocated_space < m + nl + nd + nu) 
return 
   34     js = hecmat%indexL(inod-1)+1
 
   35     je = hecmat%indexL(inod)
 
   39         cols(m) = (jj-1)*3 + jdof - 1 
 
   40         values(m) = hecmat%AL((j-1)*9 + (idof-1)*3 + jdof)
 
   45       cols(m) = (inod-1)*3 + jdof - 1 
 
   46       values(m) = hecmat%D((inod-1)*9 + (idof-1)*3 + jdof)
 
   49     js = hecmat%indexU(inod-1)+1
 
   50     je = hecmat%indexU(inod)
 
   54         cols(m) = (jj-1)*3 + jdof - 1 
 
   55         values(m) = hecmat%AU((j-1)*9 + (idof-1)*3 + jdof)
 
   59     row_lengths(i) = m - start
 
   69   integer(kind=kint), 
intent(in) :: id
 
   70   integer(kind=kint), 
intent(in) :: in_length
 
   71   real(kind=
kreal), 
intent(in) :: p(in_length)
 
   72   integer(kind=kint), 
intent(in) :: out_length
 
   73   real(kind=
kreal), 
intent(out) :: ap(out_length)
 
   74   integer(kind=kint), 
intent(out) :: ierr
 
   77   real(kind=
kreal), 
allocatable :: w(:)
 
   78   integer(kind=kint) :: i
 
   80   allocate(w(hecmat%NP*hecmat%NDOF))
 
   81   do i = 1, hecmat%N*hecmat%NDOF
 
   94   integer(kind=kint), 
intent(in) :: id
 
   95   real(kind=
kreal), 
intent(inout) :: x(*)
 
   96   integer(kind=kint), 
intent(out) :: ierr
 
  109   integer(kind=kint), 
intent(in) :: id
 
  110   integer(kind=kint), 
intent(out) :: ierr
 
  125   integer(kind=kint), 
intent(in) :: id
 
  126   integer(kind=kint), 
intent(in) :: x_length
 
  127   real(kind=
kreal), 
intent(inout) :: x(x_length)
 
  128   integer(kind=kint), 
intent(in) :: rhs_length
 
  129   real(kind=
kreal), 
intent(in) :: rhs(rhs_length)
 
  130   integer(kind=kint), 
intent(out) :: ierr
 
  134   real(kind=
kreal), 
allocatable :: resid(:)
 
  135   integer(kind=kint) :: i
 
  136   real(kind=
kreal) :: commtime
 
  137   integer(kind=kint) :: num_sweeps, i_sweep
 
  138   integer(kind=kint) :: opt(10)
 
  143   allocate(resid(hecmat%NP * hecmat%NDOF))
 
  144   do i_sweep = 1, num_sweeps
 
  151       x(i) = x(i) + resid(i)
 
  163   integer(kind=kint), 
intent(in) :: id
 
  164   integer(kind=kint), 
intent(out) :: ierr
 
  177   integer(kind=kint), 
intent(in) :: id
 
  178   integer(kind=kint), 
intent(out) :: ierr
 
  193   integer(kind=kint), 
intent(in) :: id
 
  194   integer(kind=kint), 
intent(in) :: x_length
 
  195   real(kind=
kreal), 
intent(inout) :: x(x_length)
 
  196   integer(kind=kint), 
intent(in) :: rhs_length
 
  197   real(kind=
kreal), 
intent(in) :: rhs(rhs_length)
 
  198   integer(kind=kint), 
intent(out) :: ierr
 
  202   real(kind=
kreal), 
allocatable :: resid(:)
 
  203   integer(kind=kint) :: i
 
  204   real(kind=
kreal) :: commtime
 
  205   integer(kind=kint) :: num_sweeps, i_sweep
 
  206   integer(kind=kint) :: opt(10)
 
  211   allocate(resid(hecmat%NP * hecmat%NDOF))
 
  212   do i_sweep = 1, num_sweeps
 
  219       x(i) = x(i) + resid(i)
 
  231   integer(kind=kint), 
intent(in) :: id
 
  232   integer(kind=kint), 
intent(out) :: ierr
 
subroutine hecmw_ml_smoother_ssor_apply_33(id, x_length, x, rhs_length, rhs, ierr)
subroutine hecmw_ml_getrow_33(id, n_requested_rows, requested_rows, allocated_space, cols, values, row_lengths, ierr)
subroutine hecmw_ml_smoother_diag_setup_33(id, ierr)
subroutine hecmw_ml_smoother_ssor_clear_33(id, ierr)
subroutine hecmw_ml_smoother_diag_clear_33(id, ierr)
subroutine hecmw_ml_smoother_diag_apply_33(id, x_length, x, rhs_length, rhs, ierr)
subroutine hecmw_ml_comm_33(id, x, ierr)
subroutine hecmw_ml_matvec_33(id, in_length, p, out_length, ap, ierr)
subroutine hecmw_ml_smoother_ssor_setup_33(id, ierr)
subroutine, public hecmw_mat_id_get(id, hecMAT, hecMESH)
subroutine, public hecmw_mat_get_solver_opt(hecMAT, solver_opt)
subroutine, public hecmw_precond_diag_33_apply(WW)
subroutine, public hecmw_precond_diag_33_clear()
subroutine, public hecmw_precond_diag_33_setup(hecMAT)
subroutine, public hecmw_precond_ssor_33_apply(ZP)
subroutine, public hecmw_precond_ssor_33_setup(hecMAT)
subroutine, public hecmw_precond_ssor_33_clear(hecMAT)
subroutine, public hecmw_matresid(hecMESH, hecMAT, X, B, R, COMMtime)
subroutine, public hecmw_matvec(hecMESH, hecMAT, X, Y, COMMtime)
integer(kind=4), parameter kreal
subroutine hecmw_update_r(hecMESH, val, n, m)