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
[integer] :: Diagnostic identifier.%
id_vh_sm
[integer] :: Diagnostic identifier.%
id_l2_u
[integer] :: Diagnostic identifier.%
id_l2_v
[integer] :: Diagnostic identifier.%
id_sfn_x
[integer] :: Diagnostic identifier.%
id_sfn_y
[integer] :: Diagnostic identifier.%
initialized
[logical] :: True if this control structure has been initialized.%
max_smoothing_cfl
[real] :: Maximum value of the smoothing CFL for interface height filtering [nondim].%
filter_rate
[real] :: The rate at which grid-scale anomalies are damped away [T-1 ~> s-1].%
filter_order
[integer] :: The even power of the interface height smoothing. At present valid values are 0, 2, or 4.%
interface_filter
[logical] :: If true, interfaces heights are diffused.%
isotropic_filter
[logical] :: If 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
[logical] :: write verbose checksums for debugging purposes%
diag
[type( diag_ctrl ),pointer] :: structure 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 :: [inout] Layer thickness [H ~> m or kg m-2]
uhtr :: [inout] Accumulated zonal mass flux [L2 H ~> m3 or kg]
vhtr :: [inout] Accumulated meridional mass flux [L2 H ~> m3 or kg]
tv :: [in] Thermodynamics structure
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 :: [in] Layer thickness [H ~> m or kg m-2]
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 :: [in] Thermodynamics structure
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 :: [in] Parameter file handles
diag :: [inout] Diagnostics control structure
cdp :: [inout] Continuity equation diagnostics
cs :: [inout] Control structure for interface height filtering
- Call to:
mom_error_handler::mom_error
mom_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