FMS  2024.03
Flexible Modeling System
ensemble_manager_mod

Routines for setting up and managing ensembles and ensemble pe lists. More...

Functions/Subroutines

subroutine, public ensemble_manager_init ()
 Initializes ensemble_manager_mod. More...
 
subroutine, public ensemble_pelist_setup (concurrent, atmos_npes, ocean_npes, land_npes, ice_npes, Atm_pelist, Ocean_pelist, Land_pelist, Ice_pelist)
 Sets up pe list for an ensemble. More...
 
subroutine, public get_ensemble_filter_pelist (pelist, name)
 Gets filter pelist for a given ensemble component. More...
 
integer function, public get_ensemble_id ()
 Getter function for ensemble_id. More...
 
subroutine, public get_ensemble_pelist (pelist, name)
 Gets pe list for current ensemble or a given ensemble component. More...
 
integer function, dimension(6), public get_ensemble_size ()
 Returns ensemble size integer array. More...
 

Variables

integer atmos_npes_pm =0
 
integer ensemble_id = 1
 
integer, dimension(:,:), allocatable ensemble_pelist
 
integer, dimension(:,:), allocatable ensemble_pelist_atmos
 
integer, dimension(:), allocatable ensemble_pelist_atmos_filter
 
integer, dimension(:,:), allocatable ensemble_pelist_ice
 
integer, dimension(:), allocatable ensemble_pelist_ice_filter
 
integer, dimension(:,:), allocatable ensemble_pelist_land
 
integer, dimension(:), allocatable ensemble_pelist_land_filter
 
integer, dimension(:,:), allocatable ensemble_pelist_ocean
 
integer, dimension(:), allocatable ensemble_pelist_ocean_filter
 
integer ensemble_size = 1
 
integer ice_npes_pm =0
 
integer land_npes_pm =0
 
integer ocean_npes_pm =0
 
integer pe
 
integer total_npes_pm =0
 

Detailed Description

Routines for setting up and managing ensembles and ensemble pe lists.

Function/Subroutine Documentation

◆ ensemble_manager_init()

subroutine, public ensemble_manager_mod::ensemble_manager_init

Initializes ensemble_manager_mod.

Exceptions
FATAL,ensemble_manager_mod: ensemble_nml variable ensemble_size must be a positive integer
FATAL,"ensemble_manager_modensemble_nml variable ensemble_size should be no larger than MAX_ENSEMBLE_SIZE, change ensemble_size or increase MAX_ENSEMBLE_SIZE" @throw FATAL, "ensemble_size must be divis by npes" @throw FATAL, "get_ensemble_pelist: size of pelist 1st index < ensemble_size" @throw FATAL, "get_ensemble_pelist: size of pelist 2nd index < ocean_npes_pm" @throw FATAL, "get_ensemble_pelist: size of pelist 2nd index < atmos_npes_pm" @throw FATAL, "get_ensemble_pelist: size of pelist 2nd index < land_npes_pm" @throw FATAL, "get_ensemble_pelist: size of pelist 2nd index < ice_npes_pm" @throw FATAL, "get_ensemble_pelist: unknown argument name=[name]" @throw FATAL, "get_ensemble_pelist: size of pelist 2nd index < total_npes_pm"

Definition at line 77 of file ensemble_manager.F90.

◆ ensemble_pelist_setup()

subroutine, public ensemble_manager_mod::ensemble_pelist_setup ( logical, intent(in)  concurrent,
integer, intent(in)  atmos_npes,
integer, intent(in)  ocean_npes,
integer, intent(in)  land_npes,
integer, intent(in)  ice_npes,
integer, dimension(:), intent(inout)  Atm_pelist,
integer, dimension(:), intent(inout)  Ocean_pelist,
integer, dimension(:), intent(inout)  Land_pelist,
integer, dimension(:), intent(inout)  Ice_pelist 
)

Sets up pe list for an ensemble.

Exceptions
FATAL,ensemble_manager_mod: land_npes > atmos_npes
FATAL,ensemble_manager_mod: ice_npes > atmos_npes

Definition at line 235 of file ensemble_manager.F90.

◆ get_ensemble_filter_pelist()

subroutine, public ensemble_manager_mod::get_ensemble_filter_pelist ( integer, dimension(:), intent(inout)  pelist,
character(len=*), intent(in)  name 
)

Gets filter pelist for a given ensemble component.

Exceptions
FATAL,get_ensemble_filter_pelist: size of pelist argument < ensemble_size * ocean_npes_pm
FATAL,get_ensemble_filter_pelist: size of pelist argument < ensemble_size * atmos_npes_pm
FATAL,get_ensemble_filter_pelist: size of pelist argument < ensemble_size * land_npes_pm
FATAL,get_ensemble_filter_pelist: size of pelist argument < ensemble_size * ice_npes_pm
FATAL,get_ensemble_filter_pelist: unknown argument name=[name]
Parameters
[in,out]pelistReturned filter pe list
[in]nameEnsemble component name

Definition at line 187 of file ensemble_manager.F90.

◆ get_ensemble_id()

integer function, public ensemble_manager_mod::get_ensemble_id

Getter function for ensemble_id.

Returns
integer of ensemble id

Definition at line 107 of file ensemble_manager.F90.

◆ get_ensemble_pelist()

subroutine, public ensemble_manager_mod::get_ensemble_pelist ( integer, dimension(:,:), intent(inout)  pelist,
character(len=*), intent(in), optional  name 
)

Gets pe list for current ensemble or a given ensemble component.

Parameters
[in,out]pelistEnsemble pelist
[in]nameComponent name.

Definition at line 128 of file ensemble_manager.F90.

◆ get_ensemble_size()

integer function, dimension(6), public ensemble_manager_mod::get_ensemble_size

Returns ensemble size integer array.

Returns
integer array of sizes

Definition at line 114 of file ensemble_manager.F90.