MOM6
|
Provides the Montgomery potential form of pressure gradient.
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.
Data Types | |
type | pressureforce_mont_cs |
Control structure for the Montgomery potential form of pressure gradient. More... | |
Functions/Subroutines | |
subroutine, public | pressureforce_mont_nonbouss (h, tv, PFu, PFv, G, GV, CS, p_atm, pbce, eta) |
Non-Boussinesq Montgomery-potential form of pressure gradient. More... | |
subroutine, public | pressureforce_mont_bouss (h, tv, PFu, PFv, G, GV, CS, p_atm, pbce, eta) |
Boussinesq Montgomery-potential form of pressure gradient. More... | |
subroutine, public | set_pbce_bouss (e, tv, G, GV, g_Earth, Rho0, GFS_scale, pbce, rho_star) |
Determines the partial derivative of the acceleration due to pressure forces with the free surface height. More... | |
subroutine, public | set_pbce_nonbouss (p, tv, G, GV, g_Earth, GFS_scale, pbce, alpha_star) |
Determines the partial derivative of the acceleration due to pressure forces with the column mass. More... | |
subroutine, public | pressureforce_mont_init (Time, G, GV, param_file, diag, CS, tides_CSp) |
Initialize the Montgomery-potential form of PGF control structure. More... | |
subroutine, public | pressureforce_mont_end (CS) |
Deallocates the Montgomery-potential form of PGF control structure. More... | |
subroutine, public mom_pressureforce_mont::pressureforce_mont_bouss | ( | real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | h, |
type(thermo_var_ptrs), intent(in) | tv, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(out) | PFu, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(out) | PFv, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(pressureforce_mont_cs), pointer | CS, | ||
real, dimension(:,:), optional, pointer | p_atm, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(out), optional | pbce, | ||
real, dimension(szi_(g),szj_(g)), intent(out), optional | 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 ie to ie, je to je range before this subroutine is called: h[ie+1] and h[je+1] and (if tvform_of_EOS is set) T[ie+1], S[ie+1], T[je+1], and S[je+1].
[in] | g | Ocean grid structure. |
[in] | gv | Vertical grid structure. |
[in] | h | Layer thickness, in m. |
[in] | tv | Thermodynamic variables. |
[out] | pfu | Zonal acceleration due to pressure gradients (equal to -dM/dx) in m/s2. |
[out] | pfv | Meridional acceleration due to pressure gradients (equal to -dM/dy) in m/s2. |
cs | Control structure for Montgomery potential PGF | |
p_atm | The pressure at the ice-ocean or atmosphere-ocean in Pa. | |
[out] | pbce | The baroclinic pressure anomaly in each layer due to free surface height anomalies, in m2 s-2 H-1. |
[out] | eta | Free surface height, in m. |
Definition at line 368 of file MOM_PressureForce_Montgomery.F90.
References mom_tidal_forcing::calc_tidal_forcing(), mom_error_handler::mom_error(), mom_eos::query_compressible(), and set_pbce_bouss().
subroutine, public mom_pressureforce_mont::pressureforce_mont_end | ( | type(pressureforce_mont_cs), pointer | CS | ) |
Deallocates the Montgomery-potential form of PGF control structure.
Definition at line 905 of file MOM_PressureForce_Montgomery.F90.
subroutine, public mom_pressureforce_mont::pressureforce_mont_init | ( | type(time_type), intent(in), target | Time, |
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(param_file_type), intent(in) | param_file, | ||
type(diag_ctrl), intent(inout), target | diag, | ||
type(pressureforce_mont_cs), pointer | CS, | ||
type(tidal_forcing_cs), optional, pointer | tides_CSp | ||
) |
Initialize the Montgomery-potential form of PGF control structure.
[in] | time | Current model time |
[in] | g | ocean grid structure |
[in] | gv | Vertical grid structure |
[in] | param_file | Parameter file handles |
[in,out] | diag | Diagnostics control structure |
cs | Montgomery PGF control structure | |
tides_csp | Tides control structure |
Definition at line 839 of file MOM_PressureForce_Montgomery.F90.
References mom_error_handler::mom_error().
Referenced by mom_pressureforce::pressureforce_init().
subroutine, public mom_pressureforce_mont::pressureforce_mont_nonbouss | ( | real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | h, |
type(thermo_var_ptrs), intent(in) | tv, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(out) | PFu, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(out) | PFv, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(pressureforce_mont_cs), pointer | CS, | ||
real, dimension(:,:), optional, pointer | p_atm, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(out), optional | pbce, | ||
real, dimension(szi_(g),szj_(g)), intent(out), optional | 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 ie to ie, je to je range before this subroutine is called: h[ie+1] and h[je+1] and and (if tvform_of_EOS is set) T[ie+1], S[ie+1], T[je+1], and S[je+1].
[in] | g | Ocean grid structure. |
[in] | gv | Vertical grid structure. |
[in] | h | Layer thickness, in kg/m2. |
[in] | tv | Thermodynamic variables. |
[out] | pfu | Zonal acceleration due to pressure gradients (equal to -dM/dx) in m/s2. |
[out] | pfv | Meridional acceleration due to pressure gradients (equal to -dM/dy) in m/s2. |
cs | Control structure for Montgomery potential PGF | |
p_atm | The pressure at the ice-ocean or atmosphere-ocean in Pa. | |
[out] | pbce | The baroclinic pressure anomaly in each layer due to free surface height anomalies, in m2 s-2 H-1. |
[out] | eta | Free surface height, in m. |
Definition at line 57 of file MOM_PressureForce_Montgomery.F90.
References mom_tidal_forcing::calc_tidal_forcing(), mom_eos::int_specific_vol_dp(), mom_error_handler::mom_error(), mom_eos::query_compressible(), and set_pbce_nonbouss().
subroutine, public mom_pressureforce_mont::set_pbce_bouss | ( | real, dimension(szi_(g),szj_(g),szk_(g)+1), intent(in) | e, |
type(thermo_var_ptrs), intent(in) | tv, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
real, intent(in) | g_Earth, | ||
real, intent(in) | Rho0, | ||
real, intent(in) | GFS_scale, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(out) | pbce, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in), optional | rho_star | ||
) |
Determines the partial derivative of the acceleration due to pressure forces with the free surface height.
[in] | g | Ocean grid structure |
[in] | gv | Vertical grid structure |
[in] | e | Interface height, in H. |
[in] | tv | Thermodynamic variables |
[in] | g_earth | The gravitational acceleration, in m s-2. |
[in] | rho0 | The "Boussinesq" ocean density, in kg m-3. |
[in] | gfs_scale | Ratio between gravity applied to top interface and the gravitational acceleration of the planet. Usually this ratio is 1. |
[out] | pbce | The baroclinic pressure anomaly in each layer due to free surface height anomalies, in m2 H-1 s-2. |
[in] | rho_star | The layer densities (maybe compressibility compensated), times g/rho_0, in m s-2. |
Definition at line 619 of file MOM_PressureForce_Montgomery.F90.
Referenced by mom_pressureforce_afv::pressureforce_afv_bouss(), and pressureforce_mont_bouss().
subroutine, public mom_pressureforce_mont::set_pbce_nonbouss | ( | real, dimension(szi_(g),szj_(g),szk_(g)+1), intent(in) | p, |
type(thermo_var_ptrs), intent(in) | tv, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
real, intent(in) | g_Earth, | ||
real, intent(in) | GFS_scale, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(out) | pbce, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in), optional | alpha_star | ||
) |
Determines the partial derivative of the acceleration due to pressure forces with the column mass.
[in] | g | Ocean grid structure |
[in] | gv | Vertical grid structure |
[in] | p | Interface pressures, in Pa. |
[in] | tv | Thermodynamic variables |
[in] | g_earth | The gravitational acceleration, in m s-2. |
[in] | gfs_scale | Ratio between gravity applied to top interface and the gravitational acceleration of the planet. Usually this ratio is 1. |
[out] | pbce | The baroclinic pressure anomaly in each layer due to free surface height anomalies, in m2 H-1 s-2. |
[in] | alpha_star | The layer specific volumes (maybe compressibility compensated), in m3 kg-1. |
Definition at line 721 of file MOM_PressureForce_Montgomery.F90.
Referenced by mom_pressureforce_afv::pressureforce_afv_nonbouss(), and pressureforce_mont_nonbouss().