namespace mom_continuity_ppm

Overview

Solve the layer continuity equation using the PPM method for layer fluxes. More…

namespace mom_continuity_ppm {

// global functions

subroutine, public continuity_ppm(
    u u,
    v v,
    hin hin,
    h h,
    uh uh,
    vh vh,
    dt_in_T dt_in_T,
    G G,
    GV GV,
    US US,
    CS CS,
    uhbt uhbt,
    vhbt vhbt,
    OBC OBC,
    visc_rem_u visc_rem_u,
    visc_rem_v visc_rem_v,
    u_cor u_cor,
    v_cor v_cor,
    BT_cont BT_cont
    );

subroutine, public continuity_ppm_init(
    Time Time,
    G G,
    GV GV,
    US US,
    param_file param_file,
    diag diag,
    CS CS
    );

integer function, public continuity_ppm_stencil(CS CS);
subroutine, public continuity_ppm_end(CS CS);

} // namespace mom_continuity_ppm

Detailed Documentation

Solve the layer continuity equation using the PPM method for layer fluxes.

This module contains the subroutines that advect layer thickness. The scheme here uses a Piecewise-Parabolic method with a positive definite limiter.

Global Functions

subroutine, public continuity_ppm(
    u u,
    v v,
    hin hin,
    h h,
    uh uh,
    vh vh,
    dt_in_T dt_in_T,
    G G,
    GV GV,
    US US,
    CS CS,
    uhbt uhbt,
    vhbt vhbt,
    OBC OBC,
    visc_rem_u visc_rem_u,
    visc_rem_v visc_rem_v,
    u_cor u_cor,
    v_cor v_cor,
    BT_cont BT_cont
    )

Time steps the layer thicknesses, using a monotonically limit, directionally split PPM scheme, based on Lin (1994).

Parameters:

g

The ocean’s grid structure.

cs

Module’s control structure.

u

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

v

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

hin

Initial layer thickness [H ~> m or kg m-2].

h

Final layer thickness [H ~> m or kg m-2].

uh

Zonal volume flux, u*h*dy [H L2 T-1 ~> m3 s-1 or kg s-1].

vh

Meridional volume flux, v*h*dx [H L2 T-1 ~> m3 s-1 or kg s-1].

dt_in_t

Time increment [T ~> s].

gv

Vertical grid structure.

us

A dimensional unit scaling type

uhbt

The summed volume flux through zonal faces

vhbt

The summed volume flux through meridional faces

obc

Open boundaries control structure.

visc_rem_u

The fraction of zonal momentum originally in a layer that remains after a time-step of viscosity, and the fraction of a time-step’s worth of a barotropic acceleration that a layer experiences after viscosity is applied. Non-dimensional between 0 (at the bottom) and 1 (far above the bottom).

visc_rem_v

The fraction of meridional momentum originally in a layer that remains after a time-step of viscosity, and the fraction of a time-step’s worth of a barotropic acceleration that a layer experiences after viscosity is applied. Non-dimensional between 0 (at the bottom) and 1 (far above the bottom).

u_cor

The zonal velocities that give uhbt as the depth-integrated transport [L T-1 ~> m s-1].

v_cor

The meridional velocities that give vhbt as the depth-integrated transport [L T-1 ~> m s-1].

bt_cont

A structure with elements that describe the effective open face areas as a function of barotropic flow.

subroutine, public continuity_ppm_init(
    Time Time,
    G G,
    GV GV,
    US US,
    param_file param_file,
    diag diag,
    CS CS
    )

Initializes continuity_ppm_cs.

Parameters:

time

The current model time.

g

The ocean’s grid structure.

gv

Vertical grid structure.

us

A dimensional unit scaling type

param_file

A structure indicating the open file to parse for model parameter values.

diag

A structure that is used to regulate diagnostic output.

cs

Module’s control structure.

integer function, public continuity_ppm_stencil(CS CS)

continuity_PPM_stencil returns the continuity solver stencil size

Parameters:

cs

Module’s control structure.

Returns:

The continuity solver stencil size with the current settings.

subroutine, public continuity_ppm_end(CS CS)

Destructor for continuity_ppm_cs.

Parameters:

cs

Module’s control structure.