This module handles all of the communications
test whether communicator is initialised; returns true always for serial build
These routines do not synchronise errors. You should not normally use them. If you do use them, you are required to make sure that the error conditions between the MPI processes are correctly synced up on exit from your code.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private, | parameter | :: | code_mpi | = | 4 | |
| integer, | private, | parameter | :: | mpi_send_tag | = | 77 | |
| integer, | private, | parameter | :: | root_id | = | 0 |
Send integar array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send logical array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send real array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send character array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send character array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Reduce integer data to root node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| character(len=*), | intent(in) | :: | op | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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) | :: | 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 |
Gather real data to root node (for arrays of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 2 and 3, respectively)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) |
array on the root node to 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 |
Gather complex data to root node (for arrays of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 3 and 4, respectively)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 4)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Scatter integer data from root node (array of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
Scatter integer data from root node (array of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
Scatter integer data from root node (array of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:,:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
Scatter real data from root node (array of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter real data from root node (array of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter real data from root node (array of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter complex data from root node (array of rank 3)
| 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 |
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 |
Send integar array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send logical array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send real array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send character array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send character array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send integer array to specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | to | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send logical array to specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | to | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send character array to specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | to | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Receive integer array from specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | from | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Receive logical array from specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | from | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Receive character array from specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | from | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Reduce integer data to root node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| character(len=*), | intent(in) | :: | op | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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) | :: | 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 |
Gather real data to root node (for arrays of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 2 and 3, respectively)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) |
array on the root node to 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 |
Gather complex data to root node (for arrays of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 3 and 4, respectively)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 4)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Scatter integer data from root node (array of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
Scatter integer data from root node (array of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
Scatter integer data from root node (array of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:,:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
Scatter real data from root node (array of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter real data from root node (array of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter real data from root node (array of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter complex data from root node (array of rank 3)
| 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 |
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 |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | comm | = | -1 |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | stat |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(w90_comm_type), | intent(in) | :: | comm |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(w90_comm_type), | intent(in) | :: | comm |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(w90_comm_type), | intent(in) | :: | comm |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(w90_comm_type), | intent(in) | :: | comm | |||
| type(w90_error_type), | intent(inout), | allocatable | :: | error | ||
| integer | :: | ierr |
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(inout) | :: | counts(0:) |
Array (of size num_nodes) with the number of elements of the array on each node |
||
| integer, | intent(inout) | :: | displs(0:) |
Array (of size num_nodes) with the displacement relative to the global array |
||
| type(w90_comm_type), | intent(in) | :: | comm |
A barrier to synchronise all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(w90_comm_type), | intent(in) | :: | comm |
Send integar array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send real array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send logical array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send character array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send character array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send logical array to specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | to | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send integer array to specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | to | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send character array to specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | to | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Receive logical array from specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | from | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Receive integer array from specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | from | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Receive character array from specified node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| integer, | intent(in) | :: | from | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Reduce integer data to root node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| character(len=*), | intent(in) | :: | op | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather real data to root node (for arrays of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 2 and 3, respectively)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) |
array on the root node to 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 |
Gather complex data to root node (for arrays of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 3 and 4, respectively)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 4)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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) | :: | 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 |
Scatter real data from root node (array of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter real data from root node (array of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter real data from root node (array of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter complex data from root node (array of rank 3)
| 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 |
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 |
Scatter integer data from root node (array of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
Scatter integer data from root node (array of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
Scatter integer data from root node (array of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:,:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
A barrier to synchronise all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send integar array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send real array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send logical array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send character array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Send character array from root node to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Reduce integer data to root node
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| character(len=*), | intent(in) | :: | op | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather real data to root node (for arrays of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) |
array on the root node to 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 |
Gather real data to root node (for arrays of rank 2 and 3, respectively)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for sending data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be sent to the root node |
||
| real(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) |
array on the root node to 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 |
Gather complex data to root node (for arrays of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 3 and 4, respectively)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Gather complex data to root node (for arrays of rank 4)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(inout) | :: | array(:,:,:,:) | |||
| integer, | intent(in) | :: | localcount | |||
| complex(kind=dp), | intent(inout) | :: | rootglobalarray(:,:,:,:) | |||
| integer, | intent(in) | :: | counts(0:) | |||
| integer, | intent(in) | :: | displs(0:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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) | :: | 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 |
Scatter real data from root node (array of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter real data from root node (array of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter real data from root node (array of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:,:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| real(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 |
Scatter complex data from root node (array of rank 3)
| 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 |
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 |
Scatter integer data from root node (array of rank 1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
Scatter integer data from root node (array of rank 2)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |
Scatter integer data from root node (array of rank 3)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | array(:,:,:) |
local array for getting data |
||
| integer, | intent(in) | :: | localcount |
localcount elements will be fetched from the root node |
||
| integer, | 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 |