l_free2 Subroutine

private subroutine l_free2(string, v)

Free a 2-dimensional array of integers

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: string

Human-readable description string of the deallocation operation, just for output purpose.

logical(kind=lp), intent(inout), allocatable :: v(:,:)

Array to free


Calls

proc~~l_free2~~CallsGraph proc~l_free2 l_free2 proc~chk_free chk_free proc~l_free2->proc~chk_free proc~fatal_error fatal_error proc~chk_free->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~~l_free2~~CalledByGraph proc~l_free2 l_free2 interface~mfree mfree interface~mfree->proc~l_free2 proc~strbnd_terminate strbnd_terminate proc~strbnd_terminate->interface~mfree proc~cyclic_spline cyclic_spline proc~cyclic_spline->interface~mfree proc~topology_terminate topology_terminate proc~topology_terminate->interface~mfree proc~make_screening_lists make_screening_lists proc~make_screening_lists->interface~mfree proc~compress_list compress_list proc~make_screening_lists->proc~compress_list proc~assign_mpoles assign_mpoles proc~assign_mpoles->interface~mfree proc~ommp_set_external_field ommp_set_external_field proc~ommp_set_external_field->interface~mfree proc~polarization polarization proc~ommp_set_external_field->proc~polarization proc~strtor_terminate strtor_terminate proc~strtor_terminate->interface~mfree proc~opb_terminate opb_terminate proc~opb_terminate->interface~mfree proc~imptorsion_terminate imptorsion_terminate proc~imptorsion_terminate->interface~mfree proc~remove_null_pol remove_null_pol proc~remove_null_pol->interface~mfree proc~reverse_grp_tab reverse_grp_tab proc~reverse_grp_tab->interface~mfree proc~reverse_grp_tab->proc~compress_list proc~bond_terminate bond_terminate proc~bond_terminate->interface~mfree proc~polarization->interface~mfree proc~inversion_solver inversion_solver proc~polarization->proc~inversion_solver proc~conjugate_gradient_solver conjugate_gradient_solver proc~polarization->proc~conjugate_gradient_solver proc~jacobi_diis_solver jacobi_diis_solver proc~polarization->proc~jacobi_diis_solver proc~vdw_terminate vdw_terminate proc~vdw_terminate->interface~mfree proc~nl_terminate nl_terminate proc~vdw_terminate->proc~nl_terminate proc~add_link_atom add_link_atom proc~add_link_atom->interface~mfree proc~assign_strbnd assign_strbnd proc~assign_strbnd->interface~mfree proc~read_atom_cards read_atom_cards proc~assign_strbnd->proc~read_atom_cards proc~polarization_terminate polarization_terminate proc~polarization_terminate->interface~mfree proc~urey_terminate urey_terminate proc~urey_terminate->interface~mfree proc~inversion_solver->interface~mfree proc~nl_terminate->interface~mfree proc~compress_list->interface~mfree proc~vdw_set_pair vdw_set_pair proc~vdw_set_pair->interface~mfree proc~vdw_potential vdw_potential proc~vdw_potential->interface~mfree proc~assign_angle assign_angle proc~assign_angle->interface~mfree proc~assign_angle->proc~read_atom_cards proc~tortor_newmap tortor_newmap proc~tortor_newmap->interface~mfree proc~tortor_newmap->proc~cyclic_spline proc~angtor_terminate angtor_terminate proc~angtor_terminate->interface~mfree proc~assign_bond assign_bond proc~assign_bond->interface~mfree proc~assign_bond->proc~read_atom_cards proc~tortor_terminate tortor_terminate proc~tortor_terminate->interface~mfree proc~angle_terminate angle_terminate proc~angle_terminate->interface~mfree proc~mmpol_ommp_print_summary mmpol_ommp_print_summary proc~mmpol_ommp_print_summary->interface~mfree proc~sort_ivec sort_ivec proc~mmpol_ommp_print_summary->proc~sort_ivec proc~assign_torsion assign_torsion proc~assign_torsion->interface~mfree proc~assign_torsion->proc~read_atom_cards proc~read_atom_cards->interface~mfree proc~conjugate_gradient_solver->interface~mfree proc~adj_mat_from_conn adj_mat_from_conn proc~adj_mat_from_conn->interface~mfree proc~adj_mat_from_conn->proc~compress_list proc~sort_ivec_inplace sort_ivec_inplace proc~adj_mat_from_conn->proc~sort_ivec_inplace proc~qm_helper_link_atom_geomgrad qm_helper_link_atom_geomgrad proc~qm_helper_link_atom_geomgrad->interface~mfree proc~link_atom_angle_geomgrad link_atom_angle_geomgrad proc~qm_helper_link_atom_geomgrad->proc~link_atom_angle_geomgrad proc~link_atom_torsion_geomgrad link_atom_torsion_geomgrad proc~qm_helper_link_atom_geomgrad->proc~link_atom_torsion_geomgrad proc~link_atom_bond_geomgrad link_atom_bond_geomgrad proc~qm_helper_link_atom_geomgrad->proc~link_atom_bond_geomgrad proc~diis diis proc~diis->interface~mfree proc~guess_connectivity guess_connectivity proc~guess_connectivity->interface~mfree proc~guess_connectivity->proc~adj_mat_from_conn proc~assign_strtor assign_strtor proc~assign_strtor->interface~mfree proc~assign_strtor->proc~read_atom_cards proc~mmpol_init_from_xyz mmpol_init_from_xyz proc~mmpol_init_from_xyz->interface~mfree proc~mmpol_init_from_xyz->proc~assign_mpoles proc~mmpol_init_from_xyz->proc~assign_strbnd proc~mmpol_init_from_xyz->proc~assign_angle proc~mmpol_init_from_xyz->proc~assign_bond proc~mmpol_init_from_xyz->proc~assign_torsion proc~mmpol_init_from_xyz->proc~adj_mat_from_conn proc~mmpol_init_from_xyz->proc~assign_strtor proc~assign_imptorsion assign_imptorsion proc~mmpol_init_from_xyz->proc~assign_imptorsion proc~assign_vdw assign_vdw proc~mmpol_init_from_xyz->proc~assign_vdw proc~assign_pitors assign_pitors proc~mmpol_init_from_xyz->proc~assign_pitors proc~assign_tortors assign_tortors proc~mmpol_init_from_xyz->proc~assign_tortors proc~assign_angtor assign_angtor proc~mmpol_init_from_xyz->proc~assign_angtor proc~assign_pol assign_pol proc~mmpol_init_from_xyz->proc~assign_pol proc~assign_urey assign_urey proc~mmpol_init_from_xyz->proc~assign_urey proc~assign_opb assign_opb proc~mmpol_init_from_xyz->proc~assign_opb proc~mmpol_prepare mmpol_prepare proc~mmpol_init_from_xyz->proc~mmpol_prepare proc~assign_imptorsion->interface~mfree proc~assign_imptorsion->proc~read_atom_cards proc~jacobi_diis_solver->interface~mfree proc~jacobi_diis_solver->proc~diis proc~update_coordinates update_coordinates proc~update_coordinates->interface~mfree proc~electrostatics_terminate electrostatics_terminate proc~electrostatics_terminate->interface~mfree proc~link_atom_angle_geomgrad->interface~mfree proc~sort_ivec_inplace->interface~mfree proc~sort_ivec_inplace->proc~sort_ivec proc~assign_vdw->interface~mfree proc~assign_vdw->proc~vdw_set_pair proc~assign_vdw->proc~read_atom_cards proc~vdw_init vdw_init proc~assign_vdw->proc~vdw_init proc~qm_helper_terminate qm_helper_terminate proc~qm_helper_terminate->interface~mfree proc~qm_helper_terminate->proc~topology_terminate proc~qm_helper_terminate->proc~vdw_terminate proc~assign_pitors->interface~mfree proc~assign_pitors->proc~read_atom_cards proc~assign_tortors->interface~mfree proc~assign_tortors->proc~tortor_newmap proc~assign_tortors->proc~read_atom_cards proc~torsion_terminate torsion_terminate proc~torsion_terminate->interface~mfree proc~assign_angtor->interface~mfree proc~assign_angtor->proc~read_atom_cards proc~check_vdw_pairs check_vdw_pairs proc~check_vdw_pairs->interface~mfree proc~assign_pol->interface~mfree proc~sort_ivec->interface~mfree proc~link_atom_torsion_geomgrad->interface~mfree proc~link_atom_bond_geomgrad->interface~mfree proc~assign_urey->interface~mfree proc~assign_urey->proc~read_atom_cards proc~assign_opb->interface~mfree proc~assign_opb->proc~read_atom_cards proc~init_eel_for_link_atom init_eel_for_link_atom proc~init_eel_for_link_atom->interface~mfree proc~init_eel_for_link_atom->proc~assign_mpoles proc~init_eel_for_link_atom->proc~remove_null_pol proc~nl_update nl_update proc~nl_update->interface~mfree proc~nl_update->proc~reverse_grp_tab proc~pitors_terminate pitors_terminate proc~pitors_terminate->interface~mfree proc~mmpol_init_from_mmp mmpol_init_from_mmp proc~mmpol_init_from_mmp->interface~mfree proc~mmpol_init_from_mmp->proc~adj_mat_from_conn proc~mmpol_init_from_mmp->proc~mmpol_prepare proc~init_vdw_for_link_atom init_vdw_for_link_atom proc~init_vdw_for_link_atom->proc~check_vdw_pairs proc~add_screening_pair add_screening_pair proc~init_vdw_for_link_atom->proc~add_screening_pair proc~ommp_torsion_geomgrad ommp_torsion_geomgrad proc~ommp_torsion_geomgrad->proc~link_atom_torsion_geomgrad proc~ommp_create_link_atom ommp_create_link_atom proc~ommp_create_link_atom->proc~add_link_atom proc~ommp_create_link_atom->proc~init_eel_for_link_atom proc~ommp_create_link_atom->proc~init_vdw_for_link_atom proc~init_bonded_for_link_atom init_bonded_for_link_atom proc~ommp_create_link_atom->proc~init_bonded_for_link_atom proc~qm_helper_init_vdw_prm qm_helper_init_vdw_prm proc~ommp_create_link_atom->proc~qm_helper_init_vdw_prm proc~qm_helper_update_coord qm_helper_update_coord proc~ommp_create_link_atom->proc~qm_helper_update_coord program~test_si_init test_SI_init program~test_si_init->proc~mmpol_ommp_print_summary proc~ommp_terminate_qm_helper ommp_terminate_qm_helper program~test_si_init->proc~ommp_terminate_qm_helper proc~ommp_terminate ommp_terminate program~test_si_init->proc~ommp_terminate proc~vdw_set_cutoff vdw_set_cutoff proc~vdw_set_cutoff->proc~nl_terminate proc~nl_init nl_init proc~vdw_set_cutoff->proc~nl_init proc~bonded_terminate bonded_terminate proc~bonded_terminate->proc~strbnd_terminate proc~bonded_terminate->proc~strtor_terminate proc~bonded_terminate->proc~opb_terminate proc~bonded_terminate->proc~imptorsion_terminate proc~bonded_terminate->proc~bond_terminate proc~bonded_terminate->proc~urey_terminate proc~bonded_terminate->proc~angtor_terminate proc~bonded_terminate->proc~tortor_terminate proc~bonded_terminate->proc~angle_terminate proc~bonded_terminate->proc~torsion_terminate proc~bonded_terminate->proc~pitors_terminate proc~ommp_set_external_field_nomm ommp_set_external_field_nomm proc~ommp_set_external_field_nomm->proc~ommp_set_external_field proc~ommp_system_from_qm_helper ommp_system_from_qm_helper proc~ommp_system_from_qm_helper->proc~assign_mpoles proc~ommp_system_from_qm_helper->proc~assign_strbnd proc~ommp_system_from_qm_helper->proc~assign_angle proc~ommp_system_from_qm_helper->proc~assign_bond proc~ommp_system_from_qm_helper->proc~assign_torsion proc~ommp_system_from_qm_helper->proc~assign_strtor proc~ommp_system_from_qm_helper->proc~assign_imptorsion proc~ommp_system_from_qm_helper->proc~assign_vdw proc~ommp_system_from_qm_helper->proc~assign_pitors proc~ommp_system_from_qm_helper->proc~assign_tortors proc~ommp_system_from_qm_helper->proc~assign_angtor proc~ommp_system_from_qm_helper->proc~assign_pol proc~ommp_system_from_qm_helper->proc~assign_urey proc~ommp_system_from_qm_helper->proc~assign_opb proc~ommp_system_from_qm_helper->proc~mmpol_prepare proc~mmpol_prepare->proc~make_screening_lists proc~mmpol_prepare->proc~remove_null_pol proc~mmpol_prepare->proc~reverse_grp_tab program~test_si_potential test_SI_potential program~test_si_potential->proc~ommp_set_external_field proc~ommp_get_vdw_energy ommp_get_vdw_energy program~test_si_potential->proc~ommp_get_vdw_energy proc~ommp_get_polelec_energy ommp_get_polelec_energy program~test_si_potential->proc~ommp_get_polelec_energy program~test_si_potential->proc~ommp_terminate_qm_helper program~test_si_potential->proc~ommp_terminate proc~init_bonded_for_link_atom->proc~bond_terminate proc~init_bonded_for_link_atom->proc~assign_angle proc~init_bonded_for_link_atom->proc~assign_bond proc~init_bonded_for_link_atom->proc~angle_terminate proc~init_bonded_for_link_atom->proc~assign_torsion proc~init_bonded_for_link_atom->proc~torsion_terminate proc~init_bonded_for_link_atom->proc~bonded_terminate proc~polelec_geomgrad polelec_geomgrad proc~polelec_geomgrad->proc~polarization proc~c_ommp_update_coordinates C_ommp_update_coordinates proc~c_ommp_update_coordinates->proc~update_coordinates proc~c_ommp_terminate_qm_helper C_ommp_terminate_qm_helper proc~c_ommp_terminate_qm_helper->proc~qm_helper_terminate proc~add_screening_pair->proc~check_vdw_pairs proc~ommp_full_bnd_geomgrad ommp_full_bnd_geomgrad proc~ommp_full_bnd_geomgrad->proc~link_atom_angle_geomgrad proc~ommp_full_bnd_geomgrad->proc~link_atom_torsion_geomgrad proc~ommp_full_bnd_geomgrad->proc~link_atom_bond_geomgrad proc~ommp_angle_geomgrad ommp_angle_geomgrad proc~ommp_angle_geomgrad->proc~link_atom_angle_geomgrad proc~numerical_geomgrad numerical_geomgrad proc~numerical_geomgrad->proc~update_coordinates proc~qm_helper_init_vdw_prm->proc~assign_vdw proc~ommp_init_mmp ommp_init_mmp proc~ommp_init_mmp->proc~mmpol_init_from_mmp proc~c_ommp_print_summary_to_file C_ommp_print_summary_to_file proc~c_ommp_print_summary_to_file->proc~mmpol_ommp_print_summary proc~ommp_get_vdw_energy->proc~vdw_potential proc~qm_helper_init qm_helper_init proc~qm_helper_init->proc~guess_connectivity proc~mmpol_terminate mmpol_terminate proc~mmpol_terminate->proc~topology_terminate proc~mmpol_terminate->proc~vdw_terminate proc~mmpol_terminate->proc~electrostatics_terminate proc~mmpol_terminate->proc~bonded_terminate proc~c_ommp_set_external_field C_ommp_set_external_field proc~c_ommp_set_external_field->proc~ommp_set_external_field proc~c_ommp_set_external_field_nomm C_ommp_set_external_field_nomm proc~c_ommp_set_external_field_nomm->proc~ommp_set_external_field proc~ommp_turn_pol_off ommp_turn_pol_off proc~ommp_turn_pol_off->proc~remove_null_pol proc~ommp_get_polelec_energy->proc~polarization proc~qm_helper_update_coord->proc~guess_connectivity proc~update_coordinates_qmmm update_coordinates_qmmm proc~update_coordinates_qmmm->proc~update_coordinates proc~ommp_update_link_atoms_position ommp_update_link_atoms_position proc~update_coordinates_qmmm->proc~ommp_update_link_atoms_position proc~ommp_qm_helper_update_coord ommp_qm_helper_update_coord proc~update_coordinates_qmmm->proc~ommp_qm_helper_update_coord proc~ommp_init_xyz ommp_init_xyz proc~ommp_init_xyz->proc~mmpol_init_from_xyz proc~ommp_bond_geomgrad ommp_bond_geomgrad proc~ommp_bond_geomgrad->proc~link_atom_bond_geomgrad proc~nl_init->proc~nl_update proc~ommp_terminate_qm_helper->proc~qm_helper_terminate proc~ommp_qm_helper_link_atom_geomgrad ommp_qm_helper_link_atom_geomgrad proc~ommp_qm_helper_link_atom_geomgrad->proc~qm_helper_link_atom_geomgrad proc~ommp_update_link_atoms_position->proc~qm_helper_update_coord proc~ommp_get_full_energy ommp_get_full_energy proc~ommp_get_full_energy->proc~ommp_get_vdw_energy proc~ommp_get_full_ele_energy ommp_get_full_ele_energy proc~ommp_get_full_energy->proc~ommp_get_full_ele_energy proc~ommp_terminate->proc~mmpol_terminate proc~ommp_get_full_ele_energy->proc~ommp_get_polelec_energy proc~c_ommp_init_mmp C_ommp_init_mmp proc~c_ommp_init_mmp->proc~ommp_init_mmp proc~ommp_init_qm_helper ommp_init_qm_helper proc~ommp_init_qm_helper->proc~qm_helper_init proc~c_ommp_torsion_geomgrad C_ommp_torsion_geomgrad proc~c_ommp_torsion_geomgrad->proc~ommp_torsion_geomgrad proc~c_ommp_full_bnd_geomgrad C_ommp_full_bnd_geomgrad proc~c_ommp_full_bnd_geomgrad->proc~ommp_full_bnd_geomgrad proc~c_ommp_angle_geomgrad C_ommp_angle_geomgrad proc~c_ommp_angle_geomgrad->proc~ommp_angle_geomgrad 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 proc~c_ommp_turn_pol_off C_ommp_turn_pol_off proc~c_ommp_turn_pol_off->proc~ommp_turn_pol_off proc~c_ommp_qm_helper_link_atom_geomgrad C_ommp_qm_helper_link_atom_geomgrad proc~c_ommp_qm_helper_link_atom_geomgrad->proc~ommp_qm_helper_link_atom_geomgrad proc~numerical_geomgrad_qmmm numerical_geomgrad_qmmm proc~numerical_geomgrad_qmmm->proc~update_coordinates_qmmm proc~vdw_init->proc~nl_init proc~num_grd_print num_grd_print proc~num_grd_print->proc~numerical_geomgrad proc~c_ommp_init_xyz C_ommp_init_xyz proc~c_ommp_init_xyz->proc~ommp_init_xyz proc~ommptest_totalqmmm_geomgrad ommptest_totalqmmm_geomgrad proc~ommptest_totalqmmm_geomgrad->proc~ommp_qm_helper_link_atom_geomgrad proc~ommp_full_geomgrad ommp_full_geomgrad proc~ommptest_totalqmmm_geomgrad->proc~ommp_full_geomgrad proc~ommp_set_vdw_cutoff ommp_set_vdw_cutoff proc~ommp_set_vdw_cutoff->proc~vdw_set_cutoff 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 program~test_si_geomgrad test_SI_geomgrad program~test_si_geomgrad->proc~ommp_system_from_qm_helper program~test_si_geomgrad->proc~ommp_turn_pol_off program~test_si_geomgrad->proc~ommp_terminate_qm_helper program~test_si_geomgrad->proc~ommp_terminate proc~c_ommp_create_link_atom C_ommp_create_link_atom proc~c_ommp_create_link_atom->proc~ommp_create_link_atom program~test_si_geomgrad_num test_SI_geomgrad_num program~test_si_geomgrad_num->proc~ommp_system_from_qm_helper program~test_si_geomgrad_num->proc~ommp_turn_pol_off program~test_si_geomgrad_num->proc~ommp_terminate_qm_helper program~test_si_geomgrad_num->proc~ommp_terminate program~test_si_geomgrad_num->proc~num_grd_print proc~ommp_polelec_geomgrad ommp_polelec_geomgrad proc~ommp_polelec_geomgrad->proc~polelec_geomgrad proc~ommp_full_geomgrad->proc~polelec_geomgrad proc~ommp_full_geomgrad->proc~ommp_full_bnd_geomgrad proc~c_ommp_get_vdw_energy C_ommp_get_vdw_energy proc~c_ommp_get_vdw_energy->proc~ommp_get_vdw_energy proc~c_ommp_get_polelec_energy C_ommp_get_polelec_energy proc~c_ommp_get_polelec_energy->proc~ommp_get_polelec_energy proc~ommp_qm_helper_update_coord->proc~qm_helper_update_coord proc~c_ommp_bond_geomgrad C_ommp_bond_geomgrad proc~c_ommp_bond_geomgrad->proc~ommp_bond_geomgrad proc~ommptest_fakeqm_linkatom_geomgrad ommptest_fakeqm_linkatom_geomgrad proc~ommptest_fakeqm_linkatom_geomgrad->proc~ommp_qm_helper_link_atom_geomgrad proc~ommptest_fakeqm_linkatom_geomgrad->proc~ommp_full_geomgrad 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_update_link_atoms_position C_ommp_update_link_atoms_position proc~c_ommp_update_link_atoms_position->proc~ommp_update_link_atoms_position proc~c_ommp_terminate C_ommp_terminate proc~c_ommp_terminate->proc~ommp_terminate proc~c_ommp_get_full_ele_energy C_ommp_get_full_ele_energy proc~c_ommp_get_full_ele_energy->proc~ommp_get_full_ele_energy 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_get_full_energy C_ommp_get_full_energy proc~c_ommp_get_full_energy->proc~ommp_get_full_energy proc~qm_helper_init_vdw qm_helper_init_vdw proc~qm_helper_init_vdw->proc~vdw_init proc~c_ommp_set_vdw_cutoff C_ommp_set_vdw_cutoff proc~c_ommp_set_vdw_cutoff->proc~ommp_set_vdw_cutoff proc~c_ommp_polelec_geomgrad C_ommp_polelec_geomgrad proc~c_ommp_polelec_geomgrad->proc~ommp_polelec_geomgrad proc~c_ommp_full_geomgrad C_ommp_full_geomgrad proc~c_ommp_full_geomgrad->proc~ommp_full_geomgrad proc~ommptest_fakeqm_internal_geomgrad ommptest_fakeqm_internal_geomgrad proc~ommptest_fakeqm_internal_geomgrad->proc~ommp_full_geomgrad 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

Contents

Source Code


Source Code

    subroutine l_free2(string, v)
        !! Free a 2-dimensional array of integers
        
        character (len=*), intent(in) :: string
        !! Human-readable description string of the deallocation
        !! operation, just for output purpose.
        logical(lp), allocatable, intent(inout) :: v(:,:)
        !! Array to free
        
        integer(ip) :: istat, ltot
  
        if(allocated(v)) then
            ltot = size(v) * size_of_logical
            deallocate(v, stat=istat)
            call chk_free(string, ltot, istat)
        end if
    end subroutine l_free2