lagrangian_set_ApplyPeriodicity Subroutine

private pure subroutine lagrangian_set_ApplyPeriodicity(this)

Applies periodic boundary conditions.

Type Bound

lagrangian_set

Arguments

Type IntentOptional Attributes Name
class(lagrangian_set), intent(inout) :: this

A set of Lagrangian objects


Called by

proc~~lagrangian_set_applyperiodicity~~CalledByGraph proc~lagrangian_set_applyperiodicity lagrangian_set%lagrangian_set_ApplyPeriodicity proc~cdifs_obj_advancesolutionrp cdifs_obj_AdvanceSolutionRP proc~cdifs_obj_advancesolutionrp->proc~lagrangian_set_applyperiodicity proc~grans_obj_advancesolution grans_obj_AdvanceSolution proc~grans_obj_advancesolution->proc~lagrangian_set_applyperiodicity interface~grans_obj_advancesolution grans_obj%grans_obj_AdvanceSolution interface~grans_obj_advancesolution->proc~grans_obj_advancesolution proc~cdifs_obj_advancesolution cdifs_obj_AdvanceSolution proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutionrp interface~cdifs_obj_advancesolution cdifs_obj%cdifs_obj_AdvanceSolution interface~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolution

Source Code

    pure subroutine lagrangian_set_ApplyPeriodicity(this)
      !> Applies periodic boundary conditions.
      implicit none
      class(lagrangian_set), intent(inout) :: this                             !! A set of Lagrangian objects
      ! Work variable
      integer :: dir
      integer :: n

      do dir=1,3
        if (this%block%periods(dir)) then
          do n=1,this%count_
            this%p(n)%p(dir) = this%block%pmin(dir) + modulo(this%p(n)%p(dir)-this%block%pmin(dir),this%block%pmax(dir) - this%block%pmin(dir))
          end do
        end if
      end do

      return
    end subroutine lagrangian_set_ApplyPeriodicity