MESH: Make sure again the index nc is not out of the range.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This commit is contained in:
Grzegorz Kowal 2021-11-03 12:32:48 -03:00
parent 192d417431
commit 9ecbf83d5f

View File

@ -739,11 +739,8 @@ module mesh
nr = 1
nc = nc + 1
end if
if (nc <= nodes) then
flag = lb(nr,nc) == 0
else
flag = .false.
end if
flag = nc <= nodes
if (flag) flag = lb(nr,nc) == 0
do while(flag)
np = min(npmax, np + 1)
nr = nr + 1
@ -751,11 +748,8 @@ module mesh
nr = 1
nc = nc + 1
end if
if (nc <= nodes) then
flag = lb(nr,nc) == 0
else
flag = .false.
end if
flag = nc <= nodes
if (flag) flag = lb(nr,nc) == 0
end do
end if ! nl >= lb(nr,np)
@ -922,17 +916,18 @@ module mesh
#ifdef MPI
! local variables
!
integer :: status
integer(kind=4) :: np, nl, nc, nr
logical :: flag
integer :: status
integer(kind=4) :: np, nl, nc, nr
! local pointers
!
type(block_meta), pointer :: pmeta
type(block_data), pointer :: pdata
type(block_meta), pointer :: pmeta
type(block_data), pointer :: pdata
! tag for the MPI data exchange
!
integer(kind=4) :: itag
integer(kind=4) :: itag
! array for number of data block for autobalancing
!
@ -1073,13 +1068,17 @@ module mesh
nr = 1
nc = nc + 1
end if
do while(lb(nr,nc) == 0 .and. nc <= nodes)
flag = nc <= nodes
if (flag) flag = lb(nr,nc) == 0
do while(flag)
np = min(npmax, np + 1)
nr = nr + 1
if (nr > lprocs) then
nr = 1
nc = nc + 1
end if
flag = nc <= nodes
if (flag) flag = lb(nr,nc) == 0
end do
end if ! nl >= lb(nr,np)