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

Go to the source code of this file.

Data Types

interface  monc_mod::io_server_run_procedure
 IO server entry procedure which may be passed to the core entry point (if IO server is enabled) More...
 

Modules

module  monc_mod
 Main core entry point to the rest of the model, this is called by the program main.
 

Functions/Subroutines

subroutine, public monc_mod::monc_core_bootstrap (component_descriptions, io_server_run)
 Main core entry point to bootstrap running the model. More...
 
logical function monc_mod::determine_if_io_server_enabled (options_database)
 Determines whether the IO server should be enabled or not. More...
 
subroutine monc_mod::load_model_configuration (state, options_database)
 Loads the configuration into the options database, either from a file or checkpoint. More...
 
subroutine monc_mod::perform_options_compatibility_checks (options_database)
 Performs options_database compatibility checks. More...
 
subroutine monc_mod::monc_run (component_descriptions, state)
 Called by MONC processes to run the MONC model. More...
 
subroutine monc_mod::perform_model_steps (state, timestepping_time, modeldump_time)
 Will run through the actual model stages and call the appropriate callbacks at each stage. More...
 
subroutine monc_mod::display_timestep_information (timestep, start_time)
 Provides timestepping information about the current step and performance. More...
 
subroutine monc_mod::fill_registry_with_components (options_database, component_descriptions)
 Registers each supplied component description. More...
 
logical function monc_mod::is_present_and_true (options_database, key)
 Determines whether an option is present in the database and true. This combines the key check and getting the value. Just calling to get the value directly will error if it does not exist, we don't nescesarily want for checking optional command line flags. More...
 
subroutine monc_mod::display_registed_components ()
 Displays the registered components and their version numbers. More...
 
subroutine monc_mod::split_communicator_into_monc_and_io (moncs_per_io, monc_communicator, io_communicator, am_i_monc_process, corresponding_io_server_process)
 Splits the MPI_COMM_WORLD communicator into MONC and IO separate communicators. The size of each depends on the stride supplied. This will deal with the case where you only have 1 extra process, for instance 3 MONCs to an IO server with 5 processes. 0=IO server, 1-3 are MONCS but by rights 4 would be an IO server. However we dont want to waste a process as an IO server which is not serving anything, hence in this edge case it will be used as a MONC instead. More...
 
integer function monc_mod::get_number_io_processes (total_ranks, moncs_per_io)
 Based upon the total number of processes and the IO process id stride determines the number of processes that will be used for the IO server. The MONC processes is total processes - io processes. More...
 
subroutine monc_mod::get_io_configuration (options_database, ioserver_configuration_file, moncs_per_io_server)
 Reads the IO server configuration and populates the required variables of the configuration file name and the placement period. More...
 
integer function monc_mod::get_mpi_threading_mode ()
 Retrives the configured MPI threading mode, this is serialized by default but can be overridden via environment variable. More...
 
character(len=string_length) function monc_mod::mpi_threading_level_to_string (lvl)
 Converts an MPI threading level to the string representation of it. More...