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, US, 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, US, CS, p_atm, pbce, eta) |
Boussinesq Montgomery-potential form of pressure gradient. More... | |
subroutine, public | 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. More... | |
subroutine, public | 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. More... | |
subroutine, public | pressureforce_mont_init (Time, G, GV, US, 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(unit_scale_type), intent(in) | US, | ||
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 (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).
[in] | g | Ocean grid structure. |
[in] | gv | Vertical grid structure. |
[in] | us | A dimensional unit scaling type |
[in] | h | Layer thickness [H ~> m]. |
[in] | tv | Thermodynamic variables. |
[out] | pfu | Zonal acceleration due to pressure gradients (equal to -dM/dx) [L T-2 ~> m s-2]. |
[out] | pfv | Meridional acceleration due to pressure gradients (equal to -dM/dy) [L T-2 ~> m s2]. |
cs | Control structure for Montgomery potential PGF | |
p_atm | The pressure at the ice-ocean or atmosphere-ocean [Pa]. | |
[out] | pbce | The baroclinic pressure anomaly in each layer due to free surface height anomalies [L2 T-2 H-1 ~> m s-2]. |
[out] | eta | Free surface height [H ~> m]. |
Definition at line 366 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.
cs | Control structure for Montgomery potential PGF |
Definition at line 891 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(unit_scale_type), intent(in) | US, | ||
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] | us | A dimensional unit scaling type |
[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 823 of file MOM_PressureForce_Montgomery.F90.
References mom_error_handler::mom_error().
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(unit_scale_type), intent(in) | US, | ||
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 (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).
[in] | g | Ocean grid structure. |
[in] | gv | Vertical grid structure. |
[in] | us | A dimensional unit scaling type |
[in] | h | Layer thickness, [H ~> kg m-2]. |
[in] | tv | Thermodynamic variables. |
[out] | pfu | Zonal acceleration due to pressure gradients (equal to -dM/dx) [L T-2 ~> m s-2]. |
[out] | pfv | Meridional acceleration due to pressure gradients (equal to -dM/dy) [L T-2 ~> m s-2]. |
cs | Control structure for Montgomery potential PGF | |
p_atm | The pressure at the ice-ocean or atmosphere-ocean [Pa]. | |
[out] | pbce | The baroclinic pressure anomaly in |
[out] | eta | Free surface height [H ~> kg m-1]. |
Definition at line 65 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, | ||
type(unit_scale_type), intent(in) | US, | ||
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 [Z ~> m]. |
[in] | tv | Thermodynamic variables |
[in] | us | A dimensional unit scaling type |
[in] | rho0 | The "Boussinesq" ocean density [kg m-3]. |
[in] | gfs_scale | Ratio between gravity applied to top interface and the gravitational acceleration of the planet [nondim]. Usually this ratio is 1. |
[out] | pbce | The baroclinic pressure anomaly in each layer due |
[in] | rho_star | The layer densities (maybe compressibility |
Definition at line 609 of file MOM_PressureForce_Montgomery.F90.
Referenced by mom_pressureforce_afv::pressureforce_afv_bouss(), mom_pressureforce_blk_afv::pressureforce_blk_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, | ||
type(unit_scale_type), intent(in) | US, | ||
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 [Pa]. |
[in] | tv | Thermodynamic variables |
[in] | us | A dimensional unit scaling type |
[in] | gfs_scale | Ratio between gravity applied to top interface and the gravitational acceleration of the planet [nondim]. Usually this ratio is 1. |
[out] | pbce | The baroclinic pressure anomaly in each layer due to free surface height anomalies [L2 H-1 T-2 ~> m4 kg-1 s-2]. |
[in] | alpha_star | The layer specific volumes (maybe compressibility compensated) [R-1 ~> m3 kg-1]. |
Definition at line 710 of file MOM_PressureForce_Montgomery.F90.
Referenced by mom_pressureforce_afv::pressureforce_afv_nonbouss(), mom_pressureforce_blk_afv::pressureforce_blk_afv_nonbouss(), and pressureforce_mont_nonbouss().