MOM6
|
Regrid columns for the SLight coordinate.
Data Types | |
type | slight_cs |
Control structure containing required parameters for the SLight coordinate. More... | |
Functions/Subroutines | |
subroutine, public | init_coord_slight (CS, nk, ref_pressure, target_density, interp_CS, m_to_H, rho_scale) |
Initialise a slight_CS with pointers to parameters. More... | |
subroutine, public | end_coord_slight (CS) |
This subroutine deallocates memory in the control structure for the coord_slight module. More... | |
subroutine, public | set_slight_params (CS, max_interface_depths, max_layer_thickness, min_thickness, compressibility_fraction, dz_ml_min, nz_fixed_surface, Rho_ML_avg_depth, nlay_ML_offset, fix_haloclines, halocline_filter_length, halocline_strat_tol, interp_CS) |
This subroutine can be used to set the parameters for the coord_slight module. More... | |
subroutine, public | build_slight_column (CS, eqn_of_state, H_to_Pa, H_subroundoff, nz, depth, h_col, T_col, S_col, p_col, z_col, z_col_new, h_neglect, h_neglect_edge) |
Build a SLight coordinate column. More... | |
subroutine | rho_interfaces_col (rho_col, h_col, z_col, rho_tgt, nz, z_col_new, CS, reliable, debug, h_neglect, h_neglect_edge) |
Finds the new interface locations in a column of water that match the prescribed target densities. More... | |
subroutine, public coord_slight::build_slight_column | ( | type(slight_cs), intent(in) | CS, |
type(eos_type), pointer | eqn_of_state, | ||
real, intent(in) | H_to_Pa, | ||
real, intent(in) | H_subroundoff, | ||
integer, intent(in) | nz, | ||
real, intent(in) | depth, | ||
real, dimension(nz), intent(in) | h_col, | ||
real, dimension(nz), intent(in) | T_col, | ||
real, dimension(nz), intent(in) | S_col, | ||
real, dimension(nz), intent(in) | p_col, | ||
real, dimension(nz+1), intent(in) | z_col, | ||
real, dimension(nz+1), intent(inout) | z_col_new, | ||
real, intent(in), optional | h_neglect, | ||
real, intent(in), optional | h_neglect_edge | ||
) |
Build a SLight coordinate column.
[in] | cs | Coordinate control structure |
eqn_of_state | Equation of state structure | |
[in] | h_to_pa | GVH_to_Pa |
[in] | h_subroundoff | GVH_subroundoff |
[in] | nz | Number of levels |
[in] | depth | Depth of ocean bottom (positive [H ~> m or kg m-2]) |
[in] | t_col | T for column |
[in] | s_col | S for column |
[in] | h_col | Layer thicknesses [H ~> m or kg m-2] |
[in] | p_col | Layer quantities |
[in] | z_col | Interface positions relative to the surface [H ~> m or kg m-2] |
[in,out] | z_col_new | Absolute positions of interfaces [H ~> m or kg m-2] |
[in] | h_neglect | A negligibly small width for the purpose of cell reconstructions [H ~> m or kg m-2]. |
[in] | h_neglect_edge | A negligibly small width for the purpose of edge value calculations [H ~> m or kg m-2]. |
Definition at line 188 of file coord_slight.F90.
References mom_error_handler::mom_error(), and rho_interfaces_col().
Referenced by mom_regridding::build_grid_slight().
subroutine, public coord_slight::end_coord_slight | ( | type(slight_cs), pointer | CS | ) |
This subroutine deallocates memory in the control structure for the coord_slight module.
cs | Coordinate control structure |
Definition at line 110 of file coord_slight.F90.
Referenced by mom_regridding::end_regridding().
subroutine, public coord_slight::init_coord_slight | ( | type(slight_cs), pointer | CS, |
integer, intent(in) | nk, | ||
real, intent(in) | ref_pressure, | ||
real, dimension(:), intent(in) | target_density, | ||
type(interp_cs_type), intent(in) | interp_CS, | ||
real, intent(in), optional | m_to_H, | ||
real, intent(in), optional | rho_scale | ||
) |
Initialise a slight_CS with pointers to parameters.
cs | Unassociated pointer to hold the control structure | |
[in] | nk | Number of layers in the grid |
[in] | ref_pressure | Coordinate reference pressure [Pa] |
[in] | target_density | Nominal density of interfaces [kg m-3] |
[in] | interp_cs | Controls for interpolation |
[in] | m_to_h | A conversion factor from m to the units of thicknesses |
[in] | rho_scale | A dimensional scaling factor for target_density |
Definition at line 76 of file coord_slight.F90.
References mom_error_handler::mom_error().
Referenced by mom_regridding::initcoord().
|
private |
Finds the new interface locations in a column of water that match the prescribed target densities.
[in] | nz | Number of layers |
[in] | rho_col | Initial layer reference densities. |
[in] | h_col | Initial layer thicknesses. |
[in] | z_col | Initial interface heights. |
[in] | rho_tgt | Interface target densities. |
[in,out] | z_col_new | New interface heights. |
[in] | cs | Coordinate control structure |
[in,out] | reliable | If true, the interface positions are well defined from a stable region. |
[in] | debug | If present and true, do debugging checks. |
[in] | h_neglect | A negligibly small width for the purpose of cell reconstructions in the same units as h_col. |
[in] | h_neglect_edge | A negligibly small width for the purpose of edge value calculations in the same units as h_col. |
Definition at line 494 of file coord_slight.F90.
References mom_error_handler::mom_error(), regrid_interp::nr_iterations, and regrid_interp::nr_tolerance.
Referenced by build_slight_column().
subroutine, public coord_slight::set_slight_params | ( | type(slight_cs), pointer | CS, |
real, dimension(:), intent(in), optional | max_interface_depths, | ||
real, dimension(:), intent(in), optional | max_layer_thickness, | ||
real, intent(in), optional | min_thickness, | ||
real, intent(in), optional | compressibility_fraction, | ||
real, intent(in), optional | dz_ml_min, | ||
integer, intent(in), optional | nz_fixed_surface, | ||
real, intent(in), optional | Rho_ML_avg_depth, | ||
real, intent(in), optional | nlay_ML_offset, | ||
logical, intent(in), optional | fix_haloclines, | ||
real, intent(in), optional | halocline_filter_length, | ||
real, intent(in), optional | halocline_strat_tol, | ||
type(interp_cs_type), intent(in), optional | interp_CS | ||
) |
This subroutine can be used to set the parameters for the coord_slight module.
cs | Coordinate control structure | |
[in] | max_interface_depths | Maximum depths of interfaces [H ~> m or kg m-2] |
[in] | max_layer_thickness | Maximum thicknesses of layers [H ~> m or kg m-2] |
[in] | min_thickness | Minimum thickness allowed when building the new grid through regridding [H ~> m or kg m-2] |
[in] | compressibility_fraction | Fraction (between 0 and 1) of compressibility to add to potential density profiles when interpolating for target grid positions. [nondim] |
[in] | dz_ml_min | The fixed resolution in the topmost SLight_nkml_min layers [H ~> m or kg m-2] |
[in] | nz_fixed_surface | The number of fixed-thickness layers at the top of the model |
[in] | rho_ml_avg_depth | Depth over which to average to determine the mixed layer potential density [H ~> m or kg m-2] |
[in] | nlay_ml_offset | Number of layers to offset the mixed layer density to find resolved stratification [nondim] |
[in] | fix_haloclines | If true, detect regions with much weaker than based on in-situ density, and use a stretched coordinate there. |
[in] | halocline_filter_length | A length scale over which to filter T & S when looking for spuriously unstable water mass profiles [H ~> m or kg m-2]. |
[in] | halocline_strat_tol | A value of the stratification ratio that defines a problematic halocline region [nondim]. |
[in] | interp_cs | Controls for interpolation |
Definition at line 123 of file coord_slight.F90.
References mom_error_handler::mom_error().
Referenced by mom_regridding::set_regrid_max_depths(), mom_regridding::set_regrid_max_thickness(), and mom_regridding::set_regrid_params().