mom_interface_filter module reference
Interface height filtering module.
Data Types
Control structure for interface height filtering. |
Functions/Subroutines
Apply a transport that leads to a smoothing of interface height, subject to limits that ensure stability and positive definiteness of layer thicknesses. |
|
Calculates parameterized layer transports for use in the continuity equation. |
|
Initialize the interface height filtering module/structure. |
|
Deallocate the interface height filtering control structure. |
Detailed Description
Interface height filtering
Interface height filtering is implemented via along-layer mass fluxes
where the mass fluxes are cast as the difference in vector streamfunction
The streamfunction is proportional to the slope in the difference between unsmoothed interface heights and those smoothed with one (or more) passes of a Laplacian filter, depending on the order of the filter, or to the slope for a Laplacian filter
The result of the above expression is subsequently bounded by minimum and maximum values, including a maximum smoothing rate for numerical stability ( \(\kappa_{h}\) is calculated internally).
Module mom_interface_filter parameters
Symbol |
Module parameter |
|---|---|
|
|
|
|
|
|
|
Type Documentation
- type mom_interface_filter/interface_filter_cs
Control structure for interface height filtering.
- Type fields:
% id_uh_sm ::
integerDiagnostic identifier.% id_vh_sm ::
integerDiagnostic identifier.% id_l2_u ::
integerDiagnostic identifier.% id_l2_v ::
integerDiagnostic identifier.% id_sfn_x ::
integerDiagnostic identifier.% id_sfn_y ::
integerDiagnostic identifier.% initialized ::
logicalTrue if this control structure has been initialized.% max_smoothing_cfl ::
realMaximum value of the smoothing CFL for interface height filtering [nondim].% filter_rate ::
realThe rate at which grid-scale anomalies are damped away [T-1 ~> s-1].% filter_order ::
integerThe even power of the interface height smoothing. At present valid values are 0, 2, or 4.% interface_filter ::
logicalIf true, interfaces heights are diffused.% isotropic_filter ::
logicalIf true, use the same filtering lengthscales in both directions, otherwise use filtering lengthscales in each direction that scale with the grid spacing in that direction.% debug ::
logicalwrite verbose checksums for debugging purposes% diag ::
type(diag_ctrl), pointerstructure used to regulate timing of diagnostics
Function/Subroutine Documentation
- subroutine mom_interface_filter/interface_filter(h, uhtr, vhtr, tv, dt, G, GV, US, CDp, CS)
Apply a transport that leads to a smoothing of interface height, subject to limits that ensure stability and positive definiteness of layer thicknesses. It also updates the along-layer mass fluxes used in the tracer transport equations.
- Parameters:
g :: [in] Ocean grid structure
gv :: [in] Vertical grid structure
us :: [in] A dimensional unit scaling type
h ::
h[inout] Layer thickness [H ~> m or kg m-2]uhtr ::
uhtr[inout] Accumulated zonal mass flux [L2 H ~> m3 or kg]vhtr ::
vhtr[inout] Accumulated meridional mass flux [L2 H ~> m3 or kg]tv ::
tv[in] Thermodynamics structuredt ::
dt[in] Time increment [T ~> s]cdp :: [inout] Diagnostics for the continuity equation
cs :: [inout] Control structure for interface height filtering
- Call to:
- subroutine mom_interface_filter/filter_interface(h, e, Lsm2_u, Lsm2_v, uhD, vhD, tv, G, GV, US, halo_size)
Calculates parameterized layer transports for use in the continuity equation. Fluxes are limited to give positive definite thicknesses. Called by
interface_filter(). .- Parameters:
g :: [in] Ocean grid structure
gv :: [in] Vertical grid structure
us :: [in] A dimensional unit scaling type
h ::
h[in] Layer thickness [H ~> m or kg m-2]e ::
e[in] Interface positions [Z ~> m]lsm2_u :: [in] Interface smoothing lengths squared at u points [L2 ~> m2]
lsm2_v :: [in] Interface smoothing lengths squared at v points [L2 ~> m2]
uhd :: [out] Zonal mass fluxes [H L2 ~> m3 or kg]
vhd :: [out] Meridional mass fluxes [H L2 ~> m3 or kg]
tv ::
tv[in] Thermodynamics structurehalo_size ::
halo_size[in] The size of the halo to work on, 0 by default.
- Called from:
- subroutine mom_interface_filter/interface_filter_init(Time, G, GV, US, param_file, diag, CDp, CS)
Initialize the interface height filtering module/structure.
- Parameters:
time :: [in] Current model time
g :: [in] Ocean grid structure
gv :: [in] Vertical grid structure
us :: [in] A dimensional unit scaling type
param_file ::
param_file[in] Parameter file handlesdiag ::
diag[inout] Diagnostics control structurecdp :: [inout] Continuity equation diagnostics
cs :: [inout] Control structure for interface height filtering
- Call to:
mom_error_handler::mom_errormom_diag_mediator::register_diag_field
- subroutine mom_interface_filter/interface_filter_end(CS, CDp)
Deallocate the interface height filtering control structure.
- Parameters:
cs :: [inout] Control structure for interface height filtering
cdp :: [inout] Continuity diagnostic control structure