namespace mom_set_diffusivity

Overview

Calculate vertical diffusivity from all mixing processes. More…

namespace mom_set_diffusivity {

// global functions

subroutine, public set_diffusivity(
    u u,
    v v,
    h h,
    u_h u_h,
    v_h v_h,
    tv tv,
    fluxes fluxes,
    optics optics,
    visc visc,
    dt_in_T dt_in_T,
    G G,
    GV GV,
    US US,
    CS CS,
    Kd_lay Kd_lay,
    Kd_int Kd_int
    );

subroutine, public set_bbl_tke(
    u u,
    v v,
    h h,
    fluxes fluxes,
    visc visc,
    G G,
    GV GV,
    US US,
    CS CS
    );

subroutine, public set_diffusivity_init(
    Time Time,
    G G,
    GV GV,
    US US,
    param_file param_file,
    diag diag,
    CS CS,
    int_tide_CSp int_tide_CSp,
    tm_CSp tm_CSp,
    halo_TS halo_TS
    );

subroutine, public set_diffusivity_end(CS CS);

} // namespace mom_set_diffusivity

Detailed Documentation

Calculate vertical diffusivity from all mixing processes.

Global Functions

subroutine, public set_diffusivity(
    u u,
    v v,
    h h,
    u_h u_h,
    v_h v_h,
    tv tv,
    fluxes fluxes,
    optics optics,
    visc visc,
    dt_in_T dt_in_T,
    G G,
    GV GV,
    US US,
    CS CS,
    Kd_lay Kd_lay,
    Kd_int Kd_int
    )

Sets the interior vertical diffusion of scalars due to the following processes:

  1. Shear-driven mixing: two options, Jackson et at. and KPP interior;

  2. Background mixing via CVMix (Bryan-Lewis profile) or the scheme described by Harrison & Hallberg, JPO 2008;

  3. Double-diffusion, old method and new method via CVMix;

  4. Tidal mixing: many options available, see MOM_tidal_mixing.F90; In addition, this subroutine has the option to set the interior vertical viscosity associated with processes 1,2 and 4 listed above, which is stored in viscKv_slow. Vertical viscosity due to shear-driven mixing is passed via viscKv_shear

Parameters:

g

The ocean’s grid structure.

gv

The ocean’s vertical grid structure.

us

A dimensional unit scaling type

u

The zonal velocity [L T-1 ~> m s-1].

v

The meridional velocity [L T-1 ~> m s-1].

h

Layer thicknesses [H ~> m or kg m-2].

u_h

Zonal velocity interpolated to h points [L T-1 ~> m s-1].

v_h

Meridional velocity interpolated to h points [L T-1 ~> m s-1].

tv

Structure with pointers to thermodynamic fields. Out is for tvTempxPmE.

fluxes

A structure of thermodynamic surface fluxes

optics

A structure describing the optical properties of the ocean.

visc

Structure containing vertical viscosities, bottom boundary layer properies, and related fields.

dt_in_t

Time increment [s].

cs

Module control structure.

kd_lay

Diapycnal diffusivity of each layer [Z2 T-1 ~> m2 s-1].

kd_int

Diapycnal diffusivity at each interface [Z2 T-1 ~> m2 s-1].

subroutine, public set_bbl_tke(
    u u,
    v v,
    h h,
    fluxes fluxes,
    visc visc,
    G G,
    GV GV,
    US US,
    CS CS
    )

This subroutine calculates several properties related to bottom boundary layer turbulence.

Parameters:

g

The ocean’s grid structure

gv

The ocean’s vertical grid structure

us

A dimensional unit scaling type

u

The zonal velocity [L T-1 ~> m s-1]

v

The meridional velocity [L T-1 ~> m s-1]

h

Layer thicknesses [H ~> m or kg m-2]

fluxes

A structure of thermodynamic surface fluxes

visc

Structure containing vertical viscosities, bottom boundary layer properies, and related fields.

cs

Diffusivity control structure

subroutine, public set_diffusivity_init(
    Time Time,
    G G,
    GV GV,
    US US,
    param_file param_file,
    diag diag,
    CS CS,
    int_tide_CSp int_tide_CSp,
    tm_CSp tm_CSp,
    halo_TS halo_TS
    )

Parameters:

time

The current model time

g

The ocean’s grid structure.

gv

The ocean’s vertical grid structure.

us

A dimensional unit scaling type

param_file

A structure to parse for run-time parameters.

diag

A structure used to regulate diagnostic output.

cs

pointer set to point to the module control structure.

int_tide_csp

pointer to the internal tides control structure (BDM)

tm_csp

pointer to tidal mixing control structure

halo_ts

The halo size of tracer points that must be valid for the calculations in set_diffusivity.

subroutine, public set_diffusivity_end(CS CS)

Clear pointers and dealocate memory.

Parameters:

cs

Control structure for this module