mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-20 12:52:14 +00:00
psblas3:
base/modules/psb_base_mat_mod.f90 base/modules/psb_c_base_mat_mod.f90 base/modules/psb_c_csc_mat_mod.f90 base/modules/psb_c_csr_mat_mod.f90 base/modules/psb_c_mat_mod.f90 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/modules/psb_d_mat_mod.f90 base/modules/psb_s_base_mat_mod.f90 base/modules/psb_s_csc_mat_mod.f90 base/modules/psb_s_csr_mat_mod.f90 base/modules/psb_s_mat_mod.f90 base/modules/psb_z_base_mat_mod.f90 base/modules/psb_z_csc_mat_mod.f90 base/modules/psb_z_csr_mat_mod.f90 base/modules/psb_z_mat_mod.f90 base/serial/impl/psb_c_base_mat_impl.f90 base/serial/impl/psb_c_coo_impl.f90 base/serial/impl/psb_c_csc_impl.f90 base/serial/impl/psb_c_csr_impl.f90 base/serial/impl/psb_c_mat_impl.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 base/serial/impl/psb_d_mat_impl.F90 base/serial/impl/psb_s_base_mat_impl.f90 base/serial/impl/psb_s_coo_impl.f90 base/serial/impl/psb_s_csc_impl.f90 base/serial/impl/psb_s_csr_impl.f90 base/serial/impl/psb_s_mat_impl.F90 base/serial/impl/psb_z_base_mat_impl.f90 base/serial/impl/psb_z_coo_impl.f90 base/serial/impl/psb_z_csc_impl.f90 base/serial/impl/psb_z_csr_impl.f90 base/serial/impl/psb_z_mat_impl.F90 doxypsb Added scale on right method. Added doxypsb.
This commit is contained in:
@@ -49,35 +49,61 @@ subroutine psb_c_coo_get_diag(a,d,info)
|
||||
end subroutine psb_c_coo_get_diag
|
||||
|
||||
|
||||
subroutine psb_c_coo_scal(d,a,info)
|
||||
subroutine psb_c_coo_scal(d,a,info,side)
|
||||
use psb_c_base_mat_mod, psb_protect_name => psb_c_coo_scal
|
||||
use psb_error_mod
|
||||
use psb_const_mod
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
class(psb_c_coo_sparse_mat), intent(inout) :: a
|
||||
complex(psb_spk_), intent(in) :: d(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
character, intent(in), optional :: side
|
||||
|
||||
integer(psb_ipk_) :: err_act,mnm, i, j, m
|
||||
integer(psb_ipk_) :: ierr(5)
|
||||
character(len=20) :: name='scal'
|
||||
character :: side_
|
||||
logical :: left
|
||||
logical, parameter :: debug=.false.
|
||||
|
||||
info = psb_success_
|
||||
call psb_erractionsave(err_act)
|
||||
|
||||
m = a%get_nrows()
|
||||
if (size(d) < m) then
|
||||
info=psb_err_input_asize_invalid_i_
|
||||
ierr(1) = 2; ierr(2) = size(d);
|
||||
call psb_errpush(info,name,i_err=ierr)
|
||||
goto 9999
|
||||
side_ = 'L'
|
||||
if (present(side)) then
|
||||
side_ = psb_toupper(side)
|
||||
end if
|
||||
|
||||
do i=1,a%get_nzeros()
|
||||
j = a%ia(i)
|
||||
a%val(i) = a%val(i) * d(j)
|
||||
enddo
|
||||
left = (side_ == 'L')
|
||||
|
||||
if (left) then
|
||||
m = a%get_nrows()
|
||||
if (size(d) < m) then
|
||||
info=psb_err_input_asize_invalid_i_
|
||||
ierr(1) = 2; ierr(2) = size(d);
|
||||
call psb_errpush(info,name,i_err=ierr)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
do i=1,a%get_nzeros()
|
||||
j = a%ia(i)
|
||||
a%val(i) = a%val(i) * d(j)
|
||||
enddo
|
||||
else
|
||||
m = a%get_ncols()
|
||||
if (size(d) < m) then
|
||||
info=psb_err_input_asize_invalid_i_
|
||||
ierr(1) = 2; ierr(2) = size(d);
|
||||
call psb_errpush(info,name,i_err=ierr)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
do i=1,a%get_nzeros()
|
||||
j = a%ja(i)
|
||||
a%val(i) = a%val(i) * d(j)
|
||||
enddo
|
||||
end if
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
return
|
||||
@@ -1215,7 +1241,6 @@ subroutine psb_c_coo_csmv(alpha,a,x,beta,y,info,trans)
|
||||
trans_ = 'N'
|
||||
end if
|
||||
|
||||
|
||||
tra = (psb_toupper(trans_) == 'T')
|
||||
ctra = (psb_toupper(trans_) == 'C')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user