coord_hycom module reference

Regrid columns for the HyCOM coordinate.

More…

Data Types

hycom_cs

Control structure containing required parameters for the HyCOM coordinate.

Functions/Subroutines

init_coord_hycom()

Initialise a hycom_CS with pointers to parameters.

end_coord_hycom()

This subroutine deallocates memory in the control structure for the coord_hycom() module.

set_hycom_params()

This subroutine can be used to set the parameters for the coord_hycom() module.

build_hycom1_column()

Build a HyCOM coordinate column.

build_hycom1_target_anomaly()

Calculate interface density anomaly w.r.t.

Detailed Description

Regrid columns for the HyCOM coordinate.

Type Documentation

type coord_hycom/hycom_cs

Control structure containing required parameters for the HyCOM coordinate.

Type fields:
  • % nk [integer] :: Number of layers/levels in generated grid.

  • % coordinateresolution [real(:),allocatable] :: Nominal near-surface resolution [Z ~> m].

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

  • % max_interface_depths [real(:),allocatable] :: Maximum depths of interfaces [H ~> m or kg m-2].

  • % max_layer_thickness [real(:),allocatable] :: Maximum thicknesses of layers [H ~> m or kg m-2].

  • % only_improves [logical] :: If true, an interface only moves if it improves the density fit.

  • % interp_cs [type( interp_cs_type )] :: Interpolation control structure.

Function/Subroutine Documentation

subroutine coord_hycom/init_coord_hycom(CS, nk, coordinateResolution, target_density, interp_CS)

Initialise a hycom_CS with pointers to parameters.

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

  • nk :: [in] Number of layers in generated grid

  • coordinateresolution :: [in] Nominal near-surface resolution [Z ~> m]

  • target_density :: [in] Interface target densities [R ~> kg m-3]

  • interp_cs :: [in] Controls for interpolation

Call to:

mom_error_handler::mom_error

Called from:

mom_regridding::initcoord

subroutine coord_hycom/end_coord_hycom(CS)

This subroutine deallocates memory in the control structure for the coord_hycom() module. module.

Parameters:

cs :: Coordinate control structure

Called from:

mom_regridding::end_regridding

subroutine coord_hycom/set_hycom_params(CS, max_interface_depths, max_layer_thickness, only_improves, interp_CS)

This subroutine can be used to set the parameters for the coord_hycom() module. module.

Parameters:
  • cs :: Coordinate control structure

  • max_interface_depths :: [in] Maximum depths of interfaces [H ~> m or kg m-2]

  • max_layer_thickness :: [in] Maximum thicknesses of layers [H ~> m or kg m-2]

  • only_improves :: [in] If true, an interface only moves if it improves the density fit

  • interp_cs :: [in] Controls for interpolation

Call to:

mom_error_handler::mom_error

Called from:

mom_regridding::initialize_regridding mom_regridding::set_regrid_max_depths mom_regridding::set_regrid_max_thickness mom_regridding::set_regrid_params

subroutine coord_hycom/build_hycom1_column(CS, remapCS, eqn_of_state, nz, depth, h, T, S, p_col, z_col, z_col_new, zScale, h_neglect, h_neglect_edge)

Build a HyCOM coordinate column.

Parameters:
  • cs :: [in] Coordinate control structure

  • remapcs :: [in] Remapping parameters and options

  • eqn_of_state :: [in] Equation of state structure

  • nz :: [in] Number of levels

  • depth :: [in] Depth of ocean bottom (positive [H ~> m or kg m-2])

  • t :: [in] Temperature of column [C ~> degC]

  • s :: [in] Salinity of column [S ~> ppt]

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

  • p_col :: [in] Layer pressure [R L2 T-2 ~> Pa]

  • z_col :: [in] Interface positions relative to the surface [H ~> m or kg m-2]

  • z_col_new :: [inout] Absolute positions of interfaces [H ~> m or kg m-2]

  • zscale :: [in] Scaling factor from the input coordinate thicknesses in [Z ~> m] to desired units for zInterface, perhaps GVZ_to_H in which case this has units of [H Z-1 ~> nondim or kg m-3]

  • h_neglect :: [in] A negligibly small width for the purpose of cell reconstruction [H ~> m or kg m-2]

  • h_neglect_edge :: [in] A negligibly small width for the purpose of edge value calculation [H ~> m or kg m-2]

Call to:

build_hycom1_target_anomaly mom_remapping::remapping_core_h

Called from:

mom_regridding::build_grid_hycom1

subroutine coord_hycom/build_hycom1_target_anomaly(CS, remapCS, eqn_of_state, nz, depth, h, T, S, p_col, R, RiAnom, h_neglect, h_neglect_edge)

Calculate interface density anomaly w.r.t. the target.

Parameters:
  • cs :: [in] Coordinate control structure

  • remapcs :: [in] Remapping parameters and options

  • eqn_of_state :: [in] Equation of state structure

  • nz :: [in] Number of levels

  • depth :: [in] Depth of ocean bottom (positive [H ~> m or kg m-2])

  • t :: [in] Temperature of column [C ~> degC]

  • s :: [in] Salinity of column [S ~> ppt]

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

  • p_col :: [in] Layer pressure [R L2 T-2 ~> Pa]

  • r :: [out] Layer density [R ~> kg m-3]

  • rianom :: [out] The interface density anomaly w.r.t. the interface target densities [R ~> kg m-3]

  • h_neglect :: [in] A negligibly small width for the purpose of cell reconstruction [H ~> m or kg m-2]

  • h_neglect_edge :: [in] A negligibly small width for the purpose of edge value calculation [H ~> m or kg m-2]

Called from:

build_hycom1_column