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.


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