reordering_methods Submodule


Uses

  • module~~reordering_methods~~UsesGraph module~reordering_methods reordering_methods module~domain_reordering domain_reordering module~reordering_methods->module~domain_reordering iso_fortran_env iso_fortran_env module~domain_reordering->iso_fortran_env module~domain_adjacency_adjacency_node domain_adjacency_adjacency_node module~domain_reordering->module~domain_adjacency_adjacency_node module~module_core module_core module~domain_reordering->module~module_core module~module_mesh module_mesh module~domain_reordering->module~module_mesh stdlib_sorting stdlib_sorting module~domain_reordering->stdlib_sorting module~domain_adjacency_adjacency_node->iso_fortran_env module~domain_adjacency_adjacency_node->module~module_core module~domain_adjacency_adjacency_node->module~module_mesh module~domain_adjacency_adjacency_node->stdlib_sorting core_check_nan core_check_nan module~module_core->core_check_nan module~core_allocate core_allocate module~module_core->module~core_allocate module~core_check_range core_check_range module~module_core->module~core_check_range module~core_deallocate core_deallocate module~module_core->module~core_deallocate module~core_error core_error module~module_core->module~core_error module~core_fortran_utils core_fortran_utils module~module_core->module~core_fortran_utils module~core_string_utils core_string_utils module~module_core->module~core_string_utils module~core_types core_types module~module_core->module~core_types module~core_unique core_unique module~module_core->module~core_unique module~core_vtk core_vtk module~module_core->module~core_vtk module~core_vtk_vtk_constants core_vtk_vtk_constants module~module_core->module~core_vtk_vtk_constants module~domain_mesh domain_mesh module~module_mesh->module~domain_mesh module~module_mesh_element module_mesh_element module~module_mesh->module~module_mesh_element module~module_mesh_side module_mesh_side module~module_mesh->module~module_mesh_side module~core_allocate->iso_fortran_env module~core_allocate->module~core_error module~core_check_range->iso_fortran_env module~core_deallocate->iso_fortran_env module~core_deallocate->module~core_error module~core_error->iso_fortran_env stdlib_logger stdlib_logger module~core_error->stdlib_logger module~core_fortran_utils_memory_stats_wrapper core_fortran_utils_memory_stats_wrapper module~core_fortran_utils->module~core_fortran_utils_memory_stats_wrapper module~core_fortran_utils_signal_flag_wrapper core_fortran_utils_signal_flag_wrapper module~core_fortran_utils->module~core_fortran_utils_signal_flag_wrapper module~core_fortran_utils_system_info_wrapper core_fortran_utils_system_info_wrapper module~core_fortran_utils->module~core_fortran_utils_system_info_wrapper module~core_string_utils->iso_fortran_env module~core_string_utils->module~core_allocate module~core_types_array core_types_array module~core_types->module~core_types_array module~core_types_gauss core_types_gauss module~core_types->module~core_types_gauss module~core_types_pointer core_types_pointer module~core_types->module~core_types_pointer module~core_types_variable core_types_variable module~core_types->module~core_types_variable module~core_types_vector core_types_vector module~core_types->module~core_types_vector module~module_type_matrix module_type_matrix module~core_types->module~module_type_matrix module~core_unique->iso_fortran_env module~core_unique->stdlib_sorting module~core_unique->module~core_allocate module~core_vtk->iso_fortran_env module~core_vtk->stdlib_sorting module~core_vtk->module~core_allocate module~core_vtk->module~core_deallocate module~core_vtk->module~core_types module~core_vtk->module~core_unique module~core_vtk->module~core_vtk_vtk_constants iso_c_binding iso_c_binding module~core_vtk->iso_c_binding module~core_vtk_vtk_wrapper core_vtk_vtk_wrapper module~core_vtk->module~core_vtk_vtk_wrapper module~core_vtk_vtu_wrapper core_vtk_vtu_wrapper module~core_vtk->module~core_vtk_vtu_wrapper module~core_vtk_vtk_constants->iso_fortran_env module~domain_mesh->iso_fortran_env module~domain_mesh->module~module_core module~domain_mesh->stdlib_logger module~domain_mesh_element domain_mesh_element module~module_mesh_element->module~domain_mesh_element module~domain_mesh_element_factory domain_mesh_element_factory module~module_mesh_element->module~domain_mesh_element_factory module~domain_mesh_side domain_mesh_side module~module_mesh_side->module~domain_mesh_side module~domain_mesh_side_factory domain_mesh_side_factory module~module_mesh_side->module~domain_mesh_side_factory module~core_fortran_utils_memory_stats_wrapper->iso_fortran_env module~core_c_utils core_c_utils module~core_fortran_utils_memory_stats_wrapper->module~core_c_utils module~core_fortran_utils_signal_flag_wrapper->iso_fortran_env module~core_fortran_utils_signal_flag_wrapper->iso_c_binding module~core_fortran_utils_signal_flag_wrapper->stdlib_logger module~core_c_utils_signal_flag core_c_utils_signal_flag module~core_fortran_utils_signal_flag_wrapper->module~core_c_utils_signal_flag module~core_fortran_utils_system_info_wrapper->iso_fortran_env module~core_fortran_utils_system_info_wrapper->iso_c_binding module~core_fortran_utils_system_info_wrapper->module~core_c_utils stdlib_strings stdlib_strings module~core_fortran_utils_system_info_wrapper->stdlib_strings module~core_types_array->iso_fortran_env module~core_types_array->module~core_allocate module~core_types_array->module~core_deallocate module~core_types_gauss->iso_fortran_env module~core_types_pointer->iso_fortran_env module~core_types_variable->iso_fortran_env module~core_types_variable->module~core_allocate module~core_types_vector->iso_fortran_env module~core_vtk_vtk_wrapper->iso_c_binding module~core_vtk_vtu_wrapper->iso_c_binding module~domain_mesh_element->iso_fortran_env module~domain_mesh_element->module~module_core module~domain_mesh_element->module~domain_mesh module~domain_mesh_element->stdlib_logger module~module_input module_input module~domain_mesh_element->module~module_input module~domain_mesh_element_factory->iso_fortran_env module~domain_mesh_element_factory->module~module_core module~domain_mesh_element_factory->module~domain_mesh_element module~domain_mesh_element_factory->module~module_input module~domain_mesh_side->iso_fortran_env module~domain_mesh_side->module~module_core module~domain_mesh_side->module~domain_mesh module~domain_mesh_side->stdlib_logger module~domain_mesh_side->module~module_input module~domain_mesh_side_factory->iso_fortran_env module~domain_mesh_side_factory->module~module_core module~domain_mesh_side_factory->module~domain_mesh_side module~domain_mesh_side_factory->module~module_input module~core_types_matrix core_types_matrix module~module_type_matrix->module~core_types_matrix module~core_types_matrix_coo core_types_matrix_coo module~module_type_matrix->module~core_types_matrix_coo module~core_types_matrix_crs core_types_matrix_crs module~module_type_matrix->module~core_types_matrix_crs module~core_types_matrix_dense core_types_matrix_dense module~module_type_matrix->module~core_types_matrix_dense module~core_c_utils->iso_c_binding module~core_c_utils->module~core_c_utils_signal_flag module~core_c_utils_memory_stats core_c_utils_memory_stats module~core_c_utils->module~core_c_utils_memory_stats module~core_c_utils_system_info core_c_utils_system_info module~core_c_utils->module~core_c_utils_system_info module~core_c_utils_signal_flag->iso_c_binding module~core_types_matrix->iso_fortran_env module~core_types_matrix_coo->iso_fortran_env module~core_types_matrix_coo->module~core_allocate module~core_types_matrix_coo->module~core_deallocate module~core_types_matrix_coo->module~core_types_matrix module~core_types_matrix_crs->iso_fortran_env module~core_types_matrix_crs->module~core_allocate module~core_types_matrix_crs->module~core_deallocate module~core_types_matrix_crs->module~core_types_matrix module~core_types_matrix_dense->iso_fortran_env module~core_types_matrix_dense->module~core_allocate module~core_types_matrix_dense->module~core_deallocate module~core_types_matrix_dense->module~core_types_matrix module~inout_input inout_input module~module_input->module~inout_input module~core_c_utils_memory_stats->iso_c_binding module~core_c_utils_system_info->iso_c_binding module~inout_input->iso_fortran_env module~inout_input->module~module_core module~inout_input->stdlib_logger module~inout_input->stdlib_strings json_module json_module module~inout_input->json_module module~inout_project_settings inout_project_settings module~inout_input->module~inout_project_settings module~inout_project_settings->iso_fortran_env module~inout_project_settings->module~module_core

Subroutines

subroutine execute_bfs_ordering(start_node, node_adj, degree, visited, Q, R, R_count)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: start_node
class(type_node_adjacency), intent(in) :: node_adj
integer(kind=int32), intent(in) :: degree(:)
logical, intent(inout) :: visited(:)
integer(kind=int32), intent(inout) :: Q(:)
integer(kind=int32), intent(inout) :: R(:)
integer(kind=int32), intent(inout) :: R_count

subroutine execute_reordering_core(node_adj, cm_perm)

Arguments

Type IntentOptional Attributes Name
class(type_node_adjacency), intent(in) :: node_adj
integer(kind=int32), intent(out), allocatable :: cm_perm(:)

subroutine find_start_node(num_nodes, degree, visited, start_node, istat)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: num_nodes
integer(kind=int32), intent(in) :: degree(:)
logical, intent(in) :: visited(:)
integer(kind=int32), intent(out) :: start_node
integer(kind=int32), intent(out) :: istat

subroutine sort_and_enqueue_neighbors(node, node_adj, degree, visited, Q, q_tail)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: node
class(type_node_adjacency), intent(in) :: node_adj
integer(kind=int32), intent(in) :: degree(:)
logical, intent(inout) :: visited(:)
integer(kind=int32), intent(inout) :: Q(:)
integer(kind=int32), intent(inout) :: q_tail

Module Subroutines

module subroutine cm_reorder_method(self, node_adj)

Arguments

Type IntentOptional Attributes Name
class(type_reordering), intent(inout) :: self
class(type_node_adjacency), intent(in) :: node_adj

module subroutine create_inverse_permutation(self)

Arguments

Type IntentOptional Attributes Name
class(type_reordering), intent(inout) :: self

module subroutine rcm_reorder_method(self, node_adj)

Arguments

Type IntentOptional Attributes Name
class(type_reordering), intent(inout) :: self
class(type_node_adjacency), intent(in) :: node_adj