Resize_Tensor3D Subroutine

public subroutine Resize_Tensor3D(this, interp, nVar, nElem)

Rebind to a new element count, reusing host pools and device buffers where they fit. Deliberately does NOT call UpdateDevice: Init uploads freshly zeroed arrays, which is pure waste in the adaptive loop because the arrays are rewritten immediately after.

Arguments

TypeIntentOptionalAttributesName
class(Tensor3D), intent(inout) :: this
type(Lagrange), intent(in), target:: interp
integer, intent(in) :: nVar
integer, intent(in) :: nElem

Calls

proc~~resize_tensor3d~~CallsGraph proc~resize_tensor3d Resize_Tensor3D proc~resize_tensor3d_t Resize_Tensor3D_t proc~resize_tensor3d->proc~resize_tensor3d_t proc~ensuredevicebuffers_tensor3d EnsureDeviceBuffers_Tensor3D proc~resize_tensor3d->proc~ensuredevicebuffers_tensor3d ensuredevicebuffer ensuredevicebuffer proc~ensuredevicebuffers_tensor3d->ensuredevicebuffer

Contents

Source Code


Source Code

  subroutine Resize_Tensor3D(this,interp,nVar,nElem)
    !! Rebind to a new element count, reusing host pools and device buffers where they fit.
    !! Deliberately does NOT call UpdateDevice: Init uploads freshly zeroed arrays, which is pure
    !! waste in the adaptive loop because the arrays are rewritten immediately after.
    implicit none
    class(Tensor3D),intent(inout) :: this
    type(Lagrange),target,intent(in) :: interp
    integer,intent(in) :: nVar
    integer,intent(in) :: nElem

    call Resize_Tensor3D_t(this,interp,nVar,nElem)
    call EnsureDeviceBuffers_Tensor3D(this)

  endsubroutine Resize_Tensor3D