l_alloc2 Subroutine

private subroutine l_alloc2(string, len1, len2, v)

Allocate a 2-dimensional array of reals

Arguments

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

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

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

Dimensions of the vector

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

Dimensions of the vector

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

Vector to allocate


Calls

proc~~l_alloc2~~CallsGraph proc~l_alloc2 l_alloc2 proc~memory_init memory_init proc~l_alloc2->proc~memory_init proc~chk_alloc chk_alloc proc~l_alloc2->proc~chk_alloc proc~fatal_error 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~~l_alloc2~~CalledByGraph proc~l_alloc2 l_alloc2 interface~mallocate mallocate interface~mallocate->proc~l_alloc2 proc~angtor_init angtor_init proc~angtor_init->interface~mallocate proc~make_screening_lists make_screening_lists proc~make_screening_lists->interface~mallocate proc~compress_data compress_data proc~make_screening_lists->proc~compress_data proc~compress_list compress_list proc~make_screening_lists->proc~compress_list proc~compress_data->interface~mallocate proc~mmpol_ommp_print_summary mmpol_ommp_print_summary proc~mmpol_ommp_print_summary->interface~mallocate proc~sort_ivec sort_ivec proc~mmpol_ommp_print_summary->proc~sort_ivec proc~sort_ivec->interface~mallocate proc~ommp_set_external_field ommp_set_external_field proc~ommp_set_external_field->interface~mallocate proc~prepare_polelec prepare_polelec proc~ommp_set_external_field->proc~prepare_polelec proc~polarization polarization proc~ommp_set_external_field->proc~polarization proc~tortor_init tortor_init proc~tortor_init->interface~mallocate proc~assign_angle assign_angle proc~assign_angle->interface~mallocate proc~angle_init angle_init proc~assign_angle->proc~angle_init proc~read_atom_cards read_atom_cards proc~assign_angle->proc~read_atom_cards proc~angle_init->interface~mallocate proc~assign_mpoles assign_mpoles proc~assign_mpoles->interface~mallocate proc~compress_list->interface~mallocate proc~remove_null_pol remove_null_pol proc~remove_null_pol->interface~mallocate proc~prepare_polelec->interface~mallocate proc~polarization->interface~mallocate proc~inversion_solver inversion_solver proc~polarization->proc~inversion_solver proc~jacobi_diis_solver jacobi_diis_solver proc~polarization->proc~jacobi_diis_solver proc~conjugate_gradient_solver conjugate_gradient_solver proc~polarization->proc~conjugate_gradient_solver proc~cyclic_spline cyclic_spline proc~cyclic_spline->interface~mallocate proc~read_atom_cards->interface~mallocate proc~add_link_atom add_link_atom proc~add_link_atom->interface~mallocate proc~assign_strbnd assign_strbnd proc~assign_strbnd->interface~mallocate proc~assign_strbnd->proc~read_atom_cards proc~strbnd_init strbnd_init proc~assign_strbnd->proc~strbnd_init proc~electrostatic_for_ene electrostatic_for_ene proc~electrostatic_for_ene->interface~mallocate proc~qm_helper_init qm_helper_init proc~qm_helper_init->interface~mallocate proc~topology_init topology_init proc~qm_helper_init->proc~topology_init proc~guess_connectivity guess_connectivity proc~qm_helper_init->proc~guess_connectivity proc~inversion_solver->interface~mallocate proc~prepare_fixedelec prepare_fixedelec proc~prepare_fixedelec->interface~mallocate proc~jacobi_diis_solver->interface~mallocate proc~diis diis proc~jacobi_diis_solver->proc~diis proc~vdw_geomgrad vdw_geomgrad proc~vdw_geomgrad->interface~mallocate proc~pitors_init pitors_init proc~pitors_init->interface~mallocate proc~vdw_init vdw_init proc~vdw_init->interface~mallocate proc~nl_init nl_init proc~vdw_init->proc~nl_init proc~vdw_set_pair vdw_set_pair proc~vdw_set_pair->interface~mallocate proc~vdw_potential vdw_potential proc~vdw_potential->interface~mallocate proc~tortor_newmap tortor_newmap proc~tortor_newmap->interface~mallocate proc~tortor_newmap->proc~cyclic_spline proc~electrostatic_for_grad electrostatic_for_grad proc~electrostatic_for_grad->interface~mallocate proc~topology_init->interface~mallocate proc~assign_bond assign_bond proc~assign_bond->interface~mallocate proc~assign_bond->proc~read_atom_cards proc~bond_init bond_init proc~assign_bond->proc~bond_init proc~c_ommp_get_polar_mm C_ommp_get_polar_mm proc~c_ommp_get_polar_mm->interface~mallocate proc~assign_torsion assign_torsion proc~assign_torsion->interface~mallocate proc~assign_torsion->proc~read_atom_cards proc~torsion_init torsion_init proc~assign_torsion->proc~torsion_init proc~conjugate_gradient_solver->interface~mallocate proc~qm_helper_link_atom_geomgrad qm_helper_link_atom_geomgrad proc~qm_helper_link_atom_geomgrad->interface~mallocate 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->interface~mallocate proc~guess_connectivity->interface~mallocate proc~adj_mat_from_conn adj_mat_from_conn proc~guess_connectivity->proc~adj_mat_from_conn proc~urey_init urey_init proc~urey_init->interface~mallocate proc~assign_strtor assign_strtor proc~assign_strtor->interface~mallocate proc~assign_strtor->proc~read_atom_cards proc~strtor_init strtor_init proc~assign_strtor->proc~strtor_init proc~mmpol_init_from_xyz mmpol_init_from_xyz proc~mmpol_init_from_xyz->interface~mallocate proc~mmpol_init_from_xyz->proc~assign_angle proc~mmpol_init_from_xyz->proc~assign_mpoles proc~mmpol_init_from_xyz->proc~assign_strbnd proc~mmpol_init_from_xyz->proc~assign_bond proc~mmpol_init_from_xyz->proc~assign_torsion 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_init_from_xyz->proc~adj_mat_from_conn proc~mmpol_prepare mmpol_prepare proc~mmpol_init_from_xyz->proc~mmpol_prepare proc~mmpol_init mmpol_init proc~mmpol_init_from_xyz->proc~mmpol_init proc~assign_imptorsion->interface~mallocate proc~assign_imptorsion->proc~read_atom_cards proc~imptorsion_init imptorsion_init proc~assign_imptorsion->proc~imptorsion_init proc~link_atom_angle_geomgrad->interface~mallocate proc~strbnd_init->interface~mallocate proc~assign_vdw->interface~mallocate proc~assign_vdw->proc~read_atom_cards proc~assign_vdw->proc~vdw_init proc~assign_vdw->proc~vdw_set_pair proc~init_link_atom init_link_atom proc~init_link_atom->interface~mallocate proc~merge_top merge_top proc~init_link_atom->proc~merge_top proc~assign_pitors->interface~mallocate proc~assign_pitors->proc~read_atom_cards proc~assign_pitors->proc~pitors_init proc~assign_tortors->interface~mallocate proc~assign_tortors->proc~tortor_init proc~assign_tortors->proc~read_atom_cards proc~assign_tortors->proc~tortor_newmap proc~assign_angtor->interface~mallocate proc~assign_angtor->proc~angtor_init proc~assign_angtor->proc~read_atom_cards proc~check_vdw_pairs check_vdw_pairs proc~check_vdw_pairs->interface~mallocate proc~assign_pol->interface~mallocate proc~link_atom_torsion_geomgrad->interface~mallocate proc~link_atom_bond_geomgrad->interface~mallocate proc~assign_urey->interface~mallocate proc~assign_urey->proc~read_atom_cards proc~assign_urey->proc~urey_init proc~reverse_grp_tab reverse_grp_tab proc~reverse_grp_tab->interface~mallocate proc~reverse_grp_tab->proc~compress_list proc~imptorsion_init->interface~mallocate proc~nl_init->interface~mallocate proc~nl_update nl_update proc~nl_init->proc~nl_update proc~assign_opb->interface~mallocate proc~assign_opb->proc~read_atom_cards proc~opb_init opb_init proc~assign_opb->proc~opb_init proc~init_eel_for_link_atom init_eel_for_link_atom proc~init_eel_for_link_atom->interface~mallocate proc~init_eel_for_link_atom->proc~assign_mpoles proc~init_eel_for_link_atom->proc~remove_null_pol proc~electrostatics_init electrostatics_init proc~init_eel_for_link_atom->proc~electrostatics_init proc~electrostatics_init->interface~mallocate proc~torsion_init->interface~mallocate proc~adj_mat_from_conn->interface~mallocate 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~opb_init->interface~mallocate proc~strtor_init->interface~mallocate proc~mmpol_init_from_mmp mmpol_init_from_mmp proc~mmpol_init_from_mmp->interface~mallocate proc~mmpol_init_from_mmp->proc~adj_mat_from_conn proc~mmpol_init_from_mmp->proc~mmpol_prepare proc~mmpol_init_from_mmp->proc~mmpol_init proc~bond_init->interface~mallocate 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_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 proc~energy_mm_pol energy_MM_pol proc~energy_mm_pol->proc~prepare_polelec proc~c_ommp_prepare_qm_ele_ene C_ommp_prepare_qm_ele_ene proc~c_ommp_prepare_qm_ele_ene->proc~electrostatic_for_ene proc~ommp_init_qm_helper ommp_init_qm_helper proc~ommp_init_qm_helper->proc~qm_helper_init proc~mmpol_prepare->proc~make_screening_lists proc~mmpol_prepare->proc~remove_null_pol proc~mmpol_prepare->proc~reverse_grp_tab program~test_si_init test_SI_init program~test_si_init->proc~mmpol_ommp_print_summary proc~ommp_set_external_field_nomm ommp_set_external_field_nomm proc~ommp_set_external_field_nomm->proc~ommp_set_external_field program~test_si_potential test_SI_potential program~test_si_potential->proc~ommp_set_external_field proc~ommp_get_polelec_energy ommp_get_polelec_energy program~test_si_potential->proc~ommp_get_polelec_energy proc~ommp_get_vdw_energy ommp_get_vdw_energy program~test_si_potential->proc~ommp_get_vdw_energy proc~ommp_get_fixedelec_energy ommp_get_fixedelec_energy program~test_si_potential->proc~ommp_get_fixedelec_energy proc~init_bonded_for_link_atom->proc~assign_angle proc~init_bonded_for_link_atom->proc~angle_init proc~init_bonded_for_link_atom->proc~assign_bond proc~init_bonded_for_link_atom->proc~assign_torsion proc~init_bonded_for_link_atom->proc~torsion_init proc~init_bonded_for_link_atom->proc~bond_init proc~ommp_system_from_qm_helper ommp_system_from_qm_helper proc~ommp_system_from_qm_helper->proc~assign_angle 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_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~ommp_system_from_qm_helper->proc~mmpol_init proc~polelec_geomgrad polelec_geomgrad proc~polelec_geomgrad->proc~prepare_polelec proc~polelec_geomgrad->proc~polarization proc~ommp_vdw_geomgrad ommp_vdw_geomgrad proc~ommp_vdw_geomgrad->proc~vdw_geomgrad 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~c_ommp_prepare_qm_ele_grd C_ommp_prepare_qm_ele_grd proc~c_ommp_prepare_qm_ele_grd->proc~electrostatic_for_grad proc~qm_helper_init_vdw_prm->proc~assign_vdw proc~mmpol_init->proc~topology_init proc~mmpol_init->proc~electrostatics_init proc~ommp_init_mmp ommp_init_mmp proc~ommp_init_mmp->proc~mmpol_init_from_mmp proc~fixedelec_geomgrad fixedelec_geomgrad proc~fixedelec_geomgrad->proc~prepare_fixedelec proc~ommp_turn_pol_off ommp_turn_pol_off proc~ommp_turn_pol_off->proc~remove_null_pol 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~sort_ivec_inplace->proc~sort_ivec 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~energy_mm_mm energy_MM_MM proc~energy_mm_mm->proc~prepare_fixedelec proc~ommp_get_polelec_energy->proc~prepare_polelec proc~ommp_get_polelec_energy->proc~polarization proc~ommp_get_polelec_energy->proc~energy_mm_pol proc~ommp_full_geomgrad ommp_full_geomgrad proc~ommp_full_geomgrad->proc~vdw_geomgrad proc~ommp_full_geomgrad->proc~polelec_geomgrad proc~ommp_full_geomgrad->proc~ommp_full_bnd_geomgrad proc~ommp_full_geomgrad->proc~fixedelec_geomgrad proc~ommp_get_vdw_energy->proc~vdw_potential proc~merge_top->proc~topology_init proc~ommp_init_xyz ommp_init_xyz proc~ommp_init_xyz->proc~mmpol_init_from_xyz proc~qm_helper_init_vdw qm_helper_init_vdw proc~qm_helper_init_vdw->proc~vdw_init proc~ommp_bond_geomgrad ommp_bond_geomgrad proc~ommp_bond_geomgrad->proc~link_atom_bond_geomgrad proc~vdw_set_cutoff vdw_set_cutoff proc~vdw_set_cutoff->proc~nl_init proc~qm_helper_update_coord->proc~guess_connectivity proc~nl_update->proc~reverse_grp_tab 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 ommp_update_link_atoms_position proc~ommp_update_link_atoms_position->proc~qm_helper_update_coord proc~ommp_get_full_ele_energy ommp_get_full_ele_energy proc~ommp_get_full_ele_energy->proc~ommp_get_polelec_energy proc~ommp_get_full_ele_energy->proc~ommp_get_fixedelec_energy proc~ommp_get_fixedelec_energy->proc~energy_mm_mm proc~c_ommp_torsion_geomgrad C_ommp_torsion_geomgrad proc~c_ommp_torsion_geomgrad->proc~ommp_torsion_geomgrad proc~c_ommp_vdw_geomgrad C_ommp_vdw_geomgrad proc~c_ommp_vdw_geomgrad->proc~ommp_vdw_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_init_mmp C_ommp_init_mmp proc~c_ommp_init_mmp->proc~ommp_init_mmp 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_full_geomgrad C_ommp_full_geomgrad proc~c_ommp_full_geomgrad->proc~ommp_full_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_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~c_ommp_init_xyz C_ommp_init_xyz proc~c_ommp_init_xyz->proc~ommp_init_xyz proc~ommp_get_full_energy ommp_get_full_energy proc~ommp_get_full_energy->proc~ommp_get_vdw_energy proc~ommp_get_full_energy->proc~ommp_get_full_ele_energy proc~ommptest_totalqmmm_geomgrad ommptest_totalqmmm_geomgrad proc~ommptest_totalqmmm_geomgrad->proc~ommp_full_geomgrad proc~ommptest_totalqmmm_geomgrad->proc~ommp_qm_helper_link_atom_geomgrad proc~ommp_set_vdw_cutoff ommp_set_vdw_cutoff proc~ommp_set_vdw_cutoff->proc~vdw_set_cutoff proc~ommptest_fakeqm_internal_geomgrad ommptest_fakeqm_internal_geomgrad proc~ommptest_fakeqm_internal_geomgrad->proc~ommp_full_geomgrad proc~c_ommp_get_polelec_energy C_ommp_get_polelec_energy proc~c_ommp_get_polelec_energy->proc~ommp_get_polelec_energy 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 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_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 proc~ommp_polelec_geomgrad ommp_polelec_geomgrad proc~ommp_polelec_geomgrad->proc~polelec_geomgrad proc~ommptest_fakeqm_linkatom_geomgrad ommptest_fakeqm_linkatom_geomgrad proc~ommptest_fakeqm_linkatom_geomgrad->proc~ommp_full_geomgrad proc~ommptest_fakeqm_linkatom_geomgrad->proc~ommp_qm_helper_link_atom_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_bond_geomgrad C_ommp_bond_geomgrad proc~c_ommp_bond_geomgrad->proc~ommp_bond_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 proc~ommp_qm_helper_update_coord ommp_qm_helper_update_coord proc~ommp_qm_helper_update_coord->proc~qm_helper_update_coord proc~ommp_fixedelec_geomgrad ommp_fixedelec_geomgrad proc~ommp_fixedelec_geomgrad->proc~fixedelec_geomgrad 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_get_full_energy C_ommp_get_full_energy proc~c_ommp_get_full_energy->proc~ommp_get_full_energy 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_get_fixedelec_energy C_ommp_get_fixedelec_energy proc~c_ommp_get_fixedelec_energy->proc~ommp_get_fixedelec_energy 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_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_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_fixedelec_geomgrad C_ommp_fixedelec_geomgrad proc~c_ommp_fixedelec_geomgrad->proc~ommp_fixedelec_geomgrad proc~numerical_geomgrad_qmmm numerical_geomgrad_qmmm proc~numerical_geomgrad_qmmm->proc~update_coordinates_qmmm

Contents

Source Code


Source Code

    subroutine l_alloc2(string, len1, len2, v)
        !! Allocate a 2-dimensional array of reals
        implicit none

        character(len=*), intent(in) :: string
        !! Human-readable description string of the allocation
        !! operation, just for output purpose.
        integer(ip), intent(in) :: len1, len2
        !! Dimensions of the vector
        logical(lp), allocatable, intent(inout) :: v(:,:)
        !! Vector to allocate

        integer(ip) :: istat

        if(.not. is_init) call memory_init(.false., 0.0_rp)
        allocate(v(len1, len2), stat=istat)
        call chk_alloc(string, len1*len2*size_of_logical, istat)
    end subroutine l_alloc2