redistribute Module

Redistribute distributed (integer, real, complex or logical) (1, 2, 3, or 4) dimensional arrays into two dimensional arrays with first index on local processor, and vice versa.

The first operation is called 'gather' and the second is called 'scatter.'

One can also do a 'fill' operation. This consists of copying values from a (2, 3, or 4) dimensional array of (integer, real, complex, or logical ) values into another array with the same number of dimensions.

One can also do a three index to four index redistribution for complex numbers.


Contents

get_redist_times reset_redist_times set_redist_character_type set_yxf_optimised_variables set_xxf_optimised_variables set_optimised_choice setup_persistent init_redist_gs2 init_redist_agk init_fill delete_redist delete_list c_redist_12 c_redist_22 c_redist_22_old_copy c_redist_22_new_copy c_redist_22_mpi_copy c_redist_22_mpi_copy_nonblock c_redist_22_mpi_copy_persist_start c_redist_22_mpi_copy_persist_end c_redist_22_inv c_redist_22_inv_old_copy c_redist_22_inv_new_copy c_redist_22_inv_mpi_copy c_redist_22_inv_mpi_copy_nonblock c_redist_22_inv_mpi_copy_persist_start c_redist_22_inv_mpi_copy_persist_end c_redist_32 c_redist_32_old_copy c_redist_32_new_copy c_redist_32_new_opt_copy c_redist_32_mpi_copy c_redist_32_mpi_copy_nonblock c_redist_32_mpi_copy_persist_start c_redist_32_mpi_copy_persist_end c_redist_32_inv c_redist_32_inv_old_copy c_redist_32_inv_new_copy c_redist_32_inv_new_opt_copy c_redist_32_inv_mpi_copy c_redist_32_inv_mpi_copy_nonblock c_redist_32_inv_mpi_copy_persist_start c_redist_32_inv_mpi_copy_persist_end c_redist_42 c_redist_42_inv c_redist_23 c_redist_34 r_redist_12 r_redist_22 r_redist_22_inv r_redist_32 r_redist_32_inv r_redist_42 r_redist_42_inv r_redist_62 r_redist_62_inv r_redist_26 r_redist_26_inv r_redist_33 r_redist_33_mpi_copy r_redist_33_mpi_copy_nonblock r_redist_33_mpi_copy_persist_start r_redist_33_mpi_copy_persist_end r_redist_33_inv r_redist_33_inv_mpi_copy r_redist_33_inv_mpi_copy_nonblock r_redist_33_inv_mpi_copy_persist_start r_redist_33_inv_mpi_copy_persist_end i_redist_12 i_redist_22 i_redist_22_inv i_redist_32 i_redist_32_inv i_redist_42 i_redist_42_inv l_redist_12 l_redist_22 l_redist_22_inv l_redist_32 l_redist_32_inv l_redist_42 l_redist_42_inv c_redist_33 c_redist_33_mpi_copy c_redist_33_mpi_copy_nonblock c_redist_33_mpi_copy_persist_start c_redist_33_mpi_copy_persist_end c_redist_33_inv c_redist_33_inv_mpi_copy c_redist_33_inv_mpi_copy_nonblock c_redist_33_inv_mpi_copy_persist_start c_redist_33_inv_mpi_copy_persist_end c_redist_36 c_redist_36_mpi_copy c_redist_36_mpi_copy_nonblock c_redist_36_inv c_redist_36_inv_mpi_copy c_redist_36_inv_mpi_copy_nonblock c_fill_2 c_fill_3 c_fill_3_mpi_copy c_fill_3_mpi_copy_nonblock c_fill_4 r_fill_2 r_fill_3 r_fill_4 i_fill_2 i_fill_3 i_fill_4 l_fill_2 l_fill_3 l_fill_4 report_map_property measure_gather_32 measure_scatter_23 measure_gather_33 measure_scatter_33 measure_gather_22 measure_scatter_22 write_connection_matrix

Variables

Type Visibility Attributes Name Initial
logical, private :: opt_local_copy = .false.
logical, public :: opt_redist_nbk = .true.

Do we use non-blocking sends?

logical, public :: opt_redist_persist = .false.

Do we use persistent sends?

logical, public :: opt_redist_persist_overlap = .false.

Do we try to do a bit of overlapping with persistent sends?

logical, public :: using_measure_scatter = .true.

If true then don't time in gather/scatter directly

integer, private :: naky = 0
integer, private :: ntgrid = 0
integer, private :: nlambda = 0
integer, private :: ntheta0 = 0
integer, private :: negrid = 0
integer, private :: nx = 0
integer, private :: xxf_lo_ulim_proc = 0
integer, private :: yxf_lo_ulim_proc = 0
integer, private :: g_lo_ulim = 0
character(len=5), private :: layout = ''
integer, public :: gather_count = 0
integer, public :: scatter_count = 0
real, public :: time_redist(2) = 0.
real, private :: time_redist_mpi = 0.

Interfaces

public interface gather

  • private subroutine c_redist_22(r, from_here, to_here)

    FIXME : Add documentation
    DD> Pick from non-blocking and blocking approach

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
    complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine r_redist_22(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
    real, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine i_redist_22(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    integer, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
    integer, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine l_redist_22(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    logical, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
    logical, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine c_redist_32(r, from_here, to_here)

    FIXME : Add documentation
    DD>

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
    complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine r_redist_32(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
    real, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine i_redist_32(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    integer, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
    integer, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine l_redist_32(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    logical, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
    logical, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine c_redist_42(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: from_here
    complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine r_redist_42(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: from_here
    real, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine i_redist_42(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    integer, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: from_here
    integer, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine l_redist_42(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    logical, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: from_here
    logical, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine c_redist_23(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
    complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: to_here
  • private subroutine c_redist_34(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
    complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):) :: to_here
  • private subroutine c_redist_36(r, from_here, to_here, ntgrid)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
    complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: to_here
    integer, intent(in) :: ntgrid
  • private subroutine r_redist_62(r, from_here, to_here)

    This routine is a copy of R_redist_42, with the dimensionality of from here increased to 6

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):, r%from_low(5):, r%from_low(6):) :: from_here
    real, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here
  • private subroutine r_redist_26(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
    real, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: to_here
  • private subroutine c_redist_33(r, from_here, to_here)

    FIXME : Add documentation DD>

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
    complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: to_here
  • private subroutine r_redist_33(r, from_here, to_here)

    FIXME : Add documentation DD>

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
    real, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: to_here

public interface scatter

  • private subroutine c_redist_12(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%from_low(1):) :: from_here
    complex, intent(inout), dimension (r%to_low(1):,r%to_low(2):) :: to_here
  • private subroutine r_redist_12(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%from_low(1):) :: from_here
    real, intent(inout), dimension (r%to_low(1):,r%to_low(2):) :: to_here
  • private subroutine i_redist_12(r, from_here, to_here)

    FIXME : Add documentation

    MRH

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    integer, intent(in), dimension (r%from_low(1):) :: from_here
    integer, intent(inout), dimension (r%to_low(1):,r%to_low(2):) :: to_here
  • private subroutine l_redist_12(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    logical, intent(in), dimension (r%from_low(1):) :: from_here
    logical, intent(inout), dimension (r%to_low(1):,r%to_low(2):) :: to_here
  • private subroutine c_redist_22_inv(r, from_here, to_here)

    FIXME : Add documentation
    DD>

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here
  • private subroutine r_redist_22_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    real, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here
  • private subroutine i_redist_22_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    integer, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    integer, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here
  • private subroutine l_redist_22_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    logical, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    logical, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here
  • private subroutine c_redist_32_inv(r, from_here, to_here)

    FIXME : Add documentation
    DD>

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here
  • private subroutine r_redist_32_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    real, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here
  • private subroutine i_redist_32_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    integer, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    integer, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here
  • private subroutine l_redist_32_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    logical, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    logical, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here
  • private subroutine c_redist_42_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: to_here
  • private subroutine r_redist_42_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    real, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: to_here
  • private subroutine i_redist_42_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    integer, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    integer, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: to_here
  • private subroutine l_redist_42_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    logical, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    logical, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: to_here
  • private subroutine c_redist_36_inv(r, from_here, to_here, ntgrid)

    FIXME : Add documentation DD>

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: from_here
    complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here
    integer, intent(in) :: ntgrid
  • private subroutine r_redist_62_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
    real, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):, r%from_low(5):, r%from_low(6):) :: to_here
  • private subroutine r_redist_26_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: from_here
    real, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here
  • private subroutine c_redist_33_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    complex, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: from_here
    complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here
  • private subroutine r_redist_33_inv(r, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    real, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: from_here
    real, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

public interface measure_gather

  • private subroutine measure_gather_32(map, gin, gout)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: map
    complex, intent(in), dimension (:,:,:) :: gin
    complex, intent(out), dimension (:,:) :: gout
  • private subroutine measure_gather_33(map, gin, gout)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: map
    complex, intent(in), dimension (:,:,:) :: gin
    complex, intent(out), dimension (:,:,:) :: gout
  • private subroutine measure_gather_22(map, gin, gout)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: map
    complex, intent(in), dimension (:,:) :: gin
    complex, intent(out), dimension (:,:) :: gout

public interface measure_scatter

  • private subroutine measure_scatter_23(map, gin, gout)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: map
    complex, intent(in), dimension (:,:) :: gin
    complex, intent(out), dimension (:,:,:) :: gout
  • private subroutine measure_scatter_33(map, gin, gout)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: map
    complex, intent(in), dimension (:,:,:) :: gin
    complex, intent(out), dimension (:,:,:) :: gout
  • private subroutine measure_scatter_22(map, gin, gout)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: map
    complex, intent(in), dimension (:,:) :: gin
    complex, intent(out), dimension (:,:) :: gout

public interface init_redist

  • private subroutine init_redist_gs2(r, char, to_low, to_high, to_list, from_low, from_high, from_list, ierr)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    character(len=1), intent(in) :: char
    integer, intent(in), dimension(:) :: to_low
    integer, intent(in), dimension(:) :: to_high
    type(index_list_type), intent(in), dimension (0:nproc-1) :: to_list
    integer, intent(in), dimension(:) :: from_low
    integer, intent(in), dimension(:) :: from_high
    type(index_list_type), intent(in), dimension (0:nproc-1) :: from_list
    integer, intent(out), optional :: ierr
  • private subroutine init_redist_agk(r, char, to_low, to_high, to_list, from_low, from_high, from_list, ierr)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: r
    character(len=1), intent(in) :: char
    integer, intent(in) :: to_low
    integer, intent(in), dimension(:) :: to_high
    type(index_list_type), intent(in), dimension (0:nproc-1) :: to_list
    integer, intent(in), dimension(:) :: from_low
    integer, intent(in), dimension(:) :: from_high
    type(index_list_type), intent(in), dimension (0:nproc-1) :: from_list
    integer, intent(out), optional :: ierr

public interface fill

  • private subroutine c_fill_2(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    complex, intent(in), dimension (f%from_low(1):, f%from_low(2):) :: from_here
    complex, intent(inout), dimension (f%to_low(1):, f%to_low(2):) :: to_here
  • private subroutine c_fill_3(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    complex, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):) :: from_here
    complex, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):) :: to_here
  • private subroutine c_fill_4(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    complex, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):, f%from_low(4):) :: from_here
    complex, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):, f%to_low(4):) :: to_here
  • private subroutine r_fill_2(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    real, intent(in), dimension (f%from_low(1):, f%from_low(2):) :: from_here
    real, intent(inout), dimension (f%to_low(1):, f%to_low(2):) :: to_here
  • private subroutine r_fill_3(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    real, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):) :: from_here
    real, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):) :: to_here
  • private subroutine r_fill_4(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    real, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):, f%from_low(4):) :: from_here
    real, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):, f%to_low(4):) :: to_here
  • private subroutine i_fill_2(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    integer, intent(in), dimension (f%from_low(1):, f%from_low(2):) :: from_here
    integer, intent(inout), dimension (f%to_low(1):, f%to_low(2):) :: to_here
  • private subroutine i_fill_3(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    integer, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):) :: from_here
    integer, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):) :: to_here
  • private subroutine i_fill_4(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    integer, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):, f%from_low(4):) :: from_here
    integer, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):, f%to_low(4):) :: to_here
  • private subroutine l_fill_2(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    logical, intent(in), dimension (f%from_low(1):, f%from_low(2):) :: from_here
    logical, intent(inout), dimension (f%to_low(1):, f%to_low(2):) :: to_here
  • private subroutine l_fill_3(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    logical, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):) :: from_here
    logical, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):) :: to_here
  • private subroutine l_fill_4(f, from_here, to_here)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    type(redist_type), intent(inout) :: f
    logical, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):, f%from_low(4):) :: from_here
    logical, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):, f%to_low(4):) :: to_here

Derived Types

type, private ::  index_map

FIXME : Add documentation

Components

Type Visibility Attributes Name Initial
integer, public :: nn
integer, public, dimension (:), allocatable :: k
integer, public, dimension (:), allocatable :: l
integer, public, dimension (:), allocatable :: m
integer, public, dimension (:), allocatable :: n
integer, public, dimension (:), allocatable :: o
integer, public, dimension (:), allocatable :: p

type, private ::  redist_buffer

Small container type simply providing a 1D allocatable buffer. Used to allow array of buffers of different sizes.

Components

Type Visibility Attributes Name Initial
complex, public, dimension(:), allocatable :: complex_buffer
real, public, dimension(:), allocatable :: real_buffer

type, public ::  redist_type

FIXME : Add documentation

Components

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, public ::  index_list_type

FIXME : Add documentation

Components

Type Visibility Attributes Name Initial
integer, public, dimension (:), allocatable :: first
integer, public, dimension (:), allocatable :: second
integer, public, dimension (:), allocatable :: third
integer, public, dimension (:), allocatable :: fourth
integer, public, dimension (:), allocatable :: fifth
integer, public, dimension (:), allocatable :: sixth

Functions

public function get_redistname(r)

Get redistname

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r

Return Value character(len=3)


Subroutines

public subroutine get_redist_times(total_time, mpi_time, copy_time)

Returns current requested timer values

Arguments

Type IntentOptional Attributes Name
real, intent(out), optional :: total_time
real, intent(out), optional :: mpi_time
real, intent(out), optional :: copy_time

public subroutine reset_redist_times()

Resets redist timers to zero

Arguments

None

public subroutine set_redist_character_type(r, chartype)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
character(len=3), intent(in) :: chartype

public subroutine set_yxf_optimised_variables(lyxf_lo_ulim_proc)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: lyxf_lo_ulim_proc

public subroutine set_xxf_optimised_variables(lopt_local_copy, lnaky, lntgrid, lntheta0, lnlambda, lnegrid, lnx, lxxf_lo_ulim_proc, lg_lo_ulim, llayout)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: lopt_local_copy
integer, intent(in) :: lnaky
integer, intent(in) :: lntgrid
integer, intent(in) :: lntheta0
integer, intent(in) :: lnlambda
integer, intent(in) :: lnegrid
integer, intent(in) :: lnx
integer, intent(in) :: lxxf_lo_ulim_proc
integer, intent(in) :: lg_lo_ulim
character(len=5), intent(in) :: llayout

public subroutine set_optimised_choice(r, val)

Set choice of redist algorithm based on properties of g_lo

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
integer, intent(in) :: val

private subroutine setup_persistent(r)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r

private subroutine init_redist_gs2(r, char, to_low, to_high, to_list, from_low, from_high, from_list, ierr)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
character(len=1), intent(in) :: char
integer, intent(in), dimension(:) :: to_low
integer, intent(in), dimension(:) :: to_high
type(index_list_type), intent(in), dimension (0:nproc-1) :: to_list
integer, intent(in), dimension(:) :: from_low
integer, intent(in), dimension(:) :: from_high
type(index_list_type), intent(in), dimension (0:nproc-1) :: from_list
integer, intent(out), optional :: ierr

private subroutine init_redist_agk(r, char, to_low, to_high, to_list, from_low, from_high, from_list, ierr)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
character(len=1), intent(in) :: char
integer, intent(in) :: to_low
integer, intent(in), dimension(:) :: to_high
type(index_list_type), intent(in), dimension (0:nproc-1) :: to_list
integer, intent(in), dimension(:) :: from_low
integer, intent(in), dimension(:) :: from_high
type(index_list_type), intent(in), dimension (0:nproc-1) :: from_list
integer, intent(out), optional :: ierr

public subroutine init_fill(f, char, to_low, to_high, to_list, from_low, from_high, from_list, ierr)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(out) :: f
character(len=1), intent(in) :: char
integer, intent(in), dimension(:) :: to_low
integer, intent(in), dimension(:) :: to_high
type(index_list_type), intent(in), dimension (0:nproc-1) :: to_list
integer, intent(in), dimension(:) :: from_low
integer, intent(in), dimension(:) :: from_high
type(index_list_type), intent(in), dimension (0:nproc-1) :: from_list
integer, intent(out), optional :: ierr

public subroutine delete_redist(r)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r

public subroutine delete_list(list)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(index_list_type), intent(inout), dimension(0:nproc-1) :: list

private subroutine c_redist_12(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):) :: from_here
complex, intent(inout), dimension (r%to_low(1):,r%to_low(2):) :: to_here

private subroutine c_redist_22(r, from_here, to_here)

FIXME : Add documentation
DD> Pick from non-blocking and blocking approach

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine c_redist_22_old_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine c_redist_22_new_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine c_redist_22_mpi_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine c_redist_22_mpi_copy_nonblock(r, from_here, to_here)

This routine does redistributes using entirely non-blocking comms.

Read more…

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%from_low(1):, r%from_low(2): ) :: from_here
complex, intent(inout), dimension ( r%to_low(1):, r%to_low(2): ) :: to_here

private subroutine c_redist_22_mpi_copy_persist_start(r, from_here)

Launch persistent communications associated with redistribute. Packs send buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%from_low(1):, r%from_low(2): ) :: from_here

private subroutine c_redist_22_mpi_copy_persist_end(r, to_here)

Finish persistent communications associated with redistribute. Unpacks receive buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(inout), dimension ( r%to_low(1):, r%to_low(2): ) :: to_here

private subroutine c_redist_22_inv(r, from_here, to_here)

FIXME : Add documentation
DD>

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here

private subroutine c_redist_22_inv_old_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here

private subroutine c_redist_22_inv_new_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here

private subroutine c_redist_22_inv_mpi_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here

private subroutine c_redist_22_inv_mpi_copy_nonblock(r, from_here, to_here)

This routine does redistributes using entirely non-blocking comms.

Read more…

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%to_low(1):, r%to_low(2): ) :: from_here
complex, intent(inout), dimension ( r%from_low(1):, r%from_low(2): ) :: to_here

private subroutine c_redist_22_inv_mpi_copy_persist_start(r, from_here)

Launch persistent communications associated with redistribute. Packs send buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%to_low(1):, r%to_low(2): ) :: from_here

private subroutine c_redist_22_inv_mpi_copy_persist_end(r, to_here)

Finish persistent communications associated with redistribute. Unpacks receive buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(inout), dimension ( r%from_low(1):, r%from_low(2): ) :: to_here

private subroutine c_redist_32(r, from_here, to_here)

FIXME : Add documentation
DD>

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine c_redist_32_old_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine c_redist_32_new_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine c_redist_32_new_opt_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine c_redist_32_mpi_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine c_redist_32_mpi_copy_nonblock(r, from_here, to_here)

This routine does redistributes using entirely non-blocking comms.

Read more…

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: from_here
complex, intent(inout), dimension ( r%to_low(1):, r%to_low(2): ) :: to_here

private subroutine c_redist_32_mpi_copy_persist_start(r, from_here)

Launch persistent communications associated with redistribute. Packs send buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: from_here

private subroutine c_redist_32_mpi_copy_persist_end(r, to_here)

Finish persistent communications associated with redistribute. Unpacks receive buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(inout), dimension ( r%to_low(1):, r%to_low(2): ) :: to_here

private subroutine c_redist_32_inv(r, from_here, to_here)

FIXME : Add documentation
DD>

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine c_redist_32_inv_old_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine c_redist_32_inv_new_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine c_redist_32_inv_new_opt_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine c_redist_32_inv_mpi_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine c_redist_32_inv_mpi_copy_nonblock(r, from_here, to_here)

This routine does redistributes using entirely non-blocking comms.

Read more…

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%to_low(1):, r%to_low(2): ) :: from_here
complex, intent(inout), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: to_here

private subroutine c_redist_32_inv_mpi_copy_persist_start(r, from_here)

Launch persistent communications associated with redistribute. Packs send buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%to_low(1):, r%to_low(2): ) :: from_here

private subroutine c_redist_32_inv_mpi_copy_persist_end(r, to_here)

Finish persistent communications associated with redistribute. Unpacks receive buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(inout), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: to_here

private subroutine c_redist_42(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine c_redist_42_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: to_here

private subroutine c_redist_23(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: to_here

private subroutine c_redist_34(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):) :: to_here

private subroutine r_redist_12(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%from_low(1):) :: from_here
real, intent(inout), dimension (r%to_low(1):,r%to_low(2):) :: to_here

private subroutine r_redist_22(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
real, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine r_redist_22_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
real, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here

private subroutine r_redist_32(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
real, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine r_redist_32_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
real, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine r_redist_42(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: from_here
real, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine r_redist_42_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
real, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: to_here

private subroutine r_redist_62(r, from_here, to_here)

This routine is a copy of R_redist_42, with the dimensionality of from here increased to 6

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):, r%from_low(5):, r%from_low(6):) :: from_here
real, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine r_redist_62_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
real, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):, r%from_low(5):, r%from_low(6):) :: to_here

private subroutine r_redist_26(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
real, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: to_here

private subroutine r_redist_26_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: from_here
real, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here

private subroutine r_redist_33(r, from_here, to_here)

FIXME : Add documentation DD>

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
real, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: to_here

private subroutine r_redist_33_mpi_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
real, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: to_here

private subroutine r_redist_33_mpi_copy_nonblock(r, from_here, to_here)

This routine does redistributes using entirely non-blocking comms.

Read more…

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: from_here
real, intent(inout), dimension ( r%to_low(1):, r%to_low(2):, r%to_low(3): ) :: to_here

private subroutine r_redist_33_mpi_copy_persist_start(r, from_here)

Launch persistent communications associated with redistribute. Packs send buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: from_here

private subroutine r_redist_33_mpi_copy_persist_end(r, to_here)

Finish persistent communications associated with redistribute. Unpacks receive buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(inout), dimension ( r%to_low(1):, r%to_low(2):, r%to_low(3): ) :: to_here

private subroutine r_redist_33_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: from_here
real, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine r_redist_33_inv_mpi_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: from_here
real, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine r_redist_33_inv_mpi_copy_nonblock(r, from_here, to_here)

This routine does redistributes using entirely non-blocking comms.

Read more…

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension ( r%to_low(1):, r%to_low(2):, r%to_low(3): ) :: from_here
real, intent(inout), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: to_here

private subroutine r_redist_33_inv_mpi_copy_persist_start(r, from_here)

Launch persistent communications associated with redistribute. Packs send buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(in), dimension ( r%to_low(1):, r%to_low(2):, r%to_low(3): ) :: from_here

private subroutine r_redist_33_inv_mpi_copy_persist_end(r, to_here)

Finish persistent communications associated with redistribute. Unpacks receive buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
real, intent(inout), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: to_here

private subroutine i_redist_12(r, from_here, to_here)

FIXME : Add documentation

Read more…

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
integer, intent(in), dimension (r%from_low(1):) :: from_here
integer, intent(inout), dimension (r%to_low(1):,r%to_low(2):) :: to_here

private subroutine i_redist_22(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
integer, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
integer, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine i_redist_22_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
integer, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
integer, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here

private subroutine i_redist_32(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
integer, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
integer, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine i_redist_32_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
integer, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
integer, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine i_redist_42(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
integer, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: from_here
integer, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine i_redist_42_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
integer, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
integer, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: to_here

private subroutine l_redist_12(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
logical, intent(in), dimension (r%from_low(1):) :: from_here
logical, intent(inout), dimension (r%to_low(1):,r%to_low(2):) :: to_here

private subroutine l_redist_22(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
logical, intent(in), dimension (r%from_low(1):, r%from_low(2):) :: from_here
logical, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine l_redist_22_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
logical, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
logical, intent(inout), dimension (r%from_low(1):, r%from_low(2):) :: to_here

private subroutine l_redist_32(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
logical, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
logical, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine l_redist_32_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
logical, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
logical, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine l_redist_42(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
logical, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: from_here
logical, intent(inout), dimension (r%to_low(1):, r%to_low(2):) :: to_here

private subroutine l_redist_42_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
logical, intent(in), dimension (r%to_low(1):, r%to_low(2):) :: from_here
logical, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):, r%from_low(4):) :: to_here

private subroutine c_redist_33(r, from_here, to_here)

FIXME : Add documentation DD>

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: to_here

private subroutine c_redist_33_mpi_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: to_here

private subroutine c_redist_33_mpi_copy_nonblock(r, from_here, to_here)

This routine does redistributes using entirely non-blocking comms.

Read more…

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: from_here
complex, intent(inout), dimension ( r%to_low(1):, r%to_low(2):, r%to_low(3): ) :: to_here

private subroutine c_redist_33_mpi_copy_persist_start(r, from_here)

Launch persistent communications associated with redistribute. Packs send buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: from_here

private subroutine c_redist_33_mpi_copy_persist_end(r, to_here)

Finish persistent communications associated with redistribute. Unpacks receive buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(inout), dimension ( r%to_low(1):, r%to_low(2):, r%to_low(3): ) :: to_here

private subroutine c_redist_33_inv(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine c_redist_33_inv_mpi_copy(r, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here

private subroutine c_redist_33_inv_mpi_copy_nonblock(r, from_here, to_here)

This routine does redistributes using entirely non-blocking comms.

Read more…

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%to_low(1):, r%to_low(2):, r%to_low(3): ) :: from_here
complex, intent(inout), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: to_here

private subroutine c_redist_33_inv_mpi_copy_persist_start(r, from_here)

Launch persistent communications associated with redistribute. Packs send buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension ( r%to_low(1):, r%to_low(2):, r%to_low(3): ) :: from_here

private subroutine c_redist_33_inv_mpi_copy_persist_end(r, to_here)

Finish persistent communications associated with redistribute. Unpacks receive buffer.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(inout), dimension ( r%from_low(1):, r%from_low(2):, r%from_low(3): ) :: to_here

private subroutine c_redist_36(r, from_here, to_here, ntgrid)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: to_here
integer, intent(in) :: ntgrid

private subroutine c_redist_36_mpi_copy(r, from_here, to_here, ntgrid)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: to_here
integer, intent(in) :: ntgrid

private subroutine c_redist_36_mpi_copy_nonblock(r, from_here, to_here, ntgrid)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: from_here
complex, intent(inout), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: to_here
integer, intent(in) :: ntgrid

private subroutine c_redist_36_inv(r, from_here, to_here, ntgrid)

FIXME : Add documentation DD>

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here
integer, intent(in) :: ntgrid

private subroutine c_redist_36_inv_mpi_copy(r, from_here, to_here, ntgrid)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here
integer, intent(in) :: ntgrid

private subroutine c_redist_36_inv_mpi_copy_nonblock(r, from_here, to_here, ntgrid)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: r
complex, intent(in), dimension (r%to_low(1):, r%to_low(2):, r%to_low(3):, r%to_low(4):, r%to_low(5):, r%to_low(6):) :: from_here
complex, intent(inout), dimension (r%from_low(1):, r%from_low(2):, r%from_low(3):) :: to_here
integer, intent(in) :: ntgrid

private subroutine c_fill_2(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
complex, intent(in), dimension (f%from_low(1):, f%from_low(2):) :: from_here
complex, intent(inout), dimension (f%to_low(1):, f%to_low(2):) :: to_here

private subroutine c_fill_3(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
complex, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):) :: from_here
complex, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):) :: to_here

private subroutine c_fill_3_mpi_copy(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
complex, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):) :: from_here
complex, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):) :: to_here

private subroutine c_fill_3_mpi_copy_nonblock(f, from_here, to_here)

Non-blocking version of mpi copy

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
complex, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):) :: from_here
complex, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):) :: to_here

private subroutine c_fill_4(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
complex, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):, f%from_low(4):) :: from_here
complex, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):, f%to_low(4):) :: to_here

private subroutine r_fill_2(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
real, intent(in), dimension (f%from_low(1):, f%from_low(2):) :: from_here
real, intent(inout), dimension (f%to_low(1):, f%to_low(2):) :: to_here

private subroutine r_fill_3(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
real, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):) :: from_here
real, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):) :: to_here

private subroutine r_fill_4(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
real, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):, f%from_low(4):) :: from_here
real, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):, f%to_low(4):) :: to_here

private subroutine i_fill_2(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
integer, intent(in), dimension (f%from_low(1):, f%from_low(2):) :: from_here
integer, intent(inout), dimension (f%to_low(1):, f%to_low(2):) :: to_here

private subroutine i_fill_3(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
integer, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):) :: from_here
integer, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):) :: to_here

private subroutine i_fill_4(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
integer, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):, f%from_low(4):) :: from_here
integer, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):, f%to_low(4):) :: to_here

private subroutine l_fill_2(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
logical, intent(in), dimension (f%from_low(1):, f%from_low(2):) :: from_here
logical, intent(inout), dimension (f%to_low(1):, f%to_low(2):) :: to_here

private subroutine l_fill_3(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
logical, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):) :: from_here
logical, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):) :: to_here

private subroutine l_fill_4(f, from_here, to_here)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: f
logical, intent(in), dimension (f%from_low(1):, f%from_low(2):, f%from_low(3):, f%from_low(4):) :: from_here
logical, intent(inout), dimension (f%to_low(1):, f%to_low(2):, f%to_low(3):, f%to_low(4):) :: to_here

public subroutine report_map_property(r)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(in) :: r

private subroutine measure_gather_32(map, gin, gout)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: map
complex, intent(in), dimension (:,:,:) :: gin
complex, intent(out), dimension (:,:) :: gout

private subroutine measure_scatter_23(map, gin, gout)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: map
complex, intent(in), dimension (:,:) :: gin
complex, intent(out), dimension (:,:,:) :: gout

private subroutine measure_gather_33(map, gin, gout)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: map
complex, intent(in), dimension (:,:,:) :: gin
complex, intent(out), dimension (:,:,:) :: gout

private subroutine measure_scatter_33(map, gin, gout)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: map
complex, intent(in), dimension (:,:,:) :: gin
complex, intent(out), dimension (:,:,:) :: gout

private subroutine measure_gather_22(map, gin, gout)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: map
complex, intent(in), dimension (:,:) :: gin
complex, intent(out), dimension (:,:) :: gout

private subroutine measure_scatter_22(map, gin, gout)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(inout) :: map
complex, intent(in), dimension (:,:) :: gin
complex, intent(out), dimension (:,:) :: gout

public subroutine write_connection_matrix(lo)

Write a binary containing an nproc by nproc matrix showing communications in the redistribution lo. Entry (i,j) of connection_matrix shows the number of values sent from proc i to proc j in the forward transform. Entry (i,j) of connection_matrix_inv gives the same information for the inverse transform. Diagonal entries (i,i) show the number of values which are "sent from proc i to itself", i.e. not communicated by MPI, but which still need to be rearranged locally as part of the transform.

Arguments

Type IntentOptional Attributes Name
type(redist_type), intent(in) :: lo