| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=cuda_stream_kind), | public, | parameter | :: | default_stream | = | 0 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(out), | device, dimension(:, :, :) | :: | f_recv_s | ||
| real(kind=dp), | intent(out), | device, dimension(:, :, :) | :: | f_recv_e | ||
| real(kind=dp), | intent(in), | device, dimension(:, :, :) | :: | f_send_s | ||
| real(kind=dp), | intent(in), | device, dimension(:, :, :) | :: | f_send_e | ||
| integer, | intent(in) | :: | n_data | |||
| integer, | intent(in) | :: | nproc | |||
| integer, | intent(in) | :: | prev | |||
| integer, | intent(in) | :: | next |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(out), | device, dimension(:, :, :) | :: | f1_recv_s | ||
| real(kind=dp), | intent(out), | device, dimension(:, :, :) | :: | f1_recv_e | ||
| real(kind=dp), | intent(out), | device, dimension(:, :, :) | :: | f2_recv_s | ||
| real(kind=dp), | intent(out), | device, dimension(:, :, :) | :: | f2_recv_e | ||
| real(kind=dp), | intent(out), | device, dimension(:, :, :) | :: | f3_recv_s | ||
| real(kind=dp), | intent(out), | device, dimension(:, :, :) | :: | f3_recv_e | ||
| real(kind=dp), | intent(in), | device, dimension(:, :, :) | :: | f1_send_s | ||
| real(kind=dp), | intent(in), | device, dimension(:, :, :) | :: | f1_send_e | ||
| real(kind=dp), | intent(in), | device, dimension(:, :, :) | :: | f2_send_s | ||
| real(kind=dp), | intent(in), | device, dimension(:, :, :) | :: | f2_send_e | ||
| real(kind=dp), | intent(in), | device, dimension(:, :, :) | :: | f3_send_s | ||
| real(kind=dp), | intent(in), | device, dimension(:, :, :) | :: | f3_send_e | ||
| integer, | intent(in) | :: | n_data | |||
| integer, | intent(in) | :: | nproc | |||
| integer, | intent(in) | :: | prev | |||
| integer, | intent(in) | :: | next |
Periodic wrap-around on a single rank: copies the first n_data elements of a halo buffer, the groups of the direction being exchanged. The buffers are sized for the direction with the most groups, so a whole-array assignment would copy that maximum on every exchange (16 times the data in use on an elongated mesh).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout), | device, dimension(:, :, :) | :: | dst | ||
| real(kind=dp), | intent(in), | device, dimension(:, :, :) | :: | src | ||
| integer, | intent(in) | :: | n_data |