FMM plan を初期状態へ戻す。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fmm_plan_type), | intent(inout) | :: | plan |
リセット対象の FMM plan。 |
subroutine reset_fmm_plan(plan) type(fmm_plan_type), intent(inout) :: plan if (allocated(plan%alpha)) deallocate (plan%alpha) if (allocated(plan%alpha_degree)) deallocate (plan%alpha_degree) if (allocated(plan%alpha_factorial)) deallocate (plan%alpha_factorial) if (allocated(plan%alpha_sign)) deallocate (plan%alpha_sign) if (allocated(plan%alpha_map)) deallocate (plan%alpha_map) if (allocated(plan%alpha_plus_axis)) deallocate (plan%alpha_plus_axis) if (allocated(plan%deriv_alpha)) deallocate (plan%deriv_alpha) if (allocated(plan%deriv_degree)) deallocate (plan%deriv_degree) if (allocated(plan%deriv_factorial)) deallocate (plan%deriv_factorial) if (allocated(plan%deriv_map)) deallocate (plan%deriv_map) if (allocated(plan%alpha_beta_deriv_idx)) deallocate (plan%alpha_beta_deriv_idx) if (allocated(plan%eval_exp)) deallocate (plan%eval_exp) if (allocated(plan%eval_deriv_idx)) deallocate (plan%eval_deriv_idx) if (allocated(plan%eval_inv_factorial)) deallocate (plan%eval_inv_factorial) if (allocated(plan%src_pos)) deallocate (plan%src_pos) if (allocated(plan%elem_order)) deallocate (plan%elem_order) if (allocated(plan%node_start)) deallocate (plan%node_start) if (allocated(plan%node_count)) deallocate (plan%node_count) if (allocated(plan%child_count)) deallocate (plan%child_count) if (allocated(plan%child_idx)) deallocate (plan%child_idx) if (allocated(plan%child_octant)) deallocate (plan%child_octant) if (allocated(plan%node_depth)) deallocate (plan%node_depth) if (allocated(plan%node_level_start)) deallocate (plan%node_level_start) if (allocated(plan%node_level_nodes)) deallocate (plan%node_level_nodes) if (allocated(plan%node_center)) deallocate (plan%node_center) if (allocated(plan%node_half_size)) deallocate (plan%node_half_size) if (allocated(plan%node_radius)) deallocate (plan%node_radius) if (allocated(plan%target_child_count)) deallocate (plan%target_child_count) if (allocated(plan%target_child_idx)) deallocate (plan%target_child_idx) if (allocated(plan%target_child_octant)) deallocate (plan%target_child_octant) if (allocated(plan%target_node_depth)) deallocate (plan%target_node_depth) if (allocated(plan%target_level_start)) deallocate (plan%target_level_start) if (allocated(plan%target_level_nodes)) deallocate (plan%target_level_nodes) if (allocated(plan%target_node_center)) deallocate (plan%target_node_center) if (allocated(plan%target_node_half_size)) deallocate (plan%target_node_half_size) if (allocated(plan%target_node_radius)) deallocate (plan%target_node_radius) if (allocated(plan%source_leaf_nodes)) deallocate (plan%source_leaf_nodes) if (allocated(plan%leaf_nodes)) deallocate (plan%leaf_nodes) if (allocated(plan%leaf_slot_of_node)) deallocate (plan%leaf_slot_of_node) if (allocated(plan%near_start)) deallocate (plan%near_start) if (allocated(plan%near_nodes)) deallocate (plan%near_nodes) if (allocated(plan%near_source_start)) deallocate (plan%near_source_start) if (allocated(plan%near_source_idx)) deallocate (plan%near_source_idx) if (allocated(plan%near_source_shift1)) deallocate (plan%near_source_shift1) if (allocated(plan%near_source_shift2)) deallocate (plan%near_source_shift2) if (allocated(plan%far_start)) deallocate (plan%far_start) if (allocated(plan%far_nodes)) deallocate (plan%far_nodes) if (allocated(plan%m2l_target_nodes)) deallocate (plan%m2l_target_nodes) if (allocated(plan%m2l_source_nodes)) deallocate (plan%m2l_source_nodes) if (allocated(plan%m2l_shift_idx1)) deallocate (plan%m2l_shift_idx1) if (allocated(plan%m2l_shift_idx2)) deallocate (plan%m2l_shift_idx2) if (allocated(plan%m2l_target_start)) deallocate (plan%m2l_target_start) if (allocated(plan%m2l_pair_order)) deallocate (plan%m2l_pair_order) if (allocated(plan%source_parent_of)) deallocate (plan%source_parent_of) if (allocated(plan%parent_of)) deallocate (plan%parent_of) if (allocated(plan%m2m_term_count)) deallocate (plan%m2m_term_count) if (allocated(plan%m2m_alpha_list)) deallocate (plan%m2m_alpha_list) if (allocated(plan%m2m_delta_list)) deallocate (plan%m2m_delta_list) if (allocated(plan%l2l_term_count)) deallocate (plan%l2l_term_count) if (allocated(plan%l2l_gamma_list)) deallocate (plan%l2l_gamma_list) if (allocated(plan%l2l_delta_list)) deallocate (plan%l2l_delta_list) if (allocated(plan%shift_axis1)) deallocate (plan%shift_axis1) if (allocated(plan%shift_axis2)) deallocate (plan%shift_axis2) call reset_periodic2_ewald_data(plan%periodic_ewald) if (allocated(plan%periodic_root_target_nodes)) deallocate (plan%periodic_root_target_nodes) if (allocated(plan%periodic_root_operator)) deallocate (plan%periodic_root_operator) if (allocated(plan%m2l_deriv)) deallocate (plan%m2l_deriv) if (allocated(plan%source_p2m_basis)) deallocate (plan%source_p2m_basis) if (allocated(plan%source_shift_monomial)) deallocate (plan%source_shift_monomial) if (allocated(plan%target_shift_monomial)) deallocate (plan%target_shift_monomial) plan%options = fmm_options_type() plan%built = .false. plan%nsrc = 0_i32 plan%ncoef = 0_i32 plan%nderiv = 0_i32 plan%eval_term_count = 0_i32 plan%max_node = 0_i32 plan%nnode = 0_i32 plan%node_max_depth = 0_i32 plan%target_tree_ready = .false. plan%target_max_node = 0_i32 plan%target_nnode = 0_i32 plan%target_node_max_depth = 0_i32 plan%nsource_leaf = 0_i32 plan%nleaf = 0_i32 plan%m2l_pair_count = 0_i32 plan%m2l_build_count = 0_i32 plan%m2l_visit_count = 0_i32 plan%periodic_root_operator_ready = .false. plan%periodic_root_target_count = 0_i32 end subroutine reset_fmm_plan