MODgvec_MPI Module

Module MOD_MPI

MPI related stuff, including communication


Used by

  • module~~modgvec_mpi~~UsedByGraph module~modgvec_mpi MODgvec_MPI proc~buildprecond BuildPrecond proc~buildprecond->module~modgvec_mpi proc~evalaux EvalAux proc~evalaux->module~modgvec_mpi proc~evalenergy EvalEnergy proc~evalenergy->module~modgvec_mpi proc~evalforce EvalForce proc~evalforce->module~modgvec_mpi proc~evaltotals EvalTotals proc~evaltotals->module~modgvec_mpi proc~fillstrings FillStrings proc~fillstrings->module~modgvec_mpi proc~hmap_axisnb_init_params hmap_axisNB_init_params proc~hmap_axisnb_init_params->module~modgvec_mpi proc~init_la_from_solution Init_LA_from_Solution proc~init_la_from_solution->module~modgvec_mpi proc~initanalyze InitAnalyze proc~initanalyze->module~modgvec_mpi proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->module~modgvec_mpi proc~initprofilesgp InitProfilesGP proc~initprofilesgp->module~modgvec_mpi proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->module~modgvec_mpi proc~start_rungvec start_rungvec proc~start_rungvec->module~modgvec_mpi proc~writestatetoascii WriteStateToASCII proc~writestatetoascii->module~modgvec_mpi program~gvec GVEC program~gvec->module~modgvec_mpi program~gvec_post GVEC_POST program~gvec_post->module~modgvec_mpi

Interfaces

public interface par_AllReduce

  • private subroutine par_AllReduce_scalar(scalar, parOP)

    Find MAX/MIN/SUM scalar value across MPI ranks and bradcast result back to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: scalar
    character(len=3), intent(in) :: parOP
  • private subroutine par_AllReduce_scalar_int(scalar_int, parOP)

    Find MAX/MIN/SUM scalar value across MPI ranks and bradcast result back to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: scalar_int
    character(len=3), intent(in) :: parOP
  • private subroutine par_AllReduce_array1D(arr, parOP)

    Find MAX/MIN/SUM of 1D array (assumed-shape) across all MPI ranks and bradcast result back to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: arr(:)
    character(len=3), intent(in) :: parOP
  • private subroutine par_AllReduce_array2D(arr, parOP)

    Find MAX/MIN/SUM of 2D array (assumed-shape) across all MPI ranks and bradcast result back to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: arr(:,:)
    character(len=3), intent(in) :: parOP

public interface par_Reduce

  • private subroutine par_Reduce_scalar(scalar, parOP, toRank)

    Find on MPI rank 'toRank' MAX/MIN/SUM scalar value across MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: scalar
    character(len=3), intent(in) :: parOP
    integer, intent(in) :: toRank
  • private subroutine par_Reduce_scalar_int(scalar_int, parOP, toRank)

    Find on MPI rank 'toRank' MAX/MIN/SUM scalar value across MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: scalar_int
    character(len=3), intent(in) :: parOP
    integer, intent(in) :: toRank
  • private subroutine par_Reduce_array1D(arr, parOP, toRank)

    Find on MPI rank 'toRank' MAX/MIN/SUM of 1D array (assumed-shape) across all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: arr(:)
    character(len=3), intent(in) :: parOP
    integer, intent(in) :: toRank
  • private subroutine par_Reduce_array2D(arr, parOP, toRank)

    Find on MPI rank 'toRank' MAX/MIN/SUM of 2D array (assumed-shape) across all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: arr(:,:)
    character(len=3), intent(in) :: parOP
    integer, intent(in) :: toRank

public interface par_IReduce

  • private subroutine par_IReduce_array1D(arr, parOP, toRank, req_out)

    Find on MPI rank 'toRank' MAX/MIN/SUM of 1D array (assumed-shape) across all MPI ranks (nonblocking).

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: arr(:)
    character(len=3), intent(in) :: parOP
    integer, intent(in) :: toRank
    real :: req_out
  • private subroutine par_IReduce_array2D(arr, parOP, toRank, req_out)

    Find on MPI rank 'toRank' MAX/MIN/SUM of 2D array (assumed-shape) across all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: arr(:,:)
    character(len=3), intent(in) :: parOP
    integer, intent(in) :: toRank
    real :: req_out

public interface par_Bcast

  • private subroutine par_Bcast_scalar(scalar, fromRank)

    Broadcast a scalar from MPI rank 'fromRank' to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: scalar
    integer :: fromRank
  • private subroutine par_Bcast_scalar_int(scalar_int, fromRank)

    Broadcast a scalar from MPI rank 'fromRank' to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: scalar_int
    integer :: fromRank
  • private subroutine par_Bcast_scalar_str(scalar_str, fromRank)

    Broadcast a scalar from MPI rank 'fromRank' to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(inout) :: scalar_str
    integer :: fromRank
  • private subroutine par_Bcast_array1D(arr, fromRank)

    Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: arr(:)
    integer :: fromRank
  • private subroutine par_Bcast_array1D_int(arr_int, fromRank)

    Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(inout) :: arr_int(:)
    integer :: fromRank
  • private subroutine par_Bcast_array1D_str(arr_str, fromRank)

    Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(inout) :: arr_str(:)
    integer :: fromRank
  • private subroutine par_Bcast_array2D(arr, fromRank)

    Broadcast a 2D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: arr(:,:)
    integer :: fromRank

public interface par_IBcast

  • private subroutine par_IBcast_array1D(arr, fromRank, req_out)

    Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks (nonblocking)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: arr(:)
    integer :: fromRank
    real :: req_out
  • private subroutine par_IBcast_array2D(arr, fromRank, req_out)

    Broadcast a 2D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks (nonblocking)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(inout) :: arr(:,:)
    integer :: fromRank
    real :: req_out

private interface par_Wait

  • private interface par_Wait()

    Arguments

    None
  • private subroutine par_WaitAll(req_in)

    Wait for completion of all nonblocking communications for req(:)

    Arguments

    Type IntentOptional Attributes Name
    real :: req_in

Subroutines

public subroutine par_Init(comm_in)

Initialisation of MPI.

Arguments

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

public subroutine par_Finalize()

Deinitialisation of MPI.

Arguments

None

public subroutine par_Barrier(Comm, beforeScreenOut, afterScreenOut)

Barrier for specified communicator, or world-communicator otherwise.

Arguments

Type IntentOptional Attributes Name
real :: Comm
character(len=*), intent(in), optional :: beforeScreenOut
character(len=*), intent(in), optional :: afterScreenOut

private subroutine par_AllReduce_scalar(scalar, parOP)

Find MAX/MIN/SUM scalar value across MPI ranks and bradcast result back to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: scalar
character(len=3), intent(in) :: parOP

private subroutine par_AllReduce_scalar_int(scalar_int, parOP)

Find MAX/MIN/SUM scalar value across MPI ranks and bradcast result back to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: scalar_int
character(len=3), intent(in) :: parOP

private subroutine par_AllReduce_array1D(arr, parOP)

Find MAX/MIN/SUM of 1D array (assumed-shape) across all MPI ranks and bradcast result back to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:)
character(len=3), intent(in) :: parOP

private subroutine par_AllReduce_array2D(arr, parOP)

Find MAX/MIN/SUM of 2D array (assumed-shape) across all MPI ranks and bradcast result back to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:,:)
character(len=3), intent(in) :: parOP

private subroutine par_Reduce_scalar_int(scalar_int, parOP, toRank)

Find on MPI rank 'toRank' MAX/MIN/SUM scalar value across MPI ranks.

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: scalar_int
character(len=3), intent(in) :: parOP
integer, intent(in) :: toRank

private subroutine par_Reduce_scalar(scalar, parOP, toRank)

Find on MPI rank 'toRank' MAX/MIN/SUM scalar value across MPI ranks.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: scalar
character(len=3), intent(in) :: parOP
integer, intent(in) :: toRank

private subroutine par_Reduce_array1D(arr, parOP, toRank)

Find on MPI rank 'toRank' MAX/MIN/SUM of 1D array (assumed-shape) across all MPI ranks.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:)
character(len=3), intent(in) :: parOP
integer, intent(in) :: toRank

private subroutine par_Reduce_array2D(arr, parOP, toRank)

Find on MPI rank 'toRank' MAX/MIN/SUM of 2D array (assumed-shape) across all MPI ranks.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:,:)
character(len=3), intent(in) :: parOP
integer, intent(in) :: toRank

private subroutine par_IReduce_array1D(arr, parOP, toRank, req_out)

Find on MPI rank 'toRank' MAX/MIN/SUM of 1D array (assumed-shape) across all MPI ranks (nonblocking).

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:)
character(len=3), intent(in) :: parOP
integer, intent(in) :: toRank
real :: req_out

private subroutine par_IReduce_array2D(arr, parOP, toRank, req_out)

Find on MPI rank 'toRank' MAX/MIN/SUM of 2D array (assumed-shape) across all MPI ranks.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:,:)
character(len=3), intent(in) :: parOP
integer, intent(in) :: toRank
real :: req_out

private subroutine par_Bcast_scalar_int(scalar_int, fromRank)

Broadcast a scalar from MPI rank 'fromRank' to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: scalar_int
integer :: fromRank

private subroutine par_Bcast_scalar_str(scalar_str, fromRank)

Broadcast a scalar from MPI rank 'fromRank' to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: scalar_str
integer :: fromRank

private subroutine par_Bcast_scalar(scalar, fromRank)

Broadcast a scalar from MPI rank 'fromRank' to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: scalar
integer :: fromRank

private subroutine par_Bcast_array1D(arr, fromRank)

Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:)
integer :: fromRank

private subroutine par_Bcast_array1D_int(arr_int, fromRank)

Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: arr_int(:)
integer :: fromRank

private subroutine par_Bcast_array1D_str(arr_str, fromRank)

Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: arr_str(:)
integer :: fromRank

private subroutine par_Bcast_array2D(arr, fromRank)

Broadcast a 2D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:,:)
integer :: fromRank

private subroutine par_IBcast_array1D(arr, fromRank, req_out)

Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks (nonblocking)

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:)
integer :: fromRank
real :: req_out

private subroutine par_IBcast_array2D(arr, fromRank, req_out)

Broadcast a 2D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks (nonblocking)

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:,:)
integer :: fromRank
real :: req_out

public subroutine par_Wait(req_in)

Wait for completion of a single nonblocking communication

Arguments

Type IntentOptional Attributes Name
real :: req_in

private subroutine par_WaitAll(req_in)

Wait for completion of all nonblocking communications for req(:)

Arguments

Type IntentOptional Attributes Name
real :: req_in

private subroutine parSumArrayES(arr, sz)

Sum an array across MPI ranks: explicit-shape with implicit reshaping Multi-D->1D.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout), DIMENSION(sz) :: arr
integer, intent(in) :: sz