mom_pressureforce_mont module reference
Provides the Montgomery potential form of pressure gradient.
Data Types
Control structure for the Montgomery potential form of pressure gradient. |
Functions/Subroutines
Non-Boussinesq Montgomery-potential form of pressure gradient. |
|
Boussinesq Montgomery-potential form of pressure gradient. |
|
Determines the partial derivative of the acceleration due to pressure forces with the free surface height. |
|
Determines the partial derivative of the acceleration due to pressure forces with the column mass. |
|
Initialize the Montgomery-potential form of PGF control structure. |
Detailed Description
Provides the Boussunesq and non-Boussinesq forms of the horizontal accelerations due to pressure gradients using the Montgomery potential. A second-order accurate, centered scheme is used. If a split time stepping scheme is used, the vertical decomposition into barotropic and baroclinic contributions described by Hallberg (J Comp Phys 1997) is used. With a nonlinear equation of state, compressibility is added along the lines proposed by Sun et al. (JPO 1999), but with compressibility coefficients based on a fit to a user-provided reference profile.
Type Documentation
- type mom_pressureforce_mont/pressureforce_mont_cs
Control structure for the Montgomery potential form of pressure gradient.
- Type fields:
% id_pfu_bc ::
integerDiagnostic IDs.% id_pfv_bc ::
integerDiagnostic IDs.% id_e_sal ::
integerDiagnostic IDs.% id_e_tide ::
integerDiagnostic IDs.% id_e_tide_eq ::
integerDiagnostic IDs.% id_e_tide_sal ::
integerDiagnostic IDs.% initialized ::
logicalTrue if this control structure has been initialized.% calculate_sal ::
logicalIf true, calculate self-attraction and loading.% tides ::
logicalIf true, apply tidal momentum forcing.% rho0 ::
realThe density used in the Boussinesq approximation [R ~> kg m-3].% gfs_scale ::
realRatio between gravity applied to top interface and the gravitational acceleration of the planet [nondim]. Usually this ratio is 1.% time ::
type(time_type), pointerA pointer to the ocean model’s clock.% diag ::
type(diag_ctrl), pointerA structure that is used to regulate the timing of diagnostic output.% pfu_bc ::
real, dimension(:,:,:), allocatableZonal accelerations due to pressure gradients deriving from density gradients within layers [L T-2 ~> m s-2].% pfv_bc ::
real, dimension(:,:,:), allocatableMeridional accelerations due to pressure gradients deriving from density gradients within layers [L T-2 ~> m s-2].% sal_csp ::
type(sal_cs), pointerSAL control structure.% tides_csp ::
type(tidal_forcing_cs), pointerThe tidal forcing control structure.
Function/Subroutine Documentation
- subroutine mom_pressureforce_mont/pressureforce_mont_nonbouss(h, tv, PFu, PFv, G, GV, US, CS, p_atm, pbce, eta)
Non-Boussinesq Montgomery-potential form of pressure gradient.
Determines the acceleration due to pressure forces in a non-Boussinesq fluid using the compressibility compensated (if appropriate) Montgomery-potential form described in Hallberg (Ocean Mod., 2005).
To work, the following fields must be set outside of the usual (is:ie,js:je) range before this subroutine is called: h(isB:ie+1,jsB:je+1), T(isB:ie+1,jsB:je+1), and S(isB:ie+1,jsB:je+1).
- Parameters:
g :: [in] Ocean grid structure.
gv :: [in] Vertical grid structure.
us :: [in] A dimensional unit scaling type
h ::
h[in] Layer thickness, [H ~> kg m-2].tv ::
tv[in] Thermodynamic variables.pfu :: [out] Zonal acceleration due to pressure gradients (equal to -dM/dx) [L T-2 ~> m s-2].
pfv :: [out] Meridional acceleration due to pressure gradients (equal to -dM/dy) [L T-2 ~> m s-2].
cs :: [inout] Control structure for Montgomery potential PGF
p_atm ::
p_atmThe pressure at the ice-ocean or atmosphere-ocean [R L2 T-2 ~> Pa].pbce ::
pbce[out] The baroclinic pressure anomaly ineta ::
eta[out] The total column mass used to calculate PFu and PFv [H ~> kg m-2].
- Call to:
mom_self_attr_load::calc_salmom_tidal_forcing::calc_tidal_forcingmom_density_integrals::int_specific_vol_dpmom_error_handler::mom_errormom_eos::query_compressibleset_pbce_nonbouss
- subroutine mom_pressureforce_mont/pressureforce_mont_bouss(h, tv, PFu, PFv, G, GV, US, CS, p_atm, pbce, eta)
Boussinesq Montgomery-potential form of pressure gradient.
Determines the acceleration due to pressure forces.
To work, the following fields must be set outside of the usual (is:ie,js:je) range before this subroutine is called: h(isB:ie+1,jsB:je+1), T(isB:ie+1,jsB:je+1), and S(isB:ie+1,jsB:je+1).
- Parameters:
g :: [in] Ocean grid structure.
gv :: [in] Vertical grid structure.
us :: [in] A dimensional unit scaling type
h ::
h[in] Layer thickness [H ~> m].tv ::
tv[in] Thermodynamic variables.pfu :: [out] Zonal acceleration due to pressure gradients (equal to -dM/dx) [L T-2 ~> m s-2].
pfv :: [out] Meridional acceleration due to pressure gradients (equal to -dM/dy) [L T-2 ~> m s-2].
cs :: [inout] Control structure for Montgomery potential PGF
p_atm ::
p_atmThe pressure at the ice-ocean or atmosphere-ocean [R L2 T-2 ~> Pa].pbce ::
pbce[out] The baroclinic pressure anomaly in each layer due to free surface height anomalies [L2 T-2 H-1 ~> m s-2].eta ::
eta[out] Free surface height [H ~> m].
- Call to:
mom_self_attr_load::calc_salmom_tidal_forcing::calc_tidal_forcingmom_error_handler::mom_errormom_eos::query_compressibleset_pbce_bouss
- subroutine mom_pressureforce_mont/set_pbce_bouss(e, tv, G, GV, US, Rho0, GFS_scale, pbce, rho_star)
Determines the partial derivative of the acceleration due to pressure forces with the free surface height.
- Parameters:
g :: [in] Ocean grid structure
gv :: [in] Vertical grid structure
e ::
e[in] Interface height [Z ~> m].tv ::
tv[in] Thermodynamic variablesus :: [in] A dimensional unit scaling type
rho0 :: [in] The “Boussinesq” ocean density [R ~> kg m-3].
gfs_scale :: [in] Ratio between gravity applied to top interface and the gravitational acceleration of the planet [nondim]. Usually this ratio is 1.
pbce ::
pbce[out] The baroclinic pressure anomaly in each layer duerho_star ::
rho_star[in] The layer densities (maybe compressibility
- Called from:
mom_pressureforce_fv::pressureforce_fv_bousspressureforce_mont_bouss
- subroutine mom_pressureforce_mont/set_pbce_nonbouss(p, tv, G, GV, US, GFS_scale, pbce, alpha_star)
Determines the partial derivative of the acceleration due to pressure forces with the column mass.
- Parameters:
g :: [in] Ocean grid structure
gv :: [in] Vertical grid structure
p ::
p[in] Interface pressures [R L2 T-2 ~> Pa].tv ::
tv[in] Thermodynamic variablesus :: [in] A dimensional unit scaling type
gfs_scale :: [in] Ratio between gravity applied to top interface and the gravitational acceleration of the planet [nondim]. Usually this ratio is 1.
pbce ::
pbce[out] The baroclinic pressure anomaly in each layer due to free surface height anomalies [L2 H-1 T-2 ~> m4 kg-1 s-2].alpha_star ::
alpha_star[in] The layer specific volumes (maybe compressibility compensated) [R-1 ~> m3 kg-1].
- Called from:
mom_pressureforce_fv::pressureforce_fv_nonbousspressureforce_mont_nonbouss
- subroutine mom_pressureforce_mont/pressureforce_mont_init(Time, G, GV, US, param_file, diag, CS, SAL_CSp, tides_CSp)
Initialize the Montgomery-potential form of PGF control structure.
- Parameters:
time :: [in] Current model time
g :: [in] ocean grid structure
gv :: [in] Vertical grid structure
us :: [in] A dimensional unit scaling type
param_file ::
param_file[in] Parameter file handlesdiag ::
diag[inout] Diagnostics control structurecs :: [inout] Montgomery PGF control structure
sal_csp :: [in] SAL control structure
tides_csp :: [in] Tides control structure