点線源 1 個の s と ds/dh。平均をとるセルと画像の層数は plan の値を使う。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(periodic_shell_mean_plan_type), | intent(in) | :: | plan | |||
| real(kind=dp), | intent(in) | :: | source(3) | |||
| real(kind=dp), | intent(in) | :: | target_z | |||
| real(kind=dp), | intent(out) | :: | s | |||
| real(kind=dp), | intent(out) | :: | dsdh |
pure subroutine periodic_shell_mean_point_excess(plan, source, target_z, s, dsdh) type(periodic_shell_mean_plan_type), intent(in) :: plan real(dp), intent(in) :: source(3), target_z real(dp), intent(out) :: s, dsdh real(dp) :: lo(2), hi(2), xs, ys lo = plan%cell_lo - real(plan%image_layers, dp)*plan%cell_len hi = plan%cell_lo + real(plan%image_layers + 1_i32, dp)*plan%cell_len xs = source(plan%periodic_axes(1)) ys = source(plan%periodic_axes(2)) call periodic_shell_mean_excess( & target_z - source(plan%free_axis), lo(1) - xs, hi(1) - xs, lo(2) - ys, hi(2) - ys, & plan%cell_len(1)*plan%cell_len(2), plan%soft2, s, dsdh & ) end subroutine periodic_shell_mean_point_excess