r_alloc3 Subroutine

private subroutine r_alloc3(string, len1, len2, len3, v)

Allocate a 3-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

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

Dimensions of the vector

real(kind=rp), intent(inout), allocatable :: v(:,:,:)

Vector to allocate


Calls

proc~~r_alloc3~~CallsGraph proc~r_alloc3 r_alloc3 proc~memory_init memory_init proc~r_alloc3->proc~memory_init proc~chk_alloc chk_alloc proc~r_alloc3->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~~r_alloc3~~CalledByGraph proc~r_alloc3 r_alloc3 interface~mallocate mallocate interface~mallocate->proc~r_alloc3 proc~bond_init bond_init proc~bond_init->interface~mallocate proc~reverse_grp_tab reverse_grp_tab proc~reverse_grp_tab->interface~mallocate proc~compress_list compress_list proc~reverse_grp_tab->proc~compress_list proc~compress_list->interface~mallocate proc~vdw_set_pair vdw_set_pair proc~vdw_set_pair->interface~mallocate proc~prepare_fmm_ext_ipd prepare_fmm_ext_ipd proc~prepare_fmm_ext_ipd->interface~mallocate proc~assign_mpoles assign_mpoles proc~assign_mpoles->interface~mallocate proc~vdw_potential vdw_potential proc~vdw_potential->interface~mallocate 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~tortor_init tortor_init proc~tortor_init->interface~mallocate proc~mmpol_init_from_mmp mmpol_init_from_mmp proc~mmpol_init_from_mmp->interface~mallocate proc~adj_mat_from_conn adj_mat_from_conn proc~mmpol_init_from_mmp->proc~adj_mat_from_conn proc~mmpol_init mmpol_init proc~mmpol_init_from_mmp->proc~mmpol_init proc~mmpol_prepare mmpol_prepare proc~mmpol_init_from_mmp->proc~mmpol_prepare proc~qm_helper_init qm_helper_init proc~qm_helper_init->interface~mallocate proc~guess_connectivity guess_connectivity proc~qm_helper_init->proc~guess_connectivity proc~topology_init topology_init proc~qm_helper_init->proc~topology_init proc~remove_null_pol remove_null_pol proc~remove_null_pol->interface~mallocate proc~vdw_init vdw_init proc~vdw_init->interface~mallocate proc~nl_init nl_init proc~vdw_init->proc~nl_init proc~assign_torsion assign_torsion proc~assign_torsion->interface~mallocate proc~torsion_init torsion_init proc~assign_torsion->proc~torsion_init proc~read_atom_cards read_atom_cards proc~assign_torsion->proc~read_atom_cards proc~electrostatic_for_grad electrostatic_for_grad proc~electrostatic_for_grad->interface~mallocate proc~assign_bond assign_bond proc~assign_bond->interface~mallocate proc~assign_bond->proc~bond_init proc~assign_bond->proc~read_atom_cards proc~angle_init angle_init proc~angle_init->interface~mallocate proc~guess_connectivity->interface~mallocate proc~guess_connectivity->proc~adj_mat_from_conn proc~add_link_atom add_link_atom proc~add_link_atom->interface~mallocate proc~link_atom_torsion_geomgrad link_atom_torsion_geomgrad proc~link_atom_torsion_geomgrad->interface~mallocate proc~inversion_solver inversion_solver proc~inversion_solver->interface~mallocate proc~topology_init->interface~mallocate proc~c_ommp_get_polar_mm C_ommp_get_polar_mm proc~c_ommp_get_polar_mm->interface~mallocate proc~torsion_init->interface~mallocate proc~polarization polarization proc~polarization->interface~mallocate 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~assign_urey assign_urey proc~assign_urey->interface~mallocate proc~assign_urey->proc~read_atom_cards proc~urey_init urey_init proc~assign_urey->proc~urey_init proc~read_atom_cards->interface~mallocate 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~preapare_fmm_static preapare_fmm_static proc~preapare_fmm_static->interface~mallocate proc~vdw_geomgrad vdw_geomgrad proc~vdw_geomgrad->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~fmm_make_neigh_list fmm_make_neigh_list proc~fmm_make_neigh_list->interface~mallocate proc~fmm_make_neigh_list->proc~compress_list proc~opb_init opb_init proc~opb_init->interface~mallocate proc~assign_imptorsion assign_imptorsion proc~assign_imptorsion->interface~mallocate proc~assign_imptorsion->proc~read_atom_cards proc~imptorsion_init imptorsion_init proc~assign_imptorsion->proc~imptorsion_init proc~assign_opb assign_opb proc~assign_opb->interface~mallocate proc~assign_opb->proc~read_atom_cards proc~assign_opb->proc~opb_init proc~link_atom_bond_geomgrad link_atom_bond_geomgrad proc~link_atom_bond_geomgrad->interface~mallocate proc~pitors_init pitors_init proc~pitors_init->interface~mallocate proc~assign_pitors assign_pitors proc~assign_pitors->interface~mallocate proc~assign_pitors->proc~read_atom_cards proc~assign_pitors->proc~pitors_init proc~make_screening_lists make_screening_lists proc~make_screening_lists->interface~mallocate proc~make_screening_lists->proc~compress_list proc~make_screening_lists->proc~fmm_make_neigh_list proc~compress_data compress_data proc~make_screening_lists->proc~compress_data proc~assign_tortors assign_tortors proc~assign_tortors->interface~mallocate proc~assign_tortors->proc~tortor_init proc~assign_tortors->proc~read_atom_cards proc~tortor_newmap tortor_newmap proc~assign_tortors->proc~tortor_newmap proc~imptorsion_init->interface~mallocate proc~sort_ivec sort_ivec proc~sort_ivec->interface~mallocate proc~strtor_init strtor_init proc~strtor_init->interface~mallocate proc~jacobi_diis_solver->interface~mallocate proc~diis diis proc~jacobi_diis_solver->proc~diis proc~assign_vdw assign_vdw proc~assign_vdw->interface~mallocate proc~assign_vdw->proc~vdw_set_pair proc~assign_vdw->proc~vdw_init proc~assign_vdw->proc~read_atom_cards proc~strbnd_init strbnd_init proc~strbnd_init->interface~mallocate proc~angtor_init angtor_init proc~angtor_init->interface~mallocate proc~nl_init->interface~mallocate proc~nl_update nl_update proc~nl_init->proc~nl_update proc~assign_angle assign_angle proc~assign_angle->interface~mallocate proc~assign_angle->proc~angle_init proc~assign_angle->proc~read_atom_cards proc~link_atom_angle_geomgrad link_atom_angle_geomgrad proc~link_atom_angle_geomgrad->interface~mallocate proc~qm_helper_link_atom_geomgrad qm_helper_link_atom_geomgrad proc~qm_helper_link_atom_geomgrad->interface~mallocate proc~qm_helper_link_atom_geomgrad->proc~link_atom_torsion_geomgrad proc~qm_helper_link_atom_geomgrad->proc~link_atom_bond_geomgrad proc~qm_helper_link_atom_geomgrad->proc~link_atom_angle_geomgrad proc~mmpol_ommp_print_summary mmpol_ommp_print_summary proc~mmpol_ommp_print_summary->interface~mallocate proc~mmpol_ommp_print_summary->proc~sort_ivec proc~prepare_fixedelec prepare_fixedelec proc~prepare_fixedelec->interface~mallocate proc~elec_prop_m2m elec_prop_M2M proc~prepare_fixedelec->proc~elec_prop_m2m proc~check_vdw_pairs check_vdw_pairs proc~check_vdw_pairs->interface~mallocate proc~tortor_newmap->interface~mallocate proc~tortor_newmap->proc~cyclic_spline proc~prepare_polelec prepare_polelec proc~prepare_polelec->interface~mallocate proc~elec_prop_m2d elec_prop_M2D proc~prepare_polelec->proc~elec_prop_m2d proc~elec_prop_d2m elec_prop_D2M proc~prepare_polelec->proc~elec_prop_d2m proc~elec_prop_d2d elec_prop_D2D proc~prepare_polelec->proc~elec_prop_d2d proc~diis->interface~mallocate proc~electrostatic_for_ene electrostatic_for_ene proc~electrostatic_for_ene->interface~mallocate proc~urey_init->interface~mallocate proc~compress_data->interface~mallocate proc~assign_angtor assign_angtor proc~assign_angtor->interface~mallocate proc~assign_angtor->proc~read_atom_cards proc~assign_angtor->proc~angtor_init proc~mmpol_init_from_xyz mmpol_init_from_xyz proc~mmpol_init_from_xyz->interface~mallocate proc~mmpol_init_from_xyz->proc~assign_mpoles proc~mmpol_init_from_xyz->proc~assign_torsion proc~mmpol_init_from_xyz->proc~assign_bond proc~mmpol_init_from_xyz->proc~assign_urey proc~mmpol_init_from_xyz->proc~adj_mat_from_conn proc~mmpol_init_from_xyz->proc~assign_imptorsion proc~mmpol_init_from_xyz->proc~assign_opb proc~mmpol_init_from_xyz->proc~assign_pitors proc~mmpol_init_from_xyz->proc~assign_tortors proc~mmpol_init_from_xyz->proc~assign_vdw proc~mmpol_init_from_xyz->proc~assign_angle proc~mmpol_init_from_xyz->proc~assign_angtor proc~assign_pol assign_pol proc~mmpol_init_from_xyz->proc~assign_pol proc~assign_strbnd assign_strbnd proc~mmpol_init_from_xyz->proc~assign_strbnd proc~assign_strtor assign_strtor proc~mmpol_init_from_xyz->proc~assign_strtor proc~mmpol_init_from_xyz->proc~mmpol_init proc~mmpol_init_from_xyz->proc~mmpol_prepare proc~assign_pol->interface~mallocate proc~assign_strbnd->interface~mallocate proc~assign_strbnd->proc~read_atom_cards proc~assign_strbnd->proc~strbnd_init proc~ommp_set_external_field ommp_set_external_field proc~ommp_set_external_field->interface~mallocate proc~ommp_set_external_field->proc~polarization proc~ommp_set_external_field->proc~prepare_polelec proc~electrostatics_init->interface~mallocate proc~conjugate_gradient_solver->interface~mallocate proc~assign_strtor->interface~mallocate proc~assign_strtor->proc~read_atom_cards proc~assign_strtor->proc~strtor_init proc~vdw_set_cutoff vdw_set_cutoff proc~vdw_set_cutoff->proc~nl_init proc~mmpol_init->proc~topology_init proc~mmpol_init->proc~electrostatics_init proc~ommp_torsion_geomgrad ommp_torsion_geomgrad proc~ommp_torsion_geomgrad->proc~link_atom_torsion_geomgrad proc~populate_level_list populate_level_list proc~populate_level_list->proc~compress_list proc~tree_populate_farnear_lists tree_populate_farnear_lists proc~tree_populate_farnear_lists->proc~compress_list proc~prepare_fmm_ipd prepare_fmm_ipd proc~prepare_fmm_ipd->proc~prepare_fmm_ext_ipd 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_torsion proc~ommp_system_from_qm_helper->proc~assign_bond proc~ommp_system_from_qm_helper->proc~assign_urey proc~ommp_system_from_qm_helper->proc~assign_imptorsion proc~ommp_system_from_qm_helper->proc~assign_opb 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_vdw proc~ommp_system_from_qm_helper->proc~assign_angle 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_strbnd proc~ommp_system_from_qm_helper->proc~assign_strtor proc~ommp_system_from_qm_helper->proc~mmpol_init proc~ommp_system_from_qm_helper->proc~mmpol_prepare proc~ommp_get_vdw_energy ommp_get_vdw_energy proc~ommp_get_vdw_energy->proc~vdw_potential 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~polelec_geomgrad polelec_geomgrad proc~polelec_geomgrad->proc~polarization proc~polelec_geomgrad->proc~prepare_polelec proc~ommp_get_polelec_energy ommp_get_polelec_energy proc~ommp_get_polelec_energy->proc~polarization proc~ommp_get_polelec_energy->proc~prepare_polelec proc~energy_mm_pol energy_MM_pol proc~ommp_get_polelec_energy->proc~energy_mm_pol proc~ommp_vdw_geomgrad ommp_vdw_geomgrad proc~ommp_vdw_geomgrad->proc~vdw_geomgrad proc~qm_helper_init_vdw_prm qm_helper_init_vdw_prm proc~qm_helper_init_vdw_prm->proc~assign_vdw proc~fixedelec_geomgrad fixedelec_geomgrad proc~fixedelec_geomgrad->proc~prepare_fixedelec proc~energy_mm_mm energy_MM_MM proc~energy_mm_mm->proc~prepare_fixedelec proc~energy_mm_pol->proc~prepare_polelec 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_init_xyz ommp_init_xyz proc~ommp_init_xyz->proc~mmpol_init_from_xyz proc~ommp_set_external_field_nomm ommp_set_external_field_nomm proc~ommp_set_external_field_nomm->proc~ommp_set_external_field proc~ommp_bond_geomgrad ommp_bond_geomgrad proc~ommp_bond_geomgrad->proc~link_atom_bond_geomgrad 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~fixedelec_geomgrad proc~ommp_full_bnd_geomgrad ommp_full_bnd_geomgrad proc~ommp_full_geomgrad->proc~ommp_full_bnd_geomgrad proc~ommp_init_mmp ommp_init_mmp proc~ommp_init_mmp->proc~mmpol_init_from_mmp proc~elec_prop_m2d->proc~preapare_fmm_static proc~add_screening_pair add_screening_pair proc~add_screening_pair->proc~check_vdw_pairs proc~ommp_turn_pol_off ommp_turn_pol_off proc~ommp_turn_pol_off->proc~remove_null_pol proc~ommp_init_qm_helper ommp_init_qm_helper proc~ommp_init_qm_helper->proc~qm_helper_init proc~ommp_create_link_atom ommp_create_link_atom proc~ommp_create_link_atom->proc~init_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~qm_helper_init_vdw_prm 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_update_coord qm_helper_update_coord proc~ommp_create_link_atom->proc~qm_helper_update_coord proc~init_vdw_for_link_atom init_vdw_for_link_atom proc~ommp_create_link_atom->proc~init_vdw_for_link_atom proc~ommp_full_bnd_geomgrad->proc~link_atom_torsion_geomgrad proc~ommp_full_bnd_geomgrad->proc~link_atom_bond_geomgrad proc~ommp_full_bnd_geomgrad->proc~link_atom_angle_geomgrad proc~init_bonded_for_link_atom->proc~bond_init proc~init_bonded_for_link_atom->proc~assign_torsion proc~init_bonded_for_link_atom->proc~assign_bond proc~init_bonded_for_link_atom->proc~angle_init proc~init_bonded_for_link_atom->proc~torsion_init proc~init_bonded_for_link_atom->proc~assign_angle proc~nl_update->proc~reverse_grp_tab proc~mmpol_prepare->proc~reverse_grp_tab proc~mmpol_prepare->proc~remove_null_pol proc~mmpol_prepare->proc~make_screening_lists proc~fmm_coordinates_update fmm_coordinates_update proc~mmpol_prepare->proc~fmm_coordinates_update proc~tree_populate_farnear_lists_safe tree_populate_farnear_lists_safe proc~tree_populate_farnear_lists_safe->proc~compress_list proc~field_extd2d field_extD2D proc~field_extd2d->proc~prepare_fmm_ext_ipd proc~qm_helper_update_coord->proc~guess_connectivity proc~qm_helper_init_vdw qm_helper_init_vdw proc~qm_helper_init_vdw->proc~vdw_init 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_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~c_ommp_set_external_field C_ommp_set_external_field proc~c_ommp_set_external_field->proc~ommp_set_external_field 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~merge_top->proc~topology_init proc~elec_prop_m2m->proc~preapare_fmm_static proc~init_vdw_for_link_atom->proc~check_vdw_pairs proc~init_vdw_for_link_atom->proc~add_screening_pair proc~fmm_coordinates_update->proc~fmm_make_neigh_list proc~init_as_octatree init_as_octatree proc~fmm_coordinates_update->proc~init_as_octatree proc~ommp_angle_geomgrad ommp_angle_geomgrad proc~ommp_angle_geomgrad->proc~link_atom_angle_geomgrad proc~sort_ivec_inplace->proc~sort_ivec proc~c_ommp_angle_geomgrad C_ommp_angle_geomgrad proc~c_ommp_angle_geomgrad->proc~ommp_angle_geomgrad proc~c_ommp_vdw_geomgrad C_ommp_vdw_geomgrad proc~c_ommp_vdw_geomgrad->proc~ommp_vdw_geomgrad proc~c_ommp_get_polelec_energy C_ommp_get_polelec_energy proc~c_ommp_get_polelec_energy->proc~ommp_get_polelec_energy proc~ommp_fixedelec_geomgrad ommp_fixedelec_geomgrad proc~ommp_fixedelec_geomgrad->proc~fixedelec_geomgrad proc~c_ommp_init_xyz C_ommp_init_xyz proc~c_ommp_init_xyz->proc~ommp_init_xyz 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~init_as_octatree->proc~populate_level_list proc~init_as_octatree->proc~tree_populate_farnear_lists proc~init_as_ribtree init_as_ribtree proc~init_as_ribtree->proc~populate_level_list proc~init_as_ribtree->proc~tree_populate_farnear_lists proc~c_ommp_torsion_geomgrad C_ommp_torsion_geomgrad proc~c_ommp_torsion_geomgrad->proc~ommp_torsion_geomgrad proc~elec_prop_d2m->proc~prepare_fmm_ipd proc~c_ommp_bond_geomgrad C_ommp_bond_geomgrad proc~c_ommp_bond_geomgrad->proc~ommp_bond_geomgrad proc~c_ommp_turn_pol_off C_ommp_turn_pol_off proc~c_ommp_turn_pol_off->proc~ommp_turn_pol_off 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_full_bnd_geomgrad C_ommp_full_bnd_geomgrad proc~c_ommp_full_bnd_geomgrad->proc~ommp_full_bnd_geomgrad proc~c_ommp_set_fmm_distance C_ommp_set_fmm_distance proc~c_ommp_set_fmm_distance->proc~fmm_coordinates_update proc~c_ommp_init_qm_helper C_ommp_init_qm_helper proc~c_ommp_init_qm_helper->proc~ommp_init_qm_helper proc~tmatvec_otf TMatVec_otf proc~tmatvec_otf->proc~field_extd2d 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_full_geomgrad C_ommp_full_geomgrad proc~c_ommp_full_geomgrad->proc~ommp_full_geomgrad proc~ommp_set_vdw_cutoff ommp_set_vdw_cutoff proc~ommp_set_vdw_cutoff->proc~vdw_set_cutoff proc~elec_prop_d2d->proc~prepare_fmm_ipd 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~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~c_ommp_get_vdw_energy C_ommp_get_vdw_energy proc~c_ommp_get_vdw_energy->proc~ommp_get_vdw_energy proc~ommp_polelec_geomgrad ommp_polelec_geomgrad proc~ommp_polelec_geomgrad->proc~polelec_geomgrad proc~ommp_get_full_ele_energy->proc~ommp_get_polelec_energy proc~ommp_get_fixedelec_energy ommp_get_fixedelec_energy proc~ommp_get_full_ele_energy->proc~ommp_get_fixedelec_energy proc~ommp_get_fixedelec_energy->proc~energy_mm_mm proc~c_ommp_init_mmp C_ommp_init_mmp proc~c_ommp_init_mmp->proc~ommp_init_mmp 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~update_coordinates update_coordinates proc~update_coordinates->proc~fmm_coordinates_update proc~c_ommp_set_fmm_min_cell_size C_ommp_set_fmm_min_cell_size proc~c_ommp_set_fmm_min_cell_size->proc~fmm_coordinates_update proc~c_ommp_create_link_atom C_ommp_create_link_atom proc~c_ommp_create_link_atom->proc~ommp_create_link_atom proc~c_ommp_fixedelec_geomgrad C_ommp_fixedelec_geomgrad proc~c_ommp_fixedelec_geomgrad->proc~ommp_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_set_vdw_cutoff C_ommp_set_vdw_cutoff proc~c_ommp_set_vdw_cutoff->proc~ommp_set_vdw_cutoff 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_get_full_energy C_ommp_get_full_energy proc~c_ommp_get_full_energy->proc~ommp_get_full_energy proc~c_ommp_polelec_geomgrad C_ommp_polelec_geomgrad proc~c_ommp_polelec_geomgrad->proc~ommp_polelec_geomgrad 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~c_ommp_update_coordinates C_ommp_update_coordinates proc~c_ommp_update_coordinates->proc~update_coordinates

Contents

Source Code


Source Code

    subroutine r_alloc3(string, len1, len2, len3, v)
        !! Allocate a 3-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, len3
        !! Dimensions of the vector
        real(rp), 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, len3), stat=istat)
        call chk_alloc(string, len1*len2*len3*size_of_real, istat)
    end subroutine r_alloc3