ORB5  v4.9.4
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. More...
 
subroutine, public parmove_mod::init (pos, np, np_new, npmax, run_on_device)
 Prepare the communications (who will send what where) More...
 
subroutine parmove_mod::exec_real (arr, natts, npmax, np, run_on_device)
 Perform the communications of marker real attributes accross subdomains. More...
 
subroutine parmove_mod::exec_logical (arr, natts, npmax, np, run_on_device)
 Perform the communications of marker logical attributes accross subdomains. More...
 
subroutine parmove_mod::exec_integer8 (arr, natts, npmax, np, run_on_device)
 Perform the communications of marker i8 attributes accross subdomains. More...
 
subroutine parmove_mod::exec_real4 (arr, natts, npmax, np, run_on_device)
 Perform the communications of marker r4 attributes accross subdomains. More...
 
subroutine, public parmove_mod::diag (iter, isp)
 Store some diagnostics about last parmove operation. More...
 

Variables

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

Macro Definition Documentation

◆ MPI_TYPE [1/4]

#define MPI_TYPE   MPI_DOUBLE_PRECISION

◆ MPI_TYPE [2/4]

#define MPI_TYPE   MPI_LOGICAL

◆ MPI_TYPE [3/4]

#define MPI_TYPE   MPI_INTEGER8

◆ MPI_TYPE [4/4]

#define MPI_TYPE   MPI_REAL4

◆ natts_max [1/4]

#define natts_max   natts_max_r8

◆ natts_max [2/4]

#define natts_max   natts_max_l

◆ natts_max [3/4]

#define natts_max   natts_max_i8

◆ natts_max [4/4]

#define natts_max   natts_max_r4

◆ rbuf [1/4]

#define rbuf   rbuf_r

◆ rbuf [2/4]

#define rbuf   rbuf_l

◆ rbuf [3/4]

#define rbuf   rbuf_i8

◆ rbuf [4/4]

#define rbuf   rbuf_r4

◆ sbuf [1/4]

#define sbuf   sbuf_r

◆ sbuf [2/4]

#define sbuf   sbuf_l

◆ sbuf [3/4]

#define sbuf   sbuf_i8

◆ sbuf [4/4]

#define sbuf   sbuf_r4