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_initmom_ale::ale_initthicknesstocoordmom_ale::ale_updateverticalgridtypemom_transcribe_grid::copy_dyngrid_to_mom_gridmom_dyn_horgrid::create_dyn_horgrideakf_assimmom_get_input::get_mom_inputmom_hor_index::hor_index_initinit_ocean_ensemblemom_remapping::initialize_remappingmom_string_functions::lowercasemom_domains::mom_domains_initmom_grid::mom_grid_initmom_coord_initialization::mom_initialize_coordmom_fixed_initialization::mom_initialize_topographyno_assimocean_da_core_mod::ocean_da_core_initoi_assimmom_diag_mediator::set_axes_infomom_grid_initialize::set_grid_metricsmom_regridding::set_regrid_paramsmom_unit_scaling::unit_scaling_initmom_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_errormom_error_handler::mom_mesgmom_remapping::remapping_core_h- Called from
-
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
- Called from
-
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_filewrite_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
- Called from