mom_oda_driver_mod module reference¶
Interfaces for MOM6 ensembles and data assimilation.
Data Types¶
Control structure that contains a transpose of the ocean state across ensemble members. |
|
A structure with a pointer to a domain2d, to allow for the creation of arrays of pointers. |
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 sall ODA routines. |
|
Finalize DA module. |
|
Initialize DA module. |
|
Set the next analysis time. |
|
Write observation differences to a file. |
|
Apply increments to tracers. |
Detailed Description¶
Interfaces for MOM6 ensembles and data assimilation.
Type Documentation¶
-
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%
nk
[integer] :: number of vertical layers used for DA%
grid
[type(ocean_grid_type),pointer] :: MOM6 grid type and decomposition for the DA.%
domains
[type( ptr_mpp_domain )(:),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%
tv
[type(thermo_var_ptrs),pointer] :: pointer to thermodynamic variables%
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.%
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_frequency
[integer] :: analysis interval in hours%
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)] :: Diagnostics control structure.
-
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 an mpp domain2d
Function/Subroutine Documentation¶
-
subroutine
mom_oda_driver_mod/
init_oda
(Time, G, GV, 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
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
init_ocean_ensemble
mom_remapping::initialize_remapping
mom_string_functions::lowercase
mom_domains::mom_domains_init
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_diag_mediator::set_axes_info
mom_grid_initialize::set_grid_metrics
mom_regridding::set_regrid_params
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_error_handler::mom_mesg
mom_remapping::remapping_core_h
-
subroutine
mom_oda_driver_mod/
get_posterior_tracer
(Time, CS, h, tv, 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
h :: Layer thicknesses [H ~> m or kg m-2]
tv :: A structure pointing to various thermodynamic variables
increment :: [in] True if returning increment only
- Call to
-
subroutine
mom_oda_driver_mod/
oda
(Time, CS)¶ Gather observations and sall ODA routines.
- Parameters
time :: [in] the current model time
cs :: [inout] the ocean DA control structure
- Call to
-
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
-
subroutine
mom_oda_driver_mod/
save_obs_diff
(filename, CS)¶ Write observation differences to a file.
- Parameters
filename :: [in] name of output file
cs :: [in] pointer to DA control structure
- Call to
write_ocean_obs_mod::close_profile_file
write_ocean_obs_mod::write_profile
-
subroutine
mom_oda_driver_mod/
apply_oda_tracer_increments
(dt, G, tv, h, CS)¶ Apply increments to tracers.
- Parameters
dt :: [in] The tracer timestep [s]
g :: [in] ocean grid structure
tv :: [inout] A structure pointing to various thermodynamic variables
h :: [in] layer thickness [H ~> m or kg m-2]
cs :: [inout] the data assimilation structure