tem_extend_remotePrp Subroutine

private subroutine tem_extend_remotePrp(levelDesc, minLevel, maxLevel, faces)

communication faces (at least by one of the neighboring elements). It checks if the communicated elements are from finer/coarser level and attaches the fromFiner/fromCoarser property to this face if necessary.

Arguments

Type IntentOptional Attributes Name
type(tem_levelDesc_type), intent(in) :: levelDesc(1:3,minLevel:maxLevel)

Level descriptor for each level of your mesh.

integer, intent(in) :: minLevel

Minimum level of your mesh.

integer, intent(in) :: maxLevel

Maximum level of your mesh.

type(tem_face_type), intent(inout) :: faces(minLevel:maxLevel)

The face descriptor to be corrected.


Calls

proc~~tem_extend_remoteprp~~CallsGraph proc~tem_extend_remoteprp tem_extend_remotePrp proc~tem_extend_commfromfinerprp tem_extend_commFromFinerPrp proc~tem_extend_remoteprp->proc~tem_extend_commfromfinerprp proc~tem_extend_commfromcoarserprp tem_extend_commFromCoarserPrp proc~tem_extend_remoteprp->proc~tem_extend_commfromcoarserprp proc~tem_get_faceneigh tem_get_faceNeigh proc~tem_extend_commfromfinerprp->proc~tem_get_faceneigh proc~tem_appendface_prp tem_appendFace_prp proc~tem_extend_commfromfinerprp->proc~tem_appendface_prp proc~tem_extend_commfromcoarserprp->proc~tem_get_faceneigh proc~tem_extend_commfromcoarserprp->proc~tem_appendface_prp proc~tem_treeidintotal tem_treeIDinTotal proc~tem_get_faceneigh->proc~tem_treeidintotal proc~tem_idofcoord tem_IdOfCoord proc~tem_get_faceneigh->proc~tem_idofcoord proc~tem_coordofid tem_CoordOfId proc~tem_get_faceneigh->proc~tem_coordofid proc~tem_abort tem_abort proc~tem_get_faceneigh->proc~tem_abort interface~positionofval~5 positionofval proc~tem_appendface_prp->interface~positionofval~5 proc~tem_melt_faceprp tem_melt_facePrp proc~tem_appendface_prp->proc~tem_melt_faceprp proc~tem_etypeofid tem_eTypeOfId proc~tem_treeidintotal->proc~tem_etypeofid tem_positioninsorted tem_positioninsorted proc~tem_treeidintotal->tem_positioninsorted proc~posofval_label posofval_label interface~positionofval~5->proc~posofval_label proc~tem_levelof tem_LevelOf proc~tem_coordofid->proc~tem_levelof mpi_abort mpi_abort proc~tem_abort->mpi_abort

Called by

proc~~tem_extend_remoteprp~~CalledByGraph proc~tem_extend_remoteprp tem_extend_remotePrp proc~tem_build_face_info tem_build_face_info proc~tem_build_face_info->proc~tem_extend_remoteprp

Contents

Source Code


Source Code

  subroutine tem_extend_remotePrp(levelDesc, minLevel, maxLevel, faces )
    ! --------------------------------------------------------------------------
    !> Minimum level of your mesh.
    integer, intent(in) :: minLevel
    !> Maximum level of your mesh.
    integer, intent(in) :: maxLevel
    !> Level descriptor for each level of your mesh.
    type(tem_levelDesc_type), intent(in) :: levelDesc(1:3,minLevel:maxLevel)
    !> The face descriptor to be corrected.
    type(tem_face_type),intent(inout)  :: faces(minLevel:maxLevel)
    ! --------------------------------------------------------------------------
    integer :: iLevel, iDir
    ! --------------------------------------------------------------------------

    ! We correct the properties for each level and each direction independently
    levelLoop: do iLevel = minLevel, maxLevel
      directionLoop: do iDir = 1, 3

        ! Check for from finer property of the communicated faces.
        call tem_extend_commFromFinerPrp( levelDesc(iDir, iLevel), iDir, &
          &                               faces(iLevel)%faces(iDir)      )

        ! Check for from coarser property of the communicated faces.
        call tem_extend_commFromCoarserPrp( levelDesc(iDir, iLevel), iDir, &
          &                                 faces(iLevel)%faces(iDir)      )

      end do directionLoop
    end do levelLoop

  end subroutine tem_extend_remotePrp