frame_slab_extents Subroutine

private pure subroutine frame_slab_extents(ix1, iy1, nxl, nyl, nx_g, ny_g, h, has_l, has_r, has_b, has_t, ilo, ihi)

Slab geometry of one rank's owned piece of the GLOBAL boundary-ghost frame (the four width-h bands outside the global interior, corners included). Ownership is disjoint and exhaustive: the left/right bands cover global rows 1..ny_g only; the bottom/top bands span the FULL padded width 1-h..nx_g+h and therefore own the four corners. A rank owns a band segment iff its tile touches that global edge; a bottom/top-edge rank's segment extends into the corner columns iff it is also a left/right-edge rank (ilo/ihi below, in LOCAL i). Ghost cells of a rank that are NOT global-boundary cells are interior MPI-halo words: they are refreshed from neighbour interiors by the next halo exchange and are deliberately not part of the frame.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ix1
integer, intent(in) :: iy1
integer, intent(in) :: nxl
integer, intent(in) :: nyl
integer, intent(in) :: nx_g
integer, intent(in) :: ny_g
integer, intent(in) :: h
logical, intent(out) :: has_l
logical, intent(out) :: has_r
logical, intent(out) :: has_b
logical, intent(out) :: has_t
integer, intent(out) :: ilo
integer, intent(out) :: ihi