psblas2-dev:


			
			
				psblas3-type-indexed
			
			
		
Salvatore Filippone 17 years ago
parent f0e69ab0da
commit 5c4748c93f

@ -36,9 +36,10 @@
! to different spaces. ! to different spaces.
! !
module psb_inter_descriptor_type module psb_inter_descriptor_type
use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,& use psb_spmat_type
& psb_cspmat_type, psb_zspmat_type use psb_descriptor_type
use psb_descriptor_type, only : psb_desc_type use psb_comm_mod, only : psb_halo
use psb_serial_mod, only : psb_csmm
@ -200,7 +201,6 @@ contains
logical function psb_is_asb_inter_desc(desc) logical function psb_is_asb_inter_desc(desc)
use psb_descriptor_type
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
@ -214,7 +214,6 @@ contains
end function psb_is_asb_inter_desc end function psb_is_asb_inter_desc
logical function psb_is_ok_inter_desc(desc) logical function psb_is_ok_inter_desc(desc)
use psb_descriptor_type
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
@ -237,7 +236,6 @@ contains
function psb_s_map_sizeof(map) function psb_s_map_sizeof(map)
use psb_spmat_type
implicit none implicit none
type(psb_s_map_type), intent(in) :: map type(psb_s_map_type), intent(in) :: map
Integer :: psb_s_map_sizeof Integer :: psb_s_map_sizeof
@ -251,7 +249,6 @@ contains
end function psb_s_map_sizeof end function psb_s_map_sizeof
function psb_d_map_sizeof(map) function psb_d_map_sizeof(map)
use psb_spmat_type
implicit none implicit none
type(psb_d_map_type), intent(in) :: map type(psb_d_map_type), intent(in) :: map
Integer :: psb_d_map_sizeof Integer :: psb_d_map_sizeof
@ -265,7 +262,6 @@ contains
end function psb_d_map_sizeof end function psb_d_map_sizeof
function psb_c_map_sizeof(map) function psb_c_map_sizeof(map)
use psb_spmat_type
implicit none implicit none
type(psb_c_map_type), intent(in) :: map type(psb_c_map_type), intent(in) :: map
Integer :: psb_c_map_sizeof Integer :: psb_c_map_sizeof
@ -279,7 +275,6 @@ contains
end function psb_c_map_sizeof end function psb_c_map_sizeof
function psb_z_map_sizeof(map) function psb_z_map_sizeof(map)
use psb_spmat_type
implicit none implicit none
type(psb_z_map_type), intent(in) :: map type(psb_z_map_type), intent(in) :: map
Integer :: psb_z_map_sizeof Integer :: psb_z_map_sizeof
@ -293,8 +288,6 @@ contains
end function psb_z_map_sizeof end function psb_z_map_sizeof
function psb_itd_sizeof(desc) function psb_itd_sizeof(desc)
use psb_spmat_type
use psb_descriptor_type
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
Integer :: psb_itd_sizeof Integer :: psb_itd_sizeof
@ -313,10 +306,7 @@ contains
end function psb_itd_sizeof end function psb_itd_sizeof
function psb_s_inter_desc(map_kind,desc1,desc2,map_fw,map_bk,idx_fw,idx_bk) function psb_s_inter_desc(map_kind,desc1,desc2,map_fw,map_bk,idx_fw,idx_bk)
use psb_spmat_type
use psb_descriptor_type
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type) :: psb_s_inter_desc type(psb_inter_desc_type) :: psb_s_inter_desc
type(psb_desc_type), target :: desc1, desc2 type(psb_desc_type), target :: desc1, desc2
@ -360,10 +350,7 @@ contains
end function psb_s_inter_desc end function psb_s_inter_desc
function psb_s_inter_desc_noidx(map_kind,desc1, desc2, map_fw, map_bk) function psb_s_inter_desc_noidx(map_kind,desc1, desc2, map_fw, map_bk)
use psb_spmat_type
use psb_descriptor_type
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type) :: psb_s_inter_desc_noidx type(psb_inter_desc_type) :: psb_s_inter_desc_noidx
type(psb_desc_type), target :: desc1, desc2 type(psb_desc_type), target :: desc1, desc2
@ -413,10 +400,7 @@ contains
end function psb_s_inter_desc_noidx end function psb_s_inter_desc_noidx
function psb_d_inter_desc(map_kind,desc1,desc2,map_fw,map_bk,idx_fw,idx_bk) function psb_d_inter_desc(map_kind,desc1,desc2,map_fw,map_bk,idx_fw,idx_bk)
use psb_spmat_type
use psb_descriptor_type
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type) :: psb_d_inter_desc type(psb_inter_desc_type) :: psb_d_inter_desc
type(psb_desc_type), target :: desc1, desc2 type(psb_desc_type), target :: desc1, desc2
@ -460,10 +444,7 @@ contains
end function psb_d_inter_desc end function psb_d_inter_desc
function psb_d_inter_desc_noidx(map_kind,desc1, desc2, map_fw, map_bk) function psb_d_inter_desc_noidx(map_kind,desc1, desc2, map_fw, map_bk)
use psb_spmat_type
use psb_descriptor_type
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type) :: psb_d_inter_desc_noidx type(psb_inter_desc_type) :: psb_d_inter_desc_noidx
type(psb_desc_type), target :: desc1, desc2 type(psb_desc_type), target :: desc1, desc2
@ -513,10 +494,7 @@ contains
end function psb_d_inter_desc_noidx end function psb_d_inter_desc_noidx
function psb_c_inter_desc(map_kind,desc1, desc2, map_fw, map_bk, idx_fw, idx_bk) function psb_c_inter_desc(map_kind,desc1, desc2, map_fw, map_bk, idx_fw, idx_bk)
use psb_spmat_type
use psb_descriptor_type
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type) :: psb_c_inter_desc type(psb_inter_desc_type) :: psb_c_inter_desc
type(psb_desc_type), target :: desc1, desc2 type(psb_desc_type), target :: desc1, desc2
@ -560,10 +538,7 @@ contains
end function psb_c_inter_desc end function psb_c_inter_desc
function psb_c_inter_desc_noidx(map_kind,desc1, desc2, map_fw, map_bk) function psb_c_inter_desc_noidx(map_kind,desc1, desc2, map_fw, map_bk)
use psb_spmat_type
use psb_descriptor_type
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type) :: psb_c_inter_desc_noidx type(psb_inter_desc_type) :: psb_c_inter_desc_noidx
type(psb_desc_type), target :: desc1, desc2 type(psb_desc_type), target :: desc1, desc2
@ -614,10 +589,7 @@ contains
function psb_z_inter_desc(map_kind,desc1, desc2, map_fw, map_bk, idx_fw, idx_bk) function psb_z_inter_desc(map_kind,desc1, desc2, map_fw, map_bk, idx_fw, idx_bk)
use psb_spmat_type
use psb_descriptor_type
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type) :: psb_z_inter_desc type(psb_inter_desc_type) :: psb_z_inter_desc
type(psb_desc_type), target :: desc1, desc2 type(psb_desc_type), target :: desc1, desc2
@ -661,10 +633,7 @@ contains
end function psb_z_inter_desc end function psb_z_inter_desc
function psb_z_inter_desc_noidx(map_kind,desc1, desc2, map_fw, map_bk) function psb_z_inter_desc_noidx(map_kind,desc1, desc2, map_fw, map_bk)
use psb_spmat_type
use psb_descriptor_type
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type) :: psb_z_inter_desc_noidx type(psb_inter_desc_type) :: psb_z_inter_desc_noidx
type(psb_desc_type), target :: desc1, desc2 type(psb_desc_type), target :: desc1, desc2
@ -722,11 +691,7 @@ contains
! due to exch_fw_idx ! due to exch_fw_idx
! !
subroutine psb_s_forward_map(alpha,x,beta,y,desc,info,work) subroutine psb_s_forward_map(alpha,x,beta,y,desc,info,work)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
real(psb_spk_), intent(in) :: alpha,beta real(psb_spk_), intent(in) :: alpha,beta
@ -796,11 +761,7 @@ contains
! due to exch_bk_idx ! due to exch_bk_idx
! !
subroutine psb_s_backward_map(alpha,x,beta,y,desc,info,work) subroutine psb_s_backward_map(alpha,x,beta,y,desc,info,work)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
real(psb_spk_), intent(in) :: alpha,beta real(psb_spk_), intent(in) :: alpha,beta
@ -867,11 +828,6 @@ contains
! due to exch_fw_idx ! due to exch_fw_idx
! !
subroutine psb_d_forward_map(alpha,x,beta,y,desc,info,work) subroutine psb_d_forward_map(alpha,x,beta,y,desc,info,work)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
real(psb_dpk_), intent(in) :: alpha,beta real(psb_dpk_), intent(in) :: alpha,beta
@ -941,11 +897,7 @@ contains
! due to exch_bk_idx ! due to exch_bk_idx
! !
subroutine psb_d_backward_map(alpha,x,beta,y,desc,info,work) subroutine psb_d_backward_map(alpha,x,beta,y,desc,info,work)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
real(psb_dpk_), intent(in) :: alpha,beta real(psb_dpk_), intent(in) :: alpha,beta
@ -1012,11 +964,7 @@ contains
! due to exch_fw_idx ! due to exch_fw_idx
! !
subroutine psb_c_forward_map(alpha,x,beta,y,desc,info,work) subroutine psb_c_forward_map(alpha,x,beta,y,desc,info,work)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
complex(psb_spk_), intent(in) :: alpha,beta complex(psb_spk_), intent(in) :: alpha,beta
@ -1083,11 +1031,7 @@ contains
! due to exch_bk_idx ! due to exch_bk_idx
! !
subroutine psb_c_backward_map(alpha,x,beta,y,desc,info,work) subroutine psb_c_backward_map(alpha,x,beta,y,desc,info,work)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
complex(psb_spk_), intent(in) :: alpha,beta complex(psb_spk_), intent(in) :: alpha,beta
@ -1155,11 +1099,7 @@ contains
! due to exch_fw_idx ! due to exch_fw_idx
! !
subroutine psb_z_forward_map(alpha,x,beta,y,desc,info,work) subroutine psb_z_forward_map(alpha,x,beta,y,desc,info,work)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
complex(psb_dpk_), intent(in) :: alpha,beta complex(psb_dpk_), intent(in) :: alpha,beta
@ -1226,11 +1166,7 @@ contains
! due to exch_bk_idx ! due to exch_bk_idx
! !
subroutine psb_z_backward_map(alpha,x,beta,y,desc,info,work) subroutine psb_z_backward_map(alpha,x,beta,y,desc,info,work)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
type(psb_inter_desc_type), intent(in) :: desc type(psb_inter_desc_type), intent(in) :: desc
complex(psb_dpk_), intent(in) :: alpha,beta complex(psb_dpk_), intent(in) :: alpha,beta
@ -1294,11 +1230,7 @@ contains
subroutine psb_s_apply_linmap(alpha,x,beta,y,a_map,cd_xt,descin,descout) subroutine psb_s_apply_linmap(alpha,x,beta,y,a_map,cd_xt,descin,descout)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
real(psb_spk_), intent(in) :: alpha,beta real(psb_spk_), intent(in) :: alpha,beta
real(psb_spk_), intent(inout) :: x(:),y(:) real(psb_spk_), intent(inout) :: x(:),y(:)
@ -1322,11 +1254,7 @@ contains
subroutine psb_d_apply_linmap(alpha,x,beta,y,a_map,cd_xt,descin,descout) subroutine psb_d_apply_linmap(alpha,x,beta,y,a_map,cd_xt,descin,descout)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
real(psb_dpk_), intent(in) :: alpha,beta real(psb_dpk_), intent(in) :: alpha,beta
real(psb_dpk_), intent(inout) :: x(:),y(:) real(psb_dpk_), intent(inout) :: x(:),y(:)
@ -1350,11 +1278,7 @@ contains
subroutine psb_c_apply_linmap(alpha,x,beta,y,a_map,cd_xt,descin,descout) subroutine psb_c_apply_linmap(alpha,x,beta,y,a_map,cd_xt,descin,descout)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
complex(psb_spk_), intent(in) :: alpha,beta complex(psb_spk_), intent(in) :: alpha,beta
complex(psb_spk_), intent(inout) :: x(:),y(:) complex(psb_spk_), intent(inout) :: x(:),y(:)
@ -1377,11 +1301,7 @@ contains
end subroutine psb_c_apply_linmap end subroutine psb_c_apply_linmap
subroutine psb_z_apply_linmap(alpha,x,beta,y,a_map,cd_xt,descin,descout) subroutine psb_z_apply_linmap(alpha,x,beta,y,a_map,cd_xt,descin,descout)
use psb_spmat_type
use psb_descriptor_type
use psb_comm_mod
use psb_serial_mod
use psi_mod
implicit none implicit none
complex(psb_dpk_), intent(in) :: alpha,beta complex(psb_dpk_), intent(in) :: alpha,beta
complex(psb_dpk_), intent(inout) :: x(:),y(:) complex(psb_dpk_), intent(inout) :: x(:),y(:)

@ -41,14 +41,16 @@ module psb_serial_mod
interface psb_csrws interface psb_csrws
subroutine psb_dcsrws(rw,a,info,trans) subroutine psb_dcsrws(rw,a,info,trans)
use psb_spmat_type 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 type(psb_dspmat_type) :: a
real(psb_dpk_), allocatable :: rw(:) real(psb_dpk_), allocatable :: rw(:)
integer :: info integer :: info
character, optional :: trans character, optional :: trans
end subroutine psb_dcsrws end subroutine psb_dcsrws
subroutine psb_zcsrws(rw,a,info,trans) subroutine psb_zcsrws(rw,a,info,trans)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type) :: a type(psb_zspmat_type) :: a
complex(psb_dpk_), allocatable :: rw(:) complex(psb_dpk_), allocatable :: rw(:)
integer :: info integer :: info
@ -58,7 +60,8 @@ module psb_serial_mod
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 use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& 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
@ -66,7 +69,8 @@ module psb_serial_mod
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 use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& 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
@ -74,7 +78,8 @@ module psb_serial_mod
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 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) :: t type(psb_dspmat_type) :: t
real(psb_dpk_) :: alpha, beta, b(:,:), c(:,:) real(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
integer :: info integer :: info
@ -82,7 +87,8 @@ module psb_serial_mod
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 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) :: t type(psb_dspmat_type) :: t
real(psb_dpk_) :: alpha, beta, b(:), c(:) real(psb_dpk_) :: alpha, beta, b(:), c(:)
integer :: info integer :: info
@ -90,7 +96,8 @@ module psb_serial_mod
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 use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& 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
@ -98,7 +105,8 @@ module psb_serial_mod
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 use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& 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
@ -106,7 +114,8 @@ module psb_serial_mod
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 use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& 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
@ -114,7 +123,8 @@ module psb_serial_mod
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 use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& 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
@ -125,56 +135,64 @@ module psb_serial_mod
interface psb_csmm interface psb_csmm
subroutine psb_scsmv(alpha,a,b,beta,c,info,trans) subroutine psb_scsmv(alpha,a,b,beta,c,info,trans)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type) :: a type(psb_sspmat_type) :: a
real(psb_spk_) :: alpha, beta, b(:), c(:) real(psb_spk_) :: alpha, beta, b(:), c(:)
integer :: info integer :: info
character, optional :: trans character, optional :: trans
end subroutine psb_scsmv end subroutine psb_scsmv
subroutine psb_scsmm(alpha,a,b,beta,c,info,trans) subroutine psb_scsmm(alpha,a,b,beta,c,info,trans)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type) :: a type(psb_sspmat_type) :: a
real(psb_spk_) :: alpha, beta, b(:,:), c(:,:) real(psb_spk_) :: alpha, beta, b(:,:), c(:,:)
integer :: info integer :: info
character, optional :: trans character, optional :: trans
end subroutine psb_scsmm end subroutine psb_scsmm
subroutine psb_dcsmv(alpha,a,b,beta,c,info,trans) subroutine psb_dcsmv(alpha,a,b,beta,c,info,trans)
use psb_spmat_type 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 type(psb_dspmat_type) :: a
real(psb_dpk_) :: alpha, beta, b(:), c(:) real(psb_dpk_) :: alpha, beta, b(:), c(:)
integer :: info integer :: info
character, optional :: trans character, optional :: trans
end subroutine psb_dcsmv end subroutine psb_dcsmv
subroutine psb_dcsmm(alpha,a,b,beta,c,info,trans) subroutine psb_dcsmm(alpha,a,b,beta,c,info,trans)
use psb_spmat_type 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 type(psb_dspmat_type) :: a
real(psb_dpk_) :: alpha, beta, b(:,:), c(:,:) real(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
integer :: info integer :: info
character, optional :: trans character, optional :: trans
end subroutine psb_dcsmm end subroutine psb_dcsmm
subroutine psb_ccsmv(alpha,a,b,beta,c,info,trans) subroutine psb_ccsmv(alpha,a,b,beta,c,info,trans)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type) :: a type(psb_cspmat_type) :: a
complex(psb_spk_) :: alpha, beta, b(:), c(:) complex(psb_spk_) :: alpha, beta, b(:), c(:)
integer :: info integer :: info
character, optional :: trans character, optional :: trans
end subroutine psb_ccsmv end subroutine psb_ccsmv
subroutine psb_ccsmm(alpha,a,b,beta,c,info,trans) subroutine psb_ccsmm(alpha,a,b,beta,c,info,trans)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type) :: a type(psb_cspmat_type) :: a
complex(psb_spk_) :: alpha, beta, b(:,:), c(:,:) complex(psb_spk_) :: alpha, beta, b(:,:), c(:,:)
integer :: info integer :: info
character, optional :: trans character, optional :: trans
end subroutine psb_ccsmm end subroutine psb_ccsmm
subroutine psb_zcsmv(alpha,a,b,beta,c,info,trans) subroutine psb_zcsmv(alpha,a,b,beta,c,info,trans)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type) :: a type(psb_zspmat_type) :: a
complex(psb_dpk_) :: alpha, beta, b(:), c(:) complex(psb_dpk_) :: alpha, beta, b(:), c(:)
integer :: info integer :: info
character, optional :: trans character, optional :: trans
end subroutine psb_zcsmv end subroutine psb_zcsmv
subroutine psb_zcsmm(alpha,a,b,beta,c,info,trans) subroutine psb_zcsmm(alpha,a,b,beta,c,info,trans)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type) :: a type(psb_zspmat_type) :: a
complex(psb_dpk_) :: alpha, beta, b(:,:), c(:,:) complex(psb_dpk_) :: alpha, beta, b(:,:), c(:,:)
integer :: info integer :: info
@ -192,7 +210,8 @@ module psb_serial_mod
interface psb_spcnv interface psb_spcnv
subroutine psb_sspcnv2(ain, a, info, afmt, upd, dupl) subroutine psb_sspcnv2(ain, a, info, afmt, upd, dupl)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent (in) :: ain type(psb_sspmat_type), intent (in) :: ain
type(psb_sspmat_type), intent (out) :: a type(psb_sspmat_type), intent (out) :: a
integer, intent(out) :: info integer, intent(out) :: info
@ -200,14 +219,16 @@ module psb_serial_mod
character(len=*), optional, intent(in) :: afmt character(len=*), optional, intent(in) :: afmt
end subroutine psb_sspcnv2 end subroutine psb_sspcnv2
subroutine psb_sspcnv1(a, info, afmt, upd, dupl) subroutine psb_sspcnv1(a, info, afmt, upd, dupl)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent (inout) :: a type(psb_sspmat_type), intent (inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
integer,optional, intent(in) :: dupl, upd integer,optional, intent(in) :: dupl, upd
character(len=*), optional, intent(in) :: afmt character(len=*), optional, intent(in) :: afmt
end subroutine psb_sspcnv1 end subroutine psb_sspcnv1
subroutine psb_dspcnv2(ain, a, info, afmt, upd, dupl) subroutine psb_dspcnv2(ain, a, info, afmt, upd, dupl)
use psb_spmat_type 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), intent (in) :: ain type(psb_dspmat_type), intent (in) :: ain
type(psb_dspmat_type), intent (out) :: a type(psb_dspmat_type), intent (out) :: a
integer, intent(out) :: info integer, intent(out) :: info
@ -215,14 +236,16 @@ module psb_serial_mod
character(len=*), optional, intent(in) :: afmt character(len=*), optional, intent(in) :: afmt
end subroutine psb_dspcnv2 end subroutine psb_dspcnv2
subroutine psb_dspcnv1(a, info, afmt, upd, dupl) subroutine psb_dspcnv1(a, info, afmt, upd, dupl)
use psb_spmat_type 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), intent (inout) :: a type(psb_dspmat_type), intent (inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
integer,optional, intent(in) :: dupl, upd integer,optional, intent(in) :: dupl, upd
character(len=*), optional, intent(in) :: afmt character(len=*), optional, intent(in) :: afmt
end subroutine psb_dspcnv1 end subroutine psb_dspcnv1
subroutine psb_cspcnv2(ain, a, info, afmt, upd, dupl) subroutine psb_cspcnv2(ain, a, info, afmt, upd, dupl)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent (in) :: ain type(psb_cspmat_type), intent (in) :: ain
type(psb_cspmat_type), intent (out) :: a type(psb_cspmat_type), intent (out) :: a
integer, intent(out) :: info integer, intent(out) :: info
@ -230,14 +253,16 @@ module psb_serial_mod
character(len=*), optional, intent(in) :: afmt character(len=*), optional, intent(in) :: afmt
end subroutine psb_cspcnv2 end subroutine psb_cspcnv2
subroutine psb_cspcnv1(a, info, afmt, upd, dupl) subroutine psb_cspcnv1(a, info, afmt, upd, dupl)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent (inout) :: a type(psb_cspmat_type), intent (inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
integer,optional, intent(in) :: dupl, upd integer,optional, intent(in) :: dupl, upd
character(len=*), optional, intent(in) :: afmt character(len=*), optional, intent(in) :: afmt
end subroutine psb_cspcnv1 end subroutine psb_cspcnv1
subroutine psb_zspcnv2(ain, a, info, afmt, upd, dupl) subroutine psb_zspcnv2(ain, a, info, afmt, upd, dupl)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent (in) :: ain type(psb_zspmat_type), intent (in) :: ain
type(psb_zspmat_type), intent (out) :: a type(psb_zspmat_type), intent (out) :: a
integer, intent(out) :: info integer, intent(out) :: info
@ -245,7 +270,8 @@ module psb_serial_mod
character(len=*), optional, intent(in) :: afmt character(len=*), optional, intent(in) :: afmt
end subroutine psb_zspcnv2 end subroutine psb_zspcnv2
subroutine psb_zspcnv1(a, info, afmt, upd, dupl) subroutine psb_zspcnv1(a, info, afmt, upd, dupl)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent (inout) :: a type(psb_zspmat_type), intent (inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
integer,optional, intent(in) :: dupl, upd integer,optional, intent(in) :: dupl, upd
@ -257,25 +283,29 @@ module psb_serial_mod
interface psb_fixcoo interface psb_fixcoo
subroutine psb_sfixcoo(a,info,idir) subroutine psb_sfixcoo(a,info,idir)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(inout) :: a type(psb_sspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
integer, intent(in), optional :: idir integer, intent(in), optional :: idir
end subroutine psb_sfixcoo end subroutine psb_sfixcoo
subroutine psb_dfixcoo(a,info,idir) subroutine psb_dfixcoo(a,info,idir)
use psb_spmat_type 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), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
integer, intent(in), optional :: idir integer, intent(in), optional :: idir
end subroutine psb_dfixcoo end subroutine psb_dfixcoo
subroutine psb_cfixcoo(a,info,idir) subroutine psb_cfixcoo(a,info,idir)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(inout) :: a type(psb_cspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
integer, intent(in), optional :: idir integer, intent(in), optional :: idir
end subroutine psb_cfixcoo end subroutine psb_cfixcoo
subroutine psb_zfixcoo(a,info,idir) subroutine psb_zfixcoo(a,info,idir)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
integer, intent(in), optional :: idir integer, intent(in), optional :: idir
@ -284,25 +314,29 @@ module psb_serial_mod
interface psb_ipcoo2csr interface psb_ipcoo2csr
subroutine psb_sipcoo2csr(a,info,rwshr) subroutine psb_sipcoo2csr(a,info,rwshr)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(inout) :: a type(psb_sspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
logical, optional :: rwshr logical, optional :: rwshr
end subroutine psb_sipcoo2csr end subroutine psb_sipcoo2csr
subroutine psb_dipcoo2csr(a,info,rwshr) subroutine psb_dipcoo2csr(a,info,rwshr)
use psb_spmat_type 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), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
logical, optional :: rwshr logical, optional :: rwshr
end subroutine psb_dipcoo2csr end subroutine psb_dipcoo2csr
subroutine psb_cipcoo2csr(a,info,rwshr) subroutine psb_cipcoo2csr(a,info,rwshr)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(inout) :: a type(psb_cspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
logical, optional :: rwshr logical, optional :: rwshr
end subroutine psb_cipcoo2csr end subroutine psb_cipcoo2csr
subroutine psb_zipcoo2csr(a,info,rwshr) subroutine psb_zipcoo2csr(a,info,rwshr)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
logical, optional :: rwshr logical, optional :: rwshr
@ -311,25 +345,29 @@ module psb_serial_mod
interface psb_ipcoo2csc interface psb_ipcoo2csc
subroutine psb_sipcoo2csc(a,info,clshr) subroutine psb_sipcoo2csc(a,info,clshr)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(inout) :: a type(psb_sspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
logical, optional :: clshr logical, optional :: clshr
end subroutine psb_sipcoo2csc end subroutine psb_sipcoo2csc
subroutine psb_dipcoo2csc(a,info,clshr) subroutine psb_dipcoo2csc(a,info,clshr)
use psb_spmat_type 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), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
logical, optional :: clshr logical, optional :: clshr
end subroutine psb_dipcoo2csc end subroutine psb_dipcoo2csc
subroutine psb_cipcoo2csc(a,info,clshr) subroutine psb_cipcoo2csc(a,info,clshr)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(inout) :: a type(psb_cspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
logical, optional :: clshr logical, optional :: clshr
end subroutine psb_cipcoo2csc end subroutine psb_cipcoo2csc
subroutine psb_zipcoo2csc(a,info,clshr) subroutine psb_zipcoo2csc(a,info,clshr)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
logical, optional :: clshr logical, optional :: clshr
@ -338,22 +376,26 @@ module psb_serial_mod
interface psb_ipcsr2coo interface psb_ipcsr2coo
subroutine psb_sipcsr2coo(a,info) subroutine psb_sipcsr2coo(a,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(inout) :: a type(psb_sspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_sipcsr2coo end subroutine psb_sipcsr2coo
subroutine psb_dipcsr2coo(a,info) subroutine psb_dipcsr2coo(a,info)
use psb_spmat_type 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), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dipcsr2coo end subroutine psb_dipcsr2coo
subroutine psb_cipcsr2coo(a,info) subroutine psb_cipcsr2coo(a,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(inout) :: a type(psb_cspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_cipcsr2coo end subroutine psb_cipcsr2coo
subroutine psb_zipcsr2coo(a,info) subroutine psb_zipcsr2coo(a,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zipcsr2coo end subroutine psb_zipcsr2coo
@ -361,7 +403,8 @@ module psb_serial_mod
interface psb_csprt interface psb_csprt
subroutine psb_scsprt(iout,a,iv,irs,ics,head,ivr,ivc) subroutine psb_scsprt(iout,a,iv,irs,ics,head,ivr,ivc)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: iout integer, intent(in) :: iout
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
integer, intent(in), optional :: iv(:) integer, intent(in), optional :: iv(:)
@ -370,7 +413,8 @@ module psb_serial_mod
integer, intent(in), optional :: ivr(:),ivc(:) integer, intent(in), optional :: ivr(:),ivc(:)
end subroutine psb_scsprt end subroutine psb_scsprt
subroutine psb_dcsprt(iout,a,iv,irs,ics,head,ivr,ivc) subroutine psb_dcsprt(iout,a,iv,irs,ics,head,ivr,ivc)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: iout integer, intent(in) :: iout
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
integer, intent(in), optional :: iv(:) integer, intent(in), optional :: iv(:)
@ -379,7 +423,8 @@ module psb_serial_mod
integer, intent(in), optional :: ivr(:),ivc(:) integer, intent(in), optional :: ivr(:),ivc(:)
end subroutine psb_dcsprt end subroutine psb_dcsprt
subroutine psb_ccsprt(iout,a,iv,irs,ics,head,ivr,ivc) subroutine psb_ccsprt(iout,a,iv,irs,ics,head,ivr,ivc)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: iout integer, intent(in) :: iout
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
integer, intent(in), optional :: iv(:) integer, intent(in), optional :: iv(:)
@ -388,7 +433,8 @@ module psb_serial_mod
integer, intent(in), optional :: ivr(:),ivc(:) integer, intent(in), optional :: ivr(:),ivc(:)
end subroutine psb_ccsprt end subroutine psb_ccsprt
subroutine psb_zcsprt(iout,a,iv,irs,ics,head,ivr,ivc) subroutine psb_zcsprt(iout,a,iv,irs,ics,head,ivr,ivc)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: iout integer, intent(in) :: iout
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
integer, intent(in), optional :: iv(:) integer, intent(in), optional :: iv(:)
@ -400,7 +446,8 @@ module psb_serial_mod
interface psb_neigh interface psb_neigh
subroutine psb_sneigh(a,idx,neigh,n,info,lev) subroutine psb_sneigh(a,idx,neigh,n,info,lev)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
integer, intent(in) :: idx integer, intent(in) :: idx
integer, intent(out) :: n integer, intent(out) :: n
@ -409,7 +456,8 @@ module psb_serial_mod
integer, optional, intent(in) :: lev integer, optional, intent(in) :: lev
end subroutine psb_sneigh end subroutine psb_sneigh
subroutine psb_dneigh(a,idx,neigh,n,info,lev) subroutine psb_dneigh(a,idx,neigh,n,info,lev)
use psb_spmat_type 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), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
integer, intent(in) :: idx integer, intent(in) :: idx
integer, intent(out) :: n integer, intent(out) :: n
@ -418,7 +466,8 @@ module psb_serial_mod
integer, optional, intent(in) :: lev integer, optional, intent(in) :: lev
end subroutine psb_dneigh end subroutine psb_dneigh
subroutine psb_cneigh(a,idx,neigh,n,info,lev) subroutine psb_cneigh(a,idx,neigh,n,info,lev)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
integer, intent(in) :: idx integer, intent(in) :: idx
integer, intent(out) :: n integer, intent(out) :: n
@ -427,7 +476,8 @@ module psb_serial_mod
integer, optional, intent(in) :: lev integer, optional, intent(in) :: lev
end subroutine psb_cneigh end subroutine psb_cneigh
subroutine psb_zneigh(a,idx,neigh,n,info,lev) subroutine psb_zneigh(a,idx,neigh,n,info,lev)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
integer, intent(in) :: idx integer, intent(in) :: idx
integer, intent(out) :: n integer, intent(out) :: n
@ -439,7 +489,8 @@ module psb_serial_mod
interface psb_coins interface psb_coins
subroutine psb_scoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild) subroutine psb_scoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: nz, imin,imax,jmin,jmax integer, intent(in) :: nz, imin,imax,jmin,jmax
integer, intent(in) :: ia(:),ja(:) integer, intent(in) :: ia(:),ja(:)
real(psb_spk_), intent(in) :: val(:) real(psb_spk_), intent(in) :: val(:)
@ -449,7 +500,8 @@ module psb_serial_mod
logical, optional, intent(in) :: rebuild logical, optional, intent(in) :: rebuild
end subroutine psb_scoins end subroutine psb_scoins
subroutine psb_dcoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild) subroutine psb_dcoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: nz, imin,imax,jmin,jmax integer, intent(in) :: nz, imin,imax,jmin,jmax
integer, intent(in) :: ia(:),ja(:) integer, intent(in) :: ia(:),ja(:)
real(psb_dpk_), intent(in) :: val(:) real(psb_dpk_), intent(in) :: val(:)
@ -459,7 +511,8 @@ module psb_serial_mod
logical, optional, intent(in) :: rebuild logical, optional, intent(in) :: rebuild
end subroutine psb_dcoins end subroutine psb_dcoins
subroutine psb_ccoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild) subroutine psb_ccoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: nz, imin,imax,jmin,jmax integer, intent(in) :: nz, imin,imax,jmin,jmax
integer, intent(in) :: ia(:),ja(:) integer, intent(in) :: ia(:),ja(:)
complex(psb_spk_), intent(in) :: val(:) complex(psb_spk_), intent(in) :: val(:)
@ -469,7 +522,8 @@ module psb_serial_mod
logical, optional, intent(in) :: rebuild logical, optional, intent(in) :: rebuild
end subroutine psb_ccoins end subroutine psb_ccoins
subroutine psb_zcoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild) subroutine psb_zcoins(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl,rebuild)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: nz, imin,imax,jmin,jmax integer, intent(in) :: nz, imin,imax,jmin,jmax
integer, intent(in) :: ia(:),ja(:) integer, intent(in) :: ia(:),ja(:)
complex(psb_dpk_), intent(in) :: val(:) complex(psb_dpk_), intent(in) :: val(:)
@ -483,22 +537,26 @@ module psb_serial_mod
interface psb_symbmm interface psb_symbmm
subroutine psb_ssymbmm(a,b,c,info) subroutine psb_ssymbmm(a,b,c,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type) :: a,b,c type(psb_sspmat_type) :: a,b,c
integer :: info integer :: info
end subroutine psb_ssymbmm end subroutine psb_ssymbmm
subroutine psb_dsymbmm(a,b,c,info) subroutine psb_dsymbmm(a,b,c,info)
use psb_spmat_type 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 type(psb_dspmat_type) :: a,b,c
integer :: info integer :: info
end subroutine psb_dsymbmm end subroutine psb_dsymbmm
subroutine psb_csymbmm(a,b,c,info) subroutine psb_csymbmm(a,b,c,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type) :: a,b,c type(psb_cspmat_type) :: a,b,c
integer :: info integer :: info
end subroutine psb_csymbmm end subroutine psb_csymbmm
subroutine psb_zsymbmm(a,b,c,info) subroutine psb_zsymbmm(a,b,c,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type) :: a,b,c type(psb_zspmat_type) :: a,b,c
integer :: info integer :: info
end subroutine psb_zsymbmm end subroutine psb_zsymbmm
@ -506,72 +564,80 @@ module psb_serial_mod
interface psb_numbmm interface psb_numbmm
subroutine psb_snumbmm(a,b,c) subroutine psb_snumbmm(a,b,c)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type) :: a,b,c type(psb_sspmat_type) :: a,b,c
end subroutine psb_snumbmm end subroutine psb_snumbmm
subroutine psb_dnumbmm(a,b,c) subroutine psb_dnumbmm(a,b,c)
use psb_spmat_type 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 type(psb_dspmat_type) :: a,b,c
end subroutine psb_dnumbmm end subroutine psb_dnumbmm
subroutine psb_cnumbmm(a,b,c) subroutine psb_cnumbmm(a,b,c)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type) :: a,b,c type(psb_cspmat_type) :: a,b,c
end subroutine psb_cnumbmm end subroutine psb_cnumbmm
subroutine psb_znumbmm(a,b,c) subroutine psb_znumbmm(a,b,c)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type) :: a,b,c type(psb_zspmat_type) :: a,b,c
end subroutine psb_znumbmm end subroutine psb_znumbmm
end interface end interface
interface psb_transp interface psb_transp
subroutine psb_stransp(a,b,c,fmt) subroutine psb_stransp(a,b,c,fmt)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
type(psb_sspmat_type), intent(in) :: a & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(out) :: b type(psb_sspmat_type) :: a,b
integer, optional :: c integer, optional :: c
character(len=*), optional :: fmt character(len=*), optional :: fmt
end subroutine psb_stransp 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_
type(psb_dspmat_type) :: a,b
integer, optional :: c
character(len=*), optional :: fmt
end subroutine psb_dtransp
subroutine psb_ctransp(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_
type(psb_cspmat_type) :: a,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_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type) :: a,b
integer, optional :: c
character(len=*), optional :: fmt
end subroutine psb_ztransp
subroutine psb_stransp1(a,c,fmt) subroutine psb_stransp1(a,c,fmt)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type) :: a type(psb_sspmat_type) :: a
integer, optional :: c integer, optional :: c
character(len=*), optional :: fmt character(len=*), optional :: fmt
end subroutine psb_stransp1 end subroutine psb_stransp1
subroutine psb_dtransp(a,b,c,fmt)
use psb_spmat_type
type(psb_dspmat_type), intent(in) :: a
type(psb_dspmat_type), intent(out) :: b
integer, optional :: c
character(len=*), optional :: fmt
end subroutine psb_dtransp
subroutine psb_dtransp1(a,c,fmt) subroutine psb_dtransp1(a,c,fmt)
use psb_spmat_type 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 type(psb_dspmat_type) :: a
integer, optional :: c integer, optional :: c
character(len=*), optional :: fmt character(len=*), optional :: fmt
end subroutine psb_dtransp1 end subroutine psb_dtransp1
subroutine psb_ctransp(a,b,c,fmt)
use psb_spmat_type
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_ctransp1(a,c,fmt) subroutine psb_ctransp1(a,c,fmt)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type) :: a type(psb_cspmat_type) :: a
integer, optional :: c integer, optional :: c
character(len=*), optional :: fmt character(len=*), optional :: fmt
end subroutine psb_ctransp1 end subroutine psb_ctransp1
subroutine psb_ztransp(a,b,c,fmt)
use psb_spmat_type
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_ztransp1(a,c,fmt) subroutine psb_ztransp1(a,c,fmt)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type) :: a type(psb_zspmat_type) :: a
integer, optional :: c integer, optional :: c
character(len=*), optional :: fmt character(len=*), optional :: fmt
@ -580,16 +646,16 @@ module psb_serial_mod
interface psb_transc interface psb_transc
subroutine psb_ctransc(a,b,c,fmt) subroutine psb_ctransc(a,b,c,fmt)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
type(psb_cspmat_type), intent(in) :: a & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(out) :: b type(psb_cspmat_type) :: a,b
integer, optional :: c integer, optional :: c
character(len=*), optional :: fmt character(len=*), optional :: fmt
end subroutine psb_ctransc end subroutine psb_ctransc
subroutine psb_ztransc(a,b,c,fmt) subroutine psb_ztransc(a,b,c,fmt)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
type(psb_zspmat_type), intent(in) :: a & psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(out) :: b type(psb_zspmat_type) :: a,b
integer, optional :: c integer, optional :: c
character(len=*), optional :: fmt character(len=*), optional :: fmt
end subroutine psb_ztransc end subroutine psb_ztransc
@ -597,7 +663,8 @@ module psb_serial_mod
interface psb_rwextd interface psb_rwextd
subroutine psb_srwextd(nr,a,info,b,rowscale) subroutine psb_srwextd(nr,a,info,b,rowscale)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: nr integer, intent(in) :: nr
type(psb_sspmat_type), intent(inout) :: a type(psb_sspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
@ -605,7 +672,8 @@ module psb_serial_mod
logical, intent(in), optional :: rowscale logical, intent(in), optional :: rowscale
end subroutine psb_srwextd end subroutine psb_srwextd
subroutine psb_drwextd(nr,a,info,b,rowscale) subroutine psb_drwextd(nr,a,info,b,rowscale)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: nr integer, intent(in) :: nr
type(psb_dspmat_type), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
@ -613,7 +681,8 @@ module psb_serial_mod
logical, intent(in), optional :: rowscale logical, intent(in), optional :: rowscale
end subroutine psb_drwextd end subroutine psb_drwextd
subroutine psb_crwextd(nr,a,info,b,rowscale) subroutine psb_crwextd(nr,a,info,b,rowscale)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: nr integer, intent(in) :: nr
type(psb_cspmat_type), intent(inout) :: a type(psb_cspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
@ -621,7 +690,8 @@ module psb_serial_mod
logical, intent(in), optional :: rowscale logical, intent(in), optional :: rowscale
end subroutine psb_crwextd end subroutine psb_crwextd
subroutine psb_zrwextd(nr,a,info,b,rowscale) subroutine psb_zrwextd(nr,a,info,b,rowscale)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
integer, intent(in) :: nr integer, intent(in) :: nr
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
@ -632,28 +702,32 @@ module psb_serial_mod
interface psb_csnmi interface psb_csnmi
function psb_scsnmi(a,info,trans) function psb_scsnmi(a,info,trans)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
integer, intent(out) :: info integer, intent(out) :: info
character, optional :: trans character, optional :: trans
real(psb_spk_) :: psb_scsnmi real(psb_spk_) :: psb_scsnmi
end function psb_scsnmi end function psb_scsnmi
function psb_dcsnmi(a,info,trans) function psb_dcsnmi(a,info,trans)
use psb_spmat_type 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), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
integer, intent(out) :: info integer, intent(out) :: info
character, optional :: trans character, optional :: trans
real(psb_dpk_) :: psb_dcsnmi real(psb_dpk_) :: psb_dcsnmi
end function psb_dcsnmi end function psb_dcsnmi
function psb_ccsnmi(a,info,trans) function psb_ccsnmi(a,info,trans)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
integer, intent(out) :: info integer, intent(out) :: info
character, optional :: trans character, optional :: trans
real(psb_spk_) :: psb_ccsnmi real(psb_spk_) :: psb_ccsnmi
end function psb_ccsnmi end function psb_ccsnmi
function psb_zcsnmi(a,info,trans) function psb_zcsnmi(a,info,trans)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
integer, intent(out) :: info integer, intent(out) :: info
character, optional :: trans character, optional :: trans
@ -663,7 +737,8 @@ module psb_serial_mod
interface psb_sp_clip interface psb_sp_clip
subroutine psb_sspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale) subroutine psb_sspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
implicit none implicit none
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_sspmat_type), intent(out) :: b type(psb_sspmat_type), intent(out) :: b
@ -672,7 +747,8 @@ module psb_serial_mod
logical, intent(in), optional :: rscale,cscale logical, intent(in), optional :: rscale,cscale
end subroutine psb_sspclip end subroutine psb_sspclip
subroutine psb_dspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale) subroutine psb_dspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
implicit none implicit none
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_dspmat_type), intent(out) :: b type(psb_dspmat_type), intent(out) :: b
@ -681,7 +757,8 @@ module psb_serial_mod
logical, intent(in), optional :: rscale,cscale logical, intent(in), optional :: rscale,cscale
end subroutine psb_dspclip end subroutine psb_dspclip
subroutine psb_cspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale) subroutine psb_cspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
implicit none implicit none
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
type(psb_cspmat_type), intent(out) :: b type(psb_cspmat_type), intent(out) :: b
@ -690,7 +767,8 @@ module psb_serial_mod
logical, intent(in), optional :: rscale,cscale logical, intent(in), optional :: rscale,cscale
end subroutine psb_cspclip end subroutine psb_cspclip
subroutine psb_zspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale) subroutine psb_zspclip(a,b,info,imin,imax,jmin,jmax,rscale,cscale)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
implicit none implicit none
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_zspmat_type), intent(out) :: b type(psb_zspmat_type), intent(out) :: b
@ -702,25 +780,29 @@ module psb_serial_mod
interface psb_sp_getdiag interface psb_sp_getdiag
subroutine psb_sspgtdiag(a,d,info) subroutine psb_sspgtdiag(a,d,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
real(psb_spk_), intent(inout) :: d(:) real(psb_spk_), intent(inout) :: d(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_sspgtdiag end subroutine psb_sspgtdiag
subroutine psb_dspgtdiag(a,d,info) subroutine psb_dspgtdiag(a,d,info)
use psb_spmat_type 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), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
real(psb_dpk_), intent(inout) :: d(:) real(psb_dpk_), intent(inout) :: d(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dspgtdiag end subroutine psb_dspgtdiag
subroutine psb_cspgtdiag(a,d,info) subroutine psb_cspgtdiag(a,d,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
complex(psb_spk_), intent(inout) :: d(:) complex(psb_spk_), intent(inout) :: d(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_cspgtdiag end subroutine psb_cspgtdiag
subroutine psb_zspgtdiag(a,d,info) subroutine psb_zspgtdiag(a,d,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
complex(psb_dpk_), intent(inout) :: d(:) complex(psb_dpk_), intent(inout) :: d(:)
integer, intent(out) :: info integer, intent(out) :: info
@ -729,49 +811,57 @@ module psb_serial_mod
interface psb_sp_scal interface psb_sp_scal
subroutine psb_sspscals(a,d,info) subroutine psb_sspscals(a,d,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(inout) :: a type(psb_sspmat_type), intent(inout) :: a
real(psb_spk_), intent(in) :: d real(psb_spk_), intent(in) :: d
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_sspscals end subroutine psb_sspscals
subroutine psb_sspscal(a,d,info) subroutine psb_sspscal(a,d,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(inout) :: a type(psb_sspmat_type), intent(inout) :: a
real(psb_spk_), intent(in) :: d(:) real(psb_spk_), intent(in) :: d(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_sspscal end subroutine psb_sspscal
subroutine psb_dspscals(a,d,info) subroutine psb_dspscals(a,d,info)
use psb_spmat_type 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), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
real(psb_dpk_), intent(in) :: d real(psb_dpk_), intent(in) :: d
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dspscals end subroutine psb_dspscals
subroutine psb_dspscal(a,d,info) subroutine psb_dspscal(a,d,info)
use psb_spmat_type 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), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
real(psb_dpk_), intent(in) :: d(:) real(psb_dpk_), intent(in) :: d(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dspscal end subroutine psb_dspscal
subroutine psb_cspscals(a,d,info) subroutine psb_cspscals(a,d,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(inout) :: a type(psb_cspmat_type), intent(inout) :: a
complex(psb_spk_), intent(in) :: d complex(psb_spk_), intent(in) :: d
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_cspscals end subroutine psb_cspscals
subroutine psb_cspscal(a,d,info) subroutine psb_cspscal(a,d,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(inout) :: a type(psb_cspmat_type), intent(inout) :: a
complex(psb_spk_), intent(in) :: d(:) complex(psb_spk_), intent(in) :: d(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_cspscal end subroutine psb_cspscal
subroutine psb_zspscals(a,d,info) subroutine psb_zspscals(a,d,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
complex(psb_dpk_), intent(in) :: d complex(psb_dpk_), intent(in) :: d
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zspscals end subroutine psb_zspscals
subroutine psb_zspscal(a,d,info) subroutine psb_zspscal(a,d,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
complex(psb_dpk_), intent(in) :: d(:) complex(psb_dpk_), intent(in) :: d(:)
integer, intent(out) :: info integer, intent(out) :: info
@ -781,23 +871,27 @@ module psb_serial_mod
interface psb_sp_setbld interface psb_sp_setbld
subroutine psb_dspsetbld1(a,info) subroutine psb_dspsetbld1(a,info)
use psb_spmat_type 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), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dspsetbld1 end subroutine psb_dspsetbld1
subroutine psb_dspsetbld2(a,b,info) subroutine psb_dspsetbld2(a,b,info)
use psb_spmat_type 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), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_dspmat_type), intent(out) :: b type(psb_dspmat_type), intent(out) :: b
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dspsetbld2 end subroutine psb_dspsetbld2
subroutine psb_zspsetbld1(a,info) subroutine psb_zspsetbld1(a,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zspsetbld1 end subroutine psb_zspsetbld1
subroutine psb_zspsetbld2(a,b,info) subroutine psb_zspsetbld2(a,b,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_zspmat_type), intent(out) :: b type(psb_zspmat_type), intent(out) :: b
integer, intent(out) :: info integer, intent(out) :: info
@ -806,14 +900,16 @@ module psb_serial_mod
interface psb_sp_shift interface psb_sp_shift
subroutine psb_dspshift(alpha,a,beta,b,info) subroutine psb_dspshift(alpha,a,beta,b,info)
use psb_spmat_type 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), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_dspmat_type), intent(out) :: b type(psb_dspmat_type), intent(out) :: b
real(psb_dpk_), intent(in) :: alpha, beta real(psb_dpk_), intent(in) :: alpha, beta
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dspshift end subroutine psb_dspshift
subroutine psb_zspshift(alpha,a,beta,b,info) subroutine psb_zspshift(alpha,a,beta,b,info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_zspmat_type), intent(out) :: b type(psb_zspmat_type), intent(out) :: b
complex(psb_dpk_), intent(in) :: alpha, beta complex(psb_dpk_), intent(in) :: alpha, beta
@ -823,7 +919,8 @@ module psb_serial_mod
interface psb_sp_getblk interface psb_sp_getblk
subroutine psb_sspgtblk(irw,a,b,info,append,iren,lrw,srt) subroutine psb_sspgtblk(irw,a,b,info,append,iren,lrw,srt)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
integer, intent(in) :: irw integer, intent(in) :: irw
type(psb_sspmat_type), intent(inout) :: b type(psb_sspmat_type), intent(inout) :: b
@ -834,7 +931,8 @@ module psb_serial_mod
logical, intent(in), optional :: srt logical, intent(in), optional :: srt
end subroutine psb_sspgtblk end subroutine psb_sspgtblk
subroutine psb_dspgtblk(irw,a,b,info,append,iren,lrw,srt) subroutine psb_dspgtblk(irw,a,b,info,append,iren,lrw,srt)
use psb_spmat_type 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), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
integer, intent(in) :: irw integer, intent(in) :: irw
type(psb_dspmat_type), intent(inout) :: b type(psb_dspmat_type), intent(inout) :: b
@ -845,7 +943,8 @@ module psb_serial_mod
logical, intent(in), optional :: srt logical, intent(in), optional :: srt
end subroutine psb_dspgtblk end subroutine psb_dspgtblk
subroutine psb_cspgtblk(irw,a,b,info,append,iren,lrw,srt) subroutine psb_cspgtblk(irw,a,b,info,append,iren,lrw,srt)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
integer, intent(in) :: irw integer, intent(in) :: irw
type(psb_cspmat_type), intent(inout) :: b type(psb_cspmat_type), intent(inout) :: b
@ -856,7 +955,8 @@ module psb_serial_mod
logical, intent(in), optional :: srt logical, intent(in), optional :: srt
end subroutine psb_cspgtblk end subroutine psb_cspgtblk
subroutine psb_zspgtblk(irw,a,b,info,append,iren,lrw,srt) subroutine psb_zspgtblk(irw,a,b,info,append,iren,lrw,srt)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
integer, intent(in) :: irw integer, intent(in) :: irw
type(psb_zspmat_type), intent(inout) :: b type(psb_zspmat_type), intent(inout) :: b
@ -871,7 +971,8 @@ module psb_serial_mod
interface psb_sp_getrow interface psb_sp_getrow
subroutine psb_sspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin) subroutine psb_sspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin)
! Output is always in COO format ! Output is always in COO format
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
implicit none implicit none
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
@ -886,7 +987,8 @@ module psb_serial_mod
end subroutine psb_sspgetrow end subroutine psb_sspgetrow
subroutine psb_dspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin) subroutine psb_dspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin)
! Output is always in COO format ! Output is always in COO format
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
implicit none implicit none
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
@ -901,7 +1003,8 @@ module psb_serial_mod
end subroutine psb_dspgetrow end subroutine psb_dspgetrow
subroutine psb_cspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin) subroutine psb_cspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin)
! Output is always in COO format ! Output is always in COO format
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
implicit none implicit none
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
@ -916,7 +1019,8 @@ module psb_serial_mod
end subroutine psb_cspgetrow end subroutine psb_cspgetrow
subroutine psb_zspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin) subroutine psb_zspgetrow(irw,a,nz,ia,ja,val,info,iren,lrw,append,nzin)
! Output is always in COO format ! Output is always in COO format
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
implicit none implicit none
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
@ -935,13 +1039,15 @@ module psb_serial_mod
interface psb_csrp interface psb_csrp
subroutine psb_dcsrp(trans,iperm,a, info) subroutine psb_dcsrp(trans,iperm,a, info)
use psb_spmat_type 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), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
integer, intent(inout) :: iperm(:), info integer, intent(inout) :: iperm(:), info
character, intent(in) :: trans character, intent(in) :: trans
end subroutine psb_dcsrp end subroutine psb_dcsrp
subroutine psb_zcsrp(trans,iperm,a, info) subroutine psb_zcsrp(trans,iperm,a, info)
use psb_spmat_type use psb_spmat_type, only : psb_sspmat_type, psb_dspmat_type,&
& psb_cspmat_type, psb_zspmat_type, psb_spk_, psb_dpk_
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
integer, intent(inout) :: iperm(:), info integer, intent(inout) :: iperm(:), info
character, intent(in) :: trans character, intent(in) :: trans

@ -32,6 +32,10 @@
module psi_mod module psi_mod
use psi_serial_mod use psi_serial_mod
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
interface interface
@ -53,7 +57,7 @@ module psi_mod
interface interface
subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,nxch,nsnd,nrcv,info) subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,nxch,nsnd,nrcv,info)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(out) :: info,nxch,nsnd,nrcv integer, intent(out) :: info,nxch,nsnd,nrcv
integer, intent(in) :: index_in(:) integer, intent(in) :: index_in(:)
@ -73,7 +77,7 @@ module psi_mod
interface interface
subroutine psi_desc_index(desc,index_in,dep_list,& subroutine psi_desc_index(desc,index_in,dep_list,&
& length_dl,nsnd,nrcv,desc_index,isglob_in,info) & length_dl,nsnd,nrcv,desc_index,isglob_in,info)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
type(psb_desc_type) :: desc type(psb_desc_type) :: desc
integer :: index_in(:),dep_list(:) integer :: index_in(:),dep_list(:)
integer,allocatable, intent(inout) :: desc_index(:) integer,allocatable, intent(inout) :: desc_index(:)
@ -97,7 +101,7 @@ module psi_mod
interface psi_swapdata interface psi_swapdata
subroutine psi_sswapdatam(flag,n,beta,y,desc_a,work,info,data) subroutine psi_sswapdatam(flag,n,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag, n integer, intent(in) :: flag, n
integer, intent(out) :: info integer, intent(out) :: info
real(psb_spk_) :: y(:,:), beta real(psb_spk_) :: y(:,:), beta
@ -106,7 +110,7 @@ module psi_mod
integer, optional :: data integer, optional :: data
end subroutine psi_sswapdatam end subroutine psi_sswapdatam
subroutine psi_sswapdatav(flag,beta,y,desc_a,work,info,data) subroutine psi_sswapdatav(flag,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag integer, intent(in) :: flag
integer, intent(out) :: info integer, intent(out) :: info
real(psb_spk_) :: y(:), beta real(psb_spk_) :: y(:), beta
@ -131,7 +135,7 @@ module psi_mod
integer, intent(in) :: idx(:),totxch,totsnd,totrcv integer, intent(in) :: idx(:),totxch,totsnd,totrcv
end subroutine psi_sswapidxv end subroutine psi_sswapidxv
subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag, n integer, intent(in) :: flag, n
integer, intent(out) :: info integer, intent(out) :: info
real(psb_dpk_) :: y(:,:), beta real(psb_dpk_) :: y(:,:), beta
@ -140,7 +144,7 @@ module psi_mod
integer, optional :: data integer, optional :: data
end subroutine psi_dswapdatam end subroutine psi_dswapdatam
subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag integer, intent(in) :: flag
integer, intent(out) :: info integer, intent(out) :: info
real(psb_dpk_) :: y(:), beta real(psb_dpk_) :: y(:), beta
@ -165,7 +169,7 @@ module psi_mod
integer, intent(in) :: idx(:),totxch,totsnd,totrcv integer, intent(in) :: idx(:),totxch,totsnd,totrcv
end subroutine psi_dswapidxv end subroutine psi_dswapidxv
subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag, n integer, intent(in) :: flag, n
integer, intent(out) :: info integer, intent(out) :: info
integer :: y(:,:), beta integer :: y(:,:), beta
@ -174,7 +178,7 @@ module psi_mod
integer, optional :: data integer, optional :: data
end subroutine psi_iswapdatam end subroutine psi_iswapdatam
subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag integer, intent(in) :: flag
integer, intent(out) :: info integer, intent(out) :: info
integer :: y(:), beta integer :: y(:), beta
@ -199,7 +203,7 @@ module psi_mod
integer, intent(in) :: idx(:),totxch,totsnd,totrcv integer, intent(in) :: idx(:),totxch,totsnd,totrcv
end subroutine psi_iswapidxv end subroutine psi_iswapidxv
subroutine psi_cswapdatam(flag,n,beta,y,desc_a,work,info,data) subroutine psi_cswapdatam(flag,n,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag, n integer, intent(in) :: flag, n
integer, intent(out) :: info integer, intent(out) :: info
complex(psb_spk_) :: y(:,:), beta complex(psb_spk_) :: y(:,:), beta
@ -208,7 +212,7 @@ module psi_mod
integer, optional :: data integer, optional :: data
end subroutine psi_cswapdatam end subroutine psi_cswapdatam
subroutine psi_cswapdatav(flag,beta,y,desc_a,work,info,data) subroutine psi_cswapdatav(flag,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag integer, intent(in) :: flag
integer, intent(out) :: info integer, intent(out) :: info
complex(psb_spk_) :: y(:), beta complex(psb_spk_) :: y(:), beta
@ -233,7 +237,7 @@ module psi_mod
integer, intent(in) :: idx(:),totxch,totsnd,totrcv integer, intent(in) :: idx(:),totxch,totsnd,totrcv
end subroutine psi_cswapidxv end subroutine psi_cswapidxv
subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag, n integer, intent(in) :: flag, n
integer, intent(out) :: info integer, intent(out) :: info
complex(psb_dpk_) :: y(:,:), beta complex(psb_dpk_) :: y(:,:), beta
@ -242,7 +246,7 @@ module psi_mod
integer, optional :: data integer, optional :: data
end subroutine psi_zswapdatam end subroutine psi_zswapdatam
subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag integer, intent(in) :: flag
integer, intent(out) :: info integer, intent(out) :: info
complex(psb_dpk_) :: y(:), beta complex(psb_dpk_) :: y(:), beta
@ -271,7 +275,7 @@ module psi_mod
interface psi_swaptran interface psi_swaptran
subroutine psi_sswaptranm(flag,n,beta,y,desc_a,work,info,data) subroutine psi_sswaptranm(flag,n,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag, n integer, intent(in) :: flag, n
integer, intent(out) :: info integer, intent(out) :: info
real(psb_spk_) :: y(:,:), beta real(psb_spk_) :: y(:,:), beta
@ -280,7 +284,7 @@ module psi_mod
integer, optional :: data integer, optional :: data
end subroutine psi_sswaptranm end subroutine psi_sswaptranm
subroutine psi_sswaptranv(flag,beta,y,desc_a,work,info,data) subroutine psi_sswaptranv(flag,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag integer, intent(in) :: flag
integer, intent(out) :: info integer, intent(out) :: info
real(psb_spk_) :: y(:), beta real(psb_spk_) :: y(:), beta
@ -305,7 +309,7 @@ module psi_mod
integer, intent(in) :: idx(:),totxch,totsnd,totrcv integer, intent(in) :: idx(:),totxch,totsnd,totrcv
end subroutine psi_stranidxv end subroutine psi_stranidxv
subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag, n integer, intent(in) :: flag, n
integer, intent(out) :: info integer, intent(out) :: info
real(psb_dpk_) :: y(:,:), beta real(psb_dpk_) :: y(:,:), beta
@ -314,7 +318,7 @@ module psi_mod
integer, optional :: data integer, optional :: data
end subroutine psi_dswaptranm end subroutine psi_dswaptranm
subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag integer, intent(in) :: flag
integer, intent(out) :: info integer, intent(out) :: info
real(psb_dpk_) :: y(:), beta real(psb_dpk_) :: y(:), beta
@ -339,7 +343,7 @@ module psi_mod
integer, intent(in) :: idx(:),totxch,totsnd,totrcv integer, intent(in) :: idx(:),totxch,totsnd,totrcv
end subroutine psi_dtranidxv end subroutine psi_dtranidxv
subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag, n integer, intent(in) :: flag, n
integer, intent(out) :: info integer, intent(out) :: info
integer :: y(:,:), beta integer :: y(:,:), beta
@ -348,7 +352,7 @@ module psi_mod
integer, optional :: data integer, optional :: data
end subroutine psi_iswaptranm end subroutine psi_iswaptranm
subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag integer, intent(in) :: flag
integer, intent(out) :: info integer, intent(out) :: info
integer :: y(:), beta integer :: y(:), beta
@ -373,7 +377,7 @@ module psi_mod
integer, intent(in) :: idx(:),totxch,totsnd,totrcv integer, intent(in) :: idx(:),totxch,totsnd,totrcv
end subroutine psi_itranidxv end subroutine psi_itranidxv
subroutine psi_cswaptranm(flag,n,beta,y,desc_a,work,info,data) subroutine psi_cswaptranm(flag,n,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag, n integer, intent(in) :: flag, n
integer, intent(out) :: info integer, intent(out) :: info
complex(psb_spk_) :: y(:,:), beta complex(psb_spk_) :: y(:,:), beta
@ -382,7 +386,7 @@ module psi_mod
integer, optional :: data integer, optional :: data
end subroutine psi_cswaptranm end subroutine psi_cswaptranm
subroutine psi_cswaptranv(flag,beta,y,desc_a,work,info,data) subroutine psi_cswaptranv(flag,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag integer, intent(in) :: flag
integer, intent(out) :: info integer, intent(out) :: info
complex(psb_spk_) :: y(:), beta complex(psb_spk_) :: y(:), beta
@ -407,7 +411,7 @@ module psi_mod
integer, intent(in) :: idx(:),totxch,totsnd,totrcv integer, intent(in) :: idx(:),totxch,totsnd,totrcv
end subroutine psi_ctranidxv end subroutine psi_ctranidxv
subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag, n integer, intent(in) :: flag, n
integer, intent(out) :: info integer, intent(out) :: info
complex(psb_dpk_) :: y(:,:), beta complex(psb_dpk_) :: y(:,:), beta
@ -416,7 +420,7 @@ module psi_mod
integer, optional :: data integer, optional :: data
end subroutine psi_zswaptranm end subroutine psi_zswaptranm
subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: flag integer, intent(in) :: flag
integer, intent(out) :: info integer, intent(out) :: info
complex(psb_dpk_) :: y(:), beta complex(psb_dpk_) :: y(:), beta
@ -451,7 +455,7 @@ module psi_mod
end interface end interface
interface psi_fnd_owner interface psi_fnd_owner
subroutine psi_fnd_owner(nv,idx,iprc,desc,info) subroutine psi_fnd_owner(nv,idx,iprc,desc,info)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: nv integer, intent(in) :: nv
integer, intent(in) :: idx(:) integer, intent(in) :: idx(:)
integer, allocatable, intent(out) :: iprc(:) integer, allocatable, intent(out) :: iprc(:)
@ -462,7 +466,7 @@ module psi_mod
interface psi_ldsc_pre_halo interface psi_ldsc_pre_halo
subroutine psi_ldsc_pre_halo(desc,ext_hv,info) subroutine psi_ldsc_pre_halo(desc,ext_hv,info)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
type(psb_desc_type), intent(inout) :: desc type(psb_desc_type), intent(inout) :: desc
logical, intent(in) :: ext_hv logical, intent(in) :: ext_hv
integer, intent(out) :: info integer, intent(out) :: info
@ -471,7 +475,7 @@ module psi_mod
interface psi_bld_hash interface psi_bld_hash
subroutine psi_bld_hash(desc,info) subroutine psi_bld_hash(desc,info)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
type(psb_desc_type), intent(inout) :: desc type(psb_desc_type), intent(inout) :: desc
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psi_bld_hash end subroutine psi_bld_hash
@ -479,7 +483,7 @@ module psi_mod
interface psi_bld_tmphalo interface psi_bld_tmphalo
subroutine psi_bld_tmphalo(desc,info) subroutine psi_bld_tmphalo(desc,info)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
type(psb_desc_type), intent(inout) :: desc type(psb_desc_type), intent(inout) :: desc
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psi_bld_tmphalo end subroutine psi_bld_tmphalo
@ -488,7 +492,7 @@ module psi_mod
interface psi_bld_tmpovrl interface psi_bld_tmpovrl
subroutine psi_bld_tmpovrl(iv,desc,info) subroutine psi_bld_tmpovrl(iv,desc,info)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: iv(:) integer, intent(in) :: iv(:)
type(psb_desc_type), intent(inout) :: desc type(psb_desc_type), intent(inout) :: desc
integer, intent(out) :: info integer, intent(out) :: info
@ -498,7 +502,7 @@ module psi_mod
interface psi_idx_cnv interface psi_idx_cnv
subroutine psi_idx_cnv1(nv,idxin,desc,info,mask,owned) subroutine psi_idx_cnv1(nv,idxin,desc,info,mask,owned)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: nv integer, intent(in) :: nv
integer, intent(inout) :: idxin(:) integer, intent(inout) :: idxin(:)
type(psb_desc_type), intent(in) :: desc type(psb_desc_type), intent(in) :: desc
@ -507,7 +511,7 @@ module psi_mod
logical, intent(in), optional :: owned logical, intent(in), optional :: owned
end subroutine psi_idx_cnv1 end subroutine psi_idx_cnv1
subroutine psi_idx_cnv2(nv,idxin,idxout,desc,info,mask,owned) subroutine psi_idx_cnv2(nv,idxin,idxout,desc,info,mask,owned)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: nv, idxin(:) integer, intent(in) :: nv, idxin(:)
integer, intent(out) :: idxout(:) integer, intent(out) :: idxout(:)
type(psb_desc_type), intent(in) :: desc type(psb_desc_type), intent(in) :: desc
@ -516,7 +520,7 @@ module psi_mod
logical, intent(in), optional :: owned logical, intent(in), optional :: owned
end subroutine psi_idx_cnv2 end subroutine psi_idx_cnv2
subroutine psi_idx_cnvs(idxin,idxout,desc,info,mask,owned) subroutine psi_idx_cnvs(idxin,idxout,desc,info,mask,owned)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: idxin integer, intent(in) :: idxin
integer, intent(out) :: idxout integer, intent(out) :: idxout
type(psb_desc_type), intent(in) :: desc type(psb_desc_type), intent(in) :: desc
@ -528,7 +532,7 @@ module psi_mod
interface psi_idx_ins_cnv interface psi_idx_ins_cnv
subroutine psi_idx_ins_cnv1(nv,idxin,desc,info,mask) subroutine psi_idx_ins_cnv1(nv,idxin,desc,info,mask)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: nv integer, intent(in) :: nv
integer, intent(inout) :: idxin(:) integer, intent(inout) :: idxin(:)
type(psb_desc_type), intent(inout) :: desc type(psb_desc_type), intent(inout) :: desc
@ -536,7 +540,7 @@ module psi_mod
logical, intent(in), optional, target :: mask(:) logical, intent(in), optional, target :: mask(:)
end subroutine psi_idx_ins_cnv1 end subroutine psi_idx_ins_cnv1
subroutine psi_idx_ins_cnv2(nv,idxin,idxout,desc,info,mask) subroutine psi_idx_ins_cnv2(nv,idxin,idxout,desc,info,mask)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: nv, idxin(:) integer, intent(in) :: nv, idxin(:)
integer, intent(out) :: idxout(:) integer, intent(out) :: idxout(:)
type(psb_desc_type), intent(inout) :: desc type(psb_desc_type), intent(inout) :: desc
@ -544,7 +548,7 @@ module psi_mod
logical, intent(in), optional, target :: mask(:) logical, intent(in), optional, target :: mask(:)
end subroutine psi_idx_ins_cnv2 end subroutine psi_idx_ins_cnv2
subroutine psi_idx_ins_cnvs(idxin,idxout,desc,info,mask) subroutine psi_idx_ins_cnvs(idxin,idxout,desc,info,mask)
use psb_descriptor_type use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
integer, intent(in) :: idxin integer, intent(in) :: idxin
integer, intent(out) :: idxout integer, intent(out) :: idxout
type(psb_desc_type), intent(inout) :: desc type(psb_desc_type), intent(inout) :: desc
@ -590,10 +594,6 @@ contains
subroutine psi_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info) subroutine psi_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info)
use psb_const_mod
use psb_error_mod
use psb_penv_mod
use psb_descriptor_type
use psb_realloc_mod use psb_realloc_mod
implicit none implicit none
@ -826,10 +826,7 @@ contains
end subroutine psi_inner_cnv2 end subroutine psi_inner_cnv2
subroutine psi_sovrl_updr1(x,desc_a,update,info) subroutine psi_sovrl_updr1(x,desc_a,update,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
real(psb_spk_), intent(inout), target :: x(:) real(psb_spk_), intent(inout), target :: x(:)
@ -898,10 +895,7 @@ contains
subroutine psi_sovrl_updr2(x,desc_a,update,info) subroutine psi_sovrl_updr2(x,desc_a,update,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
real(psb_spk_), intent(inout), target :: x(:,:) real(psb_spk_), intent(inout), target :: x(:,:)
@ -969,10 +963,7 @@ contains
end subroutine psi_sovrl_updr2 end subroutine psi_sovrl_updr2
subroutine psi_dovrl_updr1(x,desc_a,update,info) subroutine psi_dovrl_updr1(x,desc_a,update,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
real(psb_dpk_), intent(inout), target :: x(:) real(psb_dpk_), intent(inout), target :: x(:)
@ -1041,10 +1032,7 @@ contains
subroutine psi_dovrl_updr2(x,desc_a,update,info) subroutine psi_dovrl_updr2(x,desc_a,update,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
real(psb_dpk_), intent(inout), target :: x(:,:) real(psb_dpk_), intent(inout), target :: x(:,:)
@ -1112,10 +1100,7 @@ contains
end subroutine psi_dovrl_updr2 end subroutine psi_dovrl_updr2
subroutine psi_covrl_updr1(x,desc_a,update,info) subroutine psi_covrl_updr1(x,desc_a,update,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
complex(psb_spk_), intent(inout), target :: x(:) complex(psb_spk_), intent(inout), target :: x(:)
@ -1184,10 +1169,7 @@ contains
subroutine psi_covrl_updr2(x,desc_a,update,info) subroutine psi_covrl_updr2(x,desc_a,update,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
complex(psb_spk_), intent(inout), target :: x(:,:) complex(psb_spk_), intent(inout), target :: x(:,:)
@ -1255,10 +1237,7 @@ contains
end subroutine psi_covrl_updr2 end subroutine psi_covrl_updr2
subroutine psi_zovrl_updr1(x,desc_a,update,info) subroutine psi_zovrl_updr1(x,desc_a,update,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
complex(psb_dpk_), intent(inout), target :: x(:) complex(psb_dpk_), intent(inout), target :: x(:)
@ -1327,10 +1306,7 @@ contains
subroutine psi_zovrl_updr2(x,desc_a,update,info) subroutine psi_zovrl_updr2(x,desc_a,update,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
complex(psb_dpk_), intent(inout), target :: x(:,:) complex(psb_dpk_), intent(inout), target :: x(:,:)
@ -1398,10 +1374,7 @@ contains
end subroutine psi_zovrl_updr2 end subroutine psi_zovrl_updr2
subroutine psi_iovrl_updr1(x,desc_a,update,info) subroutine psi_iovrl_updr1(x,desc_a,update,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
integer, intent(inout), target :: x(:) integer, intent(inout), target :: x(:)
@ -1471,10 +1444,7 @@ contains
subroutine psi_iovrl_updr2(x,desc_a,update,info) subroutine psi_iovrl_updr2(x,desc_a,update,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
integer, intent(inout), target :: x(:,:) integer, intent(inout), target :: x(:,:)
@ -1544,11 +1514,8 @@ contains
subroutine psi_sovrl_saver1(x,xs,desc_a,info) subroutine psi_sovrl_saver1(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_penv_mod
implicit none implicit none
real(psb_spk_), intent(inout) :: x(:) real(psb_spk_), intent(inout) :: x(:)
@ -1599,10 +1566,7 @@ contains
end subroutine psi_sovrl_saver1 end subroutine psi_sovrl_saver1
subroutine psi_sovrl_restrr1(x,xs,desc_a,info) subroutine psi_sovrl_restrr1(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
real(psb_spk_), intent(inout) :: x(:) real(psb_spk_), intent(inout) :: x(:)
@ -1648,11 +1612,8 @@ contains
subroutine psi_sovrl_saver2(x,xs,desc_a,info) subroutine psi_sovrl_saver2(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_penv_mod
implicit none implicit none
real(psb_spk_), intent(inout) :: x(:,:) real(psb_spk_), intent(inout) :: x(:,:)
@ -1704,10 +1665,7 @@ contains
end subroutine psi_sovrl_saver2 end subroutine psi_sovrl_saver2
subroutine psi_sovrl_restrr2(x,xs,desc_a,info) subroutine psi_sovrl_restrr2(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
real(psb_spk_), intent(inout) :: x(:,:) real(psb_spk_), intent(inout) :: x(:,:)
@ -1760,11 +1718,8 @@ contains
subroutine psi_dovrl_saver1(x,xs,desc_a,info) subroutine psi_dovrl_saver1(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_penv_mod
implicit none implicit none
real(psb_dpk_), intent(inout) :: x(:) real(psb_dpk_), intent(inout) :: x(:)
@ -1815,10 +1770,7 @@ contains
end subroutine psi_dovrl_saver1 end subroutine psi_dovrl_saver1
subroutine psi_dovrl_restrr1(x,xs,desc_a,info) subroutine psi_dovrl_restrr1(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
real(psb_dpk_), intent(inout) :: x(:) real(psb_dpk_), intent(inout) :: x(:)
@ -1864,11 +1816,8 @@ contains
subroutine psi_dovrl_saver2(x,xs,desc_a,info) subroutine psi_dovrl_saver2(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_penv_mod
implicit none implicit none
real(psb_dpk_), intent(inout) :: x(:,:) real(psb_dpk_), intent(inout) :: x(:,:)
@ -1920,10 +1869,7 @@ contains
end subroutine psi_dovrl_saver2 end subroutine psi_dovrl_saver2
subroutine psi_dovrl_restrr2(x,xs,desc_a,info) subroutine psi_dovrl_restrr2(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
real(psb_dpk_), intent(inout) :: x(:,:) real(psb_dpk_), intent(inout) :: x(:,:)
@ -1975,11 +1921,8 @@ contains
end subroutine psi_dovrl_restrr2 end subroutine psi_dovrl_restrr2
subroutine psi_covrl_saver1(x,xs,desc_a,info) subroutine psi_covrl_saver1(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_penv_mod
implicit none implicit none
complex(psb_spk_), intent(inout) :: x(:) complex(psb_spk_), intent(inout) :: x(:)
@ -2030,10 +1973,7 @@ contains
end subroutine psi_covrl_saver1 end subroutine psi_covrl_saver1
subroutine psi_covrl_restrr1(x,xs,desc_a,info) subroutine psi_covrl_restrr1(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
complex(psb_spk_), intent(inout) :: x(:) complex(psb_spk_), intent(inout) :: x(:)
@ -2079,11 +2019,8 @@ contains
subroutine psi_covrl_saver2(x,xs,desc_a,info) subroutine psi_covrl_saver2(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_penv_mod
implicit none implicit none
complex(psb_spk_), intent(inout) :: x(:,:) complex(psb_spk_), intent(inout) :: x(:,:)
@ -2135,10 +2072,7 @@ contains
end subroutine psi_covrl_saver2 end subroutine psi_covrl_saver2
subroutine psi_covrl_restrr2(x,xs,desc_a,info) subroutine psi_covrl_restrr2(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
complex(psb_spk_), intent(inout) :: x(:,:) complex(psb_spk_), intent(inout) :: x(:,:)
@ -2191,11 +2125,9 @@ contains
subroutine psi_zovrl_saver1(x,xs,desc_a,info) subroutine psi_zovrl_saver1(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_penv_mod
implicit none implicit none
complex(psb_dpk_), intent(inout) :: x(:) complex(psb_dpk_), intent(inout) :: x(:)
@ -2246,10 +2178,7 @@ contains
end subroutine psi_zovrl_saver1 end subroutine psi_zovrl_saver1
subroutine psi_zovrl_restrr1(x,xs,desc_a,info) subroutine psi_zovrl_restrr1(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
complex(psb_dpk_), intent(inout) :: x(:) complex(psb_dpk_), intent(inout) :: x(:)
@ -2295,11 +2224,9 @@ contains
subroutine psi_zovrl_saver2(x,xs,desc_a,info) subroutine psi_zovrl_saver2(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_penv_mod
implicit none implicit none
complex(psb_dpk_), intent(inout) :: x(:,:) complex(psb_dpk_), intent(inout) :: x(:,:)
@ -2351,10 +2278,7 @@ contains
end subroutine psi_zovrl_saver2 end subroutine psi_zovrl_saver2
subroutine psi_zovrl_restrr2(x,xs,desc_a,info) subroutine psi_zovrl_restrr2(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
complex(psb_dpk_), intent(inout) :: x(:,:) complex(psb_dpk_), intent(inout) :: x(:,:)
@ -2407,11 +2331,9 @@ contains
subroutine psi_iovrl_saver1(x,xs,desc_a,info) subroutine psi_iovrl_saver1(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_penv_mod
implicit none implicit none
integer, intent(inout) :: x(:) integer, intent(inout) :: x(:)
@ -2462,10 +2384,7 @@ contains
end subroutine psi_iovrl_saver1 end subroutine psi_iovrl_saver1
subroutine psi_iovrl_restrr1(x,xs,desc_a,info) subroutine psi_iovrl_restrr1(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
integer, intent(inout) :: x(:) integer, intent(inout) :: x(:)
@ -2567,10 +2486,7 @@ contains
end subroutine psi_iovrl_saver2 end subroutine psi_iovrl_saver2
subroutine psi_iovrl_restrr2(x,xs,desc_a,info) subroutine psi_iovrl_restrr2(x,xs,desc_a,info)
use psb_descriptor_type
use psb_const_mod
use psb_error_mod
use psb_penv_mod
implicit none implicit none
integer, intent(inout) :: x(:,:) integer, intent(inout) :: x(:,:)
@ -2622,10 +2538,7 @@ contains
end subroutine psi_iovrl_restrr2 end subroutine psi_iovrl_restrr2
subroutine psi_bld_ovr_mst(me,ovrlap_elem,mst_idx,info) subroutine psi_bld_ovr_mst(me,ovrlap_elem,mst_idx,info)
use psb_const_mod
use psb_error_mod
use psb_penv_mod
use psb_descriptor_type
use psb_realloc_mod use psb_realloc_mod
implicit none implicit none

@ -45,8 +45,8 @@ Module psb_krylov_mod
interface psb_cg interface psb_cg
subroutine psb_scg(a,prec,b,x,eps,& subroutine psb_scg(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop,cond) & desc_a,info,itmax,iter,err,itrace,istop,cond)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_sprec_type
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_), intent(in) :: b(:) real(psb_spk_), intent(in) :: b(:)
@ -60,8 +60,8 @@ Module psb_krylov_mod
end subroutine psb_scg end subroutine psb_scg
subroutine psb_dcg(a,prec,b,x,eps,& subroutine psb_dcg(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop,cond) & desc_a,info,itmax,iter,err,itrace,istop,cond)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_dprec_type
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_), intent(in) :: b(:) real(psb_dpk_), intent(in) :: b(:)
@ -75,8 +75,8 @@ Module psb_krylov_mod
end subroutine psb_dcg end subroutine psb_dcg
subroutine psb_ccg(a,prec,b,x,eps,& subroutine psb_ccg(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_cprec_type
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), 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(in) :: b(:)
@ -90,8 +90,8 @@ Module psb_krylov_mod
end subroutine psb_ccg end subroutine psb_ccg
subroutine psb_zcg(a,prec,b,x,eps,& subroutine psb_zcg(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_zprec_type
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), 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(in) :: b(:)
@ -108,8 +108,8 @@ Module psb_krylov_mod
interface psb_bicg interface psb_bicg
subroutine psb_sbicg(a,prec,b,x,eps,& subroutine psb_sbicg(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_sprec_type
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_), intent(in) :: b(:) real(psb_spk_), intent(in) :: b(:)
@ -123,8 +123,8 @@ Module psb_krylov_mod
end subroutine psb_sbicg end subroutine psb_sbicg
subroutine psb_dbicg(a,prec,b,x,eps,& subroutine psb_dbicg(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_dprec_type
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_), intent(in) :: b(:) real(psb_dpk_), intent(in) :: b(:)
@ -138,8 +138,8 @@ Module psb_krylov_mod
end subroutine psb_dbicg end subroutine psb_dbicg
subroutine psb_cbicg(a,prec,b,x,eps,& subroutine psb_cbicg(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_cprec_type
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), 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(in) :: b(:)
@ -153,8 +153,8 @@ Module psb_krylov_mod
end subroutine psb_cbicg end subroutine psb_cbicg
subroutine psb_zbicg(a,prec,b,x,eps,& subroutine psb_zbicg(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_zprec_type
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), 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(in) :: b(:)
@ -171,8 +171,8 @@ Module psb_krylov_mod
interface psb_bicgstab interface psb_bicgstab
subroutine psb_scgstab(a,prec,b,x,eps,& subroutine psb_scgstab(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_sprec_type
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_), intent(in) :: b(:) real(psb_spk_), intent(in) :: b(:)
@ -186,8 +186,8 @@ Module psb_krylov_mod
end subroutine psb_scgstab end subroutine psb_scgstab
subroutine psb_dcgstab(a,prec,b,x,eps,& subroutine psb_dcgstab(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_dprec_type
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_), intent(in) :: b(:) real(psb_dpk_), intent(in) :: b(:)
@ -201,8 +201,8 @@ Module psb_krylov_mod
end subroutine psb_dcgstab end subroutine psb_dcgstab
subroutine psb_ccgstab(a,prec,b,x,eps,& subroutine psb_ccgstab(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_cprec_type
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), 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(in) :: b(:)
@ -216,8 +216,8 @@ Module psb_krylov_mod
end subroutine psb_ccgstab end subroutine psb_ccgstab
subroutine psb_zcgstab(a,prec,b,x,eps,& subroutine psb_zcgstab(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_zprec_type
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), 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(in) :: b(:)
@ -234,8 +234,8 @@ Module psb_krylov_mod
interface psb_bicgstabl interface psb_bicgstabl
Subroutine psb_scgstabl(a,prec,b,x,eps,desc_a,info,& Subroutine psb_scgstabl(a,prec,b,x,eps,desc_a,info,&
&itmax,iter,err, itrace,irst,istop) &itmax,iter,err, itrace,irst,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_sprec_type
Type(psb_sspmat_type), Intent(in) :: a Type(psb_sspmat_type), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a Type(psb_desc_type), Intent(in) :: desc_a
type(psb_sprec_type), intent(in) :: prec type(psb_sprec_type), intent(in) :: prec
@ -249,8 +249,8 @@ Module psb_krylov_mod
end subroutine psb_scgstabl end subroutine psb_scgstabl
Subroutine psb_dcgstabl(a,prec,b,x,eps,desc_a,info,& Subroutine psb_dcgstabl(a,prec,b,x,eps,desc_a,info,&
&itmax,iter,err, itrace,irst,istop) &itmax,iter,err, itrace,irst,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_dprec_type
Type(psb_dspmat_type), Intent(in) :: a Type(psb_dspmat_type), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a Type(psb_desc_type), Intent(in) :: desc_a
type(psb_dprec_type), intent(in) :: prec type(psb_dprec_type), intent(in) :: prec
@ -264,8 +264,8 @@ Module psb_krylov_mod
end subroutine psb_dcgstabl end subroutine psb_dcgstabl
Subroutine psb_ccgstabl(a,prec,b,x,eps,desc_a,info,& Subroutine psb_ccgstabl(a,prec,b,x,eps,desc_a,info,&
&itmax,iter,err,itrace,irst,istop) &itmax,iter,err,itrace,irst,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_cprec_type
Type(psb_cspmat_type), Intent(in) :: a Type(psb_cspmat_type), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a Type(psb_desc_type), Intent(in) :: desc_a
type(psb_cprec_type), intent(in) :: prec type(psb_cprec_type), intent(in) :: prec
@ -279,8 +279,8 @@ Module psb_krylov_mod
end subroutine psb_ccgstabl end subroutine psb_ccgstabl
Subroutine psb_zcgstabl(a,prec,b,x,eps,desc_a,info,& Subroutine psb_zcgstabl(a,prec,b,x,eps,desc_a,info,&
&itmax,iter,err,itrace,irst,istop) &itmax,iter,err,itrace,irst,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_zprec_type
Type(psb_zspmat_type), Intent(in) :: a Type(psb_zspmat_type), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a Type(psb_desc_type), Intent(in) :: desc_a
type(psb_zprec_type), intent(in) :: prec type(psb_zprec_type), intent(in) :: prec
@ -297,8 +297,8 @@ Module psb_krylov_mod
interface psb_rgmres interface psb_rgmres
Subroutine psb_srgmres(a,prec,b,x,eps,desc_a,info,& Subroutine psb_srgmres(a,prec,b,x,eps,desc_a,info,&
&itmax,iter,err,itrace,irst,istop) &itmax,iter,err,itrace,irst,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_sprec_type
Type(psb_sspmat_type), Intent(in) :: a Type(psb_sspmat_type), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a Type(psb_desc_type), Intent(in) :: desc_a
type(psb_sprec_type), intent(in) :: prec type(psb_sprec_type), intent(in) :: prec
@ -312,8 +312,8 @@ Module psb_krylov_mod
end subroutine psb_srgmres end subroutine psb_srgmres
Subroutine psb_drgmres(a,prec,b,x,eps,desc_a,info,& Subroutine psb_drgmres(a,prec,b,x,eps,desc_a,info,&
&itmax,iter,err,itrace,irst,istop) &itmax,iter,err,itrace,irst,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_dprec_type
Type(psb_dspmat_type), Intent(in) :: a Type(psb_dspmat_type), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a Type(psb_desc_type), Intent(in) :: desc_a
type(psb_dprec_type), intent(in) :: prec type(psb_dprec_type), intent(in) :: prec
@ -327,8 +327,8 @@ Module psb_krylov_mod
end subroutine psb_drgmres end subroutine psb_drgmres
Subroutine psb_crgmres(a,prec,b,x,eps,desc_a,info,& Subroutine psb_crgmres(a,prec,b,x,eps,desc_a,info,&
&itmax,iter,err,itrace,irst,istop) &itmax,iter,err,itrace,irst,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_cprec_type
Type(psb_cspmat_type), Intent(in) :: a Type(psb_cspmat_type), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a Type(psb_desc_type), Intent(in) :: desc_a
type(psb_cprec_type), intent(in) :: prec type(psb_cprec_type), intent(in) :: prec
@ -342,8 +342,8 @@ Module psb_krylov_mod
end subroutine psb_crgmres end subroutine psb_crgmres
Subroutine psb_zrgmres(a,prec,b,x,eps,desc_a,info,& Subroutine psb_zrgmres(a,prec,b,x,eps,desc_a,info,&
&itmax,iter,err,itrace,irst,istop) &itmax,iter,err,itrace,irst,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_zprec_type
Type(psb_zspmat_type), Intent(in) :: a Type(psb_zspmat_type), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a Type(psb_desc_type), Intent(in) :: desc_a
type(psb_zprec_type), intent(in) :: prec type(psb_zprec_type), intent(in) :: prec
@ -360,8 +360,8 @@ Module psb_krylov_mod
interface psb_cgs interface psb_cgs
subroutine psb_scgs(a,prec,b,x,eps,desc_a,info,& subroutine psb_scgs(a,prec,b,x,eps,desc_a,info,&
&itmax,iter,err,itrace,istop) &itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_sprec_type
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(psb_sprec_type), intent(in) :: prec type(psb_sprec_type), intent(in) :: prec
@ -375,8 +375,8 @@ Module psb_krylov_mod
end subroutine psb_scgs end subroutine psb_scgs
subroutine psb_dcgs(a,prec,b,x,eps,desc_a,info,& subroutine psb_dcgs(a,prec,b,x,eps,desc_a,info,&
&itmax,iter,err,itrace,istop) &itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_dprec_type
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(psb_dprec_type), intent(in) :: prec type(psb_dprec_type), intent(in) :: prec
@ -390,8 +390,8 @@ Module psb_krylov_mod
end subroutine psb_dcgs end subroutine psb_dcgs
subroutine psb_ccgs(a,prec,b,x,eps,& subroutine psb_ccgs(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_mod use psb_prec_type, only : psb_cprec_type
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), 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(in) :: b(:)
@ -405,8 +405,8 @@ Module psb_krylov_mod
end subroutine psb_ccgs end subroutine psb_ccgs
subroutine psb_zcgs(a,prec,b,x,eps,& subroutine psb_zcgs(a,prec,b,x,eps,&
& desc_a,info,itmax,iter,err,itrace,istop) & desc_a,info,itmax,iter,err,itrace,istop)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_mod use psb_prec_type, only : psb_zprec_type
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), 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(in) :: b(:)
@ -495,7 +495,7 @@ contains
Subroutine psb_skrylov(method,a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,irst,istop,cond) Subroutine psb_skrylov(method,a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,irst,istop,cond)
use psb_base_mod use psb_base_mod
use psb_prec_mod use psb_prec_mod,only : psb_sprec_type, psb_dprec_type, psb_cprec_type, psb_zprec_type
character(len=*) :: method character(len=*) :: method
Type(psb_sspmat_type), Intent(in) :: a Type(psb_sspmat_type), Intent(in) :: a
@ -612,7 +612,7 @@ contains
Subroutine psb_dkrylov(method,a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,irst,istop,cond) Subroutine psb_dkrylov(method,a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,irst,istop,cond)
use psb_base_mod use psb_base_mod
use psb_prec_mod use psb_prec_mod,only : psb_sprec_type, psb_dprec_type, psb_cprec_type, psb_zprec_type
character(len=*) :: method character(len=*) :: method
Type(psb_dspmat_type), Intent(in) :: a Type(psb_dspmat_type), Intent(in) :: a
@ -729,7 +729,7 @@ contains
! !
Subroutine psb_ckrylov(method,a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,irst,istop) Subroutine psb_ckrylov(method,a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,irst,istop)
use psb_base_mod use psb_base_mod
use psb_prec_mod use psb_prec_mod,only : psb_sprec_type, psb_dprec_type, psb_cprec_type, psb_zprec_type
character(len=*) :: method character(len=*) :: method
Type(psb_cspmat_type), Intent(in) :: a Type(psb_cspmat_type), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a Type(psb_desc_type), Intent(in) :: desc_a
@ -845,7 +845,7 @@ contains
! !
Subroutine psb_zkrylov(method,a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,irst,istop) Subroutine psb_zkrylov(method,a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,irst,istop)
use psb_base_mod use psb_base_mod
use psb_prec_mod use psb_prec_mod,only : psb_sprec_type, psb_dprec_type, psb_cprec_type, psb_zprec_type
character(len=*) :: method character(len=*) :: method
Type(psb_zspmat_type), Intent(in) :: a Type(psb_zspmat_type), Intent(in) :: a
Type(psb_desc_type), Intent(in) :: desc_a Type(psb_desc_type), Intent(in) :: desc_a

@ -35,8 +35,8 @@ module psb_prec_mod
interface psb_precbld interface psb_precbld
subroutine psb_sprecbld(a,desc_a,prec,info,upd) subroutine psb_sprecbld(a,desc_a,prec,info,upd)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_sprec_type
implicit none implicit none
type(psb_sspmat_type), intent(in), target :: a type(psb_sspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
@ -45,8 +45,8 @@ module psb_prec_mod
character, intent(in),optional :: upd character, intent(in),optional :: upd
end subroutine psb_sprecbld end subroutine psb_sprecbld
subroutine psb_dprecbld(a,desc_a,prec,info,upd) subroutine psb_dprecbld(a,desc_a,prec,info,upd)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_dprec_type
implicit none implicit none
type(psb_dspmat_type), intent(in), target :: a type(psb_dspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
@ -55,8 +55,8 @@ module psb_prec_mod
character, intent(in),optional :: upd character, intent(in),optional :: upd
end subroutine psb_dprecbld end subroutine psb_dprecbld
subroutine psb_cprecbld(a,desc_a,prec,info,upd) subroutine psb_cprecbld(a,desc_a,prec,info,upd)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_cprec_type
implicit none implicit none
type(psb_cspmat_type), intent(in), target :: a type(psb_cspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
@ -65,8 +65,8 @@ module psb_prec_mod
character, intent(in),optional :: upd character, intent(in),optional :: upd
end subroutine psb_cprecbld end subroutine psb_cprecbld
subroutine psb_zprecbld(a,desc_a,prec,info,upd) subroutine psb_zprecbld(a,desc_a,prec,info,upd)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_zprec_type
implicit none implicit none
type(psb_zspmat_type), intent(in), target :: a type(psb_zspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
@ -78,16 +78,16 @@ module psb_prec_mod
interface psb_precinit interface psb_precinit
subroutine psb_sprecinit(prec,ptype,info) subroutine psb_sprecinit(prec,ptype,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_sprec_type
implicit none implicit none
type(psb_sprec_type), intent(inout) :: prec type(psb_sprec_type), intent(inout) :: prec
character(len=*), intent(in) :: ptype character(len=*), intent(in) :: ptype
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_sprecinit end subroutine psb_sprecinit
subroutine psb_dprecinit(prec,ptype,info) subroutine psb_dprecinit(prec,ptype,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_dprec_type
implicit none implicit none
type(psb_dprec_type), intent(inout) :: prec type(psb_dprec_type), intent(inout) :: prec
character(len=*), intent(in) :: ptype character(len=*), intent(in) :: ptype
@ -113,16 +113,16 @@ module psb_prec_mod
interface psb_precset interface psb_precset
subroutine psb_sprecseti(prec,what,val,info) subroutine psb_sprecseti(prec,what,val,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_sprec_type
implicit none implicit none
type(psb_sprec_type), intent(inout) :: prec type(psb_sprec_type), intent(inout) :: prec
integer :: what, val integer :: what, val
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_sprecseti end subroutine psb_sprecseti
subroutine psb_sprecsets(prec,what,val,info) subroutine psb_sprecsets(prec,what,val,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_sprec_type
implicit none implicit none
type(psb_sprec_type), intent(inout) :: prec type(psb_sprec_type), intent(inout) :: prec
integer :: what integer :: what
@ -130,16 +130,16 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_sprecsets end subroutine psb_sprecsets
subroutine psb_dprecseti(prec,what,val,info) subroutine psb_dprecseti(prec,what,val,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_dprec_type
implicit none implicit none
type(psb_dprec_type), intent(inout) :: prec type(psb_dprec_type), intent(inout) :: prec
integer :: what, val integer :: what, val
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dprecseti end subroutine psb_dprecseti
subroutine psb_dprecsetd(prec,what,val,info) subroutine psb_dprecsetd(prec,what,val,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_dprec_type
implicit none implicit none
type(psb_dprec_type), intent(inout) :: prec type(psb_dprec_type), intent(inout) :: prec
integer :: what integer :: what
@ -147,16 +147,16 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dprecsetd end subroutine psb_dprecsetd
subroutine psb_cprecseti(prec,what,val,info) subroutine psb_cprecseti(prec,what,val,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_cprec_type
implicit none implicit none
type(psb_cprec_type), intent(inout) :: prec type(psb_cprec_type), intent(inout) :: prec
integer :: what, val integer :: what, val
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_cprecseti end subroutine psb_cprecseti
subroutine psb_cprecsets(prec,what,val,info) subroutine psb_cprecsets(prec,what,val,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_cprec_type
implicit none implicit none
type(psb_cprec_type), intent(inout) :: prec type(psb_cprec_type), intent(inout) :: prec
integer :: what integer :: what
@ -164,16 +164,16 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_cprecsets end subroutine psb_cprecsets
subroutine psb_zprecseti(prec,what,val,info) subroutine psb_zprecseti(prec,what,val,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_zprec_type
implicit none implicit none
type(psb_zprec_type), intent(inout) :: prec type(psb_zprec_type), intent(inout) :: prec
integer :: what, val integer :: what, val
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zprecseti end subroutine psb_zprecseti
subroutine psb_zprecsetd(prec,what,val,info) subroutine psb_zprecsetd(prec,what,val,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_zprec_type
implicit none implicit none
type(psb_zprec_type), intent(inout) :: prec type(psb_zprec_type), intent(inout) :: prec
integer :: what integer :: what
@ -185,8 +185,8 @@ module psb_prec_mod
interface psb_precaply interface psb_precaply
subroutine psb_sprc_aply(prec,x,y,desc_data,info,trans,work) subroutine psb_sprc_aply(prec,x,y,desc_data,info,trans,work)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_sprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_sprec_type), intent(in) :: prec type(psb_sprec_type), intent(in) :: prec
real(psb_spk_),intent(in) :: x(:) real(psb_spk_),intent(in) :: x(:)
@ -196,8 +196,8 @@ module psb_prec_mod
real(psb_spk_),intent(inout), optional, target :: work(:) real(psb_spk_),intent(inout), optional, target :: work(:)
end subroutine psb_sprc_aply end subroutine psb_sprc_aply
subroutine psb_sprc_aply1(prec,x,desc_data,info,trans) subroutine psb_sprc_aply1(prec,x,desc_data,info,trans)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_sprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_sprec_type), intent(in) :: prec type(psb_sprec_type), intent(in) :: prec
real(psb_spk_),intent(inout) :: x(:) real(psb_spk_),intent(inout) :: x(:)
@ -205,8 +205,8 @@ module psb_prec_mod
character(len=1), optional :: trans character(len=1), optional :: trans
end subroutine psb_sprc_aply1 end subroutine psb_sprc_aply1
subroutine psb_dprc_aply(prec,x,y,desc_data,info,trans,work) subroutine psb_dprc_aply(prec,x,y,desc_data,info,trans,work)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_dprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_dprec_type), intent(in) :: prec type(psb_dprec_type), intent(in) :: prec
real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(in) :: x(:)
@ -216,8 +216,8 @@ module psb_prec_mod
real(psb_dpk_),intent(inout), optional, target :: work(:) real(psb_dpk_),intent(inout), optional, target :: work(:)
end subroutine psb_dprc_aply end subroutine psb_dprc_aply
subroutine psb_dprc_aply1(prec,x,desc_data,info,trans) subroutine psb_dprc_aply1(prec,x,desc_data,info,trans)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_dprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_dprec_type), intent(in) :: prec type(psb_dprec_type), intent(in) :: prec
real(psb_dpk_),intent(inout) :: x(:) real(psb_dpk_),intent(inout) :: x(:)
@ -225,8 +225,8 @@ module psb_prec_mod
character(len=1), optional :: trans character(len=1), optional :: trans
end subroutine psb_dprc_aply1 end subroutine psb_dprc_aply1
subroutine psb_cprc_aply(prec,x,y,desc_data,info,trans,work) subroutine psb_cprc_aply(prec,x,y,desc_data,info,trans,work)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_cprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_cprec_type), intent(in) :: prec type(psb_cprec_type), intent(in) :: prec
complex(psb_spk_),intent(in) :: x(:) complex(psb_spk_),intent(in) :: x(:)
@ -236,8 +236,8 @@ module psb_prec_mod
complex(psb_spk_),intent(inout), optional, target :: work(:) complex(psb_spk_),intent(inout), optional, target :: work(:)
end subroutine psb_cprc_aply end subroutine psb_cprc_aply
subroutine psb_cprc_aply1(prec,x,desc_data,info,trans) subroutine psb_cprc_aply1(prec,x,desc_data,info,trans)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_cprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_cprec_type), intent(in) :: prec type(psb_cprec_type), intent(in) :: prec
complex(psb_spk_),intent(inout) :: x(:) complex(psb_spk_),intent(inout) :: x(:)
@ -245,8 +245,8 @@ module psb_prec_mod
character(len=1), optional :: trans character(len=1), optional :: trans
end subroutine psb_cprc_aply1 end subroutine psb_cprc_aply1
subroutine psb_zprc_aply(prec,x,y,desc_data,info,trans,work) subroutine psb_zprc_aply(prec,x,y,desc_data,info,trans,work)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_zprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_zprec_type), intent(in) :: prec type(psb_zprec_type), intent(in) :: prec
complex(psb_dpk_),intent(in) :: x(:) complex(psb_dpk_),intent(in) :: x(:)
@ -256,8 +256,8 @@ module psb_prec_mod
complex(psb_dpk_),intent(inout), optional, target :: work(:) complex(psb_dpk_),intent(inout), optional, target :: work(:)
end subroutine psb_zprc_aply end subroutine psb_zprc_aply
subroutine psb_zprc_aply1(prec,x,desc_data,info,trans) subroutine psb_zprc_aply1(prec,x,desc_data,info,trans)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_zprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_zprec_type), intent(in) :: prec type(psb_zprec_type), intent(in) :: prec
complex(psb_dpk_),intent(inout) :: x(:) complex(psb_dpk_),intent(inout) :: x(:)
@ -269,8 +269,8 @@ module psb_prec_mod
interface psb_bjac_aply interface psb_bjac_aply
subroutine psb_sbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine psb_sbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_sprec_type
type(psb_desc_type), intent(in) :: desc_data type(psb_desc_type), intent(in) :: desc_data
type(psb_sprec_type), intent(in) :: prec type(psb_sprec_type), intent(in) :: prec
real(psb_spk_),intent(in) :: x(:) real(psb_spk_),intent(in) :: x(:)
@ -281,8 +281,8 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_sbjac_aply end subroutine psb_sbjac_aply
subroutine psb_dbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine psb_dbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_dprec_type
type(psb_desc_type), intent(in) :: desc_data type(psb_desc_type), intent(in) :: desc_data
type(psb_dprec_type), intent(in) :: prec type(psb_dprec_type), intent(in) :: prec
real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(in) :: x(:)
@ -293,8 +293,8 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dbjac_aply end subroutine psb_dbjac_aply
subroutine psb_cbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine psb_cbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_cprec_type
type(psb_desc_type), intent(in) :: desc_data type(psb_desc_type), intent(in) :: desc_data
type(psb_cprec_type), intent(in) :: prec type(psb_cprec_type), intent(in) :: prec
complex(psb_spk_),intent(in) :: x(:) complex(psb_spk_),intent(in) :: x(:)
@ -305,8 +305,8 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_cbjac_aply end subroutine psb_cbjac_aply
subroutine psb_zbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine psb_zbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_zprec_type
type(psb_desc_type), intent(in) :: desc_data type(psb_desc_type), intent(in) :: desc_data
type(psb_zprec_type), intent(in) :: prec type(psb_zprec_type), intent(in) :: prec
complex(psb_dpk_),intent(in) :: x(:) complex(psb_dpk_),intent(in) :: x(:)
@ -320,7 +320,7 @@ module psb_prec_mod
interface psb_ilu_fct interface psb_ilu_fct
subroutine psb_silu_fct(a,l,u,d,info,blck) subroutine psb_silu_fct(a,l,u,d,info,blck)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
integer, intent(out) :: info integer, intent(out) :: info
type(psb_sspmat_type),intent(in) :: a type(psb_sspmat_type),intent(in) :: a
type(psb_sspmat_type),intent(inout) :: l,u type(psb_sspmat_type),intent(inout) :: l,u
@ -328,7 +328,7 @@ module psb_prec_mod
real(psb_spk_), intent(inout) :: d(:) real(psb_spk_), intent(inout) :: d(:)
end subroutine psb_silu_fct end subroutine psb_silu_fct
subroutine psb_dilu_fct(a,l,u,d,info,blck) subroutine psb_dilu_fct(a,l,u,d,info,blck)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
integer, intent(out) :: info integer, intent(out) :: info
type(psb_dspmat_type),intent(in) :: a type(psb_dspmat_type),intent(in) :: a
type(psb_dspmat_type),intent(inout) :: l,u type(psb_dspmat_type),intent(inout) :: l,u
@ -336,7 +336,7 @@ module psb_prec_mod
real(psb_dpk_), intent(inout) :: d(:) real(psb_dpk_), intent(inout) :: d(:)
end subroutine psb_dilu_fct end subroutine psb_dilu_fct
subroutine psb_cilu_fct(a,l,u,d,info,blck) subroutine psb_cilu_fct(a,l,u,d,info,blck)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
integer, intent(out) :: info integer, intent(out) :: info
type(psb_cspmat_type),intent(in) :: a type(psb_cspmat_type),intent(in) :: a
type(psb_cspmat_type),intent(inout) :: l,u type(psb_cspmat_type),intent(inout) :: l,u
@ -344,7 +344,7 @@ module psb_prec_mod
complex(psb_spk_), intent(inout) :: d(:) complex(psb_spk_), intent(inout) :: d(:)
end subroutine psb_cilu_fct end subroutine psb_cilu_fct
subroutine psb_zilu_fct(a,l,u,d,info,blck) subroutine psb_zilu_fct(a,l,u,d,info,blck)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
integer, intent(out) :: info integer, intent(out) :: info
type(psb_zspmat_type),intent(in) :: a type(psb_zspmat_type),intent(in) :: a
type(psb_zspmat_type),intent(inout) :: l,u type(psb_zspmat_type),intent(inout) :: l,u
@ -355,8 +355,8 @@ module psb_prec_mod
interface psb_bjac_bld interface psb_bjac_bld
subroutine psb_sbjac_bld(a,desc_a,p,upd,info) subroutine psb_sbjac_bld(a,desc_a,p,upd,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_sprec_type
integer, intent(out) :: info integer, intent(out) :: info
type(psb_sspmat_type), intent(in), target :: a type(psb_sspmat_type), intent(in), target :: a
type(psb_sprec_type), intent(inout) :: p type(psb_sprec_type), intent(inout) :: p
@ -364,8 +364,8 @@ module psb_prec_mod
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_sbjac_bld end subroutine psb_sbjac_bld
subroutine psb_dbjac_bld(a,desc_a,p,upd,info) subroutine psb_dbjac_bld(a,desc_a,p,upd,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_dprec_type
integer, intent(out) :: info integer, intent(out) :: info
type(psb_dspmat_type), intent(in), target :: a type(psb_dspmat_type), intent(in), target :: a
type(psb_dprec_type), intent(inout) :: p type(psb_dprec_type), intent(inout) :: p
@ -373,8 +373,8 @@ module psb_prec_mod
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_dbjac_bld end subroutine psb_dbjac_bld
subroutine psb_cbjac_bld(a,desc_a,p,upd,info) subroutine psb_cbjac_bld(a,desc_a,p,upd,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_cprec_type
integer, intent(out) :: info integer, intent(out) :: info
type(psb_cspmat_type), intent(in), target :: a type(psb_cspmat_type), intent(in), target :: a
type(psb_cprec_type), intent(inout) :: p type(psb_cprec_type), intent(inout) :: p
@ -382,11 +382,11 @@ module psb_prec_mod
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_cbjac_bld end subroutine psb_cbjac_bld
subroutine psb_zbjac_bld(a,desc_a,p,upd,info) subroutine psb_zbjac_bld(a,desc_a,p,upd,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_zprec_type
integer, intent(out) :: info integer, intent(out) :: info
type(psb_zspmat_type), intent(in), target :: a type(psb_zspmat_type), intent(in), target :: a
type(psb_zprec_type), intent(inout) :: p type(psb_zprec_type), intent(inout) :: p
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_zbjac_bld end subroutine psb_zbjac_bld
@ -394,8 +394,8 @@ module psb_prec_mod
interface psb_diagsc_bld interface psb_diagsc_bld
subroutine psb_sdiagsc_bld(a,desc_a,p,upd,info) subroutine psb_sdiagsc_bld(a,desc_a,p,upd,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_sprec_type
integer, intent(out) :: info integer, intent(out) :: info
type(psb_sspmat_type), intent(in), target :: a type(psb_sspmat_type), intent(in), target :: a
type(psb_sprec_type), intent(inout) :: p type(psb_sprec_type), intent(inout) :: p
@ -403,8 +403,8 @@ module psb_prec_mod
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_sdiagsc_bld end subroutine psb_sdiagsc_bld
subroutine psb_ddiagsc_bld(a,desc_a,p,upd,info) subroutine psb_ddiagsc_bld(a,desc_a,p,upd,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_dprec_type
integer, intent(out) :: info integer, intent(out) :: info
type(psb_dspmat_type), intent(in), target :: a type(psb_dspmat_type), intent(in), target :: a
type(psb_dprec_type), intent(inout) :: p type(psb_dprec_type), intent(inout) :: p
@ -412,8 +412,8 @@ module psb_prec_mod
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_ddiagsc_bld end subroutine psb_ddiagsc_bld
subroutine psb_cdiagsc_bld(a,desc_a,p,upd,info) subroutine psb_cdiagsc_bld(a,desc_a,p,upd,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_cprec_type
integer, intent(out) :: info integer, intent(out) :: info
type(psb_cspmat_type), intent(in), target :: a type(psb_cspmat_type), intent(in), target :: a
type(psb_cprec_type), intent(inout) :: p type(psb_cprec_type), intent(inout) :: p
@ -421,8 +421,8 @@ module psb_prec_mod
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_cdiagsc_bld end subroutine psb_cdiagsc_bld
subroutine psb_zdiagsc_bld(a,desc_a,p,upd,info) subroutine psb_zdiagsc_bld(a,desc_a,p,upd,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_zprec_type
integer, intent(out) :: info integer, intent(out) :: info
type(psb_zspmat_type), intent(in), target :: a type(psb_zspmat_type), intent(in), target :: a
type(psb_zprec_type), intent(inout) :: p type(psb_zprec_type), intent(inout) :: p
@ -433,8 +433,8 @@ module psb_prec_mod
interface psb_gprec_aply interface psb_gprec_aply
subroutine psb_sgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine psb_sgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_sspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_sprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_sprec_type), intent(in) :: prec type(psb_sprec_type), intent(in) :: prec
real(psb_spk_),intent(in) :: x(:) real(psb_spk_),intent(in) :: x(:)
@ -445,8 +445,8 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_sgprec_aply end subroutine psb_sgprec_aply
subroutine psb_dgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine psb_dgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_dprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_dprec_type), intent(in) :: prec type(psb_dprec_type), intent(in) :: prec
real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(in) :: x(:)
@ -457,8 +457,8 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dgprec_aply end subroutine psb_dgprec_aply
subroutine psb_cgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine psb_cgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_cspmat_type, psb_spk_
use psb_prec_type use psb_prec_type, only : psb_cprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_cprec_type), intent(in) :: prec type(psb_cprec_type), intent(in) :: prec
complex(psb_spk_),intent(in) :: x(:) complex(psb_spk_),intent(in) :: x(:)
@ -469,8 +469,8 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_cgprec_aply end subroutine psb_cgprec_aply
subroutine psb_zgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine psb_zgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod, only : psb_desc_type, psb_zspmat_type, psb_dpk_
use psb_prec_type use psb_prec_type, only : psb_zprec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_zprec_type), intent(in) :: prec type(psb_zprec_type), intent(in) :: prec
complex(psb_dpk_),intent(in) :: x(:) complex(psb_dpk_),intent(in) :: x(:)

@ -37,10 +37,10 @@
module psb_prec_type module psb_prec_type
! Reduces size of .mod file. ! Reduces size of .mod file.
use psb_const_mod
use psb_base_mod, only : psb_sspmat_type, psb_cspmat_type,& use psb_base_mod, only : psb_sspmat_type, psb_cspmat_type,&
& psb_dspmat_type, psb_zspmat_type,& & psb_dspmat_type, psb_zspmat_type, psb_dpk_, psb_spk_,&
& psb_desc_type, psb_sizeof & psb_desc_type, psb_sizeof, psb_sp_free, psb_cdfree,&
& psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus
integer, parameter :: psb_min_prec_=0, psb_noprec_=0, psb_diag_=1, & integer, parameter :: psb_min_prec_=0, psb_noprec_=0, psb_diag_=1, &
& psb_bjac_=2, psb_max_prec_=2 & psb_bjac_=2, psb_max_prec_=2
@ -139,31 +139,26 @@ module psb_prec_type
contains contains
subroutine psb_sout_prec_descr(p) subroutine psb_sout_prec_descr(p)
use psb_base_mod
type(psb_sprec_type), intent(in) :: p type(psb_sprec_type), intent(in) :: p
call psb_sfile_prec_descr(6,p) call psb_sfile_prec_descr(6,p)
end subroutine psb_sout_prec_descr end subroutine psb_sout_prec_descr
subroutine psb_out_prec_descr(p) subroutine psb_out_prec_descr(p)
use psb_base_mod
type(psb_dprec_type), intent(in) :: p type(psb_dprec_type), intent(in) :: p
call psb_file_prec_descr(6,p) call psb_file_prec_descr(6,p)
end subroutine psb_out_prec_descr end subroutine psb_out_prec_descr
subroutine psb_cout_prec_descr(p) subroutine psb_cout_prec_descr(p)
use psb_base_mod
type(psb_cprec_type), intent(in) :: p type(psb_cprec_type), intent(in) :: p
call psb_cfile_prec_descr(6,p) call psb_cfile_prec_descr(6,p)
end subroutine psb_cout_prec_descr end subroutine psb_cout_prec_descr
subroutine psb_zout_prec_descr(p) subroutine psb_zout_prec_descr(p)
use psb_base_mod
type(psb_zprec_type), intent(in) :: p type(psb_zprec_type), intent(in) :: p
call psb_zfile_prec_descr(6,p) call psb_zfile_prec_descr(6,p)
end subroutine psb_zout_prec_descr end subroutine psb_zout_prec_descr
subroutine psb_file_prec_descr(iout,p) subroutine psb_file_prec_descr(iout,p)
use psb_base_mod
integer, intent(in) :: iout integer, intent(in) :: iout
type(psb_dprec_type), intent(in) :: p type(psb_dprec_type), intent(in) :: p
@ -181,7 +176,6 @@ contains
end subroutine psb_file_prec_descr end subroutine psb_file_prec_descr
subroutine psb_sfile_prec_descr(iout,p) subroutine psb_sfile_prec_descr(iout,p)
use psb_base_mod
integer, intent(in) :: iout integer, intent(in) :: iout
type(psb_sprec_type), intent(in) :: p type(psb_sprec_type), intent(in) :: p
@ -199,7 +193,6 @@ contains
end subroutine psb_sfile_prec_descr end subroutine psb_sfile_prec_descr
subroutine psb_cfile_prec_descr(iout,p) subroutine psb_cfile_prec_descr(iout,p)
use psb_base_mod
integer, intent(in) :: iout integer, intent(in) :: iout
type(psb_cprec_type), intent(in) :: p type(psb_cprec_type), intent(in) :: p
@ -216,7 +209,6 @@ contains
end subroutine psb_cfile_prec_descr end subroutine psb_cfile_prec_descr
subroutine psb_zfile_prec_descr(iout,p) subroutine psb_zfile_prec_descr(iout,p)
use psb_base_mod
integer, intent(in) :: iout integer, intent(in) :: iout
type(psb_zprec_type), intent(in) :: p type(psb_zprec_type), intent(in) :: p
@ -234,7 +226,6 @@ contains
function is_legal_prec(ip) function is_legal_prec(ip)
use psb_base_mod
integer, intent(in) :: ip integer, intent(in) :: ip
logical :: is_legal_prec logical :: is_legal_prec
@ -242,7 +233,6 @@ contains
return return
end function is_legal_prec end function is_legal_prec
function is_legal_ml_fact(ip) function is_legal_ml_fact(ip)
use psb_base_mod
integer, intent(in) :: ip integer, intent(in) :: ip
logical :: is_legal_ml_fact logical :: is_legal_ml_fact
@ -250,7 +240,6 @@ contains
return return
end function is_legal_ml_fact end function is_legal_ml_fact
function is_legal_ml_eps(ip) function is_legal_ml_eps(ip)
use psb_base_mod
real(psb_dpk_), intent(in) :: ip real(psb_dpk_), intent(in) :: ip
logical :: is_legal_ml_eps logical :: is_legal_ml_eps
@ -260,7 +249,6 @@ contains
subroutine psb_icheck_def(ip,name,id,is_legal) subroutine psb_icheck_def(ip,name,id,is_legal)
use psb_base_mod
integer, intent(inout) :: ip integer, intent(inout) :: ip
integer, intent(in) :: id integer, intent(in) :: id
character(len=*), intent(in) :: name character(len=*), intent(in) :: name
@ -278,7 +266,6 @@ contains
end subroutine psb_icheck_def end subroutine psb_icheck_def
subroutine psb_scheck_def(ip,name,id,is_legal) subroutine psb_scheck_def(ip,name,id,is_legal)
use psb_base_mod
real(psb_spk_), intent(inout) :: ip real(psb_spk_), intent(inout) :: ip
real(psb_spk_), intent(in) :: id real(psb_spk_), intent(in) :: id
character(len=*), intent(in) :: name character(len=*), intent(in) :: name
@ -297,7 +284,6 @@ contains
end subroutine psb_scheck_def end subroutine psb_scheck_def
subroutine psb_dcheck_def(ip,name,id,is_legal) subroutine psb_dcheck_def(ip,name,id,is_legal)
use psb_base_mod
real(psb_dpk_), intent(inout) :: ip real(psb_dpk_), intent(inout) :: ip
real(psb_dpk_), intent(in) :: id real(psb_dpk_), intent(in) :: id
character(len=*), intent(in) :: name character(len=*), intent(in) :: name
@ -316,7 +302,6 @@ contains
end subroutine psb_dcheck_def end subroutine psb_dcheck_def
subroutine psb_s_precfree(p,info) subroutine psb_s_precfree(p,info)
use psb_base_mod
type(psb_sprec_type), intent(inout) :: p type(psb_sprec_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
integer :: me, err_act,i integer :: me, err_act,i
@ -381,7 +366,6 @@ contains
end subroutine psb_s_precfree end subroutine psb_s_precfree
subroutine psb_nullify_sprec(p) subroutine psb_nullify_sprec(p)
use psb_base_mod
type(psb_sprec_type), intent(inout) :: p type(psb_sprec_type), intent(inout) :: p
!!$ nullify(p%av,p%d,p%iprcparm,p%rprcparm,p%perm,p%invperm,p%mlia,& !!$ nullify(p%av,p%d,p%iprcparm,p%rprcparm,p%perm,p%invperm,p%mlia,&
@ -390,7 +374,6 @@ contains
end subroutine psb_nullify_sprec end subroutine psb_nullify_sprec
subroutine psb_d_precfree(p,info) subroutine psb_d_precfree(p,info)
use psb_base_mod
type(psb_dprec_type), intent(inout) :: p type(psb_dprec_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
integer :: me, err_act,i integer :: me, err_act,i
@ -455,7 +438,6 @@ contains
end subroutine psb_d_precfree end subroutine psb_d_precfree
subroutine psb_nullify_dprec(p) subroutine psb_nullify_dprec(p)
use psb_base_mod
type(psb_dprec_type), intent(inout) :: p type(psb_dprec_type), intent(inout) :: p
!!$ nullify(p%av,p%d,p%iprcparm,p%rprcparm,p%perm,p%invperm,p%mlia,& !!$ nullify(p%av,p%d,p%iprcparm,p%rprcparm,p%perm,p%invperm,p%mlia,&
@ -464,7 +446,6 @@ contains
end subroutine psb_nullify_dprec end subroutine psb_nullify_dprec
subroutine psb_c_precfree(p,info) subroutine psb_c_precfree(p,info)
use psb_base_mod
type(psb_cprec_type), intent(inout) :: p type(psb_cprec_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
integer :: err_act,i integer :: err_act,i
@ -522,14 +503,12 @@ contains
end subroutine psb_c_precfree end subroutine psb_c_precfree
subroutine psb_nullify_cprec(p) subroutine psb_nullify_cprec(p)
use psb_base_mod
type(psb_cprec_type), intent(inout) :: p type(psb_cprec_type), intent(inout) :: p
end subroutine psb_nullify_cprec end subroutine psb_nullify_cprec
subroutine psb_z_precfree(p,info) subroutine psb_z_precfree(p,info)
use psb_base_mod
type(psb_zprec_type), intent(inout) :: p type(psb_zprec_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
integer :: err_act,i integer :: err_act,i
@ -587,7 +566,6 @@ contains
end subroutine psb_z_precfree end subroutine psb_z_precfree
subroutine psb_nullify_zprec(p) subroutine psb_nullify_zprec(p)
use psb_base_mod
type(psb_zprec_type), intent(inout) :: p type(psb_zprec_type), intent(inout) :: p
@ -595,7 +573,6 @@ contains
function pr_to_str(iprec) function pr_to_str(iprec)
use psb_base_mod
integer, intent(in) :: iprec integer, intent(in) :: iprec
character(len=10) :: pr_to_str character(len=10) :: pr_to_str
@ -615,7 +592,6 @@ contains
function psb_dprec_sizeof(prec) function psb_dprec_sizeof(prec)
use psb_base_mod
type(psb_dprec_type), intent(in) :: prec type(psb_dprec_type), intent(in) :: prec
integer :: psb_dprec_sizeof integer :: psb_dprec_sizeof
integer :: val,i integer :: val,i
@ -638,7 +614,6 @@ contains
end function psb_dprec_sizeof end function psb_dprec_sizeof
function psb_sprec_sizeof(prec) function psb_sprec_sizeof(prec)
use psb_base_mod
type(psb_sprec_type), intent(in) :: prec type(psb_sprec_type), intent(in) :: prec
integer :: psb_sprec_sizeof integer :: psb_sprec_sizeof
integer :: val,i integer :: val,i
@ -661,7 +636,6 @@ contains
end function psb_sprec_sizeof end function psb_sprec_sizeof
function psb_zprec_sizeof(prec) function psb_zprec_sizeof(prec)
use psb_base_mod
type(psb_zprec_type), intent(in) :: prec type(psb_zprec_type), intent(in) :: prec
integer :: psb_zprec_sizeof integer :: psb_zprec_sizeof
integer :: val,i integer :: val,i
@ -684,7 +658,6 @@ contains
end function psb_zprec_sizeof end function psb_zprec_sizeof
function psb_cprec_sizeof(prec) function psb_cprec_sizeof(prec)
use psb_base_mod
type(psb_cprec_type), intent(in) :: prec type(psb_cprec_type), intent(in) :: prec
integer :: psb_cprec_sizeof integer :: psb_cprec_sizeof
integer :: val,i integer :: val,i

Loading…
Cancel
Save