All Classes Files Functions Variables Pages
mod_init_mpibuffer Module Reference

This module contains subroutines to initialize MPI buffers between cpu myrank and its neighbor cpus.

Public Member Functions

subroutine, public init_mpi_buffers ()
 This subroutine searches for common GLL nodes between cpu myrank and its neighbor cpus. Send and receive buffers are filled only with unique GLLs (i.e., no duplicated GLL are present in MPI buffers). More...
 

Private Member Functions

subroutine, private create_gll_buffer_recv (gll_coord_send, gll_coord_recv, ngll, gll_recv, gll_send, max_size)
 This subroutine creates GLLs buffers received by cpu myrank from other cpus. Identical GLLs between connected cpus are found by computing minimal distance among GLLs. Two GLLs from different cpus with the smallest minimal distance are supposed to be identical. More...
 
subroutine, private remove_duplicate (x1, n, x3, m)
 This subroutine removes duplicated GLLs between cpu myrank and its connected cpus. More...
 

Detailed Description

Definition at line 126 of file module_init_mpibuffer.f90.

Member Function/Subroutine Documentation

subroutine, private mod_init_mpibuffer::create_gll_buffer_recv ( real, dimension(ig_ndof*max_size), intent(in)  gll_coord_send,
real, dimension(ig_ndof*max_size), intent(in)  gll_coord_recv,
integer, intent(in)  ngll,
integer, dimension(:), intent(out), allocatable  gll_recv,
integer, dimension(ngll), intent(in)  gll_send,
integer, intent(in)  max_size 
)
private
Parameters
gll_coord_send: \(x,y,z\)-coordinates of GLLs in MPI_send buffers
gll_coord_recv: \(x,y,z\)-coordinates of GLLs in MPI_recv buffers
ngll: number of unique common GLLs between cpu myrank and its connected cpus
gll_recv: list of GLLs received by cpu myrank from its connected cpus
gll_send: list of GLLs sent by cpu myrank to its connected cpus
max_size: maximum buffer size for cpu myrank

Definition at line 467 of file module_init_mpibuffer.f90.

Referenced by init_mpi_buffers().

subroutine, public mod_init_mpibuffer::init_mpi_buffers ( )
Returns
mod_global_variables::tg_cpu_neighbor
mod_global_variables::ig_mpi_buffer_sizemax

Definition at line 146 of file module_init_mpibuffer.f90.

References create_gll_buffer_recv(), and remove_duplicate().

Referenced by efispec3d().

Here is the call graph for this function:

subroutine, private mod_init_mpibuffer::remove_duplicate ( integer, dimension(n), intent(in)  x1,
integer, intent(in)  n,
integer, dimension(:), intent(out), allocatable  x3,
integer, intent(out)  m 
)
private
Parameters
x1: array with duplicated GLLs
n: size of array x1
x3: array without duplicated GLLs
m: size of array x3

Definition at line 553 of file module_init_mpibuffer.f90.

Referenced by init_mpi_buffers().


The documentation for this module was generated from the following file: