Merge branch 'master' into reconnection
This commit is contained in:
commit
15468b805d
@ -549,121 +549,125 @@ module boundaries
|
|||||||
if (pneigh%level > pmeta%level) then
|
if (pneigh%level > pmeta%level) then
|
||||||
|
|
||||||
#ifdef MPI
|
#ifdef MPI
|
||||||
! check if the current block and its neighbor belong to the same process, if so,
|
! check if the block and its neighbor belong to the same process
|
||||||
! update fluxes directly
|
|
||||||
!
|
!
|
||||||
if (pmeta%process == nproc .and. &
|
if (pmeta%process == pneigh%process) then
|
||||||
pneigh%process == nproc) then
|
|
||||||
|
! check if the neighbor belongs to the current process
|
||||||
|
!
|
||||||
|
if (pneigh%process == nproc) then
|
||||||
#endif /* MPI */
|
#endif /* MPI */
|
||||||
|
|
||||||
! update directional flux from the neighbor
|
! update directional flux from the neighbor
|
||||||
!
|
!
|
||||||
select case(n)
|
select case(n)
|
||||||
case(1)
|
case(1)
|
||||||
|
|
||||||
! prepare the boundary layer indices depending on the corner position
|
! prepare the boundary layer indices depending on the corner position
|
||||||
!
|
!
|
||||||
if (i == 1) then
|
if (i == 1) then
|
||||||
is = ie
|
is = ie
|
||||||
it = ibl
|
it = ibl
|
||||||
else
|
else
|
||||||
is = ibl
|
is = ibl
|
||||||
it = ie
|
it = ie
|
||||||
end if
|
end if
|
||||||
if (j == 1) then
|
if (j == 1) then
|
||||||
jl = jb
|
jl = jb
|
||||||
ju = jb + jh - 1
|
ju = jb + jh - 1
|
||||||
else
|
else
|
||||||
jl = je - jh + 1
|
jl = je - jh + 1
|
||||||
ju = je
|
ju = je
|
||||||
end if
|
end if
|
||||||
#if NDIMS == 3
|
#if NDIMS == 3
|
||||||
if (k == 1) then
|
if (k == 1) then
|
||||||
kl = kb
|
kl = kb
|
||||||
ku = kb + kh - 1
|
ku = kb + kh - 1
|
||||||
else
|
else
|
||||||
kl = ke - kh + 1
|
kl = ke - kh + 1
|
||||||
ku = ke
|
ku = ke
|
||||||
end if
|
end if
|
||||||
#endif /* NDIMS == 3 */
|
#endif /* NDIMS == 3 */
|
||||||
|
|
||||||
! update the flux edge from the neighbor at higher level
|
! update the flux edge from the neighbor at higher level
|
||||||
!
|
!
|
||||||
call block_update_flux(i, j, k, n &
|
call block_update_flux(i, j, k, n &
|
||||||
, pneigh%data%f(n,1:nv,is,jb:je,kb:ke) &
|
, pneigh%data%f(n,1:nv,is,jb:je,kb:ke) &
|
||||||
, pmeta%data%f(n,1:nv,it,jl:ju,kl:ku))
|
, pmeta%data%f(n,1:nv,it,jl:ju,kl:ku))
|
||||||
|
|
||||||
case(2)
|
case(2)
|
||||||
|
|
||||||
! prepare the boundary layer indices depending on the corner position
|
! prepare the boundary layer indices depending on the corner position
|
||||||
!
|
!
|
||||||
if (i == 1) then
|
if (i == 1) then
|
||||||
il = ib
|
il = ib
|
||||||
iu = ib + ih - 1
|
iu = ib + ih - 1
|
||||||
else
|
else
|
||||||
il = ie - ih + 1
|
il = ie - ih + 1
|
||||||
iu = ie
|
iu = ie
|
||||||
end if
|
end if
|
||||||
if (j == 1) then
|
if (j == 1) then
|
||||||
js = je
|
js = je
|
||||||
jt = jbl
|
jt = jbl
|
||||||
else
|
else
|
||||||
js = jbl
|
js = jbl
|
||||||
jt = je
|
jt = je
|
||||||
end if
|
end if
|
||||||
#if NDIMS == 3
|
#if NDIMS == 3
|
||||||
if (k == 1) then
|
if (k == 1) then
|
||||||
kl = kb
|
kl = kb
|
||||||
ku = kb + kh - 1
|
ku = kb + kh - 1
|
||||||
else
|
else
|
||||||
kl = ke - kh + 1
|
kl = ke - kh + 1
|
||||||
ku = ke
|
ku = ke
|
||||||
end if
|
end if
|
||||||
#endif /* NDIMS == 3 */
|
#endif /* NDIMS == 3 */
|
||||||
|
|
||||||
! update the flux edge from the neighbor at higher level
|
! update the flux edge from the neighbor at higher level
|
||||||
!
|
!
|
||||||
call block_update_flux(i, j, k, n &
|
call block_update_flux(i, j, k, n &
|
||||||
, pneigh%data%f(n,1:nv,ib:ie,js,kb:ke) &
|
, pneigh%data%f(n,1:nv,ib:ie,js,kb:ke) &
|
||||||
, pmeta%data%f(n,1:nv,il:iu,jt,kl:ku))
|
, pmeta%data%f(n,1:nv,il:iu,jt,kl:ku))
|
||||||
|
|
||||||
#if NDIMS == 3
|
#if NDIMS == 3
|
||||||
case(3)
|
case(3)
|
||||||
|
|
||||||
! prepare the boundary layer indices depending on the corner position
|
! prepare the boundary layer indices depending on the corner position
|
||||||
!
|
!
|
||||||
if (i == 1) then
|
if (i == 1) then
|
||||||
il = ib
|
il = ib
|
||||||
iu = ib + ih - 1
|
iu = ib + ih - 1
|
||||||
else
|
else
|
||||||
il = ie - ih + 1
|
il = ie - ih + 1
|
||||||
iu = ie
|
iu = ie
|
||||||
end if
|
end if
|
||||||
if (j == 1) then
|
if (j == 1) then
|
||||||
jl = jb
|
jl = jb
|
||||||
ju = jb + jh - 1
|
ju = jb + jh - 1
|
||||||
else
|
else
|
||||||
jl = je - jh + 1
|
jl = je - jh + 1
|
||||||
ju = je
|
ju = je
|
||||||
end if
|
end if
|
||||||
if (k == 1) then
|
if (k == 1) then
|
||||||
ks = ke
|
ks = ke
|
||||||
kt = kbl
|
kt = kbl
|
||||||
else
|
else
|
||||||
ks = kbl
|
ks = kbl
|
||||||
kt = ke
|
kt = ke
|
||||||
end if
|
end if
|
||||||
|
|
||||||
! update the flux edge from the neighbor at higher level
|
! update the flux edge from the neighbor at higher level
|
||||||
!
|
!
|
||||||
call block_update_flux(i, j, k, n &
|
call block_update_flux(i, j, k, n &
|
||||||
, pneigh%data%f(n,1:nv,ib:ie,jb:je,ks) &
|
, pneigh%data%f(n,1:nv,ib:ie,jb:je,ks) &
|
||||||
, pmeta%data%f(n,1:nv,il:iu,jl:ju,kt))
|
, pmeta%data%f(n,1:nv,il:iu,jl:ju,kt))
|
||||||
#endif /* NDIMS == 3 */
|
#endif /* NDIMS == 3 */
|
||||||
|
|
||||||
end select
|
end select
|
||||||
|
|
||||||
#ifdef MPI
|
#ifdef MPI
|
||||||
|
end if ! pneigh on the current process
|
||||||
|
|
||||||
! blocks belong to different processes, therefore prepare the block exchange
|
! blocks belong to different processes, therefore prepare the block exchange
|
||||||
! object
|
! object
|
||||||
!
|
!
|
||||||
@ -734,6 +738,8 @@ module boundaries
|
|||||||
end do ! meta blocks
|
end do ! meta blocks
|
||||||
|
|
||||||
#ifdef MPI
|
#ifdef MPI
|
||||||
|
!! 3. UPDATE FLUX BOUNDARIES BETWEEN BLOCKS BELONGING TO DIFFERENT PROCESSES
|
||||||
|
!!
|
||||||
! iterate over all process pairs
|
! iterate over all process pairs
|
||||||
!
|
!
|
||||||
do p = 1, npairs
|
do p = 1, npairs
|
||||||
@ -1923,7 +1929,7 @@ module boundaries
|
|||||||
|
|
||||||
! check if the neighbor belongs to the current process
|
! check if the neighbor belongs to the current process
|
||||||
!
|
!
|
||||||
if (pmeta%process == nproc) then
|
if (pneigh%process == nproc) then
|
||||||
#endif /* MPI */
|
#endif /* MPI */
|
||||||
|
|
||||||
! prepare the region indices for face boundary update
|
! prepare the region indices for face boundary update
|
||||||
@ -2480,7 +2486,7 @@ module boundaries
|
|||||||
|
|
||||||
! check if the neighbor belongs to the current process
|
! check if the neighbor belongs to the current process
|
||||||
!
|
!
|
||||||
if (pmeta%process == nproc) then
|
if (pneigh%process == nproc) then
|
||||||
#endif /* MPI */
|
#endif /* MPI */
|
||||||
|
|
||||||
! extract the corresponding face region from the neighbor and insert it in
|
! extract the corresponding face region from the neighbor and insert it in
|
||||||
@ -3065,7 +3071,7 @@ module boundaries
|
|||||||
|
|
||||||
! check if the neighbor belongs to the current process
|
! check if the neighbor belongs to the current process
|
||||||
!
|
!
|
||||||
if (pmeta%process == nproc) then
|
if (pneigh%process == nproc) then
|
||||||
#endif /* MPI */
|
#endif /* MPI */
|
||||||
|
|
||||||
! prepare the region indices for edge boundary update
|
! prepare the region indices for edge boundary update
|
||||||
@ -3647,7 +3653,7 @@ module boundaries
|
|||||||
|
|
||||||
! check if the neighbor belongs to the current process
|
! check if the neighbor belongs to the current process
|
||||||
!
|
!
|
||||||
if (pmeta%process == nproc) then
|
if (pneigh%process == nproc) then
|
||||||
#endif /* MPI */
|
#endif /* MPI */
|
||||||
|
|
||||||
! prepare the region indices for edge boundary update
|
! prepare the region indices for edge boundary update
|
||||||
@ -4233,7 +4239,7 @@ module boundaries
|
|||||||
|
|
||||||
! check if the neighbor belongs to the current process
|
! check if the neighbor belongs to the current process
|
||||||
!
|
!
|
||||||
if (pmeta%process == nproc) then
|
if (pneigh%process == nproc) then
|
||||||
#endif /* MPI */
|
#endif /* MPI */
|
||||||
|
|
||||||
! prepare the region indices for edge boundary update
|
! prepare the region indices for edge boundary update
|
||||||
@ -4809,7 +4815,7 @@ module boundaries
|
|||||||
|
|
||||||
! check if the neighbor belongs to the current process
|
! check if the neighbor belongs to the current process
|
||||||
!
|
!
|
||||||
if (pmeta%process == nproc) then
|
if (pneigh%process == nproc) then
|
||||||
#endif /* MPI */
|
#endif /* MPI */
|
||||||
|
|
||||||
! prepare the region indices for corner boundary update
|
! prepare the region indices for corner boundary update
|
||||||
@ -5273,7 +5279,7 @@ module boundaries
|
|||||||
|
|
||||||
! check if the neighbor belongs to the current process
|
! check if the neighbor belongs to the current process
|
||||||
!
|
!
|
||||||
if (pmeta%process == nproc) then
|
if (pneigh%process == nproc) then
|
||||||
#endif /* MPI */
|
#endif /* MPI */
|
||||||
|
|
||||||
! prepare the region indices for corner boundary update
|
! prepare the region indices for corner boundary update
|
||||||
@ -5736,7 +5742,7 @@ module boundaries
|
|||||||
|
|
||||||
! check if the neighbor belongs to the current process
|
! check if the neighbor belongs to the current process
|
||||||
!
|
!
|
||||||
if (pmeta%process == nproc) then
|
if (pneigh%process == nproc) then
|
||||||
#endif /* MPI */
|
#endif /* MPI */
|
||||||
|
|
||||||
! prepare the region indices for corner boundary update
|
! prepare the region indices for corner boundary update
|
||||||
|
Loading…
x
Reference in New Issue
Block a user