This subroutine derives all treeIDs of a subTree from the corresponding global tree and stores them in treeID.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_subTree_type), | intent(in) | :: | me |
subTree of glob_tree |
||
type(treelmesh_type), | intent(in) | :: | glob_tree |
corresponding global tree |
||
integer(kind=long_k), | intent(out), | allocatable | :: | treeID(:) |
complete treeID list |
|
integer, | intent(in) | :: | bound(2) |
lower(1) and upper(2) bound of the element array |
subroutine tem_treeIDfrom_subTree( me, glob_tree, treeID, bound )
! ---------------------------------------------------------------------------
!> subTree of glob_tree
type(tem_subTree_type), intent(in) :: me
!> corresponding global tree
type(treelmesh_type), intent(in) :: glob_tree
!> complete treeID list
integer(kind=long_k), intent(out), allocatable :: treeID(:)
!> lower(1) and upper(2) bound of the element array
integer, intent(in) :: bound(2)
! ---------------------------------------------------------------------------
! allocate the array of treeIDs
allocate( treeID( bound(2)-bound(1)+1 ))
! set the number of elements in the subTree
if( me%useGlobalMesh)then
treeID = glob_tree%treeID( bound(1) : bound(2) )
else if( me%useLocalMesh)then
treeID = me%treeID( bound(1) : bound(2) )
else
treeID = glob_tree%treeID( me%map2global( bound(1) : bound(2) ) )
end if
end subroutine tem_treeIDfrom_subTree