@ -884,8 +884,8 @@ subroutine psb_c_csgetblk(imin,imax,a,b,info,&
use psb_c_mat_mod , psb_protect_name = > psb_c_csgetblk
use psb_c_mat_mod , psb_protect_name = > psb_c_csgetblk
implicit none
implicit none
class ( psb_cspmat_type ) , intent ( in ) :: a
class ( psb_cspmat_type ) , intent ( in ) :: a
class ( psb_cspmat_type ) , intent ( out) :: b
class ( psb_cspmat_type ) , intent ( in out) :: b
integer ( psb_ipk_ ) , intent ( in ) :: imin , imax
integer ( psb_ipk_ ) , intent ( in ) :: imin , imax
integer ( psb_ipk_ ) , intent ( out ) :: info
integer ( psb_ipk_ ) , intent ( out ) :: info
logical , intent ( in ) , optional :: append
logical , intent ( in ) , optional :: append
@ -896,6 +896,7 @@ subroutine psb_c_csgetblk(imin,imax,a,b,info,&
integer ( psb_ipk_ ) :: err_act
integer ( psb_ipk_ ) :: err_act
character ( len = 20 ) :: name = 'csget'
character ( len = 20 ) :: name = 'csget'
logical , parameter :: debug = . false .
logical , parameter :: debug = . false .
logical :: append_
type ( psb_c_coo_sparse_mat ) , allocatable :: acoo
type ( psb_c_coo_sparse_mat ) , allocatable :: acoo
@ -906,8 +907,17 @@ subroutine psb_c_csgetblk(imin,imax,a,b,info,&
call psb_errpush ( info , name )
call psb_errpush ( info , name )
go to 9999
go to 9999
endif
endif
if ( present ( append ) ) then
append_ = append
else
append_ = . false .
end if
allocate ( acoo , stat = info )
allocate ( acoo , stat = info )
if ( append_ . and . ( info == psb_success_ ) ) then
if ( allocated ( b % a ) ) &
& call b % a % mv_to_coo ( acoo , info )
end if
if ( info == psb_success_ ) then
if ( info == psb_success_ ) then
call a % a % csget ( imin , imax , acoo , info , &
call a % a % csget ( imin , imax , acoo , info , &