cable_output_catalogue_mod Module

Builds output variable definitions from the output catalogue.

The catalogue (output_catalogue.yaml, embedded into the executable at build time) says what each output variable is. The bindings (see cable_output_bindings_mod) say where its data comes from. This module joins the two by name.



Functions

public function cable_output_catalogue_definitions(bindings) result(definitions)

Definitions of every variable in the built-in output catalogue.

Arguments

Type IntentOptional Attributes Name
type(cable_output_binding_t), intent(in) :: bindings(:)

Bindings from all model components. Must match the catalogue one to one.

Return Value type(cable_output_variable_definition_t), allocatable, (:)

public function cable_output_catalogue_definitions_from_text(text, bindings) result(definitions)

Definitions of every variable in the catalogue given as YAML text.

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: text
type(cable_output_binding_t), intent(in) :: bindings(:)

Return Value type(cable_output_variable_definition_t), allocatable, (:)

private pure function find_binding(bindings, name) result(binding_index)

Position of the binding called name, or 0 if there is none.

Arguments

Type IntentOptional Attributes Name
type(cable_output_binding_t), intent(in) :: bindings(:)
character(len=*), intent(in) :: name

Return Value integer

private function build_definition(entry, binding) result(definition)

Combine one catalogue entry with its binding.

Arguments

Type IntentOptional Attributes Name
type(cable_yaml_node_t), intent(in) :: entry
type(cable_output_binding_t), intent(in) :: binding

Return Value type(cable_output_variable_definition_t)

private function netcdf_type(type_name, field_name) result(type_code)

NetCDF type code for the catalogue type name float or int.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: type_name
character(len=*), intent(in) :: field_name

Return Value integer