remap_layer_to_sigma Subroutine

public subroutine remap_layer_to_sigma(state_handle, levels, layer_buf, output_buf, is_extensive)

Layer→fixed-sigma vertical remap (terrain-following output grid). levels(:) are cumulative sigma fractions (0..1, shallow→deep); the m-th output cell spans [levels(m-1), levels(m)] * col_h. Same conservative donor-cell overlap as remap_layer_to_z; see its docstring 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_sigma~~CallsGraph proc~remap_layer_to_sigma remap_layer_to_sigma proc~remap_layer_to_vcoord_impl remap_layer_to_vcoord_impl proc~remap_layer_to_sigma->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_sigma(state_handle, levels, layer_buf, output_buf, is_extensive)
      !! Layer→fixed-sigma vertical remap (terrain-following output grid).
      !! `levels(:)` are cumulative sigma fractions (0..1, shallow→deep); the
      !! m-th output cell spans `[levels(m-1), levels(m)] * col_h`.  Same
      !! conservative donor-cell overlap as `remap_layer_to_z`; see its
      !! docstring 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_SIGMA, 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_sigma