|
|
@ -2008,7 +2008,7 @@ end subroutine psb_d_xyz_csgetptn
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subroutine psb_d_xyz_csgetrow(imin,imax,a,nz,ia,ja,val,info,&
|
|
|
|
subroutine psb_d_xyz_csgetrow(imin,imax,a,nz,ia,ja,val,info,&
|
|
|
|
& jmin,jmax,iren,append,nzin,rscale,cscale)
|
|
|
|
& jmin,jmax,iren,append,nzin,rscale,cscale,chksz)
|
|
|
|
! Output is always in COO format
|
|
|
|
! Output is always in COO format
|
|
|
|
use psb_error_mod
|
|
|
|
use psb_error_mod
|
|
|
|
use psb_const_mod
|
|
|
|
use psb_const_mod
|
|
|
@ -2026,9 +2026,9 @@ subroutine psb_d_xyz_csgetrow(imin,imax,a,nz,ia,ja,val,info,&
|
|
|
|
logical, intent(in), optional :: append
|
|
|
|
logical, intent(in), optional :: append
|
|
|
|
integer(psb_ipk_), intent(in), optional :: iren(:)
|
|
|
|
integer(psb_ipk_), intent(in), optional :: iren(:)
|
|
|
|
integer(psb_ipk_), intent(in), optional :: jmin,jmax, nzin
|
|
|
|
integer(psb_ipk_), intent(in), optional :: jmin,jmax, nzin
|
|
|
|
logical, intent(in), optional :: rscale,cscale
|
|
|
|
logical, intent(in), optional :: rscale,cscale,chksz
|
|
|
|
|
|
|
|
|
|
|
|
logical :: append_, rscale_, cscale_
|
|
|
|
logical :: append_, rscale_, cscale_, chksz_
|
|
|
|
integer(psb_ipk_) :: nzin_, jmin_, jmax_, err_act, i
|
|
|
|
integer(psb_ipk_) :: nzin_, jmin_, jmax_, err_act, i
|
|
|
|
integer(psb_ipk_) :: ierr(5)
|
|
|
|
integer(psb_ipk_) :: ierr(5)
|
|
|
|
character(len=20) :: name='csget'
|
|
|
|
character(len=20) :: name='csget'
|
|
|
@ -2073,13 +2073,18 @@ subroutine psb_d_xyz_csgetrow(imin,imax,a,nz,ia,ja,val,info,&
|
|
|
|
else
|
|
|
|
else
|
|
|
|
cscale_ = .false.
|
|
|
|
cscale_ = .false.
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
if (present(chksz)) then
|
|
|
|
|
|
|
|
chksz_ = chksz
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
chksz_ = .true.
|
|
|
|
|
|
|
|
endif
|
|
|
|
if ((rscale_.or.cscale_).and.(present(iren))) then
|
|
|
|
if ((rscale_.or.cscale_).and.(present(iren))) then
|
|
|
|
info = psb_err_many_optional_arg_
|
|
|
|
info = psb_err_many_optional_arg_
|
|
|
|
call psb_errpush(info,name,a_err='iren (rscale.or.cscale)')
|
|
|
|
call psb_errpush(info,name,a_err='iren (rscale.or.cscale)')
|
|
|
|
goto 9999
|
|
|
|
goto 9999
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
call xyz_getrow(imin,imax,jmin_,jmax_,a,nz,ia,ja,val,nzin_,append_,info,&
|
|
|
|
call xyz_getrow(imin,imax,jmin_,jmax_,a,nz,ia,ja,val,nzin_,append_,chksz_,info,&
|
|
|
|
& iren)
|
|
|
|
& iren)
|
|
|
|
|
|
|
|
|
|
|
|
if (rscale_) then
|
|
|
|
if (rscale_) then
|
|
|
@ -2103,7 +2108,7 @@ subroutine psb_d_xyz_csgetrow(imin,imax,a,nz,ia,ja,val,info,&
|
|
|
|
|
|
|
|
|
|
|
|
contains
|
|
|
|
contains
|
|
|
|
|
|
|
|
|
|
|
|
subroutine xyz_getrow(imin,imax,jmin,jmax,a,nz,ia,ja,val,nzin,append,info,&
|
|
|
|
subroutine xyz_getrow(imin,imax,jmin,jmax,a,nz,ia,ja,val,nzin,append,chksz,info,&
|
|
|
|
& iren)
|
|
|
|
& iren)
|
|
|
|
|
|
|
|
|
|
|
|
use psb_const_mod
|
|
|
|
use psb_const_mod
|
|
|
@ -2118,7 +2123,7 @@ contains
|
|
|
|
integer(psb_ipk_), allocatable, intent(inout) :: ia(:), ja(:)
|
|
|
|
integer(psb_ipk_), allocatable, intent(inout) :: ia(:), ja(:)
|
|
|
|
real(psb_dpk_), allocatable, intent(inout) :: val(:)
|
|
|
|
real(psb_dpk_), allocatable, intent(inout) :: val(:)
|
|
|
|
integer(psb_ipk_), intent(in) :: nzin
|
|
|
|
integer(psb_ipk_), intent(in) :: nzin
|
|
|
|
logical, intent(in) :: append
|
|
|
|
logical, intent(in) :: append, chksz
|
|
|
|
integer(psb_ipk_) :: info
|
|
|
|
integer(psb_ipk_) :: info
|
|
|
|
integer(psb_ipk_), optional :: iren(:)
|
|
|
|
integer(psb_ipk_), optional :: iren(:)
|
|
|
|
integer(psb_ipk_) :: nzin_, nza, idx,i,j,k, nzt, irw, lrw
|
|
|
|
integer(psb_ipk_) :: nzin_, nza, idx,i,j,k, nzt, irw, lrw
|
|
|
@ -2146,11 +2151,12 @@ contains
|
|
|
|
nz = 0
|
|
|
|
nz = 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (chksz) then
|
|
|
|
call psb_ensure_size(nzin_+nzt,ia,info)
|
|
|
|
call psb_ensure_size(nzin_+nzt,ia,info)
|
|
|
|
if (info == psb_success_) call psb_ensure_size(nzin_+nzt,ja,info)
|
|
|
|
if (info == psb_success_) call psb_ensure_size(nzin_+nzt,ja,info)
|
|
|
|
if (info == psb_success_) call psb_ensure_size(nzin_+nzt,val,info)
|
|
|
|
if (info == psb_success_) call psb_ensure_size(nzin_+nzt,val,info)
|
|
|
|
|
|
|
|
|
|
|
|
if (info /= psb_success_) return
|
|
|
|
if (info /= psb_success_) return
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
if (present(iren)) then
|
|
|
|
if (present(iren)) then
|
|
|
|
do i=irw, lrw
|
|
|
|
do i=irw, lrw
|
|
|
|