Layer→fixed-z* vertical remap (SSH-tracking stretched-depth output
grid). levels(:) are reference interface depths (m, positive-down,
shallow→deep); the deepest is the reference total depth H_ref and the
per-column grid is stretched by col_h / H_ref. Identical to
remap_layer_to_sigma under uniform levels — supply a non-uniform
(fine-near-surface) reference for it to differ. Same conservative
donor-cell overlap; see remap_layer_to_z for the intensive/extensive
contract.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(*), | intent(in) | :: | state_handle | |||
| real(kind=wp), | intent(in) | :: | levels(:) | |||
| real(kind=wp), | intent(in) | :: | layer_buf(:,:,:) | |||
| real(kind=wp), | intent(inout) | :: | output_buf(:,:,:) | |||
| logical, | intent(in) | :: | is_extensive |
subroutine remap_layer_to_zstar(state_handle, levels, layer_buf, output_buf, is_extensive) !! Layer→fixed-z* vertical remap (SSH-tracking stretched-depth output !! grid). `levels(:)` are reference interface depths (m, positive-down, !! shallow→deep); the deepest is the reference total depth H_ref and the !! per-column grid is stretched by `col_h / H_ref`. Identical to !! `remap_layer_to_sigma` under uniform levels — supply a non-uniform !! (fine-near-surface) reference for it to differ. Same conservative !! donor-cell overlap; see `remap_layer_to_z` for the intensive/extensive !! contract. class(*), intent(in) :: state_handle real(wp), intent(in) :: levels(:) real(wp), intent(in) :: layer_buf(:, :, :) real(wp), intent(inout) :: output_buf(:, :, :) logical, intent(in) :: is_extensive select type (state => state_handle) class is (ocean_state_t) call remap_layer_to_vcoord_impl(DIAG_VGRID_ZSTAR, state%multilayer%h_layer, & levels, layer_buf, output_buf, is_extensive, & diag_remap_method, diag_mask_vanished, & DIAG_MISSING_VALUE) end select end subroutine remap_layer_to_zstar