FMS 2025.01-dev
Flexible Modeling System
Loading...
Searching...
No Matches
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.
 
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.
 

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 48 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
 

Member Data Documentation

◆ blkno

integer, dimension(:,:), allocatable blkno

dereference block number using global indices

Definition at line 61 of file block_control.F90.

◆ blksz

integer, dimension(:), allocatable blksz

number of points in each individual block blocks are not required to be uniforom in size

Definition at line 59 of file block_control.F90.

◆ ibe

integer, dimension(:), allocatable ibe

Definition at line 53 of file block_control.F90.

◆ ibs

integer, dimension(:), allocatable ibs

block extents for mpp-style

Definition at line 53 of file block_control.F90.

◆ iec

integer iec

Definition at line 51 of file block_control.F90.

◆ index

type(pk_type), dimension(:), allocatable index

dereference global indices from block/ixp combo

Definition at line 64 of file block_control.F90.

◆ isc

integer isc

Definition at line 51 of file block_control.F90.

◆ ix

type(ix_type), dimension(:), allocatable ix

dereference packed index from global index

Definition at line 57 of file block_control.F90.

◆ ixp

integer, dimension(:,:), allocatable ixp

dereference packed index from global indices must be used in conjuction with blkno

Definition at line 62 of file block_control.F90.

◆ jbe

integer, dimension(:), allocatable jbe

Definition at line 53 of file block_control.F90.

◆ jbs

integer, dimension(:), allocatable jbs

Definition at line 53 of file block_control.F90.

◆ jec

integer jec

MPI domain global extents.

Definition at line 51 of file block_control.F90.

◆ jsc

integer jsc

Definition at line 51 of file block_control.F90.

◆ nblks

integer nblks

number of blocks cover MPI domain

Definition at line 50 of file block_control.F90.

◆ npz

integer npz

vertical extent

Definition at line 52 of file block_control.F90.

◆ nx_block

integer nx_block

Definition at line 49 of file block_control.F90.

◆ ny_block

integer ny_block

blocking factor using mpp-style decomposition

Definition at line 49 of file block_control.F90.

◆ block_control_mod::ix_type

type block_control_mod::ix_type

Type to dereference packed index from global index.

Definition at line 35 of file block_control.F90.

Collaboration diagram for ix_type:
[legend]

Public Attributes

integer, dimension(:,:), allocatable ix
 

Member Data Documentation

◆ ix

integer, dimension(:,:), allocatable ix

Definition at line 36 of file block_control.F90.

◆ block_control_mod::pk_type

type block_control_mod::pk_type

Type to dereference packed index from global indices.

Definition at line 41 of file block_control.F90.

Collaboration diagram for pk_type:
[legend]

Public Attributes

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

Member Data Documentation

◆ ii

integer, dimension(:), allocatable ii

Definition at line 42 of file block_control.F90.

◆ jj

integer, dimension(:), allocatable jj

Definition at line 43 of file block_control.F90.

Function/Subroutine Documentation

◆ define_blocks()

subroutine, public 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 79 of file block_control.F90.

◆ define_blocks_packed()

subroutine, public 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 178 of file block_control.F90.