Implement procedures for exchanging information with halo blocks in block-structured grid
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private, | allocatable, dimension(:) | :: | global_block_partitions | |||
type(surfaces), | private | :: | singleton[*] | Singleton pattern: one instance per image. Design: using a derived-type coarray instead of component coarrays is both simpler and facilitates setting different component array bounds on different images, which facilitates using the global block_identifier as the first index. |
|||
integer, | private, | parameter | :: | success | = | 0 |
result is the halo_outbox first index corresponding to the block identifier block_id
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | block_id |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | block_id |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | my_block_id | |||
integer, | intent(in) | :: | coordinate_direction | |||
integer, | intent(in) | :: | face_direction |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | image | |||
integer, | intent(in) | :: | block_id | |||
integer, | intent(in) | :: | coordinate_direction | |||
integer, | intent(in) | :: | face_direction | |||
integer, | intent(in) | :: | scalar_id |
surface-normal scalar flux components: shape = [Ny, Nz] or [Nx, Nz] or [Nx, Ny] depending on orientation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | image | |||
integer, | intent(in) | :: | block_id | |||
integer, | intent(in) | :: | coordinate_direction | |||
integer(kind=enumeration), | intent(in) | :: | face_direction |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | image | |||
integer, | intent(in) | :: | block_id | |||
integer, | intent(in) | :: | coordinate_direction | |||
integer, | intent(in) | :: | face_direction |
surface vertices: shape=[Nx,Ny,Nz,space_dim] where findloc(shape(positions, value=1)) designates surface-normal direction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | block_id | |||
integer, | intent(in) | :: | coordinate_direction | |||
integer(kind=enumeration), | intent(in) | :: | face |
parentheses prevent GCC 8.3 internal compiler error for actual arguments for which any lbound /= 1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(package), | intent(in), | dimension(:,:,:) | :: | my_halo_outbox | ||
integer, | intent(in), | dimension(:) | :: | block_partitions |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | block_id | |||
integer, | intent(in) | :: | coordinate_direction | |||
integer(kind=enumeration), | intent(in) | :: | face | |||
real(kind=r8k), | intent(in), | dimension(:,:) | :: | s_flux_normal | surface-normal scalar flux components: shape = [Ny, Nz] or [Nx, Nz] or [Nx, Ny] |
|
integer, | intent(in) | :: | scalar_id |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | num_scalars |