return the number of actual used memory (bytes) per element
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_element_type), | intent(inout) | :: | me | element object |
||
integer(kind=long_k), | intent(out) | :: | elemSize | number of total entries to be returned |
subroutine getReqSize_element( me, elemSize )
! ---------------------------------------------------------------------------
!> element object
type( tem_element_type ), intent(inout) :: me
!> number of total entries to be returned
integer(kind=long_k), intent(out) :: elemSize
! ---------------------------------------------------------------------------
integer :: iVal, nSize
! ---------------------------------------------------------------------------
elemSize = 0
elemSize = elemSize + int( me%tID%nVals*12, kind=long_k)
elemSize = elemSize + int( me%property%nVals*8, kind=long_k)
elemSize = elemSize + int( me%eType%nVals*4, kind=long_k)
elemSize = elemSize + int( me%pntTID%nVals*4, kind=long_k)
do iVal = 1, me%stencil%nVals
if( me%stencil%val( iVal )%nVals > 0 ) then
nSize = size( me%stencil%val( iVal )%val(1)%tIDpos )*8
else
nSize = 0
end if
elemSize = elemSize + int( me%stencil%val(iVal)%nVals*nSize, kind=long_k)
end do
do iVal = 1, me%neighID%nVals
elemSize = elemSize + int( me%neighID%val( iVal )%nVals*12, kind=long_k)
end do
elemSize = elemSize + int( me%sourceProc%nVals*4, kind=long_k)
elemSize = elemSize + int( me%haloNesting%nVals*4, kind=long_k)
elemSize = elemSize + int( me%needsUpdate%nVals*4, kind=long_k)
end subroutine getReqSize_element