Allocates memory
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=real_4), | DIMENSION(:, :), POINTER | :: | mem |
memory to allocate |
||
integer, | intent(in), | DIMENSION(2) | :: | sizes |
length of elements to allocate |
|
type(dbcsr_memtype_type), | intent(in) | :: | mem_type |
memory type |
SUBROUTINE mem_alloc_s_2d(mem, sizes, mem_type)
!! Allocates memory
REAL(kind=real_4), DIMENSION(:, :), POINTER :: mem
!! memory to allocate
INTEGER, DIMENSION(2), INTENT(IN) :: sizes
!! length of elements to allocate
TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type
!! memory type
CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_s_2d'
INTEGER :: error_handle
! ---------------------------------------------------------------------------
IF (careful_mod) &
CALL timeset(routineN, error_handle)
IF (mem_type%acc_hostalloc) THEN
DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.")
!CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream)
ELSE IF (mem_type%mpi) THEN
DBCSR_ABORT("MPI allocate not supported for 2D arrays.")
!CALL mp_allocate(mem, n)
ELSE
ALLOCATE (mem(sizes(1), sizes(2)))
END IF
IF (careful_mod) &
CALL timestop(error_handle)
END SUBROUTINE mem_alloc_s_2d