| 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() stays exactly as before while Resize can reuse the storage across an adaptation epoch. Nothing should index the pools. |
||
| 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_Scalar2D_t | |
| procedure, public :: BoundaryInterp => BoundaryInterp_Scalar2D_t | |
| procedure, public :: Free => Free_Scalar2D_t | |
| generic, public :: Gradient => Gradient_Scalar2D_t | |
| procedure, private :: Gradient_Scalar2D_t | |
| generic, public :: GridInterp => GridInterp_Scalar2D_t | |
| procedure, private :: GridInterp_Scalar2D_t | |
| procedure, public :: Init => Init_Scalar2D_t | |
| procedure, public :: MapArrays => MapArrays_Scalar2D_t | |
| procedure, public :: Resize => Resize_Scalar2D_t | |
| procedure, public :: SetDescription => SetDescription_DataObj | |
| generic, public :: SetEquation => SetEquation_DataObj | |
| procedure, public :: SetName => SetName_DataObj | |
| procedure, public :: SetUnits => SetUnits_DataObj | |
| procedure, public :: UpdateDevice => UpdateDevice_Scalar2D_t | |
| procedure, public :: UpdateHost => UpdateHost_Scalar2D_t | |
| generic, public :: WriteHDF5 => WriteHDF5_MPI_Scalar2D_t, WriteHDF5_Scalar2D_t | |
| procedure, private :: WriteHDF5_MPI_Scalar2D_t | |
| procedure, private :: WriteHDF5_Scalar2D_t |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_t), | intent(in) | :: | this | |||
| real(kind=prec), | intent(inout) | :: | df(1:this%N+1,1:this%N+1,1:this%nelem,1:this%nvar,1:2) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_t), | intent(in) | :: | this | |||
| real(kind=prec), | intent(inout) | :: | f(1:this%M+1,1:this%M+1,1:this%nelem,1:this%nvar) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_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. Bounds-remapping a rank-1 contiguous target to a rank-4 pointer is what keeps every extent and stride identical to a plain allocate while allowing the pool underneath to be larger and reused. See SELF_DataPool.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_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 the existing storage when it fits (AMR Stage 6b). Unlike Init - which is intent(out) and therefore resets the whole object, reallocates, zeroes and, on GPU builds, uploads those zeros - this preserves metadata and equation parsers (neither depends on nElem) and touches storage only when it must grow.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_t), | intent(inout) | :: | this | |||
| type(Lagrange), | intent(in), | target | :: | interp | ||
| integer, | intent(in) | :: | nVar | |||
| integer, | intent(in) | :: | nElem |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Scalar2D_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(Scalar2D_t), | intent(in) | :: | this | |||
| integer(kind=HID_T), | intent(in) | :: | fileId | |||
| character, | intent(in) | :: | group |