mem_dealloc_l Subroutine

private subroutine mem_dealloc_l(mem, mem_type)

Deallocates memory

Arguments

TypeIntentOptionalAttributesName
integer(kind=int_8), DIMENSION(:), POINTER, CONTIGUOUS:: mem

memory to allocate

type(dbcsr_memtype_type), intent(in) :: mem_type

memory type


Contents

Source Code


Source Code

      SUBROUTINE mem_dealloc_l (mem, mem_type)
     !! Deallocates memory

         INTEGER(kind=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem
        !! memory to allocate
         TYPE(dbcsr_memtype_type), INTENT(IN)  :: mem_type
        !! memory type
         CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_l'
         INTEGER                               :: error_handle
!   ---------------------------------------------------------------------------

         IF (careful_mod) &
            CALL timeset(routineN, error_handle)

         IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN
            CALL acc_hostmem_deallocate(mem, mem_type%acc_stream)
         ELSE IF (mem_type%mpi .AND. dbcsr_data_allocation%use_mpi_allocator) THEN
            CALL mp_deallocate(mem)
         ELSE
            DEALLOCATE (mem)
         END IF

         IF (careful_mod) &
            CALL timestop(error_handle)
      END SUBROUTINE mem_dealloc_l