MOM6
Public Attributes | List of all members
mom::mom_control_struct Type Reference

Control structure for the MOM module, including the variables that describe the state of the ocean. More...

Public Attributes

real, dimension(:, :, :), allocatable h
 layer thickness [H ~> m or kg m-2] More...
 
real, dimension(:, :, :), allocatable t
 potential temperature [degC] More...
 
real, dimension(:, :, :), allocatable s
 salinity [ppt] More...
 
real, dimension(:, :, :), allocatable u
 zonal velocity component [L T-1 ~> m s-1] More...
 
real, dimension(:, :, :), allocatable uh
 uh = u * h * dy at u grid points [H L2 T-1 ~> m3 s-1 or kg s-1] More...
 
real, dimension(:, :, :), allocatable uhtr
 accumulated zonal thickness fluxes to advect tracers [H L2 ~> m3 or kg] More...
 
real, dimension(:, :, :), allocatable v
 meridional velocity [L T-1 ~> m s-1] More...
 
real, dimension(:, :, :), allocatable vh
 vh = v * h * dx at v grid points [H L2 T-1 ~> m3 s-1 or kg s-1] More...
 
real, dimension(:, :, :), allocatable vhtr
 accumulated meridional thickness fluxes to advect tracers [H L2 ~> m3 or kg] More...
 
real, dimension(:, :), allocatable ssh_rint
 A running time integral of the sea surface height [T m ~> s m]. More...
 
real, dimension(:, :), allocatable ave_ssh_ibc
 time-averaged (over a forcing time step) sea surface height with a correction for the inverse barometer [m] More...
 
real, dimension(:, :), allocatable eta_av_bc
 free surface height or column mass time averaged over the last baroclinic dynamics time step [H ~> m or kg m-2] More...
 
real, dimension(:,:), pointer hml => NULL()
 active mixed layer depth [Z ~> m] More...
 
real time_in_cycle
 The running time of the current time-stepping cycle in calls that step the dynamics, and also the length of the time integral of ssh_rint [T ~> s]. More...
 
real time_in_thermo_cycle
 The running time of the current time-stepping cycle in calls that step the thermodynamics [T ~> s]. More...
 
type(ocean_grid_type) g_in
 Input grid metric. More...
 
type(ocean_grid_type), pointer g => NULL()
 Model grid metric. More...
 
logical rotate_index = .false.
 True if index map is rotated. More...
 
type(verticalgrid_type), pointer gv => NULL()
 structure containing vertical grid info More...
 
type(unit_scale_type), pointer us => NULL()
 structure containing various unit conversion factors More...
 
type(thermo_var_ptrs) tv
 structure containing pointers to available thermodynamic fields More...
 
real t_dyn_rel_adv
 The time of the dynamics relative to tracer advection and lateral mixing [T ~> s], or equivalently the elapsed time since advectively updating the tracers. t_dyn_rel_adv is invariably positive and may span multiple coupling timesteps. More...
 
real t_dyn_rel_thermo
 The time of the dynamics relative to diabatic processes and remapping [T ~> s]. t_dyn_rel_thermo can be negative or positive depending on whether the diabatic processes are applied before or after the dynamics and may span multiple coupling timesteps. More...
 
real t_dyn_rel_diag
 The time of the diagnostics relative to diabatic processes and remapping [T ~> s]. t_dyn_rel_diag is always positive, since the diagnostics must lag. More...
 
logical preadv_h_stored = .false.
 If true, the thicknesses from before the advective cycle have been stored for use in diagnostics. More...
 
type(diag_ctrl) diag
 structure to regulate diagnostic output timing More...
 
type(vertvisc_type) visc
 structure containing vertical viscosities, bottom drag viscosities, and related fields More...
 
type(meke_type), pointer meke => NULL()
 structure containing fields related to the Mesoscale Eddy Kinetic Energy More...
 
logical adiabatic
 If true, there are no diapycnal mass fluxes, and no calls to routines to calculate or apply diapycnal fluxes. More...
 
logical diabatic_first
 If true, apply diabatic and thermodynamic processes before time stepping the dynamics. More...
 
logical use_ale_algorithm
 If true, use the ALE algorithm rather than layered isopycnal/stacked shallow water mode. This logical is set by calling the function useRegridding() from the MOM_regridding module. More...
 
logical offline_tracer_mode = .false.
 If true, step_offline() is called instead of step_MOM(). This is intended for running MOM6 in offline tracer mode. More...
 
type(time_type), pointer time
 pointer to the ocean clock More...
 
real dt
 (baroclinic) dynamics time step [T ~> s] More...
 
real dt_therm
 thermodynamics time step [T ~> s] More...
 
logical thermo_spans_coupling
 If true, thermodynamic and tracer time steps can span multiple coupled time steps. More...
 
integer nstep_tot = 0
 The total number of dynamic timesteps tcaaken so far in this run segment. More...
 
logical count_calls = .false.
 If true, count the calls to step_MOM, rather than the number of dynamics steps in nstep_tot. More...
 
logical debug
 If true, write verbose checksums for debugging purposes. More...
 
integer ntrunc
 number u,v truncations since last call to write_energy More...
 
integer cont_stencil
 The stencil for thickness from the continuity solver. More...
 
logical do_dynamics
 If false, does not call step_MOM_dyn_*. This is an undocumented run-time flag that is fragile. More...
 
logical split
 If true, use the split time stepping scheme. More...
 
logical use_rk2
 If true, use RK2 instead of RK3 in unsplit mode (i.e., no split between barotropic and baroclinic). More...
 
logical thickness_diffuse
 If true, diffuse interface height w/ a diffusivity KHTH. More...
 
logical thickness_diffuse_first
 If true, diffuse thickness before dynamics. More...
 
logical mixedlayer_restrat
 If true, use submesoscale mixed layer restratifying scheme. More...
 
logical usemeke
 If true, call the MEKE parameterization. More...
 
logical usewaves
 If true, update Stokes drift. More...
 
logical use_p_surf_in_eos
 If true, always include the surface pressure contributions in equation of state calculations. More...
 
real dtbt_reset_period
 The time interval between dynamic recalculation of the barotropic time step [s]. If this is negative dtbt is never calculated, and if it is 0, dtbt is calculated every step. More...
 
type(time_type) dtbt_reset_interval
 A time_time representation of dtbt_reset_period. More...
 
type(time_type) dtbt_reset_time
 The next time DTBT should be calculated. More...
 
real, dimension(:,:,:), pointer h_pre_dyn => NULL()
 The thickness before the transports [H ~> m or kg m-2]. More...
 
real, dimension(:,:,:), pointer t_pre_dyn => NULL()
 Temperature before the transports [degC]. More...
 
real, dimension(:,:,:), pointer s_pre_dyn => NULL()
 Salinity before the transports [ppt]. More...
 
type(accel_diag_ptrs) adp
 structure containing pointers to accelerations, for derived diagnostics (e.g., energy budgets) More...
 
type(cont_diag_ptrs) cdp
 structure containing pointers to continuity equation terms, for derived diagnostics (e.g., energy budgets) More...
 
real, dimension(:,:,:), pointer u_prev => NULL()
 previous value of u stored for diagnostics [L T-1 ~> m s-1] More...
 
real, dimension(:,:,:), pointer v_prev => NULL()
 previous value of v stored for diagnostics [L T-1 ~> m s-1] More...
 
logical interp_p_surf
 If true, linearly interpolate surface pressure over the coupling time step, using specified value at the end of the coupling step. False by default. More...
 
logical p_surf_prev_set
 If true, p_surf_prev has been properly set from a previous time-step or the ocean restart file. This is only valid when interp_p_surf is true. More...
 
real, dimension(:,:), pointer p_surf_prev => NULL()
 surface pressure [R L2 T-2 ~> Pa] at end previous call to step_MOM More...
 
real, dimension(:,:), pointer p_surf_begin => NULL()
 surface pressure [R L2 T-2 ~> Pa] at start of step_MOM_dyn_... More...
 
real, dimension(:,:), pointer p_surf_end => NULL()
 surface pressure [R L2 T-2 ~> Pa] at end of step_MOM_dyn_... More...
 
logical write_ic
 If true, then the initial conditions will be written to file. More...
 
character(len=120) ic_file
 A file into which the initial conditions are written in a new run if SAVE_INITIAL_CONDS is true. More...
 
logical calc_rho_for_sea_lev
 If true, calculate rho to convert pressure to sea level. More...
 
real hmix
 Diagnostic mixed layer thickness over which to average surface tracer properties when a bulk mixed layer is not used [Z ~> m], or a negative value if a bulk mixed layer is being used. More...
 
real hfrz
 If HFrz > 0, the nominal depth over which melt potential is computed [Z ~> m]. The actual depth over which melt potential is computed is min(HFrz, OBLD), where OBLD is the boundary layer depth. If HFrz <= 0 (default), melt potential will not be computed. More...
 
real hmix_uv
 Depth scale over which to average surface flow to feedback to the coupler/driver [Z ~> m] when bulk mixed layer is not used, or a negative value if a bulk mixed layer is being used. More...
 
logical check_bad_sfc_vals
 If true, scan surface state for ridiculous values. More...
 
real bad_val_ssh_max
 Maximum SSH before triggering bad value message [Z ~> m]. More...
 
real bad_val_sst_max
 Maximum SST before triggering bad value message [degC]. More...
 
real bad_val_sst_min
 Minimum SST before triggering bad value message [degC]. More...
 
real bad_val_sss_max
 Maximum SSS before triggering bad value message [ppt]. More...
 
real bad_val_col_thick
 Minimum column thickness before triggering bad value message [Z ~> m]. More...
 
logical answers_2018
 If true, use expressions for the surface properties that recover the answers from the end of 2018. Otherwise, use more appropriate expressions that differ at roundoff for non-Boussinsq cases. More...
 
type(mom_diag_idsids
 Handles used for diagnostics. More...
 
type(transport_diag_ids) transport_ids
 Handles used for transport diagnostics. More...
 
type(surface_diag_ids) sfc_ids
 Handles used for surface diagnostics. More...
 
type(diag_grid_storage) diag_pre_sync
 The grid (thicknesses) before remapping. More...
 
type(diag_grid_storage) diag_pre_dyn
 The grid (thicknesses) before dynamics. More...
 
type(mom_dyn_unsplit_cs), pointer dyn_unsplit_csp => NULL()
 Pointer to the control structure used for the unsplit dynamics. More...
 
type(mom_dyn_unsplit_rk2_cs), pointer dyn_unsplit_rk2_csp => NULL()
 Pointer to the control structure used for the unsplit RK2 dynamics. More...
 
type(mom_dyn_split_rk2_cs), pointer dyn_split_rk2_csp => NULL()
 Pointer to the control structure used for the mode-split RK2 dynamics. More...
 
type(thickness_diffuse_cs), pointer thickness_diffuse_csp => NULL()
 Pointer to the control structure used for the isopycnal height diffusive transport. This is also common referred to as Gent-McWilliams diffusion. More...
 
type(mixedlayer_restrat_cs), pointer mixedlayer_restrat_csp => NULL()
 Pointer to the control structure used for the mixed layer restratification. More...
 
type(set_visc_cs), pointer set_visc_csp => NULL()
 Pointer to the control structure used to set viscosities. More...
 
type(diabatic_cs), pointer diabatic_csp => NULL()
 Pointer to the control structure for the diabatic driver. More...
 
type(meke_cs), pointer meke_csp => NULL()
 Pointer to the control structure for the MEKE updates. More...
 
type(varmix_cs), pointer varmix => NULL()
 Pointer to the control structure for the variable mixing module. More...
 
type(barotropic_cs), pointer barotropic_csp => NULL()
 Pointer to the control structure for the barotropic module. More...
 
type(tracer_registry_type), pointer tracer_reg => NULL()
 Pointer to the MOM tracer registry. More...
 
type(tracer_advect_cs), pointer tracer_adv_csp => NULL()
 Pointer to the MOM tracer advection control structure. More...
 
type(tracer_hor_diff_cs), pointer tracer_diff_csp => NULL()
 Pointer to the MOM along-isopycnal tracer diffusion control structure. More...
 
type(tracer_flow_control_cs), pointer tracer_flow_csp => NULL()
 Pointer to the control structure that orchestrates the calling of tracer packages. More...
 
type(update_obc_cs), pointer update_obc_csp => NULL()
 Pointer to the control structure for updating open boundary condition properties. More...
 
type(ocean_obc_type), pointer obc => NULL()
 Pointer to the MOM open boundary condition type. More...
 
type(sponge_cs), pointer sponge_csp => NULL()
 Pointer to the layered-mode sponge control structure. More...
 
type(ale_sponge_cs), pointer ale_sponge_csp => NULL()
 Pointer to the ALE-mode sponge control structure. More...
 
type(ale_cs), pointer ale_csp => NULL()
 Pointer to the Arbitrary Lagrangian Eulerian (ALE) vertical coordinate control structure. More...
 
type(sum_output_cs), pointer sum_output_csp => NULL()
 Pointer to the globally summed output control structure. More...
 
type(diagnostics_cs), pointer diagnostics_csp => NULL()
 Pointer to the MOM diagnostics control structure. More...
 
type(offline_transport_cs), pointer offline_csp => NULL()
 Pointer to the offline tracer transport control structure. More...
 
logical ensemble_ocean
 if true, this run is part of a larger ensemble for the purpose of data assimilation or statistical analysis. More...
 
type(oda_cs), pointer odacs => NULL()
 a pointer to the control structure for handling ensemble model state vectors and data assimilation increments and priors More...
 

Detailed Description

Control structure for the MOM module, including the variables that describe the state of the ocean.

Definition at line 165 of file MOM.F90.

Member Data Documentation

◆ adiabatic

logical mom::mom_control_struct::adiabatic

If true, there are no diapycnal mass fluxes, and no calls to routines to calculate or apply diapycnal fluxes.

Definition at line 220 of file MOM.F90.

220  logical :: adiabatic !< If true, there are no diapycnal mass fluxes, and no calls

◆ adp

type(accel_diag_ptrs) mom::mom_control_struct::adp

structure containing pointers to accelerations, for derived diagnostics (e.g., energy budgets)

Definition at line 268 of file MOM.F90.

268  type(accel_diag_ptrs) :: adp !< structure containing pointers to accelerations,

◆ ale_csp

type(ale_cs), pointer mom::mom_control_struct::ale_csp => NULL()

Pointer to the Arbitrary Lagrangian Eulerian (ALE) vertical coordinate control structure.

Definition at line 364 of file MOM.F90.

364  type(ale_cs), pointer :: ale_csp => null()

◆ ale_sponge_csp

type(ale_sponge_cs), pointer mom::mom_control_struct::ale_sponge_csp => NULL()

Pointer to the ALE-mode sponge control structure.

Definition at line 362 of file MOM.F90.

362  type(ale_sponge_cs), pointer :: ale_sponge_csp => null()

◆ answers_2018

logical mom::mom_control_struct::answers_2018

If true, use expressions for the surface properties that recover the answers from the end of 2018. Otherwise, use more appropriate expressions that differ at roundoff for non-Boussinsq cases.

Definition at line 313 of file MOM.F90.

313  logical :: answers_2018 !< If true, use expressions for the surface properties that recover

◆ ave_ssh_ibc

real, dimension( : , : ), allocatable mom::mom_control_struct::ave_ssh_ibc

time-averaged (over a forcing time step) sea surface height with a correction for the inverse barometer [m]

Definition at line 180 of file MOM.F90.

180  real allocable_, dimension(NIMEM_,NJMEM_) :: ave_ssh_ibc

◆ bad_val_col_thick

real mom::mom_control_struct::bad_val_col_thick

Minimum column thickness before triggering bad value message [Z ~> m].

Definition at line 312 of file MOM.F90.

312  real :: bad_val_col_thick !< Minimum column thickness before triggering bad value message [Z ~> m]

◆ bad_val_ssh_max

real mom::mom_control_struct::bad_val_ssh_max

Maximum SSH before triggering bad value message [Z ~> m].

Definition at line 308 of file MOM.F90.

308  real :: bad_val_ssh_max !< Maximum SSH before triggering bad value message [Z ~> m]

◆ bad_val_sss_max

real mom::mom_control_struct::bad_val_sss_max

Maximum SSS before triggering bad value message [ppt].

Definition at line 311 of file MOM.F90.

311  real :: bad_val_sss_max !< Maximum SSS before triggering bad value message [ppt]

◆ bad_val_sst_max

real mom::mom_control_struct::bad_val_sst_max

Maximum SST before triggering bad value message [degC].

Definition at line 309 of file MOM.F90.

309  real :: bad_val_sst_max !< Maximum SST before triggering bad value message [degC]

◆ bad_val_sst_min

real mom::mom_control_struct::bad_val_sst_min

Minimum SST before triggering bad value message [degC].

Definition at line 310 of file MOM.F90.

310  real :: bad_val_sst_min !< Minimum SST before triggering bad value message [degC]

◆ barotropic_csp

type(barotropic_cs), pointer mom::mom_control_struct::barotropic_csp => NULL()

Pointer to the control structure for the barotropic module.

Definition at line 344 of file MOM.F90.

344  type(barotropic_cs), pointer :: barotropic_csp => null()

◆ calc_rho_for_sea_lev

logical mom::mom_control_struct::calc_rho_for_sea_lev

If true, calculate rho to convert pressure to sea level.

Definition at line 292 of file MOM.F90.

292  logical :: calc_rho_for_sea_lev !< If true, calculate rho to convert pressure to sea level

◆ cdp

type(cont_diag_ptrs) mom::mom_control_struct::cdp

structure containing pointers to continuity equation terms, for derived diagnostics (e.g., energy budgets)

Definition at line 270 of file MOM.F90.

270  type(cont_diag_ptrs) :: cdp !< structure containing pointers to continuity equation

◆ check_bad_sfc_vals

logical mom::mom_control_struct::check_bad_sfc_vals

If true, scan surface state for ridiculous values.

Definition at line 307 of file MOM.F90.

307  logical :: check_bad_sfc_vals !< If true, scan surface state for ridiculous values.

◆ cont_stencil

integer mom::mom_control_struct::cont_stencil

The stencil for thickness from the continuity solver.

Definition at line 243 of file MOM.F90.

243  integer :: cont_stencil !< The stencil for thickness from the continuity solver.

◆ count_calls

logical mom::mom_control_struct::count_calls = .false.

If true, count the calls to step_MOM, rather than the number of dynamics steps in nstep_tot.

Definition at line 238 of file MOM.F90.

238  logical :: count_calls = .false. !< If true, count the calls to step_MOM, rather than the

◆ debug

logical mom::mom_control_struct::debug

If true, write verbose checksums for debugging purposes.

Definition at line 240 of file MOM.F90.

240  logical :: debug !< If true, write verbose checksums for debugging purposes.

◆ diabatic_csp

type(diabatic_cs), pointer mom::mom_control_struct::diabatic_csp => NULL()

Pointer to the control structure for the diabatic driver.

Definition at line 338 of file MOM.F90.

338  type(diabatic_cs), pointer :: diabatic_csp => null()

◆ diabatic_first

logical mom::mom_control_struct::diabatic_first

If true, apply diabatic and thermodynamic processes before time stepping the dynamics.

Definition at line 222 of file MOM.F90.

222  logical :: diabatic_first !< If true, apply diabatic and thermodynamic processes before time

◆ diag

type(diag_ctrl) mom::mom_control_struct::diag

structure to regulate diagnostic output timing

Definition at line 215 of file MOM.F90.

215  type(diag_ctrl) :: diag !< structure to regulate diagnostic output timing

◆ diag_pre_dyn

type(diag_grid_storage) mom::mom_control_struct::diag_pre_dyn

The grid (thicknesses) before dynamics.

Definition at line 321 of file MOM.F90.

321  type(diag_grid_storage) :: diag_pre_dyn !< The grid (thicknesses) before dynamics

◆ diag_pre_sync

type(diag_grid_storage) mom::mom_control_struct::diag_pre_sync

The grid (thicknesses) before remapping.

Definition at line 320 of file MOM.F90.

320  type(diag_grid_storage) :: diag_pre_sync !< The grid (thicknesses) before remapping

◆ diagnostics_csp

type(diagnostics_cs), pointer mom::mom_control_struct::diagnostics_csp => NULL()

Pointer to the MOM diagnostics control structure.

Definition at line 370 of file MOM.F90.

370  type(diagnostics_cs), pointer :: diagnostics_csp => null()

◆ do_dynamics

logical mom::mom_control_struct::do_dynamics

If false, does not call step_MOM_dyn_*. This is an undocumented run-time flag that is fragile.

Definition at line 245 of file MOM.F90.

245  logical :: do_dynamics !< If false, does not call step_MOM_dyn_*. This is an

◆ dt

real mom::mom_control_struct::dt

(baroclinic) dynamics time step [T ~> s]

Definition at line 232 of file MOM.F90.

232  real :: dt !< (baroclinic) dynamics time step [T ~> s]

◆ dt_therm

real mom::mom_control_struct::dt_therm

thermodynamics time step [T ~> s]

Definition at line 233 of file MOM.F90.

233  real :: dt_therm !< thermodynamics time step [T ~> s]

◆ dtbt_reset_interval

type(time_type) mom::mom_control_struct::dtbt_reset_interval

A time_time representation of dtbt_reset_period.

Definition at line 260 of file MOM.F90.

260  type(time_type) :: dtbt_reset_interval !< A time_time representation of dtbt_reset_period.

◆ dtbt_reset_period

real mom::mom_control_struct::dtbt_reset_period

The time interval between dynamic recalculation of the barotropic time step [s]. If this is negative dtbt is never calculated, and if it is 0, dtbt is calculated every step.

Definition at line 257 of file MOM.F90.

257  real :: dtbt_reset_period !< The time interval between dynamic recalculation of the

◆ dtbt_reset_time

type(time_type) mom::mom_control_struct::dtbt_reset_time

The next time DTBT should be calculated.

Definition at line 261 of file MOM.F90.

261  type(time_type) :: dtbt_reset_time !< The next time DTBT should be calculated.

◆ dyn_split_rk2_csp

type(mom_dyn_split_rk2_cs), pointer mom::mom_control_struct::dyn_split_rk2_csp => NULL()

Pointer to the control structure used for the mode-split RK2 dynamics.

Definition at line 329 of file MOM.F90.

329  type(mom_dyn_split_rk2_cs), pointer :: dyn_split_rk2_csp => null()

◆ dyn_unsplit_csp

type(mom_dyn_unsplit_cs), pointer mom::mom_control_struct::dyn_unsplit_csp => NULL()

Pointer to the control structure used for the unsplit dynamics.

Definition at line 325 of file MOM.F90.

325  type(mom_dyn_unsplit_cs), pointer :: dyn_unsplit_csp => null()

◆ dyn_unsplit_rk2_csp

type(mom_dyn_unsplit_rk2_cs), pointer mom::mom_control_struct::dyn_unsplit_rk2_csp => NULL()

Pointer to the control structure used for the unsplit RK2 dynamics.

Definition at line 327 of file MOM.F90.

327  type(mom_dyn_unsplit_rk2_cs), pointer :: dyn_unsplit_rk2_csp => null()

◆ ensemble_ocean

logical mom::mom_control_struct::ensemble_ocean

if true, this run is part of a larger ensemble for the purpose of data assimilation or statistical analysis.

Definition at line 375 of file MOM.F90.

375  logical :: ensemble_ocean !< if true, this run is part of a

◆ eta_av_bc

real, dimension( : , : ), allocatable mom::mom_control_struct::eta_av_bc

free surface height or column mass time averaged over the last baroclinic dynamics time step [H ~> m or kg m-2]

Definition at line 183 of file MOM.F90.

183  real allocable_, dimension(NIMEM_,NJMEM_) :: eta_av_bc

◆ g

type(ocean_grid_type), pointer mom::mom_control_struct::g => NULL()

Model grid metric.

Definition at line 195 of file MOM.F90.

195  type(ocean_grid_type), pointer :: g => null() !< Model grid metric

◆ g_in

type(ocean_grid_type) mom::mom_control_struct::g_in

Input grid metric.

Definition at line 194 of file MOM.F90.

194  type(ocean_grid_type) :: g_in !< Input grid metric

◆ gv

type(verticalgrid_type), pointer mom::mom_control_struct::gv => NULL()

structure containing vertical grid info

Definition at line 198 of file MOM.F90.

198  type(verticalgrid_type), pointer :: &
199  gv => null() !< structure containing vertical grid info

◆ h

real, dimension( : , : , : ), allocatable mom::mom_control_struct::h

layer thickness [H ~> m or kg m-2]

Definition at line 166 of file MOM.F90.

166  real allocable_, dimension(NIMEM_,NJMEM_,NKMEM_) :: &
167  h, & !< layer thickness [H ~> m or kg m-2]
168  t, & !< potential temperature [degC]
169  s !< salinity [ppt]

◆ h_pre_dyn

real, dimension(:,:,:), pointer mom::mom_control_struct::h_pre_dyn => NULL()

The thickness before the transports [H ~> m or kg m-2].

Definition at line 264 of file MOM.F90.

264  real, dimension(:,:,:), pointer :: &
265  h_pre_dyn => null(), & !< The thickness before the transports [H ~> m or kg m-2].
266  t_pre_dyn => null(), & !< Temperature before the transports [degC].
267  s_pre_dyn => null() !< Salinity before the transports [ppt].

◆ hfrz

real mom::mom_control_struct::hfrz

If HFrz > 0, the nominal depth over which melt potential is computed [Z ~> m]. The actual depth over which melt potential is computed is min(HFrz, OBLD), where OBLD is the boundary layer depth. If HFrz <= 0 (default), melt potential will not be computed.

Definition at line 299 of file MOM.F90.

299  real :: hfrz !< If HFrz > 0, the nominal depth over which melt potential is

◆ hmix

real mom::mom_control_struct::hmix

Diagnostic mixed layer thickness over which to average surface tracer properties when a bulk mixed layer is not used [Z ~> m], or a negative value if a bulk mixed layer is being used.

Definition at line 295 of file MOM.F90.

295  real :: hmix !< Diagnostic mixed layer thickness over which to

◆ hmix_uv

real mom::mom_control_struct::hmix_uv

Depth scale over which to average surface flow to feedback to the coupler/driver [Z ~> m] when bulk mixed layer is not used, or a negative value if a bulk mixed layer is being used.

Definition at line 303 of file MOM.F90.

303  real :: hmix_uv !< Depth scale over which to average surface flow to

◆ hml

real, dimension(:,:), pointer mom::mom_control_struct::hml => NULL()

active mixed layer depth [Z ~> m]

Definition at line 186 of file MOM.F90.

186  real, dimension(:,:), pointer :: &
187  hml => null() !< active mixed layer depth [Z ~> m]

◆ ic_file

character(len=120) mom::mom_control_struct::ic_file

A file into which the initial conditions are written in a new run if SAVE_INITIAL_CONDS is true.

Definition at line 289 of file MOM.F90.

289  character(len=120) :: ic_file !< A file into which the initial conditions are

◆ ids

type(mom_diag_ids) mom::mom_control_struct::ids

Handles used for diagnostics.

Definition at line 317 of file MOM.F90.

317  type(mom_diag_ids) :: ids !< Handles used for diagnostics.

◆ interp_p_surf

logical mom::mom_control_struct::interp_p_surf

If true, linearly interpolate surface pressure over the coupling time step, using specified value at the end of the coupling step. False by default.

Definition at line 276 of file MOM.F90.

276  logical :: interp_p_surf !< If true, linearly interpolate surface pressure

◆ meke

type(meke_type), pointer mom::mom_control_struct::meke => NULL()

structure containing fields related to the Mesoscale Eddy Kinetic Energy

Definition at line 218 of file MOM.F90.

218  type(meke_type), pointer :: meke => null() !< structure containing fields

◆ meke_csp

type(meke_cs), pointer mom::mom_control_struct::meke_csp => NULL()

Pointer to the control structure for the MEKE updates.

Definition at line 340 of file MOM.F90.

340  type(meke_cs), pointer :: meke_csp => null()

◆ mixedlayer_restrat

logical mom::mom_control_struct::mixedlayer_restrat

If true, use submesoscale mixed layer restratifying scheme.

Definition at line 252 of file MOM.F90.

252  logical :: mixedlayer_restrat !< If true, use submesoscale mixed layer restratifying scheme.

◆ mixedlayer_restrat_csp

type(mixedlayer_restrat_cs), pointer mom::mom_control_struct::mixedlayer_restrat_csp => NULL()

Pointer to the control structure used for the mixed layer restratification.

Definition at line 334 of file MOM.F90.

334  type(mixedlayer_restrat_cs), pointer :: mixedlayer_restrat_csp => null()

◆ nstep_tot

integer mom::mom_control_struct::nstep_tot = 0

The total number of dynamic timesteps tcaaken so far in this run segment.

Definition at line 236 of file MOM.F90.

236  integer :: nstep_tot = 0 !< The total number of dynamic timesteps tcaaken

◆ ntrunc

integer mom::mom_control_struct::ntrunc

number u,v truncations since last call to write_energy

Definition at line 241 of file MOM.F90.

241  integer :: ntrunc !< number u,v truncations since last call to write_energy

◆ obc

type(ocean_obc_type), pointer mom::mom_control_struct::obc => NULL()

Pointer to the MOM open boundary condition type.

Definition at line 358 of file MOM.F90.

358  type(ocean_obc_type), pointer :: obc => null()

◆ odacs

type(oda_cs), pointer mom::mom_control_struct::odacs => NULL()

a pointer to the control structure for handling ensemble model state vectors and data assimilation increments and priors

Definition at line 378 of file MOM.F90.

378  type(oda_cs), pointer :: odacs => null() !< a pointer to the control structure for handling

◆ offline_csp

type(offline_transport_cs), pointer mom::mom_control_struct::offline_csp => NULL()

Pointer to the offline tracer transport control structure.

Definition at line 372 of file MOM.F90.

372  type(offline_transport_cs), pointer :: offline_csp => null()

◆ offline_tracer_mode

logical mom::mom_control_struct::offline_tracer_mode = .false.

If true, step_offline() is called instead of step_MOM(). This is intended for running MOM6 in offline tracer mode.

Definition at line 227 of file MOM.F90.

227  logical :: offline_tracer_mode = .false.

◆ p_surf_begin

real, dimension(:,:), pointer mom::mom_control_struct::p_surf_begin => NULL()

surface pressure [R L2 T-2 ~> Pa] at start of step_MOM_dyn_...

Definition at line 282 of file MOM.F90.

◆ p_surf_end

real, dimension(:,:), pointer mom::mom_control_struct::p_surf_end => NULL()

surface pressure [R L2 T-2 ~> Pa] at end of step_MOM_dyn_...

Definition at line 282 of file MOM.F90.

◆ p_surf_prev

real, dimension(:,:), pointer mom::mom_control_struct::p_surf_prev => NULL()

surface pressure [R L2 T-2 ~> Pa] at end previous call to step_MOM

Definition at line 282 of file MOM.F90.

282  real, dimension(:,:), pointer :: &
283  p_surf_prev => null(), & !< surface pressure [R L2 T-2 ~> Pa] at end previous call to step_MOM
284  p_surf_begin => null(), & !< surface pressure [R L2 T-2 ~> Pa] at start of step_MOM_dyn_...
285  p_surf_end => null() !< surface pressure [R L2 T-2 ~> Pa] at end of step_MOM_dyn_...

◆ p_surf_prev_set

logical mom::mom_control_struct::p_surf_prev_set

If true, p_surf_prev has been properly set from a previous time-step or the ocean restart file. This is only valid when interp_p_surf is true.

Definition at line 279 of file MOM.F90.

279  logical :: p_surf_prev_set !< If true, p_surf_prev has been properly set from

◆ preadv_h_stored

logical mom::mom_control_struct::preadv_h_stored = .false.

If true, the thicknesses from before the advective cycle have been stored for use in diagnostics.

Definition at line 212 of file MOM.F90.

212  logical :: preadv_h_stored = .false. !< If true, the thicknesses from before the advective cycle

◆ rotate_index

logical mom::mom_control_struct::rotate_index = .false.

True if index map is rotated.

Definition at line 196 of file MOM.F90.

196  logical :: rotate_index = .false. !< True if index map is rotated

◆ s

real, dimension( : , : , : ), allocatable mom::mom_control_struct::s

salinity [ppt]

Definition at line 166 of file MOM.F90.

◆ s_pre_dyn

real, dimension(:,:,:), pointer mom::mom_control_struct::s_pre_dyn => NULL()

Salinity before the transports [ppt].

Definition at line 264 of file MOM.F90.

◆ set_visc_csp

type(set_visc_cs), pointer mom::mom_control_struct::set_visc_csp => NULL()

Pointer to the control structure used to set viscosities.

Definition at line 336 of file MOM.F90.

336  type(set_visc_cs), pointer :: set_visc_csp => null()

◆ sfc_ids

type(surface_diag_ids) mom::mom_control_struct::sfc_ids

Handles used for surface diagnostics.

Definition at line 319 of file MOM.F90.

319  type(surface_diag_ids) :: sfc_ids !< Handles used for surface diagnostics.

◆ split

logical mom::mom_control_struct::split

If true, use the split time stepping scheme.

Definition at line 247 of file MOM.F90.

247  logical :: split !< If true, use the split time stepping scheme.

◆ sponge_csp

type(sponge_cs), pointer mom::mom_control_struct::sponge_csp => NULL()

Pointer to the layered-mode sponge control structure.

Definition at line 360 of file MOM.F90.

360  type(sponge_cs), pointer :: sponge_csp => null()

◆ ssh_rint

real, dimension( : , : ), allocatable mom::mom_control_struct::ssh_rint

A running time integral of the sea surface height [T m ~> s m].

Definition at line 178 of file MOM.F90.

178  real allocable_, dimension(NIMEM_,NJMEM_) :: ssh_rint

◆ sum_output_csp

type(sum_output_cs), pointer mom::mom_control_struct::sum_output_csp => NULL()

Pointer to the globally summed output control structure.

Definition at line 368 of file MOM.F90.

368  type(sum_output_cs), pointer :: sum_output_csp => null()

◆ t

real, dimension( : , : , : ), allocatable mom::mom_control_struct::t

potential temperature [degC]

Definition at line 166 of file MOM.F90.

◆ t_dyn_rel_adv

real mom::mom_control_struct::t_dyn_rel_adv

The time of the dynamics relative to tracer advection and lateral mixing [T ~> s], or equivalently the elapsed time since advectively updating the tracers. t_dyn_rel_adv is invariably positive and may span multiple coupling timesteps.

Definition at line 203 of file MOM.F90.

203  real :: t_dyn_rel_adv !< The time of the dynamics relative to tracer advection and lateral mixing

◆ t_dyn_rel_diag

real mom::mom_control_struct::t_dyn_rel_diag

The time of the diagnostics relative to diabatic processes and remapping [T ~> s]. t_dyn_rel_diag is always positive, since the diagnostics must lag.

Definition at line 210 of file MOM.F90.

210  real :: t_dyn_rel_diag !< The time of the diagnostics relative to diabatic processes and remapping

◆ t_dyn_rel_thermo

real mom::mom_control_struct::t_dyn_rel_thermo

The time of the dynamics relative to diabatic processes and remapping [T ~> s]. t_dyn_rel_thermo can be negative or positive depending on whether the diabatic processes are applied before or after the dynamics and may span multiple coupling timesteps.

Definition at line 206 of file MOM.F90.

206  real :: t_dyn_rel_thermo !< The time of the dynamics relative to diabatic processes and remapping

◆ t_pre_dyn

real, dimension(:,:,:), pointer mom::mom_control_struct::t_pre_dyn => NULL()

Temperature before the transports [degC].

Definition at line 264 of file MOM.F90.

◆ thermo_spans_coupling

logical mom::mom_control_struct::thermo_spans_coupling

If true, thermodynamic and tracer time steps can span multiple coupled time steps.

Definition at line 234 of file MOM.F90.

234  logical :: thermo_spans_coupling !< If true, thermodynamic and tracer time

◆ thickness_diffuse

logical mom::mom_control_struct::thickness_diffuse

If true, diffuse interface height w/ a diffusivity KHTH.

Definition at line 250 of file MOM.F90.

250  logical :: thickness_diffuse !< If true, diffuse interface height w/ a diffusivity KHTH.

◆ thickness_diffuse_csp

type(thickness_diffuse_cs), pointer mom::mom_control_struct::thickness_diffuse_csp => NULL()

Pointer to the control structure used for the isopycnal height diffusive transport. This is also common referred to as Gent-McWilliams diffusion.

Definition at line 331 of file MOM.F90.

331  type(thickness_diffuse_cs), pointer :: thickness_diffuse_csp => null()

◆ thickness_diffuse_first

logical mom::mom_control_struct::thickness_diffuse_first

If true, diffuse thickness before dynamics.

Definition at line 251 of file MOM.F90.

251  logical :: thickness_diffuse_first !< If true, diffuse thickness before dynamics.

◆ time

type(time_type), pointer mom::mom_control_struct::time

pointer to the ocean clock

Definition at line 231 of file MOM.F90.

231  type(time_type), pointer :: time !< pointer to the ocean clock

◆ time_in_cycle

real mom::mom_control_struct::time_in_cycle

The running time of the current time-stepping cycle in calls that step the dynamics, and also the length of the time integral of ssh_rint [T ~> s].

Definition at line 188 of file MOM.F90.

188  real :: time_in_cycle !< The running time of the current time-stepping cycle

◆ time_in_thermo_cycle

real mom::mom_control_struct::time_in_thermo_cycle

The running time of the current time-stepping cycle in calls that step the thermodynamics [T ~> s].

Definition at line 191 of file MOM.F90.

191  real :: time_in_thermo_cycle !< The running time of the current time-stepping

◆ tracer_adv_csp

type(tracer_advect_cs), pointer mom::mom_control_struct::tracer_adv_csp => NULL()

Pointer to the MOM tracer advection control structure.

Definition at line 348 of file MOM.F90.

348  type(tracer_advect_cs), pointer :: tracer_adv_csp => null()

◆ tracer_diff_csp

type(tracer_hor_diff_cs), pointer mom::mom_control_struct::tracer_diff_csp => NULL()

Pointer to the MOM along-isopycnal tracer diffusion control structure.

Definition at line 350 of file MOM.F90.

350  type(tracer_hor_diff_cs), pointer :: tracer_diff_csp => null()

◆ tracer_flow_csp

type(tracer_flow_control_cs), pointer mom::mom_control_struct::tracer_flow_csp => NULL()

Pointer to the control structure that orchestrates the calling of tracer packages.

Definition at line 352 of file MOM.F90.

352  type(tracer_flow_control_cs), pointer :: tracer_flow_csp => null()

◆ tracer_reg

type(tracer_registry_type), pointer mom::mom_control_struct::tracer_reg => NULL()

Pointer to the MOM tracer registry.

Definition at line 346 of file MOM.F90.

346  type(tracer_registry_type), pointer :: tracer_reg => null()

◆ transport_ids

type(transport_diag_ids) mom::mom_control_struct::transport_ids

Handles used for transport diagnostics.

Definition at line 318 of file MOM.F90.

318  type(transport_diag_ids) :: transport_ids !< Handles used for transport diagnostics.

◆ tv

type(thermo_var_ptrs) mom::mom_control_struct::tv

structure containing pointers to available thermodynamic fields

Definition at line 202 of file MOM.F90.

202  type(thermo_var_ptrs) :: tv !< structure containing pointers to available thermodynamic fields

◆ u

real, dimension( : , : , : ), allocatable mom::mom_control_struct::u

zonal velocity component [L T-1 ~> m s-1]

Definition at line 170 of file MOM.F90.

170  real allocable_, dimension(NIMEMB_PTR_,NJMEM_,NKMEM_) :: &
171  u, & !< zonal velocity component [L T-1 ~> m s-1]
172  uh, & !< uh = u * h * dy at u grid points [H L2 T-1 ~> m3 s-1 or kg s-1]
173  uhtr !< accumulated zonal thickness fluxes to advect tracers [H L2 ~> m3 or kg]

◆ u_prev

real, dimension(:,:,:), pointer mom::mom_control_struct::u_prev => NULL()

previous value of u stored for diagnostics [L T-1 ~> m s-1]

Definition at line 272 of file MOM.F90.

272  real, dimension(:,:,:), pointer :: &
273  u_prev => null(), & !< previous value of u stored for diagnostics [L T-1 ~> m s-1]
274  v_prev => null() !< previous value of v stored for diagnostics [L T-1 ~> m s-1]

◆ uh

real, dimension( : , : , : ), allocatable mom::mom_control_struct::uh

uh = u * h * dy at u grid points [H L2 T-1 ~> m3 s-1 or kg s-1]

Definition at line 170 of file MOM.F90.

◆ uhtr

real, dimension( : , : , : ), allocatable mom::mom_control_struct::uhtr

accumulated zonal thickness fluxes to advect tracers [H L2 ~> m3 or kg]

Definition at line 170 of file MOM.F90.

◆ update_obc_csp

type(update_obc_cs), pointer mom::mom_control_struct::update_obc_csp => NULL()

Pointer to the control structure for updating open boundary condition properties.

Definition at line 356 of file MOM.F90.

356  type(update_obc_cs), pointer :: update_obc_csp => null()

◆ us

type(unit_scale_type), pointer mom::mom_control_struct::us => NULL()

structure containing various unit conversion factors

Definition at line 200 of file MOM.F90.

200  type(unit_scale_type), pointer :: &
201  us => null() !< structure containing various unit conversion factors

◆ use_ale_algorithm

logical mom::mom_control_struct::use_ale_algorithm

If true, use the ALE algorithm rather than layered isopycnal/stacked shallow water mode. This logical is set by calling the function useRegridding() from the MOM_regridding module.

Definition at line 224 of file MOM.F90.

224  logical :: use_ale_algorithm !< If true, use the ALE algorithm rather than layered

◆ use_p_surf_in_eos

logical mom::mom_control_struct::use_p_surf_in_eos

If true, always include the surface pressure contributions in equation of state calculations.

Definition at line 255 of file MOM.F90.

255  logical :: use_p_surf_in_eos !< If true, always include the surface pressure contributions

◆ use_rk2

logical mom::mom_control_struct::use_rk2

If true, use RK2 instead of RK3 in unsplit mode (i.e., no split between barotropic and baroclinic).

Definition at line 248 of file MOM.F90.

248  logical :: use_rk2 !< If true, use RK2 instead of RK3 in unsplit mode

◆ usemeke

logical mom::mom_control_struct::usemeke

If true, call the MEKE parameterization.

Definition at line 253 of file MOM.F90.

253  logical :: usemeke !< If true, call the MEKE parameterization.

◆ usewaves

logical mom::mom_control_struct::usewaves

If true, update Stokes drift.

Definition at line 254 of file MOM.F90.

254  logical :: usewaves !< If true, update Stokes drift

◆ v

real, dimension( : , : , : ), allocatable mom::mom_control_struct::v

meridional velocity [L T-1 ~> m s-1]

Definition at line 174 of file MOM.F90.

174  real allocable_, dimension(NIMEM_,NJMEMB_PTR_,NKMEM_) :: &
175  v, & !< meridional velocity [L T-1 ~> m s-1]
176  vh, & !< vh = v * h * dx at v grid points [H L2 T-1 ~> m3 s-1 or kg s-1]
177  vhtr !< accumulated meridional thickness fluxes to advect tracers [H L2 ~> m3 or kg]

◆ v_prev

real, dimension(:,:,:), pointer mom::mom_control_struct::v_prev => NULL()

previous value of v stored for diagnostics [L T-1 ~> m s-1]

Definition at line 272 of file MOM.F90.

◆ varmix

type(varmix_cs), pointer mom::mom_control_struct::varmix => NULL()

Pointer to the control structure for the variable mixing module.

Definition at line 342 of file MOM.F90.

342  type(varmix_cs), pointer :: varmix => null()

◆ vh

real, dimension( : , : , : ), allocatable mom::mom_control_struct::vh

vh = v * h * dx at v grid points [H L2 T-1 ~> m3 s-1 or kg s-1]

Definition at line 174 of file MOM.F90.

◆ vhtr

real, dimension( : , : , : ), allocatable mom::mom_control_struct::vhtr

accumulated meridional thickness fluxes to advect tracers [H L2 ~> m3 or kg]

Definition at line 174 of file MOM.F90.

◆ visc

type(vertvisc_type) mom::mom_control_struct::visc

structure containing vertical viscosities, bottom drag viscosities, and related fields

Definition at line 216 of file MOM.F90.

216  type(vertvisc_type) :: visc !< structure containing vertical viscosities,

◆ write_ic

logical mom::mom_control_struct::write_ic

If true, then the initial conditions will be written to file.

Definition at line 288 of file MOM.F90.

288  logical :: write_ic !< If true, then the initial conditions will be written to file

The documentation for this type was generated from the following file: