|
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 |
| character(len=string_length), dimension(:), allocatable, public | cond_request |
| character(len=string_length), dimension(:), allocatable, public | diag_request |
| character(len=string_length), dimension(:), allocatable, public | cond_long |
| character(len=string_length), dimension(:), allocatable, public | diag_long |
| integer, public | ncond |
| integer, public | ndiag |
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 492 of file configurationparser.F90.


|
private |
Since the model appears to write each of the items in dimension_sizing as dimensions in every
Definition at line 261 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 1296 of file configurationparser.F90.

|
private |
Definition at line 575 of file configurationparser.F90.


|
private |
Definition at line 533 of file configurationparser.F90.


|
private |
Definition at line 472 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 1089 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 1110 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 1321 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 219 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 678 of file configurationparser.F90.


|
private |
Definition at line 614 of file configurationparser.F90.


|
private |
Definition at line 511 of file configurationparser.F90.


|
private |
XML element end (closing) call back.
| element_name | Name of the XML element |
Definition at line 354 of file configurationparser.F90.

|
private |
Extends the data definitions array from the current size to the current size + data size stride.
Definition at line 1020 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 991 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 1008 of file configurationparser.F90.

|
private |
Definition at line 982 of file configurationparser.F90.

|
private |
Definition at line 971 of file configurationparser.F90.

|
private |
Definition at line 999 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 959 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 1032 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 1170 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 1192 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 1213 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 1245 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 940 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 169 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 1233 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 1155 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 1268 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 1137 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 408 of file configurationparser.F90.


|
private |
Definition at line 392 of file configurationparser.F90.


|
private |
Definition at line 737 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 769 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 885 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 1048 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 1068 of file configurationparser.F90.
|
private |
Definition at line 906 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 296 of file configurationparser.F90.


| integer, parameter, public configuration_parser_mod::add_operator_type =6 |
Definition at line 23 of file configurationparser.F90.
|
private |
Definition at line 23 of file configurationparser.F90.
|
private |
IO configuration that is build built up from XML parsing.
Definition at line 141 of file configurationparser.F90.
| character(len=string_length), dimension(:), allocatable, public configuration_parser_mod::cond_long |
Definition at line 147 of file configurationparser.F90.
| character(len=string_length), dimension(:), allocatable, public configuration_parser_mod::cond_request |
Definition at line 147 of file configurationparser.F90.
|
private |
Definition at line 139 of file configurationparser.F90.
|
private |
Definition at line 139 of file configurationparser.F90.
|
private |
Definition at line 139 of file configurationparser.F90.
|
private |
Definition at line 139 of file configurationparser.F90.
|
private |
Definition at line 139 of file configurationparser.F90.
|
private |
Definition at line 139 of file configurationparser.F90.
|
private |
Definition at line 145 of file configurationparser.F90.
|
private |
Definition at line 142 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::data_size_stride =10 |
Definition at line 26 of file configurationparser.F90.
|
private |
Definition at line 22 of file configurationparser.F90.
| character(len=string_length), dimension(:), allocatable, public configuration_parser_mod::diag_long |
Definition at line 147 of file configurationparser.F90.
| character(len=string_length), dimension(:), allocatable, public configuration_parser_mod::diag_request |
Definition at line 147 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::div_operator_type =9 |
Definition at line 23 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::eq_operator_type =1 |
Definition at line 23 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::field_type =2 |
Definition at line 28 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::group_type =1 |
Definition at line 28 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::gt_operator_type =3 |
Definition at line 23 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::gte_operator_type =5 |
Definition at line 23 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 137 of file configurationparser.F90.
|
private |
Definition at line 137 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::instantaneous_type =2 |
Definition at line 28 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::io_state_type =3 |
Definition at line 28 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::lt_operator_type =2 |
Definition at line 23 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::lte_operator_type =4 |
Definition at line 23 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::mod_operator_type =10 |
Definition at line 23 of file configurationparser.F90.
|
private |
Definition at line 26 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::multiply_operator_type =8 |
Definition at line 23 of file configurationparser.F90.
| integer, public configuration_parser_mod::ncond |
Definition at line 148 of file configurationparser.F90.
| integer, public configuration_parser_mod::ndiag |
Definition at line 148 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::none_type =3 |
Definition at line 28 of file configurationparser.F90.
|
private |
Definition at line 144 of file configurationparser.F90.
|
private |
Definition at line 23 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::subtract_operator_type =7 |
Definition at line 23 of file configurationparser.F90.
| integer, parameter, public configuration_parser_mod::time_averaged_type =1 |
Definition at line 28 of file configurationparser.F90.