MOM6
|
Regrid columns for the continuous isopycnal (rho) coordinate.
Data Types | |
type | rho_cs |
Control structure containing required parameters for the rho coordinate. More... | |
Functions/Subroutines | |
subroutine, public | init_coord_rho (CS, nk, ref_pressure, target_density, interp_CS, rho_scale) |
Initialise a rho_CS with pointers to parameters. More... | |
subroutine, public | end_coord_rho (CS) |
This subroutine deallocates memory in the control structure for the coord_rho module. More... | |
subroutine, public | set_rho_params (CS, min_thickness, integrate_downward_for_e, interp_CS) |
This subroutine can be used to set the parameters for the coord_rho module. More... | |
subroutine, public | build_rho_column (CS, nz, depth, h, T, S, eqn_of_state, z_interface, h_neglect, h_neglect_edge) |
Build a rho coordinate column. More... | |
subroutine | build_rho_column_iteratively (CS, remapCS, nz, depth, h, T, S, eqn_of_state, zInterface, h_neglect, h_neglect_edge) |
Iteratively build a rho coordinate column. More... | |
subroutine | copy_finite_thicknesses (nk, h_in, threshold, nout, h_out, mapping) |
Copy column thicknesses with vanished layers removed. More... | |
subroutine, public | old_inflate_layers_1d (min_thickness, nk, h) |
Inflate vanished layers to finite (nonzero) width. More... | |
Variables | |
integer, parameter | nb_regridding_iterations = 1 |
Maximum number of regridding iterations. More... | |
real, parameter | deviation_tolerance = 1e-10 |
Deviation tolerance between succesive grids in regridding iterations. More... | |
subroutine, public coord_rho::build_rho_column | ( | type(rho_cs), intent(in) | CS, |
integer, intent(in) | nz, | ||
real, intent(in) | depth, | ||
real, dimension(nz), intent(in) | h, | ||
real, dimension(nz), intent(in) | T, | ||
real, dimension(nz), intent(in) | S, | ||
type(eos_type), pointer | eqn_of_state, | ||
real, dimension(cs%nk+1), intent(inout) | z_interface, | ||
real, intent(in), optional | h_neglect, | ||
real, intent(in), optional | h_neglect_edge | ||
) |
Build a rho coordinate column.
[in] | cs | coord_rho control structure |
[in] | nz | Number of levels on source grid (i.e. length of h, T, S) |
[in] | depth | Depth of ocean bottom (positive in m) |
[in] | h | Layer thicknesses [H ~> m or kg m-2] |
[in] | t | T for source column |
[in] | s | S for source column |
eqn_of_state | Equation of state structure | |
[in,out] | z_interface | Absolute positions of interfaces |
[in] | h_neglect | A negligibly small width for the purpose of cell reconstructions in the same units as h0. |
[in] | h_neglect_edge | A negligibly small width for the purpose of edge value calculations in the same units as h0. |
Definition at line 102 of file coord_rho.F90.
References regrid_interp::build_and_interpolate_grid(), copy_finite_thicknesses(), and old_inflate_layers_1d().
Referenced by mom_diag_remap::diag_remap_update().
|
private |
Iteratively build a rho coordinate column.
The algorithm operates as follows within each column:
[in] | cs | Regridding control structure |
[in] | remapcs | Remapping parameters and options |
[in] | nz | Number of levels |
[in] | depth | Depth of ocean bottom [Z ~> m] |
[in] | h | Layer thicknesses in Z coordinates [Z ~> m] |
[in] | t | T for column [degC] |
[in] | s | S for column [ppt] |
eqn_of_state | Equation of state structure | |
[in,out] | zinterface | Absolute positions of interfaces |
[in] | h_neglect | A negligibly small width for the purpose of cell reconstructions in the same units as h [Z ~> m] |
[in] | h_neglect_edge | A negligibly small width for the purpose of edge value calculations in the same units as h [Z ~> m] |
Definition at line 196 of file coord_rho.F90.
References regrid_interp::build_and_interpolate_grid(), copy_finite_thicknesses(), deviation_tolerance, nb_regridding_iterations, old_inflate_layers_1d(), and mom_remapping::remapping_core_h().
|
private |
Copy column thicknesses with vanished layers removed.
[in] | nk | Number of layer for h_in, T_in, S_in |
[in] | h_in | Thickness of input column |
[in] | threshold | Thickness threshold defining vanished layers |
[out] | nout | Number of non-vanished layers |
[out] | h_out | Thickness of output column |
[out] | mapping | Index of k-out corresponding to k-in |
Definition at line 313 of file coord_rho.F90.
Referenced by build_rho_column(), and build_rho_column_iteratively().
subroutine, public coord_rho::end_coord_rho | ( | type(rho_cs), pointer | CS | ) |
This subroutine deallocates memory in the control structure for the coord_rho module.
cs | Coordinate control structure |
Definition at line 71 of file coord_rho.F90.
subroutine, public coord_rho::init_coord_rho | ( | type(rho_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 | rho_scale | ||
) |
Initialise a rho_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 or R ~> kg m-3] |
[in] | interp_cs | Controls for interpolation |
[in] | rho_scale | A dimensional scaling factor for target_density |
Definition at line 50 of file coord_rho.F90.
References mom_error_handler::mom_error().
subroutine, public coord_rho::old_inflate_layers_1d | ( | real, intent(in) | min_thickness, |
integer, intent(in) | nk, | ||
real, dimension(:), intent(inout) | h | ||
) |
Inflate vanished layers to finite (nonzero) width.
[in] | min_thickness | Minimum allowed thickness [H ~> m or kg m-2] |
[in] | nk | Number of layers in the grid |
[in,out] | h | Layer thicknesses [H ~> m or kg m-2] |
Definition at line 357 of file coord_rho.F90.
Referenced by build_rho_column(), build_rho_column_iteratively(), and mom_regridding::inflate_vanished_layers_old().
subroutine, public coord_rho::set_rho_params | ( | type(rho_cs), pointer | CS, |
real, intent(in), optional | min_thickness, | ||
logical, intent(in), optional | integrate_downward_for_e, | ||
type(interp_cs_type), intent(in), optional | interp_CS | ||
) |
This subroutine can be used to set the parameters for the coord_rho module.
cs | Coordinate control structure | |
[in] | min_thickness | Minimum allowed thickness [H ~> m or kg m-2] |
[in] | integrate_downward_for_e | If true, integrate for interface positions from the top downward. If false, integrate from the bottom upward, as does the rest of the model. |
[in] | interp_cs | Controls for interpolation |
Definition at line 81 of file coord_rho.F90.
References mom_error_handler::mom_error().
|
private |
Deviation tolerance between succesive grids in regridding iterations.
Definition at line 42 of file coord_rho.F90.
Referenced by build_rho_column_iteratively().
integer, parameter coord_rho::nb_regridding_iterations = 1 |
Maximum number of regridding iterations.
Definition at line 40 of file coord_rho.F90.
Referenced by build_rho_column_iteratively().