mp Module

Easier Fortran90 interface to the 1 Message Passing Library.

(c) Copyright 1991 to 1998 by Michael A. Beer, William D. Dorland, 
P. B. Snyder, Q. P. Liu, and Gregory W. Hammett. ALL RIGHTS RESERVED.



Contents

get_mp_times reset_mp_times time_message get_proc_name init_mp init_comm nproc_comm rank_comm scope finish_mp allgather_integer_array_1to1 allgatherv_complex_array_1to1 nb_allgatherv_complex_array_1to1 allgatherv_complex_array_1to3 allgatherv_complex_array_1to1_sub allgatherv_complex_array_1to3_sub nb_allgatherv_complex_array_1to3_sub free_comm_id free_comm_type use_nproc unsplit_all split_all split_nokey split_key split_nokey_to_commtype split_key_to_commtype split_nokey_to_commtype_sub split_key_to_commtype_sub broadcast_character broadcast_character_array broadcast_integer broadcast_integer_array broadcast_integer_2array broadcast_real broadcast_real_array broadcast_real_2array broadcast_real_3array broadcast_real_4array broadcast_real_5array broadcast_complex broadcast_complex_array broadcast_complex8_array broadcast_complex_2array broadcast_complex_3array broadcast_complex_4array broadcast_logical broadcast_logical_array broadcast_logical_2array bcastfrom_logical bcastfrom_logical_array bcastfrom_character bcastfrom_integer bcastfrom_integer_array bcastfrom_real bcastfrom_real_array bcastfrom_complex bcastfrom_complex_array bcastfrom_complex_2array bcastfrom_complex_3array bcastfrom_complex_array_sub bcastfrom_complex_2array_sub bcastfrom_complex_3array_sub bcastfrom_complex_4array_sub sum_reduce_integer sum_reduce_integer_array sum_reduce_integer_2array sum_reduce_logical sum_reduce_real sum_reduce_real_array sum_reduce_real_2array sum_reduce_real_3array sum_reduce_real_4array sum_reduce_real_5array sum_reduce_complex sum_reduce_complex_array sum_reduce_complex_2array sum_reduce_complex_3array sum_reduce_complex_4array sum_reduce_complex_5array nb_sum_reduce_complex nb_sum_reduce_complex_array nb_sum_reduce_complex_2array nb_sum_reduce_complex_3array nb_sum_reduce_complex_4array nb_sum_reduce_complex_5array sum_reduce_complex_array_sub sum_reduce_complex_2array_sub sum_reduce_complex_3array_sub sum_reduce_complex_4array_sub nb_sum_reduce_complex_array_sub nb_sum_reduce_complex_4array_sub sum_allreduce_integer sum_allreduce_integer_array sum_allreduce_integer_2array sum_allreduce_integer_3array sum_allreduce_real sum_allreduce_real_array sum_allreduce_real_2array sum_allreduce_real_3array sum_allreduce_real_4array sum_allreduce_real_5array sum_allreduce_complex sum_allreduce_complex_array sum_allreduce_complex_2array sum_allreduce_complex_3array sum_allreduce_complex_4array sum_allreduce_complex_5array sum_allreduce_sub_integer sum_allreduce_sub_integer_array sum_allreduce_sub_real sum_allreduce_sub_real_array sum_allreduce_sub_real_2array sum_allreduce_sub_real_3array sum_allreduce_sub_real_4array sum_allreduce_sub_real_5array sum_allreduce_sub_complex sum_allreduce_sub_complex_array sum_allreduce_sub_complex_2array sum_allreduce_sub_complex_3array sum_allreduce_sub_complex_4array sum_allreduce_sub_complex_5array nb_sum_allreduce_sub_complex_2array nb_sum_allreduce_sub_complex_4array nb_sum_allreduce_integer nb_sum_allreduce_complex_array nb_sum_allreduce_complex_3array nb_sum_allreduce_complex_4array nb_sum_allreduce_complex_5array max_reduce_integer max_reduce_integer_array max_reduce_real max_reduce_real_array max_allreduce_integer max_allreduce_integer_array max_allreduce_real max_allreduce_real_array maxloc_allreduce_real maxloc_allreduce_real_array nb_max_allreduce_integer nb_max_allreduce_integer_array nb_max_allreduce_real nb_max_allreduce_real_array min_reduce_integer min_reduce_integer_array min_reduce_real min_reduce_real_array min_allreduce_integer min_allreduce_integer_array min_allreduce_real min_allreduce_real_array min_allreduce_sub_integer land_allreduce_single_element barrier_nocomm barrier_comm send_integer send_integer_array send_real send_real_array send_real_4d_array send_real_5d_array send_complex send_complex_array send_complex_2d_array send_complex_3d_array nonblocking_send_complex_array send_logical send_logical_array send_character ssend_integer ssend_integer_array ssend_real ssend_real_array ssend_complex ssend_complex_array ssend_complex_2array ssend_logical ssend_logical_array ssend_character nbsend_real_array nbsend_real_array_count nbsend_complex_array nbsend_complex_2d_array nbsend_complex_2d_array_count nbsend_complex_3d_array nbsend_complex_3d_array_count nbsend_complex_array_sub nbsend_complex_array_count send_init_complex_array send_init_real_array receive_integer receive_integer_array receive_real receive_real_array receive_real_4d_array receive_real_5d_array receive_complex receive_complex_array receive_complex_2array receive_complex_3d_array nonblocking_receive_complex_array receive_logical receive_logical_array receive_character nbrecv_real_array nbrecv_real_array_count nbrecv_complex_array nbrecv_complex_2d_array nbrecv_complex_2d_array_count nbrecv_complex_3d_array nbrecv_complex_3d_array_count nbrecv_complex_array_sub nbrecv_complex_array_count recv_init_complex_array recv_init_real_array initialise_requests wait_nostat wait_stat waitall_nostat waitall_stat waitany_stat waitany_nostat testall_nostat_noflag testall_nostat testall_stat start_persist startall_persist free_handle_persist free_handles_persist init_jobs all_to_group_real all_to_group_real_array group_to_all_real group_to_all_real_array mp_abort set_default_error_file_unit

Variables

Type Visibility Attributes Name Initial
integer, public, pointer :: nproc
integer, private, target :: ntot_proc
integer, private, target :: ngroup_proc
integer, private, target :: mulntot_proc
integer, public, pointer :: iproc
integer, private, target :: aproc
integer, private, target :: gproc
integer, private, target :: mulproc
logical, public, pointer :: proc0
logical, private, target :: aproc0
logical, private, target :: gproc0
logical, private, target :: mulproc0
integer, public, parameter :: mp_info = MPI_INFO_NULL
integer, public, parameter :: mp_comm_null = MPI_COMM_NULL
integer, public, parameter :: mp_request_null = MPI_REQUEST_NULL
integer, public, parameter :: mp_comm_self = MPI_COMM_SELF
integer, public, parameter :: mp_undefined = MPI_UNDEFINED
integer, public, pointer :: mp_comm

Currently active communicator

integer, private, target :: comm_all = mp_comm_null

Communicator for all processors

integer, private, target :: comm_group = mp_comm_null

Communicator for ensemble simulations

integer, private, target :: comm_multigs2 = mp_comm_null

Communicator for multiscale GS2

integer(kind=kind(MPI_REAL)), private :: mpireal
integer(kind=kind(MPI_REAL)), private :: mpicmplx
integer(kind=kind(MPI_REAL)), private :: mpi2real
integer(kind=kind(MPI_REAL)), private :: mpicmplx8
integer, public, parameter :: allprocs = 0

Selectors for different communicator focuses

integer, public, parameter :: subprocs = 1

Selectors for different communicator focuses

integer, public, parameter :: multigs2procs = 2

Selectors for different communicator focuses

integer, public :: job = 0
integer, public, dimension (:), allocatable :: grp0
logical, public :: mp_initialized = .false.

True if the communicator has been initialised. Used for unit tests to work out whether to call mp_abort or stop

logical, public :: included = .true.

If using nprocs<nprocs available, this is true for procs that take part and false for procs that lie idle

integer, private :: err_unit = error_unit

File unit for the error file for mp_abort

real, private, dimension(2) :: time_mp_other = 0.

Timers for mpi routines

real, private, dimension(2) :: time_mp_collectives = 0.

Timers for mpi routines

real, private, dimension(2) :: time_mp_ptp = 0.
real, private, dimension(2) :: time_mp_sync = 0.

Interfaces

public interface wait

  • private subroutine wait_stat(request, status)

    This routine waits for the communication, given by the message request, to complete. We return the status information

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: request
    integer, intent(out), dimension(MPI_STATUS_SIZE) :: status
  • private subroutine wait_nostat(request)

    This routine waits for the communication, given by the message request, to complete. We ignore the status information

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: request

public interface waitall

  • private subroutine waitall_stat(count, requests, status)

    A routine to wait for all count communications, given by the message handles in requests, to complete. We return the message statuses

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: count
    integer, intent(inout), dimension(:) :: requests
    integer, intent(out), dimension(MPI_STATUS_SIZE,count) :: status
  • private subroutine waitall_nostat(count, requests)

    A routine to wait for all count communications, given by the message handles in requests, to complete. We ignore the status information

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: count
    integer, intent(inout), dimension(:) :: requests

public interface waitany

  • private subroutine waitany_stat(count, requests, requestindex, status)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: count
    integer, intent(inout), dimension(:) :: requests
    integer, intent(out) :: requestindex
    integer, intent(out), dimension(MPI_STATUS_SIZE) :: status
  • private subroutine waitany_nostat(count, requests, requestindex)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: count
    integer, intent(inout), dimension(:) :: requests
    integer, intent(out) :: requestindex

public interface testall

  • private subroutine testall_stat(count, requests, status, flag)

    A routine to test for all count communications, given by the message handles in requests, to complete. We return the message statuses and completion flag

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: count
    integer, intent(inout), dimension(:) :: requests
    integer, intent(out), dimension(MPI_STATUS_SIZE,count) :: status
    logical, intent(out) :: flag
  • private subroutine testall_nostat(count, requests, flag)

    A routine to test for all count communications, given by the message handles in requests, to complete. We ignore the status information

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: count
    integer, intent(inout), dimension(:) :: requests
    logical, intent(out) :: flag
  • private subroutine testall_nostat_noflag(count, requests)

    A routine to test for all count communications, given by the message handles in requests, to complete. We ignore the status and flag information

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: count
    integer, intent(inout), dimension(:) :: requests

public interface nbsend

  • private subroutine nbsend_real_array(z, dest, tag, handle)

    Routine for nonblocking send of z to dest. Use to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension(:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbsend_real_array_count(z, count, dest, tag, handle)

    Routine for nonblocking send of z (size=count) to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension(:) :: z
    integer, intent(in) :: count
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbsend_complex_array(z, dest, tag, handle)

    Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbsend_complex_2d_array(z, dest, tag, handle)

    Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:,:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbsend_complex_2d_array_count(z, count, dest, tag, handle)

    Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:,:) :: z
    integer, intent(in) :: count
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbsend_complex_3d_array(z, dest, tag, handle)

    Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:,:,:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbsend_complex_3d_array_count(z, count, dest, tag, handle)

    Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:,:,:) :: z
    integer, intent(in) :: count
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbsend_complex_array_sub(z, dest, tag, sub, handle)

    Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    type(comm_type), intent(in) :: sub
    integer, intent(out) :: handle
  • private subroutine nbsend_complex_array_count(z, count, dest, tag, handle)

    Routine for nonblocking send of z (size=count) to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: z
    integer, intent(in) :: count
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle

public interface nbrecv

  • private subroutine nbrecv_real_array(z, dest, tag, handle)

    Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    real, intent(out), dimension(:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbrecv_real_array_count(z, count, dest, tag, handle)

    Routine for nonblocking recv of z (size=count) to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    real, intent(out), dimension(:) :: z
    integer, intent(in) :: count
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbrecv_complex_array(z, dest, tag, handle)

    Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(out), dimension(:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbrecv_complex_2d_array(z, dest, tag, handle)

    Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(out), dimension(:,:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbrecv_complex_2d_array_count(z, count, dest, tag, handle)

    Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(out), dimension(:,:) :: z
    integer, intent(in) :: count
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbrecv_complex_3d_array(z, dest, tag, handle)

    Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension(:,:,:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbrecv_complex_3d_array_count(z, count, dest, tag, handle)

    Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension(:,:,:) :: z
    integer, intent(in) :: count
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine nbrecv_complex_array_sub(z, dest, tag, sub, handle)

    Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(out), dimension(:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    type(comm_type), intent(in) :: sub
    integer, intent(out) :: handle
  • private subroutine nbrecv_complex_array_count(z, count, dest, tag, handle)

    Routine for nonblocking recv of z (size=count) to dest. Use tag to label message and return handle for later checking.

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(out), dimension(:) :: z
    integer, intent(in) :: count
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle

public interface send_init

  • private subroutine send_init_complex_array(z, dest, tag, handle)

    Routine to initialise a persistent send operation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(inout) :: handle
  • private subroutine send_init_real_array(z, dest, tag, handle)

    Routine to initialise a persistent send operation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension(:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(inout) :: handle

public interface recv_init

  • private subroutine recv_init_complex_array(z, dest, tag, handle)

    Routine to initialise a persistent recv operation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension(:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle
  • private subroutine recv_init_real_array(z, dest, tag, handle)

    Routine to initialise a persistent recv operation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension(:) :: z
    integer, intent(in) :: dest
    integer, intent(in) :: tag
    integer, intent(out) :: handle

public interface start_comm

  • private subroutine start_persist(handle)

    Starts a single persistent communication represented by handle

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: handle
  • private subroutine startall_persist(handles)

    Starts multiple persistent communications represented by handles

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension(:) :: handles

public interface free_request

  • private subroutine free_handle_persist(handle)

    Frees a single persistent request handle

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: handle
  • private subroutine free_handles_persist(handles)

    Frees multiple persistent request handles

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension(:) :: handles

public interface split

  • private subroutine split_nokey(col, new_comm)

    A routine to split the mp_comm communicator into sub-groups based on each procs specific colour "col". The sub communicator's handle is passed back in new_comm

    In future we may wish to make split an interface to allow for user specific keys (to reorder processor ranks) and to specify a different communicator to split

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: col

    Processors colour

    integer, intent(out) :: new_comm

    The new sub communicator's handle

  • private subroutine split_key(col, key, new_comm)

    A routine to split the mp_comm communicator into sub-groups based on each procs specific colour "col" and ranked by key. The sub communicator's handle is passed back in new_comm

    Arguments

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

    Processors colour

    integer, intent(in) :: key

    Processors key, used to determine rank

    integer, intent(out) :: new_comm

    The new sub communicator's handle

  • private subroutine split_nokey_to_commtype(col, new_comm)

    A routine to split the mp_comm communicator into sub-groups based on each procs specific colour "col". The sub communicator's handle is passed back in new_comm

    Arguments

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

    Processors colour

    type(comm_type), intent(out) :: new_comm

    The new sub communicator's handle

  • private subroutine split_key_to_commtype(col, key, new_comm)

    A routine to split the mp_comm communicator into sub-groups based on each procs specific colour "col" and ranked by key. The sub communicator's handle is passed back in new_comm

    Arguments

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

    Processors colour

    integer, intent(in) :: key

    Processors key, used to determine rank

    type(comm_type), intent(out) :: new_comm

    The new sub communicator's handle

  • private subroutine split_nokey_to_commtype_sub(col, new_comm, sub)

    A routine to split a subcommunicator into sub-groups based on each procs specific colour "col". The sub communicator's handle is passed back in new_comm

    Arguments

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

    Processors colour

    type(comm_type), intent(out) :: new_comm

    The new sub communicator's handle

    integer, intent(in) :: sub
  • private subroutine split_key_to_commtype_sub(col, key, new_comm, sub)

    A routine to split a subcommunicator into sub-groups based on each procs specific colour "col" and ranked by key. The sub communicator's handle is passed back in new_comm

    Arguments

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

    Processors colour

    integer, intent(in) :: key

    Processors key, used to determine rank

    type(comm_type), intent(out) :: new_comm

    The new sub communicator's handle

    integer, intent(in) :: sub

    Subcommunicator to split

public interface free_comm

  • private subroutine free_comm_id(comm)

    A routine to free the communicator with id comm

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: comm

    Communicator id

  • private subroutine free_comm_type(comm)

    A routine to free the communicator represented by comm

    Arguments

    Type IntentOptional Attributes Name
    type(comm_type), intent(inout) :: comm

    Communicator object

public interface allgather

  • private subroutine allgather_integer_array_1to1(arr, count, out, recvcnts)

    A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in), dimension(:) :: arr

    The data to gather

    integer, intent(in) :: count

    How much data to gather, <=SIZE(arr)

    integer, intent(out), dimension(:) :: out

    The gathered data

    integer, intent(in) :: recvcnts

    Array detailing how much data to expect from each proc

public interface allgatherv

  • private subroutine allgatherv_complex_array_1to1(arr, count, out, recvcnts, displs)

    A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: arr

    The data to gather

    integer, intent(in) :: count

    How much data to gather, <=SIZE(arr)

    complex, intent(out), dimension(:) :: out

    The gathered data

    integer, intent(in), dimension(:) :: recvcnts

    Array detailing how much data to expect from each proc

    integer, intent(in), dimension(:) :: displs

    Array detailing offset in array where gathered data is to be stored

  • private subroutine allgatherv_complex_array_1to3(arr, count, out, recvcnts, displs)

    A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: arr

    The data to gather

    integer, intent(in) :: count

    How much data to gather, <=SIZE(arr)

    complex, intent(out), dimension(:,:,:) :: out

    The gathered data

    integer, intent(in), dimension(:) :: recvcnts

    Array detailing how much data to expect from each proc

    integer, intent(in), dimension(:) :: displs

    Array detailing offset in array where gathered data is to be stored

  • private subroutine allgatherv_complex_array_1to1_sub(arr, count, out, recvcnts, displs, sub_comm)

    A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: arr

    The data to gather

    integer, intent(in) :: count

    How much data to gather, <=SIZE(arr)

    complex, intent(out), dimension(:) :: out

    The gathered data

    integer, intent(in), dimension(:) :: recvcnts

    Array detailing how much data to expect from each proc

    integer, intent(in), dimension(:) :: displs

    Array detailing offset in array where gathered data is to be stored

    integer, intent(in) :: sub_comm

    Sub-communicator handle

  • private subroutine allgatherv_complex_array_1to3_sub(arr, count, out, recvcnts, displs, sub_comm)

    A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: arr

    The data to gather

    integer, intent(in) :: count

    How much data to gather, <=SIZE(arr)

    complex, intent(out), dimension(:,:,:) :: out

    The gathered data

    integer, intent(in), dimension(:) :: recvcnts

    Array detailing how much data to expect from each proc

    integer, intent(in), dimension(:) :: displs

    Array detailing offset in array where gathered data is to be stored

    integer, intent(in) :: sub_comm

    Sub-communicator handle

public interface nb_allgatherv

  • private subroutine nb_allgatherv_complex_array_1to1(arr, count, out, recvcnts, displs, request)

    A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: arr

    The data to gather

    integer, intent(in) :: count

    How much data to gather, <=SIZE(arr)

    complex, intent(out), dimension(:) :: out

    The gathered data

    integer, intent(in), dimension(:) :: recvcnts

    Array detailing how much data to expect from each proc

    integer, intent(in), dimension(:) :: displs

    Array detailing offset in array where gathered data is to be stored

    integer, intent(out) :: request
  • private subroutine nb_allgatherv_complex_array_1to3_sub(arr, count, out, recvcnts, displs, sub_comm, request)

    A subroutine to do a non-blocking allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: arr

    The data to gather

    integer, intent(in) :: count

    How much data to gather, <=SIZE(arr)

    complex, intent(out), dimension(:,:,:) :: out

    The gathered data

    integer, intent(in), dimension(:) :: recvcnts

    Array detailing how much data to expect from each proc

    integer, intent(in), dimension(:) :: displs

    Array detailing offset in array where gathered data is to be stored

    integer, intent(in) :: sub_comm

    Sub-communicator handle

    integer, intent(out) :: request

    FIXME : Add documentation

public interface broadcast

  • private subroutine broadcast_integer(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
  • private subroutine broadcast_integer_array(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:) :: i
  • private subroutine broadcast_integer_2array(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:,:) :: i
  • private subroutine broadcast_real(x)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: x
  • private subroutine broadcast_real_array(x)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: x
  • private subroutine broadcast_real_2array(x)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension(:,:) :: x
  • private subroutine broadcast_real_3array(x)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension(:,:,:) :: x
  • private subroutine broadcast_real_4array(x)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension(:,:,:,:) :: x
  • private subroutine broadcast_real_5array(x)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension(:,:,:,:,:) :: x
  • private subroutine broadcast_complex(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout) :: z
  • private subroutine broadcast_complex_array(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
  • private subroutine broadcast_complex8_array(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=kind_rs), intent(inout), dimension (:) :: z
  • private subroutine broadcast_complex_2array(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:) :: z
  • private subroutine broadcast_complex_3array(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:) :: z
  • private subroutine broadcast_complex_4array(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:) :: z
  • private subroutine broadcast_logical(f)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(inout) :: f
  • private subroutine broadcast_logical_array(f)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(inout), dimension (:) :: f
  • private subroutine broadcast_logical_2array(f)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(inout), dimension (:,:) :: f
  • private subroutine bcastfrom_integer(i, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
    integer, intent(in) :: src
  • private subroutine bcastfrom_integer_array(i, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:) :: i
    integer, intent(in) :: src
  • private subroutine bcastfrom_real(x, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: x
    integer, intent(in) :: src
  • private subroutine bcastfrom_real_array(x, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: x
    integer, intent(in) :: src
  • private subroutine bcastfrom_complex(z, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout) :: z
    integer, intent(in) :: src
  • private subroutine bcastfrom_complex_array(z, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
    integer, intent(in) :: src
  • private subroutine bcastfrom_complex_2array(z, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:) :: z
    integer, intent(in) :: src
  • private subroutine bcastfrom_complex_3array(z, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:) :: z
    integer, intent(in) :: src
  • private subroutine bcastfrom_logical(f, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(inout) :: f
    integer, intent(in) :: src
  • private subroutine bcastfrom_logical_array(f, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(inout), dimension (:) :: f
    integer, intent(in) :: src
  • private subroutine broadcast_character(char)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(inout) :: char
  • private subroutine broadcast_character_array(char)

    FIXME : Add documentation

    An array of characters, each of same length

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(inout), dimension(:) :: char
  • private subroutine bcastfrom_character(c, src)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(inout) :: c
    integer, intent(in) :: src

public interface broadcast_sub

  • private subroutine bcastfrom_complex_array_sub(z, src, sub)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
    integer, intent(in) :: src
    integer, intent(in) :: sub
  • private subroutine bcastfrom_complex_2array_sub(z, src, sub)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:) :: z
    integer, intent(in) :: src
    integer, intent(in) :: sub
  • private subroutine bcastfrom_complex_3array_sub(z, src, sub)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:) :: z
    integer, intent(in) :: src
    integer, intent(in) :: sub
  • private subroutine bcastfrom_complex_4array_sub(z, src, sub)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:) :: z
    integer, intent(in) :: src
    integer, intent(in) :: sub

public interface sum_reduce_sub

  • private subroutine sum_reduce_complex_array_sub(z, dest, sub)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
    integer, intent(in) :: dest
    type(comm_type), intent(in) :: sub
  • private subroutine sum_reduce_complex_2array_sub(z, dest, sub)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:) :: z
    integer, intent(in) :: dest
    type(comm_type), intent(in) :: sub
  • private subroutine sum_reduce_complex_3array_sub(z, dest, sub)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:) :: z
    integer, intent(in) :: dest
    type(comm_type), intent(in) :: sub
  • private subroutine sum_reduce_complex_4array_sub(z, dest, sub)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:) :: z
    integer, intent(in) :: dest
    type(comm_type), intent(in) :: sub

public interface nb_sum_reduce_sub

  • private subroutine nb_sum_reduce_complex_array_sub(z, dest, sub, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
    integer, intent(in) :: dest
    type(comm_type), intent(in) :: sub
    integer, intent(out) :: request
  • private subroutine nb_sum_reduce_complex_4array_sub(z, dest, sub, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:) :: z
    integer, intent(in) :: dest
    type(comm_type), intent(in) :: sub
    integer, intent(out) :: request

public interface sum_reduce

  • private subroutine sum_reduce_logical(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(inout) :: a
    integer, intent(in) :: dest
  • private subroutine sum_reduce_integer(i, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
    integer, intent(in) :: dest
  • private subroutine sum_reduce_integer_array(i, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:) :: i
    integer, intent(in) :: dest
  • private subroutine sum_reduce_integer_2array(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:,:) :: a
    integer, intent(in) :: dest
  • private subroutine sum_reduce_real(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: a
    integer, intent(in) :: dest
  • private subroutine sum_reduce_real_array(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: a
    integer, intent(in) :: dest
  • private subroutine sum_reduce_real_2array(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:) :: a
    integer, intent(in) :: dest
  • private subroutine sum_reduce_real_3array(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:,:) :: a
    integer, intent(in) :: dest
  • private subroutine sum_reduce_real_4array(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:,:,:) :: a
    integer, intent(in) :: dest
  • private subroutine sum_reduce_real_5array(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:,:,:,:) :: a
    integer, intent(in) :: dest
  • private subroutine sum_reduce_complex(z, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout) :: z
    integer, intent(in) :: dest
  • private subroutine sum_reduce_complex_array(z, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
    integer, intent(in) :: dest
  • private subroutine sum_reduce_complex_2array(z, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:) :: z
    integer, intent(in) :: dest
  • private subroutine sum_reduce_complex_3array(z, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:) :: z
    integer, intent(in) :: dest
  • private subroutine sum_reduce_complex_4array(z, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:) :: z
    integer, intent(in) :: dest
  • private subroutine sum_reduce_complex_5array(z, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:,:) :: z
    integer, intent(in) :: dest

public interface nb_sum_reduce

  • private subroutine nb_sum_reduce_complex(z, dest, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout) :: z
    integer, intent(in) :: dest
    integer, intent(out) :: request
  • private subroutine nb_sum_reduce_complex_array(z, dest, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
    integer, intent(in) :: dest
    integer, intent(out) :: request
  • private subroutine nb_sum_reduce_complex_2array(z, dest, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:) :: z
    integer, intent(in) :: dest
    integer, intent(out) :: request
  • private subroutine nb_sum_reduce_complex_3array(z, dest, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:) :: z
    integer, intent(in) :: dest
    integer, intent(out) :: request
  • private subroutine nb_sum_reduce_complex_4array(z, dest, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:) :: z
    integer, intent(in) :: dest
    integer, intent(out) :: request
  • private subroutine nb_sum_reduce_complex_5array(z, dest, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:,:) :: z
    integer, intent(in) :: dest
    integer, intent(out) :: request

public interface sum_allreduce

  • private subroutine sum_allreduce_integer(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
  • private subroutine sum_allreduce_integer_array(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:) :: i
  • private subroutine sum_allreduce_integer_2array(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:,:) :: i
  • private subroutine sum_allreduce_integer_3array(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:,:,:) :: i
  • private subroutine sum_allreduce_real(a)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: a
  • private subroutine sum_allreduce_real_array(a)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: a
  • private subroutine sum_allreduce_real_2array(a)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:) :: a
  • private subroutine sum_allreduce_real_3array(a)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:,:) :: a
  • private subroutine sum_allreduce_real_4array(a)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:,:,:) :: a
  • private subroutine sum_allreduce_real_5array(a)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:,:,:,:) :: a
  • private subroutine sum_allreduce_complex(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout) :: z
  • private subroutine sum_allreduce_complex_array(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
  • private subroutine sum_allreduce_complex_2array(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:) :: z
  • private subroutine sum_allreduce_complex_3array(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:) :: z
  • private subroutine sum_allreduce_complex_4array(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:) :: z
  • private subroutine sum_allreduce_complex_5array(z)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:,:) :: z

public interface nb_sum_allreduce

  • private subroutine nb_sum_allreduce_integer(i, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
    integer, intent(out) :: request
  • private subroutine nb_sum_allreduce_complex_array(z, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
    integer, intent(out) :: request
  • private subroutine nb_sum_allreduce_complex_3array(z, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:) :: z
    integer, intent(out) :: request
  • private subroutine nb_sum_allreduce_complex_4array(z, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:) :: z
    integer, intent(out) :: request
  • private subroutine nb_sum_allreduce_complex_5array(z, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:,:) :: z
    integer, intent(out) :: request

public interface sum_allreduce_sub

  • private subroutine sum_allreduce_sub_integer(i, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_integer_array(i, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:) :: i
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_real(a, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: a
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_real_array(a, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: a
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_real_2array(a, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:) :: a
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_real_3array(a, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:,:) :: a
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_real_4array(a, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:,:,:) :: a
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_real_5array(a, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:,:,:,:,:) :: a
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_complex(z, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout) :: z
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_complex_array(z, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_complex_2array(z, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:) :: z
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_complex_3array(z, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:) :: z
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_complex_4array(z, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:) :: z
    integer, intent(in) :: sub_comm
  • private subroutine sum_allreduce_sub_complex_5array(z, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:,:) :: z
    integer, intent(in) :: sub_comm

public interface nb_sum_allreduce_sub

  • private subroutine nb_sum_allreduce_sub_complex_2array(z, sub_comm, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:) :: z
    integer, intent(in) :: sub_comm
    integer, intent(out) :: request
  • private subroutine nb_sum_allreduce_sub_complex_4array(z, sub_comm, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:,:,:,:) :: z
    integer, intent(in) :: sub_comm
    integer, intent(out) :: request

public interface max_reduce

  • private subroutine max_reduce_integer(i, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
    integer, intent(in) :: dest
  • private subroutine max_reduce_integer_array(i, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:) :: i
    integer, intent(in) :: dest
  • private subroutine max_reduce_real(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: a
    integer, intent(in) :: dest
  • private subroutine max_reduce_real_array(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: a
    integer, intent(in) :: dest

public interface max_allreduce

  • private subroutine max_allreduce_integer(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
  • private subroutine max_allreduce_integer_array(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:) :: i
  • private subroutine max_allreduce_real(a)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: a
  • private subroutine max_allreduce_real_array(a)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: a

public interface nb_max_allreduce

  • private subroutine nb_max_allreduce_integer(i, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
    integer, intent(out) :: request
  • private subroutine nb_max_allreduce_integer_array(i, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:) :: i
    integer, intent(out) :: request
  • private subroutine nb_max_allreduce_real(a, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: a
    integer, intent(out) :: request
  • private subroutine nb_max_allreduce_real_array(a, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: a
    integer, intent(out) :: request

public interface min_reduce

  • private subroutine min_reduce_integer(i, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
    integer, intent(in) :: dest
  • private subroutine min_reduce_integer_array(i, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:) :: i
    integer, intent(in) :: dest
  • private subroutine min_reduce_real(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: a
    integer, intent(in) :: dest
  • private subroutine min_reduce_real_array(a, dest)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: a
    integer, intent(in) :: dest

public interface min_allreduce

  • private subroutine min_allreduce_integer(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
  • private subroutine min_allreduce_integer_array(i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout), dimension (:) :: i
  • private subroutine min_allreduce_real(a)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: a
  • private subroutine min_allreduce_real_array(a)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: a

public interface min_allreduce_sub

  • private subroutine min_allreduce_sub_integer(i, sub_comm)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: i
    integer, intent(in) :: sub_comm

public interface maxloc_allreduce

  • private subroutine maxloc_allreduce_real(a, i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: a
    integer, intent(inout) :: i
  • private subroutine maxloc_allreduce_real_array(a, i)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension (:) :: a
    integer, intent(inout), dimension (:) :: i

public interface land_allreduce

  • private subroutine land_allreduce_single_element(l)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(inout) :: l

public interface send

  • private subroutine send_integer(i, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: i
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_integer_array(i, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in), dimension (:) :: i
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_real(a, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: a
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_real_array(a, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension (:) :: a
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_real_4d_array(a, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension (:,:,:,:) :: a
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_real_5d_array(a, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension (:,:,:,:,:) :: a
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_complex(z, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in) :: z
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_complex_array(z, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension (:) :: z
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_complex_2d_array(z, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension (:,:) :: z
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_complex_3d_array(z, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension (:,:,:) :: z
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine nonblocking_send_complex_array(z, dest, tag, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension (:) :: z
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
    integer, intent(out) :: request
  • private subroutine send_logical(f, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: f
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_logical_array(f, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in), dimension (:) :: f
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine send_character(s, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: s
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag

public interface receive

  • private subroutine receive_integer(i, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(out) :: i
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_integer_array(i, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(out), dimension (:) :: i
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_real(a, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(out) :: a
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_real_array(a, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(out), dimension (:) :: a
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_real_4d_array(a, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(out), dimension (:,:,:,:) :: a
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_real_5d_array(a, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(out), dimension (:,:,:,:,:) :: a
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_complex(z, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(out) :: z
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_complex_array(z, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(out), dimension (:) :: z
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_complex_2array(z, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(out), dimension (:,:) :: z
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_complex_3d_array(z, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(out), dimension (:,:,:) :: z
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine nonblocking_receive_complex_array(z, src, tag, request)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension (:) :: z
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
    integer, intent(out) :: request
  • private subroutine receive_logical(f, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(out) :: f
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_logical_array(f, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(out), dimension (:) :: f
    integer, intent(in) :: src
    integer, intent(in), optional :: tag
  • private subroutine receive_character(s, src, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(out) :: s
    integer, intent(in) :: src
    integer, intent(in), optional :: tag

public interface ssend

  • private subroutine ssend_character(s, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: s
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine ssend_integer(i, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: i
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine ssend_integer_array(i, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in), dimension (:) :: i
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine ssend_real(a, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: a
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine ssend_real_array(a, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension (:) :: a
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine ssend_complex(z, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in) :: z
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine ssend_complex_array(z, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension (:) :: z
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine ssend_complex_2array(z, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension (:,:) :: z
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine ssend_logical(f, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: f
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag
  • private subroutine ssend_logical_array(f, dest, tag)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in), dimension (:) :: f
    integer, intent(in) :: dest
    integer, intent(in), optional :: tag

public interface all_to_group

  • private subroutine all_to_group_real(all, group, njobs)

    FIXME : Add documentation

      call barrier
    

    end do

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension (:) :: all
    real, intent(out) :: group
    integer, intent(in) :: njobs
  • private subroutine all_to_group_real_array(all, group, njobs)

    FIXME : Add documentation

      call barrier
    

    end do

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension (:,:) :: all
    real, intent(out), dimension (:) :: group
    integer, intent(in) :: njobs

public interface group_to_all

  • private subroutine group_to_all_real(group, all, njobs)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: group
    real, intent(out), dimension (:) :: all
    integer, intent(in) :: njobs
  • private subroutine group_to_all_real_array(group, all, njobs)

    FIXME : Add documentation

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension (:) :: group
    real, intent(out), dimension (:,:) :: all
    integer, intent(in) :: njobs

public interface barrier

  • private subroutine barrier_nocomm()

    FIXME : Add documentation

    Arguments

    None
  • private subroutine barrier_comm(comm)

    Arguments

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

Derived Types

type, public, sequence  ::  comm_type

A simple object for storing details of a communicator

Components

Type Visibility Attributes Name Initial
integer, public :: id = mp_comm_null

The communicator id, used in calls to 1 routines

integer, public :: iproc = -1

The procs local rank

integer, public :: nproc = -1

The total number of processors in the communicator

logical, public :: proc0 = .false.

Is iproc equal to 0?


Functions

public function timer_local()

Returns CPU time in seconds

Arguments

None

Return Value real


Subroutines

public subroutine get_mp_times(total_time, overheads_time, collectives_time, ptp_time, sync_time)

Returns current requested timer values

Arguments

Type IntentOptional Attributes Name
real, intent(out), optional :: total_time
real, intent(out), optional :: overheads_time
real, intent(out), optional :: collectives_time
real, intent(out), optional :: ptp_time
real, intent(out), optional :: sync_time

public subroutine reset_mp_times()

Resets mp timers to zero

Arguments

None

public subroutine time_message(lprint, targ, chmessage)

This routine counts elapsed time between two calls. The two elements in targ will be populated by time_message and correspond to the cumulative time and the time at the last call to time_message for this entry or zero depending on if the second element is zero or non-zero. Essentially the second element acts both as a store for the time at a call and a flag which flip-flops, to work out if we're currently timing or not. RN targ(2) must be non-zero at initialization.

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: lprint
real, intent(inout) :: targ(2)
character(len=*), intent(in) :: chmessage

public subroutine get_proc_name(nm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
character(len=MPI_MAX_PROCESSOR_NAME), intent(out) :: nm

public subroutine init_mp(comm_in, multigs2, err_unit_in)

Initialise the 1 library, communicators, and related variables

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), optional :: comm_in

Communicator to use instead of MPI_COMM_WORLD. If present and set to MPI_COMM_NULL, gets set to MPI_COMM_WORLD

logical, intent(in), optional :: multigs2

If true, initialise multiscale communicator and variables

integer, intent(in), optional :: err_unit_in

Unit of open file to write any error messages to. Defaults to stderr

private subroutine init_comm(comm, total_procs, rank, is_rank0, comm_in)

Initialise a communicator and associated variables

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: comm

Communicator to initialise

integer, intent(out) :: total_procs

Total number of processors in communicator

integer, intent(out) :: rank

This processor's rank

logical, intent(out) :: is_rank0

True if this processor's rank is zero

integer, intent(inout), optional :: comm_in

Communicator to use instead of MPI_COMM_WORLD: if this is MPI_COMM_NULL, this is also initialised to MPI_COMM_WORLD

public subroutine nproc_comm(comm, nproc)

How many procs are in passed communicator

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: comm
integer, intent(out) :: nproc

public subroutine rank_comm(comm, rank)

What is rank of current proc in passed communicator

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: comm
integer, intent(out) :: rank

public subroutine scope(focus)

Switch the module communicator (and size/rank variables) between different scopes.

Arguments

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

Which scope to use. Should be one of allprocs, multigs2procs, subprocs. Other values are equivalent to subprocs

public subroutine finish_mp()

Finalise 1 library if it hasn't been finalised already

Arguments

None

private subroutine allgather_integer_array_1to1(arr, count, out, recvcnts)

A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

Arguments

Type IntentOptional Attributes Name
integer, intent(in), dimension(:) :: arr

The data to gather

integer, intent(in) :: count

How much data to gather, <=SIZE(arr)

integer, intent(out), dimension(:) :: out

The gathered data

integer, intent(in) :: recvcnts

Array detailing how much data to expect from each proc

private subroutine allgatherv_complex_array_1to1(arr, count, out, recvcnts, displs)

A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: arr

The data to gather

integer, intent(in) :: count

How much data to gather, <=SIZE(arr)

complex, intent(out), dimension(:) :: out

The gathered data

integer, intent(in), dimension(:) :: recvcnts

Array detailing how much data to expect from each proc

integer, intent(in), dimension(:) :: displs

Array detailing offset in array where gathered data is to be stored

private subroutine nb_allgatherv_complex_array_1to1(arr, count, out, recvcnts, displs, request)

A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: arr

The data to gather

integer, intent(in) :: count

How much data to gather, <=SIZE(arr)

complex, intent(out), dimension(:) :: out

The gathered data

integer, intent(in), dimension(:) :: recvcnts

Array detailing how much data to expect from each proc

integer, intent(in), dimension(:) :: displs

Array detailing offset in array where gathered data is to be stored

integer, intent(out) :: request

private subroutine allgatherv_complex_array_1to3(arr, count, out, recvcnts, displs)

A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: arr

The data to gather

integer, intent(in) :: count

How much data to gather, <=SIZE(arr)

complex, intent(out), dimension(:,:,:) :: out

The gathered data

integer, intent(in), dimension(:) :: recvcnts

Array detailing how much data to expect from each proc

integer, intent(in), dimension(:) :: displs

Array detailing offset in array where gathered data is to be stored

private subroutine allgatherv_complex_array_1to1_sub(arr, count, out, recvcnts, displs, sub_comm)

A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: arr

The data to gather

integer, intent(in) :: count

How much data to gather, <=SIZE(arr)

complex, intent(out), dimension(:) :: out

The gathered data

integer, intent(in), dimension(:) :: recvcnts

Array detailing how much data to expect from each proc

integer, intent(in), dimension(:) :: displs

Array detailing offset in array where gathered data is to be stored

integer, intent(in) :: sub_comm

Sub-communicator handle

private subroutine allgatherv_complex_array_1to3_sub(arr, count, out, recvcnts, displs, sub_comm)

A subroutine to do a allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: arr

The data to gather

integer, intent(in) :: count

How much data to gather, <=SIZE(arr)

complex, intent(out), dimension(:,:,:) :: out

The gathered data

integer, intent(in), dimension(:) :: recvcnts

Array detailing how much data to expect from each proc

integer, intent(in), dimension(:) :: displs

Array detailing offset in array where gathered data is to be stored

integer, intent(in) :: sub_comm

Sub-communicator handle

private subroutine nb_allgatherv_complex_array_1to3_sub(arr, count, out, recvcnts, displs, sub_comm, request)

A subroutine to do a non-blocking allgatherv operation, sending recvcnts(iproc) data from the iproc'th processor to all others starting at arr(start).

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: arr

The data to gather

integer, intent(in) :: count

How much data to gather, <=SIZE(arr)

complex, intent(out), dimension(:,:,:) :: out

The gathered data

integer, intent(in), dimension(:) :: recvcnts

Array detailing how much data to expect from each proc

integer, intent(in), dimension(:) :: displs

Array detailing offset in array where gathered data is to be stored

integer, intent(in) :: sub_comm

Sub-communicator handle

integer, intent(out) :: request

FIXME : Add documentation

private subroutine free_comm_id(comm)

A routine to free the communicator with id comm

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: comm

Communicator id

private subroutine free_comm_type(comm)

A routine to free the communicator represented by comm

Arguments

Type IntentOptional Attributes Name
type(comm_type), intent(inout) :: comm

Communicator object

public subroutine use_nproc(nprocs_new)

This function splits mp_comm into two pieces, one with nprocs_new procs, and one with all the remainder. For the remainder, included is set to false. This means that the remainder will lie idle.

Arguments

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

public subroutine unsplit_all(old_comm)

FIXME : Add documentation

Arguments

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

public subroutine split_all(col)

A routine to split the global communicator into sub-groups based on each procs specific colour "col". mp_comm is then overwritten to be the new split communicator This is different to job fork, which has the group and global communicators. The global communicator is replaced. This action can be undone with unsplit_all If the old mp_comm is not mpi_comm_world, you should make sure you have saved its value somewhere before calling this so that its value can be saved.

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: col

Processors colour

private subroutine split_nokey(col, new_comm)

A routine to split the mp_comm communicator into sub-groups based on each procs specific colour "col". The sub communicator's handle is passed back in new_comm

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: col

Processors colour

integer, intent(out) :: new_comm

The new sub communicator's handle

private subroutine split_key(col, key, new_comm)

A routine to split the mp_comm communicator into sub-groups based on each procs specific colour "col" and ranked by key. The sub communicator's handle is passed back in new_comm

Arguments

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

Processors colour

integer, intent(in) :: key

Processors key, used to determine rank

integer, intent(out) :: new_comm

The new sub communicator's handle

private subroutine split_nokey_to_commtype(col, new_comm)

A routine to split the mp_comm communicator into sub-groups based on each procs specific colour "col". The sub communicator's handle is passed back in new_comm

Arguments

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

Processors colour

type(comm_type), intent(out) :: new_comm

The new sub communicator's handle

private subroutine split_key_to_commtype(col, key, new_comm)

A routine to split the mp_comm communicator into sub-groups based on each procs specific colour "col" and ranked by key. The sub communicator's handle is passed back in new_comm

Arguments

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

Processors colour

integer, intent(in) :: key

Processors key, used to determine rank

type(comm_type), intent(out) :: new_comm

The new sub communicator's handle

private subroutine split_nokey_to_commtype_sub(col, new_comm, sub)

A routine to split a subcommunicator into sub-groups based on each procs specific colour "col". The sub communicator's handle is passed back in new_comm

Arguments

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

Processors colour

type(comm_type), intent(out) :: new_comm

The new sub communicator's handle

integer, intent(in) :: sub

private subroutine split_key_to_commtype_sub(col, key, new_comm, sub)

A routine to split a subcommunicator into sub-groups based on each procs specific colour "col" and ranked by key. The sub communicator's handle is passed back in new_comm

Arguments

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

Processors colour

integer, intent(in) :: key

Processors key, used to determine rank

type(comm_type), intent(out) :: new_comm

The new sub communicator's handle

integer, intent(in) :: sub

Subcommunicator to split

private subroutine broadcast_character(char)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: char

private subroutine broadcast_character_array(char)

FIXME : Add documentation

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout), dimension(:) :: char

private subroutine broadcast_integer(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i

private subroutine broadcast_integer_array(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:) :: i

private subroutine broadcast_integer_2array(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:,:) :: i

private subroutine broadcast_real(x)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: x

private subroutine broadcast_real_array(x)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: x

private subroutine broadcast_real_2array(x)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension(:,:) :: x

private subroutine broadcast_real_3array(x)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension(:,:,:) :: x

private subroutine broadcast_real_4array(x)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension(:,:,:,:) :: x

private subroutine broadcast_real_5array(x)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension(:,:,:,:,:) :: x

private subroutine broadcast_complex(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: z

private subroutine broadcast_complex_array(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z

private subroutine broadcast_complex8_array(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex(kind=kind_rs), intent(inout), dimension (:) :: z

private subroutine broadcast_complex_2array(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:) :: z

private subroutine broadcast_complex_3array(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:) :: z

private subroutine broadcast_complex_4array(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:) :: z

private subroutine broadcast_logical(f)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(inout) :: f

private subroutine broadcast_logical_array(f)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(inout), dimension (:) :: f

private subroutine broadcast_logical_2array(f)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(inout), dimension (:,:) :: f

private subroutine bcastfrom_logical(f, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(inout) :: f
integer, intent(in) :: src

private subroutine bcastfrom_logical_array(f, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(inout), dimension (:) :: f
integer, intent(in) :: src

private subroutine bcastfrom_character(c, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: c
integer, intent(in) :: src

private subroutine bcastfrom_integer(i, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i
integer, intent(in) :: src

private subroutine bcastfrom_integer_array(i, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:) :: i
integer, intent(in) :: src

private subroutine bcastfrom_real(x, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: x
integer, intent(in) :: src

private subroutine bcastfrom_real_array(x, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: x
integer, intent(in) :: src

private subroutine bcastfrom_complex(z, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: z
integer, intent(in) :: src

private subroutine bcastfrom_complex_array(z, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z
integer, intent(in) :: src

private subroutine bcastfrom_complex_2array(z, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:) :: z
integer, intent(in) :: src

private subroutine bcastfrom_complex_3array(z, src)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:) :: z
integer, intent(in) :: src

private subroutine bcastfrom_complex_array_sub(z, src, sub)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z
integer, intent(in) :: src
integer, intent(in) :: sub

private subroutine bcastfrom_complex_2array_sub(z, src, sub)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:) :: z
integer, intent(in) :: src
integer, intent(in) :: sub

private subroutine bcastfrom_complex_3array_sub(z, src, sub)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:) :: z
integer, intent(in) :: src
integer, intent(in) :: sub

private subroutine bcastfrom_complex_4array_sub(z, src, sub)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:) :: z
integer, intent(in) :: src
integer, intent(in) :: sub

private subroutine sum_reduce_integer(i, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i
integer, intent(in) :: dest

private subroutine sum_reduce_integer_array(i, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:) :: i
integer, intent(in) :: dest

private subroutine sum_reduce_integer_2array(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:,:) :: a
integer, intent(in) :: dest

private subroutine sum_reduce_logical(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(inout) :: a
integer, intent(in) :: dest

private subroutine sum_reduce_real(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: a
integer, intent(in) :: dest

private subroutine sum_reduce_real_array(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: a
integer, intent(in) :: dest

private subroutine sum_reduce_real_2array(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:) :: a
integer, intent(in) :: dest

private subroutine sum_reduce_real_3array(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:,:) :: a
integer, intent(in) :: dest

private subroutine sum_reduce_real_4array(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:,:,:) :: a
integer, intent(in) :: dest

private subroutine sum_reduce_real_5array(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:,:,:,:) :: a
integer, intent(in) :: dest

private subroutine sum_reduce_complex(z, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: z
integer, intent(in) :: dest

private subroutine sum_reduce_complex_array(z, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z
integer, intent(in) :: dest

private subroutine sum_reduce_complex_2array(z, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:) :: z
integer, intent(in) :: dest

private subroutine sum_reduce_complex_3array(z, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:) :: z
integer, intent(in) :: dest

private subroutine sum_reduce_complex_4array(z, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:) :: z
integer, intent(in) :: dest

private subroutine sum_reduce_complex_5array(z, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:,:) :: z
integer, intent(in) :: dest

private subroutine nb_sum_reduce_complex(z, dest, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: z
integer, intent(in) :: dest
integer, intent(out) :: request

private subroutine nb_sum_reduce_complex_array(z, dest, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z
integer, intent(in) :: dest
integer, intent(out) :: request

private subroutine nb_sum_reduce_complex_2array(z, dest, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:) :: z
integer, intent(in) :: dest
integer, intent(out) :: request

private subroutine nb_sum_reduce_complex_3array(z, dest, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:) :: z
integer, intent(in) :: dest
integer, intent(out) :: request

private subroutine nb_sum_reduce_complex_4array(z, dest, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:) :: z
integer, intent(in) :: dest
integer, intent(out) :: request

private subroutine nb_sum_reduce_complex_5array(z, dest, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:,:) :: z
integer, intent(in) :: dest
integer, intent(out) :: request

private subroutine sum_reduce_complex_array_sub(z, dest, sub)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z
integer, intent(in) :: dest
type(comm_type), intent(in) :: sub

private subroutine sum_reduce_complex_2array_sub(z, dest, sub)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:) :: z
integer, intent(in) :: dest
type(comm_type), intent(in) :: sub

private subroutine sum_reduce_complex_3array_sub(z, dest, sub)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:) :: z
integer, intent(in) :: dest
type(comm_type), intent(in) :: sub

private subroutine sum_reduce_complex_4array_sub(z, dest, sub)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:) :: z
integer, intent(in) :: dest
type(comm_type), intent(in) :: sub

private subroutine nb_sum_reduce_complex_array_sub(z, dest, sub, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z
integer, intent(in) :: dest
type(comm_type), intent(in) :: sub
integer, intent(out) :: request

private subroutine nb_sum_reduce_complex_4array_sub(z, dest, sub, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:) :: z
integer, intent(in) :: dest
type(comm_type), intent(in) :: sub
integer, intent(out) :: request

private subroutine sum_allreduce_integer(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i

private subroutine sum_allreduce_integer_array(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:) :: i

private subroutine sum_allreduce_integer_2array(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:,:) :: i

private subroutine sum_allreduce_integer_3array(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:,:,:) :: i

private subroutine sum_allreduce_real(a)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: a

private subroutine sum_allreduce_real_array(a)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: a

private subroutine sum_allreduce_real_2array(a)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:) :: a

private subroutine sum_allreduce_real_3array(a)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:,:) :: a

private subroutine sum_allreduce_real_4array(a)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:,:,:) :: a

private subroutine sum_allreduce_real_5array(a)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:,:,:,:) :: a

private subroutine sum_allreduce_complex(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: z

private subroutine sum_allreduce_complex_array(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z

private subroutine sum_allreduce_complex_2array(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:) :: z

private subroutine sum_allreduce_complex_3array(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:) :: z

private subroutine sum_allreduce_complex_4array(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:) :: z

private subroutine sum_allreduce_complex_5array(z)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:,:) :: z

private subroutine sum_allreduce_sub_integer(i, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_integer_array(i, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:) :: i
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_real(a, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: a
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_real_array(a, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: a
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_real_2array(a, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:) :: a
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_real_3array(a, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:,:) :: a
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_real_4array(a, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:,:,:) :: a
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_real_5array(a, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:,:,:,:,:) :: a
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_complex(z, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: z
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_complex_array(z, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_complex_2array(z, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:) :: z
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_complex_3array(z, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:) :: z
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_complex_4array(z, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:) :: z
integer, intent(in) :: sub_comm

private subroutine sum_allreduce_sub_complex_5array(z, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:,:) :: z
integer, intent(in) :: sub_comm

private subroutine nb_sum_allreduce_sub_complex_2array(z, sub_comm, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:) :: z
integer, intent(in) :: sub_comm
integer, intent(out) :: request

private subroutine nb_sum_allreduce_sub_complex_4array(z, sub_comm, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:) :: z
integer, intent(in) :: sub_comm
integer, intent(out) :: request

private subroutine nb_sum_allreduce_integer(i, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i
integer, intent(out) :: request

private subroutine nb_sum_allreduce_complex_array(z, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z
integer, intent(out) :: request

private subroutine nb_sum_allreduce_complex_3array(z, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:) :: z
integer, intent(out) :: request

private subroutine nb_sum_allreduce_complex_4array(z, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:) :: z
integer, intent(out) :: request

private subroutine nb_sum_allreduce_complex_5array(z, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:,:,:,:,:) :: z
integer, intent(out) :: request

private subroutine max_reduce_integer(i, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i
integer, intent(in) :: dest

private subroutine max_reduce_integer_array(i, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:) :: i
integer, intent(in) :: dest

private subroutine max_reduce_real(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: a
integer, intent(in) :: dest

private subroutine max_reduce_real_array(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: a
integer, intent(in) :: dest

private subroutine max_allreduce_integer(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i

private subroutine max_allreduce_integer_array(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:) :: i

private subroutine max_allreduce_real(a)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: a

private subroutine max_allreduce_real_array(a)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: a

private subroutine maxloc_allreduce_real(a, i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: a
integer, intent(inout) :: i

private subroutine maxloc_allreduce_real_array(a, i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: a
integer, intent(inout), dimension (:) :: i

private subroutine nb_max_allreduce_integer(i, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i
integer, intent(out) :: request

private subroutine nb_max_allreduce_integer_array(i, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:) :: i
integer, intent(out) :: request

private subroutine nb_max_allreduce_real(a, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: a
integer, intent(out) :: request

private subroutine nb_max_allreduce_real_array(a, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: a
integer, intent(out) :: request

private subroutine min_reduce_integer(i, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i
integer, intent(in) :: dest

private subroutine min_reduce_integer_array(i, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:) :: i
integer, intent(in) :: dest

private subroutine min_reduce_real(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: a
integer, intent(in) :: dest

private subroutine min_reduce_real_array(a, dest)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: a
integer, intent(in) :: dest

private subroutine min_allreduce_integer(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i

private subroutine min_allreduce_integer_array(i)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension (:) :: i

private subroutine min_allreduce_real(a)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: a

private subroutine min_allreduce_real_array(a)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension (:) :: a

private subroutine min_allreduce_sub_integer(i, sub_comm)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: i
integer, intent(in) :: sub_comm

private subroutine land_allreduce_single_element(l)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(inout) :: l

private subroutine barrier_nocomm()

FIXME : Add documentation

Arguments

None

private subroutine barrier_comm(comm)

Arguments

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

private subroutine send_integer(i, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_integer_array(i, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(in), dimension (:) :: i
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_real(a, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: a
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_real_array(a, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension (:) :: a
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_real_4d_array(a, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension (:,:,:,:) :: a
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_real_5d_array(a, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension (:,:,:,:,:) :: a
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_complex(z, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(in) :: z
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_complex_array(z, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension (:) :: z
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_complex_2d_array(z, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension (:,:) :: z
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_complex_3d_array(z, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension (:,:,:) :: z
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine nonblocking_send_complex_array(z, dest, tag, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension (:) :: z
integer, intent(in) :: dest
integer, intent(in), optional :: tag
integer, intent(out) :: request

private subroutine send_logical(f, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: f
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_logical_array(f, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(in), dimension (:) :: f
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine send_character(s, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: s
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine ssend_integer(i, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine ssend_integer_array(i, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(in), dimension (:) :: i
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine ssend_real(a, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: a
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine ssend_real_array(a, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension (:) :: a
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine ssend_complex(z, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(in) :: z
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine ssend_complex_array(z, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension (:) :: z
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine ssend_complex_2array(z, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension (:,:) :: z
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine ssend_logical(f, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: f
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine ssend_logical_array(f, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(in), dimension (:) :: f
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine ssend_character(s, dest, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: s
integer, intent(in) :: dest
integer, intent(in), optional :: tag

private subroutine nbsend_real_array(z, dest, tag, handle)

Routine for nonblocking send of z to dest. Use to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbsend_real_array_count(z, count, dest, tag, handle)

Routine for nonblocking send of z (size=count) to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(:) :: z
integer, intent(in) :: count
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbsend_complex_array(z, dest, tag, handle)

Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbsend_complex_2d_array(z, dest, tag, handle)

Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:,:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbsend_complex_2d_array_count(z, count, dest, tag, handle)

Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:,:) :: z
integer, intent(in) :: count
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbsend_complex_3d_array(z, dest, tag, handle)

Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:,:,:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbsend_complex_3d_array_count(z, count, dest, tag, handle)

Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:,:,:) :: z
integer, intent(in) :: count
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbsend_complex_array_sub(z, dest, tag, sub, handle)

Routine for nonblocking send of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
type(comm_type), intent(in) :: sub
integer, intent(out) :: handle

private subroutine nbsend_complex_array_count(z, count, dest, tag, handle)

Routine for nonblocking send of z (size=count) to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: z
integer, intent(in) :: count
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine send_init_complex_array(z, dest, tag, handle)

Routine to initialise a persistent send operation

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(inout) :: handle

private subroutine send_init_real_array(z, dest, tag, handle)

Routine to initialise a persistent send operation

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(inout) :: handle

private subroutine receive_integer(i, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: i
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_integer_array(i, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(out), dimension (:) :: i
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_real(a, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(out) :: a
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_real_array(a, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(out), dimension (:) :: a
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_real_4d_array(a, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(out), dimension (:,:,:,:) :: a
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_real_5d_array(a, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(out), dimension (:,:,:,:,:) :: a
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_complex(z, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(out) :: z
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_complex_array(z, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(out), dimension (:) :: z
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_complex_2array(z, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(out), dimension (:,:) :: z
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_complex_3d_array(z, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(out), dimension (:,:,:) :: z
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine nonblocking_receive_complex_array(z, src, tag, request)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension (:) :: z
integer, intent(in) :: src
integer, intent(in), optional :: tag
integer, intent(out) :: request

private subroutine receive_logical(f, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(out) :: f
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_logical_array(f, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
logical, intent(out), dimension (:) :: f
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine receive_character(s, src, tag)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(out) :: s
integer, intent(in) :: src
integer, intent(in), optional :: tag

private subroutine nbrecv_real_array(z, dest, tag, handle)

Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
real, intent(out), dimension(:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbrecv_real_array_count(z, count, dest, tag, handle)

Routine for nonblocking recv of z (size=count) to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
real, intent(out), dimension(:) :: z
integer, intent(in) :: count
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbrecv_complex_array(z, dest, tag, handle)

Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(out), dimension(:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbrecv_complex_2d_array(z, dest, tag, handle)

Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(out), dimension(:,:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbrecv_complex_2d_array_count(z, count, dest, tag, handle)

Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(out), dimension(:,:) :: z
integer, intent(in) :: count
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbrecv_complex_3d_array(z, dest, tag, handle)

Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:,:,:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbrecv_complex_3d_array_count(z, count, dest, tag, handle)

Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:,:,:) :: z
integer, intent(in) :: count
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine nbrecv_complex_array_sub(z, dest, tag, sub, handle)

Routine for nonblocking recv of z to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(out), dimension(:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
type(comm_type), intent(in) :: sub
integer, intent(out) :: handle

private subroutine nbrecv_complex_array_count(z, count, dest, tag, handle)

Routine for nonblocking recv of z (size=count) to dest. Use tag to label message and return handle for later checking.

Arguments

Type IntentOptional Attributes Name
complex, intent(out), dimension(:) :: z
integer, intent(in) :: count
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine recv_init_complex_array(z, dest, tag, handle)

Routine to initialise a persistent recv operation

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

private subroutine recv_init_real_array(z, dest, tag, handle)

Routine to initialise a persistent recv operation

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension(:) :: z
integer, intent(in) :: dest
integer, intent(in) :: tag
integer, intent(out) :: handle

public subroutine initialise_requests(requests)

A Routine to initialise request arrays properly so they can have null requests in them and still work problems with waitall and waitany

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension(:) :: requests

private subroutine wait_nostat(request)

This routine waits for the communication, given by the message request, to complete. We ignore the status information

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: request

private subroutine wait_stat(request, status)

This routine waits for the communication, given by the message request, to complete. We return the status information

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: request
integer, intent(out), dimension(MPI_STATUS_SIZE) :: status

private subroutine waitall_nostat(count, requests)

A routine to wait for all count communications, given by the message handles in requests, to complete. We ignore the status information

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: count
integer, intent(inout), dimension(:) :: requests

private subroutine waitall_stat(count, requests, status)

A routine to wait for all count communications, given by the message handles in requests, to complete. We return the message statuses

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: count
integer, intent(inout), dimension(:) :: requests
integer, intent(out), dimension(MPI_STATUS_SIZE,count) :: status

private subroutine waitany_stat(count, requests, requestindex, status)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: count
integer, intent(inout), dimension(:) :: requests
integer, intent(out) :: requestindex
integer, intent(out), dimension(MPI_STATUS_SIZE) :: status

private subroutine waitany_nostat(count, requests, requestindex)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: count
integer, intent(inout), dimension(:) :: requests
integer, intent(out) :: requestindex

private subroutine testall_nostat_noflag(count, requests)

A routine to test for all count communications, given by the message handles in requests, to complete. We ignore the status and flag information

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: count
integer, intent(inout), dimension(:) :: requests

private subroutine testall_nostat(count, requests, flag)

A routine to test for all count communications, given by the message handles in requests, to complete. We ignore the status information

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: count
integer, intent(inout), dimension(:) :: requests
logical, intent(out) :: flag

private subroutine testall_stat(count, requests, status, flag)

A routine to test for all count communications, given by the message handles in requests, to complete. We return the message statuses and completion flag

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: count
integer, intent(inout), dimension(:) :: requests
integer, intent(out), dimension(MPI_STATUS_SIZE,count) :: status
logical, intent(out) :: flag

private subroutine start_persist(handle)

Starts a single persistent communication represented by handle

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: handle

private subroutine startall_persist(handles)

Starts multiple persistent communications represented by handles

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension(:) :: handles

private subroutine free_handle_persist(handle)

Frees a single persistent request handle

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: handle

private subroutine free_handles_persist(handles)

Frees multiple persistent request handles

Arguments

Type IntentOptional Attributes Name
integer, intent(inout), dimension(:) :: handles

public subroutine init_jobs(ncolumns, group0, ierr)

FIXME : Add documentation

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ncolumns
integer, intent(out), dimension(0:) :: group0
integer, intent(out) :: ierr

private subroutine all_to_group_real(all, group, njobs)

FIXME : Add documentation

Read more…

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension (:) :: all
real, intent(out) :: group
integer, intent(in) :: njobs

private subroutine all_to_group_real_array(all, group, njobs)

FIXME : Add documentation

Read more…

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension (:,:) :: all
real, intent(out), dimension (:) :: group
integer, intent(in) :: njobs

private subroutine group_to_all_real(group, all, njobs)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: group
real, intent(out), dimension (:) :: all
integer, intent(in) :: njobs

private subroutine group_to_all_real_array(group, all, njobs)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension (:) :: group
real, intent(out), dimension (:,:) :: all
integer, intent(in) :: njobs

public subroutine mp_abort(msg, to_screen, err_unit_in)

Abort the simulation, logging an error message

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: msg

Error message

logical, intent(in), optional :: to_screen

If true, also print msg to screen, as well as to the error file

integer, intent(in), optional :: err_unit_in

Unit of open file to write any error messages to. Defaults to stderr

public subroutine set_default_error_file_unit(unit)

Set the unit for the error file to use in this module, for example for mp_abort

Arguments

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

An open file unit to use as the error file