Initialize block signature.
If both whole signature and single components like id, level, gc... are passed, the values of
signature%id, signature%level, ... are overridden.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(block_signature_object), | intent(inout) | :: | self | Block signature object. |
||
| type(block_signature_object), | intent(in), | optional | :: | signature | Block signature input. |
|
| integer(kind=I8P), | intent(in), | optional | :: | id | Unique (Morton) identification code. |
|
| integer(kind=I4P), | intent(in), | optional | :: | level | Grid refinement level. |
|
| integer(kind=I4P), | intent(in), | optional | :: | gc(1:) | Number of ghost cells along each frame. |
|
| integer(kind=I4P), | intent(in), | optional | :: | ni | Number of cells in I direction. |
|
| integer(kind=I4P), | intent(in), | optional | :: | nj | Number of cells in J direction. |
|
| integer(kind=I4P), | intent(in), | optional | :: | nk | Number of cells in K direction. |
|
| type(vector), | intent(in), | optional | :: | emin | Coordinates of minimum abscissa of the block. |
|
| type(vector), | intent(in), | optional | :: | emax | Coordinates of maximum abscissa of the block. |
|
| logical, | intent(in), | optional | :: | is_cartesian | Flag for checking if the block is Cartesian. |
|
| logical, | intent(in), | optional | :: | is_null_x | Nullify X direction (2D yz, 1D y or z domain). |
|
| logical, | intent(in), | optional | :: | is_null_y | Nullify Y direction (2D xy, 1D x or y domain). |
|
| logical, | intent(in), | optional | :: | is_null_z | Nullify Z direction (2D xy, 1D x or y domain). |
pure subroutine initialize(self, signature, &
id, level, gc, ni, nj, nk, &
emin, emax, is_cartesian, is_null_x, is_null_y, is_null_z)
!< Initialize block signature.
!<
!< @note If both whole `signature` and single components like `id, level, gc...` are passed, the values of
!< `signature%id, signature%level, ...` are overridden.
class(block_signature_object), intent(inout) :: self !< Block signature object.
type(block_signature_object), intent(in), optional :: signature !< Block signature input.
integer(I8P), intent(in), optional :: id !< Unique (Morton) identification code.
integer(I4P), intent(in), optional :: level !< Grid refinement level.
integer(I4P), intent(in), optional :: gc(1:) !< Number of ghost cells along each frame.
integer(I4P), intent(in), optional :: ni !< Number of cells in I direction.
integer(I4P), intent(in), optional :: nj !< Number of cells in J direction.
integer(I4P), intent(in), optional :: nk !< Number of cells in K direction.
type(vector), intent(in), optional :: emin !< Coordinates of minimum abscissa of the block.
type(vector), intent(in), optional :: emax !< Coordinates of maximum abscissa of the block.
logical, intent(in), optional :: is_cartesian !< Flag for checking if the block is Cartesian.
logical, intent(in), optional :: is_null_x !< Nullify X direction (2D yz, 1D y or z domain).
logical, intent(in), optional :: is_null_y !< Nullify Y direction (2D xy, 1D x or y domain).
logical, intent(in), optional :: is_null_z !< Nullify Z direction (2D xy, 1D x or y domain).
call self%destroy
if (present(signature )) self = signature
if (present(id )) self%id = id
if (present(level )) self%level = level
if (present(gc )) self%gc = gc
if (present(ni )) self%ni = ni
if (present(nj )) self%nj = nj
if (present(nk )) self%nk = nk
if (present(emin )) self%emin = emin
if (present(emax )) self%emax = emax
if (present(is_cartesian)) self%is_cartesian = is_cartesian
if (present(is_null_x )) self%is_null_x = is_null_x
if (present(is_null_y )) self%is_null_y = is_null_y
if (present(is_null_z )) self%is_null_z = is_null_z
endsubroutine initialize