Scatter complex data from root node (array of rank 4)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:,:) |
array on the root node from which data will be sent |
||
| integer, | intent(in) | :: | counts(0:) |
how data should be partitioned, see MPI documentation or function comms_array_split |
||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
subroutine comms_scatterv_cmplx_4(array, localcount, rootglobalarray, counts, displs, error, comm) !! Scatter complex data from root node (array of rank 4) implicit none complex(kind=dp), intent(inout) :: array(:, :, :, :) !! local array for getting data integer, intent(in) :: localcount !! localcount elements will be fetched from the root node complex(kind=dp), intent(inout) :: rootglobalarray(:, :, :, :) !! array on the root node from which data will be sent integer, intent(in) :: counts(0:) !! how data should be partitioned, see MPI documentation or function comms_array_split integer, intent(in) :: displs(0:) type(w90_comm_type), intent(in) :: comm type(w90_error_type), allocatable, intent(out) :: error call comms_sync_error(comm, error, 0) ! sync error state across comm if (allocated(error)) return call comms_no_sync_scatterv_cmplx_4(array, localcount, rootglobalarray, counts, displs, & error, comm) end subroutine comms_scatterv_cmplx_4