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

Go to the source code of this file.

Data Types

type  iobridge_mod::io_server_sendable_field_sizing
 
type  iobridge_mod::io_configuration_field_type
 
type  iobridge_mod::io_configuration_data_definition_type
 

Modules

module  iobridge_mod
 Bridge between MONC and the IO server, this registers the current MONC process, will issue data dumps and deregister MONCs when the model run is completed.
 

Functions/Subroutines

type(component_descriptor_type) function, public iobridge_mod::iobridge_get_descriptor ()
 
subroutine iobridge_mod::init_callback (current_state)
 Initialisation call back, called at the start of the model run. More...
 
subroutine iobridge_mod::timestep_callback (current_state)
 Model dump call back, called for each model dump phase. More...
 
subroutine iobridge_mod::send_data_to_io_server (current_state, data_index)
 Sends data to the IO server. More...
 
subroutine iobridge_mod::finalisation_callback (current_state)
 Finalisation call back, called at the end of the model run. More...
 
subroutine iobridge_mod::build_mpi_data_types ()
 Builds the MPI data types that correspond to the field descriptions and sizings. More...
 
integer function iobridge_mod::build_mpi_data_type_for_definition (specific_data_definition)
 Builds the MPI data type for a specific definition with sizing information. More...
 
subroutine iobridge_mod::populate_sendable_fields (current_state)
 Populates the sendable field definitions with the field sizing information. More...
 
subroutine iobridge_mod::populate_component_public_field (current_state, field_name)
 Populates the field information for a specific publically available field offered by one of the components. More...
 
subroutine iobridge_mod::populate_globally_visible_sendable_fields (current_state)
 Populates the globally visible sendable fields which is a key value pair mapping between name and description of that field. More...
 
class(*) function, pointer iobridge_mod::generate_sendable_description (dim1, dim2, dim3, dim4)
 Generates a sendable description based upon the dimension information supplied, missing arguments means that dimension does not exist. More...
 
subroutine iobridge_mod::send_monc_specific_data_to_server (current_state, mpi_type_data_sizing_description)
 Sends this MONC specific information to the IO server, which is field info (sizing & availability) as well as meta data such as ZN field and Q field names. More...
 
integer function iobridge_mod::send_data_field_sizes_to_server (current_state, mpi_type_data_sizing_description, data_description, number_unique_fields)
 Assembles all the data field sizing information and sends this to the IO server. More...
 
integer function iobridge_mod::send_general_monc_information_to_server (current_state, buffer)
 Sends the general MONC information (ZN field and Q field names) to the IO server. More...
 
subroutine iobridge_mod::package_local_monc_decomposition_into_descriptions (current_state, data_description)
 Packages the local MONC decomposition information into descriptions for communication. More...
 
type(io_server_sendable_field_sizing) function iobridge_mod::get_sendable_field_sizing (field_name, field_found)
 Retrieves the sizing information associated with a specific field. More...
 
type(component_field_information_type) function iobridge_mod::get_component_field_descriptor (field_name)
 Retrieves the descriptor associated with some component's field based upon the field name. More...
 
subroutine iobridge_mod::assemble_individual_description (data_description, index, field_name, field_sizing_description)
 Will assemble an individual description of an array data field. More...
 
subroutine iobridge_mod::register_with_io_server (current_state, mpi_type_definition_description, mpi_type_field_description)
 Registers this MONC with the corresponding IO server. This will encapsulate the entire protocol, which is sending the registration command, receiving the data and field definitions from the IO server and then sending back the sizing for the fields that this MONC will contribute. More...
 
integer function iobridge_mod::get_total_number_of_fields (definition_descriptions, number_defns)
 Retrieve the total number of fields, which is all the fields in all the data definitions. More...
 
subroutine iobridge_mod::populate_data_definition_configuration (definition_descriptions, number_defns, field_descriptions, number_fields)
 Based upon the received data and field definitions this will configure the IO bridge internal representation of these facets, which is a structured tree, data defintions holding their own fields rather than the unstructured data we get from the IO server. More...
 
integer function iobridge_mod::get_definition_index (name)
 Looks up a specific definition based upon its name and returns the index. More...
 
subroutine iobridge_mod::pack_send_buffer (current_state, data_definition)
 Packs the current state into the send buffer. This iterates through each field in the data description and adds it to the send buffer. More...
 
integer function iobridge_mod::pack_scalar_into_send_buffer (current_state, data_definition, field, current_buffer_point)
 Packs scalar fields into the send bufer. More...
 
integer function iobridge_mod::handle_component_field_scalar_packing_into_send_buffer (current_state, data_definition, field, current_buffer_point)
 Packs a components field scalar into the send buffer, these are fields that are served up by components rather than explicitly available. More...
 
integer function iobridge_mod::pack_map_into_send_buffer (current_state, data_definition, field, current_buffer_point)
 Packs map fields into the send buffer. More...
 
integer function iobridge_mod::pack_array_into_send_buffer (current_state, data_definition, field, current_buffer_point)
 Packs array fields into the send bufer. More...
 
integer function iobridge_mod::handle_component_field_array_packing_into_send_buffer (current_state, data_definition, field, current_buffer_point)
 Packs a components field array into the send buffer, these are fields that are served up by components rather than explicitly available. More...
 
integer function iobridge_mod::pack_prognostic_flow_field (buffer, prognostic, start_offset, local_grid)
 Packs the data of a specific prognostic field into a buffer. More...
 
integer function iobridge_mod::pack_q_fields (buffer, q_fields, number_q_fields, start_offset, local_grid)
 Packs the Q fields into the send buffer. More...
 

Variables

type(io_configuration_data_definition_type), dimension(:), allocatable iobridge_mod::data_definitions
 
type(map_type) iobridge_mod::unique_field_names
 
type(map_type) iobridge_mod::sendable_fields
 
type(map_type) iobridge_mod::component_field_descriptions
 
logical iobridge_mod::io_server_enabled
 
logical iobridge_mod::in_finalisation_callback