|
|
@ -29,17 +29,17 @@
|
|
|
|
! POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
! POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
!
|
|
|
|
!
|
|
|
|
!
|
|
|
|
!
|
|
|
|
! Subroutine: psb_cinsvi
|
|
|
|
! Subroutine: psb_cins_vect
|
|
|
|
! Insert dense submatrix to dense matrix. Note: the row indices in IRW
|
|
|
|
! Insert entries into a dense vector. Note: the row indices in IRW
|
|
|
|
! are assumed to be in global numbering and are converted on the fly.
|
|
|
|
! are assumed to be in global numbering and are converted on the fly.
|
|
|
|
! Row indices not belonging to the current process are silently discarded.
|
|
|
|
! Row indices not belonging to the current process are silently discarded.
|
|
|
|
!
|
|
|
|
!
|
|
|
|
! Arguments:
|
|
|
|
! Arguments:
|
|
|
|
! m - integer. Number of rows of submatrix belonging to
|
|
|
|
! m - integer. Number of rows of submatrix belonging to
|
|
|
|
! val to be inserted.
|
|
|
|
! val to be inserted.
|
|
|
|
! irw(:) - integer Row indices of rows of val (global numbering)
|
|
|
|
! irw(:) - integer(psb_lpk_) Row indices of rows of val (global numbering)
|
|
|
|
! val(:) - complex The source dense submatrix.
|
|
|
|
! val(:) - complex The source vector
|
|
|
|
! x(:) - complex The destination dense matrix.
|
|
|
|
! x - type(psb_c_vect_type) The destination vector
|
|
|
|
! desc_a - type(psb_desc_type). The communication descriptor.
|
|
|
|
! desc_a - type(psb_desc_type). The communication descriptor.
|
|
|
|
! info - integer. return code
|
|
|
|
! info - integer. return code
|
|
|
|
! dupl - integer What to do with duplicates:
|
|
|
|
! dupl - integer What to do with duplicates:
|
|
|
@ -50,10 +50,6 @@ subroutine psb_cins_vect(m, irw, val, x, desc_a, info, dupl,local)
|
|
|
|
use psi_mod
|
|
|
|
use psi_mod
|
|
|
|
implicit none
|
|
|
|
implicit none
|
|
|
|
|
|
|
|
|
|
|
|
! m rows number of submatrix belonging to val to be inserted
|
|
|
|
|
|
|
|
! ix x global-row corresponding to position at which val submatrix
|
|
|
|
|
|
|
|
! must be inserted
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!....parameters...
|
|
|
|
!....parameters...
|
|
|
|
integer(psb_ipk_), intent(in) :: m
|
|
|
|
integer(psb_ipk_), intent(in) :: m
|
|
|
|
integer(psb_lpk_), intent(in) :: irw(:)
|
|
|
|
integer(psb_lpk_), intent(in) :: irw(:)
|
|
|
@ -155,6 +151,23 @@ subroutine psb_cins_vect(m, irw, val, x, desc_a, info, dupl,local)
|
|
|
|
|
|
|
|
|
|
|
|
end subroutine psb_cins_vect
|
|
|
|
end subroutine psb_cins_vect
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
! Subroutine: psb_cins_vect_v
|
|
|
|
|
|
|
|
! Insert entries into a vector from another encapsulated vector.
|
|
|
|
|
|
|
|
! Note: the row indices in IRW
|
|
|
|
|
|
|
|
! are assumed to be in global numbering and are converted on the fly.
|
|
|
|
|
|
|
|
! Row indices not belonging to the current process are silently discarded.
|
|
|
|
|
|
|
|
!
|
|
|
|
|
|
|
|
! Arguments:
|
|
|
|
|
|
|
|
! m - integer. Number of rows of submatrix belonging to
|
|
|
|
|
|
|
|
! val to be inserted.
|
|
|
|
|
|
|
|
! irw - type(psb_l_vect_type) Row indices of rows of val (global numbering)
|
|
|
|
|
|
|
|
! val - type(psb_c_vect_type) The source vector
|
|
|
|
|
|
|
|
! x - type(psb_c_vect_type) The destination vector
|
|
|
|
|
|
|
|
! desc_a - type(psb_desc_type). The communication descriptor.
|
|
|
|
|
|
|
|
! info - integer. return code
|
|
|
|
|
|
|
|
! dupl - integer What to do with duplicates:
|
|
|
|
|
|
|
|
! psb_dupl_ovwrt_ overwrite
|
|
|
|
|
|
|
|
! psb_dupl_add_ add
|
|
|
|
subroutine psb_cins_vect_v(m, irw, val, x, desc_a, info, dupl,local)
|
|
|
|
subroutine psb_cins_vect_v(m, irw, val, x, desc_a, info, dupl,local)
|
|
|
|
use psb_base_mod, psb_protect_name => psb_cins_vect_v
|
|
|
|
use psb_base_mod, psb_protect_name => psb_cins_vect_v
|
|
|
|
use psi_mod
|
|
|
|
use psi_mod
|
|
|
@ -329,7 +342,6 @@ subroutine psb_cins_vect_r2(m, irw, val, x, desc_a, info, dupl,local)
|
|
|
|
mglob = desc_a%get_global_rows()
|
|
|
|
mglob = desc_a%get_global_rows()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n = min(size(x),size(val,2))
|
|
|
|
n = min(size(x),size(val,2))
|
|
|
|
allocate(irl(m),stat=info)
|
|
|
|
allocate(irl(m),stat=info)
|
|
|
|
if (info /= psb_success_) then
|
|
|
|
if (info /= psb_success_) then
|
|
|
@ -375,8 +387,6 @@ subroutine psb_cins_vect_r2(m, irw, val, x, desc_a, info, dupl,local)
|
|
|
|
|
|
|
|
|
|
|
|
end subroutine psb_cins_vect_r2
|
|
|
|
end subroutine psb_cins_vect_r2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subroutine psb_cins_multivect(m, irw, val, x, desc_a, info, dupl,local)
|
|
|
|
subroutine psb_cins_multivect(m, irw, val, x, desc_a, info, dupl,local)
|
|
|
|
use psb_base_mod, psb_protect_name => psb_cins_multivect
|
|
|
|
use psb_base_mod, psb_protect_name => psb_cins_multivect
|
|
|
|
use psi_mod
|
|
|
|
use psi_mod
|
|
|
|