mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-20 04:42:08 +00:00
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.
This commit is contained in:
@@ -46,8 +46,12 @@ subroutine psi_crea_ovr_elem(desc_overlap,ovr_elem)
|
||||
external :: psi_exist_ovr_elem
|
||||
|
||||
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
|
||||
pnt_new_elem=1
|
||||
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......
|
||||
if (pnt_new_elem.gt.dim_ovr_elem) then
|
||||
dim_ovr_elem=(3*size(ovr_elem))/2+2
|
||||
write(0,*) 'calling realloc crea_ovr_elem',dim
|
||||
dim_ovr_elem=max(((3*size(ovr_elem))/2+2),pnt_new_elem+100)
|
||||
!!$ write(0,*) 'calling realloc crea_ovr_elem',dim
|
||||
call psb_realloc(dim_ovr_elem,ovr_elem,info)
|
||||
if (info /= 0) then
|
||||
write(0,*) 'Error in CREA_OVR_ELEM'
|
||||
endif
|
||||
endif
|
||||
else
|
||||
! ....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
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
|
||||
! prepare info for communications
|
||||
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
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
n=1
|
||||
|
||||
! prepare info for communications
|
||||
|
||||
@@ -102,7 +102,8 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data)
|
||||
totxch = 0
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
! prepare info for communications
|
||||
proc_to_comm = d_idx(point_to_proc+psb_proc_id_)
|
||||
do while (proc_to_comm /= -1)
|
||||
@@ -557,6 +558,8 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data)
|
||||
totxch = 0
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
n=1
|
||||
|
||||
! prepare info for communications
|
||||
|
||||
@@ -101,6 +101,8 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data)
|
||||
totxch = 0
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
|
||||
! prepare info for communications
|
||||
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
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
n=1
|
||||
|
||||
! prepare info for communications
|
||||
|
||||
@@ -102,6 +102,8 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data)
|
||||
totxch = 0
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
|
||||
! prepare info for communications
|
||||
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
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
|
||||
! prepare info for communications
|
||||
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
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
n=1
|
||||
|
||||
! prepare info for communications
|
||||
|
||||
@@ -102,6 +102,8 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data)
|
||||
totxch = 0
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
|
||||
! prepare info for communications
|
||||
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
|
||||
point_to_proc = 1
|
||||
rvhd(:) = mpi_request_null
|
||||
sdsz(:) = 0
|
||||
rvsz(:) = 0
|
||||
n=1
|
||||
|
||||
! prepare info for communications
|
||||
|
||||
Reference in New Issue
Block a user