|
|
@ -58,147 +58,149 @@ module psb_serial_mod
|
|
|
|
end subroutine psb_zcsrws
|
|
|
|
end subroutine psb_zcsrws
|
|
|
|
end interface
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
|
|
interface psb_cssm
|
|
|
|
!!$ interface psb_cssm
|
|
|
|
subroutine psb_scssm(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
!!$ subroutine psb_scssm(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
type(psb_sspmat_type) :: t
|
|
|
|
!!$ type(psb_sspmat_type) :: t
|
|
|
|
real(psb_spk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
!!$ real(psb_spk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
integer :: info
|
|
|
|
!!$ integer :: info
|
|
|
|
character, optional :: trans, unitd
|
|
|
|
!!$ character, optional :: trans, unitd
|
|
|
|
real(psb_spk_), optional, target :: d(:)
|
|
|
|
!!$ real(psb_spk_), optional, target :: d(:)
|
|
|
|
end subroutine psb_scssm
|
|
|
|
!!$ end subroutine psb_scssm
|
|
|
|
subroutine psb_scssv(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
!!$ subroutine psb_scssv(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
type(psb_sspmat_type) :: t
|
|
|
|
!!$ type(psb_sspmat_type) :: t
|
|
|
|
real(psb_spk_) :: alpha, beta, b(:), c(:)
|
|
|
|
!!$ real(psb_spk_) :: alpha, beta, b(:), c(:)
|
|
|
|
integer :: info
|
|
|
|
!!$ integer :: info
|
|
|
|
character, optional :: trans, unitd
|
|
|
|
!!$ character, optional :: trans, unitd
|
|
|
|
real(psb_spk_), optional, target :: d(:)
|
|
|
|
!!$ real(psb_spk_), optional, target :: d(:)
|
|
|
|
end subroutine psb_scssv
|
|
|
|
!!$ end subroutine psb_scssv
|
|
|
|
subroutine psb_dcssm(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
!!$ subroutine psb_dcssm(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
type(psb_dspmat_type) :: t
|
|
|
|
!!$ type(psb_dspmat_type) :: t
|
|
|
|
real(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
!!$ real(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
integer :: info
|
|
|
|
!!$ integer :: info
|
|
|
|
character, optional :: trans, unitd
|
|
|
|
!!$ character, optional :: trans, unitd
|
|
|
|
real(psb_dpk_), optional, target :: d(:)
|
|
|
|
!!$ real(psb_dpk_), optional, target :: d(:)
|
|
|
|
end subroutine psb_dcssm
|
|
|
|
!!$ end subroutine psb_dcssm
|
|
|
|
subroutine psb_dcssv(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
!!$ subroutine psb_dcssv(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
type(psb_dspmat_type) :: t
|
|
|
|
!!$ type(psb_dspmat_type) :: t
|
|
|
|
real(psb_dpk_) :: alpha, beta, b(:), c(:)
|
|
|
|
!!$ real(psb_dpk_) :: alpha, beta, b(:), c(:)
|
|
|
|
integer :: info
|
|
|
|
!!$ integer :: info
|
|
|
|
character, optional :: trans, unitd
|
|
|
|
!!$ character, optional :: trans, unitd
|
|
|
|
real(psb_dpk_), optional, target :: d(:)
|
|
|
|
!!$ real(psb_dpk_), optional, target :: d(:)
|
|
|
|
end subroutine psb_dcssv
|
|
|
|
!!$ end subroutine psb_dcssv
|
|
|
|
subroutine psb_ccssm(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
!!$ subroutine psb_ccssm(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
type(psb_cspmat_type) :: t
|
|
|
|
!!$ type(psb_cspmat_type) :: t
|
|
|
|
complex(psb_spk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
!!$ complex(psb_spk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
integer :: info
|
|
|
|
!!$ integer :: info
|
|
|
|
character, optional :: trans, unitd
|
|
|
|
!!$ character, optional :: trans, unitd
|
|
|
|
complex(psb_spk_), optional, target :: d(:)
|
|
|
|
!!$ complex(psb_spk_), optional, target :: d(:)
|
|
|
|
end subroutine psb_ccssm
|
|
|
|
!!$ end subroutine psb_ccssm
|
|
|
|
subroutine psb_ccssv(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
!!$ subroutine psb_ccssv(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
type(psb_cspmat_type) :: t
|
|
|
|
!!$ type(psb_cspmat_type) :: t
|
|
|
|
complex(psb_spk_) :: alpha, beta, b(:), c(:)
|
|
|
|
!!$ complex(psb_spk_) :: alpha, beta, b(:), c(:)
|
|
|
|
integer :: info
|
|
|
|
!!$ integer :: info
|
|
|
|
character, optional :: trans, unitd
|
|
|
|
!!$ character, optional :: trans, unitd
|
|
|
|
complex(psb_spk_), optional, target :: d(:)
|
|
|
|
!!$ complex(psb_spk_), optional, target :: d(:)
|
|
|
|
end subroutine psb_ccssv
|
|
|
|
!!$ end subroutine psb_ccssv
|
|
|
|
subroutine psb_zcssm(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
!!$ subroutine psb_zcssm(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
type(psb_zspmat_type) :: t
|
|
|
|
!!$ type(psb_zspmat_type) :: t
|
|
|
|
complex(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
!!$ complex(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
integer :: info
|
|
|
|
!!$ integer :: info
|
|
|
|
character, optional :: trans, unitd
|
|
|
|
!!$ character, optional :: trans, unitd
|
|
|
|
complex(psb_dpk_), optional, target :: d(:)
|
|
|
|
!!$ complex(psb_dpk_), optional, target :: d(:)
|
|
|
|
end subroutine psb_zcssm
|
|
|
|
!!$ end subroutine psb_zcssm
|
|
|
|
subroutine psb_zcssv(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
!!$ subroutine psb_zcssv(alpha,t,b,beta,c,info,trans,unitd,d)
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
type(psb_zspmat_type) :: t
|
|
|
|
!!$ type(psb_zspmat_type) :: t
|
|
|
|
complex(psb_dpk_) :: alpha, beta, b(:), c(:)
|
|
|
|
!!$ complex(psb_dpk_) :: alpha, beta, b(:), c(:)
|
|
|
|
integer :: info
|
|
|
|
!!$ integer :: info
|
|
|
|
character, optional :: trans, unitd
|
|
|
|
!!$ character, optional :: trans, unitd
|
|
|
|
complex(psb_dpk_), optional, target :: d(:)
|
|
|
|
!!$ complex(psb_dpk_), optional, target :: d(:)
|
|
|
|
end subroutine psb_zcssv
|
|
|
|
!!$ end subroutine psb_zcssv
|
|
|
|
end interface
|
|
|
|
!!$ end interface
|
|
|
|
|
|
|
|
|
|
|
|
interface psb_csmm
|
|
|
|
!!$ interface psb_csmm
|
|
|
|
subroutine psb_scsmv(alpha,a,b,beta,c,info,trans)
|
|
|
|
!!$ module procedure psb_scsmm, psb_scsmv, psb_dcsmm, psb_dcsmv,&
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ & psb_ccsmm, psb_ccsmv, psb_zcsmm, psb_zcsmv
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ subroutine psb_scsmv(alpha,a,b,beta,c,info,trans)
|
|
|
|
type(psb_sspmat_type) :: a
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
real(psb_spk_) :: alpha, beta, b(:), c(:)
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
integer :: info
|
|
|
|
!!$ type(psb_sspmat_type) :: a
|
|
|
|
character, optional :: trans
|
|
|
|
!!$ real(psb_spk_) :: alpha, beta, b(:), c(:)
|
|
|
|
end subroutine psb_scsmv
|
|
|
|
!!$ integer :: info
|
|
|
|
subroutine psb_scsmm(alpha,a,b,beta,c,info,trans)
|
|
|
|
!!$ character, optional :: trans
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ end subroutine psb_scsmv
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ subroutine psb_scsmm(alpha,a,b,beta,c,info,trans)
|
|
|
|
type(psb_sspmat_type) :: a
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
real(psb_spk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
integer :: info
|
|
|
|
!!$ type(psb_sspmat_type) :: a
|
|
|
|
character, optional :: trans
|
|
|
|
!!$ real(psb_spk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
end subroutine psb_scsmm
|
|
|
|
!!$ integer :: info
|
|
|
|
subroutine psb_dcsmv(alpha,a,b,beta,c,info,trans)
|
|
|
|
!!$ character, optional :: trans
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ end subroutine psb_scsmm
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ subroutine psb_dcsmv(alpha,a,b,beta,c,info,trans)
|
|
|
|
type(psb_dspmat_type) :: a
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
real(psb_dpk_) :: alpha, beta, b(:), c(:)
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
integer :: info
|
|
|
|
!!$ type(psb_dspmat_type) :: a
|
|
|
|
character, optional :: trans
|
|
|
|
!!$ real(psb_dpk_) :: alpha, beta, b(:), c(:)
|
|
|
|
end subroutine psb_dcsmv
|
|
|
|
!!$ integer :: info
|
|
|
|
subroutine psb_dcsmm(alpha,a,b,beta,c,info,trans)
|
|
|
|
!!$ character, optional :: trans
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ end subroutine psb_dcsmv
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ subroutine psb_dcsmm(alpha,a,b,beta,c,info,trans)
|
|
|
|
type(psb_dspmat_type) :: a
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
real(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
integer :: info
|
|
|
|
!!$ type(psb_dspmat_type) :: a
|
|
|
|
character, optional :: trans
|
|
|
|
!!$ real(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
end subroutine psb_dcsmm
|
|
|
|
!!$ integer :: info
|
|
|
|
subroutine psb_ccsmv(alpha,a,b,beta,c,info,trans)
|
|
|
|
!!$ character, optional :: trans
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ end subroutine psb_dcsmm
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ subroutine psb_ccsmv(alpha,a,b,beta,c,info,trans)
|
|
|
|
type(psb_cspmat_type) :: a
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
complex(psb_spk_) :: alpha, beta, b(:), c(:)
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
integer :: info
|
|
|
|
!!$ type(psb_cspmat_type) :: a
|
|
|
|
character, optional :: trans
|
|
|
|
!!$ complex(psb_spk_) :: alpha, beta, b(:), c(:)
|
|
|
|
end subroutine psb_ccsmv
|
|
|
|
!!$ integer :: info
|
|
|
|
subroutine psb_ccsmm(alpha,a,b,beta,c,info,trans)
|
|
|
|
!!$ character, optional :: trans
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ end subroutine psb_ccsmv
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ subroutine psb_ccsmm(alpha,a,b,beta,c,info,trans)
|
|
|
|
type(psb_cspmat_type) :: a
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
complex(psb_spk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
integer :: info
|
|
|
|
!!$ type(psb_cspmat_type) :: a
|
|
|
|
character, optional :: trans
|
|
|
|
!!$ complex(psb_spk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
end subroutine psb_ccsmm
|
|
|
|
!!$ integer :: info
|
|
|
|
subroutine psb_zcsmv(alpha,a,b,beta,c,info,trans)
|
|
|
|
!!$ character, optional :: trans
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ end subroutine psb_ccsmm
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ subroutine psb_zcsmv(alpha,a,b,beta,c,info,trans)
|
|
|
|
type(psb_zspmat_type) :: a
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
complex(psb_dpk_) :: alpha, beta, b(:), c(:)
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
integer :: info
|
|
|
|
!!$ type(psb_zspmat_type) :: a
|
|
|
|
character, optional :: trans
|
|
|
|
!!$ complex(psb_dpk_) :: alpha, beta, b(:), c(:)
|
|
|
|
end subroutine psb_zcsmv
|
|
|
|
!!$ integer :: info
|
|
|
|
subroutine psb_zcsmm(alpha,a,b,beta,c,info,trans)
|
|
|
|
!!$ character, optional :: trans
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
!!$ end subroutine psb_zcsmv
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
!!$ subroutine psb_zcsmm(alpha,a,b,beta,c,info,trans)
|
|
|
|
type(psb_zspmat_type) :: a
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
complex(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
integer :: info
|
|
|
|
!!$ type(psb_zspmat_type) :: a
|
|
|
|
character, optional :: trans
|
|
|
|
!!$ complex(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
|
|
|
|
end subroutine psb_zcsmm
|
|
|
|
!!$ integer :: info
|
|
|
|
end interface
|
|
|
|
!!$ character, optional :: trans
|
|
|
|
|
|
|
|
!!$ end subroutine psb_zcsmm
|
|
|
|
|
|
|
|
!!$ end interface
|
|
|
|
|
|
|
|
|
|
|
|
interface psb_cest
|
|
|
|
interface psb_cest
|
|
|
|
subroutine psb_cest(afmt, m,n,nnz, lia1, lia2, lar, iup, info)
|
|
|
|
subroutine psb_cest(afmt, m,n,nnz, lia1, lia2, lar, iup, info)
|
|
|
|