MOM6
mom::mom_control_struct Type Reference

Detailed Description

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

Definition at line 153 of file MOM.F90.

Collaboration diagram for mom::mom_control_struct:
[legend]

Public variables and constants

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 [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
 structure containing metrics and grid info 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...
 
integer ndyn_per_adv = 0
 Number of calls to dynamics since the last call to advection. 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...
 
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...
 
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 [Pa] at end previous call to step_MOM More...
 
real, dimension(:,:), pointer p_surf_begin => NULL()
 surface pressure [Pa] at start of step_MOM_dyn_... More...
 
real, dimension(:,:), pointer p_surf_end => NULL()
 surface pressure [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, melt potential will be computed. The actual depth over which melt potential is computed will 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 [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 [m]. 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...
 

Variables and constants

◆ 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 205 of file MOM.F90.

205  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 250 of file MOM.F90.

250  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 342 of file MOM.F90.

342  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 340 of file MOM.F90.

340  type(ALE_sponge_CS), pointer :: ALE_sponge_CSp => null()

◆ 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 168 of file MOM.F90.

168  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 [m].

Definition at line 294 of file MOM.F90.

294  real :: bad_val_col_thick !< Minimum column thickness before triggering bad value message [m]

◆ bad_val_ssh_max

real mom::mom_control_struct::bad_val_ssh_max

Maximum SSH before triggering bad value message [m].

Definition at line 290 of file MOM.F90.

290  real :: bad_val_ssh_max !< Maximum SSH before triggering bad value message [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 293 of file MOM.F90.

293  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 291 of file MOM.F90.

291  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 292 of file MOM.F90.

292  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 323 of file MOM.F90.

323  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 274 of file MOM.F90.

274  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 252 of file MOM.F90.

252  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 289 of file MOM.F90.

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

◆ 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 223 of file MOM.F90.

223  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 225 of file MOM.F90.

225  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 317 of file MOM.F90.

317  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 207 of file MOM.F90.

207  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 200 of file MOM.F90.

200  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 300 of file MOM.F90.

300  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 299 of file MOM.F90.

299  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 348 of file MOM.F90.

348  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 229 of file MOM.F90.

229  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 217 of file MOM.F90.

217  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 218 of file MOM.F90.

218  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 242 of file MOM.F90.

242  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 239 of file MOM.F90.

239  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 243 of file MOM.F90.

243  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 308 of file MOM.F90.

308  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 304 of file MOM.F90.

304  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 306 of file MOM.F90.

306  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 353 of file MOM.F90.

353  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 171 of file MOM.F90.

171  real ALLOCABLE_, dimension(NIMEM_,NJMEM_) :: eta_av_bc

◆ g

type(ocean_grid_type) mom::mom_control_struct::g

structure containing metrics and grid info

Definition at line 182 of file MOM.F90.

182  type(ocean_grid_type) :: G !< structure containing metrics and grid info

◆ gv

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

structure containing vertical grid info

Definition at line 183 of file MOM.F90.

183  type(verticalGrid_type), pointer :: &
184  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 154 of file MOM.F90.

154  real ALLOCABLE_, dimension(NIMEM_,NJMEM_,NKMEM_) :: &
155  h, & !< layer thickness [H ~> m or kg m-2]
156  T, & !< potential temperature [degC]
157  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 246 of file MOM.F90.

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

◆ hfrz

real mom::mom_control_struct::hfrz

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

Definition at line 281 of file MOM.F90.

281  real :: HFrz !< If HFrz > 0, melt potential will be computed.

◆ 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 277 of file MOM.F90.

277  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 285 of file MOM.F90.

285  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 [m]

Definition at line 174 of file MOM.F90.

174  real, dimension(:,:), pointer :: &
175  Hml => null() !< active mixed layer depth [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 271 of file MOM.F90.

271  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 296 of file MOM.F90.

296  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 258 of file MOM.F90.

258  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 203 of file MOM.F90.

203  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 319 of file MOM.F90.

319  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 236 of file MOM.F90.

236  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 313 of file MOM.F90.

313  type(mixedlayer_restrat_CS), pointer :: mixedlayer_restrat_CSp => null()

◆ ndyn_per_adv

integer mom::mom_control_struct::ndyn_per_adv = 0

Number of calls to dynamics since the last call to advection.

Definition at line 197 of file MOM.F90.

197  integer :: ndyn_per_adv = 0 !< Number of calls to dynamics since the last call to advection.

◆ 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 221 of file MOM.F90.

221  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 226 of file MOM.F90.

226  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 336 of file MOM.F90.

336  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 356 of file MOM.F90.

356  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 350 of file MOM.F90.

350  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 212 of file MOM.F90.

212  logical :: offline_tracer_mode = .false.

◆ p_surf_begin

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

surface pressure [Pa] at start of step_MOM_dyn_...

Definition at line 264 of file MOM.F90.

◆ p_surf_end

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

surface pressure [Pa] at end of step_MOM_dyn_...

Definition at line 264 of file MOM.F90.

◆ p_surf_prev

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

surface pressure [Pa] at end previous call to step_MOM

Definition at line 264 of file MOM.F90.

264  real, dimension(:,:), pointer :: &
265  p_surf_prev => null(), & !< surface pressure [Pa] at end previous call to step_MOM
266  p_surf_begin => null(), & !< surface pressure [Pa] at start of step_MOM_dyn_...
267  p_surf_end => null() !< surface pressure [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 261 of file MOM.F90.

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

◆ s

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

salinity [ppt]

Definition at line 154 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 246 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 315 of file MOM.F90.

315  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 298 of file MOM.F90.

298  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 231 of file MOM.F90.

231  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 338 of file MOM.F90.

338  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 166 of file MOM.F90.

166  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 346 of file MOM.F90.

346  type(sum_output_CS), pointer :: sum_output_CSp => null()

◆ t

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

potential temperature [degC]

Definition at line 154 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 188 of file MOM.F90.

188  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 195 of file MOM.F90.

195  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 191 of file MOM.F90.

191  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 246 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 219 of file MOM.F90.

219  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 234 of file MOM.F90.

234  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 310 of file MOM.F90.

310  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 235 of file MOM.F90.

235  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 216 of file MOM.F90.

216  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 176 of file MOM.F90.

176  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 179 of file MOM.F90.

179  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 327 of file MOM.F90.

327  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 329 of file MOM.F90.

329  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 331 of file MOM.F90.

331  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 325 of file MOM.F90.

325  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 297 of file MOM.F90.

297  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 187 of file MOM.F90.

187  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 158 of file MOM.F90.

158  real ALLOCABLE_, dimension(NIMEMB_PTR_,NJMEM_,NKMEM_) :: &
159  u, & !< zonal velocity component [L T-1 ~> m s-1]
160  uh, & !< uh = u * h * dy at u grid points [H L2 T-1 ~> m3 s-1 or kg s-1]
161  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 254 of file MOM.F90.

254  real, dimension(:,:,:), pointer :: &
255  u_prev => null(), & !< previous value of u stored for diagnostics [L T-1 ~> m s-1]
256  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 158 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 158 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 334 of file MOM.F90.

334  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 185 of file MOM.F90.

185  type(unit_scale_type), pointer :: &
186  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 209 of file MOM.F90.

209  logical :: use_ALE_algorithm !< If true, use the ALE algorithm rather than layered

◆ 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 232 of file MOM.F90.

232  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 237 of file MOM.F90.

237  logical :: useMEKE !< If true, call the MEKE parameterization.

◆ usewaves

logical mom::mom_control_struct::usewaves

If true, update Stokes drift.

Definition at line 238 of file MOM.F90.

238  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 162 of file MOM.F90.

162  real ALLOCABLE_, dimension(NIMEM_,NJMEMB_PTR_,NKMEM_) :: &
163  v, & !< meridional velocity [L T-1 ~> m s-1]
164  vh, & !< vh = v * h * dx at v grid points [H L2 T-1 ~> m3 s-1 or kg s-1]
165  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 254 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 321 of file MOM.F90.

321  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 162 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 162 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 201 of file MOM.F90.

201  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 270 of file MOM.F90.

270  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: