mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-20 04:42:08 +00:00
psblas3:
base/modules/psb_c_base_mat_mod.f03 base/modules/psb_c_mat_mod.f03 base/modules/psb_d_base_mat_mod.f03 base/modules/psb_d_mat_mod.f03 base/modules/psb_psblas_mod.f90 base/modules/psb_s_base_mat_mod.f03 base/modules/psb_s_mat_mod.f03 base/modules/psb_z_base_mat_mod.f03 base/modules/psb_z_mat_mod.f03 base/psblas/psb_cspsm.f90 base/psblas/psb_dspsm.f90 base/psblas/psb_sspsm.f90 base/psblas/psb_zspsm.f90 base/serial/dp/dvtfg.f krylov/psb_krylov_mod.f90 prec/psb_cbjac_aply.f90 prec/psb_dbjac_aply.f90 prec/psb_sbjac_aply.f90 prec/psb_zbjac_aply.f90 Changed "SIDE" to "SCALE" in SM. Maybe we need to add back a PERM (Left, Right) argument somewhere???
This commit is contained in:
@@ -902,7 +902,7 @@ contains
|
||||
|
||||
end subroutine c_base_cssv
|
||||
|
||||
subroutine c_cssm(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine c_cssm(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
@@ -910,12 +910,12 @@ contains
|
||||
complex(psb_spk_), intent(in) :: alpha, beta, x(:,:)
|
||||
complex(psb_spk_), intent(inout) :: y(:,:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
complex(psb_spk_), intent(in), optional :: d(:)
|
||||
|
||||
complex(psb_spk_), allocatable :: tmp(:,:)
|
||||
Integer :: err_act, nar,nac,nc, i
|
||||
character(len=1) :: side_
|
||||
character(len=1) :: scale_
|
||||
character(len=20) :: name='c_cssm'
|
||||
logical, parameter :: debug=.false.
|
||||
|
||||
@@ -948,13 +948,13 @@ contains
|
||||
end if
|
||||
|
||||
if (present(d)) then
|
||||
if (present(side)) then
|
||||
side_ = side
|
||||
if (present(scale)) then
|
||||
scale_ = scale
|
||||
else
|
||||
side_ = 'L'
|
||||
scale_ = 'L'
|
||||
end if
|
||||
|
||||
if (psb_toupper(side_) == 'R') then
|
||||
if (psb_toupper(scale_) == 'R') then
|
||||
if (size(d,1) < nac) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nac,0,0,0/))
|
||||
@@ -976,7 +976,7 @@ contains
|
||||
if (info /= 0) info = 4000
|
||||
end if
|
||||
|
||||
else if (psb_toupper(side_) == 'L') then
|
||||
else if (psb_toupper(scale_) == 'L') then
|
||||
|
||||
if (size(d,1) < nar) then
|
||||
info = 36
|
||||
@@ -1004,11 +1004,11 @@ contains
|
||||
|
||||
else
|
||||
info = 31
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=side_)
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=scale_)
|
||||
goto 9999
|
||||
end if
|
||||
else
|
||||
! Side is ignored in this case
|
||||
! Scale is ignored in this case
|
||||
call a%base_cssm(alpha,x,beta,y,info,trans)
|
||||
end if
|
||||
|
||||
@@ -1036,7 +1036,7 @@ contains
|
||||
|
||||
end subroutine c_cssm
|
||||
|
||||
subroutine c_cssv(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine c_cssv(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
@@ -1044,12 +1044,12 @@ contains
|
||||
complex(psb_spk_), intent(in) :: alpha, beta, x(:)
|
||||
complex(psb_spk_), intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
complex(psb_spk_), intent(in), optional :: d(:)
|
||||
|
||||
complex(psb_spk_), allocatable :: tmp(:)
|
||||
Integer :: err_act, nar,nac,nc, i
|
||||
character(len=1) :: side_
|
||||
character(len=1) :: scale_
|
||||
character(len=20) :: name='c_cssm'
|
||||
logical, parameter :: debug=.false.
|
||||
|
||||
@@ -1082,13 +1082,13 @@ contains
|
||||
end if
|
||||
|
||||
if (present(d)) then
|
||||
if (present(side)) then
|
||||
side_ = side
|
||||
if (present(scale)) then
|
||||
scale_ = scale
|
||||
else
|
||||
side_ = 'L'
|
||||
scale_ = 'L'
|
||||
end if
|
||||
|
||||
if (psb_toupper(side_) == 'R') then
|
||||
if (psb_toupper(scale_) == 'R') then
|
||||
if (size(d,1) < nac) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nac,0,0,0/))
|
||||
@@ -1106,7 +1106,7 @@ contains
|
||||
if (info /= 0) info = 4000
|
||||
end if
|
||||
|
||||
else if (psb_toupper(side_) == 'L') then
|
||||
else if (psb_toupper(scale_) == 'L') then
|
||||
if (size(d,1) < nar) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nar,0,0,0/))
|
||||
@@ -1129,11 +1129,11 @@ contains
|
||||
|
||||
else
|
||||
info = 31
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=side_)
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=scale_)
|
||||
goto 9999
|
||||
end if
|
||||
else
|
||||
! Side is ignored in this case
|
||||
! Scale is ignored in this case
|
||||
call a%base_cssm(alpha,x,beta,y,info,trans)
|
||||
end if
|
||||
|
||||
|
||||
@@ -1699,14 +1699,14 @@ contains
|
||||
|
||||
end subroutine c_csmv
|
||||
|
||||
subroutine c_cssm(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine c_cssm(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
class(psb_c_sparse_mat), intent(in) :: a
|
||||
complex(psb_spk_), intent(in) :: alpha, beta, x(:,:)
|
||||
complex(psb_spk_), intent(inout) :: y(:,:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
complex(psb_spk_), intent(in), optional :: d(:)
|
||||
Integer :: err_act
|
||||
character(len=20) :: name='psb_cssm'
|
||||
@@ -1720,7 +1720,7 @@ contains
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,side,d)
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,scale,d)
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
@@ -1737,14 +1737,14 @@ contains
|
||||
|
||||
end subroutine c_cssm
|
||||
|
||||
subroutine c_cssv(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine c_cssv(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
class(psb_c_sparse_mat), intent(in) :: a
|
||||
complex(psb_spk_), intent(in) :: alpha, beta, x(:)
|
||||
complex(psb_spk_), intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
complex(psb_spk_), intent(in), optional :: d(:)
|
||||
Integer :: err_act
|
||||
character(len=20) :: name='psb_cssv'
|
||||
@@ -1758,7 +1758,7 @@ contains
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,side,d)
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,scale,d)
|
||||
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
|
||||
@@ -902,7 +902,7 @@ contains
|
||||
|
||||
end subroutine d_base_cssv
|
||||
|
||||
subroutine d_cssm(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine d_cssm(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
@@ -910,12 +910,12 @@ contains
|
||||
real(psb_dpk_), intent(in) :: alpha, beta, x(:,:)
|
||||
real(psb_dpk_), intent(inout) :: y(:,:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
real(psb_dpk_), intent(in), optional :: d(:)
|
||||
|
||||
real(psb_dpk_), allocatable :: tmp(:,:)
|
||||
Integer :: err_act, nar,nac,nc, i
|
||||
character(len=1) :: side_
|
||||
character(len=1) :: scale_
|
||||
character(len=20) :: name='d_cssm'
|
||||
logical, parameter :: debug=.false.
|
||||
|
||||
@@ -948,13 +948,13 @@ contains
|
||||
end if
|
||||
|
||||
if (present(d)) then
|
||||
if (present(side)) then
|
||||
side_ = side
|
||||
if (present(scale)) then
|
||||
scale_ = scale
|
||||
else
|
||||
side_ = 'L'
|
||||
scale_ = 'L'
|
||||
end if
|
||||
|
||||
if (psb_toupper(side_) == 'R') then
|
||||
if (psb_toupper(scale_) == 'R') then
|
||||
if (size(d,1) < nac) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nac,0,0,0/))
|
||||
@@ -976,7 +976,7 @@ contains
|
||||
if (info /= 0) info = 4000
|
||||
end if
|
||||
|
||||
else if (psb_toupper(side_) == 'L') then
|
||||
else if (psb_toupper(scale_) == 'L') then
|
||||
|
||||
if (size(d,1) < nar) then
|
||||
info = 36
|
||||
@@ -1004,11 +1004,11 @@ contains
|
||||
|
||||
else
|
||||
info = 31
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=side_)
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=scale_)
|
||||
goto 9999
|
||||
end if
|
||||
else
|
||||
! Side is ignored in this case
|
||||
! Scale is ignored in this case
|
||||
call a%base_cssm(alpha,x,beta,y,info,trans)
|
||||
end if
|
||||
|
||||
@@ -1036,7 +1036,7 @@ contains
|
||||
|
||||
end subroutine d_cssm
|
||||
|
||||
subroutine d_cssv(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine d_cssv(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
@@ -1044,12 +1044,12 @@ contains
|
||||
real(psb_dpk_), intent(in) :: alpha, beta, x(:)
|
||||
real(psb_dpk_), intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
real(psb_dpk_), intent(in), optional :: d(:)
|
||||
|
||||
real(psb_dpk_), allocatable :: tmp(:)
|
||||
Integer :: err_act, nar,nac,nc, i
|
||||
character(len=1) :: side_
|
||||
character(len=1) :: scale_
|
||||
character(len=20) :: name='d_cssm'
|
||||
logical, parameter :: debug=.false.
|
||||
|
||||
@@ -1082,13 +1082,13 @@ contains
|
||||
end if
|
||||
|
||||
if (present(d)) then
|
||||
if (present(side)) then
|
||||
side_ = side
|
||||
if (present(scale)) then
|
||||
scale_ = scale
|
||||
else
|
||||
side_ = 'L'
|
||||
scale_ = 'L'
|
||||
end if
|
||||
|
||||
if (psb_toupper(side_) == 'R') then
|
||||
if (psb_toupper(scale_) == 'R') then
|
||||
if (size(d,1) < nac) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nac,0,0,0/))
|
||||
@@ -1106,7 +1106,7 @@ contains
|
||||
if (info /= 0) info = 4000
|
||||
end if
|
||||
|
||||
else if (psb_toupper(side_) == 'L') then
|
||||
else if (psb_toupper(scale_) == 'L') then
|
||||
if (size(d,1) < nar) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nar,0,0,0/))
|
||||
@@ -1129,11 +1129,11 @@ contains
|
||||
|
||||
else
|
||||
info = 31
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=side_)
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=scale_)
|
||||
goto 9999
|
||||
end if
|
||||
else
|
||||
! Side is ignored in this case
|
||||
! Scale is ignored in this case
|
||||
call a%base_cssm(alpha,x,beta,y,info,trans)
|
||||
end if
|
||||
|
||||
|
||||
@@ -1699,14 +1699,14 @@ contains
|
||||
|
||||
end subroutine d_csmv
|
||||
|
||||
subroutine d_cssm(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine d_cssm(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
class(psb_d_sparse_mat), intent(in) :: a
|
||||
real(psb_dpk_), intent(in) :: alpha, beta, x(:,:)
|
||||
real(psb_dpk_), intent(inout) :: y(:,:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
real(psb_dpk_), intent(in), optional :: d(:)
|
||||
Integer :: err_act
|
||||
character(len=20) :: name='psb_cssm'
|
||||
@@ -1720,7 +1720,7 @@ contains
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,side,d)
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,scale,d)
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
@@ -1737,14 +1737,14 @@ contains
|
||||
|
||||
end subroutine d_cssm
|
||||
|
||||
subroutine d_cssv(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine d_cssv(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
class(psb_d_sparse_mat), intent(in) :: a
|
||||
real(psb_dpk_), intent(in) :: alpha, beta, x(:)
|
||||
real(psb_dpk_), intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
real(psb_dpk_), intent(in), optional :: d(:)
|
||||
Integer :: err_act
|
||||
character(len=20) :: name='psb_cssv'
|
||||
@@ -1758,7 +1758,7 @@ contains
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,side,d)
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,scale,d)
|
||||
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
|
||||
@@ -745,7 +745,7 @@ module psb_psblas_mod
|
||||
|
||||
interface psb_spsm
|
||||
subroutine psb_sspsm(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, side, choice,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, n, jx, jy, work)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
@@ -755,14 +755,14 @@ module psb_psblas_mod
|
||||
real(psb_spk_), intent(inout) :: y(:,:)
|
||||
real(psb_spk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer, optional, intent(in) :: n, jx, jy
|
||||
integer, optional, intent(in) :: choice
|
||||
real(psb_spk_), optional, intent(in),target :: work(:), diag(:)
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_sspsm
|
||||
subroutine psb_sspsv(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, side, choice,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, work)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
@@ -772,13 +772,13 @@ module psb_psblas_mod
|
||||
real(psb_spk_), intent(inout) :: y(:)
|
||||
real(psb_spk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer, optional, intent(in) :: choice
|
||||
real(psb_spk_), optional, intent(in),target :: work(:), diag(:)
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_sspsv
|
||||
subroutine psb_dspsm(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, side, choice,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, n, jx, jy, work)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
@@ -788,14 +788,14 @@ module psb_psblas_mod
|
||||
real(psb_dpk_), intent(inout) :: y(:,:)
|
||||
real(psb_dpk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer, optional, intent(in) :: n, jx, jy
|
||||
integer, optional, intent(in) :: choice
|
||||
real(psb_dpk_), optional, intent(in),target :: work(:), diag(:)
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_dspsm
|
||||
subroutine psb_dspsv(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, side, choice,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, work)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
@@ -805,13 +805,13 @@ module psb_psblas_mod
|
||||
real(psb_dpk_), intent(inout) :: y(:)
|
||||
real(psb_dpk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer, optional, intent(in) :: choice
|
||||
real(psb_dpk_), optional, intent(in),target :: work(:), diag(:)
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_dspsv
|
||||
subroutine psb_cspsm(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, side, choice,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, n, jx, jy, work)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
@@ -821,14 +821,14 @@ module psb_psblas_mod
|
||||
complex(psb_spk_), intent(inout) :: y(:,:)
|
||||
complex(psb_spk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer, optional, intent(in) :: n, jx, jy
|
||||
integer, optional, intent(in) :: choice
|
||||
complex(psb_spk_), optional, intent(in),target :: work(:), diag(:)
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_cspsm
|
||||
subroutine psb_cspsv(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, side, choice,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, work)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
@@ -838,13 +838,13 @@ module psb_psblas_mod
|
||||
complex(psb_spk_), intent(inout) :: y(:)
|
||||
complex(psb_spk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer, optional, intent(in) :: choice
|
||||
complex(psb_spk_), optional, intent(in),target :: work(:), diag(:)
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_cspsv
|
||||
subroutine psb_zspsm(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, side, choice,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, n, jx, jy, work)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
@@ -854,14 +854,14 @@ module psb_psblas_mod
|
||||
complex(psb_dpk_), intent(inout) :: y(:,:)
|
||||
complex(psb_dpk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer, optional, intent(in) :: n, jx, jy
|
||||
integer, optional, intent(in) :: choice
|
||||
complex(psb_dpk_), optional, intent(in),target :: work(:), diag(:)
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_zspsm
|
||||
subroutine psb_zspsv(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, side, choice,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, work)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
@@ -871,7 +871,7 @@ module psb_psblas_mod
|
||||
complex(psb_dpk_), intent(inout) :: y(:)
|
||||
complex(psb_dpk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer, optional, intent(in) :: choice
|
||||
complex(psb_dpk_), optional, intent(in),target :: work(:), diag(:)
|
||||
integer, intent(out) :: info
|
||||
|
||||
@@ -902,7 +902,7 @@ contains
|
||||
|
||||
end subroutine s_base_cssv
|
||||
|
||||
subroutine s_cssm(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine s_cssm(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
@@ -910,12 +910,12 @@ contains
|
||||
real(psb_spk_), intent(in) :: alpha, beta, x(:,:)
|
||||
real(psb_spk_), intent(inout) :: y(:,:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
real(psb_spk_), intent(in), optional :: d(:)
|
||||
|
||||
real(psb_spk_), allocatable :: tmp(:,:)
|
||||
Integer :: err_act, nar,nac,nc, i
|
||||
character(len=1) :: side_
|
||||
character(len=1) :: scale_
|
||||
character(len=20) :: name='s_cssm'
|
||||
logical, parameter :: debug=.false.
|
||||
|
||||
@@ -948,13 +948,13 @@ contains
|
||||
end if
|
||||
|
||||
if (present(d)) then
|
||||
if (present(side)) then
|
||||
side_ = side
|
||||
if (present(scale)) then
|
||||
scale_ = scale
|
||||
else
|
||||
side_ = 'L'
|
||||
scale_ = 'L'
|
||||
end if
|
||||
|
||||
if (psb_toupper(side_) == 'R') then
|
||||
if (psb_toupper(scale_) == 'R') then
|
||||
if (size(d,1) < nac) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nac,0,0,0/))
|
||||
@@ -976,7 +976,7 @@ contains
|
||||
if (info /= 0) info = 4000
|
||||
end if
|
||||
|
||||
else if (psb_toupper(side_) == 'L') then
|
||||
else if (psb_toupper(scale_) == 'L') then
|
||||
|
||||
if (size(d,1) < nar) then
|
||||
info = 36
|
||||
@@ -1004,11 +1004,11 @@ contains
|
||||
|
||||
else
|
||||
info = 31
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=side_)
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=scale_)
|
||||
goto 9999
|
||||
end if
|
||||
else
|
||||
! Side is ignored in this case
|
||||
! Scale is ignored in this case
|
||||
call a%base_cssm(alpha,x,beta,y,info,trans)
|
||||
end if
|
||||
|
||||
@@ -1036,7 +1036,7 @@ contains
|
||||
|
||||
end subroutine s_cssm
|
||||
|
||||
subroutine s_cssv(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine s_cssv(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
@@ -1044,12 +1044,12 @@ contains
|
||||
real(psb_spk_), intent(in) :: alpha, beta, x(:)
|
||||
real(psb_spk_), intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
real(psb_spk_), intent(in), optional :: d(:)
|
||||
|
||||
real(psb_spk_), allocatable :: tmp(:)
|
||||
Integer :: err_act, nar,nac,nc, i
|
||||
character(len=1) :: side_
|
||||
character(len=1) :: scale_
|
||||
character(len=20) :: name='s_cssm'
|
||||
logical, parameter :: debug=.false.
|
||||
|
||||
@@ -1082,13 +1082,13 @@ contains
|
||||
end if
|
||||
|
||||
if (present(d)) then
|
||||
if (present(side)) then
|
||||
side_ = side
|
||||
if (present(scale)) then
|
||||
scale_ = scale
|
||||
else
|
||||
side_ = 'L'
|
||||
scale_ = 'L'
|
||||
end if
|
||||
|
||||
if (psb_toupper(side_) == 'R') then
|
||||
if (psb_toupper(scale_) == 'R') then
|
||||
if (size(d,1) < nac) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nac,0,0,0/))
|
||||
@@ -1106,7 +1106,7 @@ contains
|
||||
if (info /= 0) info = 4000
|
||||
end if
|
||||
|
||||
else if (psb_toupper(side_) == 'L') then
|
||||
else if (psb_toupper(scale_) == 'L') then
|
||||
if (size(d,1) < nar) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nar,0,0,0/))
|
||||
@@ -1129,11 +1129,11 @@ contains
|
||||
|
||||
else
|
||||
info = 31
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=side_)
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=scale_)
|
||||
goto 9999
|
||||
end if
|
||||
else
|
||||
! Side is ignored in this case
|
||||
! Scale is ignored in this case
|
||||
call a%base_cssm(alpha,x,beta,y,info,trans)
|
||||
end if
|
||||
|
||||
|
||||
@@ -1699,14 +1699,14 @@ contains
|
||||
|
||||
end subroutine s_csmv
|
||||
|
||||
subroutine s_cssm(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine s_cssm(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
class(psb_s_sparse_mat), intent(in) :: a
|
||||
real(psb_spk_), intent(in) :: alpha, beta, x(:,:)
|
||||
real(psb_spk_), intent(inout) :: y(:,:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
real(psb_spk_), intent(in), optional :: d(:)
|
||||
Integer :: err_act
|
||||
character(len=20) :: name='psb_cssm'
|
||||
@@ -1720,7 +1720,7 @@ contains
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,side,d)
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,scale,d)
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
@@ -1737,14 +1737,14 @@ contains
|
||||
|
||||
end subroutine s_cssm
|
||||
|
||||
subroutine s_cssv(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine s_cssv(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
class(psb_s_sparse_mat), intent(in) :: a
|
||||
real(psb_spk_), intent(in) :: alpha, beta, x(:)
|
||||
real(psb_spk_), intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
real(psb_spk_), intent(in), optional :: d(:)
|
||||
Integer :: err_act
|
||||
character(len=20) :: name='psb_cssv'
|
||||
@@ -1758,7 +1758,7 @@ contains
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,side,d)
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,scale,d)
|
||||
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
|
||||
@@ -902,7 +902,7 @@ contains
|
||||
|
||||
end subroutine z_base_cssv
|
||||
|
||||
subroutine z_cssm(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine z_cssm(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
@@ -910,12 +910,12 @@ contains
|
||||
complex(psb_dpk_), intent(in) :: alpha, beta, x(:,:)
|
||||
complex(psb_dpk_), intent(inout) :: y(:,:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
complex(psb_dpk_), intent(in), optional :: d(:)
|
||||
|
||||
complex(psb_dpk_), allocatable :: tmp(:,:)
|
||||
Integer :: err_act, nar,nac,nc, i
|
||||
character(len=1) :: side_
|
||||
character(len=1) :: scale_
|
||||
character(len=20) :: name='z_cssm'
|
||||
logical, parameter :: debug=.false.
|
||||
|
||||
@@ -948,13 +948,13 @@ contains
|
||||
end if
|
||||
|
||||
if (present(d)) then
|
||||
if (present(side)) then
|
||||
side_ = side
|
||||
if (present(scale)) then
|
||||
scale_ = scale
|
||||
else
|
||||
side_ = 'L'
|
||||
scale_ = 'L'
|
||||
end if
|
||||
|
||||
if (psb_toupper(side_) == 'R') then
|
||||
if (psb_toupper(scale_) == 'R') then
|
||||
if (size(d,1) < nac) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nac,0,0,0/))
|
||||
@@ -976,7 +976,7 @@ contains
|
||||
if (info /= 0) info = 4000
|
||||
end if
|
||||
|
||||
else if (psb_toupper(side_) == 'L') then
|
||||
else if (psb_toupper(scale_) == 'L') then
|
||||
|
||||
if (size(d,1) < nar) then
|
||||
info = 36
|
||||
@@ -1004,11 +1004,11 @@ contains
|
||||
|
||||
else
|
||||
info = 31
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=side_)
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=scale_)
|
||||
goto 9999
|
||||
end if
|
||||
else
|
||||
! Side is ignored in this case
|
||||
! Scale is ignored in this case
|
||||
call a%base_cssm(alpha,x,beta,y,info,trans)
|
||||
end if
|
||||
|
||||
@@ -1036,7 +1036,7 @@ contains
|
||||
|
||||
end subroutine z_cssm
|
||||
|
||||
subroutine z_cssv(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine z_cssv(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
@@ -1044,12 +1044,12 @@ contains
|
||||
complex(psb_dpk_), intent(in) :: alpha, beta, x(:)
|
||||
complex(psb_dpk_), intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
complex(psb_dpk_), intent(in), optional :: d(:)
|
||||
|
||||
complex(psb_dpk_), allocatable :: tmp(:)
|
||||
Integer :: err_act, nar,nac,nc, i
|
||||
character(len=1) :: side_
|
||||
character(len=1) :: scale_
|
||||
character(len=20) :: name='z_cssm'
|
||||
logical, parameter :: debug=.false.
|
||||
|
||||
@@ -1082,13 +1082,13 @@ contains
|
||||
end if
|
||||
|
||||
if (present(d)) then
|
||||
if (present(side)) then
|
||||
side_ = side
|
||||
if (present(scale)) then
|
||||
scale_ = scale
|
||||
else
|
||||
side_ = 'L'
|
||||
scale_ = 'L'
|
||||
end if
|
||||
|
||||
if (psb_toupper(side_) == 'R') then
|
||||
if (psb_toupper(scale_) == 'R') then
|
||||
if (size(d,1) < nac) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nac,0,0,0/))
|
||||
@@ -1106,7 +1106,7 @@ contains
|
||||
if (info /= 0) info = 4000
|
||||
end if
|
||||
|
||||
else if (psb_toupper(side_) == 'L') then
|
||||
else if (psb_toupper(scale_) == 'L') then
|
||||
if (size(d,1) < nar) then
|
||||
info = 36
|
||||
call psb_errpush(info,name,i_err=(/9,nar,0,0,0/))
|
||||
@@ -1129,11 +1129,11 @@ contains
|
||||
|
||||
else
|
||||
info = 31
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=side_)
|
||||
call psb_errpush(info,name,i_err=(/8,0,0,0,0/),a_err=scale_)
|
||||
goto 9999
|
||||
end if
|
||||
else
|
||||
! Side is ignored in this case
|
||||
! Scale is ignored in this case
|
||||
call a%base_cssm(alpha,x,beta,y,info,trans)
|
||||
end if
|
||||
|
||||
|
||||
@@ -1699,14 +1699,14 @@ contains
|
||||
|
||||
end subroutine z_csmv
|
||||
|
||||
subroutine z_cssm(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine z_cssm(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
class(psb_z_sparse_mat), intent(in) :: a
|
||||
complex(psb_dpk_), intent(in) :: alpha, beta, x(:,:)
|
||||
complex(psb_dpk_), intent(inout) :: y(:,:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
complex(psb_dpk_), intent(in), optional :: d(:)
|
||||
Integer :: err_act
|
||||
character(len=20) :: name='psb_cssm'
|
||||
@@ -1720,7 +1720,7 @@ contains
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,side,d)
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,scale,d)
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
@@ -1737,14 +1737,14 @@ contains
|
||||
|
||||
end subroutine z_cssm
|
||||
|
||||
subroutine z_cssv(alpha,a,x,beta,y,info,trans,side,d)
|
||||
subroutine z_cssv(alpha,a,x,beta,y,info,trans,scale,d)
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
class(psb_z_sparse_mat), intent(in) :: a
|
||||
complex(psb_dpk_), intent(in) :: alpha, beta, x(:)
|
||||
complex(psb_dpk_), intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character, optional, intent(in) :: trans, side
|
||||
character, optional, intent(in) :: trans, scale
|
||||
complex(psb_dpk_), intent(in), optional :: d(:)
|
||||
Integer :: err_act
|
||||
character(len=20) :: name='psb_cssv'
|
||||
@@ -1758,7 +1758,7 @@ contains
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,side,d)
|
||||
call a%a%cssm(alpha,x,beta,y,info,trans,scale,d)
|
||||
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
|
||||
Reference in New Issue
Block a user