psblas3-integer8:

base/modules/psb_c_linmap_mod.f90
 base/modules/psb_d_linmap_mod.f90
 base/modules/psb_desc_type.f90
 base/modules/psb_error_impl.F90
 base/modules/psb_error_mod.F90
 base/modules/psb_gen_block_map_mod.f90
 base/modules/psb_glist_map_mod.f90
 base/modules/psb_hash_map_mod.f90
 base/modules/psb_hash_mod.f90
 base/modules/psb_indx_map_mod.f90
 base/modules/psb_list_map_mod.f90
 base/modules/psb_repl_map_mod.f90
 base/modules/psb_s_linmap_mod.f90
 base/modules/psb_z_linmap_mod.f90
 base/modules/psi_bcast_mod.F90
 base/modules/psi_i_mod.f90

After the fix to psi_reduce, all the other stuff in base/modules works
with 4 bytes. Need to cross-check compilation on 8-bytes.
psblas3-type-indexed
Salvatore Filippone 15 years ago
parent e2f247f1ea
commit 8cf8d5a4bc

@ -75,7 +75,7 @@ module psb_c_linmap_mod
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
complex(psb_spk_), optional :: work(:) complex(psb_spk_), optional :: work(:)
end subroutine psb_c_map_X2Y_vect end subroutine psb_c_map_X2Y_vect
end interface end interface psb_map_X2Y
interface psb_map_Y2X interface psb_map_Y2X
subroutine psb_c_map_Y2X(alpha,x,beta,y,map,info,work) subroutine psb_c_map_Y2X(alpha,x,beta,y,map,info,work)
@ -100,20 +100,20 @@ module psb_c_linmap_mod
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
complex(psb_spk_), optional :: work(:) complex(psb_spk_), optional :: work(:)
end subroutine psb_c_map_Y2X_vect end subroutine psb_c_map_Y2X_vect
end interface end interface psb_map_Y2X
interface psb_map_cscnv interface psb_map_cscnv
module procedure psb_c_map_cscnv module procedure psb_c_map_cscnv
end interface end interface psb_map_cscnv
interface psb_linmap_sub interface psb_linmap_sub
module procedure psb_c_linmap_sub module procedure psb_c_linmap_sub
end interface end interface psb_linmap_sub
interface psb_move_alloc interface psb_move_alloc
module procedure psb_clinmap_transfer module procedure psb_clinmap_transfer
end interface end interface psb_move_alloc
interface psb_linmap interface psb_linmap
function psb_c_linmap(map_kind,desc_X, desc_Y, map_X2Y, map_Y2X,iaggr,naggr) function psb_c_linmap(map_kind,desc_X, desc_Y, map_X2Y, map_Y2X,iaggr,naggr)
@ -126,7 +126,7 @@ module psb_c_linmap_mod
integer(psb_ipk_), intent(in) :: map_kind integer(psb_ipk_), intent(in) :: map_kind
integer(psb_ipk_), intent(in), optional :: iaggr(:), naggr(:) integer(psb_ipk_), intent(in), optional :: iaggr(:), naggr(:)
end function psb_c_linmap end function psb_c_linmap
end interface end interface psb_linmap
private :: c_map_sizeof, c_is_asb, c_free private :: c_map_sizeof, c_is_asb, c_free

@ -132,8 +132,6 @@ module psb_d_linmap_mod
contains contains
function d_map_sizeof(map) result(val) function d_map_sizeof(map) result(val)

@ -890,7 +890,7 @@ contains
Do j=0,n_elem_recv-1 Do j=0,n_elem_recv-1
idx = idxlist(incnt+psb_elem_recv_+j) idx = idxlist(incnt+psb_elem_recv_+j)
call psb_ensure_size((outcnt+3),tmp,info,pad=-1) call psb_ensure_size((outcnt+3),tmp,info,pad=-ione)
if (info /= psb_success_) then if (info /= psb_success_) then
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='psb_ensure_size') call psb_errpush(info,name,a_err='psb_ensure_size')

@ -2,7 +2,7 @@
subroutine psb_errcomm(ictxt, err) subroutine psb_errcomm(ictxt, err)
use psb_error_mod, psb_protect_name => psb_errcomm use psb_error_mod, psb_protect_name => psb_errcomm
use psb_penv_mod use psb_penv_mod
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout):: err integer(psb_ipk_), intent(inout):: err
integer(psb_ipk_) :: temp(2) integer(psb_ipk_) :: temp(2)
@ -53,12 +53,12 @@ subroutine psb_perror(ictxt)
use psb_error_mod use psb_error_mod
use psb_penv_mod use psb_penv_mod
implicit none implicit none
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_) :: err_c integer(psb_ipk_) :: err_c
character(len=20) :: r_name character(len=20) :: r_name
character(len=40) :: a_e_d character(len=40) :: a_e_d
integer(psb_ipk_) :: i_e_d(5) integer(psb_ipk_) :: i_e_d(5)
integer(psb_ipk_) :: iam, np integer(psb_mpik_) :: iam, np
call psb_info(ictxt,iam,np) call psb_info(ictxt,iam,np)

@ -60,19 +60,28 @@ module psb_error_mod
subroutine psb_serror() subroutine psb_serror()
end subroutine psb_serror end subroutine psb_serror
subroutine psb_perror(ictxt) subroutine psb_perror(ictxt)
import :: psb_ipk_ import :: psb_mpik_
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
end subroutine psb_perror end subroutine psb_perror
end interface end interface
interface interface
subroutine psb_errcomm(ictxt, err) subroutine psb_errcomm(ictxt, err)
import :: psb_ipk_ import :: psb_mpik_, psb_ipk_
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout):: err integer(psb_ipk_), intent(inout):: err
end subroutine psb_errcomm end subroutine psb_errcomm
end interface end interface
#if defined(LONG_INTEGERS)
interface psb_error
module procedure psb_perror_ipk
end interface psb_error
interface psb_errcomm
module procedure psb_errcomm_ipk
end interface psb_errcomm
#endif
private private
@ -112,7 +121,22 @@ module psb_error_mod
contains contains
#if defined(LONG_INTEGERS)
subroutine psb_errcomm_ipk(ictxt, err)
integer(psb_ipk_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout):: err
integer(psb_mpik_) :: iictxt
iictxt = ictxt
call psb_errcomm(iictxt,err)
end subroutine psb_errcomm_ipk
subroutine psb_perror_ipk(ictxt)
integer(psb_ipk_), intent(in) :: ictxt
integer(psb_mpik_) :: iictxt
iictxt = ictxt
call psb_perror(iictxt)
end subroutine psb_perror_ipk
#endif
! saves action to support error traceback ! saves action to support error traceback
! also changes error action to "return" ! also changes error action to "return"
subroutine psb_erractionsave(err_act) subroutine psb_erractionsave(err_act)
@ -330,7 +354,7 @@ contains
character(len=20), intent(in) :: r_name character(len=20), intent(in) :: r_name
character(len=40), intent(in) :: a_e_d character(len=40), intent(in) :: a_e_d
integer(psb_ipk_), intent(in) :: i_e_d(5) integer(psb_ipk_), intent(in) :: i_e_d(5)
integer(psb_ipk_), optional :: me integer(psb_mpik_), optional :: me
if(present(me)) then if(present(me)) then
write(psb_err_unit,& write(psb_err_unit,&

@ -89,6 +89,7 @@ module psb_gen_block_map_mod
& block_g2lv2, block_g2ls1_ins, block_g2ls2_ins,& & block_g2lv2, block_g2ls1_ins, block_g2ls2_ins,&
& block_g2lv1_ins, block_g2lv2_ins, block_clone & block_g2lv1_ins, block_g2lv2_ins, block_clone
integer(psb_ipk_), private :: laddsz=500
contains contains
@ -284,7 +285,7 @@ contains
logical, intent(in), optional :: mask(:) logical, intent(in), optional :: mask(:)
logical, intent(in), optional :: owned logical, intent(in), optional :: owned
integer(psb_ipk_) :: i, nv, is integer(psb_ipk_) :: i, nv, is
integer(psb_ipk_) :: ictxt, iam, np integer(psb_mpik_) :: ictxt, iam, np
logical :: owned_ logical :: owned_
info = 0 info = 0
@ -476,7 +477,7 @@ contains
ix = psb_issrch(idx(i),nv,idxmap%loc_to_glob) ix = psb_issrch(idx(i),nv,idxmap%loc_to_glob)
if (ix < 0) then if (ix < 0) then
ix = idxmap%local_cols + 1 ix = idxmap%local_cols + 1
call psb_ensure_size(ix,idxmap%loc_to_glob,info,addsz=500) call psb_ensure_size(ix,idxmap%loc_to_glob,info,addsz=laddsz)
if (info /= 0) then if (info /= 0) then
info = -4 info = -4
return return
@ -505,7 +506,7 @@ contains
ix = psb_issrch(idx(i),nv,idxmap%loc_to_glob) ix = psb_issrch(idx(i),nv,idxmap%loc_to_glob)
if (ix < 0) then if (ix < 0) then
ix = idxmap%local_cols + 1 ix = idxmap%local_cols + 1
call psb_ensure_size(ix,idxmap%loc_to_glob,info,addsz=500) call psb_ensure_size(ix,idxmap%loc_to_glob,info,addsz=laddsz)
if (info /= 0) then if (info /= 0) then
info = -4 info = -4
return return
@ -582,10 +583,12 @@ contains
use psb_error_mod use psb_error_mod
implicit none implicit none
class(psb_gen_block_map), intent(inout) :: idxmap class(psb_gen_block_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: ictxt, nl integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: nl
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
! To be implemented ! To be implemented
integer(psb_ipk_) :: iam, np, i, ntot integer(psb_mpik_) :: iam, np
integer(psb_ipk_) :: i, ntot
integer(psb_ipk_), allocatable :: vnl(:) integer(psb_ipk_), allocatable :: vnl(:)
info = 0 info = 0
@ -644,7 +647,8 @@ contains
class(psb_gen_block_map), intent(inout) :: idxmap class(psb_gen_block_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: nhal, ictxt, iam, np integer(psb_ipk_) :: nhal
integer(psb_mpik_) :: ictxt, iam, np
info = 0 info = 0
ictxt = idxmap%get_ctxt() ictxt = idxmap%get_ctxt()

@ -96,10 +96,12 @@ contains
use psb_error_mod use psb_error_mod
implicit none implicit none
class(psb_glist_map), intent(inout) :: idxmap class(psb_glist_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: ictxt, vg(:) integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vg(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
! To be implemented ! To be implemented
integer(psb_ipk_) :: iam, np, i, n, nl integer(psb_mpik_) :: iam, np
integer(psb_ipk_) :: i, n, nl
info = 0 info = 0
@ -155,7 +157,8 @@ contains
integer(psb_ipk_), allocatable, intent(out) :: iprc(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
class(psb_glist_map), intent(in) :: idxmap class(psb_glist_map), intent(in) :: idxmap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: ictxt, iam, np, nv, i, ngp integer(psb_mpik_) :: ictxt, iam, np
integer(psb_ipk_) :: nv, i, ngp
ictxt = idxmap%get_ctxt() ictxt = idxmap%get_ctxt()
call psb_info(ictxt,iam,np) call psb_info(ictxt,iam,np)

@ -64,7 +64,7 @@ module psb_hash_map_mod
integer(psb_ipk_), allocatable :: hashv(:), glb_lc(:,:), loc_to_glob(:) integer(psb_ipk_), allocatable :: hashv(:), glb_lc(:,:), loc_to_glob(:)
type(psb_hash_type), allocatable :: hash type(psb_hash_type), allocatable :: hash
contains contains
procedure, pass(idxmap) :: init_vl => hash_init_vl procedure, pass(idxmap) :: init_vl => hash_init_vl
procedure, pass(idxmap) :: hash_map_init => hash_init_vg procedure, pass(idxmap) :: hash_map_init => hash_init_vg
@ -94,9 +94,9 @@ contains
procedure, pass(idxmap) :: bld_g2l_map => hash_bld_g2l_map procedure, pass(idxmap) :: bld_g2l_map => hash_bld_g2l_map
end type psb_hash_map end type psb_hash_map
private :: hash_init_vl, hash_init_vg, hash_sizeof, hash_asb, & private :: hash_init_vl, hash_init_vg, hash_sizeof, hash_asb, &
& hash_free, hash_get_fmt, hash_l2gs1, hash_l2gs2, & & hash_free, hash_get_fmt, hash_l2gs1, hash_l2gs2, &
& hash_l2gv1, hash_l2gv2, hash_g2ls1, hash_g2ls2, & & hash_l2gv1, hash_l2gv2, hash_g2ls1, hash_g2ls2, &
& hash_g2lv1, hash_g2lv2, hash_g2ls1_ins, hash_g2ls2_ins, & & hash_g2lv1, hash_g2lv2, hash_g2ls1_ins, hash_g2ls2_ins, &
@ -104,22 +104,24 @@ private :: hash_init_vl, hash_init_vg, hash_sizeof, hash_asb, &
& hash_bld_g2l_map, hash_inner_cnvs1, hash_inner_cnvs2,& & hash_bld_g2l_map, hash_inner_cnvs1, hash_inner_cnvs2,&
& hash_inner_cnv1, hash_inner_cnv2, hash_row_extendable & hash_inner_cnv1, hash_inner_cnv2, hash_row_extendable
integer(psb_ipk_), private :: laddsz=500
interface hash_inner_cnv interface hash_inner_cnv
module procedure hash_inner_cnvs1, hash_inner_cnvs2,& module procedure hash_inner_cnvs1, hash_inner_cnvs2,&
& hash_inner_cnv1, hash_inner_cnv2 & hash_inner_cnv1, hash_inner_cnv2
end interface hash_inner_cnv end interface hash_inner_cnv
private :: hash_inner_cnv private :: hash_inner_cnv
contains contains
function hash_row_extendable() result(val) function hash_row_extendable() result(val)
implicit none implicit none
logical :: val logical :: val
val = .true. val = .true.
end function hash_row_extendable end function hash_row_extendable
function hash_sizeof(idxmap) result(val) function hash_sizeof(idxmap) result(val)
implicit none implicit none
class(psb_hash_map), intent(in) :: idxmap class(psb_hash_map), intent(in) :: idxmap
integer(psb_long_int_k_) :: val integer(psb_long_int_k_) :: val
@ -133,10 +135,10 @@ function hash_sizeof(idxmap) result(val)
if (allocated(idxmap%hash)) & if (allocated(idxmap%hash)) &
& val = val + psb_sizeof(idxmap%hash) & val = val + psb_sizeof(idxmap%hash)
end function hash_sizeof end function hash_sizeof
subroutine hash_free(idxmap) subroutine hash_free(idxmap)
implicit none implicit none
class(psb_hash_map), intent(inout) :: idxmap class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_) :: info integer(psb_ipk_) :: info
@ -153,10 +155,10 @@ subroutine hash_free(idxmap)
call idxmap%psb_indx_map%free() call idxmap%psb_indx_map%free()
end subroutine hash_free end subroutine hash_free
subroutine hash_l2gs1(idx,idxmap,info,mask,owned) subroutine hash_l2gs1(idx,idxmap,info,mask,owned)
implicit none implicit none
class(psb_hash_map), intent(in) :: idxmap class(psb_hash_map), intent(in) :: idxmap
integer(psb_ipk_), intent(inout) :: idx integer(psb_ipk_), intent(inout) :: idx
@ -173,9 +175,9 @@ subroutine hash_l2gs1(idx,idxmap,info,mask,owned)
call idxmap%l2g(idxv,info,owned=owned) call idxmap%l2g(idxv,info,owned=owned)
idx = idxv(1) idx = idxv(1)
end subroutine hash_l2gs1 end subroutine hash_l2gs1
subroutine hash_l2gs2(idxin,idxout,idxmap,info,mask,owned) subroutine hash_l2gs2(idxin,idxout,idxmap,info,mask,owned)
implicit none implicit none
class(psb_hash_map), intent(in) :: idxmap class(psb_hash_map), intent(in) :: idxmap
integer(psb_ipk_), intent(in) :: idxin integer(psb_ipk_), intent(in) :: idxin
@ -187,10 +189,10 @@ subroutine hash_l2gs2(idxin,idxout,idxmap,info,mask,owned)
idxout = idxin idxout = idxin
call idxmap%l2g(idxout,info,mask,owned) call idxmap%l2g(idxout,info,mask,owned)
end subroutine hash_l2gs2 end subroutine hash_l2gs2
subroutine hash_l2gv1(idx,idxmap,info,mask,owned) subroutine hash_l2gv1(idx,idxmap,info,mask,owned)
implicit none implicit none
class(psb_hash_map), intent(in) :: idxmap class(psb_hash_map), intent(in) :: idxmap
integer(psb_ipk_), intent(inout) :: idx(:) integer(psb_ipk_), intent(inout) :: idx(:)
@ -243,9 +245,9 @@ subroutine hash_l2gv1(idx,idxmap,info,mask,owned)
end if end if
end subroutine hash_l2gv1 end subroutine hash_l2gv1
subroutine hash_l2gv2(idxin,idxout,idxmap,info,mask,owned) subroutine hash_l2gv2(idxin,idxout,idxmap,info,mask,owned)
implicit none implicit none
class(psb_hash_map), intent(in) :: idxmap class(psb_hash_map), intent(in) :: idxmap
integer(psb_ipk_), intent(in) :: idxin(:) integer(psb_ipk_), intent(in) :: idxin(:)
@ -264,10 +266,10 @@ subroutine hash_l2gv2(idxin,idxout,idxmap,info,mask,owned)
info = -3 info = -3
end if end if
end subroutine hash_l2gv2 end subroutine hash_l2gv2
subroutine hash_g2ls1(idx,idxmap,info,mask,owned) subroutine hash_g2ls1(idx,idxmap,info,mask,owned)
implicit none implicit none
class(psb_hash_map), intent(in) :: idxmap class(psb_hash_map), intent(in) :: idxmap
integer(psb_ipk_), intent(inout) :: idx integer(psb_ipk_), intent(inout) :: idx
@ -285,9 +287,9 @@ subroutine hash_g2ls1(idx,idxmap,info,mask,owned)
call idxmap%g2l(idxv,info,owned=owned) call idxmap%g2l(idxv,info,owned=owned)
idx = idxv(1) idx = idxv(1)
end subroutine hash_g2ls1 end subroutine hash_g2ls1
subroutine hash_g2ls2(idxin,idxout,idxmap,info,mask,owned) subroutine hash_g2ls2(idxin,idxout,idxmap,info,mask,owned)
implicit none implicit none
class(psb_hash_map), intent(in) :: idxmap class(psb_hash_map), intent(in) :: idxmap
integer(psb_ipk_), intent(in) :: idxin integer(psb_ipk_), intent(in) :: idxin
@ -299,10 +301,10 @@ subroutine hash_g2ls2(idxin,idxout,idxmap,info,mask,owned)
idxout = idxin idxout = idxin
call idxmap%g2l(idxout,info,mask,owned) call idxmap%g2l(idxout,info,mask,owned)
end subroutine hash_g2ls2 end subroutine hash_g2ls2
subroutine hash_g2lv1(idx,idxmap,info,mask,owned) subroutine hash_g2lv1(idx,idxmap,info,mask,owned)
use psb_penv_mod use psb_penv_mod
use psb_sort_mod use psb_sort_mod
implicit none implicit none
@ -312,7 +314,7 @@ subroutine hash_g2lv1(idx,idxmap,info,mask,owned)
logical, intent(in), optional :: mask(:) logical, intent(in), optional :: mask(:)
logical, intent(in), optional :: owned logical, intent(in), optional :: owned
integer(psb_ipk_) :: i, is, mglob, ip, lip, nrow, ncol, nrm integer(psb_ipk_) :: i, is, mglob, ip, lip, nrow, ncol, nrm
integer(psb_ipk_) :: ictxt, iam, np integer(psb_mpik_) :: ictxt, iam, np
logical :: owned_ logical :: owned_
info = 0 info = 0
@ -416,9 +418,9 @@ subroutine hash_g2lv1(idx,idxmap,info,mask,owned)
end if end if
end subroutine hash_g2lv1 end subroutine hash_g2lv1
subroutine hash_g2lv2(idxin,idxout,idxmap,info,mask,owned) subroutine hash_g2lv2(idxin,idxout,idxmap,info,mask,owned)
implicit none implicit none
class(psb_hash_map), intent(in) :: idxmap class(psb_hash_map), intent(in) :: idxmap
integer(psb_ipk_), intent(in) :: idxin(:) integer(psb_ipk_), intent(in) :: idxin(:)
@ -438,11 +440,11 @@ subroutine hash_g2lv2(idxin,idxout,idxmap,info,mask,owned)
info = -3 info = -3
end if end if
end subroutine hash_g2lv2 end subroutine hash_g2lv2
subroutine hash_g2ls1_ins(idx,idxmap,info,mask) subroutine hash_g2ls1_ins(idx,idxmap,info,mask)
use psb_realloc_mod use psb_realloc_mod
use psb_sort_mod use psb_sort_mod
implicit none implicit none
@ -461,9 +463,9 @@ subroutine hash_g2ls1_ins(idx,idxmap,info,mask)
call idxmap%g2l_ins(idxv,info) call idxmap%g2l_ins(idxv,info)
idx = idxv(1) idx = idxv(1)
end subroutine hash_g2ls1_ins end subroutine hash_g2ls1_ins
subroutine hash_g2ls2_ins(idxin,idxout,idxmap,info,mask) subroutine hash_g2ls2_ins(idxin,idxout,idxmap,info,mask)
implicit none implicit none
class(psb_hash_map), intent(inout) :: idxmap class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: idxin integer(psb_ipk_), intent(in) :: idxin
@ -474,10 +476,10 @@ subroutine hash_g2ls2_ins(idxin,idxout,idxmap,info,mask)
idxout = idxin idxout = idxin
call idxmap%g2l_ins(idxout,info,mask=mask) call idxmap%g2l_ins(idxout,info,mask=mask)
end subroutine hash_g2ls2_ins end subroutine hash_g2ls2_ins
subroutine hash_g2lv1_ins(idx,idxmap,info,mask) subroutine hash_g2lv1_ins(idx,idxmap,info,mask)
use psb_error_mod use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
use psb_sort_mod use psb_sort_mod
@ -488,7 +490,8 @@ subroutine hash_g2lv1_ins(idx,idxmap,info,mask)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
logical, intent(in), optional :: mask(:) logical, intent(in), optional :: mask(:)
integer(psb_ipk_) :: i, is, mglob, ip, lip, nrow, ncol, & integer(psb_ipk_) :: i, is, mglob, ip, lip, nrow, ncol, &
& nxt, err_act, ictxt, me, np & nxt, err_act
integer(psb_mpik_) :: ictxt, me, np
character(len=20) :: name,ch_err character(len=20) :: name,ch_err
info = psb_success_ info = psb_success_
@ -529,12 +532,12 @@ subroutine hash_g2lv1_ins(idx,idxmap,info,mask)
if (info >=0) then if (info >=0) then
if (nxt == lip) then if (nxt == lip) then
ncol = nxt ncol = nxt
call psb_ensure_size(ncol,idxmap%loc_to_glob,info,pad=-1,addsz=200) call psb_ensure_size(ncol,idxmap%loc_to_glob,info,pad=-ione,addsz=laddsz)
if (info /= psb_success_) then if (info /= psb_success_) then
info=1 info=1
ch_err='psb_ensure_size' ch_err='psb_ensure_size'
call psb_errpush(psb_err_from_subroutine_ai_,name,& call psb_errpush(psb_err_from_subroutine_ai_,name,&
&a_err=ch_err,i_err=(/info,0,0,0,0/)) &a_err=ch_err,i_err=(/info,izero,izero,izero,izero/))
goto 9999 goto 9999
end if end if
idxmap%loc_to_glob(nxt) = ip idxmap%loc_to_glob(nxt) = ip
@ -544,7 +547,7 @@ subroutine hash_g2lv1_ins(idx,idxmap,info,mask)
else else
ch_err='SearchInsKeyVal' ch_err='SearchInsKeyVal'
call psb_errpush(psb_err_from_subroutine_ai_,name,& call psb_errpush(psb_err_from_subroutine_ai_,name,&
& a_err=ch_err,i_err=(/info,0,0,0,0/)) & a_err=ch_err,i_err=(/info,izero,izero,izero,izero/))
goto 9999 goto 9999
end if end if
idx(i) = lip idx(i) = lip
@ -570,12 +573,12 @@ subroutine hash_g2lv1_ins(idx,idxmap,info,mask)
if (info >=0) then if (info >=0) then
if (nxt == lip) then if (nxt == lip) then
ncol = nxt ncol = nxt
call psb_ensure_size(ncol,idxmap%loc_to_glob,info,pad=-1,addsz=200) call psb_ensure_size(ncol,idxmap%loc_to_glob,info,pad=-ione,addsz=laddsz)
if (info /= psb_success_) then if (info /= psb_success_) then
info=1 info=1
ch_err='psb_ensure_size' ch_err='psb_ensure_size'
call psb_errpush(psb_err_from_subroutine_ai_,name,& call psb_errpush(psb_err_from_subroutine_ai_,name,&
&a_err=ch_err,i_err=(/info,0,0,0,0/)) &a_err=ch_err,i_err=(/info,izero,izero,izero,izero/))
goto 9999 goto 9999
end if end if
idxmap%loc_to_glob(nxt) = ip idxmap%loc_to_glob(nxt) = ip
@ -585,7 +588,7 @@ subroutine hash_g2lv1_ins(idx,idxmap,info,mask)
else else
ch_err='SearchInsKeyVal' ch_err='SearchInsKeyVal'
call psb_errpush(psb_err_from_subroutine_ai_,name,& call psb_errpush(psb_err_from_subroutine_ai_,name,&
& a_err=ch_err,i_err=(/info,0,0,0,0/)) & a_err=ch_err,i_err=(/info,izero,izero,izero,izero/))
goto 9999 goto 9999
end if end if
idx(i) = lip idx(i) = lip
@ -613,9 +616,9 @@ subroutine hash_g2lv1_ins(idx,idxmap,info,mask)
end if end if
return return
end subroutine hash_g2lv1_ins end subroutine hash_g2lv1_ins
subroutine hash_g2lv2_ins(idxin,idxout,idxmap,info,mask) subroutine hash_g2lv2_ins(idxin,idxout,idxmap,info,mask)
implicit none implicit none
class(psb_hash_map), intent(inout) :: idxmap class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: idxin(:) integer(psb_ipk_), intent(in) :: idxin(:)
@ -633,19 +636,21 @@ subroutine hash_g2lv2_ins(idxin,idxout,idxmap,info,mask)
info = -3 info = -3
end if end if
end subroutine hash_g2lv2_ins end subroutine hash_g2lv2_ins
subroutine hash_init_vl(idxmap,ictxt,vl,info) subroutine hash_init_vl(idxmap,ictxt,vl,info)
use psb_penv_mod use psb_penv_mod
use psb_error_mod use psb_error_mod
use psb_sort_mod use psb_sort_mod
use psb_realloc_mod use psb_realloc_mod
implicit none implicit none
class(psb_hash_map), intent(inout) :: idxmap class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: ictxt, vl(:) integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vl(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
! To be implemented ! To be implemented
integer(psb_ipk_) :: iam, np, i, nlu, nl, m, nrt,int_err(5) integer(psb_mpik_) :: iam, np
integer(psb_ipk_) :: i, nlu, nl, m, nrt,int_err(5)
integer(psb_ipk_), allocatable :: vlu(:) integer(psb_ipk_), allocatable :: vlu(:)
character(len=20), parameter :: name='hash_map_init_vl' character(len=20), parameter :: name='hash_map_init_vl'
@ -699,17 +704,19 @@ subroutine hash_init_vl(idxmap,ictxt,vl,info)
call hash_init_vlu(idxmap,ictxt,m,nlu,vlu,info) call hash_init_vlu(idxmap,ictxt,m,nlu,vlu,info)
end subroutine hash_init_vl end subroutine hash_init_vl
subroutine hash_init_vg(idxmap,ictxt,vg,info) subroutine hash_init_vg(idxmap,ictxt,vg,info)
use psb_penv_mod use psb_penv_mod
use psb_error_mod use psb_error_mod
implicit none implicit none
class(psb_hash_map), intent(inout) :: idxmap class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: ictxt, vg(:) integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vg(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
! To be implemented ! To be implemented
integer(psb_ipk_) :: iam, np, i, j, nl, n, int_err(5) integer(psb_mpik_) :: iam, np
integer(psb_ipk_) :: i, j, nl, n, int_err(5)
integer(psb_ipk_), allocatable :: vlu(:) integer(psb_ipk_), allocatable :: vlu(:)
info = 0 info = 0
@ -751,20 +758,22 @@ subroutine hash_init_vg(idxmap,ictxt,vg,info)
call hash_init_vlu(idxmap,ictxt,n,nl,vlu,info) call hash_init_vlu(idxmap,ictxt,n,nl,vlu,info)
end subroutine hash_init_vg end subroutine hash_init_vg
subroutine hash_init_vlu(idxmap,ictxt,ntot,nl,vlu,info) subroutine hash_init_vlu(idxmap,ictxt,ntot,nl,vlu,info)
use psb_penv_mod use psb_penv_mod
use psb_error_mod use psb_error_mod
use psb_sort_mod use psb_sort_mod
use psb_realloc_mod use psb_realloc_mod
implicit none implicit none
class(psb_hash_map), intent(inout) :: idxmap class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: ictxt, vlu(:), nl, ntot integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vlu(:), nl, ntot
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
! To be implemented ! To be implemented
integer(psb_ipk_) :: iam, np, i, j, lc2, nlu, m, nrt,int_err(5) integer(psb_mpik_) :: iam, np
integer(psb_ipk_) :: i, j, lc2, nlu, m, nrt,int_err(5)
character(len=20), parameter :: name='hash_map_init_vlu' character(len=20), parameter :: name='hash_map_init_vlu'
info = 0 info = 0
@ -804,11 +813,11 @@ subroutine hash_init_vlu(idxmap,ictxt,ntot,nl,vlu,info)
call hash_bld_g2l_map(idxmap,info) call hash_bld_g2l_map(idxmap,info)
call idxmap%set_state(psb_desc_bld_) call idxmap%set_state(psb_desc_bld_)
end subroutine hash_init_vlu end subroutine hash_init_vlu
subroutine hash_bld_g2l_map(idxmap,info) subroutine hash_bld_g2l_map(idxmap,info)
use psb_penv_mod use psb_penv_mod
use psb_error_mod use psb_error_mod
use psb_sort_mod use psb_sort_mod
@ -817,7 +826,8 @@ subroutine hash_bld_g2l_map(idxmap,info)
class(psb_hash_map), intent(inout) :: idxmap class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
! To be implemented ! To be implemented
integer(psb_ipk_) :: ictxt, iam, np, i, j, m, nl integer(psb_mpik_) :: ictxt, iam, np
integer(psb_ipk_) :: i, j, m, nl
integer(psb_ipk_) :: key, ih, nh, idx, nbits, hsize, hmask integer(psb_ipk_) :: key, ih, nh, idx, nbits, hsize, hmask
character(len=20), parameter :: name='hash_map_init_vlu' character(len=20), parameter :: name='hash_map_init_vlu'
@ -857,7 +867,7 @@ subroutine hash_bld_g2l_map(idxmap,info)
idxmap%hashvmask = hmask idxmap%hashvmask = hmask
if (info == psb_success_) & if (info == psb_success_) &
& call psb_realloc(hsize+1,idxmap%hashv,info,lb=0) & call psb_realloc(hsize+1,idxmap%hashv,info,lb=0_psb_ipk_)
if (info /= psb_success_) then if (info /= psb_success_) then
! !$ ch_err='psb_realloc' ! !$ ch_err='psb_realloc'
! !$ call psb_errpush(info,name,a_err=ch_err) ! !$ call psb_errpush(info,name,a_err=ch_err)
@ -907,10 +917,10 @@ subroutine hash_bld_g2l_map(idxmap,info)
end if end if
end do end do
end subroutine hash_bld_g2l_map end subroutine hash_bld_g2l_map
subroutine hash_asb(idxmap,info) subroutine hash_asb(idxmap,info)
use psb_penv_mod use psb_penv_mod
use psb_error_mod use psb_error_mod
use psb_realloc_mod use psb_realloc_mod
@ -919,7 +929,8 @@ subroutine hash_asb(idxmap,info)
class(psb_hash_map), intent(inout) :: idxmap class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: nhal, ictxt, iam, np integer(psb_mpik_) :: ictxt, iam, np
integer(psb_ipk_) :: nhal
info = 0 info = 0
ictxt = idxmap%get_ctxt() ictxt = idxmap%get_ctxt()
@ -942,16 +953,16 @@ subroutine hash_asb(idxmap,info)
call idxmap%set_state(psb_desc_asb_) call idxmap%set_state(psb_desc_asb_)
end subroutine hash_asb end subroutine hash_asb
function hash_get_fmt() result(res) function hash_get_fmt() result(res)
implicit none implicit none
character(len=5) :: res character(len=5) :: res
res = 'HASH' res = 'HASH'
end function hash_get_fmt end function hash_get_fmt
subroutine hash_inner_cnvs1(x,hashmask,hashv,glb_lc,nrm) subroutine hash_inner_cnvs1(x,hashmask,hashv,glb_lc,nrm)
integer(psb_ipk_), intent(in) :: hashmask,hashv(0:),glb_lc(:,:) integer(psb_ipk_), intent(in) :: hashmask,hashv(0:),glb_lc(:,:)
integer(psb_ipk_), intent(inout) :: x integer(psb_ipk_), intent(inout) :: x
@ -996,9 +1007,9 @@ subroutine hash_inner_cnvs1(x,hashmask,hashv,glb_lc,nrm)
else else
x = tmp x = tmp
end if end if
end subroutine hash_inner_cnvs1 end subroutine hash_inner_cnvs1
subroutine hash_inner_cnvs2(x,y,hashmask,hashv,glb_lc,nrm) subroutine hash_inner_cnvs2(x,y,hashmask,hashv,glb_lc,nrm)
integer(psb_ipk_), intent(in) :: hashmask,hashv(0:),glb_lc(:,:) integer(psb_ipk_), intent(in) :: hashmask,hashv(0:),glb_lc(:,:)
integer(psb_ipk_), intent(in) :: x integer(psb_ipk_), intent(in) :: x
integer(psb_ipk_), intent(out) :: y integer(psb_ipk_), intent(out) :: y
@ -1043,10 +1054,10 @@ subroutine hash_inner_cnvs2(x,y,hashmask,hashv,glb_lc,nrm)
else else
y = tmp y = tmp
end if end if
end subroutine hash_inner_cnvs2 end subroutine hash_inner_cnvs2
subroutine hash_inner_cnv1(n,x,hashmask,hashv,glb_lc,mask,nrm) subroutine hash_inner_cnv1(n,x,hashmask,hashv,glb_lc,mask,nrm)
integer(psb_ipk_), intent(in) :: n,hashmask,hashv(0:),glb_lc(:,:) integer(psb_ipk_), intent(in) :: n,hashmask,hashv(0:),glb_lc(:,:)
logical, intent(in), optional :: mask(:) logical, intent(in), optional :: mask(:)
integer(psb_ipk_), intent(in), optional :: nrm integer(psb_ipk_), intent(in), optional :: nrm
@ -1135,9 +1146,9 @@ subroutine hash_inner_cnv1(n,x,hashmask,hashv,glb_lc,mask,nrm)
end if end if
end do end do
end if end if
end subroutine hash_inner_cnv1 end subroutine hash_inner_cnv1
subroutine hash_inner_cnv2(n,x,y,hashmask,hashv,glb_lc,mask,nrm) subroutine hash_inner_cnv2(n,x,y,hashmask,hashv,glb_lc,mask,nrm)
integer(psb_ipk_), intent(in) :: n, hashmask,hashv(0:),glb_lc(:,:) integer(psb_ipk_), intent(in) :: n, hashmask,hashv(0:),glb_lc(:,:)
logical, intent(in), optional :: mask(:) logical, intent(in), optional :: mask(:)
integer(psb_ipk_), intent(in), optional :: nrm integer(psb_ipk_), intent(in), optional :: nrm
@ -1235,7 +1246,7 @@ subroutine hash_inner_cnv2(n,x,y,hashmask,hashv,glb_lc,mask,nrm)
end if end if
end do end do
end if end if
end subroutine hash_inner_cnv2 end subroutine hash_inner_cnv2
subroutine hash_clone(idxmap,outmap,info) subroutine hash_clone(idxmap,outmap,info)

@ -130,6 +130,7 @@ contains
subroutine HashFree(hashin,info) subroutine HashFree(hashin,info)
use psb_realloc_mod use psb_realloc_mod
type(psb_hash_type) :: hashin type(psb_hash_type) :: hashin
integer(psb_ipk_) :: info
info = psb_success_ info = psb_success_
if (allocated(hashin%table)) then if (allocated(hashin%table)) then

@ -89,8 +89,8 @@ module psb_indx_map_mod
type :: psb_indx_map type :: psb_indx_map
integer(psb_ipk_) :: state = psb_desc_null_ integer(psb_ipk_) :: state = psb_desc_null_
integer(psb_ipk_) :: ictxt = -1 integer(psb_mpik_) :: ictxt = -1
integer(psb_ipk_) :: mpic = -1 integer(psb_mpik_) :: mpic = -1
integer(psb_ipk_) :: global_rows = -1 integer(psb_ipk_) :: global_rows = -1
integer(psb_ipk_) :: global_cols = -1 integer(psb_ipk_) :: global_cols = -1
integer(psb_ipk_) :: local_rows = -1 integer(psb_ipk_) :: local_rows = -1
@ -241,7 +241,7 @@ contains
function base_get_ctxt(idxmap) result(val) function base_get_ctxt(idxmap) result(val)
implicit none implicit none
class(psb_indx_map), intent(in) :: idxmap class(psb_indx_map), intent(in) :: idxmap
integer(psb_ipk_) :: val integer(psb_mpik_) :: val
val = idxmap%ictxt val = idxmap%ictxt
@ -251,7 +251,7 @@ contains
function base_get_mpic(idxmap) result(val) function base_get_mpic(idxmap) result(val)
implicit none implicit none
class(psb_indx_map), intent(in) :: idxmap class(psb_indx_map), intent(in) :: idxmap
integer(psb_ipk_) :: val integer(psb_mpik_) :: val
val = idxmap%mpic val = idxmap%mpic
@ -269,7 +269,7 @@ contains
subroutine base_set_ctxt(idxmap,val) subroutine base_set_ctxt(idxmap,val)
implicit none implicit none
class(psb_indx_map), intent(inout) :: idxmap class(psb_indx_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: val integer(psb_mpik_), intent(in) :: val
idxmap%ictxt = val idxmap%ictxt = val
end subroutine base_set_ctxt end subroutine base_set_ctxt
@ -309,7 +309,7 @@ contains
subroutine base_set_mpic(idxmap,val) subroutine base_set_mpic(idxmap,val)
implicit none implicit none
class(psb_indx_map), intent(inout) :: idxmap class(psb_indx_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: val integer(psb_mpik_), intent(in) :: val
idxmap%mpic = val idxmap%mpic = val
end subroutine base_set_mpic end subroutine base_set_mpic
@ -773,7 +773,8 @@ contains
use psb_error_mod use psb_error_mod
implicit none implicit none
class(psb_indx_map), intent(inout) :: idxmap class(psb_indx_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: ictxt, vl(:) integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vl(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: err_act integer(psb_ipk_) :: err_act
character(len=20) :: name='base_init_vl' character(len=20) :: name='base_init_vl'

@ -80,6 +80,8 @@ module psb_list_map_mod
& list_g2lv2, list_g2ls1_ins, list_g2ls2_ins,& & list_g2lv2, list_g2ls1_ins, list_g2ls2_ins,&
& list_g2lv1_ins, list_g2lv2_ins, list_row_extendable & list_g2lv1_ins, list_g2lv2_ins, list_row_extendable
integer(psb_ipk_), private :: laddsz=500
contains contains
function list_row_extendable() result(val) function list_row_extendable() result(val)
@ -417,7 +419,7 @@ contains
ix = idxmap%glob_to_loc(idx(i)) ix = idxmap%glob_to_loc(idx(i))
if (ix < 0) then if (ix < 0) then
ix = idxmap%local_cols + 1 ix = idxmap%local_cols + 1
call psb_ensure_size(ix,idxmap%loc_to_glob,info,addsz=500) call psb_ensure_size(ix,idxmap%loc_to_glob,info,addsz=laddsz)
if (info /= 0) then if (info /= 0) then
info = -4 info = -4
return return
@ -440,7 +442,7 @@ contains
ix = idxmap%glob_to_loc(idx(i)) ix = idxmap%glob_to_loc(idx(i))
if (ix < 0) then if (ix < 0) then
ix = idxmap%local_cols + 1 ix = idxmap%local_cols + 1
call psb_ensure_size(ix,idxmap%loc_to_glob,info,addsz=500) call psb_ensure_size(ix,idxmap%loc_to_glob,info,addsz=laddsz)
if (info /= 0) then if (info /= 0) then
info = -4 info = -4
return return
@ -544,10 +546,12 @@ contains
use psb_error_mod use psb_error_mod
implicit none implicit none
class(psb_list_map), intent(inout) :: idxmap class(psb_list_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: ictxt, vl(:) integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vl(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
! To be implemented ! To be implemented
integer(psb_ipk_) :: iam, np, i, ix, nl, n, nrt integer(psb_ipk_) :: i, ix, nl, n, nrt
integer(psb_mpik_) :: iam, np
info = 0 info = 0
call psb_info(ictxt,iam,np) call psb_info(ictxt,iam,np)
@ -610,7 +614,8 @@ contains
class(psb_list_map), intent(inout) :: idxmap class(psb_list_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: nhal, ictxt, iam, np integer(psb_ipk_) :: nhal
integer(psb_mpik_) :: ictxt, iam, np
info = 0 info = 0
ictxt = idxmap%get_ctxt() ictxt = idxmap%get_ctxt()

@ -459,7 +459,8 @@ contains
integer(psb_ipk_), allocatable, intent(out) :: iprc(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
class(psb_repl_map), intent(in) :: idxmap class(psb_repl_map), intent(in) :: idxmap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: ictxt, iam, np, nv integer(psb_ipk_) :: nv
integer(psb_mpik_) :: ictxt, iam, np
ictxt = idxmap%get_ctxt() ictxt = idxmap%get_ctxt()
call psb_info(ictxt,iam,np) call psb_info(ictxt,iam,np)
@ -480,10 +481,11 @@ contains
use psb_error_mod use psb_error_mod
implicit none implicit none
class(psb_repl_map), intent(inout) :: idxmap class(psb_repl_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: ictxt, nl integer(psb_ipk_), intent(in) :: nl
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
! To be implemented ! To be implemented
integer(psb_ipk_) :: iam, np integer(psb_mpik_) :: iam, np
info = 0 info = 0
call psb_info(ictxt,iam,np) call psb_info(ictxt,iam,np)
@ -513,7 +515,7 @@ contains
class(psb_repl_map), intent(inout) :: idxmap class(psb_repl_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: ictxt, iam, np integer(psb_mpik_) :: ictxt, iam, np
info = 0 info = 0
ictxt = idxmap%get_ctxt() ictxt = idxmap%get_ctxt()

@ -132,8 +132,6 @@ module psb_s_linmap_mod
contains contains
function s_map_sizeof(map) result(val) function s_map_sizeof(map) result(val)

@ -131,9 +131,6 @@ module psb_z_linmap_mod
private :: z_map_sizeof, z_is_asb, z_free private :: z_map_sizeof, z_is_asb, z_free
contains contains
function z_map_sizeof(map) result(val) function z_map_sizeof(map) result(val)

@ -29,11 +29,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout) :: dat integer(psb_ipk_), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -55,11 +55,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout) :: dat(:) integer(psb_ipk_), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
root_ = root root_ = root
@ -80,11 +80,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout) :: dat(:,:) integer(psb_ipk_), intent(inout) :: dat(:,:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -107,11 +107,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
real(psb_spk_), intent(inout) :: dat real(psb_spk_), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -134,11 +134,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
real(psb_spk_), intent(inout) :: dat(:) real(psb_spk_), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -161,11 +161,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
real(psb_spk_), intent(inout) :: dat(:,:) real(psb_spk_), intent(inout) :: dat(:,:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -189,11 +189,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
real(psb_dpk_), intent(inout) :: dat real(psb_dpk_), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -216,11 +216,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
real(psb_dpk_), intent(inout) :: dat(:) real(psb_dpk_), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -242,11 +242,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
real(psb_dpk_), intent(inout) :: dat(:,:) real(psb_dpk_), intent(inout) :: dat(:,:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -268,11 +268,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
complex(psb_spk_), intent(inout) :: dat complex(psb_spk_), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -294,11 +294,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
complex(psb_spk_), intent(inout) :: dat(:) complex(psb_spk_), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -320,11 +320,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
complex(psb_spk_), intent(inout) :: dat(:,:) complex(psb_spk_), intent(inout) :: dat(:,:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -346,11 +346,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
complex(psb_dpk_), intent(inout) :: dat complex(psb_dpk_), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -372,11 +372,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
complex(psb_dpk_), intent(inout) :: dat(:) complex(psb_dpk_), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -398,11 +398,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
complex(psb_dpk_), intent(inout) :: dat(:,:) complex(psb_dpk_), intent(inout) :: dat(:,:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_, info integer(psb_mpik_) :: iam, np, root_, info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -425,11 +425,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
character(len=*), intent(inout) :: dat character(len=*), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root,length integer(psb_mpik_), intent(in), optional :: root,length
integer(psb_ipk_) :: iam, np, root_,length_,info integer(psb_mpik_) :: iam, np, root_,length_,info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -458,11 +458,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
character(len=*), intent(inout) :: dat(:) character(len=*), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_,length_,info, size_ integer(psb_mpik_) :: iam, np, root_,length_,info, size_
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -488,11 +488,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
logical, intent(inout) :: dat logical, intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_,info integer(psb_mpik_) :: iam, np, root_,info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then
@ -516,11 +516,11 @@ contains
#ifdef MPI_H #ifdef MPI_H
include 'mpif.h' include 'mpif.h'
#endif #endif
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
logical, intent(inout) :: dat(:) logical, intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root integer(psb_mpik_), intent(in), optional :: root
integer(psb_ipk_) :: iam, np, root_,info integer(psb_mpik_) :: iam, np, root_,info
#if !defined(SERIAL_MPI) #if !defined(SERIAL_MPI)
if (present(root)) then if (present(root)) then

@ -30,7 +30,7 @@
!!$ !!$
!!$ !!$
module psi_i_mod module psi_i_mod
use psb_descriptor_type, only : psb_desc_type, psb_ipk_ use psb_descriptor_type, only : psb_desc_type, psb_ipk_, psb_mpik_
interface interface
subroutine psi_compute_size(desc_data,& subroutine psi_compute_size(desc_data,&
@ -100,9 +100,10 @@ module psi_i_mod
interface interface
subroutine psi_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& subroutine psi_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,&
& length_dl,np,dl_lda,mode,info) & length_dl,np,dl_lda,mode,info)
import :: psb_desc_type, psb_ipk_ import :: psb_desc_type, psb_ipk_, psb_mpik_
logical :: is_bld, is_upd logical :: is_bld, is_upd
integer(psb_ipk_) :: ictxt,np,dl_lda,mode, info integer(psb_mpik_) :: ictxt
integer(psb_ipk_) :: np,dl_lda,mode, info
integer(psb_ipk_) :: desc_str(*),dep_list(dl_lda,0:np),length_dl(0:np) integer(psb_ipk_) :: desc_str(*),dep_list(dl_lda,0:np),length_dl(0:np)
end subroutine psi_extract_dep_list end subroutine psi_extract_dep_list
end interface end interface

Loading…
Cancel
Save