collision_obj_Final Subroutine

private impure subroutine collision_obj_Final(this)

Finalizes object and frees memory.

Type Bound

collision_obj

Arguments

Type IntentOptional Attributes Name
class(collision_obj), intent(inout) :: this

Calls

proc~~collision_obj_final~~CallsGraph proc~collision_obj_final collision_obj%collision_obj_Final proc~block_obj_final block_obj%block_obj_Final proc~collision_obj_final->proc~block_obj_final proc~collision_obj_sanitize collision_obj%collision_obj_Sanitize proc~collision_obj_final->proc~collision_obj_sanitize mpi_type_free mpi_type_free proc~block_obj_final->mpi_type_free proc~axis_obj_final axis_obj%axis_obj_Final proc~block_obj_final->proc~axis_obj_final proc~lagrangian_set_recycle lagrangian_set%lagrangian_set_Recycle proc~collision_obj_sanitize->proc~lagrangian_set_recycle proc~lagrangian_set_resize lagrangian_set%lagrangian_set_Resize proc~lagrangian_set_recycle->proc~lagrangian_set_resize

Source Code

    impure subroutine collision_obj_Final(this)
      !> Finalizes object and frees memory.
      implicit none
      class(collision_obj),       intent(inout) :: this

      ! Collision/Neighbor search tools
      call this%Sanitize()
      if(allocated(this%RPobjincell)) deallocate(this%RPobjincell)
      if(allocated(this%RPneighbors)) deallocate(this%RPneighbors)
      if(allocated(this%PPobjincell)) deallocate(this%PPobjincell)
      if(allocated(this%PPneighbors)) deallocate(this%PPneighbors)
      if(allocated(this%IBobjincell)) deallocate(this%IBobjincell)
      if(allocated(this%IBneighbors)) deallocate(this%IBneighbors)

      ! Finalize collision block, if used
      call this%cblock%Finalize()

      ! Nullify pointers
      this%parallel => null()
      this%parser   => null()
      this%timer    => null()
      this%monitors => null()
      this%PP       => null()
      this%RP       => null()
      this%IB       => null()

      return
    end subroutine collision_obj_Final