MOM6
mom_coriolisadv::coriolisadv_cs Type Reference

Detailed Description

Control structure for mom_coriolisadv.

Definition at line 27 of file MOM_CoriolisAdv.F90.

Collaboration diagram for mom_coriolisadv::coriolisadv_cs:
[legend]

Public variables and constants

integer coriolis_scheme
 Selects the discretization for the Coriolis terms. Valid values are: More...
 
integer ke_scheme
 KE_SCHEME selects the discretization for the kinetic energy. Valid values are: KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV. More...
 
integer pv_adv_scheme
 PV_ADV_SCHEME selects the discretization for PV advection Valid values are: More...
 
real f_eff_max_blend
 The factor by which the maximum effective Coriolis acceleration from any point can be increased when blending different discretizations with the ARAKAWA_LAMB_BLEND Coriolis scheme. This must be greater than 2.0, and is 4.0 by default. More...
 
real wt_lin_blend
 A weighting value beyond which the blending between Sadourny and Arakawa & Hsu goes linearly to 0. This must be between 1 and 1e-15, often 1/8. More...
 
logical no_slip
 If true, no slip boundary conditions are used. Otherwise free slip boundary conditions are assumed. The implementation of the free slip boundary conditions on a C-grid is much cleaner than the no slip boundary conditions. The use of free slip b.c.s is strongly encouraged. The no slip b.c.s are not implemented with the biharmonic viscosity. More...
 
logical bound_coriolis
 If true, the Coriolis terms at u points are bounded by the four estimates of (f+rv)v from the four neighboring v points, and similarly at v points. This option would have no effect on the SADOURNY75_ENERGY scheme if it were possible to use centered difference thickness fluxes. More...
 
logical coriolis_en_dis
 If CORIOLIS_EN_DIS is defined, two estimates of the thickness fluxes are used to estimate the Coriolis term, and the one that dissipates energy relative to the other one is used. This is only available at present if Coriolis scheme is SADOURNY75_ENERGY. More...
 
type(time_type), pointer time
 A pointer to the ocean model's clock. More...
 
type(diag_ctrl), pointer diag
 A structure that is used to regulate the timing of diagnostic output. More...
 
integer id_rv = -1
 Diagnostic IDs. More...
 
integer id_pv = -1
 Diagnostic IDs. More...
 
integer id_gkeu = -1
 Diagnostic IDs. More...
 
integer id_gkev = -1
 Diagnostic IDs. More...
 
integer id_rvxu = -1
 Diagnostic IDs. More...
 
integer id_rvxv = -1
 Diagnostic IDs. More...
 

Variables and constants

◆ bound_coriolis

logical mom_coriolisadv::coriolisadv_cs::bound_coriolis

If true, the Coriolis terms at u points are bounded by the four estimates of (f+rv)v from the four neighboring v points, and similarly at v points. This option would have no effect on the SADOURNY75_ENERGY scheme if it were possible to use centered difference thickness fluxes.

Definition at line 60 of file MOM_CoriolisAdv.F90.

60  logical :: bound_Coriolis !< If true, the Coriolis terms at u points are

◆ coriolis_en_dis

logical mom_coriolisadv::coriolisadv_cs::coriolis_en_dis

If CORIOLIS_EN_DIS is defined, two estimates of the thickness fluxes are used to estimate the Coriolis term, and the one that dissipates energy relative to the other one is used. This is only available at present if Coriolis scheme is SADOURNY75_ENERGY.

Definition at line 66 of file MOM_CoriolisAdv.F90.

66  logical :: Coriolis_En_Dis !< If CORIOLIS_EN_DIS is defined, two estimates of

◆ coriolis_scheme

integer mom_coriolisadv::coriolisadv_cs::coriolis_scheme

Selects the discretization for the Coriolis terms. Valid values are:

  • SADOURNY75_ENERGY - Sadourny, 1975
  • ARAKAWA_HSU90 - Arakawa & Hsu, 1990, Energy & non-div. Enstrophy
  • ROBUST_ENSTRO - Pseudo-enstrophy scheme
  • SADOURNY75_ENSTRO - Sadourny, JAS 1975, Enstrophy
  • ARAKAWA_LAMB81 - Arakawa & Lamb, MWR 1981, Energy & Enstrophy
  • ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with Arakawa & Hsu and Sadourny energy. The default, SADOURNY75_ENERGY, is the safest choice then the deformation radius is poorly resolved.

Definition at line 28 of file MOM_CoriolisAdv.F90.

28  integer :: Coriolis_Scheme !< Selects the discretization for the Coriolis terms.

◆ diag

type(diag_ctrl), pointer mom_coriolisadv::coriolisadv_cs::diag

A structure that is used to regulate the timing of diagnostic output.

Definition at line 73 of file MOM_CoriolisAdv.F90.

73  type(diag_ctrl), pointer :: diag !< A structure that is used to regulate the timing of diagnostic output.

◆ f_eff_max_blend

real mom_coriolisadv::coriolisadv_cs::f_eff_max_blend

The factor by which the maximum effective Coriolis acceleration from any point can be increased when blending different discretizations with the ARAKAWA_LAMB_BLEND Coriolis scheme. This must be greater than 2.0, and is 4.0 by default.

Definition at line 45 of file MOM_CoriolisAdv.F90.

45  real :: F_eff_max_blend !< The factor by which the maximum effective Coriolis

◆ id_gkeu

integer mom_coriolisadv::coriolisadv_cs::id_gkeu = -1

Diagnostic IDs.

Definition at line 75 of file MOM_CoriolisAdv.F90.

◆ id_gkev

integer mom_coriolisadv::coriolisadv_cs::id_gkev = -1

Diagnostic IDs.

Definition at line 75 of file MOM_CoriolisAdv.F90.

◆ id_pv

integer mom_coriolisadv::coriolisadv_cs::id_pv = -1

Diagnostic IDs.

Definition at line 75 of file MOM_CoriolisAdv.F90.

◆ id_rv

integer mom_coriolisadv::coriolisadv_cs::id_rv = -1

Diagnostic IDs.

Definition at line 75 of file MOM_CoriolisAdv.F90.

75  integer :: id_rv = -1, id_pv = -1, id_gkeu = -1, id_gkev = -1

◆ id_rvxu

integer mom_coriolisadv::coriolisadv_cs::id_rvxu = -1

Diagnostic IDs.

Definition at line 76 of file MOM_CoriolisAdv.F90.

76  integer :: id_rvxu = -1, id_rvxv = -1 !!@}

◆ id_rvxv

integer mom_coriolisadv::coriolisadv_cs::id_rvxv = -1

Diagnostic IDs.

Definition at line 76 of file MOM_CoriolisAdv.F90.

◆ ke_scheme

integer mom_coriolisadv::coriolisadv_cs::ke_scheme

KE_SCHEME selects the discretization for the kinetic energy. Valid values are: KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV.

Definition at line 38 of file MOM_CoriolisAdv.F90.

38  integer :: KE_Scheme !< KE_SCHEME selects the discretization for

◆ no_slip

logical mom_coriolisadv::coriolisadv_cs::no_slip

If true, no slip boundary conditions are used. Otherwise free slip boundary conditions are assumed. The implementation of the free slip boundary conditions on a C-grid is much cleaner than the no slip boundary conditions. The use of free slip b.c.s is strongly encouraged. The no slip b.c.s are not implemented with the biharmonic viscosity.

Definition at line 53 of file MOM_CoriolisAdv.F90.

53  logical :: no_slip !< If true, no slip boundary conditions are used.

◆ pv_adv_scheme

integer mom_coriolisadv::coriolisadv_cs::pv_adv_scheme

PV_ADV_SCHEME selects the discretization for PV advection Valid values are:

  • PV_ADV_CENTERED - centered (aka Sadourny, 75)
  • PV_ADV_UPWIND1 - upwind, first order

Definition at line 41 of file MOM_CoriolisAdv.F90.

41  integer :: PV_Adv_Scheme !< PV_ADV_SCHEME selects the discretization for PV advection

◆ time

type(time_type), pointer mom_coriolisadv::coriolisadv_cs::time

A pointer to the ocean model's clock.

Definition at line 72 of file MOM_CoriolisAdv.F90.

72  type(time_type), pointer :: Time !< A pointer to the ocean model's clock.

◆ wt_lin_blend

real mom_coriolisadv::coriolisadv_cs::wt_lin_blend

A weighting value beyond which the blending between Sadourny and Arakawa & Hsu goes linearly to 0. This must be between 1 and 1e-15, often 1/8.

Definition at line 50 of file MOM_CoriolisAdv.F90.

50  real :: wt_lin_blend !< A weighting value beyond which the blending between

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