mmpol_terminate Subroutine

public subroutine mmpol_terminate(sys_obj)

Uses

  • proc~~mmpol_terminate~~UsesGraph proc~mmpol_terminate mmpol_terminate module~mod_nonbonded mod_nonbonded proc~mmpol_terminate->module~mod_nonbonded module~mod_electrostatics mod_electrostatics proc~mmpol_terminate->module~mod_electrostatics module~mod_memory mod_memory proc~mmpol_terminate->module~mod_memory module~mod_bonded mod_bonded proc~mmpol_terminate->module~mod_bonded module~mod_nonbonded->module~mod_memory module~mod_constants mod_constants module~mod_nonbonded->module~mod_constants module~mod_adjacency_mat mod_adjacency_mat module~mod_nonbonded->module~mod_adjacency_mat module~mod_topology mod_topology module~mod_nonbonded->module~mod_topology module~mod_neighbor_list mod_neighbor_list module~mod_nonbonded->module~mod_neighbor_list module~mod_electrostatics->module~mod_memory module~mod_electrostatics->module~mod_constants module~mod_electrostatics->module~mod_adjacency_mat module~mod_electrostatics->module~mod_topology module~mod_profiling mod_profiling module~mod_electrostatics->module~mod_profiling module~mod_io mod_io module~mod_electrostatics->module~mod_io module~fmmlib_interface fmmlib_interface module~mod_electrostatics->module~fmmlib_interface module~mod_memory->module~mod_constants module~mod_memory->module~mod_io iso_c_binding iso_c_binding module~mod_memory->iso_c_binding module~mod_bonded->module~mod_memory module~mod_bonded->module~mod_topology module~mod_bonded->module~mod_io module~mod_constants->iso_c_binding module~mod_adjacency_mat->module~mod_memory module~mod_topology->module~mod_memory module~mod_topology->module~mod_adjacency_mat module~mod_profiling->module~mod_memory module~mod_profiling->module~mod_constants module~mod_profiling->module~mod_io module~mod_neighbor_list->module~mod_memory module~mod_neighbor_list->module~mod_adjacency_mat module~mod_neighbor_list->module~mod_io module~mod_io->module~mod_constants module~fmmlib_interface->module~mod_constants module~mod_tree mod_tree module~fmmlib_interface->module~mod_tree module~mod_ribtree mod_ribtree module~fmmlib_interface->module~mod_ribtree module~mod_harmonics mod_harmonics module~fmmlib_interface->module~mod_harmonics module~mod_fmm_utils mod_fmm_utils module~fmmlib_interface->module~mod_fmm_utils module~mod_fmm mod_fmm module~fmmlib_interface->module~mod_fmm module~mod_octatree mod_octatree module~fmmlib_interface->module~mod_octatree module~mod_tree->module~mod_constants module~mod_tree->module~mod_adjacency_mat module~mod_tree->module~mod_fmm_utils module~mod_ribtree->module~mod_constants module~mod_ribtree->module~mod_profiling module~mod_ribtree->module~mod_tree module~mod_ribtree->module~mod_fmm_utils module~mod_harmonics->module~mod_constants module~mod_harmonics->module~mod_fmm_utils module~mod_fmm_utils->module~mod_constants module~mod_fmm->module~mod_constants module~mod_fmm->module~mod_tree module~mod_fmm->module~mod_harmonics module~mod_fmm->module~mod_fmm_utils module~mod_octatree->module~mod_constants module~mod_octatree->module~mod_profiling module~mod_octatree->module~mod_tree module~mod_octatree->module~mod_fmm_utils

Performs all the deallocation needed at the end of the calculation

Arguments

Type IntentOptional Attributes Name
type(ommp_system), intent(inout) :: sys_obj

Calls

proc~~mmpol_terminate~~CallsGraph proc~mmpol_terminate mmpol_terminate proc~electrostatics_terminate electrostatics_terminate proc~mmpol_terminate->proc~electrostatics_terminate proc~vdw_terminate vdw_terminate proc~mmpol_terminate->proc~vdw_terminate proc~bonded_terminate bonded_terminate proc~mmpol_terminate->proc~bonded_terminate proc~topology_terminate topology_terminate proc~mmpol_terminate->proc~topology_terminate interface~mfree mfree proc~electrostatics_terminate->interface~mfree proc~free_yale_sparse free_yale_sparse proc~electrostatics_terminate->proc~free_yale_sparse proc~free_fmm free_fmm proc~electrostatics_terminate->proc~free_fmm proc~free_tree free_tree proc~electrostatics_terminate->proc~free_tree proc~vdw_terminate->interface~mfree proc~nl_terminate nl_terminate proc~vdw_terminate->proc~nl_terminate proc~angtor_terminate angtor_terminate proc~bonded_terminate->proc~angtor_terminate proc~torsion_terminate torsion_terminate proc~bonded_terminate->proc~torsion_terminate proc~imptorsion_terminate imptorsion_terminate proc~bonded_terminate->proc~imptorsion_terminate proc~angle_terminate angle_terminate proc~bonded_terminate->proc~angle_terminate proc~strtor_terminate strtor_terminate proc~bonded_terminate->proc~strtor_terminate proc~bond_terminate bond_terminate proc~bonded_terminate->proc~bond_terminate proc~opb_terminate opb_terminate proc~bonded_terminate->proc~opb_terminate proc~strbnd_terminate strbnd_terminate proc~bonded_terminate->proc~strbnd_terminate proc~urey_terminate urey_terminate proc~bonded_terminate->proc~urey_terminate proc~pitors_terminate pitors_terminate proc~bonded_terminate->proc~pitors_terminate proc~tortor_terminate tortor_terminate proc~bonded_terminate->proc~tortor_terminate proc~topology_terminate->interface~mfree proc~topology_terminate->proc~free_yale_sparse proc~angtor_terminate->interface~mfree proc~torsion_terminate->interface~mfree proc~imptorsion_terminate->interface~mfree proc~angle_terminate->interface~mfree proc~r_free1 r_free1 interface~mfree->proc~r_free1 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~r_free3 r_free3 interface~mfree->proc~r_free3 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~nl_terminate->interface~mfree proc~nl_terminate->proc~free_yale_sparse proc~free_tree->proc~free_yale_sparse proc~strtor_terminate->interface~mfree proc~bond_terminate->interface~mfree proc~opb_terminate->interface~mfree proc~strbnd_terminate->interface~mfree proc~urey_terminate->interface~mfree proc~pitors_terminate->interface~mfree proc~tortor_terminate->interface~mfree proc~chk_free chk_free proc~r_free1->proc~chk_free proc~i_free2->proc~chk_free proc~i_free1->proc~chk_free proc~r_free2->proc~chk_free proc~r_free3->proc~chk_free proc~i_free3->proc~chk_free proc~l_free1->proc~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~~mmpol_terminate~~CalledByGraph proc~mmpol_terminate mmpol_terminate proc~ommp_terminate ommp_terminate proc~ommp_terminate->proc~mmpol_terminate proc~c_ommp_terminate C_ommp_terminate proc~c_ommp_terminate->proc~ommp_terminate

Contents

Source Code


Source Code

    subroutine mmpol_terminate(sys_obj)
        !! Performs all the deallocation needed at the end of the 
        !! calculation
        use mod_memory, only: mfree
        use mod_electrostatics, only: electrostatics_terminate
        use mod_nonbonded, only: vdw_terminate
        use mod_bonded, only: bonded_terminate 

        implicit none 

        type(ommp_system), intent(inout) :: sys_obj

        call electrostatics_terminate(sys_obj%eel)
        deallocate(sys_obj%eel)

        call topology_terminate(sys_obj%top)
        deallocate(sys_obj%top)

        if(sys_obj%use_nonbonded) then
            call vdw_terminate(sys_obj%vdw)
            sys_obj%use_nonbonded = .false.
        end if
        
        if(sys_obj%use_bonded) then
            call bonded_terminate(sys_obj%bds)
            sys_obj%use_bonded = .false.
        end if

        sys_obj%mmpol_is_init = .false.

    end subroutine mmpol_terminate