This module handles all of the communications
JRY subroutine comms_gatherv_logical(array,localcount,rootglobalarray,counts,displs) !! Gather real data to root node implicit none
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public, | save | :: | on_root | Are we the root node |
||
integer, | public, | save | :: | num_nodes | Number of nodes |
||
integer, | public, | save | :: | my_node_id | ID of this node |
||
integer, | public, | parameter | :: | root_id | = | 0 | ID of the root node |
integer, | private, | parameter | :: | mpi_send_tag | = | 77 |
Send integar array from root node to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size |
Send logical array from root node to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size |
Send real array from root node to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size |
Send character array from root node to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size |
Send character array from root node to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size |
Send integer array to specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | to |
Send logical array to specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | to |
Send real array to specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | to |
Send complex array to specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | to |
Send character array to specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | to |
Receive integer array from specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | from |
Receive logical array from specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | from |
Receive real array from specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | from |
Receive complex array from specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | from |
Receive character array from specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | from |
Reduce integer data to root node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
character(len=*), | intent(in) | :: | op |
Reduce real data to root node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
character(len=*), | intent(in) | :: | op |
Reduce complex data to root node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
character(len=*), | intent(in) | :: | op |
Reduce real data to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
character(len=*), | intent(in) | :: | op |
Reduce complex data to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
character(len=*), | intent(in) | :: | op |
Gather real data to root node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(inout) | :: | array | local array for sending data |
||
integer, | intent(in) | :: | localcount | localcount elements will be sent to the root node |
||
logical, | intent(inout) | :: | rootglobalarray | array on the root node to which data will be sent |
||
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather real data to root node (for arrays of rank 1)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:) | :: | array | local array for sending data |
|
integer, | intent(in) | :: | localcount | localcount elements will be sent to the root node |
||
real(kind=dp), | intent(inout), | dimension(:) | :: | rootglobalarray | array on the root node to which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather real data to root node (for arrays of rank 2)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:, :) | :: | array | local array for sending data |
|
integer, | intent(in) | :: | localcount | localcount elements will be sent to the root node |
||
real(kind=dp), | intent(inout), | dimension(:, :) | :: | rootglobalarray | array on the root node to which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather real data to root node (for arrays of rank 3)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:, :, :) | :: | array | local array for sending data |
|
integer, | intent(in) | :: | localcount | localcount elements will be sent to the root node |
||
real(kind=dp), | intent(inout), | dimension(:, :, :) | :: | rootglobalarray | array on the root node to which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather real data to root node (for arrays of rank 2 and 3, respectively)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:, :) | :: | array | local array for sending data |
|
integer, | intent(in) | :: | localcount | localcount elements will be sent to the root node |
||
real(kind=dp), | intent(inout), | dimension(:, :, :) | :: | rootglobalarray | array on the root node to which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather complex data to root node (for arrays of rank 1)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:) | :: | array | ||
integer, | intent(in) | :: | localcount | |||
complex(kind=dp), | intent(inout), | dimension(:) | :: | rootglobalarray | ||
integer, | intent(in), | dimension(num_nodes) | :: | counts | ||
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather complex data to root node (for arrays of rank 2)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :) | :: | array | ||
integer, | intent(in) | :: | localcount | |||
complex(kind=dp), | intent(inout), | dimension(:, :) | :: | rootglobalarray | ||
integer, | intent(in), | dimension(num_nodes) | :: | counts | ||
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather complex data to root node (for arrays of rank 3)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :, :) | :: | array | ||
integer, | intent(in) | :: | localcount | |||
complex(kind=dp), | intent(inout), | dimension(:, :, :) | :: | rootglobalarray | ||
integer, | intent(in), | dimension(num_nodes) | :: | counts | ||
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather complex data to root node (for arrays of rank 3 and 4, respectively)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :, :) | :: | array | ||
integer, | intent(in) | :: | localcount | |||
complex(kind=dp), | intent(inout), | dimension(:, :, :, :) | :: | rootglobalarray | ||
integer, | intent(in), | dimension(num_nodes) | :: | counts | ||
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather complex data to root node (for arrays of rank 4)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :, :, :) | :: | array | ||
integer, | intent(in) | :: | localcount | |||
complex(kind=dp), | intent(inout), | dimension(:, :, :, :) | :: | rootglobalarray | ||
integer, | intent(in), | dimension(num_nodes) | :: | counts | ||
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter integer data from root node (array of rank 1)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout), | dimension(:) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
integer, | intent(inout), | dimension(:) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter integer data from root node (array of rank 2)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout), | dimension(:, :) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
integer, | intent(inout), | dimension(:, :) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter integer data from root node (array of rank 3)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout), | dimension(:, :, :) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
integer, | intent(inout), | dimension(:, :, :) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter real data from root node (array of rank 1)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
real(kind=dp), | intent(inout), | dimension(:) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter real data from root node (array of rank 2)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:, :) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
real(kind=dp), | intent(inout), | dimension(:, :) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter real data from root node (array of rank 3)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:, :, :) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
real(kind=dp), | intent(inout), | dimension(:, :, :) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter complex data from root node (array of rank 4)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :, :, :) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
complex(kind=dp), | intent(inout), | dimension(:, :, :, :) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Set up communications
Set up variables related to communicators This should be called also in library mode
Given an array of size numpoints, we want to split on num_nodes nodes. This function returns two arrays: count and displs.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | numpoints | Number of elements of the array to be scattered |
||
integer, | intent(out), | dimension(0:num_nodes - 1) | :: | counts | Array (of size num_nodes) with the number of elements of the array on each node |
|
integer, | intent(out), | dimension(0:num_nodes - 1) | :: | displs | Array (of size num_nodes) with the displacement relative to the global array |
Called to finalise the comms
A barrier to synchronise all nodes
Send integar array from root node to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size |
Send real array from root node to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size |
Send logical array from root node to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size |
Send character array from root node to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size |
Send character array from root node to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size |
Send logical array to specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | to |
Send integer array to specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | to |
Send character array to specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | to |
Send real array to specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | to |
Send complex array to specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | to |
Receive logical array from specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | from |
Receive integer array from specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | from |
Receive character array from specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | from |
Receive real array from specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | from |
Receive complex array from specified node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
integer, | intent(in) | :: | from |
Reduce integer data to root node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
character(len=*), | intent(in) | :: | op |
Reduce real data to root node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
character(len=*), | intent(in) | :: | op |
Reduce complex data to root node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
character(len=*), | intent(in) | :: | op |
Reduce real data to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
character(len=*), | intent(in) | :: | op |
Reduce complex data to all nodes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout) | :: | array | |||
integer, | intent(in) | :: | size | |||
character(len=*), | intent(in) | :: | op |
Gather real data to root node (for arrays of rank 1)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:) | :: | array | local array for sending data |
|
integer, | intent(in) | :: | localcount | localcount elements will be sent to the root node |
||
real(kind=dp), | intent(inout), | dimension(:) | :: | rootglobalarray | array on the root node to which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather real data to root node (for arrays of rank 2)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:, :) | :: | array | local array for sending data |
|
integer, | intent(in) | :: | localcount | localcount elements will be sent to the root node |
||
real(kind=dp), | intent(inout), | dimension(:, :) | :: | rootglobalarray | array on the root node to which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather real data to root node (for arrays of rank 3)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:, :, :) | :: | array | local array for sending data |
|
integer, | intent(in) | :: | localcount | localcount elements will be sent to the root node |
||
real(kind=dp), | intent(inout), | dimension(:, :, :) | :: | rootglobalarray | array on the root node to which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather real data to root node (for arrays of rank 2 and 3, respectively)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:, :) | :: | array | local array for sending data |
|
integer, | intent(in) | :: | localcount | localcount elements will be sent to the root node |
||
real(kind=dp), | intent(inout), | dimension(:, :, :) | :: | rootglobalarray | array on the root node to which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather complex data to root node (for arrays of rank 1)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:) | :: | array | ||
integer, | intent(in) | :: | localcount | |||
complex(kind=dp), | intent(inout), | dimension(:) | :: | rootglobalarray | ||
integer, | intent(in), | dimension(num_nodes) | :: | counts | ||
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather complex data to root node (for arrays of rank 2)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :) | :: | array | ||
integer, | intent(in) | :: | localcount | |||
complex(kind=dp), | intent(inout), | dimension(:, :) | :: | rootglobalarray | ||
integer, | intent(in), | dimension(num_nodes) | :: | counts | ||
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather complex data to root node (for arrays of rank 3)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :, :) | :: | array | ||
integer, | intent(in) | :: | localcount | |||
complex(kind=dp), | intent(inout), | dimension(:, :, :) | :: | rootglobalarray | ||
integer, | intent(in), | dimension(num_nodes) | :: | counts | ||
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather complex data to root node (for arrays of rank 3 and 4, respectively)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :, :) | :: | array | ||
integer, | intent(in) | :: | localcount | |||
complex(kind=dp), | intent(inout), | dimension(:, :, :, :) | :: | rootglobalarray | ||
integer, | intent(in), | dimension(num_nodes) | :: | counts | ||
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather complex data to root node (for arrays of rank 4)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :, :, :) | :: | array | ||
integer, | intent(in) | :: | localcount | |||
complex(kind=dp), | intent(inout), | dimension(:, :, :, :) | :: | rootglobalarray | ||
integer, | intent(in), | dimension(num_nodes) | :: | counts | ||
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Gather real data to root node
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(inout) | :: | array | local array for sending data |
||
integer, | intent(in) | :: | localcount | localcount elements will be sent to the root node |
||
logical, | intent(inout) | :: | rootglobalarray | array on the root node to which data will be sent |
||
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter real data from root node (array of rank 1)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
real(kind=dp), | intent(inout), | dimension(:) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter real data from root node (array of rank 2)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:, :) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
real(kind=dp), | intent(inout), | dimension(:, :) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter real data from root node (array of rank 3)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | dimension(:, :, :) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
real(kind=dp), | intent(inout), | dimension(:, :, :) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter complex data from root node (array of rank 4)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :, :, :) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
complex(kind=dp), | intent(inout), | dimension(:, :, :, :) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter integer data from root node (array of rank 1)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout), | dimension(:) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
integer, | intent(inout), | dimension(:) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter integer data from root node (array of rank 2)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout), | dimension(:, :) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
integer, | intent(inout), | dimension(:, :) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |
Scatter integer data from root node (array of rank 3)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout), | dimension(:, :, :) | :: | array | local array for getting data |
|
integer, | intent(in) | :: | localcount | localcount elements will be fetched from the root node |
||
integer, | intent(inout), | dimension(:, :, :) | :: | rootglobalarray | array on the root node from which data will be sent |
|
integer, | intent(in), | dimension(num_nodes) | :: | counts | how data should be partitioned, see MPI documentation or function comms_array_split |
|
integer, | intent(in), | dimension(num_nodes) | :: | displs |