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(:,:,:),pointer, private] :: pointer to the data [various]

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

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(:,:),pointer, private] :: pointer to the data [various]

  • % dz [real(:,:),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.

type mom_ale_sponge/ale_sponge_cs

ALE sponge control structure.

Type fields:
  • % id_sp_tendency [integer(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(:),allocatable] :: Array of the i-indices of each tracer column being damped.

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

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

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

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

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

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

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

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

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

  • % ref_val [type( p2d )(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.