tem_build_treeToProp_pointer Subroutine

public subroutine tem_build_treeToProp_pointer(treeToProp, nElems, ElemPropertyBits, prp_bit)

This routine builds mapping from tree%treeID to given property data array like boundary_ID or qVal

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: treeToProp(nElems)

Pointer from tree to property data to be filled by this routine

integer :: nElems

mesh elements

integer(kind=long_k), intent(in) :: ElemPropertyBits(nElems)

Elements Property Bits

integer, intent(in) :: prp_bit

property bit


Source Code

  subroutine tem_build_treeToProp_pointer( treeToProp, nElems,       &
    &                                      ElemPropertyBits, prp_bit )
    ! -------------------------------------------------------------------- !
    !> mesh elements
    integer :: nElems
    !> Pointer from tree to property data to be filled by this routine
    integer, intent(out) :: treeToProp(nElems)
    !> Elements Property Bits
    integer(kind=long_k), intent(in) :: ElemPropertyBits(nElems)
    !> property bit
    integer, intent(in) :: prp_bit
    ! -------------------------------------------------------------------- !
    character(len=labelLen) :: buffer
    integer :: iElem, counter
    ! -------------------------------------------------------------------- !

    select case(prp_bit)
    case (prp_hasBnd)
      buffer = 'boundary_ID'
    case (prp_hasQVal)
      buffer = 'qVal'
    end select

    write(logUnit(7),*) 'Building map from tree to '//trim(buffer)

    counter = 0
    do iElem = 1, nElems
      if ( btest(ElemPropertyBits( iElem ), prp_bit ) ) then
        counter = counter + 1
        treeToProp(iElem) = counter
      else
        treeToProp(iElem) = -1
      end if
    end do

  end subroutine tem_build_treeToProp_pointer