Skip to content

File ConfigManager_Mod.F90

FileList > core > ConfigManager_Mod.F90

Go to the source code of this file

Enhanced configuration management for CATChem. More...

Namespaces

Type Name
namespace configmanager_mod

Detailed Description

Author:

CATChem Development Team

Date:

2025

Version:

2.0

This module provides a modern, flexible configuration management system for CATChem, supporting modular configuration loading, validation, and runtime configuration updates.

The ConfigManager consolidates and modernizes CATChem configuration management by replacing two previous modules:

Replaces config_opt_mod.F90: * Legacy config support removed, now using modern YAML-based ConfigDataType * All configuration parameters and options * Process-specific configuration flags

Replaces config_mod.F90: * Read_Input_File subroutine -> ConfigManagerload_from_file() method * YAML parsing logic with enhanced error handling * Configuration validation and initialization

New features: * Hierarchical configuration loading with includes and inheritance * Schema-based validation with detailed error reporting * Plugin-based process configuration loading * Runtime configuration updates and hot-reloading * Configuration templates and presets * Environment variable and command-line override support

Usage Example

use configmanager_mod
type(ConfigManagerType) :: config_mgr
type(StateContainer) :: container
integer :: rc

call config_mgr%init(rc)
call config_mgr%load_from_file('CATChem_config.yml', rc)
call config_mgr%apply_to_container(container, rc)

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