|
|
@ -62,11 +62,11 @@ contains
|
|
|
|
|
|
|
|
|
|
|
|
type(psb_dspmat_type), intent(inout) :: a
|
|
|
|
type(psb_dspmat_type), intent(inout) :: a
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: ia(*),ja(*)
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
real(psb_dpk_), intent(in) :: val(*)
|
|
|
|
real(psb_dpk_), intent(in) :: val(:)
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(in), optional :: ng,gtl(*)
|
|
|
|
integer, intent(in), optional :: ng,gtl(:)
|
|
|
|
|
|
|
|
|
|
|
|
info = 0
|
|
|
|
info = 0
|
|
|
|
|
|
|
|
|
|
|
@ -107,11 +107,11 @@ contains
|
|
|
|
|
|
|
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: ia(*),ja(*)
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
complex(psb_dpk_), intent(in) :: val(*)
|
|
|
|
complex(psb_dpk_), intent(in) :: val(:)
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(in), optional :: ng,gtl(*)
|
|
|
|
integer, intent(in), optional :: ng,gtl(:)
|
|
|
|
|
|
|
|
|
|
|
|
info = 0
|
|
|
|
info = 0
|
|
|
|
|
|
|
|
|
|
|
@ -170,11 +170,11 @@ contains
|
|
|
|
|
|
|
|
|
|
|
|
type(psb_dspmat_type), intent(inout) :: a
|
|
|
|
type(psb_dspmat_type), intent(inout) :: a
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: ia(*),ja(*)
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
real(psb_dpk_), intent(in) :: val(*)
|
|
|
|
real(psb_dpk_), intent(in) :: val(:)
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(in), optional :: ng,gtl(*)
|
|
|
|
integer, intent(in), optional :: ng,gtl(:)
|
|
|
|
|
|
|
|
|
|
|
|
integer :: debug_level, debug_unit
|
|
|
|
integer :: debug_level, debug_unit
|
|
|
|
character(len=20) :: name='d_csr_srch_upd'
|
|
|
|
character(len=20) :: name='d_csr_srch_upd'
|
|
|
@ -211,51 +211,20 @@ contains
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
nc=i2-i1
|
|
|
|
nc=i2-i1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
call ibsrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
if (.true.) then
|
|
|
|
if (ip>0) then
|
|
|
|
call issrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
a%aspk(i1+ip-1) = val(i)
|
|
|
|
if (ip>0) then
|
|
|
|
|
|
|
|
a%aspk(i1+ip-1) = val(i)
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
|
|
|
|
info = i
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
!!$
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
ip = -1
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
lb = i1
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
ub = i2-1
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
do
|
|
|
|
info = i
|
|
|
|
if (lb > ub) exit
|
|
|
|
return
|
|
|
|
m = (lb+ub)/2
|
|
|
|
|
|
|
|
if (ic == a%ia1(m)) then
|
|
|
|
|
|
|
|
ip = m
|
|
|
|
|
|
|
|
lb = ub + 1
|
|
|
|
|
|
|
|
else if (ic < a%ia1(m)) then
|
|
|
|
|
|
|
|
ub = m-1
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
lb = m + 1
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ip>0) then
|
|
|
|
|
|
|
|
a%aspk(ip) = val(i)
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
|
|
|
|
info = i
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
& ': Discarding row that does not belong to us.'
|
|
|
|
& ': Discarding row that does not belong to us.'
|
|
|
@ -277,7 +246,7 @@ contains
|
|
|
|
i1 = a%ia2(ir)
|
|
|
|
i1 = a%ia2(ir)
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
nc = i2-i1
|
|
|
|
nc = i2-i1
|
|
|
|
call issrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
call ibsrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
if (ip>0) then
|
|
|
|
if (ip>0) then
|
|
|
|
a%aspk(i1+ip-1) = a%aspk(i1+ip-1) + val(i)
|
|
|
|
a%aspk(i1+ip-1) = a%aspk(i1+ip-1) + val(i)
|
|
|
|
else
|
|
|
|
else
|
|
|
@ -322,48 +291,18 @@ contains
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
nc=i2-i1
|
|
|
|
nc=i2-i1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
call ibsrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
if (.true.) then
|
|
|
|
if (ip>0) then
|
|
|
|
call issrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
a%aspk(i1+ip-1) = val(i)
|
|
|
|
if (ip>0) then
|
|
|
|
|
|
|
|
a%aspk(i1+ip-1) = val(i)
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
|
|
|
|
info = i
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
ip = -1
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
lb = i1
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
ub = i2-1
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
do
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
if (lb > ub) exit
|
|
|
|
info = i
|
|
|
|
m = (lb+ub)/2
|
|
|
|
return
|
|
|
|
if (ic == a%ia1(m)) then
|
|
|
|
|
|
|
|
ip = m
|
|
|
|
|
|
|
|
lb = ub + 1
|
|
|
|
|
|
|
|
else if (ic < a%ia1(m)) then
|
|
|
|
|
|
|
|
ub = m-1
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
lb = m + 1
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ip>0) then
|
|
|
|
|
|
|
|
a%aspk(ip) = val(i)
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
|
|
|
|
info = i
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
@ -383,7 +322,7 @@ contains
|
|
|
|
i1 = a%ia2(ir)
|
|
|
|
i1 = a%ia2(ir)
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
nc = i2-i1
|
|
|
|
nc = i2-i1
|
|
|
|
call issrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
call ibsrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
if (ip>0) then
|
|
|
|
if (ip>0) then
|
|
|
|
a%aspk(i1+ip-1) = a%aspk(i1+ip-1) + val(i)
|
|
|
|
a%aspk(i1+ip-1) = a%aspk(i1+ip-1) + val(i)
|
|
|
|
else
|
|
|
|
else
|
|
|
@ -419,11 +358,11 @@ contains
|
|
|
|
|
|
|
|
|
|
|
|
type(psb_dspmat_type), intent(inout) :: a
|
|
|
|
type(psb_dspmat_type), intent(inout) :: a
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: ia(*),ja(*)
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
real(psb_dpk_), intent(in) :: val(*)
|
|
|
|
real(psb_dpk_), intent(in) :: val(:)
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(in), optional :: ng,gtl(*)
|
|
|
|
integer, intent(in), optional :: ng,gtl(:)
|
|
|
|
integer :: i,ir,ic, ilr, ilc, ip, &
|
|
|
|
integer :: i,ir,ic, ilr, ilc, ip, &
|
|
|
|
& i1,i2,nc,nnz,dupl
|
|
|
|
& i1,i2,nc,nnz,dupl
|
|
|
|
integer :: debug_level, debug_unit
|
|
|
|
integer :: debug_level, debug_unit
|
|
|
@ -644,11 +583,11 @@ contains
|
|
|
|
|
|
|
|
|
|
|
|
type(psb_dspmat_type), intent(inout), target :: a
|
|
|
|
type(psb_dspmat_type), intent(inout), target :: a
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: ia(*),ja(*)
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
real(psb_dpk_), intent(in) :: val(*)
|
|
|
|
real(psb_dpk_), intent(in) :: val(:)
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(in), optional :: ng,gtl(*)
|
|
|
|
integer, intent(in), optional :: ng,gtl(:)
|
|
|
|
|
|
|
|
|
|
|
|
integer, pointer :: ia1(:), ia2(:), ia3(:),&
|
|
|
|
integer, pointer :: ia1(:), ia2(:), ia3(:),&
|
|
|
|
& ja_(:), ka_(:)
|
|
|
|
& ja_(:), ka_(:)
|
|
|
@ -882,11 +821,11 @@ contains
|
|
|
|
|
|
|
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: ia(*),ja(*)
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
complex(psb_dpk_), intent(in) :: val(*)
|
|
|
|
complex(psb_dpk_), intent(in) :: val(:)
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(in), optional :: ng,gtl(*)
|
|
|
|
integer, intent(in), optional :: ng,gtl(:)
|
|
|
|
|
|
|
|
|
|
|
|
integer :: i,ir,ic, ilr, ilc, ip, &
|
|
|
|
integer :: i,ir,ic, ilr, ilc, ip, &
|
|
|
|
& i1,i2,nc,lb,ub,m,dupl
|
|
|
|
& i1,i2,nc,lb,ub,m,dupl
|
|
|
@ -924,50 +863,18 @@ contains
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
nc=i2-i1
|
|
|
|
nc=i2-i1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
call ibsrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
if (.true.) then
|
|
|
|
if (ip>0) then
|
|
|
|
call issrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
a%aspk(i1+ip-1) = val(i)
|
|
|
|
if (ip>0) then
|
|
|
|
|
|
|
|
a%aspk(i1+ip-1) = val(i)
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
|
|
|
|
info = i
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
!!$
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
ip = -1
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
lb = i1
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
ub = i2-1
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
do
|
|
|
|
info = i
|
|
|
|
if (lb > ub) exit
|
|
|
|
return
|
|
|
|
m = (lb+ub)/2
|
|
|
|
|
|
|
|
if (ic == a%ia1(m)) then
|
|
|
|
|
|
|
|
ip = m
|
|
|
|
|
|
|
|
lb = ub + 1
|
|
|
|
|
|
|
|
else if (ic < a%ia1(m)) then
|
|
|
|
|
|
|
|
ub = m-1
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
lb = m + 1
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ip>0) then
|
|
|
|
|
|
|
|
a%aspk(ip) = val(i)
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
|
|
|
|
info = i
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
@ -1035,48 +942,18 @@ contains
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
nc=i2-i1
|
|
|
|
nc=i2-i1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
call ibsrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
if (.true.) then
|
|
|
|
if (ip>0) then
|
|
|
|
call issrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
a%aspk(i1+ip-1) = val(i)
|
|
|
|
if (ip>0) then
|
|
|
|
|
|
|
|
a%aspk(i1+ip-1) = val(i)
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
|
|
|
|
info = i
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
ip = -1
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
lb = i1
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
ub = i2-1
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
do
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
if (lb > ub) exit
|
|
|
|
info = i
|
|
|
|
m = (lb+ub)/2
|
|
|
|
return
|
|
|
|
if (ic == a%ia1(m)) then
|
|
|
|
|
|
|
|
ip = m
|
|
|
|
|
|
|
|
lb = ub + 1
|
|
|
|
|
|
|
|
else if (ic < a%ia1(m)) then
|
|
|
|
|
|
|
|
ub = m-1
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
lb = m + 1
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
enddo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ip>0) then
|
|
|
|
|
|
|
|
a%aspk(ip) = val(i)
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
|
|
|
|
& ': Was searching ',ic,' in: ',i1,i2,&
|
|
|
|
|
|
|
|
& ' : ',a%ia1(i1:i2-1)
|
|
|
|
|
|
|
|
info = i
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
if (debug_level >= psb_debug_serial_) &
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
|
& write(debug_unit,*) trim(name),&
|
|
|
@ -1096,7 +973,7 @@ contains
|
|
|
|
i1 = a%ia2(ir)
|
|
|
|
i1 = a%ia2(ir)
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
i2 = a%ia2(ir+1)
|
|
|
|
nc = i2-i1
|
|
|
|
nc = i2-i1
|
|
|
|
call issrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
call ibsrch(ip,ic,nc,a%ia1(i1:i2-1))
|
|
|
|
if (ip>0) then
|
|
|
|
if (ip>0) then
|
|
|
|
a%aspk(i1+ip-1) = a%aspk(i1+ip-1) + val(i)
|
|
|
|
a%aspk(i1+ip-1) = a%aspk(i1+ip-1) + val(i)
|
|
|
|
else
|
|
|
|
else
|
|
|
@ -1132,11 +1009,11 @@ contains
|
|
|
|
|
|
|
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: ia(*),ja(*)
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
complex(psb_dpk_), intent(in) :: val(*)
|
|
|
|
complex(psb_dpk_), intent(in) :: val(:)
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(in), optional :: ng,gtl(*)
|
|
|
|
integer, intent(in), optional :: ng,gtl(:)
|
|
|
|
integer :: i,ir,ic, ilr, ilc, ip, &
|
|
|
|
integer :: i,ir,ic, ilr, ilc, ip, &
|
|
|
|
& i1,i2,nc,nnz,dupl
|
|
|
|
& i1,i2,nc,nnz,dupl
|
|
|
|
integer :: debug_level, debug_unit
|
|
|
|
integer :: debug_level, debug_unit
|
|
|
@ -1360,11 +1237,11 @@ contains
|
|
|
|
|
|
|
|
|
|
|
|
type(psb_zspmat_type), intent(inout), target :: a
|
|
|
|
type(psb_zspmat_type), intent(inout), target :: a
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl
|
|
|
|
integer, intent(in) :: ia(*),ja(*)
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
integer, intent(inout) :: nza
|
|
|
|
complex(psb_dpk_), intent(in) :: val(*)
|
|
|
|
complex(psb_dpk_), intent(in) :: val(:)
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(out) :: info
|
|
|
|
integer, intent(in), optional :: ng,gtl(*)
|
|
|
|
integer, intent(in), optional :: ng,gtl(:)
|
|
|
|
|
|
|
|
|
|
|
|
integer, pointer :: ia1(:), ia2(:), ia3(:),&
|
|
|
|
integer, pointer :: ia1(:), ia2(:), ia3(:),&
|
|
|
|
& ja_(:), ka_(:)
|
|
|
|
& ja_(:), ka_(:)
|
|
|
|