compress_list Subroutine

public subroutine compress_list(n, uc_list, nit, s)

Uses

  • proc~~compress_list~~UsesGraph proc~compress_list compress_list module~mod_memory mod_memory proc~compress_list->module~mod_memory module~mod_io mod_io module~mod_memory->module~mod_io iso_c_binding iso_c_binding module~mod_memory->iso_c_binding module~mod_constants mod_constants module~mod_memory->module~mod_constants module~mod_io->module~mod_constants module~mod_constants->iso_c_binding

This subroutine takes as input a sparse matrix (rank [n]) in an uncompressed yale format [uc_list], as a rectangular matrix ([n] x max_el_per_row) and the actual number of items [nit] for each row (remaining elements are not considered) and compress in a Yale format sparse matrix [s]. The task is parallelized to handle large matrices.

Arguments

Type IntentOptional Attributes Name
integer(kind=ip), intent(in) :: n

Rank of matrix

integer(kind=ip), intent(in) :: uc_list(:,:)

Uncompressed list/boolean sparse matrix

integer(kind=ip), intent(in) :: nit(n)

Number of elements for each row of [uc_list]

type(yale_sparse), intent(out) :: s

Output sparse matrix


Calls

proc~~compress_list~~CallsGraph proc~compress_list compress_list interface~mfree mfree proc~compress_list->interface~mfree interface~mallocate mallocate proc~compress_list->interface~mallocate proc~r_free1 r_free1 interface~mfree->proc~r_free1 proc~r_free3 r_free3 interface~mfree->proc~r_free3 proc~i_free2 i_free2 interface~mfree->proc~i_free2 proc~i_free1 i_free1 interface~mfree->proc~i_free1 proc~r_free2 r_free2 interface~mfree->proc~r_free2 proc~i_free3 i_free3 interface~mfree->proc~i_free3 proc~l_free1 l_free1 interface~mfree->proc~l_free1 proc~l_free2 l_free2 interface~mfree->proc~l_free2 proc~i_alloc3 i_alloc3 interface~mallocate->proc~i_alloc3 proc~l_alloc2 l_alloc2 interface~mallocate->proc~l_alloc2 proc~i_alloc1 i_alloc1 interface~mallocate->proc~i_alloc1 proc~r_alloc3 r_alloc3 interface~mallocate->proc~r_alloc3 proc~r_alloc2 r_alloc2 interface~mallocate->proc~r_alloc2 proc~r_alloc1 r_alloc1 interface~mallocate->proc~r_alloc1 proc~i_alloc2 i_alloc2 interface~mallocate->proc~i_alloc2 proc~l_alloc1 l_alloc1 interface~mallocate->proc~l_alloc1 proc~memory_init memory_init proc~i_alloc3->proc~memory_init proc~chk_alloc chk_alloc proc~i_alloc3->proc~chk_alloc proc~l_alloc2->proc~memory_init proc~l_alloc2->proc~chk_alloc proc~i_alloc1->proc~memory_init proc~i_alloc1->proc~chk_alloc proc~r_alloc3->proc~memory_init proc~r_alloc3->proc~chk_alloc proc~r_alloc2->proc~memory_init proc~r_alloc2->proc~chk_alloc proc~chk_free chk_free proc~r_free1->proc~chk_free proc~r_free3->proc~chk_free proc~i_free2->proc~chk_free proc~i_free1->proc~chk_free proc~r_free2->proc~chk_free proc~i_free3->proc~chk_free proc~l_free1->proc~chk_free proc~l_free2->proc~chk_free proc~r_alloc1->proc~memory_init proc~r_alloc1->proc~chk_alloc proc~i_alloc2->proc~memory_init proc~i_alloc2->proc~chk_alloc proc~l_alloc1->proc~memory_init proc~l_alloc1->proc~chk_alloc proc~fatal_error fatal_error proc~chk_free->proc~fatal_error proc~chk_alloc->proc~fatal_error proc~ommp_message ommp_message proc~fatal_error->proc~ommp_message proc~close_output close_output proc~fatal_error->proc~close_output proc~close_output->proc~ommp_message

Called by

proc~~compress_list~~CalledByGraph proc~compress_list compress_list proc~reverse_grp_tab reverse_grp_tab proc~reverse_grp_tab->proc~compress_list proc~make_screening_lists make_screening_lists proc~make_screening_lists->proc~compress_list proc~adj_mat_from_conn adj_mat_from_conn proc~adj_mat_from_conn->proc~compress_list proc~mmpol_prepare mmpol_prepare proc~mmpol_prepare->proc~reverse_grp_tab proc~mmpol_prepare->proc~make_screening_lists proc~mmpol_init_from_xyz mmpol_init_from_xyz proc~mmpol_init_from_xyz->proc~adj_mat_from_conn proc~mmpol_init_from_xyz->proc~mmpol_prepare proc~assign_vdw assign_vdw proc~mmpol_init_from_xyz->proc~assign_vdw proc~guess_connectivity guess_connectivity proc~guess_connectivity->proc~adj_mat_from_conn proc~mmpol_init_from_mmp mmpol_init_from_mmp proc~mmpol_init_from_mmp->proc~adj_mat_from_conn proc~mmpol_init_from_mmp->proc~mmpol_prepare proc~nl_update nl_update proc~nl_update->proc~reverse_grp_tab proc~ommp_system_from_qm_helper ommp_system_from_qm_helper proc~ommp_system_from_qm_helper->proc~mmpol_prepare proc~ommp_system_from_qm_helper->proc~assign_vdw proc~ommp_init_mmp ommp_init_mmp proc~ommp_init_mmp->proc~mmpol_init_from_mmp proc~qm_helper_update_coord qm_helper_update_coord proc~qm_helper_update_coord->proc~guess_connectivity proc~ommp_init_xyz ommp_init_xyz proc~ommp_init_xyz->proc~mmpol_init_from_xyz proc~qm_helper_init qm_helper_init proc~qm_helper_init->proc~guess_connectivity proc~nl_init nl_init proc~nl_init->proc~nl_update proc~c_ommp_system_from_qm_helper C_ommp_system_from_qm_helper proc~c_ommp_system_from_qm_helper->proc~ommp_system_from_qm_helper proc~c_ommp_init_mmp C_ommp_init_mmp proc~c_ommp_init_mmp->proc~ommp_init_mmp program~test_si_geomgrad test_SI_geomgrad program~test_si_geomgrad->proc~ommp_system_from_qm_helper proc~ommp_create_link_atom ommp_create_link_atom proc~ommp_create_link_atom->proc~qm_helper_update_coord proc~qm_helper_init_vdw_prm qm_helper_init_vdw_prm proc~ommp_create_link_atom->proc~qm_helper_init_vdw_prm program~test_si_geomgrad_num test_SI_geomgrad_num program~test_si_geomgrad_num->proc~ommp_system_from_qm_helper proc~ommp_update_link_atoms_position ommp_update_link_atoms_position proc~ommp_update_link_atoms_position->proc~qm_helper_update_coord proc~ommp_qm_helper_update_coord ommp_qm_helper_update_coord proc~ommp_qm_helper_update_coord->proc~qm_helper_update_coord proc~c_ommp_init_xyz C_ommp_init_xyz proc~c_ommp_init_xyz->proc~ommp_init_xyz proc~ommp_init_qm_helper ommp_init_qm_helper proc~ommp_init_qm_helper->proc~qm_helper_init proc~vdw_init vdw_init proc~vdw_init->proc~nl_init proc~vdw_set_cutoff vdw_set_cutoff proc~vdw_set_cutoff->proc~nl_init proc~c_ommp_create_link_atom C_ommp_create_link_atom proc~c_ommp_create_link_atom->proc~ommp_create_link_atom proc~update_coordinates_qmmm update_coordinates_qmmm proc~update_coordinates_qmmm->proc~ommp_update_link_atoms_position proc~update_coordinates_qmmm->proc~ommp_qm_helper_update_coord proc~c_ommp_qm_helper_update_coord C_ommp_qm_helper_update_coord proc~c_ommp_qm_helper_update_coord->proc~ommp_qm_helper_update_coord proc~c_ommp_init_qm_helper C_ommp_init_qm_helper proc~c_ommp_init_qm_helper->proc~ommp_init_qm_helper proc~c_ommp_update_link_atoms_position C_ommp_update_link_atoms_position proc~c_ommp_update_link_atoms_position->proc~ommp_update_link_atoms_position proc~qm_helper_init_vdw qm_helper_init_vdw proc~qm_helper_init_vdw->proc~vdw_init proc~assign_vdw->proc~vdw_init proc~ommp_set_vdw_cutoff ommp_set_vdw_cutoff proc~ommp_set_vdw_cutoff->proc~vdw_set_cutoff proc~numerical_geomgrad_qmmm numerical_geomgrad_qmmm proc~numerical_geomgrad_qmmm->proc~update_coordinates_qmmm proc~c_ommp_qm_helper_init_vdw C_ommp_qm_helper_init_vdw proc~c_ommp_qm_helper_init_vdw->proc~qm_helper_init_vdw proc~c_ommp_set_vdw_cutoff C_ommp_set_vdw_cutoff proc~c_ommp_set_vdw_cutoff->proc~ommp_set_vdw_cutoff proc~qm_helper_init_vdw_prm->proc~assign_vdw proc~c_ommp_qm_helper_init_vdw_prm C_ommp_qm_helper_init_vdw_prm proc~c_ommp_qm_helper_init_vdw_prm->proc~qm_helper_init_vdw_prm

Contents