mom_oda_driver_mod module reference

Interfaces for MOM6 ensembles and data assimilation.

More…

Data Types

ptr_mpp_domain

A structure with a pointer to a domain2d, to allow for the creation of arrays of pointers.

inc_cs

A structure containing integer handles for bias adjustment of tracers.

oda_cs

Control structure that contains a transpose of the ocean state across ensemble members.

Functions/Subroutines

init_oda()

initialize First_guess (prior) and Analysis grid information for all ensemble members

set_prior_tracer()

Copy ensemble member tracers to ensemble vector.

get_posterior_tracer()

Returns posterior adjustments or full state Note that only those PEs associated with an ensemble member receive data.

oda()

Gather observations and call ODA routines.

get_bias_correction_tracer()

oda_end()

Finalize DA module.

init_ocean_ensemble()

Initialize DA module.

set_analysis_time()

Set the next analysis time.

apply_oda_tracer_increments()

Apply increments to tracers.

set_up_global_tgrid()

Set up the grid of thicknesses at tracer points throughout the global domain.

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

[source]

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.

[source]

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), dimension(:), 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, dimension(:,:,:), pointer layer thicknesses [H ~> m or kg m-2] for DA

  • % t_tend :: real, dimension(:,:,:), pointer layer temperature tendency from DA [C T-1 ~> degC s-1]

  • % s_tend :: real, dimension(:,:,:), pointer layer salinity tendency from DA [S T-1 ~> ppt s-1]

  • % t_bc_tend :: real, dimension(:,:,:), pointer The layer temperature tendency due to bias adjustment [C T-1 ~> degC s-1].

  • % s_bc_tend :: real, dimension(:,:,:), 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 [nondim].

  • % 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, dimension(:,:), pointer PE list for ensemble members.

  • % filter_pelist :: integer, dimension(:), 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.

  • % reproduce_2018_nmme :: logical true if reproducing older NMME answers.

[source]

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_interpolate::get_external_field_info 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_h_neglect mom_regridding::set_regrid_params set_up_global_tgrid mom_unit_scaling::unit_scaling_init mom_verticalgrid::verticalgridinit

[source]

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 :: h [in] Layer thicknesses [H ~> m or kg m-2]

  • tv :: 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:

mom::step_mom

[source]

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 :: increment [in] True if returning increment only

Call to:

mom_error_handler::mom_mesg no_assim

Called from:

oda

[source]

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

[source]

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:

oda

[source]

subroutine mom_oda_driver_mod/oda_end(CS)

Finalize DA module.

Parameters:

cs :: [inout] the ocean DA control structure

[source]

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 :: ens_size [in] ensemble size

Called from:

init_oda

[source]

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:

mom_error_handler::mom_error mom_error_handler::mom_mesg

Called from:

mom::step_mom

[source]

subroutine mom_oda_driver_mod/apply_oda_tracer_increments(dt, Time_end, G, GV, tv, h, CS)

Apply increments to tracers.

Parameters:
  • dt :: 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 :: tv [inout] A structure pointing to various thermodynamic variables

  • h :: 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:

mom::step_mom_thermo

[source]

subroutine mom_oda_driver_mod/set_up_global_tgrid(T_grid, CS, G)

Set up the grid of thicknesses at tracer points throughout the global domain.

Parameters:
  • t_grid :: global tracer grid

  • cs :: [in] A pointer to DA control structure.

  • g :: domain and grid information for ocean model

Called from:

init_oda

[source]

[source]