FMS  2024.03
Flexible Modeling System
block_control_mod

Routines for "blocks" used for OpenMP threading of column-based calculations. More...

Data Types

type  block_control_type
 Block data and extents for OpenMP threading of column-based calculations. More...
 
type  ix_type
 Type to dereference packed index from global index. More...
 
type  pk_type
 Type to dereference packed index from global indices. More...
 

Functions/Subroutines

subroutine, public define_blocks (component, Block, isc, iec, jsc, jec, kpts, nx_block, ny_block, message)
 Sets up "blocks" used for OpenMP threading of column-based calculations using rad_n[x/y]xblock from coupler_nml. More...
 
subroutine, public define_blocks_packed (component, Block, isc, iec, jsc, jec, kpts, blksz, message)
 Creates and populates a data type which is used for defining the sub-blocks of the MPI-domain to enhance OpenMP and memory performance. Uses a packed concept. More...
 

Detailed Description

Routines for "blocks" used for OpenMP threading of column-based calculations.


Data Type Documentation

◆ block_control_mod::block_control_type

type block_control_mod::block_control_type

Block data and extents for OpenMP threading of column-based calculations.

Definition at line 47 of file block_control.F90.

Collaboration diagram for block_control_type:
[legend]

Public Attributes

integer, dimension(:,:), allocatable blkno
 dereference block number using global indices
 
integer, dimension(:), allocatable blksz
 number of points in each individual block blocks are not required to be uniforom in size
 
integer, dimension(:), allocatable ibe
 
integer, dimension(:), allocatable ibs
 block extents for mpp-style
 
integer iec
 
type(pk_type), dimension(:), allocatable index
 dereference global indices from block/ixp combo
 
integer isc
 
type(ix_type), dimension(:), allocatable ix
 dereference packed index from global index
 
integer, dimension(:,:), allocatable ixp
 dereference packed index from global indices must be used in conjuction with blkno
 
integer, dimension(:), allocatable jbe
 
integer, dimension(:), allocatable jbs
 
integer jec
 MPI domain global extents.
 
integer jsc
 
integer nblks
 number of blocks cover MPI domain
 
integer npz
 vertical extent
 
integer nx_block
 
integer ny_block
 blocking factor using mpp-style decomposition
 

◆ block_control_mod::ix_type

type block_control_mod::ix_type

Type to dereference packed index from global index.

Definition at line 34 of file block_control.F90.

Collaboration diagram for ix_type:
[legend]

Public Attributes

integer, dimension(:,:), allocatable ix
 

◆ block_control_mod::pk_type

type block_control_mod::pk_type

Type to dereference packed index from global indices.

Definition at line 40 of file block_control.F90.

Collaboration diagram for pk_type:
[legend]

Public Attributes

integer, dimension(:), allocatable ii
 
integer, dimension(:), allocatable jj
 

Function/Subroutine Documentation

◆ define_blocks()

subroutine, public block_control_mod::define_blocks ( character(len=*), intent(in)  component,
type(block_control_type), intent(inout)  Block,
integer, intent(in)  isc,
integer, intent(in)  iec,
integer, intent(in)  jsc,
integer, intent(in)  jec,
integer, intent(in)  kpts,
integer, intent(in)  nx_block,
integer, intent(in)  ny_block,
logical, intent(inout)  message 
)

Sets up "blocks" used for OpenMP threading of column-based calculations using rad_n[x/y]xblock from coupler_nml.

Parameters
[in]componentComponent name string
[in,out]blockReturns instantiated block_control_type
[in,out]messageflag for outputting debug message

Definition at line 78 of file block_control.F90.

◆ define_blocks_packed()

subroutine, public block_control_mod::define_blocks_packed ( character(len=*), intent(in)  component,
type(block_control_type), intent(inout)  Block,
integer, intent(in)  isc,
integer, intent(in)  iec,
integer, intent(in)  jsc,
integer, intent(in)  jec,
integer, intent(in)  kpts,
integer, intent(inout)  blksz,
logical, intent(inout)  message 
)

Creates and populates a data type which is used for defining the sub-blocks of the MPI-domain to enhance OpenMP and memory performance. Uses a packed concept.

Parameters
[in]componentComponent name string
[in,out]blockReturns instantiated block_control_type
[in,out]blkszblock size
[in,out]messageflag for outputting debug message

Definition at line 173 of file block_control.F90.