MOM6
|
Analytically integrated finite volume pressure gradient.
Data Types | |
type | pressureforce_blk_afv_cs |
Finite volume pressure gradient control structure. More... | |
Functions/Subroutines | |
subroutine, public | pressureforce_blk_afv (h, tv, PFu, PFv, G, GV, US, CS, ALE_CSp, p_atm, pbce, eta) |
Thin interface between the model and the Boussinesq and non-Boussinesq pressure force routines. More... | |
subroutine, public | pressureforce_blk_afv_nonbouss (h, tv, PFu, PFv, G, GV, US, CS, p_atm, pbce, eta) |
Non-Boussinesq analytically-integrated finite volume form of pressure gradient. More... | |
subroutine, public | pressureforce_blk_afv_bouss (h, tv, PFu, PFv, G, GV, US, CS, ALE_CSp, p_atm, pbce, eta) |
Boussinesq analytically-integrated finite volume form of pressure gradient. More... | |
subroutine, public | pressureforce_blk_afv_init (Time, G, GV, US, param_file, diag, CS, tides_CSp) |
Initializes the finite volume pressure gradient control structure. More... | |
subroutine, public | pressureforce_blk_afv_end (CS) |
Deallocates the finite volume pressure gradient control structure. More... | |
subroutine, public mom_pressureforce_blk_afv::pressureforce_blk_afv | ( | real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | h, |
type(thermo_var_ptrs), intent(inout) | 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_blk_afv_cs), pointer | CS, | ||
type(ale_cs), pointer | ALE_CSp, | ||
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 | ||
) |
Thin interface between the model and the Boussinesq and non-Boussinesq pressure force routines.
[in] | g | Ocean grid structure |
[in] | gv | Vertical grid structure |
[in] | us | A dimensional unit scaling type |
[in] | h | Layer thickness [H ~> m or kg m-2] |
[in,out] | tv | Thermodynamic variables |
[out] | pfu | Zonal acceleration [L T-2 ~> m s-2] |
[out] | pfv | Meridional acceleration [L T-2 ~> m s-2] |
cs | Finite volume PGF control structure | |
ale_csp | ALE control structure | |
p_atm | The pressure at the ice-ocean or atmosphere-ocean interface [Pa]. | |
[out] | pbce | The baroclinic pressure anomaly in each layer due to eta anomalies [m2 s-2 H-1 ~> m s-2 or m4 s-2 kg-1]. |
[out] | eta | The bottom mass used to calculate PFu and PFv [H ~> m or kg m-2], with any tidal contributions or compressibility compensation. |
Definition at line 67 of file MOM_PressureForce_blocked_AFV.F90.
References pressureforce_blk_afv_bouss(), and pressureforce_blk_afv_nonbouss().
subroutine, public mom_pressureforce_blk_afv::pressureforce_blk_afv_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_blk_afv_cs), pointer | CS, | ||
type(ale_cs), pointer | ALE_CSp, | ||
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 analytically-integrated finite volume form of pressure gradient.
Determines the acceleration due to hydrostatic pressure forces, using the finite volume form of the terms and analytic integrals in depth, making the Boussinesq approximation. This version uses code-blocking for threads.
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 or kg m-2] |
[in] | tv | Thermodynamic variables |
[out] | pfu | Zonal acceleration [L T-2 ~> m s-2] |
[out] | pfv | Meridional acceleration [L T-2 ~> m s-2] |
cs | Finite volume PGF control structure | |
ale_csp | ALE control structure | |
p_atm | The pressure at the ice-ocean or atmosphere-ocean interface [Pa]. | |
[out] | pbce | The baroclinic pressure anomaly in each layer due to eta anomalies [m2 s-2 H-1 ~> m s-2 or m4 s-2 kg-1]. |
[out] | eta | The bottom mass used to calculate PFu and PFv [H ~> m or kg m-2], with any tidal contributions or compressibility compensation. |
Definition at line 427 of file MOM_PressureForce_blocked_AFV.F90.
References mom_tidal_forcing::calc_tidal_forcing(), mom_error_handler::mom_error(), mom_ale::pressure_gradient_plm(), mom_ale::pressure_gradient_ppm(), and mom_pressureforce_mont::set_pbce_bouss().
Referenced by pressureforce_blk_afv().
subroutine, public mom_pressureforce_blk_afv::pressureforce_blk_afv_end | ( | type(pressureforce_blk_afv_cs), pointer | CS | ) |
Deallocates the finite volume pressure gradient control structure.
cs | Blocked AFV pressure control structure that will be deallocated in this subroutine. |
Definition at line 856 of file MOM_PressureForce_blocked_AFV.F90.
subroutine, public mom_pressureforce_blk_afv::pressureforce_blk_afv_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_blk_afv_cs), pointer | CS, | ||
type(tidal_forcing_cs), optional, pointer | tides_CSp | ||
) |
Initializes the finite volume pressure gradient 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 | Finite volume PGF control structure | |
tides_csp | Tides control structure |
Definition at line 783 of file MOM_PressureForce_blocked_AFV.F90.
References mom_error_handler::mom_error().
subroutine, public mom_pressureforce_blk_afv::pressureforce_blk_afv_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_blk_afv_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 analytically-integrated finite volume form of pressure gradient.
Determines the acceleration due to hydrostatic pressure forces, using the analytic finite volume form of the Pressure gradient, and does not make the Boussinesq approximation. This version uses code-blocking for threads.
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 [L T-2 ~> m s-2] |
[out] | pfv | Meridional acceleration [L T-2 ~> m s-2] |
cs | Finite volume PGF control structure | |
p_atm | The pressure at the ice-ocean or atmosphere-ocean interface [Pa]. | |
[out] | pbce | The baroclinic pressure anomaly in each layer due to eta anomalies [m2 s-2 H-1 ~> m s-2 or m4 s-2 kg-1]. |
[out] | eta | The bottom mass used to calculate PFu and PFv [H ~> m or kg m-2], with any tidal contributions or compressibility compensation. |
Definition at line 103 of file MOM_PressureForce_blocked_AFV.F90.
References mom_tidal_forcing::calc_tidal_forcing(), mom_error_handler::mom_error(), and mom_pressureforce_mont::set_pbce_nonbouss().
Referenced by pressureforce_blk_afv().