Skip to content

Namespace configmanager_mod

Namespace List > configmanager_mod

Public Attributes

Type Name
integer, parameter, public config_strategy_fallback = 3
Use defaults on errors.
integer, parameter, public config_strategy_permissive = 2
Warning on validation errors.
integer, parameter, public config_strategy_strict = 1
Configuration loading strategies.

Public Functions

Type Name
subroutine, public discover_nested_yaml_section_items (character(len=*), intent(in) filename, character(len=*), intent(in) section_path, character(len=*), dimension(:), intent(inout) item_names, integer, intent(out) n_items, integer, intent(out) rc, character(len=*), intent(in), optional search_mode)
Discover items in a nested YAML section (supports arbitrary depth paths)
subroutine, public discover_yaml_section_items (character(len=*), intent(in) filename, character(len=*), intent(in) section_name, character(len=*), intent(in) parse_mode, character(len=64), dimension(:), intent(inout) item_names, integer, intent(out) n_items, integer, intent(out) rc)
Generic YAML text parser for discovering items in a section This function reads the YAML file as plain text and extracts item names by parsing the structure line by line, looking for keys with ':' under the section.
subroutine schema_init (class(configschematype), intent(inout) this, character(len=*), intent(in) name, character(len=*), intent(in) description, logical, intent(in), optional strict)
Initialize configuration schema.

Public Attributes Documentation

variable config_strategy_fallback

Use defaults on errors.

integer, parameter, public configmanager_mod::config_strategy_fallback;


variable config_strategy_permissive

Warning on validation errors.

integer, parameter, public configmanager_mod::config_strategy_permissive;


variable config_strategy_strict

Configuration loading strategies.

integer, parameter, public configmanager_mod::config_strategy_strict;

Fail on any validation error


Public Functions Documentation

function discover_nested_yaml_section_items

Discover items in a nested YAML section (supports arbitrary depth paths)

subroutine, public configmanager_mod::discover_nested_yaml_section_items (
    character(len=*), intent(in) filename,
    character(len=*), intent(in) section_path,
    character(len=*), dimension(:), intent(inout) item_names,
    integer, intent(out) n_items,
    integer, intent(out) rc,
    character(len=*), intent(in), optional search_mode
) 

This function discovers direct child items in any nested YAML section. It supports arbitrary nesting depth and flexible indentation.

Examples: * "processes/extemis" -> finds anthro, point, fire, fengsha * "processes/extemis/anthro" -> finds activate, scale_factor, source_file, etc. * "mie/files" with mode 'key_value_pairs' -> finds "SS: opticsBands_SS.v3_3.RRTMG.nc"

Parameters:

  • filename YAML file to parse
  • section_path Nested path (e.g., "processes/extemis/anthro")
  • item_names Array to store discovered item names
  • n_items Number of items found
  • rc Return code
  • search_mode Optional: 'section_headers' (default) or 'key_value_pairs'

function discover_yaml_section_items

Generic YAML text parser for discovering items in a section This function reads the YAML file as plain text and extracts item names by parsing the structure line by line, looking for keys with ':' under the section.

subroutine, public configmanager_mod::discover_yaml_section_items (
    character(len=*), intent(in) filename,
    character(len=*), intent(in) section_name,
    character(len=*), intent(in) parse_mode,
    character(len=64), dimension(:), intent(inout) item_names,
    integer, intent(out) n_items,
    integer, intent(out) rc
) 

Parameters:

  • filename YAML configuration file path
  • section_name Section name to search for items
  • parse_mode Parsing mode: 'simple', 'emission_fields'
  • item_names Array to store discovered item names
  • n_items Number of items discovered
  • rc Return code

function schema_init

Initialize configuration schema.

subroutine configmanager_mod::schema_init (
    class( configschematype ), intent(inout) this,
    character(len=*), intent(in) name,
    character(len=*), intent(in) description,
    logical, intent(in), optional strict
) 



The documentation for this class was generated from the following file src/core/ConfigManager_Mod.F90