mpi_setup Module

Module for setting up MPI partition and data exchange












Uses

  • module~~mpi_setup~~UsesGraph module~mpi_setup mpi_setup module~comm_variable comm_variable module~mpi_setup->module~comm_variable mpi mpi module~mpi_setup->mpi module~comm_variable->mpi

Used by

  • module~~mpi_setup~~UsedByGraph module~mpi_setup mpi_setup module~cslp_solver CSLP_Solver module~cslp_solver->module~mpi_setup module~operators operators module~cslp_solver->module~operators module~smoother smoother module~cslp_solver->module~smoother module~wavenumber wavenumber module~cslp_solver->module~wavenumber module~deflaion_setup deflaion_setup module~deflaion_setup->module~mpi_setup module~deflaion_setup->module~cslp_solver module~deflaion_setup->module~operators module~deflaion_setup->module~wavenumber module~idrs_module idrs_module module~idrs_module->module~mpi_setup module~user_module user_module module~idrs_module->module~user_module module~operators->module~mpi_setup module~operators->module~wavenumber module~define_bc define_BC module~operators->module~define_bc module~smoother->module~mpi_setup module~smoother->module~operators module~smoother->module~define_bc module~wavenumber->module~mpi_setup program~helmholtz_2d helmholtz_2d program~helmholtz_2d->module~mpi_setup program~helmholtz_2d->module~idrs_module program~helmholtz_2d->module~wavenumber module~solvers solvers program~helmholtz_2d->module~solvers program~helmholtz_2d->module~user_module module~define_bc->module~wavenumber module~solvers->module~cslp_solver module~solvers->module~deflaion_setup module~solvers->module~operators module~user_module->module~cslp_solver module~user_module->module~deflaion_setup module~user_module->module~operators

Functions

public function my_mod1(na, nb)

A function to calculate the modulo of two integers na and nb

Arguments

Type IntentOptional Attributes Name
integer :: na
integer :: nb

Return Value integer


Subroutines

public subroutine part2d()

Partitions the 2D domain for parallel processing and calculates offsets and sizes for each partition the ID of partion along 2 directions -1 proc in x-direction +1 proc in x-direction if not periodic, 0 node donot send mesg to npx0-1 node if not periodic, npx0-1 node donot send mesg to 0 node

Arguments

None

public subroutine check_x2d(f)

Exchanges data in the x direction, ONLY for the default (finest) grid system

Arguments

Type IntentOptional Attributes Name
complex(kind=realdp) :: f(1-LAP:nx+LAP,1-LAP:ny+LAP)

public subroutine check_y2d(f)

Exchanges data in the y direction, ONLY for the default (finest) grid system no2

Arguments

Type IntentOptional Attributes Name
complex(kind=realdp) :: f(1-LAP:nx+LAP,1-LAP:ny+LAP)

public subroutine check_xy2d(f)

Exchanges data first in the x direction and then y direction, ONLY for the default (finest) grid system

Arguments

Type IntentOptional Attributes Name
complex(kind=realdp) :: f(1-LAP:nx+LAP,1-LAP:ny+LAP)

public subroutine mg_check_x2d(f, ni, nj)

Exchanges data in the x direction, for a specified-size grid system no2 no2

Arguments

Type IntentOptional Attributes Name
complex(kind=realdp) :: f(1-LAP:ni+LAP,1-LAP:nj+LAP)
integer, intent(in) :: ni
integer, intent(in) :: nj

public subroutine mg_check_y2d(f, ni, nj)

Exchanges data in the y direction, for a specified-size grid system no2 no2

Arguments

Type IntentOptional Attributes Name
complex(kind=realdp) :: f(1-LAP:ni+LAP,1-LAP:nj+LAP)
integer, intent(in) :: ni
integer, intent(in) :: nj

public subroutine mg_check_xy2d(f, ni, nj)

Exchanges data first in the x direction and then y direction, for a specified-size grid system

Arguments

Type IntentOptional Attributes Name
complex(kind=realdp) :: f(1-LAP:ni+LAP,1-LAP:nj+LAP)
integer, intent(in) :: ni
integer, intent(in) :: nj

public subroutine mg_checkreal_x2d(f, ni, nj)

Exchanges REAL data in the x direction, for a specified-size grid system no2 no2

Arguments

Type IntentOptional Attributes Name
real(kind=realdp) :: f(1-LAP:ni+LAP,1-LAP:nj+LAP)
integer, intent(in) :: ni
integer, intent(in) :: nj

public subroutine mg_checkreal_y2d(f, ni, nj)

Exchanges REAL data in the y direction, for a specified-size grid system no2 no2

Arguments

Type IntentOptional Attributes Name
real(kind=realdp) :: f(1-LAP:ni+LAP,1-LAP:nj+LAP)
integer, intent(in) :: ni
integer, intent(in) :: nj

public subroutine mg_checkreal_xy2d(f, ni, nj)

Exchanges REAL data first in the x direction and then y direction, for a specified-size grid system

Arguments

Type IntentOptional Attributes Name
real(kind=realdp) :: f(1-LAP:ni+LAP,1-LAP:nj+LAP)
integer, intent(in) :: ni
integer, intent(in) :: nj