MOM6
MOM_lateral_boundary_diffusion.F90 File Reference
#include <MOM_memory.h>
#include "version_variable.h"
Include dependency graph for MOM_lateral_boundary_diffusion.F90:

Go to the source code of this file.

Data Types

type  mom_lateral_boundary_diffusion::lateral_boundary_diffusion_cs
 Sets parameters for lateral boundary mixing module. More...
 

Modules

module  mom_lateral_boundary_diffusion
 Calculates and applies diffusive fluxes as a parameterization of lateral mixing (non-neutral) by mesoscale eddies near the top and bottom (to be implemented) boundary layers of the ocean.
 

Functions/Subroutines

logical function, public mom_lateral_boundary_diffusion::lateral_boundary_diffusion_init (Time, G, param_file, diag, diabatic_CSp, CS)
 Initialization routine that reads runtime parameters and sets up pointers to other control structures that might be needed for lateral boundary diffusion. More...
 
subroutine, public mom_lateral_boundary_diffusion::lateral_boundary_diffusion (G, GV, US, h, Coef_x, Coef_y, dt, Reg, CS)
 Driver routine for calculating lateral diffusive fluxes near the top and bottom boundaries. Two different methods are available: Method 1: lower order representation, calculate fluxes from bulk layer integrated quantities. Method 2: more straight forward, diffusion is applied layer by layer using only information from neighboring cells. More...
 
real function mom_lateral_boundary_diffusion::bulk_average (boundary, nk, deg, h, hBLT, phi, ppoly0_E, ppoly0_coefs, method, k_top, zeta_top, k_bot, zeta_bot)
 
real function mom_lateral_boundary_diffusion::harmonic_mean (h1, h2)
 Calculate the harmonic mean of two quantities See Harmonic Mean. More...
 
subroutine, public mom_lateral_boundary_diffusion::boundary_k_range (boundary, nk, h, hbl, k_top, zeta_top, k_bot, zeta_bot)
 Find the k-index range corresponding to the layers that are within the boundary-layer region. More...
 
subroutine mom_lateral_boundary_diffusion::fluxes_layer_method (boundary, nk, deg, h_L, h_R, hbl_L, hbl_R, area_L, area_R, phi_L, phi_R, ppoly0_coefs_L, ppoly0_coefs_R, ppoly0_E_L, ppoly0_E_R, method, khtr_u, F_layer)
 Calculate the lateral boundary diffusive fluxes using the layer by layer method. See Along layer approach (Method #2). More...
 
subroutine mom_lateral_boundary_diffusion::fluxes_bulk_method (boundary, nk, deg, h_L, h_R, hbl_L, hbl_R, area_L, area_R, phi_L, phi_R, ppoly0_coefs_L, ppoly0_coefs_R, ppoly0_E_L, ppoly0_E_R, method, khtr_u, F_bulk, F_layer, F_limit)
 Apply the lateral boundary diffusive fluxes calculated from a 'bulk model' See Bulk layer approach (Method #1). More...
 
logical function, public mom_lateral_boundary_diffusion::near_boundary_unit_tests (verbose)
 Unit tests for near-boundary horizontal mixing. More...
 
logical function mom_lateral_boundary_diffusion::test_layer_fluxes (verbose, nk, test_name, F_calc, F_ans)
 Returns true if output of near-boundary unit tests does not match correct computed values and conditionally writes results to stream. More...
 
logical function mom_lateral_boundary_diffusion::test_boundary_k_range (k_top, zeta_top, k_bot, zeta_bot, k_top_ans, zeta_top_ans, k_bot_ans, zeta_bot_ans, test_name, verbose)
 Return true if output of unit tests for boundary_k_range does not match answers. More...
 

Variables

integer, parameter, public mom_lateral_boundary_diffusion::surface = -1
 Set a value that corresponds to the surface bopundary. More...
 
integer, parameter, public mom_lateral_boundary_diffusion::bottom = 1
 Set a value that corresponds to the bottom boundary. More...
 
character(len=40) mom_lateral_boundary_diffusion::mdl = "MOM_lateral_boundary_diffusion"
 Name of this module. More...