ORB5  4.00
Loading...
Searching...
No Matches
parmove.F90 File Reference
#include "precomp.h"
#include "parmove_exec.inc"
Include dependency graph for parmove.F90:

Data Types

interface  parmove_mod::exec

Modules

module  parmove_mod
 Routines for moving markers across parallel subdomains.

Macros

#define sbuf   sbuf_r
#define rbuf   rbuf_r
#define natts_max   natts_max_r8
#define MPI_TYPE   MPI_DOUBLE_PRECISION
#define sbuf   sbuf_l
#define rbuf   rbuf_l
#define natts_max   natts_max_l
#define MPI_TYPE   MPI_LOGICAL
#define sbuf   sbuf_i8
#define rbuf   rbuf_i8
#define natts_max   natts_max_i8
#define MPI_TYPE   MPI_INTEGER8
#define sbuf   sbuf_r4
#define rbuf   rbuf_r4
#define natts_max   natts_max_r4
#define MPI_TYPE   MPI_REAL4

Functions/Subroutines

subroutine, public parmove_mod::init_module (ld_, nsd_, me_sd_, comm_sd_, natts_max_, nspecies, nsubstep, p_nthreads_, natts_max_l_, natts_max_i8_, natts_max_r4_)
 Initialize module variables.
subroutine, public parmove_mod::init (pos, np, np_new, npmax, run_on_device)
 Prepare the communications (who will send what where).
subroutine parmove_mod::exec_real (arr, natts, npmax, np, run_on_device)
 Perform the communications of marker real attributes accross subdomains.
subroutine parmove_mod::exec_logical (arr, natts, npmax, np, run_on_device)
 Perform the communications of marker logical attributes accross subdomains.
subroutine parmove_mod::exec_integer8 (arr, natts, npmax, np, run_on_device)
 Perform the communications of marker i8 attributes accross subdomains.
subroutine parmove_mod::exec_real4 (arr, natts, npmax, np, run_on_device)
 Perform the communications of marker r4 attributes accross subdomains.
subroutine, public parmove_mod::diag (iter, isp)
 Store some diagnostics about last parmove operation.

Variables

integer, save parmove_mod::nsd
 Number of subdomains.
real(kind=r8), save parmove_mod::lsd_inv
 Inverse of subdomain length.
integer, save parmove_mod::me_sd
 Subdomain MPI rank.
type(mpi_comm), save parmove_mod::comm_sd
 Subdomain communicator.
integer, dimension(:), allocatable, save parmove_mod::scount
 Number of markers leaving towards subdomain i.
integer, save parmove_mod::stot
 Total number of leaving markers.
integer, dimension(:), allocatable, save parmove_mod::sdispl
 Offset in iphole to access markers going to subdomain i.
integer, dimension(:), allocatable, save parmove_mod::iphole
 List of holes indices, sorted by destination subdomain.
integer, dimension(:), allocatable, save parmove_mod::rcount
 Number of markers incoming from subdomain i.
integer, save parmove_mod::rtot
 Total number of incoming markers.
integer, dimension(:), allocatable, save parmove_mod::rdispl
 Offset in iprecv to access markers coming from subdomain i.
real(kind=r8), dimension(:), allocatable, save parmove_mod::sbuf_r
 MPI send buffer for real attributes.
real(kind=r8), dimension(:), allocatable, save parmove_mod::rbuf_r
 MPI receive buffer for real attributes.
logical, dimension(:), allocatable, save parmove_mod::sbuf_l
 MPI send buffer for logical attributes.
logical, dimension(:), allocatable, save parmove_mod::rbuf_l
 MPI receive buffer for logical attributes.
integer(kind=i8), dimension(:), allocatable, save parmove_mod::sbuf_i8
 MPI send buffer for integer8 attributes.
integer(kind=i8), dimension(:), allocatable, save parmove_mod::rbuf_i8
 MPI receive buffer for integer8 attributes.
integer(kind=r4), dimension(:), allocatable, save parmove_mod::sbuf_r4
 MPI send buffer for real4 attributes.
integer(kind=r4), dimension(:), allocatable, save parmove_mod::rbuf_r4
 MPI receive buffer for real4 attributes.
integer, save parmove_mod::salloc
 Allocated size of send buffers.
integer, save parmove_mod::ralloc
 Allocated size of receive buffers.
integer, save parmove_mod::natts_max_r8
 Maximal number of r8 attributes that will be moved at a time.
integer, save parmove_mod::natts_max_l
 Maximal number of logical attributes that will be moved at a time.
integer, save parmove_mod::natts_max_i8
 Maximal number of i8 attributes that will be moved at a time.
integer, save parmove_mod::natts_max_r4
 Maximal number of r4 attributes that will be moved at a time.
integer, dimension(:,:), allocatable, save parmove_mod::cursor
 Current index in subdomains for each OpenMP thread.
integer, save parmove_mod::nbf
 Number of backfill operations.
integer, dimension(:), allocatable, save parmove_mod::obf
 Backfill origin indices (tail).
integer, dimension(:), allocatable, save parmove_mod::tbf
 Backfill target indices (remaining holes).
integer, save parmove_mod::p_nthreads
 Number of OpenMP threads.
integer, dimension(:,:), allocatable, save parmove_mod::scount_threads
 scount decomposed in OpenMP threads
integer, dimension(:,:), allocatable, save, public parmove_mod::np_leaving
 Number of markers leaving the subdomain.
integer, dimension(:,:), allocatable, save, public parmove_mod::ndest
 Number of destinations.

Macro Definition Documentation

◆ MPI_TYPE [1/4]

#define MPI_TYPE   MPI_REAL4

◆ MPI_TYPE [2/4]

#define MPI_TYPE   MPI_INTEGER8

◆ MPI_TYPE [3/4]

#define MPI_TYPE   MPI_LOGICAL

◆ MPI_TYPE [4/4]

#define MPI_TYPE   MPI_DOUBLE_PRECISION

◆ natts_max [1/4]

#define natts_max   natts_max_r4

◆ natts_max [2/4]

#define natts_max   natts_max_i8

◆ natts_max [3/4]

#define natts_max   natts_max_l

◆ natts_max [4/4]

#define natts_max   natts_max_r8

◆ rbuf [1/4]

#define rbuf   rbuf_r4

◆ rbuf [2/4]

#define rbuf   rbuf_i8

◆ rbuf [3/4]

#define rbuf   rbuf_l

◆ rbuf [4/4]

#define rbuf   rbuf_r

◆ sbuf [1/4]

#define sbuf   sbuf_r4

◆ sbuf [2/4]

#define sbuf   sbuf_i8

◆ sbuf [3/4]

#define sbuf   sbuf_l

◆ sbuf [4/4]

#define sbuf   sbuf_r