unpack_pipelined_f32_block_16 Subroutine

public pure subroutine unpack_pipelined_f32_block_16(in, out, dims, locals)

Unpacks part of contiguous buffer recieved from a single rank.

For 3D arrays:

out(x + in_displacement, y, z) = in(out_displacement + z * nxx * nyy + y * nxx + x)

where out buffer x,y,z are full slab indices, while in buffer x,y,z are indices that were sent from neighbor rank.

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: in(*)

Source host-allocated buffer

real(kind=real32), intent(inout) :: out(*)

Target host-allocated buffer

integer(kind=int32), intent(in) :: dims(:)

Dimensions of the array

integer(kind=int32), intent(in) :: locals(:)

Neighbor data


Called by

proc~~unpack_pipelined_f32_block_16~~CalledByGraph proc~unpack_pipelined_f32_block_16 unpack_pipelined_f32_block_16 proc~execute_f32_block_16 execute_f32_block_16 proc~execute_f32_block_16->proc~unpack_pipelined_f32_block_16 proc~unpack_f32_block_16 unpack_f32_block_16 proc~execute_f32_block_16->proc~unpack_f32_block_16 proc~run_unpack run_unpack proc~run_unpack->proc~unpack_pipelined_f32_block_16 proc~unpack_f32_block_16->proc~unpack_pipelined_f32_block_16 program~test_host_kernels test_host_kernels program~test_host_kernels->proc~run_unpack