mom_oda_driver_mod module reference¶
Interfaces for MOM6 ensembles and data assimilation.
Data Types¶
A structure with a pointer to a domain2d, to allow for the creation of arrays of pointers. |
|
A structure containing integer handles for bias adjustment of tracers. |
|
Control structure that contains a transpose of the ocean state across ensemble members. |
Functions/Subroutines¶
initialize First_guess (prior) and Analysis grid information for all ensemble members |
|
Copy ensemble member tracers to ensemble vector. |
|
Returns posterior adjustments or full state Note that only those PEs associated with an ensemble member receive data. |
|
Gather observations and call ODA routines. |
|
Finalize DA module. |
|
Initialize DA module. |
|
Set the next analysis time. |
|
Apply increments to tracers. |
|
Detailed Description¶
Interfaces for MOM6 ensembles and data assimilation.
Type Documentation¶
-
type
mom_oda_driver_mod/
ptr_mpp_domain
¶ A structure with a pointer to a domain2d, to allow for the creation of arrays of pointers.
- Type fields:
%
mpp_domain
[type(domain2d),pointer, private] :: pointer to a domain2d
-
type
mom_oda_driver_mod/
inc_cs
¶ A structure containing integer handles for bias adjustment of tracers.
- Type fields:
%
fldno
[integer,private] :: The number of tracers.%
t
[type(external_field),private] :: The handle for the temperature file.%
s
[type(external_field),private] :: The handle for the salinity file.
-
type
mom_oda_driver_mod/
oda_cs
¶ Control structure that contains a transpose of the ocean state across ensemble members.
- Type fields:
%
ocean_prior
[type( ocean_control_struct ),pointer] :: ensemble ocean prior states in DA space%
ocean_posterior
[type( ocean_control_struct ),pointer] :: ensemble ocean posterior states or increments to prior in DA space%
ocean_increment
[type( ocean_control_struct ),pointer] :: A separate structure for increment diagnostics.%
nk
[integer] :: number of vertical layers used for DA%
grid
[type( ocean_grid_type ),pointer] :: MOM6 grid type and decomposition for the DA.%
g
[type( ocean_grid_type ),pointer] :: MOM6 grid type and decomposition for the model.%
domains
[type(mom_domain_type)(:),pointer] :: Pointer to mpp_domain objects for ensemble members.%
gv
[type( verticalgrid_type ),pointer] :: vertical grid for DA%
us
[type( unit_scale_type ),pointer] :: structure containing various unit conversion factors for DA%
mpp_domain
[type(domain2d),pointer] :: Pointer to a mpp domain object for DA.%
oda_grid
[type( grid_type ),pointer] :: local tracer grid%
h
[real(:,:,:),pointer] :: layer thicknesses [H ~> m or kg m-2] for DA%
t_tend
[real(:,:,:),pointer] :: layer temperature tendency from DA [C T-1 ~> degC s-1]%
s_tend
[real(:,:,:),pointer] :: layer salinity tendency from DA [S T-1 ~> ppt s-1]%
t_bc_tend
[real(:,:,:),pointer] :: The layer temperature tendency due to bias adjustment [C T-1 ~> degC s-1].%
s_bc_tend
[real(:,:,:),pointer] :: The layer salinity tendency due to bias adjustment [S T-1 ~> ppt s-1].%
ni
[integer] :: global i-direction grid size%
nj
[integer] :: global j-direction grid size%
reentrant_x
[logical] :: grid is reentrant in the x direction%
reentrant_y
[logical] :: grid is reentrant in the y direction%
tripolar_n
[logical] :: grid is folded at its north edge%
symmetric
[logical] :: Values at C-grid locations are symmetric.%
use_basin_mask
[logical] :: If true, use a basin file to delineate weakly coupled ocean basins.%
do_bias_adjustment
[logical] :: If true, use spatio-temporally varying climatological tendency adjustment for Temperature and Salinity.%
bias_adjustment_multiplier
[real] :: A scaling for the bias adjustment.%
assim_method
[integer] :: Method: NO_ASSIM,EAKF_ASSIM or OI_ASSIM.%
ensemble_size
[integer] :: Size of the ensemble.%
ensemble_id
[integer] :: id of the current ensemble member%
ensemble_pelist
[integer(:,:),pointer] :: PE list for ensemble members.%
filter_pelist
[integer(:),pointer] :: PE list for ensemble members.%
assim_interval
[real] :: analysis interval [ T ~> s]%
profiles
[type( ocean_profile_type ),pointer] :: pointer to linked list of all available profiles%
cprofiles
[type( ocean_profile_type ),pointer] :: pointer to linked list of current profiles%
kdroot
[type( kd_root ),pointer] :: A structure for storing nearest neighbors.%
ale_cs
[type( ale_cs ),pointer] :: ALE control structure for DA.%
use_ale_algorithm
[logical] :: true is using ALE remapping%
regridcs
[type( regridding_cs )] :: ALE control structure for regridding.%
remapcs
[type( remapping_cs )] :: ALE control structure for remapping.%
time
[type(time_type)] :: Current Analysis time.%
diag_cs
[type( diag_ctrl ),pointer] :: Pointer to diagnostics control structure.%
inc_cs
[type( inc_cs )] :: A Structure containing integer file handles for bias adjustment.%
id_inc_t
[integer] :: A diagnostic handle for the temperature climatological adjustment.%
id_inc_s
[integer] :: A diagnostic handle for the salinity climatological adjustment.%
answer_date
[integer] :: The vintage of the order of arithmetic and expressions in the remapping invoked by the ODA driver. Values below 20190101 recover the answers from the end of 2018, while higher values use updated and more robust forms of the same expressions.
Function/Subroutine Documentation¶
-
subroutine
mom_oda_driver_mod/
init_oda
(Time, G, GV, US, diag_CS, CS)¶ initialize First_guess (prior) and Analysis grid information for all ensemble members
- Parameters:
time :: [in] The current model time.
g :: domain and grid information for ocean model
gv :: [in] The ocean’s vertical grid structure
us :: [in] A dimensional unit scaling type
diag_cs :: [inout] A pointer to a diagnostic control structure
cs :: [inout] The DA control structure
- Call to:
mom_ale::ale_init
mom_ale::ale_initthicknesstocoord
mom_ale::ale_updateverticalgridtype
mom_transcribe_grid::copy_dyngrid_to_mom_grid
mom_dyn_horgrid::create_dyn_horgrid
eakf_assim
mom_get_input::get_mom_input
mom_hor_index::hor_index_init
id_clock_oda_init
init_ocean_ensemble
mom_remapping::initialize_remapping
mom_string_functions::lowercase
mdl
mom_domains::mom_domains_init
mom_error_handler::mom_error
mom_grid::mom_grid_init
mom_coord_initialization::mom_initialize_coord
mom_fixed_initialization::mom_initialize_topography
no_assim
ocean_da_core_mod::ocean_da_core_init
oi_assim
mom_grid_initialize::set_grid_metrics
mom_regridding::set_regrid_params
set_up_global_tgrid
mom_unit_scaling::unit_scaling_init
mom_verticalgrid::verticalgridinit
-
subroutine
mom_oda_driver_mod/
set_prior_tracer
(Time, G, GV, h, tv, CS)¶ Copy ensemble member tracers to ensemble vector.
- Parameters:
time :: [in] The current model time
g :: domain and grid information for ocean model
gv :: [in] The ocean’s vertical grid structure
h :: [in] Layer thicknesses [H ~> m or kg m-2]
tv :: [in] A structure pointing to various thermodynamic variables
cs :: ocean DA control structure
- Call to:
mom_error_handler::mom_error
mom_remapping::remapping_core_h
- Called from:
-
subroutine
mom_oda_driver_mod/
get_posterior_tracer
(Time, CS, increment)¶ Returns posterior adjustments or full state Note that only those PEs associated with an ensemble member receive data.
- Parameters:
time :: [in] the current model time
cs :: ocean DA control structure
increment :: [in] True if returning increment only
- Call to:
mom_error_handler::mom_mesg
no_assim
- Called from:
-
subroutine
mom_oda_driver_mod/
oda
(Time, CS)¶ Gather observations and call ODA routines.
- Parameters:
time :: [in] the current model time
cs :: A pointer the ocean DA control structure
- Call to:
get_bias_correction_tracer
get_posterior_tracer
ocean_da_core_mod::get_profiles
-
subroutine
mom_oda_driver_mod/
get_bias_correction_tracer
(Time, US, CS)¶ - Parameters:
time :: [in] the current model time
us :: [in] A dimensional unit scaling type
cs :: ocean DA control structure
- Call to:
id_clock_bias_adjustment
- Called from:
-
subroutine
mom_oda_driver_mod/
oda_end
(CS)¶ Finalize DA module.
- Parameters:
cs :: [inout] the ocean DA control structure
-
subroutine
mom_oda_driver_mod/
init_ocean_ensemble
(CS, Grid, GV, ens_size)¶ Initialize DA module.
- Parameters:
cs :: Pointer to ODA control structure
grid :: Pointer to ocean analysis grid
gv :: Pointer to DA vertical grid
ens_size :: [in] ensemble size
- Called from:
-
subroutine
mom_oda_driver_mod/
set_analysis_time
(Time, CS)¶ Set the next analysis time.
- Parameters:
time :: [in] the current model time
cs :: [inout] the DA control structure
- Call to:
- Called from:
-
subroutine
mom_oda_driver_mod/
apply_oda_tracer_increments
(dt, Time_end, G, GV, tv, h, CS)¶ Apply increments to tracers.
- Parameters:
dt :: [in] The tracer timestep [T ~> s]
time_end :: [in] Time at the end of the interval
g :: [in] ocean grid structure
gv :: [in] The ocean’s vertical grid structure
tv :: [inout] A structure pointing to various thermodynamic variables
h :: [in] layer thickness [H ~> m or kg m-2]
cs :: the data assimilation structure
- Call to:
id_clock_apply_increments
no_assim
mom_remapping::remapping_core_h
- Called from: