Type | Intent | Optional | 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 |
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