MOM6
|
Time steps the ocean dynamics with an unsplit quasi 3rd order scheme.
Data Types | |
type | mom_dyn_unsplit_cs |
MOM_dynamics_unsplit module control structure. More... | |
integer | id_clock_cor |
CPU time clock IDs. More... | |
integer | id_clock_pres |
CPU time clock IDs. More... | |
integer | id_clock_vertvisc |
CPU time clock IDs. More... | |
integer | id_clock_continuity |
CPU time clock IDs. More... | |
integer | id_clock_horvisc |
CPU time clock IDs. More... | |
integer | id_clock_mom_update |
CPU time clock IDs. More... | |
integer | id_clock_pass |
CPU time clock IDs. More... | |
integer | id_clock_pass_init |
CPU time clock IDs. More... | |
subroutine, public | step_mom_dyn_unsplit (u, v, h, tv, visc, Time_local, dt, forces, p_surf_begin, p_surf_end, uh, vh, uhtr, vhtr, eta_av, G, GV, US, CS, VarMix, MEKE, Waves) |
Step the MOM6 dynamics using an unsplit mixed 2nd order (for continuity) and 3rd order (for the inviscid momentum equations) order scheme. More... | |
subroutine, public | register_restarts_dyn_unsplit (HI, GV, param_file, CS, restart_CS) |
Allocate the control structure for this module, allocates memory in it, and registers any auxiliary restart variables that are specific to the unsplit time stepping scheme. More... | |
subroutine, public | initialize_dyn_unsplit (u, v, h, Time, G, GV, US, param_file, diag, CS, restart_CS, Accel_diag, Cont_diag, MIS, MEKE, OBC, update_OBC_CSp, ALE_CSp, setVisc_CSp, visc, dirs, ntrunc) |
Initialize parameters and allocate memory associated with the unsplit dynamics module. More... | |
subroutine, public | end_dyn_unsplit (CS) |
Clean up and deallocate memory associated with the unsplit dynamics module. More... | |
subroutine, public mom_dynamics_unsplit::end_dyn_unsplit | ( | type(mom_dyn_unsplit_cs), pointer | CS | ) |
Clean up and deallocate memory associated with the unsplit dynamics module.
cs | unsplit dynamics control structure that will be deallocated in this subroutine. |
Definition at line 703 of file MOM_dynamics_unsplit.F90.
subroutine, public mom_dynamics_unsplit::initialize_dyn_unsplit | ( | real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke), intent(inout) | u, |
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke), intent(inout) | v, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(inout) | h, | ||
type(time_type), intent(in), target | Time, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(unit_scale_type), intent(in) | US, | ||
type(param_file_type), intent(in) | param_file, | ||
type(diag_ctrl), intent(inout), target | diag, | ||
type(mom_dyn_unsplit_cs), pointer | CS, | ||
type(mom_restart_cs), pointer | restart_CS, | ||
type(accel_diag_ptrs), intent(inout), target | Accel_diag, | ||
type(cont_diag_ptrs), intent(inout), target | Cont_diag, | ||
type(ocean_internal_state), intent(inout) | MIS, | ||
type(meke_type), pointer | MEKE, | ||
type(ocean_obc_type), pointer | OBC, | ||
type(update_obc_cs), pointer | update_OBC_CSp, | ||
type(ale_cs), pointer | ALE_CSp, | ||
type(set_visc_cs), pointer | setVisc_CSp, | ||
type(vertvisc_type), intent(inout) | visc, | ||
type(directories), intent(in) | dirs, | ||
integer, intent(inout), target | ntrunc | ||
) |
Initialize parameters and allocate memory associated with the unsplit dynamics module.
[in,out] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | us | A dimensional unit scaling type |
[in,out] | u | The zonal velocity [L T-1 ~> m s-1]. |
[in,out] | v | The meridional velocity [L T-1 ~> m s-1]. |
[in,out] | h | Layer thicknesses [H ~> m or kg m-2] |
[in] | time | The current model time. |
[in] | param_file | A structure to parse for run-time parameters. |
[in,out] | diag | A structure that is used to regulate diagnostic output. |
cs | The control structure set up by initialize_dyn_unsplit. | |
restart_cs | A pointer to the restart control structure. | |
[in,out] | accel_diag | A set of pointers to the various accelerations in the momentum equations, which can be used for later derived diagnostics, like energy budgets. |
[in,out] | cont_diag | A structure with pointers to various terms in the continuity equations. |
[in,out] | mis | The "MOM6 Internal State" structure, used to pass around pointers to various arrays for diagnostic purposes. |
meke | MEKE data | |
obc | If open boundary conditions are used, this points to the ocean_OBC_type that was set up in MOM_initialization. | |
update_obc_csp | If open boundary condition updates are used, this points to the appropriate control structure. | |
ale_csp | This points to the ALE control structure. | |
setvisc_csp | This points to the set_visc control structure. | |
[in,out] | visc | A structure containing vertical viscosities, bottom drag viscosities, and related fields. |
[in] | dirs | A structure containing several relevant directory paths. |
[in,out] | ntrunc | A target for the variable that records the number of times the velocity is truncated (this should be 0). |
Definition at line 565 of file MOM_dynamics_unsplit.F90.
References mom_continuity::continuity_init(), mom_coriolisadv::coriolisadv_init(), mom_verticalgrid::get_flux_units(), mom_hor_visc::hor_visc_init(), id_clock_continuity, id_clock_cor, id_clock_horvisc, id_clock_mom_update, id_clock_pass, id_clock_pass_init, id_clock_pres, id_clock_vertvisc, mom_error_handler::mom_error(), mom_pressureforce::pressureforce_init(), mom_tidal_forcing::tidal_forcing_init(), and mom_vert_friction::vertvisc_init().
subroutine, public mom_dynamics_unsplit::register_restarts_dyn_unsplit | ( | type(hor_index_type), intent(in) | HI, |
type(verticalgrid_type), intent(in) | GV, | ||
type(param_file_type), intent(in) | param_file, | ||
type(mom_dyn_unsplit_cs), pointer | CS, | ||
type(mom_restart_cs), pointer | restart_CS | ||
) |
Allocate the control structure for this module, allocates memory in it, and registers any auxiliary restart variables that are specific to the unsplit time stepping scheme.
All variables registered here should have the ability to be recreated if they are not present in a restart file.
[in] | hi | A horizontal index type structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | param_file | A structure to parse for run-time parameters. |
cs | The control structure set up by initialize_dyn_unsplit. | |
restart_cs | A pointer to the restart control structure. |
Definition at line 523 of file MOM_dynamics_unsplit.F90.
References mom_verticalgrid::get_flux_units(), and mom_error_handler::mom_error().
subroutine, public mom_dynamics_unsplit::step_mom_dyn_unsplit | ( | real, dimension(szib_(g),szj_(g),szk_(g)), intent(inout) | u, |
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(inout) | v, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(inout) | h, | ||
type(thermo_var_ptrs), intent(in) | tv, | ||
type(vertvisc_type), intent(inout) | visc, | ||
type(time_type), intent(in) | Time_local, | ||
real, intent(in) | dt, | ||
type(mech_forcing), intent(in) | forces, | ||
real, dimension(:,:), pointer | p_surf_begin, | ||
real, dimension(:,:), pointer | p_surf_end, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(inout) | uh, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(inout) | vh, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(inout) | uhtr, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(inout) | vhtr, | ||
real, dimension(szi_(g),szj_(g)), intent(out) | eta_av, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(unit_scale_type), intent(in) | US, | ||
type(mom_dyn_unsplit_cs), pointer | CS, | ||
type(varmix_cs), pointer | VarMix, | ||
type(meke_type), pointer | MEKE, | ||
type(wave_parameters_cs), optional, pointer | Waves | ||
) |
Step the MOM6 dynamics using an unsplit mixed 2nd order (for continuity) and 3rd order (for the inviscid momentum equations) order scheme.
[in,out] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | us | A dimensional unit scaling type |
[in,out] | u | The zonal velocity [L T-1 ~> m s-1]. |
[in,out] | v | The meridional velocity [L T-1 ~> m s-1]. |
[in,out] | h | Layer thicknesses [H ~> m or kg m-2]. |
[in] | tv | A structure pointing to various thermodynamic variables. |
[in,out] | visc | A structure containing vertical viscosities, bottom drag viscosities, and related fields. |
[in] | time_local | The model time at the end of the time step. |
[in] | dt | The dynamics time step [T ~> s]. |
[in] | forces | A structure with the driving mechanical forces |
p_surf_begin | A pointer (perhaps NULL) to the surface pressure at the start of this dynamic step [Pa]. | |
p_surf_end | A pointer (perhaps NULL) to the surface pressure at the end of this dynamic step [Pa]. | |
[in,out] | uh | The zonal volume or mass transport [H L2 T-1 ~> m3 s-1 or kg s-1]. |
[in,out] | vh | The meridional volume or mass transport [H L2 T-1 ~> m3 s-1 or kg s-1]. |
[in,out] | uhtr | The accumulated zonal volume or mass transport since the last tracer advection [H L2 ~> m3 or kg]. |
[in,out] | vhtr | The accumulated meridional volume or mass transport since the last tracer advection [H L2 ~> m3 or kg]. |
[out] | eta_av | The time-mean free surface height or column mass [H ~> m or kg m-2]. |
cs | The control structure set up by initialize_dyn_unsplit. | |
varmix | A pointer to a structure with fields that specify the spatially variable viscosities. | |
meke | A pointer to a structure containing fields related to the Mesoscale Eddy Kinetic Energy. | |
waves | A pointer to a structure containing fields related to the surface wave conditions |
Definition at line 188 of file MOM_dynamics_unsplit.F90.
References mom_continuity::continuity(), mom_coriolisadv::coradcalc(), mom_diag_mediator::diag_update_remap_grids(), mom_hor_visc::horizontal_viscosity(), id_clock_continuity, id_clock_cor, id_clock_horvisc, id_clock_mom_update, id_clock_pass, id_clock_pres, id_clock_vertvisc, mom_checksum_packages::mom_accel_chksum(), mom_open_boundary::open_boundary_zero_normal_flow(), mom_pressureforce::pressureforce(), mom_time_manager::real_to_time(), mom_set_visc::set_viscous_ml(), mom_boundary_update::update_obc_data(), mom_vert_friction::vertvisc(), and mom_vert_friction::vertvisc_coef().
|
private |
CPU time clock IDs.
Definition at line 175 of file MOM_dynamics_unsplit.F90.
Referenced by initialize_dyn_unsplit(), and step_mom_dyn_unsplit().
integer mom_dynamics_unsplit::id_clock_cor |
CPU time clock IDs.
Definition at line 174 of file MOM_dynamics_unsplit.F90.
Referenced by initialize_dyn_unsplit(), and step_mom_dyn_unsplit().
|
private |
CPU time clock IDs.
Definition at line 175 of file MOM_dynamics_unsplit.F90.
Referenced by initialize_dyn_unsplit(), and step_mom_dyn_unsplit().
|
private |
CPU time clock IDs.
Definition at line 175 of file MOM_dynamics_unsplit.F90.
Referenced by initialize_dyn_unsplit(), and step_mom_dyn_unsplit().
|
private |
CPU time clock IDs.
Definition at line 176 of file MOM_dynamics_unsplit.F90.
Referenced by initialize_dyn_unsplit(), and step_mom_dyn_unsplit().
|
private |
CPU time clock IDs.
Definition at line 176 of file MOM_dynamics_unsplit.F90.
Referenced by initialize_dyn_unsplit().
|
private |
CPU time clock IDs.
Definition at line 174 of file MOM_dynamics_unsplit.F90.
Referenced by initialize_dyn_unsplit(), and step_mom_dyn_unsplit().
|
private |
CPU time clock IDs.
Definition at line 174 of file MOM_dynamics_unsplit.F90.
Referenced by initialize_dyn_unsplit(), and step_mom_dyn_unsplit().