| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | M | ||||
| integer, | public | :: | N | ||||
| real(kind=prec), | public, | pointer, contiguous, dimension(:,:,:,:,:) | :: | avgBoundary | |||
| real(kind=prec), | public, | pointer, contiguous, dimension(:,:,:,:,:) | :: | boundary | |||
| real(kind=prec), | public, | pointer, contiguous, dimension(:,:,:,:) | :: | boundaryNormal | High-water-mark backing store for the arrays above (AMR Stage 6b; see SELF_DataPool). The public members are pointers remapped onto the leading part of these pools at the exact logical shape, so every extent, stride and shape() is unchanged while Resize can reuse the storage across an adaptation epoch. Nothing should index the pools directly. |
||
| type(EquationParser), | public, | allocatable | :: | eqn(:) | |||
| real(kind=prec), | public, | pointer, contiguous, dimension(:,:,:,:,:) | :: | extBoundary | |||
| real(kind=prec), | public, | pointer, contiguous, dimension(:,:,:,:,:) | :: | interior | |||
| type(Lagrange), | public, | pointer | :: | interp | |||
| type(Metadata), | public, | allocatable | :: | meta(:) | |||
| integer, | public | :: | nElem | ||||
| integer, | public | :: | nVar | ||||
| real(kind=prec), | public, | pointer, contiguous | :: | pool_avgBoundary(:) | => | null() | |
| real(kind=prec), | public, | pointer, contiguous | :: | pool_boundary(:) | => | null() | |
| real(kind=prec), | public, | pointer, contiguous | :: | pool_boundaryNormal(:) | => | null() | |
| real(kind=prec), | public, | pointer, contiguous | :: | pool_extBoundary(:) | => | null() | |
| real(kind=prec), | public, | pointer, contiguous | :: | pool_interior(:) | => | null() |
| procedure, public :: AverageSides => AverageSides_Vector2D_t | |
| procedure, public :: BoundaryInterp => BoundaryInterp_Vector2D_t | |
| generic, public :: Divergence => Divergence_Vector2D_t | |
| procedure, private :: Divergence_Vector2D_t | |
| procedure, public :: Free => Free_Vector2D_t | |
| generic, public :: Gradient => Gradient_Vector2D_t | |
| procedure, private :: Gradient_Vector2D_t | |
| generic, public :: GridInterp => GridInterp_Vector2D_t | |
| procedure, private :: GridInterp_Vector2D_t | |
| procedure, public :: Init => Init_Vector2D_t | |
| procedure, public :: MapArrays => MapArrays_Vector2D_t | |
| procedure, public :: Resize => Resize_Vector2D_t | |
| procedure, public :: SetDescription => SetDescription_DataObj | |
| generic, public :: SetEquation => SetEquation_DataObj, SetEquation_Vector2D_t | |
| procedure, private :: SetEquation_Vector2D_t | |
| procedure, public :: SetName => SetName_DataObj | |
| procedure, public :: SetUnits => SetUnits_DataObj | |
| procedure, public :: UpdateDevice => UpdateDevice_Vector2D_t | |
| procedure, public :: UpdateHost => UpdateHost_Vector2D_t | |
| generic, public :: WriteHDF5 => WriteHDF5_MPI_Vector2D_t, WriteHDF5_Vector2D_t | |
| procedure, private :: WriteHDF5_MPI_Vector2D_t | |
| procedure, private :: WriteHDF5_Vector2D_t |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(in) | :: | this | |||
| real(kind=prec) | :: | df(1:this%N+1,1:this%N+1,1:this%nelem,1:this%nvar) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(in) | :: | this | |||
| real(kind=prec), | intent(out) | :: | df(1:this%N+1,1:this%N+1,1:this%nelem,1:this%nvar,1:2,1:2) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(in) | :: | this | |||
| real(kind=prec), | intent(out) | :: | f(1:this%M+1,1:this%M+1,1:this%nelem,1:this%nvar,1:2) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(out) | :: | this | |||
| type(Lagrange), | intent(in), | target | :: | interp | ||
| integer, | intent(in) | :: | nVar | |||
| integer, | intent(in) | :: | nElem |
Size the backing pools for (Np,nVar,nElem) and remap the public arrays onto them at the exact logical shape. See SELF_DataPool for why this is done with pointer remapping rather than by over-allocating the element dimension.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | Np | |||
| integer, | intent(in) | :: | nVar | |||
| integer, | intent(in) | :: | nElem |
Rebind a live object to a new element count, reusing existing storage when it fits (AMR Stage 6b). Unlike Init - which is intent(out), so it resets the object, reallocates, zeroes and reconstructs the equation parsers - this preserves metadata and parsers (neither depends on nElem) and touches storage only when it must grow. Preserving the parsers also avoids repeating the EquationParser construction that Init performs 2*nVar times as an amdflang workaround.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(inout) | :: | this | |||
| type(Lagrange), | intent(in), | target | :: | interp | ||
| integer, | intent(in) | :: | nVar | |||
| integer, | intent(in) | :: | nElem |
Sets the equation parser for the idir direction and ivar-th variable
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | idir | |||
| integer, | intent(in) | :: | ivar | |||
| character, | intent(in) | :: | eqnChar |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(in) | :: | this | |||
| integer(kind=HID_T), | intent(in) | :: | fileId | |||
| character, | intent(in) | :: | group | |||
| integer, | intent(in) | :: | elemoffset | |||
| integer, | intent(in) | :: | nglobalelem |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Vector2D_t), | intent(in) | :: | this | |||
| integer(kind=HID_T), | intent(in) | :: | fileId | |||
| character, | intent(in) | :: | group |