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 152 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]
 
real, dimension(:, :, :), allocatable t
 potential temperature [degC]
 
real, dimension(:, :, :), allocatable s
 salinity [ppt]
 
real, dimension(:, :, :), allocatable u
 zonal velocity component [m s-1]
 
real, dimension(:, :, :), allocatable uh
 uh = u * h * dy at u grid points [H m2 s-1 ~> m3 s-1 or kg s-1]
 
real, dimension(:, :, :), allocatable uhtr
 accumulated zonal thickness fluxes to advect tracers [H m2 ~> m3 or kg]
 
real, dimension(:, :, :), allocatable v
 meridional velocity [m s-1]
 
real, dimension(:, :, :), allocatable vh
 vh = v * h * dx at v grid points [H m2 s-1 ~> m3 s-1 or kg s-1]
 
real, dimension(:, :, :), allocatable vhtr
 accumulated meridional thickness fluxes to advect tracers [H m2 ~> m3 or kg]
 
real, dimension(:, :), allocatable ssh_rint
 A running time integral of the sea surface height [s m].
 
real, dimension(:, :), allocatable ave_ssh_ibc
 time-averaged (over a forcing time step) sea surface height with a correction for the inverse barometer [m]
 
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]
 
real, dimension(:,:), pointer hml => NULL()
 active mixed layer depth [m]
 
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 [s].
 
real time_in_thermo_cycle
 The running time of the current time-stepping cycle in calls that step the thermodynamics [s].
 
type(ocean_grid_type) g
 structure containing metrics and grid info
 
type(verticalgrid_type), pointer gv => NULL()
 structure containing vertical grid info
 
type(unit_scale_type), pointer us => NULL()
 structure containing various unit conversion factors
 
type(thermo_var_ptrs) tv
 structure containing pointers to available thermodynamic fields
 
real t_dyn_rel_adv
 The time of the dynamics relative to tracer advection and lateral mixing (in seconds), or equivalently the elapsed time since advectively updating the tracers. t_dyn_rel_adv is invariably positive and may span multiple coupling timesteps.
 
real t_dyn_rel_thermo
 The time of the dynamics relative to diabatic processes and remapping (in seconds). 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.
 
real t_dyn_rel_diag
 The time of the diagnostics relative to diabatic processes and remapping (in seconds). t_dyn_rel_diag is always positive, since the diagnostics must lag.
 
integer ndyn_per_adv = 0
 Number of calls to dynamics since the last call to advection.
 
type(diag_ctrl) diag
 structure to regulate diagnostic output timing
 
type(vertvisc_type) visc
 structure containing vertical viscosities, bottom drag viscosities, and related fields
 
type(meke_type), pointer meke => NULL()
 structure containing fields related to the Mesoscale Eddy Kinetic Energy
 
logical adiabatic
 If true, there are no diapycnal mass fluxes, and no calls to routines to calculate or apply diapycnal fluxes.
 
logical diabatic_first
 If true, apply diabatic and thermodynamic processes before time stepping the dynamics.
 
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.
 
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.
 
type(time_type), pointer time
 pointer to the ocean clock
 
real dt
 (baroclinic) dynamics time step [s]
 
real dt_therm
 thermodynamics time step [s]
 
logical thermo_spans_coupling
 If true, thermodynamic and tracer time steps can span multiple coupled time steps.
 
integer nstep_tot = 0
 The total number of dynamic timesteps tcaaken so far in this run segment.
 
logical count_calls = .false.
 If true, count the calls to step_MOM, rather than the number of dynamics steps in nstep_tot.
 
logical debug
 If true, write verbose checksums for debugging purposes.
 
integer ntrunc
 number u,v truncations since last call to write_energy
 
logical do_dynamics
 If false, does not call step_MOM_dyn_*. This is an undocumented run-time flag that is fragile.
 
logical split
 If true, use the split time stepping scheme.
 
logical use_rk2
 If true, use RK2 instead of RK3 in unsplit mode (i.e., no split between barotropic and baroclinic).
 
logical thickness_diffuse
 If true, diffuse interface height w/ a diffusivity KHTH.
 
logical thickness_diffuse_first
 If true, diffuse thickness before dynamics.
 
logical mixedlayer_restrat
 If true, use submesoscale mixed layer restratifying scheme.
 
logical usemeke
 If true, call the MEKE parameterization.
 
logical usewaves
 If true, update Stokes drift.
 
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.
 
type(time_type) dtbt_reset_interval
 A time_time representation of dtbt_reset_period.
 
type(time_type) dtbt_reset_time
 The next time DTBT should be calculated.
 
real, dimension(:,:,:), pointer h_pre_dyn => NULL()
 The thickness before the transports [H ~> m or kg m-2].
 
real, dimension(:,:,:), pointer t_pre_dyn => NULL()
 Temperature before the transports [degC].
 
real, dimension(:,:,:), pointer s_pre_dyn => NULL()
 Salinity before the transports [ppt].
 
type(accel_diag_ptrs) adp
 structure containing pointers to accelerations, for derived diagnostics (e.g., energy budgets)
 
type(cont_diag_ptrs) cdp
 structure containing pointers to continuity equation terms, for derived diagnostics (e.g., energy budgets)
 
real, dimension(:,:,:), pointer u_prev => NULL()
 previous value of u stored for diagnostics [m s-1]
 
real, dimension(:,:,:), pointer v_prev => NULL()
 previous value of v stored for diagnostics [m s-1]
 
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.
 
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.
 
real, dimension(:,:), pointer p_surf_prev => NULL()
 surface pressure [Pa] at end previous call to step_MOM
 
real, dimension(:,:), pointer p_surf_begin => NULL()
 surface pressure [Pa] at start of step_MOM_dyn_...
 
real, dimension(:,:), pointer p_surf_end => NULL()
 surface pressure [Pa] at end of step_MOM_dyn_...
 
logical write_ic
 If true, then the initial conditions will be written to file.
 
character(len=120) ic_file
 A file into which the initial conditions are written in a new run if SAVE_INITIAL_CONDS is true.
 
logical calc_rho_for_sea_lev
 If true, calculate rho to convert pressure to sea level.
 
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.
 
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.
 
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.
 
logical check_bad_sfc_vals
 If true, scan surface state for ridiculous values.
 
real bad_val_ssh_max
 Maximum SSH before triggering bad value message [m].
 
real bad_val_sst_max
 Maximum SST before triggering bad value message [degC].
 
real bad_val_sst_min
 Minimum SST before triggering bad value message [degC].
 
real bad_val_sss_max
 Maximum SSS before triggering bad value message [ppt].
 
real bad_val_col_thick
 Minimum column thickness before triggering bad value message [m].
 
type(mom_diag_idsids
 Handles used for diagnostics.
 
type(transport_diag_ids) transport_ids
 Handles used for transport diagnostics.
 
type(surface_diag_ids) sfc_ids
 Handles used for surface diagnostics.
 
type(diag_grid_storage) diag_pre_sync
 The grid (thicknesses) before remapping.
 
type(diag_grid_storage) diag_pre_dyn
 The grid (thicknesses) before dynamics.
 
type(mom_dyn_unsplit_cs), pointer dyn_unsplit_csp => NULL()
 Pointer to the control structure used for the unsplit dynamics.
 
type(mom_dyn_unsplit_rk2_cs), pointer dyn_unsplit_rk2_csp => NULL()
 Pointer to the control structure used for the unsplit RK2 dynamics.
 
type(mom_dyn_split_rk2_cs), pointer dyn_split_rk2_csp => NULL()
 Pointer to the control structure used for the mode-split RK2 dynamics.
 
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.
 
type(mixedlayer_restrat_cs), pointer mixedlayer_restrat_csp => NULL()
 Pointer to the control structure used for the mixed layer restratification.
 
type(set_visc_cs), pointer set_visc_csp => NULL()
 Pointer to the control structure used to set viscosities.
 
type(diabatic_cs), pointer diabatic_csp => NULL()
 Pointer to the control structure for the diabatic driver.
 
type(meke_cs), pointer meke_csp => NULL()
 Pointer to the control structure for the MEKE updates.
 
type(varmix_cs), pointer varmix => NULL()
 Pointer to the control structure for the variable mixing module.
 
type(barotropic_cs), pointer barotropic_csp => NULL()
 Pointer to the control structure for the barotropic module.
 
type(tracer_registry_type), pointer tracer_reg => NULL()
 Pointer to the MOM tracer registry.
 
type(tracer_advect_cs), pointer tracer_adv_csp => NULL()
 Pointer to the MOM tracer advection control structure.
 
type(tracer_hor_diff_cs), pointer tracer_diff_csp => NULL()
 Pointer to the MOM along-isopycnal tracer diffusion control structure.
 
type(tracer_flow_control_cs), pointer tracer_flow_csp => NULL()
 Pointer to the control structure that orchestrates the calling of tracer packages.
 
type(update_obc_cs), pointer update_obc_csp => NULL()
 Pointer to the control structure for updating open boundary condition properties.
 
type(ocean_obc_type), pointer obc => NULL()
 Pointer to the MOM open boundary condition type.
 
type(sponge_cs), pointer sponge_csp => NULL()
 Pointer to the layered-mode sponge control structure.
 
type(ale_sponge_cs), pointer ale_sponge_csp => NULL()
 Pointer to the ALE-mode sponge control structure.
 
type(ale_cs), pointer ale_csp => NULL()
 Pointer to the Arbitrary Lagrangian Eulerian (ALE) vertical coordinate control structure.
 
type(sum_output_cs), pointer sum_output_csp => NULL()
 Pointer to the globally summed output control structure.
 
type(diagnostics_cs), pointer diagnostics_csp => NULL()
 Pointer to the MOM diagnostics control structure.
 
type(offline_transport_cs), pointer offline_csp => NULL()
 Pointer to the offline tracer transport control structure.
 
logical ensemble_ocean
 if true, this run is part of a larger ensemble for the purpose of data assimilation or statistical analysis.
 
type(oda_cs), pointer odacs => NULL()
 a pointer to the control structure for handling ensemble model state vectors and data assimilation increments and priors
 

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