Merge branch 'merge-paraggr' into merge-paraggr-newops

# Conflicts:
#	docs/html/index.html
#	docs/html/userhtml.css
#	docs/html/userhtml.html
#	docs/psblas-3.7.pdf
#	docs/src/psbrout.tex
This commit is contained in:
Salvatore Filippone
2019-12-17 19:40:54 +00:00
382 changed files with 51417 additions and 8083 deletions
+1 -1
View File
@@ -261,7 +261,7 @@ psi_z_mod.o: desc/psb_desc_mod.o serial/psb_z_vect_mod.o comm/psi_z_comm_a_mod.o
psi_mod.o: psb_penv_mod.o desc/psb_desc_mod.o auxil/psi_serial_mod.o serial/psb_serial_mod.o\
psi_i_mod.o psi_l_mod.o psi_s_mod.o psi_d_mod.o psi_c_mod.o psi_z_mod.o
desc/psb_indx_map_mod.o: desc/psb_desc_const_mod.o psb_error_mod.o psb_penv_mod.o psb_realloc_mod.o
desc/psb_indx_map_mod.o: desc/psb_desc_const_mod.o psb_error_mod.o psb_penv_mod.o psb_realloc_mod.o auxil/psb_sort_mod.o
desc/psb_hash_map_mod.o desc/psb_list_map_mod.o desc/psb_repl_map_mod.o desc/psb_gen_block_map_mod.o:\
desc/psb_indx_map_mod.o desc/psb_desc_const_mod.o \
auxil/psb_sort_mod.o psb_penv_mod.o
+62 -8
View File
@@ -233,6 +233,9 @@ module psb_desc_mod
procedure, pass(desc) :: get_global_rows => psb_cd_get_global_rows
procedure, pass(desc) :: get_global_cols => psb_cd_get_global_cols
procedure, pass(desc) :: get_global_indices => psb_cd_get_global_indices
procedure, pass(desc) :: get_p_adjcncy => cd_get_p_adjcncy
procedure, pass(desc) :: set_p_adjcncy => cd_set_p_adjcncy
procedure, pass(desc) :: xtnd_p_adjcncy => cd_xtnd_p_adjcncy
procedure, pass(desc) :: a_get_list => psb_cd_get_list
procedure, pass(desc) :: v_get_list => psb_cd_v_get_list
generic, public :: get_list => a_get_list, v_get_list
@@ -282,6 +285,14 @@ module psb_desc_mod
module procedure psb_cdfree
end interface psb_free
interface psb_cd_set_maxspace
module procedure psb_cd_set_maxspace
end interface psb_cd_set_maxspace
interface psb_cd_get_maxspace
module procedure psb_cd_get_maxspace
end interface psb_cd_get_maxspace
interface psb_cd_set_large_threshold
module procedure psb_i_cd_set_large_threshold
end interface psb_cd_set_large_threshold
@@ -298,7 +309,8 @@ module psb_desc_mod
& cd_g2ls2_ins, cd_g2lv1_ins, cd_g2lv2_ins, cd_fnd_owner
integer(psb_lpk_), private, save :: cd_large_threshold=psb_default_large_threshold
integer(psb_lpk_), private, save :: cd_large_threshold = psb_default_large_threshold
integer(psb_ipk_), private, save :: cd_maxspace = -1
contains
@@ -347,10 +359,25 @@ contains
function psb_cd_get_large_threshold() result(val)
implicit none
integer(psb_ipk_) :: val
integer(psb_lpk_) :: val
val = cd_large_threshold
end function psb_cd_get_large_threshold
subroutine psb_cd_set_maxspace(ith)
implicit none
integer(psb_ipk_), intent(in) :: ith
if (ith > 0) then
cd_maxspace = ith
end if
end subroutine psb_cd_set_maxspace
function psb_cd_get_maxspace() result(val)
implicit none
integer(psb_ipk_) :: val
val = cd_maxspace
end function psb_cd_get_maxspace
function psb_cd_is_large_size(m) result(val)
use psb_penv_mod
@@ -557,9 +584,7 @@ contains
end function psb_cd_get_global_indices
function cd_get_fmt(desc) result(val)
implicit none
character(len=5) :: val
@@ -620,6 +645,35 @@ contains
end function psb_cd_get_mpic
function cd_get_p_adjcncy(desc) result(val)
implicit none
integer(psb_ipk_), allocatable :: val(:)
class(psb_desc_type), intent(in) :: desc
if (allocated(desc%indxmap)) then
val = desc%indxmap%get_p_adjcncy()
endif
end function cd_get_p_adjcncy
subroutine cd_set_p_adjcncy(desc,val)
implicit none
class(psb_desc_type), intent(inout) :: desc
integer(psb_ipk_), intent(in) :: val(:)
if (allocated(desc%indxmap)) then
call desc%indxmap%xtnd_p_adjcncy(val)
endif
end subroutine cd_set_p_adjcncy
subroutine cd_xtnd_p_adjcncy(desc,val)
implicit none
class(psb_desc_type), intent(inout) :: desc
integer(psb_ipk_), intent(in) :: val(:)
if (allocated(desc%indxmap)) then
call desc%indxmap%xtnd_p_adjcncy(val)
endif
end subroutine cd_xtnd_p_adjcncy
subroutine psb_cd_set_ovl_asb(desc,info)
!
! Change state of a descriptor into ovl_build.
@@ -1716,10 +1770,10 @@ contains
subroutine cd_fnd_owner(idx,iprc,desc,info)
use psb_error_mod
implicit none
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
class(psb_desc_type), intent(in) :: desc
integer(psb_ipk_), intent(out) :: info
class(psb_desc_type), intent(inout) :: desc
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: err_act
character(len=20) :: name='cd_fnd_owner'
logical, parameter :: debug=.false.
+4 -4
View File
@@ -1934,10 +1934,10 @@ contains
subroutine block_fnd_owner(idx,iprc,idxmap,info)
use psb_penv_mod
implicit none
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
class(psb_gen_block_map), intent(in) :: idxmap
integer(psb_ipk_), intent(out) :: info
class(psb_gen_block_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: ictxt, iam, np, nv, ip, i
integer(psb_lpk_) :: tidx
@@ -2005,7 +2005,7 @@ contains
idxmap%local_cols = nl
idxmap%ictxt = ictxt
idxmap%state = psb_desc_bld_
call psb_get_mpicomm(ictxt,idxmap%mpic)
idxmap%mpic = psb_get_mpi_comm(ictxt)
idxmap%min_glob_row = vnl(iam)+1
idxmap%max_glob_row = vnl(iam+1)
call move_alloc(vnl,idxmap%vnl)
+6 -6
View File
@@ -124,9 +124,9 @@ contains
return
end if
idxmap%ictxt = ictxt
idxmap%state = psb_desc_bld_
call psb_get_mpicomm(ictxt,idxmap%mpic)
idxmap%ictxt = ictxt
idxmap%state = psb_desc_bld_
idxmap%mpic = psb_get_mpi_comm(ictxt)
nl = 0
do i=1, n
@@ -154,10 +154,10 @@ contains
use psb_penv_mod
use psb_sort_mod
implicit none
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
class(psb_glist_map), intent(in) :: idxmap
integer(psb_ipk_), intent(out) :: info
class(psb_glist_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info
integer(psb_mpk_) :: ictxt, iam, np
integer(psb_lpk_) :: nv, i, ngp
+1 -1
View File
@@ -961,7 +961,7 @@ contains
idxmap%local_cols = nl
idxmap%ictxt = ictxt
idxmap%state = psb_desc_bld_
call psb_get_mpicomm(ictxt,idxmap%mpic)
idxmap%mpic = psb_get_mpi_comm(ictxt)
lc2 = int(1.5*nl)
call psb_realloc(lc2,idxmap%loc_to_glob,info)
+112 -9
View File
@@ -127,7 +127,9 @@ module psb_indx_map_mod
integer(psb_ipk_), allocatable :: oracle(:,:)
!> Halo owners
integer(psb_ipk_), allocatable :: halo_owner(:)
!> Adjacency list for processes
integer(psb_ipk_), allocatable :: p_adjcncy(:)
contains
procedure, pass(idxmap) :: get_state => base_get_state
@@ -144,6 +146,8 @@ module psb_indx_map_mod
procedure, pass(idxmap) :: get_lr => base_get_lr
procedure, pass(idxmap) :: get_lc => base_get_lc
procedure, pass(idxmap) :: get_p_adjcncy => base_get_p_adjcncy
procedure, pass(idxmap) :: set_gri => base_set_gri
procedure, pass(idxmap) :: set_gci => base_set_gci
@@ -155,6 +159,9 @@ module psb_indx_map_mod
procedure, pass(idxmap) :: set_lr => base_set_lr
procedure, pass(idxmap) :: set_lc => base_set_lc
procedure, pass(idxmap) :: set_p_adjcncy => base_set_p_adjcncy
procedure, pass(idxmap) :: xtnd_p_adjcncy => base_xtnd_p_adjcncy
procedure, pass(idxmap) :: set_ctxt => base_set_ctxt
procedure, pass(idxmap) :: set_mpic => base_set_mpic
procedure, pass(idxmap) :: get_ctxt => base_get_ctxt
@@ -216,7 +223,7 @@ module psb_indx_map_mod
procedure, pass(idxmap) :: fnd_halo_owner_v => base_fnd_halo_owner_v
generic, public :: fnd_halo_owner => fnd_halo_owner_s, fnd_halo_owner_v
procedure, pass(idxmap) :: fnd_owner => psb_indx_map_fnd_owner
procedure, pass(idxmap) :: fnd_owner => psi_indx_map_fnd_owner
procedure, pass(idxmap) :: init_vl => base_init_vl
generic, public :: init => init_vl
@@ -238,9 +245,10 @@ module psb_indx_map_mod
& base_lg2lv2_ins, base_init_vl, base_is_null,&
& base_row_extendable, base_clone, base_cpy, base_reinit, &
& base_set_halo_owner, base_get_halo_owner, &
& base_fnd_halo_owner_s, base_fnd_halo_owner_v
& base_fnd_halo_owner_s, base_fnd_halo_owner_v,&
& base_get_p_adjcncy, base_set_p_adjcncy, base_xtnd_p_adjcncy
!> Function: psb_indx_map_fnd_owner
!> Function: psi_indx_map_fnd_owner
!! \memberof psb_indx_map
!! \brief Find the process owning indices
!!
@@ -259,16 +267,70 @@ module psb_indx_map_mod
!!
interface
subroutine psb_indx_map_fnd_owner(idx,iprc,idxmap,info)
subroutine psi_indx_map_fnd_owner(idx,iprc,idxmap,info)
import :: psb_indx_map, psb_ipk_, psb_lpk_
implicit none
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
class(psb_indx_map), intent(in) :: idxmap
integer(psb_ipk_), intent(out) :: info
end subroutine psb_indx_map_fnd_owner
class(psb_indx_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info
end subroutine psi_indx_map_fnd_owner
end interface
interface
subroutine psi_a2a_fnd_owner(idx,iprc,idxmap,info)
import :: psb_indx_map, psb_ipk_, psb_lpk_
implicit none
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
class(psb_indx_map), intent(in) :: idxmap
integer(psb_ipk_), intent(out) :: info
end subroutine psi_a2a_fnd_owner
end interface
interface
subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info)
import :: psb_indx_map, psb_ipk_, psb_lpk_
implicit none
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
integer(psb_ipk_), allocatable, intent(inout) :: adj(:)
class(psb_indx_map), intent(in) :: idxmap
integer(psb_ipk_), intent(out) :: info
end subroutine psi_adjcncy_fnd_owner
end interface
interface
subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
import :: psb_indx_map, psb_ipk_, psb_lpk_
implicit none
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
class(psb_indx_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info
end subroutine psi_graph_fnd_owner
end interface
integer, parameter :: psi_symm_flag_norv_ = 0
integer, parameter :: psi_symm_flag_inrv_ = 1
interface psi_symm_dep_list
subroutine psi_symm_dep_list_inrv(rvsz,adj,ictxt,info)
import :: psb_indx_map, psb_ipk_, psb_lpk_, psb_mpk_
implicit none
integer(psb_mpk_), intent(inout) :: rvsz(0:)
integer(psb_ipk_), allocatable, intent(inout) :: adj(:)
integer(psb_ipk_), intent(in) :: ictxt
integer(psb_ipk_), intent(out) :: info
end subroutine psi_symm_dep_list_inrv
subroutine psi_symm_dep_list_norv(adj,ictxt,info)
import :: psb_indx_map, psb_ipk_, psb_lpk_, psb_mpk_
implicit none
integer(psb_ipk_), allocatable, intent(inout) :: adj(:)
integer(psb_ipk_), intent(in) :: ictxt
integer(psb_ipk_), intent(out) :: info
end subroutine psi_symm_dep_list_norv
end interface psi_symm_dep_list
contains
@@ -331,6 +393,16 @@ contains
end function base_get_lc
function base_get_p_adjcncy(idxmap) result(val)
use psb_realloc_mod
implicit none
class(psb_indx_map), intent(in) :: idxmap
integer(psb_ipk_), allocatable :: val(:)
integer(psb_ipk_) :: info
call psb_safe_ab_cpy(idxmap%p_adjcncy,val,info)
end function base_get_p_adjcncy
function base_get_ctxt(idxmap) result(val)
implicit none
@@ -416,6 +488,35 @@ contains
idxmap%local_cols = val
end subroutine base_set_lc
subroutine base_set_p_adjcncy(idxmap,val)
use psb_realloc_mod
use psb_sort_mod
implicit none
class(psb_indx_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: val(:)
call idxmap%xtnd_p_adjcncy(val)
end subroutine base_set_p_adjcncy
subroutine base_xtnd_p_adjcncy(idxmap,val)
use psb_realloc_mod
use psb_sort_mod
implicit none
class(psb_indx_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: val(:)
integer(psb_ipk_) :: info, nv, nx
nv = size(val)
nx = psb_size(idxmap%p_adjcncy)
call psb_realloc(nv+nx,idxmap%p_adjcncy,info)
idxmap%p_adjcncy(nx+1:nx+nv) = val(1:nv)
nx = size(idxmap%p_adjcncy)
call psb_msort_unique(idxmap%p_adjcncy,nx,dir=psb_sort_up_)
call psb_realloc(nx,idxmap%p_adjcncy,info)
end subroutine base_xtnd_p_adjcncy
subroutine base_set_mpic(idxmap,val)
implicit none
class(psb_indx_map), intent(inout) :: idxmap
@@ -1244,6 +1345,8 @@ contains
& call psb_safe_ab_cpy(idxmap%oracle,outmap%oracle,info)
if (info == psb_success_)&
& call psb_safe_ab_cpy(idxmap%halo_owner,outmap%halo_owner,info)
if (info == psb_success_)&
& call psb_safe_ab_cpy(idxmap%p_adjcncy,outmap%p_adjcncy,info)
if (info /= 0) goto 9999
+3 -3
View File
@@ -1117,9 +1117,9 @@ contains
return
end if
idxmap%ictxt = ictxt
idxmap%state = psb_desc_bld_
call psb_get_mpicomm(ictxt,idxmap%mpic)
idxmap%ictxt = ictxt
idxmap%state = psb_desc_bld_
idxmap%mpic = psb_get_mpi_comm(ictxt)
do i=1, n
idxmap%glob_to_loc(i) = -1
end do
+4 -4
View File
@@ -699,10 +699,10 @@ contains
subroutine repl_fnd_owner(idx,iprc,idxmap,info)
use psb_penv_mod
implicit none
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_lpk_), intent(in) :: idx(:)
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
class(psb_repl_map), intent(in) :: idxmap
integer(psb_ipk_), intent(out) :: info
class(psb_repl_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: nv
integer(psb_mpk_) :: ictxt, iam, np
@@ -746,7 +746,7 @@ contains
idxmap%local_cols = nl
idxmap%ictxt = ictxt
idxmap%state = psb_desc_bld_
call psb_get_mpicomm(ictxt,idxmap%mpic)
idxmap%mpic = psb_get_mpi_comm(ictxt)
call idxmap%set_state(psb_desc_bld_)
end subroutine repl_init
+15 -2
View File
@@ -563,16 +563,29 @@ contains
end subroutine psb_info_mpik
subroutine psb_get_mpicomm(ictxt,comm)
function psb_get_mpi_comm(ictxt) result(comm)
integer(psb_mpk_) :: ictxt, comm
comm = ictxt
end function psb_get_mpi_comm
function psb_get_mpi_rank(ictxt,id) result(rank)
integer(psb_mpk_) :: rank,ictxt,id
rank = id
end function psb_get_mpi_rank
subroutine psb_get_mpicomm(ictxt,comm)
integer(psb_mpk_) :: ictxt, comm
comm = psb_get_mpi_comm(ictxt)
end subroutine psb_get_mpicomm
subroutine psb_get_rank(rank,ictxt,id)
integer(psb_mpk_) :: rank,ictxt,id
rank = id
rank = psb_get_mpi_rank(ictxt,id)
end subroutine psb_get_rank
+3
View File
@@ -309,5 +309,8 @@ module psb_const_mod
integer(psb_ipk_), parameter, public :: psb_err_alloc_request_=4025
integer(psb_ipk_), parameter, public :: psb_err_from_subroutine_non_=4011
integer(psb_ipk_), parameter, public :: psb_err_invalid_istop_=5001
integer(psb_ipk_), parameter, public :: psb_err_invalid_irst_ =5002
integer(psb_ipk_), parameter, public :: psb_err_invalid_preci_=5003
integer(psb_ipk_), parameter, public :: psb_err_invalid_preca_=5004
end module psb_const_mod
+7 -2
View File
@@ -1043,12 +1043,17 @@ contains
achmsg(1) = tmpmsg
write(achmsg(2),'("Invalid ISTOP: ",i0)')e_e_d(1)
case(5002)
case(psb_err_invalid_irst_)
allocate(achmsg(2))
achmsg(1) = tmpmsg
write(achmsg(2),'("Invalid IRST: ",i0)')e_e_d(1)
case(psb_err_invalid_preci_)
allocate(achmsg(2))
achmsg(1) = tmpmsg
write(achmsg(2),'("Invalid PREC: ",i0)')e_e_d(1)
case(5003)
case(psb_err_invalid_preca_)
allocate(achmsg(2))
achmsg(1) = tmpmsg
write(achmsg(2),'("Invalid PREC: ",a3)')a_e_d(1:3)
+7 -7
View File
@@ -115,15 +115,15 @@ module psi_i_mod
interface psi_extract_dep_list
subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,&
& length_dl,np,dl_lda,mode,info)
& length_dl,dl_lda,mode,info)
import
implicit none
logical :: is_bld, is_upd
integer(psb_ipk_) :: ictxt
integer(psb_ipk_) :: dl_lda,mode
integer(psb_ipk_) :: desc_str(*),dep_list(dl_lda,0:np),length_dl(0:np)
integer(psb_ipk_) :: np
integer(psb_ipk_) :: info
logical, intent(in) :: is_bld, is_upd
integer(psb_ipk_), intent(in) :: ictxt, mode
integer(psb_ipk_), intent(out) :: dl_lda
integer(psb_ipk_), intent(in) :: desc_str(*)
integer(psb_ipk_), allocatable, intent(out) :: dep_list(:,:), length_dl(:)
integer(psb_ipk_), intent(out) :: info
end subroutine psi_i_extract_dep_list
end interface
+1 -2
View File
@@ -37,13 +37,12 @@ Module psb_c_tools_mod
use psb_c_multivect_mod, only : psb_c_base_multivect_type, psb_c_multivect_type
interface psb_geall
subroutine psb_calloc_vect(x, desc_a,info,n)
subroutine psb_calloc_vect(x, desc_a,info)
import
implicit none
type(psb_c_vect_type), intent(out) :: x
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_),intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: n
end subroutine psb_calloc_vect
subroutine psb_calloc_vect_r2(x, desc_a,info,n,lb)
import
+1 -2
View File
@@ -37,13 +37,12 @@ Module psb_d_tools_mod
use psb_d_multivect_mod, only : psb_d_base_multivect_type, psb_d_multivect_type
interface psb_geall
subroutine psb_dalloc_vect(x, desc_a,info,n)
subroutine psb_dalloc_vect(x, desc_a,info)
import
implicit none
type(psb_d_vect_type), intent(out) :: x
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_),intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: n
end subroutine psb_dalloc_vect
subroutine psb_dalloc_vect_r2(x, desc_a,info,n,lb)
import
+1 -2
View File
@@ -36,13 +36,12 @@ Module psb_i_tools_mod
use psb_i_multivect_mod, only : psb_i_base_multivect_type, psb_i_multivect_type
interface psb_geall
subroutine psb_ialloc_vect(x, desc_a,info,n)
subroutine psb_ialloc_vect(x, desc_a,info)
import
implicit none
type(psb_i_vect_type), intent(out) :: x
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_),intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: n
end subroutine psb_ialloc_vect
subroutine psb_ialloc_vect_r2(x, desc_a,info,n,lb)
import
+1 -2
View File
@@ -36,13 +36,12 @@ Module psb_l_tools_mod
use psb_l_multivect_mod, only : psb_l_base_multivect_type, psb_l_multivect_type
interface psb_geall
subroutine psb_lalloc_vect(x, desc_a,info,n)
subroutine psb_lalloc_vect(x, desc_a,info)
import
implicit none
type(psb_l_vect_type), intent(out) :: x
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_),intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: n
end subroutine psb_lalloc_vect
subroutine psb_lalloc_vect_r2(x, desc_a,info,n,lb)
import
+1 -2
View File
@@ -37,13 +37,12 @@ Module psb_s_tools_mod
use psb_s_multivect_mod, only : psb_s_base_multivect_type, psb_s_multivect_type
interface psb_geall
subroutine psb_salloc_vect(x, desc_a,info,n)
subroutine psb_salloc_vect(x, desc_a,info)
import
implicit none
type(psb_s_vect_type), intent(out) :: x
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_),intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: n
end subroutine psb_salloc_vect
subroutine psb_salloc_vect_r2(x, desc_a,info,n,lb)
import
+1 -2
View File
@@ -37,13 +37,12 @@ Module psb_z_tools_mod
use psb_z_multivect_mod, only : psb_z_base_multivect_type, psb_z_multivect_type
interface psb_geall
subroutine psb_zalloc_vect(x, desc_a,info,n)
subroutine psb_zalloc_vect(x, desc_a,info)
import
implicit none
type(psb_z_vect_type), intent(out) :: x
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_),intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: n
end subroutine psb_zalloc_vect
subroutine psb_zalloc_vect_r2(x, desc_a,info,n,lb)
import