remap_layer_to_zstar Subroutine

public 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.

Arguments

Type IntentOptional 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

Calls

proc~~remap_layer_to_zstar~~CallsGraph proc~remap_layer_to_zstar remap_layer_to_zstar proc~remap_layer_to_vcoord_impl remap_layer_to_vcoord_impl proc~remap_layer_to_zstar->proc~remap_layer_to_vcoord_impl local local proc~remap_layer_to_vcoord_impl->local proc~remap_column remap_column proc~remap_layer_to_vcoord_impl->proc~remap_column rdb_vl_is_live rdb_vl_is_live proc~remap_layer_to_vcoord_impl->rdb_vl_is_live proc~remap_column_pcm remap_column_pcm proc~remap_column->proc~remap_column_pcm proc~remap_column_plm remap_column_plm proc~remap_column->proc~remap_column_plm proc~remap_column_ppm remap_column_ppm proc~remap_column->proc~remap_column_ppm proc~remap_column_ppm_h4 remap_column_ppm_h4 proc~remap_column->proc~remap_column_ppm_h4 proc~remap_column_pqm remap_column_pqm proc~remap_column->proc~remap_column_pqm proc~boundary_half_jump boundary_half_jump proc~remap_column_plm->proc~boundary_half_jump proc~plm_slope_nonuniform plm_slope_nonuniform proc~remap_column_plm->proc~plm_slope_nonuniform proc~remap_column_ppm->proc~remap_column_plm proc~remap_column_ppm->proc~boundary_half_jump proc~ppm_edge_nonuniform ppm_edge_nonuniform proc~remap_column_ppm->proc~ppm_edge_nonuniform proc~ppm_edge_two_cell ppm_edge_two_cell proc~remap_column_ppm->proc~ppm_edge_two_cell proc~ppm_jump_nonuniform ppm_jump_nonuniform proc~remap_column_ppm->proc~ppm_jump_nonuniform proc~remap_column_ppm_h4->proc~remap_column_plm proc~remap_column_ppm_h4->proc~boundary_half_jump proc~remap_column_pqm->proc~remap_column_ppm proc~remap_column_pqm->proc~boundary_half_jump proc~pqm_end_value_h4 pqm_end_value_h4 proc~remap_column_pqm->proc~pqm_end_value_h4 proc~pqm_solve_diag_dominant pqm_solve_diag_dominant proc~remap_column_pqm->proc~pqm_solve_diag_dominant

Source Code

   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