oc_internal Function

public pure function oc_internal(s, c) result(isInternal)

.true. if child c's face s is interior to its parent (its neighbour across s is a sibling): the child sits in the half-cube away from parent face s.

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: s
integer, intent(in) :: c

Return Value logical


Called by

proc~~oc_internal~~CalledByGraph proc~oc_internal oc_internal proc~faceneighbor_octreemesh3d FaceNeighbor_OctreeMesh3D proc~faceneighbor_octreemesh3d->proc~oc_internal proc~faceneighbor_octreemesh3d->proc~faceneighbor_octreemesh3d

Contents

Source Code


Source Code

  pure function oc_internal(s,c) result(isInternal)
    !! .true. if child c's face s is interior to its parent (its neighbour across s is a
    !! sibling): the child sits in the half-cube away from parent face s.
    implicit none
    integer,intent(in) :: s,c
    logical :: isInternal
    select case(s)
    case(1) ! Bottom (xi3 = -1) interior for the top-half children
      isInternal = (octAzc(c) == 1)
    case(2) ! South (xi2 = -1) interior for the north-half children
      isInternal = (octAyc(c) == 1)
    case(3) ! East (xi1 = +1) interior for the west-half children
      isInternal = (octAxc(c) == 0)
    case(4) ! North (xi2 = +1) interior for the south-half children
      isInternal = (octAyc(c) == 0)
    case(5) ! West (xi1 = -1) interior for the east-half children
      isInternal = (octAxc(c) == 1)
    case default ! Top (xi3 = +1) interior for the bottom-half children
      isInternal = (octAzc(c) == 0)
    endselect
  endfunction oc_internal