module fd4_globaldef_mod
module fd4_vartab_mod
module fd4_block_mod
module fd4_comm_mod
module fd4_domain_mod
module fd4_neigh_mod
module fd4_mpitype_mod
module fd4_mpi_mod
module fd4_ghostlist_mod
module stack_mod
module mrgrnk_mod
Types:
public type fd4_ghostblock_types
public type fd4_ghostcomm
Variables:
integer (kind=i8k), public :: ghostcomm_total_size
Subroutines and functions:
public subroutine fd4_ghostcomm_create (gc, domain, nfields, idx, st, err, opt_exchdim)
public subroutine fd4_ghostcomm_delete (gc)
public subroutine fd4_ghostcomm_exch (gc, err)
Preprocessor options:
Author: Matthias Lieber
See also: module fd4_comm
public type fd4_ghostblock_types
integer, dimension (3,2) :: btypes
integer, dimension (3) :: gtypes
end type fd4_ghostblock_types
Components:| btypes | block types for comm. in (dim,dir) |
| gtypes | ghost block types for comm. in (dim) |
public type fd4_ghostcomm
type (fd4_domain), pointer :: domain => null ()
type (fd4_ghostblock_types), pointer, dimension (:,:,:) :: gbt
type (fd4_neigh), pointer, dimension (:) :: neigh
integer (kind=i8k) :: partition_id
logical, dimension (3) :: exchdim
end type fd4_ghostcomm
Components:| domain | the domain |
| gbt | (ghost) block types for each existing spatial block size |
| neigh | data associated with each neighbor MPI rank |
| partition_id | unique identifier of the current partition (counter) |
| exchdim | flag whether to exchange ghosts or not for each spatial dimension |
public subroutine fd4_ghostcomm_create (gc, domain, nfields, idx, st, err, opt_exchdim)
type (fd4_ghostcomm), intent(inout) :: gc
type (fd4_domain), intent(inout), target :: domain
integer (kind=i_k), intent(in) :: nfields
integer (kind=i_k), intent(in), dimension (nfields) :: idx
integer (kind=i_k), intent(in), dimension (nfields) :: st
integer (kind=i_k), intent(out) :: err
integer (kind=i_k), optional, intent(in), dimension (nfields) :: opt_exchdim
end subroutine fd4_ghostcomm_create
Parameters:| gc | the ghost communication description |
| domain | the domain |
| nfields | number of fields in idx and st |
| idx | variable indexes |
| st | time steps |
| err | error status: 0...ok |
| opt_exchdim | definition of spatial dimensions for ghost exchange for each variable |
The default value of opt_exchdim is to exchange all dimensions for all variables. Valid values for opt_exchdim are FD4_X, FD4_Y, FD4_Z, FD4_XY, FD4_XZ, FD4_YZ, and FD4_XYZ.
TODO:
public subroutine fd4_ghostcomm_delete (gc)
type (fd4_ghostcomm), intent(inout) :: gc
end subroutine fd4_ghostcomm_delete
Parameters:| gc | the ghost communication description |
public subroutine fd4_ghostcomm_exch (gc, err)
type (fd4_ghostcomm), intent(inout), target :: gc
integer (kind=i_k), intent(out) :: err
end subroutine fd4_ghostcomm_exch
Parameters:| gc | the ghost communication description |
| err | error status: 0...ok |