# mom_regularize_layers module reference¶

Provides regularization of layers in isopycnal mode.

More…

## Data Types¶

 regularize_layers_cs This control structure holds parameters used by the MOM_regularize_layers module.

## Functions/Subroutines¶

 regularize_layers() This subroutine partially steps the bulk mixed layer model. regularize_surface() This subroutine ensures that there is a degree of horizontal smoothness in the depths of the near-surface interfaces. find_deficit_ratios() This subroutine determines the amount by which the harmonic mean thickness at velocity points differ from the arithmetic means, relative to the the arithmetic means, after eliminating thickness variations that are solely due to topography and aggregating all interior layers into one. regularize_layers_init() Initializes the regularize_layers control structure.

## Detailed Description¶

Provides regularization of layers in isopycnal mode.

## Type Documentation¶

type mom_regularize_layers/regularize_layers_cs

This control structure holds parameters used by the MOM_regularize_layers module.

Type fields
• % regularize_surface_layers [logical] :: If true, vertically restructure the near-surface layers when they have too much lateral variations to allow for sensible lateral barotropic transports.

• % reg_sfc_detrain [logical] :: If true, allow the buffer layers to detrain into the interior as a part of the restructuring when regularize_surface_layers is true.

• % density_match_tol [real] :: A relative tolerance for how well the densities must match with the target densities during detrainment when regularizing the near-surface layers [nondim].

• % h_def_tol1 [real] :: The value of the relative thickness deficit at which to start modifying the structure, 0.5 by default (or a thickness ratio of 5.83) [nondim].

• % h_def_tol2 [real] :: The value of the relative thickness deficit at which to the structure modification is in full force, now 20% of the way from h_def_tol1 to 1 [nondim].

• % h_def_tol3 [real] :: The value of the relative thickness deficit at which to start detrainment from the buffer layers to the interior, now 30% of the way from h_def_tol1 to 1 [nondim].

• % h_def_tol4 [real] :: The value of the relative thickness deficit at which to do detrainment from the buffer layers to the interior at full force, now 50% of the way from h_def_tol1 to 1 [nondim].

• % hmix_min [real] :: The minimum mixed layer thickness [H ~> m or kg m-2].

• % time [type(time_type),pointer] :: A pointer to the ocean model’s clock.

• % diag [type(diag_ctrl),pointer] :: A structure that is used to regulate the timing of diagnostic output.

• % answers_2018 [logical] :: If true, use the order of arithmetic and expressions that recover the answers from the end of 2018. Otherwise, use updated and more robust forms of the same expressions.

• % debug [logical] :: If true, do more thorough checks for debugging purposes.

• % id_def_rat [integer] :: A diagnostic ID.

• % allow_clocks_in_omp_loops [logical] :: If true, clocks can be called from inside loops that can be threaded. To run with multiple threads, set to False.

## Function/Subroutine Documentation¶

subroutine mom_regularize_layers/regularize_layers(h, tv, dt, ea, eb, G, GV, US, CS)

This subroutine partially steps the bulk mixed layer model. The following processes are executed, in the order listed.

Parameters
• g :: [inout] The ocean’s grid structure.

• gv :: [in] The ocean’s vertical grid structure.

• h :: [inout] Layer thicknesses [H ~> m or kg m-2].

• tv :: [inout] A structure containing pointers to any available thermodynamic fields. Absent fields have NULL ptrs.

• dt :: [in] Time increment [T ~> s].

• ea :: [inout] The amount of fluid moved downward into a

• eb :: [inout] The amount of fluid moved upward into a layer

• us :: [in] A dimensional unit scaling type

• cs :: The control structure returned by a previous call to regularize_layers_init.

Call to

id_clock_pass mom_error_handler::mom_error regularize_surface

Called from

mom_diabatic_driver::layered_diabatic

subroutine mom_regularize_layers/regularize_surface(h, tv, dt, ea, eb, G, GV, US, CS)

This subroutine ensures that there is a degree of horizontal smoothness in the depths of the near-surface interfaces.

Parameters
• g :: [inout] The ocean’s grid structure.

• gv :: [in] The ocean’s vertical grid structure.

• h :: [inout] Layer thicknesses [H ~> m or kg m-2].

• tv :: [inout] A structure containing pointers to any available thermodynamic fields. Absent fields have NULL ptrs.

• dt :: [in] Time increment [T ~> s].

• ea :: [inout] The amount of fluid moved downward into a

• eb :: [inout] The amount of fluid moved upward into a layer

• us :: [in] A dimensional unit scaling type

• cs :: The control structure returned by a previous call to regularize_layers_init.

Call to
Called from

regularize_layers

subroutine mom_regularize_layers/find_deficit_ratios(e, def_rat_u, def_rat_v, G, GV, CS, h)

This subroutine determines the amount by which the harmonic mean thickness at velocity points differ from the arithmetic means, relative to the the arithmetic means, after eliminating thickness variations that are solely due to topography and aggregating all interior layers into one.

Parameters
• g :: [in] The ocean’s grid structure.

• gv :: [in] The ocean’s vertical grid structure.

• e :: [in] Interface depths [H ~> m or kg m-2]

• def_rat_u :: [out] The thickness deficit ratio at u points,

• def_rat_v :: [out] The thickness deficit ratio at v points,

• cs :: The control structure returned by a previous call to regularize_layers_init.

• h :: [in] Layer thicknesses [H ~> m or kg m-2].

Called from

regularize_surface

subroutine mom_regularize_layers/regularize_layers_init(Time, G, GV, param_file, diag, CS)

Initializes the regularize_layers control structure.

Parameters
• time :: [in] The current model time.

• g :: [in] The ocean’s grid structure.

• gv :: [in] The ocean’s vertical grid structure.

• param_file :: [in] A structure to parse for run-time parameters.

• diag :: [inout] A structure that is used to regulate diagnostic output.

• cs :: A pointer that is set to point to the control structure for this module.

Call to

id_clock_eos id_clock_pass mom_error_handler::mom_error

Called from

mom_diabatic_driver::diabatic_driver_init