From 9ecbf83d5fd22307452f71bf2f68e27e84c8ef83 Mon Sep 17 00:00:00 2001 From: Grzegorz Kowal Date: Wed, 3 Nov 2021 12:32:48 -0300 Subject: [PATCH] MESH: Make sure again the index nc is not out of the range. Signed-off-by: Grzegorz Kowal --- sources/mesh.F90 | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/sources/mesh.F90 b/sources/mesh.F90 index c6fe6da..09df371 100644 --- a/sources/mesh.F90 +++ b/sources/mesh.F90 @@ -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)