mom_hybgen_unmix module reference

This module contains the hybgen unmixing routines from HYCOM, with modifications to follow the MOM6 coding conventions and several bugs fixed.

More…

Data Types

hybgen_unmix_cs

Control structure containing required parameters for the hybgen coordinate generator.

Functions/Subroutines

init_hybgen_unmix()

Initialise a hybgen_unmix_CS control structure and store its parameters.

end_hybgen_unmix()

This subroutine deallocates memory in the control structure for the hybgen unmixing module.

set_hybgen_unmix_params()

This subroutine can be used to set the parameters for the hybgen module.

hybgen_unmix()

Unmix the properties in the lowest layer with mass if it is too light, and make any other changes to the water column to prepare for regridding.

hybgen_column_unmix()

Unmix the properties in the lowest layer if it is too light.

Detailed Description

This module contains the hybgen unmixing routines from HYCOM, with modifications to follow the MOM6 coding conventions and several bugs fixed.

Type Documentation

type mom_hybgen_unmix/hybgen_unmix_cs

Control structure containing required parameters for the hybgen coordinate generator.

Type fields:
  • % nsigma [integer] :: Number of sigma levels used by HYBGEN.

  • % hybiso [real] :: Hybgen uses PCM if layer is within hybiso of target density [R ~> kg m-3].

  • % dp00i [real] :: Deep isopycnal spacing minimum thickness [H ~> m or kg m-2].

  • % qhybrlx [real] :: Hybgen relaxation amount per thermodynamic time steps [nondim].

  • % dp0k [real(:),allocatable] :: minimum deep z-layer separation [H ~> m or kg m-2]

  • % ds0k [real(:),allocatable] :: minimum shallow z-layer separation [H ~> m or kg m-2]

  • % dpns [real] :: depth to start terrain following [H ~> m or kg m-2]

  • % dsns [real] :: depth to stop terrain following [H ~> m or kg m-2]

  • % min_dilate [real] :: The minimum amount of dilation that is permitted when converting target coordinates from z to z* [nondim]. This limit applies when wetting occurs.

  • % max_dilate [real] :: The maximum amount of dilation that is permitted when converting target coordinates from z to z* [nondim]. This limit applies when drying occurs.

  • % topiso_const [real] :: Shallowest depth for isopycnal layers [H ~> m or kg m-2].

  • % ref_pressure [real] :: Reference pressure for density calculations [R L2 T-2 ~> Pa].

  • % target_density [real(:),allocatable] :: Nominal density of interfaces [R ~> kg m-3].

Function/Subroutine Documentation

subroutine mom_hybgen_unmix/init_hybgen_unmix(CS, GV, US, param_file, hybgen_regridCS)

Initialise a hybgen_unmix_CS control structure and store its parameters.

Parameters:
  • cs :: Unassociated pointer to hold the control structure

  • gv :: [in] Ocean vertical grid structure

  • us :: [in] A dimensional unit scaling type

  • param_file :: [in] Parameter file

  • hybgen_regridcs :: Control structure for hybgen regridding for sharing parameters.

Call to:

mom_hybgen_regrid::get_hybgen_regrid_params mom_error_handler::mom_error

Called from:

mom_ale::ale_init

subroutine mom_hybgen_unmix/end_hybgen_unmix(CS)

This subroutine deallocates memory in the control structure for the hybgen unmixing module.

Parameters:

cs :: Coordinate control structure

Called from:

mom_ale::ale_end

subroutine mom_hybgen_unmix/set_hybgen_unmix_params(CS, min_thickness)

This subroutine can be used to set the parameters for the hybgen module.

Parameters:
  • cs :: Coordinate unmixing control structure

  • min_thickness :: [in] Minimum allowed thickness [H ~> m or kg m-2]

Call to:

mom_error_handler::mom_error

subroutine mom_hybgen_unmix/hybgen_unmix(G, GV, US, CS, tv, Reg, ntr, h)

Unmix the properties in the lowest layer with mass if it is too light, and make any other changes to the water column to prepare for regridding.

Parameters:
  • g :: [in] Ocean grid structure

  • gv :: [in] Ocean vertical grid structure

  • us :: [in] A dimensional unit scaling type

  • cs :: [in] hybgen control structure

  • tv :: [inout] Thermodynamics structure

  • reg :: Tracer registry structure

  • ntr :: [in] The number of tracers in the registry, or 0 if the registry is not in use.

  • h :: [inout] Layer thicknesses [H ~> m or kg m-2]

Call to:

mom_interface_heights::calc_derived_thermo hybgen_column_unmix mom_error_handler::mom_error

Called from:

mom_ale::pre_ale_adjustments

subroutine mom_hybgen_unmix/hybgen_column_unmix(CS, nk, Rcv_tgt, temp, saln, Rcv, eqn_of_state, ntr, tracer, trcflg, fixlay, qhrlx, h_col, terrain_following, h_thin)

Unmix the properties in the lowest layer if it is too light.

Parameters:
  • cs :: [in] hybgen unmixing control structure

  • nk :: [in] The number of layers

  • fixlay :: [in] deepest fixed coordinate layer

  • qhrlx :: [in] Relaxation fraction per timestep [nondim], < 1.

  • rcv_tgt :: [in] Target potential density [R ~> kg m-3]

  • temp :: [inout] A column of potential temperature [C ~> degC]

  • saln :: [inout] A column of salinity [S ~> ppt]

  • rcv :: [inout] Coordinate potential density [R ~> kg m-3]

  • eqn_of_state :: [in] Equation of state structure

  • ntr :: [in] The number of registered passive tracers

  • tracer :: [inout] Columns of the passive tracers [Conc]

  • trcflg :: [in] Hycom tracer type flag for each tracer

  • h_col :: [inout] Layer thicknesses [H ~> m or kg m-2]

  • terrain_following :: [in] True if this column is terrain following

  • h_thin :: [in] A negligibly small thickness to identify essentially vanished layers [H ~> m or kg m-2]

Called from:

hybgen_unmix