CO2MVS coupling mode with IFS co2mvs/std#
Description#
Outer-loop driver for the ECMWF CO2MVS coupled LMDZ/IFS inversion system.
This mode implements one outer-loop iteration of the CO2MVS weakly-coupled assimilation system in which LMDZ provides the very-long-window atmospheric transport and IFS runs the inner loops (not handled here).
Mathematical framework#
The outer loop follows a gradient-descent update in control space. Given the current control vector \(\mathbf{x}^{(k)}\), the mode:
Reference forward — evaluates the observation operator
\[\mathbf{y}_\mathrm{sim}^{(k)} = \mathcal{H}(\mathbf{x}^{(k)})\]Backward propagation — runs the adjoint to compute the gradient of the observation-space misfit with respect to the control vector:
\[\delta\mathbf{x}^{(k)} = \mathbf{H}^{(k)\,\top} \mathbf{R}^{-1} \bigl(\mathbf{y} - \mathbf{y}_\mathrm{sim}^{(k)}\bigr)\]Control-vector update — applies the background error covariance to produce an increment and updates the state:
\[\mathbf{x}^{(k+1)} = \mathbf{x}^{(k)} + \mathbf{B}\,\delta\mathbf{x}^{(k)}\]Posterior forward — re-runs the observation operator with the updated state to evaluate the posterior trajectory for diagnostics.
Note#
The IFS inner loops (variational minimisation within each outer-loop cycle) are managed externally. This mode only handles the interface between the two systems: control-vector exchange, the outer-loop increment, and the file I/O.
YAML arguments#
The following arguments are used to configure the plugin. pyCIF will return an exception at the initialization if mandatory arguments are not specified, or if any argument does not fit accepted values or type:
- save_out_netcdf : bool, optional, default False
Save final posterior vector as NetCDF. This argument overwrites the corresponding argument in the
controlvect.
- reload_results : bool, optional, default False
Reload results from previous simulations. If True does not recomputed already computed simulations
Requirements#
The current plugin requires the present plugins to run properly:
Requirement name |
Requirement type |
Explicit definition |
Any valid |
Default name |
Default version |
|---|---|---|---|---|---|
controlvect |
True |
True |
standard |
std |
|
obsoperator |
True |
False |
standard |
std |
|
platform |
True |
True |
None |
None |
YAML template#
Please find below a template for a YAML configuration:
1mode:
2 plugin:
3 name: co2mvs
4 version: std
5 type: mode
6
7 # Optional arguments
8 save_out_netcdf: XXXXX # bool
9 reload_results: XXXXX # bool
See also