BOUNDARIES: Rewrite boundary_fluxes().

Slighly change the shape of block fluxes. Also add status flag to this
subroutine.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This commit is contained in:
Grzegorz Kowal 2022-02-02 16:39:51 -03:00
parent b6c6221cfc
commit 4634081ca9
3 changed files with 666 additions and 938 deletions

View File

@ -1045,7 +1045,7 @@ module blocks
! !
allocate(pdata%uu(nvars,nx,ny,nz,nregs), pdata%du(nvars,nx,ny,nz), & allocate(pdata%uu(nvars,nx,ny,nz,nregs), pdata%du(nvars,nx,ny,nz), &
pdata%q(nvars,nx,ny,nz), & pdata%q(nvars,nx,ny,nz), &
pdata%fx(nflux,2,ny,nz), pdata%fy(nflux,nx,2,nz), & pdata%fx(nflux,ny,nz,2), pdata%fy(nflux,nx,nz,2), &
#if NDIMS == 3 #if NDIMS == 3
pdata%fz(nflux,nx,ny,2), & pdata%fz(nflux,nx,ny,2), &
#endif /* NDIMS == 3 */ #endif /* NDIMS == 3 */

File diff suppressed because it is too large Load Diff

View File

@ -1530,7 +1530,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) return
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -1625,7 +1627,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -1652,7 +1656,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -1752,7 +1758,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -1782,7 +1790,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -1811,7 +1821,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -1915,7 +1927,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -1944,7 +1958,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -1971,7 +1987,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2000,7 +2018,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2109,7 +2129,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2138,7 +2160,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2166,7 +2190,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2195,7 +2221,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2226,7 +2254,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2347,7 +2377,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2377,7 +2409,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2407,7 +2441,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2438,7 +2474,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2471,7 +2509,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2594,7 +2634,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2640,7 +2682,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2669,7 +2713,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2806,7 +2852,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -2839,7 +2887,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -3038,7 +3088,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -3083,7 +3135,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -3308,7 +3362,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -3349,7 +3405,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -3400,7 +3458,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -3593,7 +3653,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
end if end if
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
@ -3627,7 +3689,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -3682,7 +3746,9 @@ module evolution
end do end do
!$omp end parallel do !$omp end parallel do
call boundary_fluxes() call boundary_fluxes(status)
if (status /= 0) go to 100
!$omp parallel do default(shared) private(pdata) !$omp parallel do default(shared) private(pdata)
do l = 1, n do l = 1, n
@ -3876,10 +3942,10 @@ module evolution
! store the block interface fluxes ! store the block interface fluxes
! !
pdata%fx(:,1,:,:) = f(:,nbl,:,:,1) pdata%fx(:,:,:,1) = f(:,nbl,:,:,1)
pdata%fx(:,2,:,:) = f(:,ne ,:,:,1) pdata%fx(:,:,:,2) = f(:,ne ,:,:,1)
pdata%fy(:,:,1,:) = f(:,:,nbl,:,2) pdata%fy(:,:,:,1) = f(:,:,nbl,:,2)
pdata%fy(:,:,2,:) = f(:,:,ne ,:,2) pdata%fy(:,:,:,2) = f(:,:,ne ,:,2)
#if NDIMS == 3 #if NDIMS == 3
pdata%fz(:,:,:,1) = f(:,:,:,nbl,3) pdata%fz(:,:,:,1) = f(:,:,:,nbl,3)
pdata%fz(:,:,:,2) = f(:,:,:,ne ,3) pdata%fz(:,:,:,2) = f(:,:,:,ne ,3)