tem_faceDep_vertical Subroutine

private subroutine tem_faceDep_vertical(minLevel, maxLevel, faces, nEligibleChildren)

Arguments

Type IntentOptional Attributes Name
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)

Face descriptor where the faces will be appended to.

integer, intent(in) :: nEligibleChildren

The number of eligible children for the vertical face dependency


Calls

proc~~tem_facedep_vertical~~CallsGraph proc~tem_facedep_vertical tem_faceDep_vertical proc~tem_facedep_verticaldown tem_faceDep_verticalDown proc~tem_facedep_vertical->proc~tem_facedep_verticaldown proc~tem_facedep_verticalup tem_faceDep_verticalUp proc~tem_facedep_vertical->proc~tem_facedep_verticalup proc~tem_init_facedep tem_init_faceDep proc~tem_facedep_vertical->proc~tem_init_facedep proc~tem_adddep_down tem_addDep_down proc~tem_facedep_verticaldown->proc~tem_adddep_down proc~tem_getface_prp tem_getFace_prp proc~tem_facedep_verticaldown->proc~tem_getface_prp proc~tem_reqdep_down tem_reqDep_down proc~tem_facedep_verticaldown->proc~tem_reqdep_down proc~tem_adddep_up tem_addDep_up proc~tem_facedep_verticalup->proc~tem_adddep_up proc~tem_facedep_verticalup->proc~tem_getface_prp proc~tem_reqdep_up tem_reqDep_up proc~tem_facedep_verticalup->proc~tem_reqdep_up interface~positionofval~5 positionofval proc~tem_adddep_down->interface~positionofval~5 proc~tem_abort tem_abort proc~tem_adddep_down->proc~tem_abort proc~tem_coordofid tem_CoordOfId proc~tem_adddep_down->proc~tem_coordofid proc~tem_directchildren tem_directChildren proc~tem_adddep_down->proc~tem_directchildren proc~tem_eligiblechildren tem_eligibleChildren proc~tem_adddep_down->proc~tem_eligiblechildren proc~tem_idofcoord tem_IdOfCoord proc~tem_adddep_down->proc~tem_idofcoord proc~tem_adddep_up->interface~positionofval~5 interface~tem_parentof tem_ParentOf proc~tem_adddep_up->interface~tem_parentof proc~posofval_label posofval_label interface~positionofval~5->proc~posofval_label proc~tem_directparent tem_directParent interface~tem_parentof->proc~tem_directparent proc~tem_parentatlevel tem_ParentAtLevel interface~tem_parentof->proc~tem_parentatlevel mpi_abort mpi_abort proc~tem_abort->mpi_abort proc~tem_levelof tem_LevelOf proc~tem_coordofid->proc~tem_levelof

Called by

proc~~tem_facedep_vertical~~CalledByGraph proc~tem_facedep_vertical tem_faceDep_vertical proc~tem_build_face_info tem_build_face_info proc~tem_build_face_info->proc~tem_facedep_vertical

Source Code

  subroutine tem_faceDep_vertical(minLevel, maxLevel, faces, nEligibleChildren )
    ! --------------------------------------------------------------------------
    !> Minimum level of your mesh.
    integer, intent(in) :: minLevel
    !> Maximum level of your mesh.
    integer, intent(in) :: maxLevel
    !> Face descriptor where the faces will be appended to.
    type(tem_face_type),intent(inout)  :: faces(minLevel:maxLevel)
    !> The number of eligible children for the vertical face dependency
    integer, intent(in) :: nEligibleChildren
    ! --------------------------------------------------------------------------
    integer :: iLevel, iDir
    ! --------------------------------------------------------------------------

    ! Initialize the container for the vertical face dependencies.
    levelLoop: do iLevel = minLevel, maxLevel
      do iDir = 1, 3
        call tem_init_faceDep( faces(iLevel)%faces(iDir), nEligibleChildren )
      end do
    end do levelLoop

    ! build the dependencies downward (coarse face -> finer faces)
    levelLoopDown: do iLevel = minLevel, maxLevel-1
      do iDir = 1, 3
        call tem_faceDep_verticalDown( faces(iLevel)%faces(iDir),         &
          &                            faces(iLevel+1)%faces(iDir), iDir, &
          &                            nEligibleChildren )
      end do
    end do levelLoopDown

    ! build the dependencies upward (fine face -> coarse face)
    levelLoopUp: do iLevel = maxLevel, minLevel+1, -1
      do iDir = 1, 3
        call tem_faceDep_verticalUp( faces(iLevel)%faces(iDir),                &
          &                          faces(iLevel-1)%faces(iDir) )
      end do
    end do levelLoopUp

  end subroutine tem_faceDep_vertical