mom_ale_sponge module reference

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

More…

Data Types

ale_sponge_cs

ALE sponge control structure.

p2d

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

p3d

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

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/ale_sponge_cs

ALE sponge control structure.

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

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

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

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

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

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

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

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

  • % iresttime_col_v [real(:),pointer] :: 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_h [type( p2d )] :: Grid on which reference data is provided (older code).

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

  • % ref_hv [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_answers_2018 [logical] :: If true, use the order of arithmetic and expressions that recover the answers for remapping from the end of 2018. Otherwise, use more robust forms of the same expressions.

  • % hor_regrid_answers_2018 [logical] :: If true, use the order of arithmetic for horizontal regridding that recovers the answers from the end of 2018. Otherwise, use rotationally symmetric forms of the same expressions.

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

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

  • % reentrant_x [logical] :: grid is reentrant in the x direction

  • % tripolar_n [logical] :: grid is folded at its north edge

type mom_ale_sponge/p2d

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

Type fields
  • % id [integer,private] :: id for FMS external time interpolator

  • % 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.

  • % mask_in [real(:,:),pointer, private] :: pointer to the data mask.

  • % p [real(:,:),pointer, private] :: pointer the data.

  • % h [real(:,:),pointer, private] :: pointer the data grid.

type mom_ale_sponge/p3d

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

Type fields
  • % id [integer,private] :: id for FMS external time interpolator

  • % 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.

  • % mask_in [real(:,:,:),pointer, private] :: pointer to the data mask.

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

  • % h [real(:,:,:),pointer, private] :: pointer to the data grid.