MOM6
|
The barotropic stepping control stucture.
Definition at line 100 of file MOM_barotropic.F90.
Public variables and constants | |
real, dimension(:, :, :), allocatable | frhatu |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
real, dimension(:, :, :), allocatable | frhatv |
The fraction of the total column thickness interpolated to v grid points in each layer [nondim]. | |
real, dimension(:, :), allocatable | idatu |
Inverse of the basin depth at u grid points [Z-1 ~> m-1]. | |
real, dimension(:, :), allocatable | lin_drag_u |
A spatially varying linear drag coefficient acting on the zonal barotropic flow [H T-1 ~> m s-1 or kg m-2 s-1]. | |
real, dimension(:, :), allocatable | uhbt_ic |
The barotropic solvers estimate of the zonal transport as the initial condition for the next call to btstep [H L2 T-1 ~> m3 s-1 or kg s-1]. | |
real, dimension(:, :), allocatable | ubt_ic |
The barotropic solvers estimate of the zonal velocity that will be the initial condition for the next call to btstep [L T-1 ~> m s-1]. | |
real, dimension(:, :), allocatable | ubtav |
The barotropic zonal velocity averaged over the baroclinic time step [L T-1 ~> m s-1]. | |
real, dimension(:, :), allocatable | idatv |
Inverse of the basin depth at v grid points [Z-1 ~> m-1]. | |
real, dimension(:, :), allocatable | lin_drag_v |
A spatially varying linear drag coefficient acting on the zonal barotropic flow [H T-1 ~> m s-1 or kg m-2 s-1]. | |
real, dimension(:, :), allocatable | vhbt_ic |
The barotropic solvers estimate of the zonal transport as the initial condition for the next call to btstep [H L2 T-1 ~> m3 s-1 or kg s-1]. | |
real, dimension(:, :), allocatable | vbt_ic |
The barotropic solvers estimate of the zonal velocity that will be the initial condition for the next call to btstep [L T-1 ~> m s-1]. | |
real, dimension(:, :), allocatable | vbtav |
The barotropic meridional velocity averaged over the baroclinic time step [L T-1 ~> m s-1]. | |
real, dimension(:, :), allocatable | eta_cor |
The difference between the free surface height from the barotropic calculation and the sum of the layer thicknesses. This difference is imposed as a forcing term in the barotropic calculation over a baroclinic timestep [H ~> m or kg m-2]. | |
real, dimension(:, :), allocatable | eta_cor_bound |
A limit on the rate at which eta_cor can be applied while avoiding instability [H T-1 ~> m s-1 or kg m-2 s-1]. This is only used if CSbound_BT_corr is true. | |
real, dimension(:, :), allocatable | ua_polarity |
Test vector components for checking grid polarity. | |
real, dimension(:, :), allocatable | va_polarity |
Test vector components for checking grid polarity. | |
real, dimension(:, :), allocatable | bathyt |
A copy of bathyT (ocean bottom depth) with wide halos [Z ~> m]. | |
real, dimension(:, :), allocatable | iareat |
This is a copy of GIareaT with wide halos, but will still utilize the macro IareaT when referenced, [L-2 ~> m-2]. | |
real, dimension(:, :), allocatable | d_u_cor |
A simply averaged depth at u points [Z ~> m]. | |
real, dimension(:, :), allocatable | dy_cu |
A copy of Gdy_Cu with wide halos [L ~> m]. | |
real, dimension(:, :), allocatable | idxcu |
A copy of GIdxCu with wide halos [L-1 ~> m-1]. | |
real, dimension(:, :), allocatable | d_v_cor |
A simply averaged depth at v points [Z ~> m]. | |
real, dimension(:, :), allocatable | dx_cv |
A copy of Gdx_Cv with wide halos [L ~> m]. | |
real, dimension(:, :), allocatable | idycv |
A copy of GIdyCv with wide halos [L-1 ~> m-1]. | |
real, dimension(:, :), allocatable | q_d |
f / D at PV points [Z-1 T-1 ~> m-1 s-1]. | |
real, dimension(:,:,:), pointer | frhatu1 => NULL() |
Predictor step values of frhatu stored for diagnostics. | |
real, dimension(:,:,:), pointer | frhatv1 => NULL() |
Predictor step values of frhatv stored for diagnostics. | |
type(bt_obc_type) | bt_obc |
A structure with all of this modules fields for applying open boundary conditions. | |
real | rho0 |
The density used in the Boussinesq approximation [kg m-3]. | |
real | dtbt |
The barotropic time step [s]. | |
real | dtbt_fraction |
The fraction of the maximum time-step that should used. The default is 0.98. | |
real | dtbt_max |
The maximum stable barotropic time step [s]. | |
real | dt_bt_filter |
The time-scale over which the barotropic mode solutions are filtered [T ~> s] if positive, or as a fraction of DT if negative [nondim]. This can never be taken to be longer than 2*dt. Set this to 0 to apply no filtering. | |
integer | nstep_last = 0 |
The number of barotropic timesteps per baroclinic time step the last time btstep was called. | |
real | bebt |
A nondimensional number, from 0 to 1, that determines the gravity wave time stepping scheme. 0.0 gives a forward-backward scheme, while 1.0 give backward Euler. In practice, bebt should be of order 0.2 or greater. | |
logical | split |
If true, use the split time stepping scheme. | |
logical | bound_bt_corr |
If true, the magnitude of the fake mass source in the barotropic equation that drives the two estimates of the free surface height toward each other is bounded to avoid driving corrective velocities that exceed MAXCFL_BT_CONT. | |
logical | gradual_bt_ics |
If true, adjust the initial conditions for the barotropic solver to the values from the layered solution over a whole timestep instead of instantly. This is a decent approximation to the inclusion of sum(u dh_dt) while also correcting for truncation errors. | |
logical | sadourny |
If true, the Coriolis terms are discretized with Sadourny's energy conserving scheme, otherwise the Arakawa & Hsu scheme is used. If the deformation radius is not resolved Sadourny's scheme should probably be used. | |
logical | nonlinear_continuity |
If true, the barotropic continuity equation uses the full ocean thickness for transport. | |
integer | nonlin_cont_update_period |
The number of barotropic time steps between updates to the face area, or 0 only to update at the start of a call to btstep. The default is 1. | |
logical | bt_project_velocity |
If true, step the barotropic velocity first and project out the velocity tendency by 1+BEBT when calculating the transport. The default (false) is to use a predictor continuity step to find the pressure field, and then do a corrector continuity step using a weighted average of the old and new velocities, with weights of (1-BEBT) and BEBT. | |
logical | dynamic_psurf |
If true, add a dynamic pressure due to a viscous ice shelf, for instance. | |
real | dmin_dyn_psurf |
The minimum depth to use in limiting the size of the dynamic surface pressure for stability [Z ~> m]. | |
real | ice_strength_length |
The length scale at which the damping rate due to the ice strength should be the same as if a Laplacian were applied [L ~> m]. | |
real | const_dyn_psurf |
The constant that scales the dynamic surface pressure [nondim]. Stable values are < ~1.0. The default is 0.9. | |
logical | tides |
If true, apply tidal momentum forcing. | |
real | g_extra |
A nondimensional factor by which gtot is enhanced. | |
integer | hvel_scheme |
An integer indicating how the thicknesses at velocity points are calculated. Valid values are given by the parameters defined below: HARMONIC, ARITHMETIC, HYBRID, and FROM_BT_CONT. | |
logical | strong_drag |
If true, use a stronger estimate of the retarding effects of strong bottom drag. | |
logical | linear_wave_drag |
If true, apply a linear drag to the barotropic velocities, using rates set by lin_drag_u & _v divided by the depth of the ocean. | |
logical | linearized_bt_pv |
If true, the PV and interface thicknesses used in the barotropic Coriolis calculation is time invariant and linearized. | |
logical | use_wide_halos |
If true, use wide halos and march in during the barotropic time stepping for efficiency. | |
logical | clip_velocity |
If true, limit any velocity components that are are large enough for a CFL number to exceed CFL_trunc. This should only be used as a desperate debugging measure. | |
logical | debug |
If true, write verbose checksums for debugging purposes. | |
logical | debug_bt |
If true, write verbose checksums for debugging purposes. | |
real | vel_underflow |
Velocity components smaller than vel_underflow are set to 0 [L T-1 ~> m s-1]. | |
real | maxvel |
Velocity components greater than maxvel are truncated to maxvel [m s-1]. | |
real | cfl_trunc |
If clip_velocity is true, velocity components will be truncated when they are large enough that the corresponding CFL number exceeds this value, nondim. | |
real | maxcfl_bt_cont |
The maximum permitted CFL number associated with the barotropic accelerations from the summed velocities times the time-derivatives of thicknesses. The default is 0.1, and there will probably be real problems if this were set close to 1. | |
logical | bt_cont_bounds |
If true, use the BT_cont_type variables to set limits on the magnitude of the corrective mass fluxes. | |
logical | visc_rem_u_uh0 |
If true, use the viscous remnants when estimating the barotropic velocities that were used to calculate uh0 and vh0. False is probably the better choice. | |
logical | adjust_bt_cont |
If true, adjust the curve fit to the BT_cont type that is used by the barotropic solver to match the transport about which the flow is being linearized. | |
logical | use_old_coriolis_bracket_bug |
If True, use an order of operations that is not bitwise rotationally symmetric in the meridional Coriolis term of the barotropic solver. | |
type(time_type), pointer | time => NULL() |
A pointer to the ocean models clock. | |
type(diag_ctrl), pointer | diag => NULL() |
A structure that is used to regulate the timing of diagnostic output. | |
type(mom_domain_type), pointer | bt_domain => NULL() |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
type(hor_index_type), pointer | debug_bt_hi => NULL() |
debugging copy of horizontal index_type | |
type(tidal_forcing_cs), pointer | tides_csp => NULL() |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
logical | module_is_initialized = .false. |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | isdw |
The lower i-memory limit for the wide halo arrays. | |
integer | iedw |
The upper i-memory limit for the wide halo arrays. | |
integer | jsdw |
The lower j-memory limit for the wide halo arrays. | |
integer | jedw |
The upper j-memory limit for the wide halo arrays. | |
type(group_pass_type) | pass_q_dcor |
Handle for a group halo pass. | |
type(group_pass_type) | pass_gtot |
Handle for a group halo pass. | |
type(group_pass_type) | pass_tmp_uv |
Handle for a group halo pass. | |
type(group_pass_type) | pass_eta_bt_rem |
Handle for a group halo pass. | |
type(group_pass_type) | pass_force_hbt0_cor_ref |
Handle for a group halo pass. | |
type(group_pass_type) | pass_dat_uv |
Handle for a group halo pass. | |
type(group_pass_type) | pass_eta_ubt |
Handle for a group halo pass. | |
type(group_pass_type) | pass_etaav |
Handle for a group halo pass. | |
type(group_pass_type) | pass_ubt_cor |
Handle for a group halo pass. | |
type(group_pass_type) | pass_ubta_uhbta |
Handle for a group halo pass. | |
type(group_pass_type) | pass_e_anom |
Handle for a group halo pass. | |
integer | id_pfu_bt = -1 |
Diagnostic IDs. | |
integer | id_pfv_bt = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_coru_bt = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_corv_bt = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_ubtforce = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_vbtforce = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_uaccel = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_vaccel = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_visc_rem_u = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_visc_rem_v = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_eta_cor = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_ubt = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_vbt = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_eta_bt = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_ubtav = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_vbtav = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_ubt_st = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_vbt_st = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_eta_st = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_ubt_hifreq = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_vbt_hifreq = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_eta_hifreq = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_uhbt_hifreq = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_vhbt_hifreq = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_eta_pred_hifreq = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_gtotn = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_gtots = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_gtote = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_gtotw = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_uhbt = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_frhatu = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_vhbt = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_frhatv = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_frhatu1 = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_frhatv1 = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_fa_u_ee = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_fa_u_e0 = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_fa_u_w0 = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_fa_u_ww = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_ubt_ee = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_ubt_ww = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_fa_v_nn = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_fa_v_n0 = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_fa_v_s0 = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_fa_v_ss = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_vbt_nn = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_btc_vbt_ss = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_uhbt0 = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |
integer | id_vhbt0 = -1 |
The fraction of the total column thickness interpolated to u grid points in each layer [nondim]. | |