|
|
|
@ -49,8 +49,7 @@ module psb_serial_mod
|
|
|
|
|
!!$ character, optional :: trans
|
|
|
|
|
!!$ end subroutine psb_dcsrws
|
|
|
|
|
subroutine psb_zcsrws(rw,a,info,trans)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type) :: a
|
|
|
|
|
complex(psb_dpk_), allocatable :: rw(:)
|
|
|
|
|
integer :: info
|
|
|
|
@ -211,23 +210,23 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_spcnv
|
|
|
|
|
subroutine psb_sspcnv2(ain, a, info, afmt, upd, dupl)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent (in) :: ain
|
|
|
|
|
type(psb_sspmat_type), intent (out) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer,optional, intent(in) :: dupl, upd
|
|
|
|
|
character(len=*), optional, intent(in) :: afmt
|
|
|
|
|
end subroutine psb_sspcnv2
|
|
|
|
|
subroutine psb_sspcnv1(a, info, afmt, upd, dupl)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent (inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer,optional, intent(in) :: dupl, upd
|
|
|
|
|
character(len=*), optional, intent(in) :: afmt
|
|
|
|
|
end subroutine psb_sspcnv1
|
|
|
|
|
!!$ subroutine psb_sspcnv2(ain, a, info, afmt, upd, dupl)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent (in) :: ain
|
|
|
|
|
!!$ type(psb_sspmat_type), intent (out) :: a
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ integer,optional, intent(in) :: dupl, upd
|
|
|
|
|
!!$ character(len=*), optional, intent(in) :: afmt
|
|
|
|
|
!!$ end subroutine psb_sspcnv2
|
|
|
|
|
!!$ subroutine psb_sspcnv1(a, info, afmt, upd, dupl)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent (inout) :: a
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ integer,optional, intent(in) :: dupl, upd
|
|
|
|
|
!!$ character(len=*), optional, intent(in) :: afmt
|
|
|
|
|
!!$ end subroutine psb_sspcnv1
|
|
|
|
|
!!$ subroutine psb_dspcnv2(ain, a, info, afmt, upd, dupl)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -246,8 +245,7 @@ module psb_serial_mod
|
|
|
|
|
!!$ character(len=*), optional, intent(in) :: afmt
|
|
|
|
|
!!$ end subroutine psb_dspcnv1
|
|
|
|
|
subroutine psb_cspcnv2(ain, a, info, afmt, upd, dupl)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent (in) :: ain
|
|
|
|
|
type(psb_cspmat_type), intent (out) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
@ -255,16 +253,14 @@ module psb_serial_mod
|
|
|
|
|
character(len=*), optional, intent(in) :: afmt
|
|
|
|
|
end subroutine psb_cspcnv2
|
|
|
|
|
subroutine psb_cspcnv1(a, info, afmt, upd, dupl)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent (inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer,optional, intent(in) :: dupl, upd
|
|
|
|
|
character(len=*), optional, intent(in) :: afmt
|
|
|
|
|
end subroutine psb_cspcnv1
|
|
|
|
|
subroutine psb_zspcnv2(ain, a, info, afmt, upd, dupl)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent (in) :: ain
|
|
|
|
|
type(psb_zspmat_type), intent (out) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
@ -272,8 +268,7 @@ module psb_serial_mod
|
|
|
|
|
character(len=*), optional, intent(in) :: afmt
|
|
|
|
|
end subroutine psb_zspcnv2
|
|
|
|
|
subroutine psb_zspcnv1(a, info, afmt, upd, dupl)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent (inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer,optional, intent(in) :: dupl, upd
|
|
|
|
@ -284,13 +279,13 @@ module psb_serial_mod
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
interface psb_fixcoo
|
|
|
|
|
subroutine psb_sfixcoo(a,info,idir)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer, intent(in), optional :: idir
|
|
|
|
|
end subroutine psb_sfixcoo
|
|
|
|
|
!!$ subroutine psb_sfixcoo(a,info,idir)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ integer, intent(in), optional :: idir
|
|
|
|
|
!!$ end subroutine psb_sfixcoo
|
|
|
|
|
!!$ subroutine psb_dfixcoo(a,info,idir)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -299,15 +294,13 @@ module psb_serial_mod
|
|
|
|
|
!!$ integer, intent(in), optional :: idir
|
|
|
|
|
!!$ end subroutine psb_dfixcoo
|
|
|
|
|
subroutine psb_cfixcoo(a,info,idir)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer, intent(in), optional :: idir
|
|
|
|
|
end subroutine psb_cfixcoo
|
|
|
|
|
subroutine psb_zfixcoo(a,info,idir)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer, intent(in), optional :: idir
|
|
|
|
@ -315,13 +308,13 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_ipcoo2csr
|
|
|
|
|
subroutine psb_sipcoo2csr(a,info,rwshr)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
logical, optional :: rwshr
|
|
|
|
|
end subroutine psb_sipcoo2csr
|
|
|
|
|
!!$ subroutine psb_sipcoo2csr(a,info,rwshr)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ logical, optional :: rwshr
|
|
|
|
|
!!$ end subroutine psb_sipcoo2csr
|
|
|
|
|
!!$ subroutine psb_dipcoo2csr(a,info,rwshr)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -330,15 +323,13 @@ module psb_serial_mod
|
|
|
|
|
!!$ logical, optional :: rwshr
|
|
|
|
|
!!$ end subroutine psb_dipcoo2csr
|
|
|
|
|
subroutine psb_cipcoo2csr(a,info,rwshr)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
logical, optional :: rwshr
|
|
|
|
|
end subroutine psb_cipcoo2csr
|
|
|
|
|
subroutine psb_zipcoo2csr(a,info,rwshr)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
logical, optional :: rwshr
|
|
|
|
@ -346,13 +337,13 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_ipcoo2csc
|
|
|
|
|
subroutine psb_sipcoo2csc(a,info,clshr)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
logical, optional :: clshr
|
|
|
|
|
end subroutine psb_sipcoo2csc
|
|
|
|
|
!!$ subroutine psb_sipcoo2csc(a,info,clshr)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ logical, optional :: clshr
|
|
|
|
|
!!$ end subroutine psb_sipcoo2csc
|
|
|
|
|
!!$ subroutine psb_dipcoo2csc(a,info,clshr)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -361,15 +352,13 @@ module psb_serial_mod
|
|
|
|
|
!!$ logical, optional :: clshr
|
|
|
|
|
!!$ end subroutine psb_dipcoo2csc
|
|
|
|
|
subroutine psb_cipcoo2csc(a,info,clshr)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
logical, optional :: clshr
|
|
|
|
|
end subroutine psb_cipcoo2csc
|
|
|
|
|
subroutine psb_zipcoo2csc(a,info,clshr)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
logical, optional :: clshr
|
|
|
|
@ -377,12 +366,12 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_ipcsr2coo
|
|
|
|
|
subroutine psb_sipcsr2coo(a,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_sipcsr2coo
|
|
|
|
|
!!$ subroutine psb_sipcsr2coo(a,info)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ end subroutine psb_sipcsr2coo
|
|
|
|
|
!!$ subroutine psb_dipcsr2coo(a,info)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -390,30 +379,28 @@ module psb_serial_mod
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ end subroutine psb_dipcsr2coo
|
|
|
|
|
subroutine psb_cipcsr2coo(a,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_cipcsr2coo
|
|
|
|
|
subroutine psb_zipcsr2coo(a,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_zipcsr2coo
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_csprt
|
|
|
|
|
subroutine psb_scsprt(iout,a,iv,irs,ics,head,ivr,ivc)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
integer, intent(in) :: iout
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(in), optional :: iv(:)
|
|
|
|
|
integer, intent(in), optional :: irs,ics
|
|
|
|
|
character(len=*), optional :: head
|
|
|
|
|
integer, intent(in), optional :: ivr(:),ivc(:)
|
|
|
|
|
end subroutine psb_scsprt
|
|
|
|
|
!!$ subroutine psb_scsprt(iout,a,iv,irs,ics,head,ivr,ivc)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ integer, intent(in) :: iout
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
!!$ integer, intent(in), optional :: iv(:)
|
|
|
|
|
!!$ integer, intent(in), optional :: irs,ics
|
|
|
|
|
!!$ character(len=*), optional :: head
|
|
|
|
|
!!$ integer, intent(in), optional :: ivr(:),ivc(:)
|
|
|
|
|
!!$ end subroutine psb_scsprt
|
|
|
|
|
!!$ subroutine psb_dcsprt(iout,a,iv,irs,ics,head,ivr,ivc)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -425,8 +412,7 @@ module psb_serial_mod
|
|
|
|
|
!!$ integer, intent(in), optional :: ivr(:),ivc(:)
|
|
|
|
|
!!$ end subroutine psb_dcsprt
|
|
|
|
|
subroutine psb_ccsprt(iout,a,iv,irs,ics,head,ivr,ivc)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
integer, intent(in) :: iout
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(in), optional :: iv(:)
|
|
|
|
@ -435,8 +421,7 @@ module psb_serial_mod
|
|
|
|
|
integer, intent(in), optional :: ivr(:),ivc(:)
|
|
|
|
|
end subroutine psb_ccsprt
|
|
|
|
|
subroutine psb_zcsprt(iout,a,iv,irs,ics,head,ivr,ivc)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
integer, intent(in) :: iout
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(in), optional :: iv(:)
|
|
|
|
@ -447,16 +432,16 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_neigh
|
|
|
|
|
subroutine psb_sneigh(a,idx,neigh,n,info,lev)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(in) :: idx
|
|
|
|
|
integer, intent(out) :: n
|
|
|
|
|
integer, allocatable :: neigh(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer, optional, intent(in) :: lev
|
|
|
|
|
end subroutine psb_sneigh
|
|
|
|
|
!!$ subroutine psb_sneigh(a,idx,neigh,n,info,lev)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
!!$ integer, intent(in) :: idx
|
|
|
|
|
!!$ integer, intent(out) :: n
|
|
|
|
|
!!$ integer, allocatable :: neigh(:)
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ integer, optional, intent(in) :: lev
|
|
|
|
|
!!$ end subroutine psb_sneigh
|
|
|
|
|
!!$ subroutine psb_dneigh(a,idx,neigh,n,info,lev)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -468,8 +453,7 @@ module psb_serial_mod
|
|
|
|
|
!!$ integer, optional, intent(in) :: lev
|
|
|
|
|
!!$ end subroutine psb_dneigh
|
|
|
|
|
subroutine psb_cneigh(a,idx,neigh,n,info,lev)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(in) :: idx
|
|
|
|
|
integer, intent(out) :: n
|
|
|
|
@ -478,8 +462,7 @@ module psb_serial_mod
|
|
|
|
|
integer, optional, intent(in) :: lev
|
|
|
|
|
end subroutine psb_cneigh
|
|
|
|
|
subroutine psb_zneigh(a,idx,neigh,n,info,lev)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(in) :: idx
|
|
|
|
|
integer, intent(out) :: n
|
|
|
|
@ -490,17 +473,17 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_coins
|
|
|
|
|
subroutine psb_scoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax
|
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
|
real(psb_spk_), intent(in) :: val(:)
|
|
|
|
|
type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer, intent(in), optional :: gtl(:)
|
|
|
|
|
logical, optional, intent(in) :: rebuild
|
|
|
|
|
end subroutine psb_scoins
|
|
|
|
|
!!$ subroutine psb_scoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ integer, intent(in) :: nz, imin,imax,jmin,jmax
|
|
|
|
|
!!$ integer, intent(in) :: ia(:),ja(:)
|
|
|
|
|
!!$ real(psb_spk_), intent(in) :: val(:)
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ integer, intent(in), optional :: gtl(:)
|
|
|
|
|
!!$ logical, optional, intent(in) :: rebuild
|
|
|
|
|
!!$ end subroutine psb_scoins
|
|
|
|
|
!!$ subroutine psb_dcoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -513,8 +496,7 @@ module psb_serial_mod
|
|
|
|
|
!!$ logical, optional, intent(in) :: rebuild
|
|
|
|
|
!!$ end subroutine psb_dcoins
|
|
|
|
|
subroutine psb_ccoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax
|
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
|
complex(psb_spk_), intent(in) :: val(:)
|
|
|
|
@ -524,8 +506,7 @@ module psb_serial_mod
|
|
|
|
|
logical, optional, intent(in) :: rebuild
|
|
|
|
|
end subroutine psb_ccoins
|
|
|
|
|
subroutine psb_zcoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
integer, intent(in) :: nz, imin,imax,jmin,jmax
|
|
|
|
|
integer, intent(in) :: ia(:),ja(:)
|
|
|
|
|
complex(psb_dpk_), intent(in) :: val(:)
|
|
|
|
@ -538,12 +519,12 @@ module psb_serial_mod
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
interface psb_symbmm
|
|
|
|
|
subroutine psb_ssymbmm(a,b,c,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type) :: a,b,c
|
|
|
|
|
integer :: info
|
|
|
|
|
end subroutine psb_ssymbmm
|
|
|
|
|
!!$ subroutine psb_ssymbmm(a,b,c,info)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type) :: a,b,c
|
|
|
|
|
!!$ integer :: info
|
|
|
|
|
!!$ end subroutine psb_ssymbmm
|
|
|
|
|
!!$ subroutine psb_dsymbmm(a,b,c,info)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -551,51 +532,47 @@ module psb_serial_mod
|
|
|
|
|
!!$ integer :: info
|
|
|
|
|
!!$ end subroutine psb_dsymbmm
|
|
|
|
|
subroutine psb_csymbmm(a,b,c,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type) :: a,b,c
|
|
|
|
|
integer :: info
|
|
|
|
|
end subroutine psb_csymbmm
|
|
|
|
|
subroutine psb_zsymbmm(a,b,c,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type) :: a,b,c
|
|
|
|
|
integer :: info
|
|
|
|
|
end subroutine psb_zsymbmm
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_numbmm
|
|
|
|
|
subroutine psb_snumbmm(a,b,c)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type) :: a,b,c
|
|
|
|
|
end subroutine psb_snumbmm
|
|
|
|
|
!!$ subroutine psb_snumbmm(a,b,c)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type) :: a,b,c
|
|
|
|
|
!!$ end subroutine psb_snumbmm
|
|
|
|
|
!!$ subroutine psb_dnumbmm(a,b,c)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_dspmat_type) :: a,b,c
|
|
|
|
|
!!$ end subroutine psb_dnumbmm
|
|
|
|
|
subroutine psb_cnumbmm(a,b,c)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type) :: a,b,c
|
|
|
|
|
end subroutine psb_cnumbmm
|
|
|
|
|
subroutine psb_znumbmm(a,b,c)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type) :: a,b,c
|
|
|
|
|
end subroutine psb_znumbmm
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_transp
|
|
|
|
|
subroutine psb_stransp(a,b,c,fmt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_sspmat_type), intent(out) :: b
|
|
|
|
|
integer, optional :: c
|
|
|
|
|
character(len=*), optional :: fmt
|
|
|
|
|
end subroutine psb_stransp
|
|
|
|
|
!!$ subroutine psb_stransp(a,b,c,fmt)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(out) :: b
|
|
|
|
|
!!$ integer, optional :: c
|
|
|
|
|
!!$ character(len=*), optional :: fmt
|
|
|
|
|
!!$ end subroutine psb_stransp
|
|
|
|
|
!!$ subroutine psb_dtransp(a,b,c,fmt)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -605,28 +582,26 @@ module psb_serial_mod
|
|
|
|
|
!!$ character(len=*), optional :: fmt
|
|
|
|
|
!!$ end subroutine psb_dtransp
|
|
|
|
|
subroutine psb_ctransp(a,b,c,fmt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_cspmat_type), intent(out) :: b
|
|
|
|
|
integer, optional :: c
|
|
|
|
|
character(len=*), optional :: fmt
|
|
|
|
|
end subroutine psb_ctransp
|
|
|
|
|
subroutine psb_ztransp(a,b,c,fmt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_zspmat_type), intent(out) :: b
|
|
|
|
|
integer, optional :: c
|
|
|
|
|
character(len=*), optional :: fmt
|
|
|
|
|
end subroutine psb_ztransp
|
|
|
|
|
subroutine psb_stransp1(a,c,fmt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
integer, optional :: c
|
|
|
|
|
character(len=*), optional :: fmt
|
|
|
|
|
end subroutine psb_stransp1
|
|
|
|
|
!!$ subroutine psb_stransp1(a,c,fmt)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
!!$ integer, optional :: c
|
|
|
|
|
!!$ character(len=*), optional :: fmt
|
|
|
|
|
!!$ end subroutine psb_stransp1
|
|
|
|
|
!!$ subroutine psb_dtransp1(a,c,fmt)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -635,15 +610,13 @@ module psb_serial_mod
|
|
|
|
|
!!$ character(len=*), optional :: fmt
|
|
|
|
|
!!$ end subroutine psb_dtransp1
|
|
|
|
|
subroutine psb_ctransp1(a,c,fmt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(inout) :: a
|
|
|
|
|
integer, optional :: c
|
|
|
|
|
character(len=*), optional :: fmt
|
|
|
|
|
end subroutine psb_ctransp1
|
|
|
|
|
subroutine psb_ztransp1(a,c,fmt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
|
integer, optional :: c
|
|
|
|
|
character(len=*), optional :: fmt
|
|
|
|
@ -652,16 +625,14 @@ module psb_serial_mod
|
|
|
|
|
|
|
|
|
|
interface psb_transc
|
|
|
|
|
subroutine psb_ctransc(a,b,c,fmt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_cspmat_type), intent(out) :: b
|
|
|
|
|
integer, optional :: c
|
|
|
|
|
character(len=*), optional :: fmt
|
|
|
|
|
end subroutine psb_ctransc
|
|
|
|
|
subroutine psb_ztransc(a,b,c,fmt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_zspmat_type), intent(out) :: b
|
|
|
|
|
integer, optional :: c
|
|
|
|
@ -670,15 +641,15 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_rwextd
|
|
|
|
|
subroutine psb_srwextd(nr,a,info,b,rowscale)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
integer, intent(in) :: nr
|
|
|
|
|
type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
type(psb_sspmat_type), intent(in), optional :: b
|
|
|
|
|
logical, intent(in), optional :: rowscale
|
|
|
|
|
end subroutine psb_srwextd
|
|
|
|
|
!!$ subroutine psb_srwextd(nr,a,info,b,rowscale)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ integer, intent(in) :: nr
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(in), optional :: b
|
|
|
|
|
!!$ logical, intent(in), optional :: rowscale
|
|
|
|
|
!!$ end subroutine psb_srwextd
|
|
|
|
|
!!$ subroutine psb_drwextd(nr,a,info,b,rowscale)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -689,8 +660,7 @@ module psb_serial_mod
|
|
|
|
|
!!$ logical, intent(in), optional :: rowscale
|
|
|
|
|
!!$ end subroutine psb_drwextd
|
|
|
|
|
subroutine psb_crwextd(nr,a,info,b,rowscale)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
integer, intent(in) :: nr
|
|
|
|
|
type(psb_cspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
@ -698,8 +668,7 @@ module psb_serial_mod
|
|
|
|
|
logical, intent(in), optional :: rowscale
|
|
|
|
|
end subroutine psb_crwextd
|
|
|
|
|
subroutine psb_zrwextd(nr,a,info,b,rowscale)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
integer, intent(in) :: nr
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
@ -709,14 +678,14 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_csnmi
|
|
|
|
|
function psb_scsnmi(a,info,trans)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, optional :: trans
|
|
|
|
|
real(psb_spk_) :: psb_scsnmi
|
|
|
|
|
end function psb_scsnmi
|
|
|
|
|
!!$ function psb_scsnmi(a,info,trans)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ character, optional :: trans
|
|
|
|
|
!!$ real(psb_spk_) :: psb_scsnmi
|
|
|
|
|
!!$ end function psb_scsnmi
|
|
|
|
|
!!$ function psb_dcsnmi(a,info,trans)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -726,16 +695,14 @@ module psb_serial_mod
|
|
|
|
|
!!$ real(psb_dpk_) :: psb_dcsnmi
|
|
|
|
|
!!$ end function psb_dcsnmi
|
|
|
|
|
function psb_ccsnmi(a,info,trans)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, optional :: trans
|
|
|
|
|
real(psb_spk_) :: psb_ccsnmi
|
|
|
|
|
end function psb_ccsnmi
|
|
|
|
|
function psb_zcsnmi(a,info,trans)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, optional :: trans
|
|
|
|
@ -744,16 +711,16 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_sp_clip
|
|
|
|
|
subroutine psb_sspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
implicit none
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_sspmat_type), intent(out) :: b
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer, intent(in), optional :: imin,imax,jmin,jmax
|
|
|
|
|
logical, intent(in), optional :: rscale,cscale
|
|
|
|
|
end subroutine psb_sspclip
|
|
|
|
|
!!$ subroutine psb_sspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ implicit none
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(out) :: b
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ integer, intent(in), optional :: imin,imax,jmin,jmax
|
|
|
|
|
!!$ logical, intent(in), optional :: rscale,cscale
|
|
|
|
|
!!$ end subroutine psb_sspclip
|
|
|
|
|
!!$ subroutine psb_dspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -765,8 +732,7 @@ module psb_serial_mod
|
|
|
|
|
!!$ logical, intent(in), optional :: rscale,cscale
|
|
|
|
|
!!$ end subroutine psb_dspclip
|
|
|
|
|
subroutine psb_cspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
implicit none
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_cspmat_type), intent(out) :: b
|
|
|
|
@ -775,8 +741,7 @@ module psb_serial_mod
|
|
|
|
|
logical, intent(in), optional :: rscale,cscale
|
|
|
|
|
end subroutine psb_cspclip
|
|
|
|
|
subroutine psb_zspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
implicit none
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_zspmat_type), intent(out) :: b
|
|
|
|
@ -787,13 +752,13 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_sp_getdiag
|
|
|
|
|
subroutine psb_sspgtdiag(a,d,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
real(psb_spk_), intent(inout) :: d(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_sspgtdiag
|
|
|
|
|
!!$ subroutine psb_sspgtdiag(a,d,info)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
!!$ real(psb_spk_), intent(inout) :: d(:)
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ end subroutine psb_sspgtdiag
|
|
|
|
|
!!$ subroutine psb_dspgtdiag(a,d,info)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -802,15 +767,13 @@ module psb_serial_mod
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ end subroutine psb_dspgtdiag
|
|
|
|
|
subroutine psb_cspgtdiag(a,d,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
complex(psb_spk_), intent(inout) :: d(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_cspgtdiag
|
|
|
|
|
subroutine psb_zspgtdiag(a,d,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
complex(psb_dpk_), intent(inout) :: d(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
@ -818,20 +781,20 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_sp_scal
|
|
|
|
|
subroutine psb_sspscals(a,d,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
real(psb_spk_), intent(in) :: d
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_sspscals
|
|
|
|
|
subroutine psb_sspscal(a,d,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
real(psb_spk_), intent(in) :: d(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_sspscal
|
|
|
|
|
!!$ subroutine psb_sspscals(a,d,info)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
!!$ real(psb_spk_), intent(in) :: d
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ end subroutine psb_sspscals
|
|
|
|
|
!!$ subroutine psb_sspscal(a,d,info)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(inout) :: a
|
|
|
|
|
!!$ real(psb_spk_), intent(in) :: d(:)
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ end subroutine psb_sspscal
|
|
|
|
|
!!$ subroutine psb_dspscals(a,d,info)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -847,29 +810,25 @@ module psb_serial_mod
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ end subroutine psb_dspscal
|
|
|
|
|
subroutine psb_cspscals(a,d,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(inout) :: a
|
|
|
|
|
complex(psb_spk_), intent(in) :: d
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_cspscals
|
|
|
|
|
subroutine psb_cspscal(a,d,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(inout) :: a
|
|
|
|
|
complex(psb_spk_), intent(in) :: d(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_cspscal
|
|
|
|
|
subroutine psb_zspscals(a,d,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
|
complex(psb_dpk_), intent(in) :: d
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_zspscals
|
|
|
|
|
subroutine psb_zspscal(a,d,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
|
complex(psb_dpk_), intent(in) :: d(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
@ -892,14 +851,12 @@ module psb_serial_mod
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ end subroutine psb_dspsetbld2
|
|
|
|
|
subroutine psb_zspsetbld1(a,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psb_zspsetbld1
|
|
|
|
|
subroutine psb_zspsetbld2(a,b,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_zspmat_type), intent(out) :: b
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
@ -916,8 +873,7 @@ module psb_serial_mod
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ end subroutine psb_dspshift
|
|
|
|
|
subroutine psb_zspshift(alpha,a,beta,b,info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_zspmat_type), intent(out) :: b
|
|
|
|
|
complex(psb_dpk_), intent(in) :: alpha, beta
|
|
|
|
@ -926,18 +882,18 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_sp_getblk
|
|
|
|
|
subroutine psb_sspgtblk(irw,a,b,info,append,iren,lrw,srt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(in) :: irw
|
|
|
|
|
type(psb_sspmat_type), intent(inout) :: b
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
logical, intent(in), optional :: append
|
|
|
|
|
integer, intent(in), target, optional :: iren(:)
|
|
|
|
|
integer, intent(in), optional :: lrw
|
|
|
|
|
logical, intent(in), optional :: srt
|
|
|
|
|
end subroutine psb_sspgtblk
|
|
|
|
|
!!$ subroutine psb_sspgtblk(irw,a,b,info,append,iren,lrw,srt)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
!!$ integer, intent(in) :: irw
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(inout) :: b
|
|
|
|
|
!!$ integer, intent(out) :: info
|
|
|
|
|
!!$ logical, intent(in), optional :: append
|
|
|
|
|
!!$ integer, intent(in), target, optional :: iren(:)
|
|
|
|
|
!!$ integer, intent(in), optional :: lrw
|
|
|
|
|
!!$ logical, intent(in), optional :: srt
|
|
|
|
|
!!$ end subroutine psb_sspgtblk
|
|
|
|
|
!!$ subroutine psb_dspgtblk(irw,a,b,info,append,iren,lrw,srt)
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
@ -951,8 +907,7 @@ module psb_serial_mod
|
|
|
|
|
!!$ logical, intent(in), optional :: srt
|
|
|
|
|
!!$ end subroutine psb_dspgtblk
|
|
|
|
|
subroutine psb_cspgtblk(irw,a,b,info,append,iren,lrw,srt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(in) :: irw
|
|
|
|
|
type(psb_cspmat_type), intent(inout) :: b
|
|
|
|
@ -963,8 +918,7 @@ module psb_serial_mod
|
|
|
|
|
logical, intent(in), optional :: srt
|
|
|
|
|
end subroutine psb_cspgtblk
|
|
|
|
|
subroutine psb_zspgtblk(irw,a,b,info,append,iren,lrw,srt)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(in) :: irw
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: b
|
|
|
|
@ -977,22 +931,22 @@ module psb_serial_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface psb_sp_getrow
|
|
|
|
|
subroutine psb_sspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin)
|
|
|
|
|
! Output is always in COO format
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
implicit none
|
|
|
|
|
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
integer, intent(in) :: irw
|
|
|
|
|
integer, intent(out) :: nz
|
|
|
|
|
integer, allocatable, intent(inout) :: ia(:), ja(:)
|
|
|
|
|
real(psb_spk_), allocatable, intent(inout) :: val(:)
|
|
|
|
|
integer,intent(out) :: info
|
|
|
|
|
logical, intent(in), optional :: append
|
|
|
|
|
integer, intent(in), optional :: iren(:)
|
|
|
|
|
integer, intent(in), optional :: lrw, nzin
|
|
|
|
|
end subroutine psb_sspgetrow
|
|
|
|
|
!!$ subroutine psb_sspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin)
|
|
|
|
|
!!$ ! Output is always in COO format
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
!!$ & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
!!$ implicit none
|
|
|
|
|
!!$
|
|
|
|
|
!!$ type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
!!$ integer, intent(in) :: irw
|
|
|
|
|
!!$ integer, intent(out) :: nz
|
|
|
|
|
!!$ integer, allocatable, intent(inout) :: ia(:), ja(:)
|
|
|
|
|
!!$ real(psb_spk_), allocatable, intent(inout) :: val(:)
|
|
|
|
|
!!$ integer,intent(out) :: info
|
|
|
|
|
!!$ logical, intent(in), optional :: append
|
|
|
|
|
!!$ integer, intent(in), optional :: iren(:)
|
|
|
|
|
!!$ integer, intent(in), optional :: lrw, nzin
|
|
|
|
|
!!$ end subroutine psb_sspgetrow
|
|
|
|
|
!!$ subroutine psb_dspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin)
|
|
|
|
|
!!$ ! Output is always in COO format
|
|
|
|
|
!!$ use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
|
|
|
|
@ -1011,8 +965,7 @@ module psb_serial_mod
|
|
|
|
|
!!$ end subroutine psb_dspgetrow
|
|
|
|
|
subroutine psb_cspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin)
|
|
|
|
|
! Output is always in COO format
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
implicit none
|
|
|
|
|
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
@ -1027,8 +980,7 @@ module psb_serial_mod
|
|
|
|
|
end subroutine psb_cspgetrow
|
|
|
|
|
subroutine psb_zspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin)
|
|
|
|
|
! Output is always in COO format
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
implicit none
|
|
|
|
|
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
@ -1054,81 +1006,12 @@ module psb_serial_mod
|
|
|
|
|
!!$ character, intent(in) :: trans
|
|
|
|
|
!!$ end subroutine psb_dcsrp
|
|
|
|
|
subroutine psb_zcsrp(trans,iperm,a, info)
|
|
|
|
|
use psb_spmat_type, only : psb_sspmat_type, &
|
|
|
|
|
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_spmat_type, only : psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
|
|
|
|
|
type(psb_zspmat_type), intent(inout) :: a
|
|
|
|
|
integer, intent(inout) :: iperm(:), info
|
|
|
|
|
character, intent(in) :: trans
|
|
|
|
|
end subroutine psb_zcsrp
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
interface psb_gelp
|
|
|
|
|
! 2-D version
|
|
|
|
|
subroutine psb_sgelp(trans,iperm,x,info)
|
|
|
|
|
use psb_const_mod
|
|
|
|
|
real(psb_spk_), intent(inout) :: x(:,:)
|
|
|
|
|
integer, intent(in) :: iperm(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, intent(in) :: trans
|
|
|
|
|
end subroutine psb_sgelp
|
|
|
|
|
! 1-D version
|
|
|
|
|
subroutine psb_sgelpv(trans,iperm,x,info)
|
|
|
|
|
use psb_const_mod
|
|
|
|
|
real(psb_spk_), intent(inout) :: x(:)
|
|
|
|
|
integer, intent(in) :: iperm(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, intent(in) :: trans
|
|
|
|
|
end subroutine psb_sgelpv
|
|
|
|
|
subroutine psb_dgelp(trans,iperm,x,info)
|
|
|
|
|
use psb_const_mod
|
|
|
|
|
real(psb_dpk_), intent(inout) :: x(:,:)
|
|
|
|
|
integer, intent(in) :: iperm(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, intent(in) :: trans
|
|
|
|
|
end subroutine psb_dgelp
|
|
|
|
|
! 1-D version
|
|
|
|
|
subroutine psb_dgelpv(trans,iperm,x,info)
|
|
|
|
|
use psb_const_mod
|
|
|
|
|
real(psb_dpk_), intent(inout) :: x(:)
|
|
|
|
|
integer, intent(in) :: iperm(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, intent(in) :: trans
|
|
|
|
|
end subroutine psb_dgelpv
|
|
|
|
|
! 2-D version
|
|
|
|
|
subroutine psb_cgelp(trans,iperm,x,info)
|
|
|
|
|
use psb_const_mod
|
|
|
|
|
complex(psb_spk_), intent(inout) :: x(:,:)
|
|
|
|
|
integer, intent(in) :: iperm(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, intent(in) :: trans
|
|
|
|
|
end subroutine psb_cgelp
|
|
|
|
|
! 1-D version
|
|
|
|
|
subroutine psb_cgelpv(trans,iperm,x,info)
|
|
|
|
|
use psb_const_mod
|
|
|
|
|
complex(psb_spk_), intent(inout) :: x(:)
|
|
|
|
|
integer, intent(in) :: iperm(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, intent(in) :: trans
|
|
|
|
|
end subroutine psb_cgelpv
|
|
|
|
|
! 2-D version
|
|
|
|
|
subroutine psb_zgelp(trans,iperm,x,info)
|
|
|
|
|
use psb_const_mod
|
|
|
|
|
complex(psb_dpk_), intent(inout) :: x(:,:)
|
|
|
|
|
integer, intent(in) :: iperm(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, intent(in) :: trans
|
|
|
|
|
end subroutine psb_zgelp
|
|
|
|
|
! 1-D version
|
|
|
|
|
subroutine psb_zgelpv(trans,iperm,x,info)
|
|
|
|
|
use psb_const_mod
|
|
|
|
|
complex(psb_dpk_), intent(inout) :: x(:)
|
|
|
|
|
integer, intent(in) :: iperm(:)
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
character, intent(in) :: trans
|
|
|
|
|
end subroutine psb_zgelpv
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end module psb_serial_mod
|
|
|
|
|
|
|
|
|
|