MONC
Data Types | Modules | Functions/Subroutines | Variables
registry.F90 File Reference

Go to the source code of this file.

Data Types

type  registry_mod::pointer_wrapper_type
 Private helper type which wraps a procedure pointer. This is needed for storage in our collections_mod and allows us to associate additional information, such as number of times called, performance etc in future if we wanted to. More...
 
type  registry_mod::group_descriptor_type
 Descriptor of a group. More...
 

Modules

module  registry_mod
 MONC component registry.
 

Functions/Subroutines

subroutine, public registry_mod::init_registry (options_database)
 Initialises the registry with the provided configuration file. More...
 
subroutine, public registry_mod::free_registry ()
 Will deregister all components and free up the registry data structures. This can either be called at the end of execution to clean memory up or used to clear the registry. More...
 
subroutine, public registry_mod::register_component (options_database, descriptor)
 Will register a component and install the nescesary callback hooks. More...
 
logical function, public registry_mod::is_component_field_available (name)
 Determines whether a specific published field is available or not. More...
 
type(component_field_value_type) function, public registry_mod::get_component_field_value (current_state, name)
 Retrieves the value wrapper of a components published field. More...
 
type(component_field_information_type) function, public registry_mod::get_component_field_information (current_state, name)
 Retrieves information about a components published field which includes its type and size. More...
 
type(list_type) function, public registry_mod::get_all_component_published_fields ()
 Retrieves all of the published field information. More...
 
subroutine registry_mod::load_published_fields (descriptor)
 Loads the published fields information for an entire component into the registry's definition list. More...
 
subroutine, public registry_mod::deregister_component (name)
 Will deregister a component, remove all callback hooks and free registry specific memory allocated to the component. More...
 
type(component_descriptor_type) function, pointer, public registry_mod::get_component_info (name)
 Retrieves detailed information about a specific component. More...
 
type(map_type) function, public registry_mod::get_all_registered_components ()
 Returns a brief summary of all registered components. More...
 
subroutine, public registry_mod::execute_initialisation_callbacks (current_state)
 Calls all initialisation callbacks with the specified state. More...
 
subroutine, public registry_mod::execute_timestep_callbacks (current_state, group_id)
 Calls all timestep callbacks with the specified state. More...
 
subroutine, public registry_mod::execute_finalisation_callbacks (current_state)
 Calls all finalisation callbacks with the specified state. More...
 
subroutine, public registry_mod::order_all_callbacks ()
 Orders all callbacks in the prospective stages based upon the priorities of each descriptor. More...
 
type(map_type) function registry_mod::order_grouped_timstep_callbacks (group_id)
 
logical function, public registry_mod::is_component_enabled (options_database, component_name)
 Determines whether or not a specific component is registered and enabled. More...
 
subroutine, public registry_mod::display_callbacks_in_order_at_each_stage ()
 Displays the registered callbacks of each stage in the order that they will be called. More...
 
subroutine, public registry_mod::get_ordered_groups (ordered_groups)
 Orders all the groups (in the order that they will be called in) and returns an array with these in order. This is useful for prefetching the groups in order so that per timestep we can just iterate through the array which is O(n) More...
 
integer function registry_mod::get_group_id (group_name)
 Given a group name this returns the id (i.e. order) of that group. More...
 
type(group_descriptor_type) function registry_mod::get_group_descriptor_from_name (group_name)
 Given a group name this returns the group descriptor corresponding to that or an error if none is found. More...
 
type(group_descriptor_type) function registry_mod::get_group_descriptor_from_id (group_id)
 Given the id of a group this will return the corresponding descriptor. More...
 
subroutine registry_mod::display_callbacks_in_order (stage_callbacks, stagetitle)
 Displays the registered callbacks of a specific stage in the order that they will be called. More...
 
subroutine registry_mod::read_initialisation_and_finalisation_orders (options_database)
 
subroutine registry_mod::read_specific_orders (options_database, key, data_structure)
 
subroutine registry_mod::read_group_configurations (options_database)
 
subroutine registry_mod::remove_descriptor (descriptor)
 Will remove a specific descriptor from the registry table and uninstall the corresponding callback hooks for each state. More...
 
subroutine registry_mod::unload_callback_hooks (descriptor, group_name)
 Will unload the callback hooks that have been installed for each state. More...
 
subroutine registry_mod::load_callback_hooks (descriptor, group_name)
 Will install the callback hooks for each state. More...
 
subroutine registry_mod::rebalance_callbacks (callbacks, priorities, stage_name)
 
integer function registry_mod::get_highest_callback_priority (callbacks, priorities)
 
subroutine registry_mod::execute_callbacks (callback_map, current_state)
 Will execute the appropriate callbacks in a specific map_type given the current state. More...
 
subroutine registry_mod::add_callback (callback_map, name, procedure_pointer)
 Will install a specific callback hook into the specified map_type of existing hooks. More...
 

Variables

integer, parameter, public registry_mod::group_type_whole =0
 Execute the callbacks in this group once per timestep. More...
 
integer, parameter, public registry_mod::group_type_column =1
 Execute the callbacks in this group for each column per timestep. More...
 
type(list_type), save registry_mod::field_information
 
integer, dimension(:), allocatable registry_mod::group_types
 Group types. More...
 
character(len=string_length), dimension(:), allocatable registry_mod::enabled_component_input_keys
 Temporary read array of component enable names. More...
 
character(len=string_length), dimension(:), allocatable registry_mod::group_locations
 Provides an id to each group. More...
 
type(map_type), save registry_mod::init_callbacks
 Callback hooks for the initialisation stage. More...
 
type(map_type), save registry_mod::finalisation_callbacks
 Callback hooks for the finalisation stage. More...
 
type(map_type), save registry_mod::component_descriptions
 Copies of component descriptors. More...
 
type(map_type), save registry_mod::group_descriptors
 Group descriptors for each group, name->descriptor. More...
 
type(map_type), save registry_mod::component_groups
 
type(map_type), save registry_mod::init_orderings
 
type(map_type), save registry_mod::finalisation_orderings
 
type(hashmap_type), save registry_mod::field_procedure_retrievals
 
type(hashmap_type), save registry_mod::field_procedure_sizings
 
type(map_type), dimension(:), allocatable registry_mod::timestep_callbacks
 Callback hooks for the timestep stage. More...