FIXME : Add documentation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private, | dimension (6) | :: | to_low | |||
integer, | private, | dimension (6) | :: | from_low | |||
integer, | private, | dimension (6) | :: | to_high | |||
integer, | private, | dimension (6) | :: | from_high | |||
type(index_map), | private, | dimension (:), allocatable | :: | to | |||
type(index_map), | private, | dimension (:), allocatable | :: | from | |||
complex, | private, | dimension (:), allocatable | :: | complex_buff | |||
real, | private, | dimension (:), allocatable | :: | real_buff | |||
integer, | private, | dimension (:), allocatable | :: | integer_buff | |||
logical, | private, | dimension (:), allocatable | :: | logical_buff | |||
integer, | private | :: | nsend | ||||
integer, | private | :: | nrecv | ||||
type(redist_buffer), | private, | dimension(:), allocatable | :: | buff_send | |||
type(redist_buffer), | private, | dimension(:), allocatable | :: | buff_recv | |||
integer, | private, | dimension(:), allocatable | :: | send_hand | |||
integer, | private, | dimension(:), allocatable | :: | recv_hand | |||
integer, | private, | dimension(:), allocatable | :: | send_inv_hand | |||
integer, | private, | dimension(:), allocatable | :: | recv_inv_hand | |||
integer, | private, | dimension(:), allocatable | :: | recv_ip | |||
integer, | private, | dimension(:), allocatable | :: | recv_inv_ip | |||
integer, | private | :: | optimised_choice | = | 0 | ||
integer, | private | :: | optimised_choice_inv | = | 0 | ||
character(len=3), | private | :: | redistname | = | "" | ||
character(len=1), | private | :: | char | = | 'X' |
type :: redist_type
private
integer, dimension (6) :: to_low, from_low, to_high, from_high
type (index_map), dimension (:), allocatable :: to
type (index_map), dimension (:), allocatable :: from
complex, dimension (:), allocatable :: complex_buff
real, dimension (:), allocatable :: real_buff
integer, dimension (:), allocatable :: integer_buff
logical, dimension (:), allocatable :: logical_buff
integer :: nsend, nrecv !Note these swap meaning when doing inverse communication
type(redist_buffer), dimension(:), allocatable :: buff_send, buff_recv
integer, dimension(:), allocatable :: send_hand, recv_hand, send_inv_hand, recv_inv_hand
integer, dimension(:), allocatable :: recv_ip, recv_inv_ip
! optimised choice and optimised_choice_inv set the algorithm used for
! gather/scatters. With default zero, different algorithms are timed
! during initialization. Putting these inside the redist object allows
! this behaviour to be overridden. This is useful, for example, when using
! "split domains" layouts, where one of the optimized algorithms cannot be
! used as it makes assumptions about the form of layouts.
integer :: optimised_choice = 0
integer :: optimised_choice_inv = 0
character (len=3) :: redistname = ""
character (len=1) :: char = 'X'
end type redist_type