tem_PathOf Function

public elemental function tem_PathOf(TreeID) result(res)

This function returns the complete path through the tree from a given treeID to the root (all parents).

Arguments

Type IntentOptional Attributes Name
integer(kind=long_k), intent(in) :: TreeID

current treeID

Return Value type(tem_path_type)

resulting path


Source Code

  elemental function tem_PathOf( TreeID ) result(res)
    ! ---------------------------------------------------------------------------
    !> current treeID
    integer(kind=long_k), intent(in) :: TreeID
    !> resulting path
    type(tem_path_type) :: res
    ! ---------------------------------------------------------------------------

    res%level = 1
    res%Node(res%Level) = treeID
    do while (res%Node(res%Level) > 0)
      res%Level = res%Level + 1
      ! res%Node(res%Level) = (res%Node(res%Level-1)-1) / 8
      res%Node(res%Level) = ishft( (res%Node(res%Level-1)-1), -3 )
    end do
  end function tem_PathOf