Module fd4_mdsd_mod


Uses:
    module fd4_globaldef_mod
    module fd4_mpi_mod
    module stack3_mod
Types:
    public type fd4_mdsd
Variables:
    integer, public, parameter :: FD4_MD_MAX_PART = 8
    integer, private, parameter :: MDSD_DESC_RANK = 1
    integer, private, parameter :: MDSD_DESC_VAR = 2
    integer, private, parameter :: MDSD_DESC_ABND = 4
Subroutines and functions:
    public subroutine fd4_mdsd_free (mdsd)
    private subroutine fd4_mdsd_serialize (mdsd)
    private subroutine fd4_mdsd_unserialize (mdsd)

A subdomain of meta data for coupling.

Author: Matthias Lieber


Description of Types

fd4_mdsd

public type fd4_mdsd
    type (stack3), dimension (FD4_MD_MAX_PART) :: desc_rank
    type (stack3), dimension (FD4_MD_MAX_PART) :: desc_abnd
end type fd4_mdsd
Components:
desc_rank rank, start and end index in desc_var (one stack3 entry)
desc_abnd abnd (two stack3 entries) of a couple array
Type for a single meta data subdomain.

A meta data subdomain is a rectangular subsection of the block decomposition and contains all metadata that is located or begins within this subdomain.


Description of Subroutines and Functions

fd4_mdsd_free

public subroutine fd4_mdsd_free (mdsd)
    type (fd4_mdsd), pointer :: mdsd
end subroutine fd4_mdsd_free

fd4_mdsd_serialize

private subroutine fd4_mdsd_serialize (mdsd)
    type (fd4_mdsd), pointer :: mdsd
end subroutine fd4_mdsd_serialize
Serialize all stack3s of the mdsd so that they together use one single array.

CAUTION: Do not call any of the stack3s subroutines for the stacks of a serialized mdsd.


fd4_mdsd_unserialize

private subroutine fd4_mdsd_unserialize (mdsd)
    type (fd4_mdsd), pointer :: mdsd
end subroutine fd4_mdsd_unserialize
Unserialize all stack3s of the mdsd