psblas3-matasb:

base/modules/psb_d_base_mat_mod.f90
 base/modules/psb_d_csc_mat_mod.f90
 base/modules/psb_d_csr_mat_mod.f90
 base/serial/impl/psb_d_base_mat_impl.F90
 base/serial/impl/psb_d_coo_impl.f90
 base/serial/impl/psb_d_csc_impl.f90
 base/serial/impl/psb_d_csr_impl.f90

Define csput to be a generic with two specifics, one of them with
encapsulated vectors so that it can be overloaded in the GPU.
psblas-3.3.1-1
Salvatore Filippone 11 years ago
parent 0f0c071146
commit 8b61ae96b3

@ -57,7 +57,9 @@ module psb_d_base_mat_mod
! !
! Data management methods: defined here, but (mostly) not implemented. ! Data management methods: defined here, but (mostly) not implemented.
! !
procedure, pass(a) :: csput => psb_d_base_csput procedure, pass(a) :: csput_a => psb_d_base_csput_a
procedure, pass(a) :: csput_v => psb_d_base_csput_v
generic, public :: csput => csput_a, csput_v
procedure, pass(a) :: csgetrow => psb_d_base_csgetrow procedure, pass(a) :: csgetrow => psb_d_base_csgetrow
procedure, pass(a) :: csgetblk => psb_d_base_csgetblk procedure, pass(a) :: csgetblk => psb_d_base_csgetblk
procedure, pass(a) :: get_diag => psb_d_base_get_diag procedure, pass(a) :: get_diag => psb_d_base_get_diag
@ -156,7 +158,7 @@ module psb_d_base_mat_mod
procedure, pass(a) :: mv_from_coo => psb_d_mv_coo_from_coo procedure, pass(a) :: mv_from_coo => psb_d_mv_coo_from_coo
procedure, pass(a) :: mv_to_fmt => psb_d_mv_coo_to_fmt procedure, pass(a) :: mv_to_fmt => psb_d_mv_coo_to_fmt
procedure, pass(a) :: mv_from_fmt => psb_d_mv_coo_from_fmt procedure, pass(a) :: mv_from_fmt => psb_d_mv_coo_from_fmt
procedure, pass(a) :: csput => psb_d_coo_csput procedure, pass(a) :: csput_a => psb_d_coo_csput_a
procedure, pass(a) :: get_diag => psb_d_coo_get_diag procedure, pass(a) :: get_diag => psb_d_coo_get_diag
procedure, pass(a) :: csgetrow => psb_d_coo_csgetrow procedure, pass(a) :: csgetrow => psb_d_coo_csgetrow
procedure, pass(a) :: csgetptn => psb_d_coo_csgetptn procedure, pass(a) :: csgetptn => psb_d_coo_csgetptn
@ -255,14 +257,27 @@ module psb_d_base_mat_mod
!! !!
! !
interface interface
subroutine psb_d_base_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl) subroutine psb_d_base_csput_a(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
import :: psb_ipk_, psb_d_base_sparse_mat, psb_dpk_ import :: psb_ipk_, psb_d_base_sparse_mat, psb_dpk_
class(psb_d_base_sparse_mat), intent(inout) :: a class(psb_d_base_sparse_mat), intent(inout) :: a
real(psb_dpk_), intent(in) :: val(:) real(psb_dpk_), intent(in) :: val(:)
integer(psb_ipk_), intent(in) :: nz, ia(:), ja(:), imin,imax,jmin,jmax integer(psb_ipk_), intent(in) :: nz, ia(:), ja(:), imin,imax,jmin,jmax
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: gtl(:) integer(psb_ipk_), intent(in), optional :: gtl(:)
end subroutine psb_d_base_csput end subroutine psb_d_base_csput_a
end interface
interface
subroutine psb_d_base_csput_v(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
import :: psb_ipk_, psb_d_base_sparse_mat, psb_dpk_, psb_d_base_vect_type,&
& psb_i_base_vect_type
class(psb_d_base_sparse_mat), intent(inout) :: a
class(psb_d_base_vect_type), intent(inout) :: val
class(psb_i_base_vect_type), intent(inout) :: ia, ja
integer(psb_ipk_), intent(in) :: nz, imin,imax,jmin,jmax
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: gtl(:)
end subroutine psb_d_base_csput_v
end interface end interface
! !
@ -1469,7 +1484,7 @@ module psb_d_base_mat_mod
!! !!
! !
interface interface
subroutine psb_d_coo_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl) subroutine psb_d_coo_csput_a(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
import :: psb_ipk_, psb_d_coo_sparse_mat, psb_dpk_ import :: psb_ipk_, psb_d_coo_sparse_mat, psb_dpk_
class(psb_d_coo_sparse_mat), intent(inout) :: a class(psb_d_coo_sparse_mat), intent(inout) :: a
real(psb_dpk_), intent(in) :: val(:) real(psb_dpk_), intent(in) :: val(:)
@ -1477,7 +1492,7 @@ module psb_d_base_mat_mod
& imin,imax,jmin,jmax & imin,imax,jmin,jmax
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: gtl(:) integer(psb_ipk_), intent(in), optional :: gtl(:)
end subroutine psb_d_coo_csput end subroutine psb_d_coo_csput_a
end interface end interface
!> !>

@ -88,7 +88,7 @@ module psb_d_csc_mat_mod
procedure, pass(a) :: mv_from_coo => psb_d_mv_csc_from_coo procedure, pass(a) :: mv_from_coo => psb_d_mv_csc_from_coo
procedure, pass(a) :: mv_to_fmt => psb_d_mv_csc_to_fmt procedure, pass(a) :: mv_to_fmt => psb_d_mv_csc_to_fmt
procedure, pass(a) :: mv_from_fmt => psb_d_mv_csc_from_fmt procedure, pass(a) :: mv_from_fmt => psb_d_mv_csc_from_fmt
procedure, pass(a) :: csput => psb_d_csc_csput procedure, pass(a) :: csput_a => psb_d_csc_csput_a
procedure, pass(a) :: get_diag => psb_d_csc_get_diag procedure, pass(a) :: get_diag => psb_d_csc_get_diag
procedure, pass(a) :: csgetptn => psb_d_csc_csgetptn procedure, pass(a) :: csgetptn => psb_d_csc_csgetptn
procedure, pass(a) :: csgetrow => psb_d_csc_csgetrow procedure, pass(a) :: csgetrow => psb_d_csc_csgetrow
@ -279,9 +279,9 @@ module psb_d_csc_mat_mod
!> \memberof psb_d_csc_sparse_mat !> \memberof psb_d_csc_sparse_mat
!! \see psb_d_base_mat_mod::psb_d_base_csput !! \see psb_d_base_mat_mod::psb_d_base_csput_a
interface interface
subroutine psb_d_csc_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl) subroutine psb_d_csc_csput_a(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
import :: psb_ipk_, psb_d_csc_sparse_mat, psb_dpk_ import :: psb_ipk_, psb_d_csc_sparse_mat, psb_dpk_
class(psb_d_csc_sparse_mat), intent(inout) :: a class(psb_d_csc_sparse_mat), intent(inout) :: a
real(psb_dpk_), intent(in) :: val(:) real(psb_dpk_), intent(in) :: val(:)
@ -289,7 +289,7 @@ module psb_d_csc_mat_mod
& imin,imax,jmin,jmax & imin,imax,jmin,jmax
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: gtl(:) integer(psb_ipk_), intent(in), optional :: gtl(:)
end subroutine psb_d_csc_csput end subroutine psb_d_csc_csput_a
end interface end interface
!> \memberof psb_d_csc_sparse_mat !> \memberof psb_d_csc_sparse_mat

@ -89,7 +89,7 @@ module psb_d_csr_mat_mod
procedure, pass(a) :: mv_from_coo => psb_d_mv_csr_from_coo procedure, pass(a) :: mv_from_coo => psb_d_mv_csr_from_coo
procedure, pass(a) :: mv_to_fmt => psb_d_mv_csr_to_fmt procedure, pass(a) :: mv_to_fmt => psb_d_mv_csr_to_fmt
procedure, pass(a) :: mv_from_fmt => psb_d_mv_csr_from_fmt procedure, pass(a) :: mv_from_fmt => psb_d_mv_csr_from_fmt
procedure, pass(a) :: csput => psb_d_csr_csput procedure, pass(a) :: csput_a => psb_d_csr_csput_a
procedure, pass(a) :: get_diag => psb_d_csr_get_diag procedure, pass(a) :: get_diag => psb_d_csr_get_diag
procedure, pass(a) :: csgetptn => psb_d_csr_csgetptn procedure, pass(a) :: csgetptn => psb_d_csr_csgetptn
procedure, pass(a) :: csgetrow => psb_d_csr_csgetrow procedure, pass(a) :: csgetrow => psb_d_csr_csgetrow
@ -282,9 +282,9 @@ module psb_d_csr_mat_mod
!> \memberof psb_d_csr_sparse_mat !> \memberof psb_d_csr_sparse_mat
!! \see psb_d_base_mat_mod::psb_d_base_csput !! \see psb_d_base_mat_mod::psb_d_base_csput_a
interface interface
subroutine psb_d_csr_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl) subroutine psb_d_csr_csput_a(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
import :: psb_ipk_, psb_d_csr_sparse_mat, psb_dpk_ import :: psb_ipk_, psb_d_csr_sparse_mat, psb_dpk_
class(psb_d_csr_sparse_mat), intent(inout) :: a class(psb_d_csr_sparse_mat), intent(inout) :: a
real(psb_dpk_), intent(in) :: val(:) real(psb_dpk_), intent(in) :: val(:)
@ -292,7 +292,7 @@ module psb_d_csr_mat_mod
& imin,imax,jmin,jmax & imin,imax,jmin,jmax
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: gtl(:) integer(psb_ipk_), intent(in), optional :: gtl(:)
end subroutine psb_d_csr_csput end subroutine psb_d_csr_csput_a
end interface end interface
!> \memberof psb_d_csr_sparse_mat !> \memberof psb_d_csr_sparse_mat

@ -327,9 +327,9 @@ subroutine psb_d_base_mv_from_fmt(a,b,info)
end subroutine psb_d_base_mv_from_fmt end subroutine psb_d_base_mv_from_fmt
subroutine psb_d_base_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl) subroutine psb_d_base_csput_a(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
use psb_error_mod use psb_error_mod
use psb_d_base_mat_mod, psb_protect_name => psb_d_base_csput use psb_d_base_mat_mod, psb_protect_name => psb_d_base_csput_a
implicit none implicit none
class(psb_d_base_sparse_mat), intent(inout) :: a class(psb_d_base_sparse_mat), intent(inout) :: a
real(psb_dpk_), intent(in) :: val(:) real(psb_dpk_), intent(in) :: val(:)
@ -354,7 +354,56 @@ subroutine psb_d_base_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
end if end if
return return
end subroutine psb_d_base_csput end subroutine psb_d_base_csput_a
subroutine psb_d_base_csput_v(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
use psb_error_mod
use psb_d_base_mat_mod, psb_protect_name => psb_d_base_csput_v
use psb_d_base_vect_mod
implicit none
class(psb_d_base_sparse_mat), intent(inout) :: a
class(psb_d_base_vect_type), intent(inout) :: val
class(psb_i_base_vect_type), intent(inout) :: ia, ja
integer(psb_ipk_), intent(in) :: nz, imin,imax,jmin,jmax
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: gtl(:)
integer(psb_ipk_) :: err_act, nzin, nzout
integer(psb_ipk_) :: ierr(5)
character(len=20) :: name='csput_v'
integer :: jmin_, jmax_
logical :: append_, rscale_, cscale_
logical, parameter :: debug=.false.
call psb_erractionsave(err_act)
info = psb_success_
if (allocated(val%v).and.allocated(ia%v).and.allocated(ja%v)) then
call a%csput(nz,ia%v,ja%v,val%v,imin,imax,jmin,jmax,info,gtl)
else
info = psb_err_invalid_mat_state_
endif
if (info /= 0) then
call psb_errpush(info,name)
goto 9999
end if
call psb_erractionrestore(err_act)
return
9999 continue
call psb_erractionrestore(err_act)
if (err_act == psb_act_abort_) then
call psb_error()
return
end if
return
end subroutine psb_d_base_csput_v
subroutine psb_d_base_csgetrow(imin,imax,a,nz,ia,ja,val,info,& subroutine psb_d_base_csgetrow(imin,imax,a,nz,ia,ja,val,info,&
& jmin,jmax,iren,append,nzin,rscale,cscale) & jmin,jmax,iren,append,nzin,rscale,cscale)
@ -456,7 +505,7 @@ subroutine psb_d_base_csgetblk(imin,imax,a,b,info,&
else else
jmax_ = a%get_ncols() jmax_ = a%get_ncols()
endif endif
if (append_.and.(rscale_.or.cscale_)) then if (append_.and.(rscale_.or.cscale_)) then
write(psb_err_unit,*) & write(psb_err_unit,*) &
& 'd_csgetblk: WARNING: dubious input: append_ and rscale_|cscale_' & 'd_csgetblk: WARNING: dubious input: append_ and rscale_|cscale_'
@ -682,7 +731,7 @@ subroutine psb_d_base_tril(a,b,info,&
& b%ia(1:nzout) = b%ia(1:nzout) - imin_ + 1 & b%ia(1:nzout) = b%ia(1:nzout) - imin_ + 1
if (cscale_) & if (cscale_) &
& b%ja(1:nzout) = b%ja(1:nzout) - jmin_ + 1 & b%ja(1:nzout) = b%ja(1:nzout) - jmin_ + 1
if ((diag_ <= 0).and.(imin_ == jmin_)) then if ((diag_ <= 0).and.(imin_ == jmin_)) then
call b%set_triangle(.true.) call b%set_triangle(.true.)
call b%set_lower(.true.) call b%set_lower(.true.)
@ -792,7 +841,7 @@ subroutine psb_d_base_triu(a,b,info,&
& b%ia(1:nzout) = b%ia(1:nzout) - imin_ + 1 & b%ia(1:nzout) = b%ia(1:nzout) - imin_ + 1
if (cscale_) & if (cscale_) &
& b%ja(1:nzout) = b%ja(1:nzout) - jmin_ + 1 & b%ja(1:nzout) = b%ja(1:nzout) - jmin_ + 1
if ((diag_ >= 0).and.(imin_ == jmin_)) then if ((diag_ >= 0).and.(imin_ == jmin_)) then
call b%set_triangle(.true.) call b%set_triangle(.true.)
call b%set_upper(.true.) call b%set_upper(.true.)
@ -820,7 +869,7 @@ subroutine psb_d_base_clone(a,b,info)
use psb_d_base_mat_mod, psb_protect_name => psb_d_base_clone use psb_d_base_mat_mod, psb_protect_name => psb_d_base_clone
use psb_error_mod use psb_error_mod
implicit none implicit none
class(psb_d_base_sparse_mat), intent(inout) :: a class(psb_d_base_sparse_mat), intent(inout) :: a
class(psb_d_base_sparse_mat), allocatable, intent(inout) :: b class(psb_d_base_sparse_mat), allocatable, intent(inout) :: b
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
@ -843,7 +892,7 @@ subroutine psb_d_base_clone(a,b,info)
call a%mold(b,info) call a%mold(b,info)
#endif #endif
if (info == psb_success_) call b%cp_from_fmt(a, info) if (info == psb_success_) call b%cp_from_fmt(a, info)
end subroutine psb_d_base_clone end subroutine psb_d_base_clone
subroutine psb_d_base_make_nonunit(a) subroutine psb_d_base_make_nonunit(a)
@ -852,7 +901,7 @@ subroutine psb_d_base_make_nonunit(a)
implicit none implicit none
class(psb_d_base_sparse_mat), intent(inout) :: a class(psb_d_base_sparse_mat), intent(inout) :: a
type(psb_d_coo_sparse_mat) :: tmp type(psb_d_coo_sparse_mat) :: tmp
integer(psb_ipk_) :: i, j, m, n, nz, mnm, info integer(psb_ipk_) :: i, j, m, n, nz, mnm, info
if (a%is_unit()) then if (a%is_unit()) then
@ -920,11 +969,11 @@ subroutine psb_d_base_transp_2mat(a,b)
info = psb_success_ info = psb_success_
select type(b) select type(b)
class is (psb_d_base_sparse_mat) class is (psb_d_base_sparse_mat)
call a%cp_to_coo(tmp,info) call a%cp_to_coo(tmp,info)
if (info == psb_success_) call tmp%transp() if (info == psb_success_) call tmp%transp()
if (info == psb_success_) call b%mv_from_coo(tmp,info) if (info == psb_success_) call b%mv_from_coo(tmp,info)
class default class default
info = psb_err_invalid_dynamic_type_ info = psb_err_invalid_dynamic_type_
end select end select
if (info /= psb_success_) then if (info /= psb_success_) then
@ -960,11 +1009,11 @@ subroutine psb_d_base_transc_2mat(a,b)
info = psb_success_ info = psb_success_
select type(b) select type(b)
class is (psb_d_base_sparse_mat) class is (psb_d_base_sparse_mat)
call a%cp_to_coo(tmp,info) call a%cp_to_coo(tmp,info)
if (info == psb_success_) call tmp%transc() if (info == psb_success_) call tmp%transc()
if (info == psb_success_) call b%mv_from_coo(tmp,info) if (info == psb_success_) call b%mv_from_coo(tmp,info)
class default class default
info = psb_err_invalid_dynamic_type_ info = psb_err_invalid_dynamic_type_
end select end select
if (info /= psb_success_) then if (info /= psb_success_) then
@ -1271,7 +1320,7 @@ subroutine psb_d_base_cssm(alpha,a,x,beta,y,info,trans,scale,d)
if (size(d,1) < nar) then if (size(d,1) < nar) then
info = psb_err_input_asize_small_i_ info = psb_err_input_asize_small_i_
ierr(1) = 9; ierr(2) = nar; ierr(1) = 9; ierr(2) = nar;
call psb_errpush(info,name,i_err=ierr) call psb_errpush(info,name,i_err=ierr)
goto 9999 goto 9999
end if end if
@ -1407,7 +1456,7 @@ subroutine psb_d_base_cssv(alpha,a,x,beta,y,info,trans,scale,d)
else if (psb_toupper(scale_) == 'L') then else if (psb_toupper(scale_) == 'L') then
if (size(d,1) < nar) then if (size(d,1) < nar) then
info = psb_err_input_asize_small_i_ info = psb_err_input_asize_small_i_
ierr(1) = 9; ierr(2) = nar; ierr(1) = 9; ierr(2) = nar;
call psb_errpush(info,name,i_err=ierr) call psb_errpush(info,name,i_err=ierr)
goto 9999 goto 9999
end if end if

@ -2573,11 +2573,11 @@ contains
end subroutine psb_d_coo_csgetrow end subroutine psb_d_coo_csgetrow
subroutine psb_d_coo_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl) subroutine psb_d_coo_csput_a(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
use psb_error_mod use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_sort_mod use psb_sort_mod
use psb_d_base_mat_mod, psb_protect_name => psb_d_coo_csput use psb_d_base_mat_mod, psb_protect_name => psb_d_coo_csput_a
implicit none implicit none
class(psb_d_coo_sparse_mat), intent(inout) :: a class(psb_d_coo_sparse_mat), intent(inout) :: a
@ -2589,7 +2589,7 @@ subroutine psb_d_coo_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
integer(psb_ipk_) :: err_act integer(psb_ipk_) :: err_act
integer(psb_ipk_) :: ierr(5) integer(psb_ipk_) :: ierr(5)
character(len=20) :: name='d_coo_csput_impl' character(len=20) :: name='d_coo_csput_a_impl'
logical, parameter :: debug=.false. logical, parameter :: debug=.false.
integer(psb_ipk_) :: nza, i,j,k, nzl, isza, debug_level, debug_unit integer(psb_ipk_) :: nza, i,j,k, nzl, isza, debug_level, debug_unit
@ -2953,7 +2953,7 @@ contains
end subroutine d_coo_srch_upd end subroutine d_coo_srch_upd
end subroutine psb_d_coo_csput end subroutine psb_d_coo_csput_a
subroutine psb_d_cp_coo_to_coo(a,b,info) subroutine psb_d_cp_coo_to_coo(a,b,info)

@ -1965,10 +1965,10 @@ end subroutine psb_d_csc_csgetrow
subroutine psb_d_csc_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl) subroutine psb_d_csc_csput_a(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
use psb_error_mod use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_d_csc_mat_mod, psb_protect_name => psb_d_csc_csput use psb_d_csc_mat_mod, psb_protect_name => psb_d_csc_csput_a
implicit none implicit none
class(psb_d_csc_sparse_mat), intent(inout) :: a class(psb_d_csc_sparse_mat), intent(inout) :: a
@ -1980,7 +1980,7 @@ subroutine psb_d_csc_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
integer(psb_ipk_) :: err_act integer(psb_ipk_) :: err_act
integer(psb_ipk_) :: ierr(5) integer(psb_ipk_) :: ierr(5)
character(len=20) :: name='d_csc_csput' character(len=20) :: name='d_csc_csput_a'
logical, parameter :: debug=.false. logical, parameter :: debug=.false.
integer(psb_ipk_) :: nza, i,j,k, nzl, isza, debug_level, debug_unit integer(psb_ipk_) :: nza, i,j,k, nzl, isza, debug_level, debug_unit
@ -2232,7 +2232,7 @@ contains
end subroutine psb_d_csc_srch_upd end subroutine psb_d_csc_srch_upd
end subroutine psb_d_csc_csput end subroutine psb_d_csc_csput_a

@ -2338,10 +2338,10 @@ end subroutine psb_d_csr_csgetblk
subroutine psb_d_csr_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl) subroutine psb_d_csr_csput_a(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
use psb_error_mod use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_d_csr_mat_mod, psb_protect_name => psb_d_csr_csput use psb_d_csr_mat_mod, psb_protect_name => psb_d_csr_csput_a
implicit none implicit none
class(psb_d_csr_sparse_mat), intent(inout) :: a class(psb_d_csr_sparse_mat), intent(inout) :: a
@ -2353,7 +2353,7 @@ subroutine psb_d_csr_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
integer(psb_ipk_) :: err_act integer(psb_ipk_) :: err_act
integer(psb_ipk_) :: ierr(5) integer(psb_ipk_) :: ierr(5)
character(len=20) :: name='d_csr_csput' character(len=20) :: name='d_csr_csput_a'
logical, parameter :: debug=.false. logical, parameter :: debug=.false.
integer(psb_ipk_) :: nza, i,j,k, nzl, isza, debug_level, debug_unit integer(psb_ipk_) :: nza, i,j,k, nzl, isza, debug_level, debug_unit
@ -2604,7 +2604,7 @@ contains
end subroutine psb_d_csr_srch_upd end subroutine psb_d_csr_srch_upd
end subroutine psb_d_csr_csput end subroutine psb_d_csr_csput_a
subroutine psb_d_csr_reinit(a,clear) subroutine psb_d_csr_reinit(a,clear)

Loading…
Cancel
Save