Allocates memory
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=real_4), | DIMENSION(:), POINTER, CONTIGUOUS | :: | mem |
memory to allocate |
||
integer, | intent(in) | :: | n |
length of elements to allocate |
||
type(dbcsr_memtype_type), | intent(in) | :: | mem_type |
memory type |
SUBROUTINE mem_alloc_c (mem, n, mem_type)
!! Allocates memory
COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem
!! memory to allocate
INTEGER, INTENT(IN) :: n
!! length of elements to allocate
TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type
!! memory type
CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_c'
INTEGER :: error_handle
! ---------------------------------------------------------------------------
IF (careful_mod) &
CALL timeset(routineN, error_handle)
IF (mem_type%acc_hostalloc .AND. n > 1) THEN
CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream)
ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN
CALL mp_allocate(mem, n)
ELSE
ALLOCATE (mem(n))
END IF
IF (careful_mod) &
CALL timestop(error_handle)
END SUBROUTINE mem_alloc_c