MOM6
|
This module contains the routines used to apply sponge layers when using the ALE mode. Applying sponges requires the following: (1) initialize_ALE_sponge (2) set_up_ALE_sponge_field (tracers) and set_up_ALE_sponge_vel_field (vel) (3) apply_ALE_sponge (4) init_ALE_sponge_diags (not being used for now) (5) ALE_sponge_end (not being used for now)
Data Types | |
type | ale_sponge_cs |
SPONGE control structure. More... | |
type | p2d |
type | p3d |
Functions/Subroutines | |
subroutine, public | initialize_ale_sponge (Iresttime, data_h, nz_data, G, param_file, CS) |
This subroutine determines the number of points which are within. More... | |
subroutine, public | init_ale_sponge_diags (Time, G, diag, CS) |
Initialize diagnostics for the ALE_sponge module. More... | |
subroutine, public | set_up_ale_sponge_field (sp_val, G, f_ptr, CS) |
This subroutine stores the reference profile at h points for the variable. More... | |
subroutine, public | set_up_ale_sponge_vel_field (u_val, v_val, G, u_ptr, v_ptr, CS) |
This subroutine stores the reference profile at uand v points for the variable. More... | |
subroutine, public | apply_ale_sponge (h, dt, G, CS) |
This subroutine applies damping to the layers thicknesses, temp, salt and a variety of tracers for every column where there is damping. More... | |
subroutine, public | ale_sponge_end (CS) |
GMM: I could not find where sponge_end is being called, but I am keeping. More... | |
subroutine, public mom_ale_sponge::ale_sponge_end | ( | type(ale_sponge_cs), pointer | CS | ) |
GMM: I could not find where sponge_end is being called, but I am keeping.
Definition at line 447 of file MOM_ALE_sponge.F90.
subroutine, public mom_ale_sponge::apply_ale_sponge | ( | real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(inout) | h, |
real, intent(in) | dt, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(ale_sponge_cs), pointer | CS | ||
) |
This subroutine applies damping to the layers thicknesses, temp, salt and a variety of tracers for every column where there is damping.
[in,out] | g | The ocean's grid structure (in). |
[in,out] | h | Layer thickness, in m (in) |
[in] | dt | The amount of time covered by this call, in s (in). |
cs | A pointer to the control structure for this module that is set by a previous call to initialize_sponge (in). |
Definition at line 360 of file MOM_ALE_sponge.F90.
Referenced by mom_diabatic_driver::diabatic().
subroutine, public mom_ale_sponge::init_ale_sponge_diags | ( | type(time_type), intent(in), target | Time, |
type(ocean_grid_type), intent(in) | G, | ||
type(diag_ctrl), intent(inout), target | diag, | ||
type(ale_sponge_cs), pointer | CS | ||
) |
Initialize diagnostics for the ALE_sponge module.
[in] | g | The ocean's grid structure |
Definition at line 274 of file MOM_ALE_sponge.F90.
Referenced by mom::initialize_mom().
subroutine, public mom_ale_sponge::initialize_ale_sponge | ( | real, dimension(szi_(g),szj_(g)), intent(in) | Iresttime, |
real, dimension(szi_(g),szj_(g),nz_data), intent(in) | data_h, | ||
integer, intent(in) | nz_data, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(param_file_type), intent(in) | param_file, | ||
type(ale_sponge_cs), pointer | CS | ||
) |
This subroutine determines the number of points which are within.
[in] | nz_data | The total number of arbritary layers (in). |
[in] | g | The ocean's grid structure (in). |
[in] | iresttime | The inverse of the restoring time, in s-1 (in). |
[in] | data_h | The thickness to be used in the sponge. It has arbritary layers (in). |
[in] | param_file | A structure indicating the open file to parse for model parameter values (in). |
cs | A pointer that is set to point to the control structure for this module (in/out). |
Definition at line 93 of file MOM_ALE_sponge.F90.
References mom_remapping::initialize_remapping(), and mom_error_handler::mom_error().
Referenced by dense_water_initialization::dense_water_initialize_sponges(), dome2d_initialization::dome2d_initialize_sponges(), and isomip_initialization::isomip_initialize_sponges().
subroutine, public mom_ale_sponge::set_up_ale_sponge_field | ( | real, dimension(szi_(g),szj_(g),cs%nz_data), intent(in) | sp_val, |
type(ocean_grid_type), intent(in) | G, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in), target | f_ptr, | ||
type(ale_sponge_cs), pointer | CS | ||
) |
This subroutine stores the reference profile at h points for the variable.
[in] | g | Grid structure (in). |
cs | Sponge structure (in/out). | |
[in] | sp_val | Field to be used in the sponge, it has arbritary number of layers (in). |
[in] | f_ptr | Pointer to the field to be damped (in). |
Definition at line 288 of file MOM_ALE_sponge.F90.
Referenced by dense_water_initialization::dense_water_initialize_sponges(), dome2d_initialization::dome2d_initialize_sponges(), and isomip_initialization::isomip_initialize_sponges().
subroutine, public mom_ale_sponge::set_up_ale_sponge_vel_field | ( | real, dimension(szib_(g),szj_(g),cs%nz_data), intent(in) | u_val, |
real, dimension(szi_(g),szjb_(g),cs%nz_data), intent(in) | v_val, | ||
type(ocean_grid_type), intent(in) | G, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(in), target | u_ptr, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(in), target | v_ptr, | ||
type(ale_sponge_cs), pointer | CS | ||
) |
This subroutine stores the reference profile at uand v points for the variable.
[in] | g | Grid structure (in). |
cs | Sponge structure (in/out). | |
[in] | u_val | u field to be used in the sponge, it has arbritary number of layers (in). |
[in] | v_val | u field to be used in the sponge, it has arbritary number of layers (in). |
[in] | u_ptr | u pointer to the field to be damped (in). |
[in] | v_ptr | v pointer to the field to be damped (in). |
Definition at line 323 of file MOM_ALE_sponge.F90.