MOM6
|
Solve the layer continuity equation.
Data Types | |
type | continuity_cs |
Control structure for mom_continuity. More... | |
Functions/Subroutines | |
subroutine, public | continuity (u, v, hin, h, uh, vh, dt, G, GV, CS, uhbt, vhbt, OBC, visc_rem_u, visc_rem_v, u_cor, v_cor, uhbt_aux, vhbt_aux, u_cor_aux, v_cor_aux, BT_cont) |
Time steps the layer thicknesses, using a monotonically limited, directionally split PPM scheme, based on Lin (1994). More... | |
subroutine, public | continuity_init (Time, G, GV, param_file, diag, CS) |
Initializes continuity_cs. More... | |
integer function, public | continuity_stencil (CS) |
continuity_stencil returns the continuity solver stencil size More... | |
subroutine, public | continuity_end (CS) |
Destructor for continuity_cs. More... | |
Variables | |
integer, parameter | ppm_scheme = 1 |
Enumerated constant to select PPM. More... | |
character(len=20), parameter | ppm_string = "PPM" |
String to select PPM. More... | |
subroutine, public mom_continuity::continuity | ( | real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke), intent(in) | u, |
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke), intent(in) | v, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(inout) | hin, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(inout) | h, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke), intent(out) | uh, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke), intent(out) | vh, | ||
real, intent(in) | dt, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(continuity_cs), pointer | CS, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed), intent(in), optional | uhbt, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb), intent(in), optional | vhbt, | ||
type(ocean_obc_type), optional, pointer | OBC, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke), intent(in), optional | visc_rem_u, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(in), optional | visc_rem_v, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke), intent(out), optional | u_cor, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke), intent(out), optional | v_cor, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed), intent(in), optional | uhbt_aux, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb), intent(in), optional | vhbt_aux, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke), intent(inout), optional | u_cor_aux, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke), intent(inout), optional | v_cor_aux, | ||
type(bt_cont_type), optional, pointer | BT_cont | ||
) |
Time steps the layer thicknesses, using a monotonically limited, directionally split PPM scheme, based on Lin (1994).
[in,out] | g | Ocean grid structure. |
[in] | gv | Vertical grid structure. |
[in] | u | Zonal velocity, in m/s. |
[in] | v | Meridional velocity, in m/s. |
[in,out] | hin | Initial layer thickness, in m or kg/m2. |
[in,out] | h | Final layer thickness, in m or kg/m2. |
[out] | uh | Volume flux through zonal faces = u*h*dy, in m3/s. |
[out] | vh | Volume flux through meridional faces = v*h*dx, in m3/s. |
[in] | dt | Time increment, in s. |
cs | Control structure for mom_continuity. | |
[in] | uhbt | The vertically summed volume flux through zonal faces, in m3/s. |
[in] | vhbt | The vertically summed volume flux through meridional faces, in m3/s. |
obc | Open boundaries control structure. | |
[in] | visc_rem_u | Both the fraction of zonal momentum 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). |
[in] | visc_rem_v | Both the fraction of meridional momentum 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). |
[out] | u_cor | The zonal velocities that give uhbt as the depth-integrated transport, in m/s. |
[out] | v_cor | The meridional velocities that give vhbt as the depth-integrated transport, in m/s. |
[in] | uhbt_aux | A second summed zonal volume flux in m3/s. |
[in] | vhbt_aux | A second summed meridional volume flux in m3/s. |
[in,out] | u_cor_aux | The zonal velocities that give uhbt_aux as the depth-integrated transport, in m/s. |
[in,out] | v_cor_aux | The meridional velocities that give vhbt_aux as the depth-integrated transport, in m/s. |
bt_cont | A structure with elements that describe the effective open face areas as a function of barotropic flow. |
Definition at line 44 of file MOM_continuity.F90.
References mom_error_handler::mom_error(), and ppm_scheme.
Referenced by mom_dynamics_legacy_split::step_mom_dyn_legacy_split(), mom_dynamics_unsplit::step_mom_dyn_unsplit(), and mom_dynamics_unsplit_rk2::step_mom_dyn_unsplit_rk2().
subroutine, public mom_continuity::continuity_end | ( | type(continuity_cs), pointer | CS | ) |
Destructor for continuity_cs.
cs | Control structure for mom_continuity. |
Definition at line 172 of file MOM_continuity.F90.
References mom_continuity_ppm::continuity_ppm_end(), and ppm_scheme.
subroutine, public mom_continuity::continuity_init | ( | type(time_type), intent(in), target | Time, |
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(param_file_type), intent(in) | param_file, | ||
type(diag_ctrl), intent(inout), target | diag, | ||
type(continuity_cs), pointer | CS | ||
) |
Initializes continuity_cs.
[in] | time | Current model time. |
[in] | g | Ocean grid structure. |
[in] | gv | Vertical grid structure. |
[in] | param_file | Parameter file handles. |
[in,out] | diag | Diagnostics control structure. |
cs | Control structure for mom_continuity. |
Definition at line 113 of file MOM_continuity.F90.
References mom_error_handler::mom_error(), mom_error_handler::mom_mesg(), ppm_scheme, ppm_string, and mom_string_functions::uppercase().
integer function, public mom_continuity::continuity_stencil | ( | type(continuity_cs), pointer | CS | ) |
continuity_stencil returns the continuity solver stencil size
cs | Module's control structure. |
Definition at line 159 of file MOM_continuity.F90.
References ppm_scheme.
Referenced by mom_dynamics_split_rk2::step_mom_dyn_split_rk2().
integer, parameter mom_continuity::ppm_scheme = 1 |
Enumerated constant to select PPM.
Definition at line 34 of file MOM_continuity.F90.
Referenced by continuity(), continuity_end(), continuity_init(), and continuity_stencil().
|
private |
String to select PPM.
Definition at line 35 of file MOM_continuity.F90.
Referenced by continuity_init().