publish_cell_cache_and_unlock Subroutine

public subroutine publish_cell_cache_and_unlock(plan, nanchor, cached_cells, cached_blocks, new_cells, new_blocks, lock)

cache にあったセルと新しく作ったセルを合わせて書き、ロックを外す。

Arguments

Type IntentOptional Attributes Name
type(fmm_plan_type), intent(in) :: plan
integer(kind=i32), intent(in) :: nanchor
integer(kind=i32), intent(in), allocatable :: cached_cells(:)
real(kind=dp), intent(in), allocatable :: cached_blocks(:,:,:)
integer(kind=i32), intent(in), allocatable :: new_cells(:)
real(kind=dp), intent(in), allocatable :: new_blocks(:,:,:)
type(periodic_cell_cache_lock_type), intent(inout) :: lock

Calls

proc~~publish_cell_cache_and_unlock~~CallsGraph proc~publish_cell_cache_and_unlock publish_cell_cache_and_unlock proc~release_file_lock release_file_lock proc~publish_cell_cache_and_unlock->proc~release_file_lock proc~write_periodic_operator_cache write_periodic_operator_cache proc~publish_cell_cache_and_unlock->proc~write_periodic_operator_cache proc~atomic_rename atomic_rename proc~write_periodic_operator_cache->proc~atomic_rename proc~periodic_operator_checksum periodic_operator_checksum proc~write_periodic_operator_cache->proc~periodic_operator_checksum

Called by

proc~~publish_cell_cache_and_unlock~~CalledByGraph proc~publish_cell_cache_and_unlock publish_cell_cache_and_unlock proc~precompute_periodic_root_operator precompute_periodic_root_operator proc~precompute_periodic_root_operator->proc~publish_cell_cache_and_unlock proc~core_complete_plan_impl core_complete_plan_impl proc~core_complete_plan_impl->proc~precompute_periodic_root_operator proc~core_build_panel_plan_impl core_build_panel_plan_impl proc~core_build_panel_plan_impl->proc~core_complete_plan_impl proc~core_build_plan_impl core_build_plan_impl proc~core_build_plan_impl->proc~core_complete_plan_impl

Source Code

  subroutine publish_cell_cache_and_unlock(plan, nanchor, cached_cells, cached_blocks, new_cells, new_blocks, lock)
    type(fmm_plan_type), intent(in) :: plan
    integer(i32), intent(in) :: nanchor
    integer(i32), allocatable, intent(in) :: cached_cells(:), new_cells(:)
    real(dp), allocatable, intent(in) :: cached_blocks(:, :, :), new_blocks(:, :, :)
    type(periodic_cell_cache_lock_type), intent(inout) :: lock

    call publish_cell_cache(plan, nanchor, cached_cells, cached_blocks, new_cells, new_blocks)
    call release_cell_cache_lock(lock)
  end subroutine publish_cell_cache_and_unlock