wrap_periodic2_point Subroutine

public subroutine wrap_periodic2_point(point, box_min, periodic_axes, periodic_len)

point を primary cell へ折り返す。

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: point(3)
real(kind=dp), intent(in) :: box_min(3)
integer(kind=i32), intent(in) :: periodic_axes(2)
real(kind=dp), intent(in) :: periodic_len(2)

Called by

proc~~wrap_periodic2_point~~CalledByGraph proc~wrap_periodic2_point wrap_periodic2_point proc~find_first_hit_periodic2 find_first_hit_periodic2 proc~find_first_hit_periodic2->proc~wrap_periodic2_point proc~find_first_hit find_first_hit proc~find_first_hit->proc~find_first_hit_periodic2 proc~sample_photo_raycast_particles sample_photo_raycast_particles proc~sample_photo_raycast_particles->proc~find_first_hit proc~sample_photo_species_state sample_photo_species_state proc~sample_photo_species_state->proc~sample_photo_raycast_particles proc~init_particle_batch_from_config init_particle_batch_from_config proc~init_particle_batch_from_config->proc~sample_photo_species_state

Source Code

  subroutine wrap_periodic2_point(point, box_min, periodic_axes, periodic_len)
    real(dp), intent(inout) :: point(3)
    real(dp), intent(in) :: box_min(3), periodic_len(2)
    integer(i32), intent(in) :: periodic_axes(2)
    integer(i32) :: iaxis

    do iaxis = 1, 2
      point(periodic_axes(iaxis)) = box_min(periodic_axes(iaxis)) + &
                                    modulo(point(periodic_axes(iaxis)) - box_min(periodic_axes(iaxis)), periodic_len(iaxis))
    end do
  end subroutine wrap_periodic2_point