mom_ale_sponge module reference

This module contains the routines used to apply sponge layers when using the ALE mode.

More…

Data Types

p3d

A structure for creating arrays of pointers to 3D arrays with extra gridding information.

p2d

A structure for creating arrays of pointers to 2D arrays with extra gridding information.

ale_sponge_cs

ALE sponge control structure.

Detailed Description

Applying sponges requires the following: #. initialize_ALE_sponge

  1. set_up_ALE_sponge_field (tracers) and set_up_ALE_sponge_vel_field (vel)

  2. apply_ALE_sponge

  3. init_ALE_sponge_diags (not being used for now)

  4. ALE_sponge_end (not being used for now)

Type Documentation

type  mom_ale_sponge/p3d

A structure for creating arrays of pointers to 3D arrays with extra gridding information.

Type fields:
  • % nz_data :: integer, private The number of vertical levels in the input field.

  • % num_tlevs :: integer, private The number of time records contained in the file.

  • % p :: real, dimension(:,:,:), pointer, private pointer to the data [various]

  • % dz :: real, dimension(:,:,:), pointer, private pointer to the data grid spacing [Z ~> m]

[source]

type  mom_ale_sponge/p2d

A structure for creating arrays of pointers to 2D arrays with extra gridding information.

Type fields:
  • % field :: type(external_field), private Time interpolator field handle.

  • % nz_data :: integer, private The number of vertical levels in the input field.

  • % num_tlevs :: integer, private The number of time records contained in the file.

  • % scale :: real, private A multiplicative factor by which to rescale input data [various].

  • % p :: real, dimension(:,:), pointer, private pointer to the data [various]

  • % dz :: real, dimension(:,:), pointer, private pointer to the data grid spacing [Z ~> m]

  • % name :: character(len=:), allocatable, private The name of the input field.

  • % long_name :: character(len=:), allocatable, private The long name of the input field.

  • % unit :: character(len=:), allocatable, private The unit of the input field.

  • % axes_data :: type(axis_info), dimension(:), allocatable, private Axis types for the input field.

[source]

type  mom_ale_sponge/ale_sponge_cs

ALE sponge control structure.

Type fields:
  • % id_sp_tendency :: integer, dimension(50) Diagnostic IDs.

  • % id_sp_u_tendency :: integer Diagnostic id for zonal momentum tendency due to Rayleigh damping.

  • % id_sp_v_tendency :: integer Diagnostic id for meridional momentum tendency due to Rayleigh damping.

  • % nz :: integer The total number of layers.

  • % nz_data :: integer The total number of arbitrary layers (used by older code).

  • % num_col :: integer The number of sponge tracer points within the computational domain.

  • % num_col_u :: integer The number of sponge u-points within the computational domain.

  • % num_col_v :: integer The number of sponge v-points within the computational domain.

  • % fldno :: integer The number of fields which have already been registered by calls to set_up_sponge_field.

  • % sponge_uv :: logical Control whether u and v are included in sponge.

  • % col_i :: integer, dimension(:), allocatable Array of the i-indices of each tracer column being damped.

  • % col_j :: integer, dimension(:), allocatable Array of the j-indices of each tracer column being damped.

  • % col_i_u :: integer, dimension(:), allocatable Array of the i-indices of each u-column being damped.

  • % col_j_u :: integer, dimension(:), allocatable Array of the j-indices of each u-column being damped.

  • % col_i_v :: integer, dimension(:), allocatable Array of the i-indices of each v-column being damped.

  • % col_j_v :: integer, dimension(:), allocatable Array of the j-indices of each v-column being damped.

  • % iresttime_col :: real, dimension(:), allocatable The inverse restoring time of each tracer column [T-1 ~> s-1].

  • % iresttime_col_u :: real, dimension(:), allocatable The inverse restoring time of each u-column [T-1 ~> s-1].

  • % iresttime_col_v :: real, dimension(:), allocatable The inverse restoring time of each v-column [T-1 ~> s-1].

  • % var :: type(p3d), dimension(50) Pointers to the fields that are being damped.

  • % ref_val :: type(p2d), dimension(50) The values to which the fields are damped.

  • % ref_val_u :: type(p2d) The values to which the u-velocities are damped.

  • % ref_val_v :: type(p2d) The values to which the v-velocities are damped.

  • % var_u :: type(p3d) Pointer to the u velocities that are being damped.

  • % var_v :: type(p3d) Pointer to the v velocities that are being damped.

  • % ref_dz :: type(p2d) Grid on which reference data is provided (older code).

  • % ref_dzu :: type(p2d) u-point grid on which reference data is provided (older code).

  • % ref_dzv :: type(p2d) v-point grid on which reference data is provided (older code).

  • % diag :: type(diag_ctrl), pointer A structure that is used to regulate the timing of diagnostic output.

  • % remap_cs :: type(remapping_cs) Remapping parameters and work arrays.

  • % remap_answer_date :: integer The vintage of the order of arithmetic and expressions to use for remapping. Values below 20190101 recover the remapping answers from 2018, while higher values use more robust forms of the same remapping expressions.

  • % hor_regrid_answer_date :: integer The vintage of the order of arithmetic and expressions to use for horizontal regridding. Values below 20190101 recover the answers from 2018, while higher values use expressions that have been rearranged for rotational invariance.

  • % time_varying_sponges :: logical True if using newer sponge code.

  • % spongedataongrid :: logical True if the sponge data are on the model horizontal grid.

  • % varying_input_dz_mask :: real An input file thickness below which the target values with time-varying sponges are replaced by the value above [Z ~> m]. It is not clear why this needs to be greater than 0.

[source]

[source]