MONC
|
Parses the XML configuration file to produce the io configuration description which contains the data layout specification and rules for handling received data. More...
Data Types | |
type | data_values_type |
interface | get_data_value_by_field_name |
type | io_configuration_data_definition_type |
Configuration of a specific data definition. More... | |
type | io_configuration_diagnostic_field_type |
type | io_configuration_field_type |
Configuration associated with the representation of a specific data field. More... | |
type | io_configuration_file_writer_facet_type |
type | io_configuration_file_writer_type |
type | io_configuration_group_type |
type | io_configuration_inter_communication_description |
type | io_configuration_misc_item_type |
type | io_configuration_registered_monc_type |
Configuration that representes the state of a registered MONC process. More... | |
type | io_configuration_type |
Overall IO configuration. More... | |
Functions/Subroutines | |
recursive character function, dimension(:), allocatable, public | get_io_xml (filename, funit_num) |
Reads in textual data from a file and returns this, used to read the IO server XML configuration file. Returned is a character array of exactly the correct size filled with all the configuration. More... | |
subroutine, public | configuration_parse (provided_options_database, raw_configuration, parsed_configuration) |
This will parse an XML string into the IO configuration. More... | |
subroutine | add_in_dimensions (provided_options_database) |
subroutine | start_element_callback (element_name, number_of_attributes, attribute_names, attribute_values) |
XML element start (opening) call back. This handles most of the configuration parsing. More... | |
subroutine | end_element_callback (element_name) |
XML element end (closing) call back. More... | |
subroutine | handle_thread_pool_configuration (attribute_names, attribute_values) |
subroutine | handle_new_data_definition (attribute_names, attribute_values) |
Creates a new data definition configuration item based upon the attributes supplied. More... | |
subroutine | add_misc_member_to_diagnostic (element_name, attribute_names, attribute_values) |
subroutine | add_diagnostic_field_to_group (element_name, attribute_names, attribute_values) |
subroutine | define_group (attribute_names, attribute_values) |
subroutine | add_include_to_file_writer (attribute_names, attribute_values) |
subroutine | add_include_group_or_field_to_file_writer (attribute_names, attribute_values, number_of_contents) |
subroutine | define_file_writer (attribute_names, attribute_values) |
subroutine | define_diagnostic (attribute_names, attribute_values) |
Defines a new data handling rule. More... | |
integer function | process_sizing_definition (size_definitions, individual_str_defn) |
subroutine | process_xml_into_field_description (attribute_names, attribute_values) |
Process XML into a field description by identifying the attributes of the field and storing these in a refined configuration format. More... | |
integer function | get_field_type_from_attribute (field_type_str) |
integer function | get_field_datatype_from_attribute (field_data_type_str) |
subroutine | replace_characters_in_string (original_string, new_string, to_replace) |
Replaces specific characters in a string and returns a new string with this replaced by nothing (i.e. removed) More... | |
character(len=string_length) function | retrieve_string_value (original_string, field_value_type) |
integer function | get_field_index_from_name (attribute_names, search_name) |
Given the name of an attribute will return the index of this in the names collection or 0 if it is not found. More... | |
subroutine, public | extend_inter_io_comm_array (io_configuration) |
Extends the array of inter io communications from its current suze to current size+data_stride+current size deficit. More... | |
subroutine | extend_file_writer_contents_array () |
subroutine | extend_file_writer_array () |
subroutine | extend_diagnostics_array () |
Extends the rules array of a specific rule from the current size to the current size + data size stride. More... | |
subroutine | extend_groups_array () |
subroutine | extend_field_array () |
Extends the fields array of the current data definition from the current size to the current size + data size stride. More... | |
subroutine | extend_data_definition_array () |
Extends the data definitions array from the current size to the current size + data size stride. More... | |
subroutine, public | extend_registered_moncs_array (io_configuration) |
Extends the data definitions array from the current size to the current size + data size stride. More... | |
integer function, public | retrieve_data_definition (io_configuration, key) |
Retrieves a specific data definition from the configuration which matches a key. More... | |
logical function, public | retrieve_monc_definition (io_configuration, source, monc_defn) |
Retrieves a specific MONC definition from the configuration which matches a source PID. More... | |
type(definition_description_type) function, dimension(:), allocatable, public | build_definition_description_type_from_configuration (io_configuration) |
Builds up the data definition description type from the structured definitions in the IO configuration. More... | |
type(field_description_type) function, dimension(:), allocatable, public | build_field_description_type_from_configuration (io_configuration) |
Builds up the field definition description type from the structured definitions in the IO configuration. More... | |
integer function | get_total_number_fields (io_configuration) |
Retrieves the total number of fields held in all data definitions. More... | |
integer function, public | get_number_field_dimensions (io_configuration, field_name, source, data_id) |
Retrieves the number of field dimensions that a specific field has from a MONC process within a data definition. This is determined by the MONC process when it registers with the IO server and can be different from one to another. More... | |
type(data_values_type) function, pointer | get_data_value_from_hashmap_by_field_name (collection, field_name) |
Retrieves the data value (wrapper) by field name or null if no entry was found in the provided collection. More... | |
type(data_values_type) function, pointer | get_data_value_from_map_by_field_name (collection, field_name) |
Retrieves the data value (wrapper) by field name or null if no entry was found in the provided collection. More... | |
type(data_values_type) function, pointer, public | get_data_value_from_map_entry (map_entry) |
Retrieves the data value (wrapper) by field name or null if no entry was found in the provided map entry. More... | |
integer function, public | get_monc_location (io_configuration, source) |
A helper function to get the location of a MONC's configuration in the IO data structure. More... | |
logical function, public | get_diagnostic_field_configuration (io_configuration, field_name, field_namespace, diagnostic_config) |
Retrieves the diagnostics field configuration corresponding to a specific field name and returns whether one was found or not. More... | |
logical function, public | get_prognostic_field_configuration (io_configuration, field_name, field_namespace, prognostic_config, prognostic_containing_data_defn) |
Retrieves the prognostic field configuration corresponding to a specific field name and returns whether one was found or not. More... | |
subroutine | add_in_specific_line (io_xml, reading_buffer) |
Adds a specific line into the io xml. The IO XML is always exactly the correct size, so here is either allocated or resized to match what the read buffer requires. More... | |
subroutine | combine_xml_arrays (io_xml, other_xml_array) |
Combines two IO XML arrays together (for instance one returned from a recursive include) More... | |
Variables | |
character(len=string_length), parameter | default_file_title = "MONC diagnostics" |
integer, parameter, public | eq_operator_type =1 |
integer, parameter, public | lt_operator_type =2 |
integer, parameter, public | gt_operator_type =3 |
integer, parameter, public | lte_operator_type =4 |
integer, parameter, public | gte_operator_type =5 |
integer, parameter, public | add_operator_type =6 |
integer, parameter, public | subtract_operator_type =7 |
integer, parameter, public | multiply_operator_type =8 |
integer, parameter, public | div_operator_type =9 |
integer, parameter, public | mod_operator_type =10 |
integer, parameter | and_operator_type =11 |
integer, parameter | or_operator_type =12 |
integer, parameter | monc_size_stride =100 |
integer, parameter, public | data_size_stride =10 |
integer, parameter, public | time_averaged_type =1 |
integer, parameter, public | instantaneous_type =2 |
integer, parameter, public | none_type =3 |
integer, parameter, public | group_type =1 |
integer, parameter, public | field_type =2 |
integer, parameter, public | io_state_type =3 |
integer, parameter | file_str_stride =10000 |
integer, parameter | file_line_len =2000 |
logical | inside_data_definition |
logical | inside_handling_definition |
logical | inside_server_config |
logical | inside_action_config |
logical | inside_diagnostic_config |
logical | inside_group_config |
logical | inside_generic_writing |
logical | inside_specific_file_writing |
integer | current_building_definition |
integer | current_building_field |
integer | current_building_diagnostic |
integer | current_trigger_index |
integer | current_building_group |
integer | current_building_file_writer |
type(io_configuration_type), save | building_config |
IO configuration that is build built up from XML parsing. More... | |
character(len=string_length) | data_handling_namespace |
type(hashmap_type) | options_database |
type(hashset_type) | data_field_names |
Parses the XML configuration file to produce the io configuration description which contains the data layout specification and rules for handling received data.
|
private |
Definition at line 471 of file configurationparser.F90.
|
private |
Definition at line 254 of file configurationparser.F90.
|
private |
Adds a specific line into the io xml. The IO XML is always exactly the correct size, so here is either allocated or resized to match what the read buffer requires.
io_xml | The IO XML which holds all the configuration and is exactly the correct size |
reading_buffer | A buffer which will be copied into the resized/allocated IO XML |
Definition at line 1275 of file configurationparser.F90.
|
private |
Definition at line 554 of file configurationparser.F90.
|
private |
Definition at line 512 of file configurationparser.F90.
|
private |
Definition at line 451 of file configurationparser.F90.
type(definition_description_type) function, dimension(:), allocatable, public configuration_parser_mod::build_definition_description_type_from_configuration | ( | type(io_configuration_type), intent(inout) | io_configuration | ) |
Builds up the data definition description type from the structured definitions in the IO configuration.
io_configuration | IO server configuration |
Definition at line 1068 of file configurationparser.F90.
type(field_description_type) function, dimension(:), allocatable, public configuration_parser_mod::build_field_description_type_from_configuration | ( | type(io_configuration_type), intent(inout) | io_configuration | ) |
Builds up the field definition description type from the structured definitions in the IO configuration.
io_configuration | IO server configuration |
Definition at line 1089 of file configurationparser.F90.
|
private |
Combines two IO XML arrays together (for instance one returned from a recursive include)
io_xml | The IO XML is a source and target, this is allocated or resized to hold its contents + other arrays contents |
other_xml_array | The other XML array which will be copied into the IO XML |
Definition at line 1300 of file configurationparser.F90.
subroutine, public configuration_parser_mod::configuration_parse | ( | type(hashmap_type), intent(inout) | provided_options_database, |
character, dimension(:), intent(in) | raw_configuration, | ||
type(io_configuration_type), intent(out) | parsed_configuration | ||
) |
This will parse an XML string into the IO configuration.
raw_configuration | The raw (unparsed) XML string to process |
parsed_configuration | Configuration determining the layout and handling of data |
Definition at line 212 of file configurationparser.F90.
|
private |
Defines a new data handling rule.
element_name | The name of the XML element |
number_of_attributes | Number of XML attributes associated with this element |
attribute_names | Each attribute name (same location as attribute value) |
attribute_values | Each attribute value (same location as attribute name) |
Definition at line 657 of file configurationparser.F90.
|
private |
Definition at line 593 of file configurationparser.F90.
|
private |
Definition at line 490 of file configurationparser.F90.
|
private |
XML element end (closing) call back.
element_name | Name of the XML element |
Definition at line 333 of file configurationparser.F90.
|
private |
Extends the data definitions array from the current size to the current size + data size stride.
Definition at line 999 of file configurationparser.F90.
|
private |
Extends the rules array of a specific rule from the current size to the current size + data size stride.
Definition at line 970 of file configurationparser.F90.
|
private |
Extends the fields array of the current data definition from the current size to the current size + data size stride.
Definition at line 987 of file configurationparser.F90.
|
private |
Definition at line 961 of file configurationparser.F90.
|
private |
Definition at line 950 of file configurationparser.F90.
|
private |
Definition at line 978 of file configurationparser.F90.
subroutine, public configuration_parser_mod::extend_inter_io_comm_array | ( | type(io_configuration_type), intent(inout) | io_configuration | ) |
Extends the array of inter io communications from its current suze to current size+data_stride+current size deficit.
io_configuration | The IO server configuration state |
inter_io_size | The target number of elements in the array |
Definition at line 938 of file configurationparser.F90.
subroutine, public configuration_parser_mod::extend_registered_moncs_array | ( | type(io_configuration_type), intent(inout) | io_configuration | ) |
Extends the data definitions array from the current size to the current size + data size stride.
io_configuration | IO server configuration state |
Definition at line 1011 of file configurationparser.F90.
|
private |
Retrieves the data value (wrapper) by field name or null if no entry was found in the provided collection.
collection | A hashmap to search for this data value in |
field_name | The field name to search for |
Definition at line 1149 of file configurationparser.F90.
|
private |
Retrieves the data value (wrapper) by field name or null if no entry was found in the provided collection.
collection | A map to search for this data value in |
field_name | The field name to search for |
Definition at line 1171 of file configurationparser.F90.
type(data_values_type) function, pointer, public configuration_parser_mod::get_data_value_from_map_entry | ( | type(mapentry_type), intent(in) | map_entry | ) |
Retrieves the data value (wrapper) by field name or null if no entry was found in the provided map entry.
map_entry | A map entry to convert into data wrapper |
Definition at line 1192 of file configurationparser.F90.
logical function, public configuration_parser_mod::get_diagnostic_field_configuration | ( | type(io_configuration_type), intent(inout) | io_configuration, |
character(len=*), intent(in) | field_name, | ||
character(len=*), intent(in) | field_namespace, | ||
type(io_configuration_diagnostic_field_type), intent(out) | diagnostic_config | ||
) |
Retrieves the diagnostics field configuration corresponding to a specific field name and returns whether one was found or not.
io_configuration | The current IO server configuration |
field_name | The name of the diagnostics field we are searching for |
diagnostic_config | The found diagnostics is written into here if located |
Definition at line 1224 of file configurationparser.F90.
|
private |
|
private |
Given the name of an attribute will return the index of this in the names collection or 0 if it is not found.
attribute_names | Collection of attribute names |
search_name | The name to search for |
Definition at line 919 of file configurationparser.F90.
|
private |
recursive character function, dimension(:), allocatable, public configuration_parser_mod::get_io_xml | ( | character(len=*), intent(in) | filename, |
integer, intent(in), optional | funit_num | ||
) |
Reads in textual data from a file and returns this, used to read the IO server XML configuration file. Returned is a character array of exactly the correct size filled with all the configuration.
filename | Name of the file to read |
Definition at line 162 of file configurationparser.F90.
integer function, public configuration_parser_mod::get_monc_location | ( | type(io_configuration_type), intent(inout) | io_configuration, |
integer, intent(in) | source | ||
) |
A helper function to get the location of a MONC's configuration in the IO data structure.
source | Source index of the MONC process |
Definition at line 1212 of file configurationparser.F90.
integer function, public configuration_parser_mod::get_number_field_dimensions | ( | type(io_configuration_type), intent(inout) | io_configuration, |
character(len=*), intent(in) | field_name, | ||
integer, intent(in) | source, | ||
integer, intent(in) | data_id | ||
) |
Retrieves the number of field dimensions that a specific field has from a MONC process within a data definition. This is determined by the MONC process when it registers with the IO server and can be different from one to another.
io_configuration | The IO server configuration |
field_name | The field name to look up |
source | The pid of the source MONC process |
data_id | The data definition id |
Definition at line 1134 of file configurationparser.F90.
logical function, public configuration_parser_mod::get_prognostic_field_configuration | ( | type(io_configuration_type), intent(inout) | io_configuration, |
character(len=*), intent(in) | field_name, | ||
character(len=*), intent(in) | field_namespace, | ||
type(io_configuration_field_type), intent(out) | prognostic_config, | ||
type(io_configuration_data_definition_type), intent(out), optional | prognostic_containing_data_defn | ||
) |
Retrieves the prognostic field configuration corresponding to a specific field name and returns whether one was found or not.
io_configuration | The current IO server configuration |
field_name | The name of the prognostics field we are searching for |
prognostic_config | The found prognostic is written into here if located |
Definition at line 1248 of file configurationparser.F90.
|
private |
Retrieves the total number of fields held in all data definitions.
io_configuration | The IO server configuration |
Definition at line 1116 of file configurationparser.F90.
|
private |
Creates a new data definition configuration item based upon the attributes supplied.
number_of_attributes | Number of XML attributes associated with this element |
attribute_names | Each attribute name (same location as attribute value) |
attribute_values | Each attribute value (same location as attribute name) |
Definition at line 387 of file configurationparser.F90.
|
private |
Definition at line 371 of file configurationparser.F90.
|
private |
Definition at line 716 of file configurationparser.F90.
|
private |
Process XML into a field description by identifying the attributes of the field and storing these in a refined configuration format.
element_name | The name of the XML element |
number_of_attributes | Number of XML attributes associated with this element |
attribute_names | Each attribute name (same location as attribute value) |
attribute_values | Each attribute value (same location as attribute name) |
Definition at line 748 of file configurationparser.F90.
|
private |
Replaces specific characters in a string and returns a new string with this replaced by nothing (i.e. removed)
original_string | The original string the process |
new_string | New string which contains the string after replacement has been performed |
to_replace | The substring to replace by nothing (i.e. remove) from original_string |
Definition at line 864 of file configurationparser.F90.
integer function, public configuration_parser_mod::retrieve_data_definition | ( | type(io_configuration_type), intent(inout) | io_configuration, |
character(len=*), intent(in) | key | ||
) |
Retrieves a specific data definition from the configuration which matches a key.
io_configuration | IO server configuration state |
key | Data definition key that we are searching for |
Definition at line 1027 of file configurationparser.F90.
logical function, public configuration_parser_mod::retrieve_monc_definition | ( | type(io_configuration_type), intent(inout) | io_configuration, |
integer, intent(in) | source, | ||
type(io_configuration_registered_monc_type), intent(out) | monc_defn | ||
) |
Retrieves a specific MONC definition from the configuration which matches a source PID.
io_configuration | IO server configuration state |
source | MONC process ID to search for |
monc_defn | The MONC definition, if it is found, is written into here |
Definition at line 1047 of file configurationparser.F90.
|
private |
Definition at line 885 of file configurationparser.F90.
|
private |
XML element start (opening) call back. This handles most of the configuration parsing.
element_name | Name of the XML element |
number_of_attributes | The number of attributes associated with this XML element |
attribute_names | Each attribute name (same location as attribute value) |
attribute_values | Each attribute value (same location as attribute name) |
Definition at line 275 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::add_operator_type =6 |
Definition at line 22 of file configurationparser.F90.
|
private |
Definition at line 22 of file configurationparser.F90.
|
private |
IO configuration that is build built up from XML parsing.
Definition at line 139 of file configurationparser.F90.
|
private |
Definition at line 137 of file configurationparser.F90.
|
private |
Definition at line 137 of file configurationparser.F90.
|
private |
Definition at line 137 of file configurationparser.F90.
|
private |
Definition at line 137 of file configurationparser.F90.
|
private |
Definition at line 137 of file configurationparser.F90.
|
private |
Definition at line 137 of file configurationparser.F90.
|
private |
Definition at line 143 of file configurationparser.F90.
|
private |
Definition at line 140 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::data_size_stride =10 |
Definition at line 25 of file configurationparser.F90.
|
private |
Definition at line 21 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::div_operator_type =9 |
Definition at line 22 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::eq_operator_type =1 |
Definition at line 22 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::field_type =2 |
Definition at line 27 of file configurationparser.F90.
|
private |
Definition at line 133 of file configurationparser.F90.
|
private |
Definition at line 133 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::group_type =1 |
Definition at line 27 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::gt_operator_type =3 |
Definition at line 22 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::gte_operator_type =5 |
Definition at line 22 of file configurationparser.F90.
|
private |
Definition at line 135 of file configurationparser.F90.
|
private |
Definition at line 135 of file configurationparser.F90.
|
private |
Definition at line 135 of file configurationparser.F90.
|
private |
Definition at line 135 of file configurationparser.F90.
|
private |
Definition at line 135 of file configurationparser.F90.
|
private |
Definition at line 135 of file configurationparser.F90.
|
private |
Definition at line 135 of file configurationparser.F90.
|
private |
Definition at line 135 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::instantaneous_type =2 |
Definition at line 27 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::io_state_type =3 |
Definition at line 27 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::lt_operator_type =2 |
Definition at line 22 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::lte_operator_type =4 |
Definition at line 22 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::mod_operator_type =10 |
Definition at line 22 of file configurationparser.F90.
|
private |
Definition at line 25 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::multiply_operator_type =8 |
Definition at line 22 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::none_type =3 |
Definition at line 27 of file configurationparser.F90.
|
private |
Definition at line 142 of file configurationparser.F90.
|
private |
Definition at line 22 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::subtract_operator_type =7 |
Definition at line 22 of file configurationparser.F90.
integer, parameter, public configuration_parser_mod::time_averaged_type =1 |
Definition at line 27 of file configurationparser.F90.