MOM6
|
Data Types | |
type | int_tide_cs |
type | loop_bounds_type |
Functions/Subroutines | |
subroutine, public | propagate_int_tide (h, tv, cn, TKE_itidal_input, vel_btTide, Nb, dt, G, GV, CS) |
This subroutine calls other subroutines in this file that are needed to refract, propagate, and dissipate energy density of the internal tide. More... | |
subroutine | sum_en (G, CS, En, label) |
This subroutine checks for energy conservation on computational domain. More... | |
subroutine | itidal_lowmode_loss (G, CS, Nb, Ub, En, TKE_loss_fixed, TKE_loss, dt, full_halos) |
This subroutine calculates the energy lost from the propagating internal tide due to scattering over small-scale roughness along the lines of Jayne & St. Laurent (2001). More... | |
subroutine, public | get_lowmode_loss (i, j, G, CS, mechanism, TKE_loss_sum) |
This subroutine extracts the energy lost from the propagating internal which has been summed across all angles, frequencies, and modes for a given mechanism and location. It can be called from another module to get values from this module's (private) CS. More... | |
subroutine | refract (En, cn, freq, dt, G, NAngle, use_PPMang) |
This subroutine does refraction on the internal waves at a single frequency. More... | |
subroutine | ppm_angular_advect (En2d, CFL_ang, Flux_En, NAngle, dt, halo_ang) |
This subroutine calculates the 1-d flux for advection in angular space using a monotonic piecewise parabolic scheme. Should be within i and j spatial loops. More... | |
subroutine | propagate (En, cn, freq, dt, G, CS, NAngle) |
This subroutine does refraction on the internal waves at a single frequency. More... | |
subroutine | propagate_corner_spread (En, energized_wedge, NAngle, speed, dt, G, CS, LB) |
This subroutine does first-order corner advection. It was written with the hopes of smoothing out the garden sprinkler effect, but is too numerically diffusive to be of much use as of yet. It is not yet compatible with reflection schemes (BDM). More... | |
subroutine | propagate_x (En, speed_x, Cgx_av, dCgx, dt, G, Nangle, CS, LB) |
subroutine | propagate_y (En, speed_y, Cgy_av, dCgy, dt, G, Nangle, CS, LB) |
subroutine | zonal_flux_en (u, h, hL, hR, uh, dt, G, j, ish, ieh, vol_CFL) |
This subroutines evaluates the zonal mass or volume fluxes in a layer. More... | |
subroutine | merid_flux_en (v, h, hL, hR, vh, dt, G, J, ish, ieh, vol_CFL) |
This subroutines evaluates the meridional mass or volume fluxes in a layer. More... | |
subroutine | reflect (En, NAngle, CS, G, LB) |
This subroutine does reflection of the internal waves at a single frequency. More... | |
subroutine | teleport (En, NAngle, CS, G, LB) |
This subroutine moves energy across lines of partial reflection to prevent reflection of energy that is supposed to get across. More... | |
subroutine | correct_halo_rotation (En, test, G, NAngle) |
This subroutine rotates points in the halos where required to accomodate changes in grid orientation, such as at the tripolar fold. More... | |
subroutine | ppm_reconstruction_x (h_in, h_l, h_r, G, LB, simple_2nd) |
This subroutine calculates left/right edge values for PPM reconstruction. More... | |
subroutine | ppm_reconstruction_y (h_in, h_l, h_r, G, LB, simple_2nd) |
This subroutine calculates left/right edge valus for PPM reconstruction. More... | |
subroutine | ppm_limit_pos (h_in, h_L, h_R, h_min, G, iis, iie, jis, jie) |
This subroutine limits the left/right edge values of the PPM reconstruction to give a reconstruction that is positive-definite. Here this is reinterpreted as giving a constant thickness if the mean thickness is less than h_min, with a minimum of h_min otherwise. More... | |
subroutine, public | internal_tides_init (Time, G, GV, param_file, diag, CS) |
subroutine, public | internal_tides_end (CS) |
|
private |
This subroutine rotates points in the halos where required to accomodate changes in grid orientation, such as at the tripolar fold.
[in] | g | The ocean's grid structure |
Definition at line 1972 of file MOM_internal_tides.F90.
Referenced by propagate_int_tide().
subroutine, public mom_internal_tides::get_lowmode_loss | ( | integer, intent(in) | i, |
integer, intent(in) | j, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(int_tide_cs), pointer | CS, | ||
character(len=*), intent(in) | mechanism, | ||
real, intent(out) | TKE_loss_sum | ||
) |
This subroutine extracts the energy lost from the propagating internal which has been summed across all angles, frequencies, and modes for a given mechanism and location. It can be called from another module to get values from this module's (private) CS.
[in] | g | The ocean's grid structure |
[out] | tke_loss_sum | Total energy loss rate due to specified mechanism, in W m-2. |
Definition at line 803 of file MOM_internal_tides.F90.
subroutine, public mom_internal_tides::internal_tides_end | ( | type(int_tide_cs), pointer | CS | ) |
Definition at line 2744 of file MOM_internal_tides.F90.
subroutine, public mom_internal_tides::internal_tides_init | ( | type(time_type), intent(in), target | Time, |
type(ocean_grid_type), intent(inout) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(param_file_type), intent(in) | param_file, | ||
type(diag_ctrl), intent(in), target | diag, | ||
type(int_tide_cs), pointer | CS | ||
) |
[in] | time | The current model time. |
[in,out] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | param_file | A structure to parse for run-time parameters. |
[in] | diag | A structure that is used to regulate diagnostic output. |
cs | A pointer that is set to point to the control structure for this module. |
Definition at line 2300 of file MOM_internal_tides.F90.
Referenced by mom_diabatic_driver::diabatic_driver_init().
|
private |
This subroutine calculates the energy lost from the propagating internal tide due to scattering over small-scale roughness along the lines of Jayne & St. Laurent (2001).
[in] | g | The ocean's grid structure. |
[in] | nb | Near-bottom stratification, in s-1. |
[in,out] | ub | Rms (over one period) near-bottom horizontal |
[in] | tke_loss_fixed | Fixed part of energy loss, |
[in,out] | en | Energy density of the internal waves, in J m-2. |
[out] | tke_loss | Energy loss rate, in W m-2 |
[in] | dt | Time increment, in s. |
[in] | full_halos | If true, do the calculation over the entirecomputational domain. |
Definition at line 702 of file MOM_internal_tides.F90.
Referenced by propagate_int_tide().
|
private |
This subroutines evaluates the meridional mass or volume fluxes in a layer.
[in] | g | The ocean's grid structure. |
[in] | v | The meridional velocity, in m s-1. |
[in] | h | Energy density used to calculate the fluxes, in J m-2. |
[in] | hl | Left- Energy densities in the reconstruction, in J m-2. |
[in] | hr | Right- Energy densities in the reconstruction, in J m-2. |
[in,out] | vh | The meridional energy transport, in J s-1. |
[in] | dt | Time increment in s. |
[in] | ieh | The index range to work on. |
[in] | vol_cfl | If true, rescale the ratio of face areas to the cell areas when estimating the CFL number. |
Definition at line 1701 of file MOM_internal_tides.F90.
Referenced by propagate_y().
|
private |
This subroutine calculates the 1-d flux for advection in angular space using a monotonic piecewise parabolic scheme. Should be within i and j spatial loops.
Definition at line 974 of file MOM_internal_tides.F90.
Referenced by refract().
|
private |
This subroutine limits the left/right edge values of the PPM reconstruction to give a reconstruction that is positive-definite. Here this is reinterpreted as giving a constant thickness if the mean thickness is less than h_min, with a minimum of h_min otherwise.
[in] | g | The ocean's grid structure. |
[in] | h_in | Thickness of layer (2D). |
[in,out] | h_l | Left edge value (2D). |
[in,out] | h_r | Right edge value (2D). |
[in] | h_min | The minimum thickness that can be obtained by a concave parabolic fit. |
[in] | jie | Index range for computation. |
Definition at line 2196 of file MOM_internal_tides.F90.
Referenced by ppm_reconstruction_x(), and ppm_reconstruction_y().
|
private |
This subroutine calculates left/right edge values for PPM reconstruction.
[in] | g | The ocean's grid structure. |
[in] | h_in | Energy density in a sector (2D). |
[out] | h_l | Left edge value of reconstruction (2D). |
[out] | h_r | Right edge value of reconstruction (2D). |
[in] | lb | A structure with the active loop bounds. |
[in] | simple_2nd | If true, use the arithmetic mean energy densities as default edge values for a simple 2nd order scheme. |
Definition at line 2025 of file MOM_internal_tides.F90.
References ppm_limit_pos().
Referenced by propagate_x().
|
private |
This subroutine calculates left/right edge valus for PPM reconstruction.
[in] | g | The ocean's grid structure. |
[in] | h_in | Energy density in a sector (2D). |
[out] | h_l | Left edge value of reconstruction (2D). |
[out] | h_r | Right edge value of reconstruction (2D). |
[in] | lb | A structure with the active loop bounds. |
[in] | simple_2nd | If true, use the arithmetic mean energy densities as default edge values for a simple 2nd order scheme. |
Definition at line 2110 of file MOM_internal_tides.F90.
References ppm_limit_pos().
Referenced by propagate_y().
|
private |
This subroutine does refraction on the internal waves at a single frequency.
[in,out] | g | The ocean's grid structure. |
[in,out] | en | The internal gravity wave energy density as a |
[in] | cn | Baroclinic mode speed, in m s-1. |
[in] | freq | Wave frequency, in s-1. |
[in] | dt | Time step, in s. |
Definition at line 1055 of file MOM_internal_tides.F90.
References propagate_corner_spread(), propagate_x(), and propagate_y().
Referenced by propagate_int_tide().
|
private |
This subroutine does first-order corner advection. It was written with the hopes of smoothing out the garden sprinkler effect, but is too numerically diffusive to be of much use as of yet. It is not yet compatible with reflection schemes (BDM).
[in] | g | The ocean's grid structure. |
[in,out] | en | The energy density integrated over an angular |
[in] | speed | The magnitude of the group velocity at the cell |
[in] | energized_wedge | Index of current ray direction. |
[in] | dt | Time increment in s. |
cs | The control structure returned by a previous call to continuity_PPM_init. | |
[in] | lb | A structure with the active energy loop bounds. |
Definition at line 1187 of file MOM_internal_tides.F90.
Referenced by propagate().
subroutine, public mom_internal_tides::propagate_int_tide | ( | real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | h, |
type(thermo_var_ptrs), intent(in) | tv, | ||
real, dimension(szi_(g),szj_(g),cs%nmode), intent(in) | cn, | ||
real, dimension(szi_(g),szj_(g)), intent(in) | TKE_itidal_input, | ||
real, dimension(szi_(g),szj_(g)), intent(in) | vel_btTide, | ||
real, dimension(szi_(g),szj_(g)), intent(in) | Nb, | ||
real, intent(in) | dt, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(int_tide_cs), pointer | CS | ||
) |
This subroutine calls other subroutines in this file that are needed to refract, propagate, and dissipate energy density of the internal tide.
[in,out] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | h | Layer thicknesses, in H |
[in] | tv | Pointer to thermodynamic variables (needed for wave structure). |
[in] | tke_itidal_input | The energy input to the internal waves, in W m-2. |
[in] | vel_bttide | Barotropic velocity read from file, in m s-1. |
[in] | nb | Near-bottom buoyancy frequency, in s-1. |
[in] | dt | Length of time over which these fluxes will be applied, in s. |
cs | A pointer to the control structure returned by a previous call to int_tide_init. |
Definition at line 204 of file MOM_internal_tides.F90.
References mom_domains::complete_group_pass(), correct_halo_rotation(), itidal_lowmode_loss(), mom_error_handler::mom_error(), propagate(), refract(), mom_domains::start_group_pass(), sum_en(), and mom_wave_structure::wave_structure().
|
private |
[in] | g | The ocean's grid structure. |
[in,out] | en | The energy density integrated over an angular |
[in] | speed_x | The magnitude of the group velocity at the |
[in] | dt | Time increment in s. |
cs | The control structure returned by a previous call to continuity_PPM_init. | |
[in] | lb | A structure with the active energy loop bounds. |
Definition at line 1462 of file MOM_internal_tides.F90.
References ppm_reconstruction_x(), reflect(), teleport(), and zonal_flux_en().
Referenced by propagate().
|
private |
[in] | g | The ocean's grid structure. |
[in,out] | en | The energy density integrated over an angular |
[in] | speed_y | The magnitude of the group velocity at the |
[in] | dt | Time increment in s. |
cs | The control structure returned by a previous call to continuity_PPM_init. | |
[in] | lb | A structure with the active energy loop bounds. |
Definition at line 1551 of file MOM_internal_tides.F90.
References merid_flux_en(), ppm_reconstruction_y(), reflect(), and teleport().
Referenced by propagate().
|
private |
This subroutine does reflection of the internal waves at a single frequency.
[in] | g | The ocean's grid structure |
Definition at line 1753 of file MOM_internal_tides.F90.
Referenced by propagate_x(), and propagate_y().
|
private |
This subroutine does refraction on the internal waves at a single frequency.
[in] | g | The ocean's grid structure. |
[in,out] | en | The internal gravity wave energy density as a |
[in] | cn | Baroclinic mode speed, in m s-1. |
[in] | freq | Wave frequency, in s-1. |
[in] | dt | Time step, in s. |
[in] | use_ppmang | If true, use PPM for advection rather than upwind. |
Definition at line 826 of file MOM_internal_tides.F90.
References ppm_angular_advect().
Referenced by propagate_int_tide().
|
private |
This subroutine checks for energy conservation on computational domain.
[in] | g | The ocean's grid structure. |
Definition at line 660 of file MOM_internal_tides.F90.
Referenced by propagate_int_tide().
|
private |
This subroutine moves energy across lines of partial reflection to prevent reflection of energy that is supposed to get across.
[in] | g | The ocean's grid structure. |
Definition at line 1871 of file MOM_internal_tides.F90.
Referenced by propagate_x(), and propagate_y().
|
private |
This subroutines evaluates the zonal mass or volume fluxes in a layer.
[in] | g | The ocean's grid structure. |
[in] | u | The zonal velocity, in m s-1. |
[in] | h | Energy density used to calculate the fluxes, in J m-2. |
[in] | hl | Left- Energy densities in the reconstruction, in J m-2. |
[in] | hr | Right- Energy densities in the reconstruction, in J m-2. |
[in,out] | uh | The zonal energy transport, in J s-1. |
[in] | dt | Time increment in s. |
[in] | ieh | The index range to work on. |
[in] | vol_cfl | If true, rescale the ratio of face areas to the cell areas when estimating the CFL number. |
Definition at line 1648 of file MOM_internal_tides.F90.
Referenced by propagate_x().