mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-18 11:52:11 +00:00
Fix implicit none.
This commit is contained in:
@@ -278,11 +278,6 @@ module psb_desc_mod
|
||||
module procedure psb_cdtransfer
|
||||
end interface psb_move_alloc
|
||||
|
||||
interface psb_free
|
||||
module procedure psb_cdfree
|
||||
end interface psb_free
|
||||
|
||||
|
||||
private :: nullify_desc, cd_get_fmt,&
|
||||
& cd_l2gs1, cd_l2gs2, cd_l2gv1, cd_l2gv2, cd_g2ls1,&
|
||||
& cd_g2ls2, cd_g2lv1, cd_g2lv2, cd_g2ls1_ins,&
|
||||
|
||||
@@ -115,10 +115,7 @@ module psb_c_base_mat_mod
|
||||
procedure, pass(a) :: aclsum => psb_c_base_aclsum
|
||||
end type psb_c_base_sparse_mat
|
||||
|
||||
private :: c_base_mat_sync, c_base_mat_is_host, c_base_mat_is_dev, &
|
||||
& c_base_mat_is_sync, c_base_mat_set_host, c_base_mat_set_dev,&
|
||||
& c_base_mat_set_sync
|
||||
|
||||
|
||||
!> \namespace psb_base_mod \class psb_c_coo_sparse_mat
|
||||
!! \extends psb_c_base_mat_mod::psb_c_base_sparse_mat
|
||||
!!
|
||||
|
||||
@@ -222,6 +222,7 @@ contains
|
||||
!!
|
||||
subroutine c_base_bld_x(x,this)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
complex(psb_spk_), intent(in) :: this(:)
|
||||
class(psb_c_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -246,6 +247,7 @@ contains
|
||||
!!
|
||||
subroutine c_base_bld_n(x,n)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: n
|
||||
class(psb_c_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -718,6 +720,7 @@ contains
|
||||
!! \param val The value to set
|
||||
!!
|
||||
subroutine c_base_set_scal(x,val,first,last)
|
||||
implicit none
|
||||
class(psb_c_base_vect_type), intent(inout) :: x
|
||||
complex(psb_spk_), intent(in) :: val
|
||||
integer(psb_ipk_), optional :: first, last
|
||||
@@ -743,6 +746,7 @@ contains
|
||||
!! \param val(:) The vector to be copied in
|
||||
!!
|
||||
subroutine c_base_set_vect(x,val,first,last)
|
||||
implicit none
|
||||
class(psb_c_base_vect_type), intent(inout) :: x
|
||||
complex(psb_spk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), optional :: first, last
|
||||
@@ -775,6 +779,7 @@ contains
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine c_base_absval1(x)
|
||||
implicit none
|
||||
class(psb_c_base_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -786,7 +791,8 @@ contains
|
||||
end subroutine c_base_absval1
|
||||
|
||||
subroutine c_base_absval2(x,y)
|
||||
class(psb_c_base_vect_type), intent(inout) :: x
|
||||
implicit none
|
||||
class(psb_c_base_vect_type), intent(inout) :: x
|
||||
class(psb_c_base_vect_type), intent(inout) :: y
|
||||
integer(psb_ipk_) :: info
|
||||
if (.not.x%is_host()) call x%sync()
|
||||
@@ -1210,6 +1216,7 @@ contains
|
||||
!! \param beta
|
||||
subroutine c_base_gthab(n,idx,alpha,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_spk_) :: alpha, beta, y(:)
|
||||
class(psb_c_base_vect_type) :: x
|
||||
@@ -1229,6 +1236,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine c_base_gthzv_x(i,n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex(psb_spk_) :: y(:)
|
||||
@@ -1244,6 +1252,7 @@ contains
|
||||
!
|
||||
subroutine c_base_gthzbuf(i,n,idx,x)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
class(psb_c_base_vect_type) :: x
|
||||
@@ -1306,6 +1315,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine c_base_gthzv(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_spk_) :: y(:)
|
||||
class(psb_c_base_vect_type) :: x
|
||||
@@ -1330,6 +1340,7 @@ contains
|
||||
!! \param x(:)
|
||||
subroutine c_base_sctb(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_spk_) :: beta, x(:)
|
||||
class(psb_c_base_vect_type) :: y
|
||||
@@ -1342,6 +1353,7 @@ contains
|
||||
|
||||
subroutine c_base_sctb_x(i,n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex(psb_spk_) :: beta, x(:)
|
||||
@@ -1355,6 +1367,7 @@ contains
|
||||
|
||||
subroutine c_base_sctb_buf(i,n,idx,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex(psb_spk_) :: beta
|
||||
@@ -1949,6 +1962,7 @@ contains
|
||||
!!
|
||||
!
|
||||
function c_base_mlv_get_vect(x) result(res)
|
||||
implicit none
|
||||
class(psb_c_base_multivect_type), intent(inout) :: x
|
||||
complex(psb_spk_), allocatable :: res(:,:)
|
||||
integer(psb_ipk_) :: info,m,n
|
||||
@@ -1974,6 +1988,7 @@ contains
|
||||
!! \param val The value to set
|
||||
!!
|
||||
subroutine c_base_mlv_set_scal(x,val)
|
||||
implicit none
|
||||
class(psb_c_base_multivect_type), intent(inout) :: x
|
||||
complex(psb_spk_), intent(in) :: val
|
||||
|
||||
@@ -1989,9 +2004,10 @@ contains
|
||||
!! \param val(:) The vector to be copied in
|
||||
!!
|
||||
subroutine c_base_mlv_set_vect(x,val)
|
||||
implicit none
|
||||
class(psb_c_base_multivect_type), intent(inout) :: x
|
||||
complex(psb_spk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_) :: nr
|
||||
integer(psb_ipk_) :: nr, nc
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -2462,6 +2478,7 @@ contains
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine c_base_mlv_absval1(x)
|
||||
implicit none
|
||||
class(psb_c_base_multivect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -2473,6 +2490,7 @@ contains
|
||||
end subroutine c_base_mlv_absval1
|
||||
|
||||
subroutine c_base_mlv_absval2(x,y)
|
||||
implicit none
|
||||
class(psb_c_base_multivect_type), intent(inout) :: x
|
||||
class(psb_c_base_multivect_type), intent(inout) :: y
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -2487,6 +2505,7 @@ contains
|
||||
|
||||
|
||||
function c_base_mlv_use_buffer() result(res)
|
||||
implicit none
|
||||
logical :: res
|
||||
|
||||
res = .true.
|
||||
@@ -2563,6 +2582,7 @@ contains
|
||||
!! \param beta
|
||||
subroutine c_base_mlv_gthab(n,idx,alpha,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_spk_) :: alpha, beta, y(:)
|
||||
class(psb_c_base_multivect_type) :: x
|
||||
@@ -2587,6 +2607,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine c_base_mlv_gthzv_x(i,n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex(psb_spk_) :: y(:)
|
||||
@@ -2608,6 +2629,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine c_base_mlv_gthzv(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_spk_) :: y(:)
|
||||
class(psb_c_base_multivect_type) :: x
|
||||
@@ -2633,6 +2655,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine c_base_mlv_gthzm(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_spk_) :: y(:,:)
|
||||
class(psb_c_base_multivect_type) :: x
|
||||
@@ -2653,6 +2676,7 @@ contains
|
||||
!
|
||||
subroutine c_base_mlv_gthzbuf(i,ixb,n,idx,x)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, ixb, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
class(psb_c_base_multivect_type) :: x
|
||||
@@ -2684,6 +2708,7 @@ contains
|
||||
!! \param x(:)
|
||||
subroutine c_base_mlv_sctb(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_spk_) :: beta, x(:)
|
||||
class(psb_c_base_multivect_type) :: y
|
||||
@@ -2698,6 +2723,7 @@ contains
|
||||
|
||||
subroutine c_base_mlv_sctbr2(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_spk_) :: beta, x(:,:)
|
||||
class(psb_c_base_multivect_type) :: y
|
||||
@@ -2712,6 +2738,7 @@ contains
|
||||
|
||||
subroutine c_base_mlv_sctb_x(i,n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex( psb_spk_) :: beta, x(:)
|
||||
@@ -2723,6 +2750,7 @@ contains
|
||||
|
||||
subroutine c_base_mlv_sctb_buf(i,iyb,n,idx,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, iyb, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex(psb_spk_) :: beta
|
||||
|
||||
@@ -855,9 +855,9 @@ module psb_c_multivect_mod
|
||||
module procedure psb_c_set_multivect_default
|
||||
end interface psb_set_multivect_default
|
||||
|
||||
interface psb_get_vect_default
|
||||
interface psb_get_multivect_default
|
||||
module procedure psb_c_get_multivect_default
|
||||
end interface psb_get_vect_default
|
||||
end interface psb_get_multivect_default
|
||||
|
||||
|
||||
contains
|
||||
|
||||
@@ -115,10 +115,7 @@ module psb_d_base_mat_mod
|
||||
procedure, pass(a) :: aclsum => psb_d_base_aclsum
|
||||
end type psb_d_base_sparse_mat
|
||||
|
||||
private :: d_base_mat_sync, d_base_mat_is_host, d_base_mat_is_dev, &
|
||||
& d_base_mat_is_sync, d_base_mat_set_host, d_base_mat_set_dev,&
|
||||
& d_base_mat_set_sync
|
||||
|
||||
|
||||
!> \namespace psb_base_mod \class psb_d_coo_sparse_mat
|
||||
!! \extends psb_d_base_mat_mod::psb_d_base_sparse_mat
|
||||
!!
|
||||
|
||||
@@ -222,6 +222,7 @@ contains
|
||||
!!
|
||||
subroutine d_base_bld_x(x,this)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
real(psb_dpk_), intent(in) :: this(:)
|
||||
class(psb_d_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -246,6 +247,7 @@ contains
|
||||
!!
|
||||
subroutine d_base_bld_n(x,n)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: n
|
||||
class(psb_d_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -718,6 +720,7 @@ contains
|
||||
!! \param val The value to set
|
||||
!!
|
||||
subroutine d_base_set_scal(x,val,first,last)
|
||||
implicit none
|
||||
class(psb_d_base_vect_type), intent(inout) :: x
|
||||
real(psb_dpk_), intent(in) :: val
|
||||
integer(psb_ipk_), optional :: first, last
|
||||
@@ -743,6 +746,7 @@ contains
|
||||
!! \param val(:) The vector to be copied in
|
||||
!!
|
||||
subroutine d_base_set_vect(x,val,first,last)
|
||||
implicit none
|
||||
class(psb_d_base_vect_type), intent(inout) :: x
|
||||
real(psb_dpk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), optional :: first, last
|
||||
@@ -775,6 +779,7 @@ contains
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine d_base_absval1(x)
|
||||
implicit none
|
||||
class(psb_d_base_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -786,7 +791,8 @@ contains
|
||||
end subroutine d_base_absval1
|
||||
|
||||
subroutine d_base_absval2(x,y)
|
||||
class(psb_d_base_vect_type), intent(inout) :: x
|
||||
implicit none
|
||||
class(psb_d_base_vect_type), intent(inout) :: x
|
||||
class(psb_d_base_vect_type), intent(inout) :: y
|
||||
integer(psb_ipk_) :: info
|
||||
if (.not.x%is_host()) call x%sync()
|
||||
@@ -1210,6 +1216,7 @@ contains
|
||||
!! \param beta
|
||||
subroutine d_base_gthab(n,idx,alpha,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_dpk_) :: alpha, beta, y(:)
|
||||
class(psb_d_base_vect_type) :: x
|
||||
@@ -1229,6 +1236,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine d_base_gthzv_x(i,n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real(psb_dpk_) :: y(:)
|
||||
@@ -1244,6 +1252,7 @@ contains
|
||||
!
|
||||
subroutine d_base_gthzbuf(i,n,idx,x)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
class(psb_d_base_vect_type) :: x
|
||||
@@ -1306,6 +1315,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine d_base_gthzv(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_dpk_) :: y(:)
|
||||
class(psb_d_base_vect_type) :: x
|
||||
@@ -1330,6 +1340,7 @@ contains
|
||||
!! \param x(:)
|
||||
subroutine d_base_sctb(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_dpk_) :: beta, x(:)
|
||||
class(psb_d_base_vect_type) :: y
|
||||
@@ -1342,6 +1353,7 @@ contains
|
||||
|
||||
subroutine d_base_sctb_x(i,n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real(psb_dpk_) :: beta, x(:)
|
||||
@@ -1355,6 +1367,7 @@ contains
|
||||
|
||||
subroutine d_base_sctb_buf(i,n,idx,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real(psb_dpk_) :: beta
|
||||
@@ -1949,6 +1962,7 @@ contains
|
||||
!!
|
||||
!
|
||||
function d_base_mlv_get_vect(x) result(res)
|
||||
implicit none
|
||||
class(psb_d_base_multivect_type), intent(inout) :: x
|
||||
real(psb_dpk_), allocatable :: res(:,:)
|
||||
integer(psb_ipk_) :: info,m,n
|
||||
@@ -1974,6 +1988,7 @@ contains
|
||||
!! \param val The value to set
|
||||
!!
|
||||
subroutine d_base_mlv_set_scal(x,val)
|
||||
implicit none
|
||||
class(psb_d_base_multivect_type), intent(inout) :: x
|
||||
real(psb_dpk_), intent(in) :: val
|
||||
|
||||
@@ -1989,9 +2004,10 @@ contains
|
||||
!! \param val(:) The vector to be copied in
|
||||
!!
|
||||
subroutine d_base_mlv_set_vect(x,val)
|
||||
implicit none
|
||||
class(psb_d_base_multivect_type), intent(inout) :: x
|
||||
real(psb_dpk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_) :: nr
|
||||
integer(psb_ipk_) :: nr, nc
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -2462,6 +2478,7 @@ contains
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine d_base_mlv_absval1(x)
|
||||
implicit none
|
||||
class(psb_d_base_multivect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -2473,6 +2490,7 @@ contains
|
||||
end subroutine d_base_mlv_absval1
|
||||
|
||||
subroutine d_base_mlv_absval2(x,y)
|
||||
implicit none
|
||||
class(psb_d_base_multivect_type), intent(inout) :: x
|
||||
class(psb_d_base_multivect_type), intent(inout) :: y
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -2487,6 +2505,7 @@ contains
|
||||
|
||||
|
||||
function d_base_mlv_use_buffer() result(res)
|
||||
implicit none
|
||||
logical :: res
|
||||
|
||||
res = .true.
|
||||
@@ -2563,6 +2582,7 @@ contains
|
||||
!! \param beta
|
||||
subroutine d_base_mlv_gthab(n,idx,alpha,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_dpk_) :: alpha, beta, y(:)
|
||||
class(psb_d_base_multivect_type) :: x
|
||||
@@ -2587,6 +2607,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine d_base_mlv_gthzv_x(i,n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real(psb_dpk_) :: y(:)
|
||||
@@ -2608,6 +2629,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine d_base_mlv_gthzv(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_dpk_) :: y(:)
|
||||
class(psb_d_base_multivect_type) :: x
|
||||
@@ -2633,6 +2655,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine d_base_mlv_gthzm(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_dpk_) :: y(:,:)
|
||||
class(psb_d_base_multivect_type) :: x
|
||||
@@ -2653,6 +2676,7 @@ contains
|
||||
!
|
||||
subroutine d_base_mlv_gthzbuf(i,ixb,n,idx,x)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, ixb, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
class(psb_d_base_multivect_type) :: x
|
||||
@@ -2684,6 +2708,7 @@ contains
|
||||
!! \param x(:)
|
||||
subroutine d_base_mlv_sctb(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_dpk_) :: beta, x(:)
|
||||
class(psb_d_base_multivect_type) :: y
|
||||
@@ -2698,6 +2723,7 @@ contains
|
||||
|
||||
subroutine d_base_mlv_sctbr2(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_dpk_) :: beta, x(:,:)
|
||||
class(psb_d_base_multivect_type) :: y
|
||||
@@ -2712,6 +2738,7 @@ contains
|
||||
|
||||
subroutine d_base_mlv_sctb_x(i,n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real( psb_dpk_) :: beta, x(:)
|
||||
@@ -2723,6 +2750,7 @@ contains
|
||||
|
||||
subroutine d_base_mlv_sctb_buf(i,iyb,n,idx,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, iyb, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real(psb_dpk_) :: beta
|
||||
|
||||
@@ -855,9 +855,9 @@ module psb_d_multivect_mod
|
||||
module procedure psb_d_set_multivect_default
|
||||
end interface psb_set_multivect_default
|
||||
|
||||
interface psb_get_vect_default
|
||||
interface psb_get_multivect_default
|
||||
module procedure psb_d_get_multivect_default
|
||||
end interface psb_get_vect_default
|
||||
end interface psb_get_multivect_default
|
||||
|
||||
|
||||
contains
|
||||
|
||||
@@ -191,6 +191,7 @@ contains
|
||||
!!
|
||||
subroutine i_base_bld_x(x,this)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: this(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -215,6 +216,7 @@ contains
|
||||
!!
|
||||
subroutine i_base_bld_n(x,n)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: n
|
||||
class(psb_i_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -687,6 +689,7 @@ contains
|
||||
!! \param val The value to set
|
||||
!!
|
||||
subroutine i_base_set_scal(x,val,first,last)
|
||||
implicit none
|
||||
class(psb_i_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in) :: val
|
||||
integer(psb_ipk_), optional :: first, last
|
||||
@@ -712,6 +715,7 @@ contains
|
||||
!! \param val(:) The vector to be copied in
|
||||
!!
|
||||
subroutine i_base_set_vect(x,val,first,last)
|
||||
implicit none
|
||||
class(psb_i_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), optional :: first, last
|
||||
@@ -751,6 +755,7 @@ contains
|
||||
!! \param beta
|
||||
subroutine i_base_gthab(n,idx,alpha,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
integer(psb_ipk_) :: alpha, beta, y(:)
|
||||
class(psb_i_base_vect_type) :: x
|
||||
@@ -770,6 +775,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine i_base_gthzv_x(i,n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
integer(psb_ipk_) :: y(:)
|
||||
@@ -785,6 +791,7 @@ contains
|
||||
!
|
||||
subroutine i_base_gthzbuf(i,n,idx,x)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
class(psb_i_base_vect_type) :: x
|
||||
@@ -847,6 +854,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine i_base_gthzv(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
integer(psb_ipk_) :: y(:)
|
||||
class(psb_i_base_vect_type) :: x
|
||||
@@ -871,6 +879,7 @@ contains
|
||||
!! \param x(:)
|
||||
subroutine i_base_sctb(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
integer(psb_ipk_) :: beta, x(:)
|
||||
class(psb_i_base_vect_type) :: y
|
||||
@@ -883,6 +892,7 @@ contains
|
||||
|
||||
subroutine i_base_sctb_x(i,n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
integer(psb_ipk_) :: beta, x(:)
|
||||
@@ -896,6 +906,7 @@ contains
|
||||
|
||||
subroutine i_base_sctb_buf(i,n,idx,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
integer(psb_ipk_) :: beta
|
||||
@@ -1457,6 +1468,7 @@ contains
|
||||
!!
|
||||
!
|
||||
function i_base_mlv_get_vect(x) result(res)
|
||||
implicit none
|
||||
class(psb_i_base_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), allocatable :: res(:,:)
|
||||
integer(psb_ipk_) :: info,m,n
|
||||
@@ -1482,6 +1494,7 @@ contains
|
||||
!! \param val The value to set
|
||||
!!
|
||||
subroutine i_base_mlv_set_scal(x,val)
|
||||
implicit none
|
||||
class(psb_i_base_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in) :: val
|
||||
|
||||
@@ -1497,9 +1510,10 @@ contains
|
||||
!! \param val(:) The vector to be copied in
|
||||
!!
|
||||
subroutine i_base_mlv_set_vect(x,val)
|
||||
implicit none
|
||||
class(psb_i_base_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_) :: nr
|
||||
integer(psb_ipk_) :: nr, nc
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -1515,6 +1529,7 @@ contains
|
||||
|
||||
|
||||
function i_base_mlv_use_buffer() result(res)
|
||||
implicit none
|
||||
logical :: res
|
||||
|
||||
res = .true.
|
||||
@@ -1591,6 +1606,7 @@ contains
|
||||
!! \param beta
|
||||
subroutine i_base_mlv_gthab(n,idx,alpha,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
integer(psb_ipk_) :: alpha, beta, y(:)
|
||||
class(psb_i_base_multivect_type) :: x
|
||||
@@ -1615,6 +1631,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine i_base_mlv_gthzv_x(i,n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
integer(psb_ipk_) :: y(:)
|
||||
@@ -1636,6 +1653,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine i_base_mlv_gthzv(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
integer(psb_ipk_) :: y(:)
|
||||
class(psb_i_base_multivect_type) :: x
|
||||
@@ -1661,6 +1679,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine i_base_mlv_gthzm(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
integer(psb_ipk_) :: y(:,:)
|
||||
class(psb_i_base_multivect_type) :: x
|
||||
@@ -1681,6 +1700,7 @@ contains
|
||||
!
|
||||
subroutine i_base_mlv_gthzbuf(i,ixb,n,idx,x)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, ixb, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
class(psb_i_base_multivect_type) :: x
|
||||
@@ -1712,6 +1732,7 @@ contains
|
||||
!! \param x(:)
|
||||
subroutine i_base_mlv_sctb(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
integer(psb_ipk_) :: beta, x(:)
|
||||
class(psb_i_base_multivect_type) :: y
|
||||
@@ -1726,6 +1747,7 @@ contains
|
||||
|
||||
subroutine i_base_mlv_sctbr2(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
integer(psb_ipk_) :: beta, x(:,:)
|
||||
class(psb_i_base_multivect_type) :: y
|
||||
@@ -1740,6 +1762,7 @@ contains
|
||||
|
||||
subroutine i_base_mlv_sctb_x(i,n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
integer( psb_ipk_) :: beta, x(:)
|
||||
@@ -1751,6 +1774,7 @@ contains
|
||||
|
||||
subroutine i_base_mlv_sctb_buf(i,iyb,n,idx,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, iyb, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
integer(psb_ipk_) :: beta
|
||||
|
||||
@@ -584,9 +584,9 @@ module psb_i_multivect_mod
|
||||
module procedure psb_i_set_multivect_default
|
||||
end interface psb_set_multivect_default
|
||||
|
||||
interface psb_get_vect_default
|
||||
interface psb_get_multivect_default
|
||||
module procedure psb_i_get_multivect_default
|
||||
end interface psb_get_vect_default
|
||||
end interface psb_get_multivect_default
|
||||
|
||||
|
||||
contains
|
||||
|
||||
@@ -115,10 +115,7 @@ module psb_s_base_mat_mod
|
||||
procedure, pass(a) :: aclsum => psb_s_base_aclsum
|
||||
end type psb_s_base_sparse_mat
|
||||
|
||||
private :: s_base_mat_sync, s_base_mat_is_host, s_base_mat_is_dev, &
|
||||
& s_base_mat_is_sync, s_base_mat_set_host, s_base_mat_set_dev,&
|
||||
& s_base_mat_set_sync
|
||||
|
||||
|
||||
!> \namespace psb_base_mod \class psb_s_coo_sparse_mat
|
||||
!! \extends psb_s_base_mat_mod::psb_s_base_sparse_mat
|
||||
!!
|
||||
|
||||
@@ -222,6 +222,7 @@ contains
|
||||
!!
|
||||
subroutine s_base_bld_x(x,this)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
real(psb_spk_), intent(in) :: this(:)
|
||||
class(psb_s_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -246,6 +247,7 @@ contains
|
||||
!!
|
||||
subroutine s_base_bld_n(x,n)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: n
|
||||
class(psb_s_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -718,6 +720,7 @@ contains
|
||||
!! \param val The value to set
|
||||
!!
|
||||
subroutine s_base_set_scal(x,val,first,last)
|
||||
implicit none
|
||||
class(psb_s_base_vect_type), intent(inout) :: x
|
||||
real(psb_spk_), intent(in) :: val
|
||||
integer(psb_ipk_), optional :: first, last
|
||||
@@ -743,6 +746,7 @@ contains
|
||||
!! \param val(:) The vector to be copied in
|
||||
!!
|
||||
subroutine s_base_set_vect(x,val,first,last)
|
||||
implicit none
|
||||
class(psb_s_base_vect_type), intent(inout) :: x
|
||||
real(psb_spk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), optional :: first, last
|
||||
@@ -775,6 +779,7 @@ contains
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine s_base_absval1(x)
|
||||
implicit none
|
||||
class(psb_s_base_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -786,7 +791,8 @@ contains
|
||||
end subroutine s_base_absval1
|
||||
|
||||
subroutine s_base_absval2(x,y)
|
||||
class(psb_s_base_vect_type), intent(inout) :: x
|
||||
implicit none
|
||||
class(psb_s_base_vect_type), intent(inout) :: x
|
||||
class(psb_s_base_vect_type), intent(inout) :: y
|
||||
integer(psb_ipk_) :: info
|
||||
if (.not.x%is_host()) call x%sync()
|
||||
@@ -1210,6 +1216,7 @@ contains
|
||||
!! \param beta
|
||||
subroutine s_base_gthab(n,idx,alpha,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_spk_) :: alpha, beta, y(:)
|
||||
class(psb_s_base_vect_type) :: x
|
||||
@@ -1229,6 +1236,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine s_base_gthzv_x(i,n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real(psb_spk_) :: y(:)
|
||||
@@ -1244,6 +1252,7 @@ contains
|
||||
!
|
||||
subroutine s_base_gthzbuf(i,n,idx,x)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
class(psb_s_base_vect_type) :: x
|
||||
@@ -1306,6 +1315,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine s_base_gthzv(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_spk_) :: y(:)
|
||||
class(psb_s_base_vect_type) :: x
|
||||
@@ -1330,6 +1340,7 @@ contains
|
||||
!! \param x(:)
|
||||
subroutine s_base_sctb(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_spk_) :: beta, x(:)
|
||||
class(psb_s_base_vect_type) :: y
|
||||
@@ -1342,6 +1353,7 @@ contains
|
||||
|
||||
subroutine s_base_sctb_x(i,n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real(psb_spk_) :: beta, x(:)
|
||||
@@ -1355,6 +1367,7 @@ contains
|
||||
|
||||
subroutine s_base_sctb_buf(i,n,idx,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real(psb_spk_) :: beta
|
||||
@@ -1949,6 +1962,7 @@ contains
|
||||
!!
|
||||
!
|
||||
function s_base_mlv_get_vect(x) result(res)
|
||||
implicit none
|
||||
class(psb_s_base_multivect_type), intent(inout) :: x
|
||||
real(psb_spk_), allocatable :: res(:,:)
|
||||
integer(psb_ipk_) :: info,m,n
|
||||
@@ -1974,6 +1988,7 @@ contains
|
||||
!! \param val The value to set
|
||||
!!
|
||||
subroutine s_base_mlv_set_scal(x,val)
|
||||
implicit none
|
||||
class(psb_s_base_multivect_type), intent(inout) :: x
|
||||
real(psb_spk_), intent(in) :: val
|
||||
|
||||
@@ -1989,9 +2004,10 @@ contains
|
||||
!! \param val(:) The vector to be copied in
|
||||
!!
|
||||
subroutine s_base_mlv_set_vect(x,val)
|
||||
implicit none
|
||||
class(psb_s_base_multivect_type), intent(inout) :: x
|
||||
real(psb_spk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_) :: nr
|
||||
integer(psb_ipk_) :: nr, nc
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -2462,6 +2478,7 @@ contains
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine s_base_mlv_absval1(x)
|
||||
implicit none
|
||||
class(psb_s_base_multivect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -2473,6 +2490,7 @@ contains
|
||||
end subroutine s_base_mlv_absval1
|
||||
|
||||
subroutine s_base_mlv_absval2(x,y)
|
||||
implicit none
|
||||
class(psb_s_base_multivect_type), intent(inout) :: x
|
||||
class(psb_s_base_multivect_type), intent(inout) :: y
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -2487,6 +2505,7 @@ contains
|
||||
|
||||
|
||||
function s_base_mlv_use_buffer() result(res)
|
||||
implicit none
|
||||
logical :: res
|
||||
|
||||
res = .true.
|
||||
@@ -2563,6 +2582,7 @@ contains
|
||||
!! \param beta
|
||||
subroutine s_base_mlv_gthab(n,idx,alpha,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_spk_) :: alpha, beta, y(:)
|
||||
class(psb_s_base_multivect_type) :: x
|
||||
@@ -2587,6 +2607,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine s_base_mlv_gthzv_x(i,n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real(psb_spk_) :: y(:)
|
||||
@@ -2608,6 +2629,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine s_base_mlv_gthzv(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_spk_) :: y(:)
|
||||
class(psb_s_base_multivect_type) :: x
|
||||
@@ -2633,6 +2655,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine s_base_mlv_gthzm(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_spk_) :: y(:,:)
|
||||
class(psb_s_base_multivect_type) :: x
|
||||
@@ -2653,6 +2676,7 @@ contains
|
||||
!
|
||||
subroutine s_base_mlv_gthzbuf(i,ixb,n,idx,x)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, ixb, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
class(psb_s_base_multivect_type) :: x
|
||||
@@ -2684,6 +2708,7 @@ contains
|
||||
!! \param x(:)
|
||||
subroutine s_base_mlv_sctb(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_spk_) :: beta, x(:)
|
||||
class(psb_s_base_multivect_type) :: y
|
||||
@@ -2698,6 +2723,7 @@ contains
|
||||
|
||||
subroutine s_base_mlv_sctbr2(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
real(psb_spk_) :: beta, x(:,:)
|
||||
class(psb_s_base_multivect_type) :: y
|
||||
@@ -2712,6 +2738,7 @@ contains
|
||||
|
||||
subroutine s_base_mlv_sctb_x(i,n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real( psb_spk_) :: beta, x(:)
|
||||
@@ -2723,6 +2750,7 @@ contains
|
||||
|
||||
subroutine s_base_mlv_sctb_buf(i,iyb,n,idx,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, iyb, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
real(psb_spk_) :: beta
|
||||
|
||||
@@ -855,9 +855,9 @@ module psb_s_multivect_mod
|
||||
module procedure psb_s_set_multivect_default
|
||||
end interface psb_set_multivect_default
|
||||
|
||||
interface psb_get_vect_default
|
||||
interface psb_get_multivect_default
|
||||
module procedure psb_s_get_multivect_default
|
||||
end interface psb_get_vect_default
|
||||
end interface psb_get_multivect_default
|
||||
|
||||
|
||||
contains
|
||||
|
||||
@@ -115,10 +115,7 @@ module psb_z_base_mat_mod
|
||||
procedure, pass(a) :: aclsum => psb_z_base_aclsum
|
||||
end type psb_z_base_sparse_mat
|
||||
|
||||
private :: z_base_mat_sync, z_base_mat_is_host, z_base_mat_is_dev, &
|
||||
& z_base_mat_is_sync, z_base_mat_set_host, z_base_mat_set_dev,&
|
||||
& z_base_mat_set_sync
|
||||
|
||||
|
||||
!> \namespace psb_base_mod \class psb_z_coo_sparse_mat
|
||||
!! \extends psb_z_base_mat_mod::psb_z_base_sparse_mat
|
||||
!!
|
||||
|
||||
@@ -222,6 +222,7 @@ contains
|
||||
!!
|
||||
subroutine z_base_bld_x(x,this)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
complex(psb_dpk_), intent(in) :: this(:)
|
||||
class(psb_z_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -246,6 +247,7 @@ contains
|
||||
!!
|
||||
subroutine z_base_bld_n(x,n)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: n
|
||||
class(psb_z_base_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -718,6 +720,7 @@ contains
|
||||
!! \param val The value to set
|
||||
!!
|
||||
subroutine z_base_set_scal(x,val,first,last)
|
||||
implicit none
|
||||
class(psb_z_base_vect_type), intent(inout) :: x
|
||||
complex(psb_dpk_), intent(in) :: val
|
||||
integer(psb_ipk_), optional :: first, last
|
||||
@@ -743,6 +746,7 @@ contains
|
||||
!! \param val(:) The vector to be copied in
|
||||
!!
|
||||
subroutine z_base_set_vect(x,val,first,last)
|
||||
implicit none
|
||||
class(psb_z_base_vect_type), intent(inout) :: x
|
||||
complex(psb_dpk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), optional :: first, last
|
||||
@@ -775,6 +779,7 @@ contains
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine z_base_absval1(x)
|
||||
implicit none
|
||||
class(psb_z_base_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -786,7 +791,8 @@ contains
|
||||
end subroutine z_base_absval1
|
||||
|
||||
subroutine z_base_absval2(x,y)
|
||||
class(psb_z_base_vect_type), intent(inout) :: x
|
||||
implicit none
|
||||
class(psb_z_base_vect_type), intent(inout) :: x
|
||||
class(psb_z_base_vect_type), intent(inout) :: y
|
||||
integer(psb_ipk_) :: info
|
||||
if (.not.x%is_host()) call x%sync()
|
||||
@@ -1210,6 +1216,7 @@ contains
|
||||
!! \param beta
|
||||
subroutine z_base_gthab(n,idx,alpha,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_dpk_) :: alpha, beta, y(:)
|
||||
class(psb_z_base_vect_type) :: x
|
||||
@@ -1229,6 +1236,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine z_base_gthzv_x(i,n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex(psb_dpk_) :: y(:)
|
||||
@@ -1244,6 +1252,7 @@ contains
|
||||
!
|
||||
subroutine z_base_gthzbuf(i,n,idx,x)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
class(psb_z_base_vect_type) :: x
|
||||
@@ -1306,6 +1315,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine z_base_gthzv(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_dpk_) :: y(:)
|
||||
class(psb_z_base_vect_type) :: x
|
||||
@@ -1330,6 +1340,7 @@ contains
|
||||
!! \param x(:)
|
||||
subroutine z_base_sctb(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_dpk_) :: beta, x(:)
|
||||
class(psb_z_base_vect_type) :: y
|
||||
@@ -1342,6 +1353,7 @@ contains
|
||||
|
||||
subroutine z_base_sctb_x(i,n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex(psb_dpk_) :: beta, x(:)
|
||||
@@ -1355,6 +1367,7 @@ contains
|
||||
|
||||
subroutine z_base_sctb_buf(i,n,idx,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex(psb_dpk_) :: beta
|
||||
@@ -1949,6 +1962,7 @@ contains
|
||||
!!
|
||||
!
|
||||
function z_base_mlv_get_vect(x) result(res)
|
||||
implicit none
|
||||
class(psb_z_base_multivect_type), intent(inout) :: x
|
||||
complex(psb_dpk_), allocatable :: res(:,:)
|
||||
integer(psb_ipk_) :: info,m,n
|
||||
@@ -1974,6 +1988,7 @@ contains
|
||||
!! \param val The value to set
|
||||
!!
|
||||
subroutine z_base_mlv_set_scal(x,val)
|
||||
implicit none
|
||||
class(psb_z_base_multivect_type), intent(inout) :: x
|
||||
complex(psb_dpk_), intent(in) :: val
|
||||
|
||||
@@ -1989,9 +2004,10 @@ contains
|
||||
!! \param val(:) The vector to be copied in
|
||||
!!
|
||||
subroutine z_base_mlv_set_vect(x,val)
|
||||
implicit none
|
||||
class(psb_z_base_multivect_type), intent(inout) :: x
|
||||
complex(psb_dpk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_) :: nr
|
||||
integer(psb_ipk_) :: nr, nc
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -2462,6 +2478,7 @@ contains
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine z_base_mlv_absval1(x)
|
||||
implicit none
|
||||
class(psb_z_base_multivect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) then
|
||||
@@ -2473,6 +2490,7 @@ contains
|
||||
end subroutine z_base_mlv_absval1
|
||||
|
||||
subroutine z_base_mlv_absval2(x,y)
|
||||
implicit none
|
||||
class(psb_z_base_multivect_type), intent(inout) :: x
|
||||
class(psb_z_base_multivect_type), intent(inout) :: y
|
||||
integer(psb_ipk_) :: info
|
||||
@@ -2487,6 +2505,7 @@ contains
|
||||
|
||||
|
||||
function z_base_mlv_use_buffer() result(res)
|
||||
implicit none
|
||||
logical :: res
|
||||
|
||||
res = .true.
|
||||
@@ -2563,6 +2582,7 @@ contains
|
||||
!! \param beta
|
||||
subroutine z_base_mlv_gthab(n,idx,alpha,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_dpk_) :: alpha, beta, y(:)
|
||||
class(psb_z_base_multivect_type) :: x
|
||||
@@ -2587,6 +2607,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine z_base_mlv_gthzv_x(i,n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i,n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex(psb_dpk_) :: y(:)
|
||||
@@ -2608,6 +2629,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine z_base_mlv_gthzv(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_dpk_) :: y(:)
|
||||
class(psb_z_base_multivect_type) :: x
|
||||
@@ -2633,6 +2655,7 @@ contains
|
||||
!! \param idx(:) indices
|
||||
subroutine z_base_mlv_gthzm(n,idx,x,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_dpk_) :: y(:,:)
|
||||
class(psb_z_base_multivect_type) :: x
|
||||
@@ -2653,6 +2676,7 @@ contains
|
||||
!
|
||||
subroutine z_base_mlv_gthzbuf(i,ixb,n,idx,x)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, ixb, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
class(psb_z_base_multivect_type) :: x
|
||||
@@ -2684,6 +2708,7 @@ contains
|
||||
!! \param x(:)
|
||||
subroutine z_base_mlv_sctb(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_dpk_) :: beta, x(:)
|
||||
class(psb_z_base_multivect_type) :: y
|
||||
@@ -2698,6 +2723,7 @@ contains
|
||||
|
||||
subroutine z_base_mlv_sctbr2(n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n, idx(:)
|
||||
complex(psb_dpk_) :: beta, x(:,:)
|
||||
class(psb_z_base_multivect_type) :: y
|
||||
@@ -2712,6 +2738,7 @@ contains
|
||||
|
||||
subroutine z_base_mlv_sctb_x(i,n,idx,x,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex( psb_dpk_) :: beta, x(:)
|
||||
@@ -2723,6 +2750,7 @@ contains
|
||||
|
||||
subroutine z_base_mlv_sctb_buf(i,iyb,n,idx,beta,y)
|
||||
use psi_serial_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: i, iyb, n
|
||||
class(psb_i_base_vect_type) :: idx
|
||||
complex(psb_dpk_) :: beta
|
||||
|
||||
@@ -855,9 +855,9 @@ module psb_z_multivect_mod
|
||||
module procedure psb_z_set_multivect_default
|
||||
end interface psb_set_multivect_default
|
||||
|
||||
interface psb_get_vect_default
|
||||
interface psb_get_multivect_default
|
||||
module procedure psb_z_get_multivect_default
|
||||
end interface psb_get_vect_default
|
||||
end interface psb_get_multivect_default
|
||||
|
||||
|
||||
contains
|
||||
|
||||
+16
-1
@@ -47,11 +47,14 @@ subroutine symbmm(n, m, l, ia, ja, diaga, ib, jb, diagb,&
|
||||
use psb_const_mod
|
||||
use psb_realloc_mod
|
||||
use psb_sort_mod, only: psb_msort
|
||||
implicit none
|
||||
!
|
||||
integer(psb_ipk_) :: n,m,l
|
||||
integer(psb_ipk_) :: ia(*), ja(*), diaga, &
|
||||
& ib(*), jb(*), diagb, diagc, index(*)
|
||||
integer(psb_ipk_), allocatable :: ic(:),jc(:)
|
||||
integer(psb_ipk_) :: nze, info
|
||||
integer(psb_ipk_) :: nze, info,i,j,k,jj
|
||||
integer(psb_ipk_) :: minlm,minln,minmn,maxlmn, istart,length
|
||||
|
||||
!
|
||||
! symbolic matrix multiply c=a*b
|
||||
@@ -162,10 +165,13 @@ subroutine cnumbmm(n, m, l, ia, ja, diaga, a, ib, jb, diagb, b,&
|
||||
& ic, jc, diagc, c, temp)
|
||||
!
|
||||
use psb_const_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n,m,l
|
||||
integer(psb_ipk_) :: ia(*), ja(*), diaga,&
|
||||
& ib(*), jb(*), diagb, ic(*), jc(*), diagc
|
||||
!
|
||||
complex(psb_spk_) :: a(*), b(*), c(*), temp(*),ajj
|
||||
integer(psb_ipk_) :: i,j,k,jj,minlm,minln,minmn,maxlmn
|
||||
!
|
||||
! numeric matrix multiply c=a*b
|
||||
!
|
||||
@@ -244,11 +250,14 @@ end subroutine cnumbmm
|
||||
subroutine dnumbmm(n, m, l, ia, ja, diaga, a, ib, jb, diagb, b,&
|
||||
& ic, jc, diagc, c, temp)
|
||||
use psb_const_mod
|
||||
implicit none
|
||||
!
|
||||
integer(psb_ipk_) :: n,m,l
|
||||
integer(psb_ipk_) :: ia(*), ja(*), diaga, ib(*), jb(*), diagb,&
|
||||
& ic(*), jc(*), diagc
|
||||
!
|
||||
real(psb_dpk_) :: a(*), b(*), c(*), temp(*),ajj
|
||||
integer(psb_ipk_) :: i,j,k,jj,minlm,minln,minmn,maxlmn
|
||||
!
|
||||
! numeric matrix multiply c=a*b
|
||||
!
|
||||
@@ -327,11 +336,14 @@ end subroutine dnumbmm
|
||||
subroutine snumbmm(n, m, l, ia, ja, diaga, a, ib, jb, diagb, b,&
|
||||
& ic, jc, diagc, c, temp)
|
||||
use psb_const_mod
|
||||
implicit none
|
||||
!
|
||||
integer(psb_ipk_) :: n,m,l
|
||||
integer(psb_ipk_) :: ia(*), ja(*), diaga, ib(*), jb(*), diagb,&
|
||||
& ic(*), jc(*), diagc
|
||||
!
|
||||
real(psb_spk_) :: a(*), b(*), c(*), temp(*),ajj
|
||||
integer(psb_ipk_) :: i,j,k,jj,minlm,minln,minmn,maxlmn
|
||||
!
|
||||
! numeric matrix multiply c=a*b
|
||||
!
|
||||
@@ -411,10 +423,13 @@ subroutine znumbmm(n, m, l, ia, ja, diaga, a, ib, jb, diagb, b,&
|
||||
& ic, jc, diagc, c, temp)
|
||||
!
|
||||
use psb_const_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: n,m,l
|
||||
integer(psb_ipk_) :: ia(*), ja(*), diaga, ib(*), jb(*), diagb,&
|
||||
& ic(*), jc(*), diagc
|
||||
!
|
||||
complex(psb_dpk_) :: a(*), b(*), c(*), temp(*),ajj
|
||||
integer(psb_ipk_) :: i,j,k,jj,minlm,minln,minmn,maxlmn
|
||||
!
|
||||
! numeric matrix multiply c=a*b
|
||||
!
|
||||
|
||||
@@ -75,6 +75,7 @@ module psb_metispart_mod
|
||||
contains
|
||||
|
||||
subroutine part_graph(global_indx,n,np,pv,nv)
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: global_indx, n
|
||||
integer(psb_ipk_), intent(in) :: np
|
||||
integer(psb_ipk_), intent(out) :: nv
|
||||
@@ -98,9 +99,10 @@ contains
|
||||
|
||||
subroutine distr_mtpart(root, ictxt)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
integer(psb_ipk_) :: root, ictxt
|
||||
integer(psb_ipk_) :: n, me, np
|
||||
|
||||
integer(psb_ipk_) :: n, me, np, info
|
||||
|
||||
call psb_info(ictxt,me,np)
|
||||
|
||||
if (.not.((root>=0).and.(root<np))) then
|
||||
@@ -136,6 +138,7 @@ contains
|
||||
end subroutine distr_mtpart
|
||||
|
||||
subroutine getv_mtpart(ivg)
|
||||
implicit none
|
||||
integer(psb_ipk_), allocatable, intent(out) :: ivg(:)
|
||||
if (allocated(graph_vect)) then
|
||||
allocate(ivg(size(graph_vect)))
|
||||
@@ -145,6 +148,7 @@ contains
|
||||
|
||||
subroutine d_mat_build_mtpart(a,nparts,weights)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
integer(psb_ipk_) :: nparts
|
||||
real(psb_dpk_), optional :: weights(:)
|
||||
@@ -172,6 +176,7 @@ contains
|
||||
|
||||
subroutine z_mat_build_mtpart(a,nparts,weights)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_zspmat_type), intent(in) :: a
|
||||
integer(psb_ipk_) :: nparts
|
||||
real(psb_dpk_), optional :: weights(:)
|
||||
@@ -199,6 +204,7 @@ contains
|
||||
|
||||
subroutine s_mat_build_mtpart(a,nparts,weights)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_sspmat_type), intent(in) :: a
|
||||
integer(psb_ipk_) :: nparts
|
||||
real(psb_spk_), optional :: weights(:)
|
||||
@@ -216,6 +222,7 @@ contains
|
||||
|
||||
subroutine c_mat_build_mtpart(a,nparts,weights)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_cspmat_type), intent(in) :: a
|
||||
integer(psb_ipk_) :: nparts
|
||||
real(psb_spk_), optional :: weights(:)
|
||||
@@ -233,6 +240,7 @@ contains
|
||||
|
||||
subroutine d_csr_build_mtpart(a,nparts,weights)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_d_csr_sparse_mat), intent(in) :: a
|
||||
integer(psb_ipk_) :: nparts
|
||||
real(psb_dpk_), optional :: weights(:)
|
||||
@@ -254,6 +262,7 @@ contains
|
||||
|
||||
subroutine z_csr_build_mtpart(a,nparts,weights)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_z_csr_sparse_mat), intent(in) :: a
|
||||
integer(psb_ipk_) :: nparts
|
||||
real(psb_dpk_), optional :: weights(:)
|
||||
@@ -276,6 +285,7 @@ contains
|
||||
|
||||
subroutine s_csr_build_mtpart(a,nparts,weights)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_s_csr_sparse_mat), intent(in) :: a
|
||||
integer(psb_ipk_) :: nparts
|
||||
real(psb_spk_), optional :: weights(:)
|
||||
@@ -288,6 +298,7 @@ contains
|
||||
|
||||
subroutine c_csr_build_mtpart(a,nparts,weights)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_c_csr_sparse_mat), intent(in) :: a
|
||||
integer(psb_ipk_) :: nparts
|
||||
real(psb_spk_), optional :: weights(:)
|
||||
@@ -402,6 +413,7 @@ contains
|
||||
|
||||
|
||||
subroutine free_part(info)
|
||||
implicit none
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
deallocate(graph_vect,stat=info)
|
||||
|
||||
Reference in New Issue
Block a user