darrays Module

Distributed arrays module (DDI-compatible)

Provides DDI-style distributed 2D arrays built on MPI-3 RMA. Re-exports all functionality from submodules plus convenience wrappers.

Usage: use darrays call darrays_init(comm) call darray_create(nrows, ncols, handle) call darray_put(handle, 1, nrows, jlo, jhi, data) call darray_get(handle, 1, nrows, jlo, jhi, data) call darray_destroy(handle) call darrays_finalize()


Uses

  • module~~darrays~~UsesGraph module~darrays darrays module~darrays_core darrays_core module~darrays->module~darrays_core module~darrays_dlb darrays_dlb module~darrays->module~darrays_dlb module~darrays_types darrays_types module~darrays->module~darrays_types module~pic_mpi_lib pic_mpi_lib module~darrays->module~pic_mpi_lib pic_types pic_types module~darrays->pic_types module~darrays_core->module~darrays_types module~darrays_core->module~pic_mpi_lib module~darrays_core->pic_types module~darrays_distrib darrays_distrib module~darrays_core->module~darrays_distrib mpi_f08 mpi_f08 module~darrays_core->mpi_f08 module~darrays_dlb->module~pic_mpi_lib module~darrays_dlb->pic_types module~darrays_dlb->mpi_f08 module~darrays_types->module~pic_mpi_lib module~darrays_types->pic_types module~pic_mpi_f08 pic_mpi_f08 module~pic_mpi_lib->module~pic_mpi_f08 module~darrays_distrib->pic_types module~darrays_distrib->mpi_f08 module~pic_mpi_f08->pic_types module~pic_mpi_f08->mpi_f08

Variables

Type Visibility Attributes Name Initial
type(comm_t), private, save :: wrapper_comm
logical, private, save :: wrapper_initialized = .false.

Subroutines

public subroutine darray_gsumf(buffer, n)

Global sum for double precision array (DDI_GSUMF equivalent)

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: buffer(*)
integer(kind=int32), intent(in) :: n

public subroutine darray_gsumi(buffer, n)

Global sum for integer array (DDI_GSUMI equivalent)

Read more…

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(inout) :: buffer(*)
integer(kind=int32), intent(in) :: n

public subroutine darray_nproc(np, me)

Get number of processes and current rank (DDI_NPROC equivalent)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(out) :: np

Output: total number of processes

integer(kind=int32), intent(out) :: me

public subroutine darray_sync(tag)

Synchronization barrier (DDI_SYNC equivalent)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: tag

Ignored (for DDI compatibility)

public subroutine darrays_set_comm(comm)

Set communicator for convenience wrappers

Read more…

Arguments

Type IntentOptional Attributes Name
type(comm_t), intent(in) :: comm