subroutine init_tree_leaf(tree,ig1,ig2,ig3,level,igrid,ipe,active)
use mod_forest
implicit none
type(tree_node_ptr) :: tree
integer, intent(in) :: ig1,ig2,ig3, level, igrid, ipe
logical, intent(in) :: active
integer :: ic1,ic2,ic3
allocate(tree%node)
tree%node%ig1=ig1;tree%node%ig2=ig2;tree%node%ig3=ig3;
tree%node%level=level
tree%node%igrid=igrid
tree%node%ipe=ipe
tree%node%leaf=.true.
tree%node%active=active
nullify(tree%node%parent%node)
do ic3=1,2
do ic2=1,2
do ic1=1,2
nullify(tree%node%child(ic1,ic2,ic3)%node)
end do
end do
end do
call add_to_linked_list(level,tree)
! initialize neighbor pointers
nullify(tree%node%neighbor(1,1)%node,tree%node%neighbor(1,2)%node,&
tree%node%neighbor(1,3)%node,tree%node%neighbor(2,1)%node,&
tree%node%neighbor(2,2)%node,tree%node%neighbor(2,3)%node)
igrid_to_node(igrid,ipe)%node => tree%node
end subroutine init_tree_leaf