MARBL_column
MARBL stands for the Marine Biogeochemistry Library; it’s a modular biogeochemical modeling suite for next-generatioon models. It simulates marine ecosystem dynamics and the coupled cycles of carbon, nitrogen, phosphorus, iron, silicon, and oxygen. It is a component of the Community Earth System Model (CESM) and is often coupled to other physical ocean models such as the Modular Ocean Model (MOM6).
For a detailed description of the model, the reader is refered to Long et al., 2021 [1].
The MARBL source code can be downloaded from https://github.com/marbl-ecosys/MARBL. You may also want to read MARBL’s documentation here.
This MARBL-DART interface was developed by Robin Armstrong. Thanks Robin!
Overview
MARBL_column provides an interface between DART and a 1D (column) configuration of MARBL. It’s designed to be used at locations where in-situ data is abundant such as Bermuda Atlantic Time-series Study (BATS) station, Weather Station Mike, Hawaii Ocean Time-series (HOT) … to name a few.
The code is designed to perform 3 kinds of data assimilation (DA) experiments:
State Estimation: where the prognostic state variables of MARBL such as nitrate concerntration are updated. To achive this, you’ll need to set
estimate_params = .false.
within&model_nml
in the namelist fileinput.nml
State and Parameters Estimation: where both the state and a set of model parameters are updated. MARBL has a long list of uncertain model parameters that can be constrained alongside the state. This usually improves the prediction skill of the model and alleviates some of its biases. To achieve this DA exercise, you’ll need to set
estimate_params = .true.
The combined DART state will be of the form \(Z_k = \left[ \mathbf{x}_k, \boldsymbol{\theta} \right]^T\) where \(Z_k\) is the joint state, \(\mathbf{x}\) and parameters, \(\boldsymbol{\theta}\) vector at time \(t_k\)
Parameters Estimation only: where only the parameters are constrained using the data. DART will still need to read in the state to construct ensemble covariances and compute innovations. The only difference is that the ensemble increments are only regressed onto the unknown parameters. To achive this goal, you’ll need to set
estimate_params = .true.
and turn the update status for all state variable toNO_COPY_BACK
This ensures that the updated state will not be written back to the restart file. The
NO_COPY_BACK
option is added as the 5th entry in the state table (after the variable name, its associated quantity and its physical bounds) within&model_nml
.
Namelist
The &model_nml
variables and their default values are listed here:
&model_nml
state_template_file = 'MOM.res.nc',
param_template_file = 'marbl_params.nc',
ocean_geometry = 'ocean_geometry.nc',
station_location = -64, 31
time_step_days = 1,
time_step_seconds = 0,
model_state_variables = 'NO3 ', 'QTY_NITRATE_CONCENTRATION ', '0.0', 'NA', 'UPDATE ',
'SiO3 ', 'QTY_DISSOLVED_INORGANIC_SIO3 ', '0.0', 'NA', 'UPDATE ',
'PO4 ', 'QTY_PHOSPHATE_CONCENTRATION ', '0.0', 'NA', 'UPDATE ',
'Fe ', 'QTY_DISSOLVED_INORGANIC_IRON ', '0.0', 'NA', 'UPDATE ',
'DIC ', 'QTY_DISSOLVED_INORGANIC_CARBON', '0.0', 'NA', 'UPDATE ',
'O2 ', 'QTY_DISSOLVED_OXYGEN ', '0.0', 'NA', 'UPDATE ',
'DOC ', 'QTY_DISSOLVED_ORGANIC_CARBON ', '0.0', 'NA', 'UPDATE ',
'DON ', 'QTY_DISSOLVED_ORGANIC_NITROGEN', '0.0', 'NA', 'UPDATE ',
'DOP ', 'QTY_DISSOLVED_ORGANIC_P ', '0.0', 'NA', 'UPDATE ',
'ALK ', 'QTY_ALKALINITY ', '0.0', 'NA', 'UPDATE ',
'microzooC', 'QTY_MICROZOOPLANKTON_CARBON ', '0.0', 'NA', 'UPDATE ',
'mesozooC ', 'QTY_MESOZOOPLANKTON_CARBON ', '0.0', 'NA', 'UPDATE ',
'h ', 'QTY_LAYER_THICKNESS ', '0.0', 'NA', 'NO_COPY_BACK'
estimate_params = .true.
model_parameters = 'autotroph_settings(1)%kDOP ', 'QTY_BGC_PARAM', '0.0', 'NA', 'UPDATE'
/
This namelist provides control over the kind of DA experiment as described abvove.
Item |
Type |
Description |
---|---|---|
|
character(len=256) |
MARBL restart file including MARBL’s prognostic variables
and other grid information such as the ocean layers.
The state variables read from this file are listed in
in the |
|
character(len=256) |
Template file corresponding to the BGC parameters that we
intend to estimate. The parameters read from this file are
listed in the |
|
character(len=256) |
The ocean geometry file is used to read |
|
real(2) |
Longitude and latitude of the ocean column location. |
|
integer |
The number of days to advance the model for each assimilation. |
|
integer |
In addition to |
|
character(:,5) |
Strings that associate MARBL variables with a DART
quantity. They also describe their physical bounds and
whether or not to write the updated values to the restart
files. These variables will be read from the MARBL restart
file and modified by the assimilation. Some (perhaps all)
will be used by the forward observation operators. If the
5th column is |
|
logical |
A switch to turn on/off parameter estimation. |
|
character(:,5) |
Similar to |