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???
psblas3-type-indexed
Salvatore Filippone 15 years ago
parent 233835de10
commit 8bac54b124

@ -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

@ -64,7 +64,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
! trans - character(optional). Whether A or A'. If not present 'N' is assumed.
! side - character(optional). Specify some type of operation with
! scale - character(optional). Specify some type of operation with
! the diagonal matrix D.
! choice - integer(optional). The kind of update to perform on overlap elements.
! d(:) - complex, optional Matrix for diagonal scaling.
@ -74,7 +74,7 @@
! work(:) - complex, optional Working area.
!
subroutine psb_cspsm(alpha,a,x,beta,y,desc_a,info,&
& trans, side, choice, diag, k, jx, jy, work)
& trans, scale, choice, diag, k, jx, jy, work)
use psb_descriptor_type
use psb_comm_mod
@ -94,7 +94,7 @@ subroutine psb_cspsm(alpha,a,x,beta,y,desc_a,info,&
integer, intent(out) :: info
complex(psb_spk_), intent(in), optional, target :: diag(:)
complex(psb_spk_), optional, target :: work(:)
character, intent(in), optional :: trans, side
character, intent(in), optional :: trans, scale
integer, intent(in), optional :: choice
integer, intent(in), optional :: k, jx, jy
@ -104,7 +104,7 @@ subroutine psb_cspsm(alpha,a,x,beta,y,desc_a,info,&
& ix, iy, ik, ijx, ijy, i, lld,&
& m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm
character :: lside
character :: lscale
integer, parameter :: nb=4
complex(psb_spk_),pointer :: iwork(:), xp(:,:), yp(:,:), id(:)
character :: itrans
@ -156,10 +156,10 @@ subroutine psb_cspsm(alpha,a,x,beta,y,desc_a,info,&
choice_ = psb_avg_
endif
if (present(side)) then
lside = psb_toupper(side)
if (present(scale)) then
lscale = psb_toupper(scale)
else
lside = 'U'
lscale = 'U'
endif
if (present(trans)) then
@ -255,7 +255,7 @@ subroutine psb_cspsm(alpha,a,x,beta,y,desc_a,info,&
! Perform local triangular system solve
xp => x(iix:lldx,jjx:jjx+ik-1)
yp => y(iiy:lldy,jjy:jjy+ik-1)
call psb_cssm(alpha,a,xp,beta,yp,info,side=side,d=diag,trans=trans)
call psb_cssm(alpha,a,xp,beta,yp,info,scale=scale,d=diag,trans=trans)
if(info /= 0) then
info = 4010
@ -353,14 +353,14 @@ end subroutine psb_cspsm
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
! trans - character(optional). Whether A or A'. If not present 'N' is assumed.
! side - character(optional). Specify some type of operation with
! scale - character(optional). Specify some type of operation with
! the diagonal matrix D.
! choice - integer(optional). The kind of update to perform on overlap elements.
! d(:) - complex, optional Matrix for diagonal scaling.
! work(:) - complex, optional Working area.
!
subroutine psb_cspsv(alpha,a,x,beta,y,desc_a,info,&
& trans, side, choice, diag, work)
& trans, scale, choice, diag, work)
use psb_descriptor_type
use psb_comm_mod
use psi_mod
@ -379,7 +379,7 @@ subroutine psb_cspsv(alpha,a,x,beta,y,desc_a,info,&
integer, intent(out) :: info
complex(psb_spk_), intent(in), optional, target :: diag(:)
complex(psb_spk_), optional, target :: work(:)
character, intent(in), optional :: trans, side
character, intent(in), optional :: trans, scale
integer, intent(in), optional :: choice
! locals
@ -388,7 +388,7 @@ subroutine psb_cspsv(alpha,a,x,beta,y,desc_a,info,&
& ix, iy, ik, jx, jy, i, lld,&
& m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm
character :: lside
character :: lscale
integer, parameter :: nb=4
complex(psb_spk_),pointer :: iwork(:), xp(:), yp(:), id(:)
character :: itrans
@ -424,10 +424,10 @@ subroutine psb_cspsv(alpha,a,x,beta,y,desc_a,info,&
choice_ = psb_avg_
endif
if (present(side)) then
lside = psb_toupper(side)
if (present(scale)) then
lscale = psb_toupper(scale)
else
lside = 'U'
lscale = 'U'
endif
if (present(trans)) then
@ -524,7 +524,7 @@ subroutine psb_cspsv(alpha,a,x,beta,y,desc_a,info,&
! Perform local triangular system solve
xp => x(iix:lldx)
yp => y(iiy:lldy)
call psb_cssm(alpha,a,xp,beta,yp,info,side=side,d=diag,trans=trans)
call psb_cssm(alpha,a,xp,beta,yp,info,scale=scale,d=diag,trans=trans)
if(info /= 0) then
info = 4010

@ -64,7 +64,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
! trans - character(optional). Whether A or A'. If not present 'N' is assumed.
! side - character(optional). Specify some type of operation with
! scale - character(optional). Specify some type of operation with
! the diagonal matrix D.
! choice - integer(optional). The kind of update to perform on overlap elements.
! d(:) - real , optional Matrix for diagonal scaling.
@ -75,7 +75,7 @@
!
!
subroutine psb_dspsm(alpha,a,x,beta,y,desc_a,info,&
& trans, side, choice, diag, k, jx, jy, work)
& trans, scale, choice, diag, k, jx, jy, work)
use psb_descriptor_type
use psb_comm_mod
@ -95,7 +95,7 @@ subroutine psb_dspsm(alpha,a,x,beta,y,desc_a,info,&
integer, intent(out) :: info
real(psb_dpk_), intent(in), optional, target :: diag(:)
real(psb_dpk_), optional, target :: work(:)
character, intent(in), optional :: trans, side
character, intent(in), optional :: trans, scale
integer, intent(in), optional :: choice
integer, intent(in), optional :: k, jx, jy
@ -105,7 +105,7 @@ subroutine psb_dspsm(alpha,a,x,beta,y,desc_a,info,&
& ix, iy, ik, ijx, ijy, i, lld,&
& m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm
character :: lside
character :: lscale
integer, parameter :: nb=4
real(psb_dpk_),pointer :: iwork(:), xp(:,:), yp(:,:), id(:)
character :: itrans
@ -157,10 +157,10 @@ subroutine psb_dspsm(alpha,a,x,beta,y,desc_a,info,&
choice_ = psb_avg_
endif
if (present(side)) then
lside = psb_toupper(side)
if (present(scale)) then
lscale = psb_toupper(scale)
else
lside = 'U'
lscale = 'U'
endif
if (present(trans)) then
@ -256,7 +256,7 @@ subroutine psb_dspsm(alpha,a,x,beta,y,desc_a,info,&
! Perform local triangular system solve
xp => x(iix:lldx,jjx:jjx+ik-1)
yp => y(iiy:lldy,jjy:jjy+ik-1)
call psb_cssm(alpha,a,xp,beta,yp,info,side=side,d=diag,trans=trans)
call psb_cssm(alpha,a,xp,beta,yp,info,scale=scale,d=diag,trans=trans)
if(info /= 0) then
info = 4010
@ -354,14 +354,14 @@ end subroutine psb_dspsm
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
! trans - character(optional). Whether A or A'. If not present 'N' is assumed.
! side - character(optional). Specify some type of operation with
! scale - character(optional). Specify some type of operation with
! the diagonal matrix D.
! choice - integer(optional). The kind of update to perform on overlap elements.
! d(:) - real , optional Matrix for diagonal scaling.
! work(:) - real , optional Working area.
!
subroutine psb_dspsv(alpha,a,x,beta,y,desc_a,info,&
& trans, side, choice, diag, work)
& trans, scale, choice, diag, work)
use psb_descriptor_type
use psb_comm_mod
use psi_mod
@ -380,7 +380,7 @@ subroutine psb_dspsv(alpha,a,x,beta,y,desc_a,info,&
integer, intent(out) :: info
real(psb_dpk_), intent(in), optional, target :: diag(:)
real(psb_dpk_), optional, target :: work(:)
character, intent(in), optional :: trans, side
character, intent(in), optional :: trans, scale
integer, intent(in), optional :: choice
! locals
@ -389,7 +389,7 @@ subroutine psb_dspsv(alpha,a,x,beta,y,desc_a,info,&
& ix, iy, ik, jx, jy, i, lld,&
& m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm
character :: lside
character :: lscale
integer, parameter :: nb=4
real(psb_dpk_),pointer :: iwork(:), xp(:), yp(:), id(:)
character :: itrans
@ -425,10 +425,10 @@ subroutine psb_dspsv(alpha,a,x,beta,y,desc_a,info,&
choice_ = psb_avg_
endif
if (present(side)) then
lside = psb_toupper(side)
if (present(scale)) then
lscale = psb_toupper(scale)
else
lside = 'U'
lscale = 'U'
endif
if (present(trans)) then
@ -525,7 +525,7 @@ subroutine psb_dspsv(alpha,a,x,beta,y,desc_a,info,&
! Perform local triangular system solve
xp => x(iix:lldx)
yp => y(iiy:lldy)
call psb_cssm(alpha,a,xp,beta,yp,info,side=side,d=diag,trans=trans)
call psb_cssm(alpha,a,xp,beta,yp,info,scale=scale,d=diag,trans=trans)
if(info /= 0) then
info = 4010

@ -75,7 +75,7 @@
!
!
subroutine psb_sspsm(alpha,a,x,beta,y,desc_a,info,&
& trans, side, choice, diag, k, jx, jy, work)
& trans, scale, choice, diag, k, jx, jy, work)
use psb_descriptor_type
use psb_comm_mod
@ -95,7 +95,7 @@ subroutine psb_sspsm(alpha,a,x,beta,y,desc_a,info,&
integer, intent(out) :: info
real(psb_spk_), intent(in), optional, target :: diag(:)
real(psb_spk_), optional, target :: work(:)
character, intent(in), optional :: trans, side
character, intent(in), optional :: trans, scale
integer, intent(in), optional :: choice
integer, intent(in), optional :: k, jx, jy
@ -105,7 +105,7 @@ subroutine psb_sspsm(alpha,a,x,beta,y,desc_a,info,&
& ix, iy, ik, ijx, ijy, i, lld,&
& m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm
character :: lside
character :: lscale
integer, parameter :: nb=4
real(psb_spk_),pointer :: iwork(:), xp(:,:), yp(:,:), id(:)
character :: itrans
@ -157,10 +157,10 @@ subroutine psb_sspsm(alpha,a,x,beta,y,desc_a,info,&
choice_ = psb_avg_
endif
if (present(side)) then
lside = psb_toupper(side)
if (present(scale)) then
lscale = psb_toupper(scale)
else
lside = 'U'
lscale = 'U'
endif
if (present(trans)) then
@ -256,7 +256,7 @@ subroutine psb_sspsm(alpha,a,x,beta,y,desc_a,info,&
! Perform local triangular system solve
xp => x(iix:lldx,jjx:jjx+ik-1)
yp => y(iiy:lldy,jjy:jjy+ik-1)
call psb_cssm(alpha,a,xp,beta,yp,info,side=side,d=diag,trans=trans)
call psb_cssm(alpha,a,xp,beta,yp,info,scale=scale,d=diag,trans=trans)
if(info /= 0) then
info = 4010
@ -354,14 +354,14 @@ end subroutine psb_sspsm
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
! trans - character(optional). Whether A or A'. If not present 'N' is assumed.
! side - character(optional). Specify some type of operation with
! scale - character(optional). Specify some type of operation with
! the diagonal matrix D.
! choice - integer(optional). The kind of update to perform on overlap elements.
! d(:) - real , optional Matrix for diagonal scaling.
! work(:) - real , optional Working area.
!
subroutine psb_sspsv(alpha,a,x,beta,y,desc_a,info,&
& trans, side, choice, diag, work)
& trans, scale, choice, diag, work)
use psb_descriptor_type
use psb_comm_mod
use psi_mod
@ -380,7 +380,7 @@ subroutine psb_sspsv(alpha,a,x,beta,y,desc_a,info,&
integer, intent(out) :: info
real(psb_spk_), intent(in), optional, target :: diag(:)
real(psb_spk_), optional, target :: work(:)
character, intent(in), optional :: trans, side
character, intent(in), optional :: trans, scale
integer, intent(in), optional :: choice
! locals
@ -389,7 +389,7 @@ subroutine psb_sspsv(alpha,a,x,beta,y,desc_a,info,&
& ix, iy, ik, jx, jy, i, lld,&
& m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm
character :: lside
character :: lscale
integer, parameter :: nb=4
real(psb_spk_),pointer :: iwork(:), xp(:), yp(:), id(:)
character :: itrans
@ -425,10 +425,10 @@ subroutine psb_sspsv(alpha,a,x,beta,y,desc_a,info,&
choice_ = psb_avg_
endif
if (present(side)) then
lside = psb_toupper(side)
if (present(scale)) then
lscale = psb_toupper(scale)
else
lside = 'U'
lscale = 'U'
endif
if (present(trans)) then
@ -525,7 +525,7 @@ subroutine psb_sspsv(alpha,a,x,beta,y,desc_a,info,&
! Perform local triangular system solve
xp => x(iix:lldx)
yp => y(iiy:lldy)
call psb_cssm(alpha,a,xp,beta,yp,info,side=side,d=diag,trans=trans)
call psb_cssm(alpha,a,xp,beta,yp,info,scale=scale,d=diag,trans=trans)
if(info /= 0) then
info = 4010

@ -64,7 +64,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
! trans - character(optional). Whether A or A'. If not present 'N' is assumed.
! unitd - character(optional). Specify some type of operation with
! scale - character(optional). Specify some type of operation with
! the diagonal matrix D.
! choice - integer(optional). The kind of update to perform on overlap elements.
! d(:) - complex, optional Matrix for diagonal scaling.
@ -74,7 +74,7 @@
! work(:) - complex, optional Working area.
!
subroutine psb_zspsm(alpha,a,x,beta,y,desc_a,info,&
& trans, side, choice, diag, k, jx, jy, work)
& trans, scale, choice, diag, k, jx, jy, work)
use psb_descriptor_type
use psb_comm_mod
@ -94,7 +94,7 @@ subroutine psb_zspsm(alpha,a,x,beta,y,desc_a,info,&
integer, intent(out) :: info
complex(psb_dpk_), intent(in), optional, target :: diag(:)
complex(psb_dpk_), optional, target :: work(:)
character, intent(in), optional :: trans, side
character, intent(in), optional :: trans, scale
integer, intent(in), optional :: choice
integer, intent(in), optional :: k, jx, jy
@ -104,7 +104,7 @@ subroutine psb_zspsm(alpha,a,x,beta,y,desc_a,info,&
& ix, iy, ik, ijx, ijy, i, lld,&
& m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm
character :: lside
character :: lscale
integer, parameter :: nb=4
complex(psb_dpk_),pointer :: iwork(:), xp(:,:), yp(:,:), id(:)
character :: itrans
@ -156,10 +156,10 @@ subroutine psb_zspsm(alpha,a,x,beta,y,desc_a,info,&
choice_ = psb_avg_
endif
if (present(side)) then
lside = psb_toupper(side)
if (present(scale)) then
lscale = psb_toupper(scale)
else
lside = 'U'
lscale = 'U'
endif
if (present(trans)) then
@ -255,7 +255,7 @@ subroutine psb_zspsm(alpha,a,x,beta,y,desc_a,info,&
! Perform local triangular system solve
xp => x(iix:lldx,jjx:jjx+ik-1)
yp => y(iiy:lldy,jjy:jjy+ik-1)
call psb_cssm(alpha,a,xp,beta,yp,info,side=side,d=diag,trans=trans)
call psb_cssm(alpha,a,xp,beta,yp,info,scale=scale,d=diag,trans=trans)
if(info /= 0) then
info = 4010
@ -353,14 +353,14 @@ end subroutine psb_zspsm
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
! trans - character(optional). Whether A or A'. If not present 'N' is assumed.
! side - character(optional). Specify some type of operation with
! scale - character(optional). Specify some type of operation with
! the diagonal matrix D.
! choice - integer(optional). The kind of update to perform on overlap elements.
! d(:) - complex, optional Matrix for diagonal scaling.
! work(:) - complex, optional Working area.
!
subroutine psb_zspsv(alpha,a,x,beta,y,desc_a,info,&
& trans, side, choice, diag, work)
& trans, scale, choice, diag, work)
use psb_descriptor_type
use psb_comm_mod
use psi_mod
@ -379,7 +379,7 @@ subroutine psb_zspsv(alpha,a,x,beta,y,desc_a,info,&
integer, intent(out) :: info
complex(psb_dpk_), intent(in), optional, target :: diag(:)
complex(psb_dpk_), optional, target :: work(:)
character, intent(in), optional :: trans, side
character, intent(in), optional :: trans, scale
integer, intent(in), optional :: choice
! locals
@ -388,7 +388,7 @@ subroutine psb_zspsv(alpha,a,x,beta,y,desc_a,info,&
& ix, iy, ik, jx, jy, i, lld,&
& m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm
character :: lside
character :: lscale
integer, parameter :: nb=4
complex(psb_dpk_),pointer :: iwork(:), xp(:), yp(:), id(:)
character :: itrans
@ -424,10 +424,10 @@ subroutine psb_zspsv(alpha,a,x,beta,y,desc_a,info,&
choice_ = psb_avg_
endif
if (present(side)) then
lside = psb_toupper(side)
if (present(scale)) then
lscale = psb_toupper(scale)
else
lside = 'U'
lscale = 'U'
endif
if (present(trans)) then
@ -524,7 +524,7 @@ subroutine psb_zspsv(alpha,a,x,beta,y,desc_a,info,&
! Perform local triangular system solve
xp => x(iix:lldx)
yp => y(iiy:lldy)
call psb_cssm(alpha,a,xp,beta,yp,info,side=side,d=diag,trans=trans)
call psb_cssm(alpha,a,xp,beta,yp,info,scale=scale,d=diag,trans=trans)
if(info /= 0) then
info = 4010

@ -79,7 +79,7 @@ C
IWORK1(I) = 0
IWORK3(I) = 0
40 CONTINUE
IF (psb_toupper(UPLO).EQ.'L') THEN
IF (psb_toupper(UPLO).EQ.'L') THEN
C
C LOWER TRIANGULAR SPARSE MATRIX
C
@ -89,7 +89,7 @@ C
IWORK1(I) = MAX(IWORK1(I),IWORK1(JA(J))+1)
60 CONTINUE
80 CONTINUE
ELSE IF (psb_toupper(UPLO).EQ.'U') THEN
ELSE IF (psb_toupper(UPLO).EQ.'U') THEN
C
C UPPER TRIANGULAR SPARSE MATRIX
C

@ -48,14 +48,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_s_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_sprec_type
type(psb_s_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_), intent(in) :: b(:)
real(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_), intent(in) :: b(:)
real(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
class(psb_sprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_spk_), optional, intent(out) :: err,cond
end subroutine psb_scg
subroutine psb_dcg(a,prec,b,x,eps,&
@ -63,14 +63,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_d_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_dprec_type
type(psb_d_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_), intent(in) :: b(:)
real(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_), intent(in) :: b(:)
real(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
class(psb_dprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_dpk_), optional, intent(out) :: err,cond
end subroutine psb_dcg
subroutine psb_ccg(a,prec,b,x,eps,&
@ -78,14 +78,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_c_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_cprec_type
type(psb_c_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
complex(psb_spk_), intent(in) :: b(:)
complex(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
type(psb_desc_type), intent(in) :: desc_a
complex(psb_spk_), intent(in) :: b(:)
complex(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
class(psb_cprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_spk_), optional, intent(out) :: err
end subroutine psb_ccg
subroutine psb_zcg(a,prec,b,x,eps,&
@ -93,14 +93,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_z_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_zprec_type
type(psb_z_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
complex(psb_dpk_), intent(in) :: b(:)
complex(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
type(psb_desc_type), intent(in) :: desc_a
complex(psb_dpk_), intent(in) :: b(:)
complex(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
class(psb_zprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_dpk_), optional, intent(out) :: err
end subroutine psb_zcg
end interface
@ -111,14 +111,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_s_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_sprec_type
type(psb_s_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_), intent(in) :: b(:)
real(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_), intent(in) :: b(:)
real(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
class(psb_sprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_spk_), optional, intent(out) :: err
end subroutine psb_sbicg
subroutine psb_dbicg(a,prec,b,x,eps,&
@ -126,14 +126,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_d_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_dprec_type
type(psb_d_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_), intent(in) :: b(:)
real(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_), intent(in) :: b(:)
real(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
class(psb_dprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_dpk_), optional, intent(out) :: err
end subroutine psb_dbicg
subroutine psb_cbicg(a,prec,b,x,eps,&
@ -141,14 +141,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_c_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_cprec_type
type(psb_c_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
complex(psb_spk_), intent(in) :: b(:)
complex(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
type(psb_desc_type), intent(in) :: desc_a
complex(psb_spk_), intent(in) :: b(:)
complex(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
class(psb_cprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_spk_), optional, intent(out) :: err
end subroutine psb_cbicg
subroutine psb_zbicg(a,prec,b,x,eps,&
@ -156,14 +156,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_z_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_zprec_type
type(psb_z_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
complex(psb_dpk_), intent(in) :: b(:)
complex(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
type(psb_desc_type), intent(in) :: desc_a
complex(psb_dpk_), intent(in) :: b(:)
complex(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
class(psb_zprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_dpk_), optional, intent(out) :: err
end subroutine psb_zbicg
end interface
@ -174,14 +174,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_s_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_sprec_type
type(psb_s_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_), intent(in) :: b(:)
real(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_), intent(in) :: b(:)
real(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
class(psb_sprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_spk_), optional, intent(out) :: err
end subroutine psb_scgstab
subroutine psb_dcgstab(a,prec,b,x,eps,&
@ -189,14 +189,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_d_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_dprec_type
type(psb_d_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_), intent(in) :: b(:)
real(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_), intent(in) :: b(:)
real(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
class(psb_dprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_dpk_), optional, intent(out) :: err
end subroutine psb_dcgstab
subroutine psb_ccgstab(a,prec,b,x,eps,&
@ -204,14 +204,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_c_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_cprec_type
type(psb_c_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
type(psb_desc_type), intent(in) :: desc_a
complex(psb_spk_), intent(in) :: b(:)
complex(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
real(psb_spk_), intent(in) :: eps
class(psb_cprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_spk_), optional, intent(out) :: err
end subroutine psb_ccgstab
subroutine psb_zcgstab(a,prec,b,x,eps,&
@ -219,14 +219,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_z_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_zprec_type
type(psb_z_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
type(psb_desc_type), intent(in) :: desc_a
complex(psb_dpk_), intent(in) :: b(:)
complex(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
real(psb_dpk_), intent(in) :: eps
class(psb_zprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_dpk_), optional, intent(out) :: err
end subroutine psb_zcgstab
end interface
@ -237,14 +237,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_s_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_sprec_type
Type(psb_s_sparse_mat), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a
Type(psb_desc_type), Intent(in) :: desc_a
class(psb_sprec_type), intent(in) :: prec
Real(psb_spk_), Intent(in) :: b(:)
Real(psb_spk_), Intent(inout) :: x(:)
Real(psb_spk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_spk_), Intent(in) :: b(:)
Real(psb_spk_), Intent(inout) :: x(:)
Real(psb_spk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_spk_), Optional, Intent(out) :: err
end subroutine psb_scgstabl
Subroutine psb_dcgstabl(a,prec,b,x,eps,desc_a,info,&
@ -252,14 +252,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_d_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_dprec_type
type(psb_d_sparse_mat), intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a
Type(psb_desc_type), Intent(in) :: desc_a
class(psb_dprec_type), intent(in) :: prec
Real(psb_dpk_), Intent(in) :: b(:)
Real(psb_dpk_), Intent(inout) :: x(:)
Real(psb_dpk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_dpk_), Intent(in) :: b(:)
Real(psb_dpk_), Intent(inout) :: x(:)
Real(psb_dpk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_dpk_), Optional, Intent(out) :: err
end subroutine psb_dcgstabl
Subroutine psb_ccgstabl(a,prec,b,x,eps,desc_a,info,&
@ -267,14 +267,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_c_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_cprec_type
Type(psb_c_sparse_mat), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a
Type(psb_desc_type), Intent(in) :: desc_a
class(psb_cprec_type), intent(in) :: prec
complex(psb_spk_), Intent(in) :: b(:)
complex(psb_spk_), Intent(inout) :: x(:)
Real(psb_spk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
complex(psb_spk_), Intent(in) :: b(:)
complex(psb_spk_), Intent(inout) :: x(:)
Real(psb_spk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_spk_), Optional, Intent(out) :: err
end subroutine psb_ccgstabl
Subroutine psb_zcgstabl(a,prec,b,x,eps,desc_a,info,&
@ -282,14 +282,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_z_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_zprec_type
Type(psb_z_sparse_mat), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a
Type(psb_desc_type), Intent(in) :: desc_a
class(psb_zprec_type), intent(in) :: prec
complex(psb_dpk_), Intent(in) :: b(:)
complex(psb_dpk_), Intent(inout) :: x(:)
Real(psb_dpk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
complex(psb_dpk_), Intent(in) :: b(:)
complex(psb_dpk_), Intent(inout) :: x(:)
Real(psb_dpk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_dpk_), Optional, Intent(out) :: err
end subroutine psb_zcgstabl
end interface
@ -300,14 +300,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_s_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_sprec_type
Type(psb_s_sparse_mat), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a
Type(psb_desc_type), Intent(in) :: desc_a
class(psb_sprec_type), intent(in) :: prec
Real(psb_spk_), Intent(in) :: b(:)
Real(psb_spk_), Intent(inout) :: x(:)
Real(psb_spk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_spk_), Intent(in) :: b(:)
Real(psb_spk_), Intent(inout) :: x(:)
Real(psb_spk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_spk_), Optional, Intent(out) :: err
end subroutine psb_srgmres
Subroutine psb_drgmres(a,prec,b,x,eps,desc_a,info,&
@ -315,14 +315,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_d_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_dprec_type
type(psb_d_sparse_mat), intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a
Type(psb_desc_type), Intent(in) :: desc_a
class(psb_dprec_type), intent(in) :: prec
Real(psb_dpk_), Intent(in) :: b(:)
Real(psb_dpk_), Intent(inout) :: x(:)
Real(psb_dpk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_dpk_), Intent(in) :: b(:)
Real(psb_dpk_), Intent(inout) :: x(:)
Real(psb_dpk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_dpk_), Optional, Intent(out) :: err
end subroutine psb_drgmres
Subroutine psb_crgmres(a,prec,b,x,eps,desc_a,info,&
@ -330,14 +330,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_c_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_cprec_type
Type(psb_c_sparse_mat), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a
Type(psb_desc_type), Intent(in) :: desc_a
class(psb_cprec_type), intent(in) :: prec
complex(psb_spk_), Intent(in) :: b(:)
complex(psb_spk_), Intent(inout) :: x(:)
Real(psb_spk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
complex(psb_spk_), Intent(in) :: b(:)
complex(psb_spk_), Intent(inout) :: x(:)
Real(psb_spk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_spk_), Optional, Intent(out) :: err
end subroutine psb_crgmres
Subroutine psb_zrgmres(a,prec,b,x,eps,desc_a,info,&
@ -345,14 +345,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_z_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_zprec_type
Type(psb_z_sparse_mat), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a
Type(psb_desc_type), Intent(in) :: desc_a
class(psb_zprec_type), intent(in) :: prec
complex(psb_dpk_), Intent(in) :: b(:)
complex(psb_dpk_), Intent(inout) :: x(:)
Real(psb_dpk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
complex(psb_dpk_), Intent(in) :: b(:)
complex(psb_dpk_), Intent(inout) :: x(:)
Real(psb_dpk_), Intent(in) :: eps
integer, intent(out) :: info
Integer, Optional, Intent(in) :: itmax, itrace, irst,istop
Integer, Optional, Intent(out) :: iter
Real(psb_dpk_), Optional, Intent(out) :: err
end subroutine psb_zrgmres
end interface
@ -363,14 +363,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_s_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_sprec_type
type(psb_s_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
type(psb_desc_type), intent(in) :: desc_a
class(psb_sprec_type), intent(in) :: prec
real(psb_spk_), intent(in) :: b(:)
real(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_spk_), intent(in) :: b(:)
real(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_spk_), optional, intent(out) :: err
end subroutine psb_scgs
subroutine psb_dcgs(a,prec,b,x,eps,desc_a,info,&
@ -378,14 +378,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_d_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_dprec_type
type(psb_d_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
type(psb_desc_type), intent(in) :: desc_a
class(psb_dprec_type), intent(in) :: prec
real(psb_dpk_), intent(in) :: b(:)
real(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_dpk_), intent(in) :: b(:)
real(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_dpk_), optional, intent(out) :: err
end subroutine psb_dcgs
subroutine psb_ccgs(a,prec,b,x,eps,&
@ -393,14 +393,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_c_sparse_mat, psb_spk_
use psb_prec_mod, only : psb_cprec_type
type(psb_c_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
type(psb_desc_type), intent(in) :: desc_a
complex(psb_spk_), intent(in) :: b(:)
complex(psb_spk_), intent(inout) :: x(:)
real(psb_spk_), intent(in) :: eps
real(psb_spk_), intent(in) :: eps
class(psb_cprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_spk_), optional, intent(out) :: err
end subroutine psb_ccgs
subroutine psb_zcgs(a,prec,b,x,eps,&
@ -408,14 +408,14 @@ Module psb_krylov_mod
use psb_base_mod, only : psb_desc_type, psb_z_sparse_mat, psb_dpk_
use psb_prec_mod, only : psb_zprec_type
type(psb_z_sparse_mat), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a
type(psb_desc_type), intent(in) :: desc_a
complex(psb_dpk_), intent(in) :: b(:)
complex(psb_dpk_), intent(inout) :: x(:)
real(psb_dpk_), intent(in) :: eps
real(psb_dpk_), intent(in) :: eps
class(psb_zprec_type), intent(in) :: prec
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
integer, intent(out) :: info
integer, optional, intent(in) :: itmax, itrace,istop
integer, optional, intent(out) :: iter
real(psb_dpk_), optional, intent(out) :: err
end subroutine psb_zcgs
end interface

@ -108,26 +108,26 @@ subroutine psb_cbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
case('N')
call psb_spsm(cone,prec%av(psb_l_pr_),x,czero,ww,desc_data,info,&
& trans=trans_,side='L',diag=prec%d,choice=psb_none_,work=aux)
& trans=trans_,scale='L',diag=prec%d,choice=psb_none_,work=aux)
if(info /=0) goto 9999
call psb_spsm(alpha,prec%av(psb_u_pr_),ww,beta,y,desc_data,info,&
& trans=trans_,side='U',choice=psb_none_, work=aux)
& trans=trans_,scale='U',choice=psb_none_, work=aux)
if(info /=0) goto 9999
case('T')
call psb_spsm(cone,prec%av(psb_u_pr_),x,czero,ww,desc_data,info,&
& trans=trans_,side='L',diag=prec%d,choice=psb_none_, work=aux)
& trans=trans_,scale='L',diag=prec%d,choice=psb_none_, work=aux)
if(info /=0) goto 9999
call psb_spsm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,&
& trans=trans_,side='U',choice=psb_none_,work=aux)
& trans=trans_,scale='U',choice=psb_none_,work=aux)
if(info /=0) goto 9999
case('C')
call psb_spsm(cone,prec%av(psb_u_pr_),x,czero,ww,desc_data,info,&
& trans=trans_,side='L',diag=conjg(prec%d),choice=psb_none_, work=aux)
& trans=trans_,scale='L',diag=conjg(prec%d),choice=psb_none_, work=aux)
if(info /=0) goto 9999
call psb_spsm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,&
& trans=trans_,side='U',choice=psb_none_,work=aux)
& trans=trans_,scale='U',choice=psb_none_,work=aux)
if(info /=0) goto 9999
end select

@ -108,18 +108,18 @@ subroutine psb_dbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
case('N')
call psb_spsm(done,prec%av(psb_l_pr_),x,dzero,ww,desc_data,info,&
& trans=trans_,side='L',diag=prec%d,choice=psb_none_,work=aux)
& trans=trans_,scale='L',diag=prec%d,choice=psb_none_,work=aux)
if(info /=0) goto 9999
call psb_spsm(alpha,prec%av(psb_u_pr_),ww,beta,y,desc_data,info,&
& trans=trans_,side='U',choice=psb_none_, work=aux)
& trans=trans_,scale='U',choice=psb_none_, work=aux)
if(info /=0) goto 9999
case('T','C')
call psb_spsm(done,prec%av(psb_u_pr_),x,dzero,ww,desc_data,info,&
& trans=trans_,side='L',diag=prec%d,choice=psb_none_, work=aux)
& trans=trans_,scale='L',diag=prec%d,choice=psb_none_, work=aux)
if(info /=0) goto 9999
call psb_spsm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,&
& trans=trans_,side='U',choice=psb_none_,work=aux)
& trans=trans_,scale='U',choice=psb_none_,work=aux)
if(info /=0) goto 9999
end select

@ -108,18 +108,18 @@ subroutine psb_sbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
case('N')
call psb_spsm(sone,prec%av(psb_l_pr_),x,szero,ww,desc_data,info,&
& trans=trans_,side='L',diag=prec%d,choice=psb_none_,work=aux)
& trans=trans_,scale='L',diag=prec%d,choice=psb_none_,work=aux)
if(info /=0) goto 9999
call psb_spsm(alpha,prec%av(psb_u_pr_),ww,beta,y,desc_data,info,&
& trans=trans_,side='U',choice=psb_none_, work=aux)
& trans=trans_,scale='U',choice=psb_none_, work=aux)
if(info /=0) goto 9999
case('T','C')
call psb_spsm(sone,prec%av(psb_u_pr_),x,szero,ww,desc_data,info,&
& trans=trans_,side='L',diag=prec%d,choice=psb_none_, work=aux)
& trans=trans_,scale='L',diag=prec%d,choice=psb_none_, work=aux)
if(info /=0) goto 9999
call psb_spsm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,&
& trans=trans_,side='U',choice=psb_none_,work=aux)
& trans=trans_,scale='U',choice=psb_none_,work=aux)
if(info /=0) goto 9999
end select

@ -108,26 +108,26 @@ subroutine psb_zbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
case('N')
call psb_spsm(zone,prec%av(psb_l_pr_),x,zzero,ww,desc_data,info,&
& trans=trans_,side='L',diag=prec%d,choice=psb_none_,work=aux)
& trans=trans_,scale='L',diag=prec%d,choice=psb_none_,work=aux)
if(info /=0) goto 9999
call psb_spsm(alpha,prec%av(psb_u_pr_),ww,beta,y,desc_data,info,&
& trans=trans_,side='U',choice=psb_none_, work=aux)
& trans=trans_,scale='U',choice=psb_none_, work=aux)
if(info /=0) goto 9999
case('T')
call psb_spsm(zone,prec%av(psb_u_pr_),x,zzero,ww,desc_data,info,&
& trans=trans_,side='L',diag=prec%d,choice=psb_none_, work=aux)
& trans=trans_,scale='L',diag=prec%d,choice=psb_none_, work=aux)
if(info /=0) goto 9999
call psb_spsm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,&
& trans=trans_,side='U',choice=psb_none_,work=aux)
& trans=trans_,scale='U',choice=psb_none_,work=aux)
if(info /=0) goto 9999
case('C')
call psb_spsm(zone,prec%av(psb_u_pr_),x,zzero,ww,desc_data,info,&
& trans=trans_,side='L',diag=conjg(prec%d),choice=psb_none_, work=aux)
& trans=trans_,scale='L',diag=conjg(prec%d),choice=psb_none_, work=aux)
if(info /=0) goto 9999
call psb_spsm(alpha,prec%av(psb_l_pr_),ww,beta,y,desc_data,info,&
& trans=trans_,side='U',choice=psb_none_,work=aux)
& trans=trans_,scale='U',choice=psb_none_,work=aux)
if(info /=0) goto 9999
end select

Loading…
Cancel
Save