periodic2 の minimum image を差分ベクトルへ適用する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fmm_plan_type), | intent(in) | :: | plan |
FMM 計画。 |
||
| real(kind=dp), | intent(inout) | :: | d(3) |
pure subroutine apply_periodic2_minimum_image(plan, d) type(fmm_plan_type), intent(in) :: plan real(dp), intent(inout) :: d(3) integer(i32) :: axis, k real(dp) :: len_k, half_len if (.not. plan%options%use_periodic2) return do k = 1_i32, 2_i32 axis = plan%options%periodic_axes(k) len_k = plan%options%periodic_len(k) half_len = 0.5d0*len_k if (d(axis) > half_len) then d(axis) = d(axis) - len_k else if (d(axis) < -half_len) then d(axis) = d(axis) + len_k end if end do end subroutine apply_periodic2_minimum_image