Fixed problem with reallocation of crea_ovr_elem.

Fixed initialization to 0 of send indices in swap routines for the
case where we use mpi_alltoallv.
psblas3-type-indexed
Salvatore Filippone 18 years ago
parent db16063184
commit 228c703069

@ -46,8 +46,12 @@ subroutine psi_crea_ovr_elem(desc_overlap,ovr_elem)
external :: psi_exist_ovr_elem external :: psi_exist_ovr_elem
logical, parameter :: usetree=.true. logical, parameter :: usetree=.true.
dim_ovr_elem=size(ovr_elem) if (associated(ovr_elem)) then
dim_ovr_elem=size(ovr_elem)
else
dim_ovr_elem = 0
endif
i=1 i=1
pnt_new_elem=1 pnt_new_elem=1
if (usetree) call initpairsearchtree(pairtree,info) if (usetree) call initpairsearchtree(pairtree,info)
@ -75,9 +79,12 @@ subroutine psi_crea_ovr_elem(desc_overlap,ovr_elem)
! ...check if overflow element_d array...... ! ...check if overflow element_d array......
if (pnt_new_elem.gt.dim_ovr_elem) then if (pnt_new_elem.gt.dim_ovr_elem) then
dim_ovr_elem=(3*size(ovr_elem))/2+2 dim_ovr_elem=max(((3*size(ovr_elem))/2+2),pnt_new_elem+100)
write(0,*) 'calling realloc crea_ovr_elem',dim !!$ write(0,*) 'calling realloc crea_ovr_elem',dim
call psb_realloc(dim_ovr_elem,ovr_elem,info) call psb_realloc(dim_ovr_elem,ovr_elem,info)
if (info /= 0) then
write(0,*) 'Error in CREA_OVR_ELEM'
endif
endif endif
else else
! ....this point already exist in ovr_elem list ! ....this point already exist in ovr_elem list

@ -101,6 +101,8 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
! prepare info for communications ! prepare info for communications
proc_to_comm = d_idx(point_to_proc+psb_proc_id_) proc_to_comm = d_idx(point_to_proc+psb_proc_id_)
@ -553,6 +555,8 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
n=1 n=1
! prepare info for communications ! prepare info for communications

@ -102,7 +102,8 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
! prepare info for communications ! prepare info for communications
proc_to_comm = d_idx(point_to_proc+psb_proc_id_) proc_to_comm = d_idx(point_to_proc+psb_proc_id_)
do while (proc_to_comm /= -1) do while (proc_to_comm /= -1)
@ -557,6 +558,8 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
n=1 n=1
! prepare info for communications ! prepare info for communications

@ -101,6 +101,8 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
! prepare info for communications ! prepare info for communications
proc_to_comm = d_idx(point_to_proc+psb_proc_id_) proc_to_comm = d_idx(point_to_proc+psb_proc_id_)
@ -553,6 +555,8 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
n=1 n=1
! prepare info for communications ! prepare info for communications

@ -102,6 +102,8 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
! prepare info for communications ! prepare info for communications
proc_to_comm = d_idx(point_to_proc+psb_proc_id_) proc_to_comm = d_idx(point_to_proc+psb_proc_id_)

@ -101,6 +101,8 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
! prepare info for communications ! prepare info for communications
proc_to_comm = d_idx(point_to_proc+psb_proc_id_) proc_to_comm = d_idx(point_to_proc+psb_proc_id_)
@ -553,6 +555,8 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
n=1 n=1
! prepare info for communications ! prepare info for communications

@ -102,6 +102,8 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
! prepare info for communications ! prepare info for communications
proc_to_comm = d_idx(point_to_proc+psb_proc_id_) proc_to_comm = d_idx(point_to_proc+psb_proc_id_)
@ -557,6 +559,8 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data)
totxch = 0 totxch = 0
point_to_proc = 1 point_to_proc = 1
rvhd(:) = mpi_request_null rvhd(:) = mpi_request_null
sdsz(:) = 0
rvsz(:) = 0
n=1 n=1
! prepare info for communications ! prepare info for communications

Loading…
Cancel
Save