Adds a new face to the face description.
If the face already exists in the face description, only the properties of the already existing face will be overwritten.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=long_k), | intent(in) | :: | leftElemId |
Element id of the left element |
||
integer, | intent(in) | :: | leftElemPos |
Position of the left element in the level descriptor's total list. |
||
integer, | intent(in) | :: | leftElemPrp |
Properties of the left element. |
||
integer(kind=long_k), | intent(in) | :: | rightElemId |
Element id of the right element |
||
integer, | intent(in) | :: | rightElemPos |
Position of the right element in the level desriptor's total list. |
||
integer, | intent(in) | :: | rightElemPrp |
Properties of the right element |
||
type(tem_face_descriptor_type), | intent(inout) | :: | faces |
The face description the new face will be added to. If the face already exists in this face description. The existing face's property will be overwritten by the new ones. |
subroutine tem_addFace( leftElemId, leftElemPos, leftElemPrp, & & rightElemId, rightElemPos, rightElemPrp, faces ) ! -------------------------------------------------------------------------- !> Element id of the left element integer(kind=long_k), intent(in) :: leftElemId !> Element id of the right element integer(kind=long_k), intent(in) :: rightElemId !> Position of the left element in the level descriptor's total list. integer, intent(in) :: leftElemPos !> Properties of the left element. integer, intent(in) :: leftElemPrp !> Position of the right element in the level desriptor's total list. integer, intent(in) :: rightElemPos !> Properties of the right element integer, intent(in) :: rightElemPrp !> The face description the new face will be added to. If the face already !! exists in this face description. The existing face's property will be !! overwritten by the new ones. type(tem_face_descriptor_type), intent(inout) :: faces ! -------------------------------------------------------------------------- logical :: wasAdded integer :: pos ! -------------------------------------------------------------------------- ! Try to add the left tree id to the face id list of the faces call append( me = faces%faceList%faceId, & & val = leftElemId, & & wasAdded = wasAdded, & & pos = pos ) ! Check if the face already existed in the face descriptor. ! If yes, we overwrite the properties. If no, we overwrite ! the existing properties. if(wasAdded) then ! New face ! Append right element, element positions and new properties call append( me = faces%faceList%rightElemId, val = rightElemId ) call append( me = faces%faceList%leftElemPos, val = leftElemPos ) call append( me = faces%faceList%rightElemPos, val = rightElemPos ) call append( me = faces%faceList%leftPrp, val = leftElemPrp ) call append( me = faces%faceList%rightPrp, val = rightElemPrp ) else ! Face already existed ! Overwrite existing properies faces%faceList%leftPrp%val(pos) = leftElemPrp faces%faceList%rightPrp%val(pos) = rightElemPrp end if end subroutine tem_addFace