ocean_data_input_register_segment_2d Subroutine

public subroutine ocean_data_input_register_segment_2d(this, file, var, grid, edge, dest_n1, dest_n2, id, time_mode, cycle_period, t_offset, t_scale, scale, add_offset, oor, ierr)

Register a 2-D OBC-segment field. The degenerate horizontal axis (x for west/east, y for south/north) reads as start=1, count=1; the along-edge axis slices from the global index range exactly as register_2d does. dest_i0/dest_j0 are implied by edge (degenerate axis -> index 1; along-edge axis -> grid%nghost + 1) — not arguments (see module docstring).

Arguments

Type IntentOptional Attributes Name
class(ocean_data_input_t), intent(inout) :: this
character(len=*), intent(in) :: file
character(len=*), intent(in) :: var
type(hgrid_t), intent(in) :: grid
integer, intent(in) :: edge
integer, intent(in) :: dest_n1
integer, intent(in) :: dest_n2
integer, intent(out) :: id
character(len=*), intent(in), optional :: time_mode
real(kind=wp), intent(in), optional :: cycle_period
real(kind=wp), intent(in), optional :: t_offset
real(kind=wp), intent(in), optional :: t_scale
real(kind=wp), intent(in), optional :: scale
real(kind=wp), intent(in), optional :: add_offset
integer, intent(in), optional :: oor
integer, intent(out), optional :: ierr

Calls

proc~~ocean_data_input_register_segment_2d~~CallsGraph proc~ocean_data_input_register_segment_2d ocean_data_input_register_segment_2d proc~register_common register_common proc~ocean_data_input_register_segment_2d->proc~register_common proc~segment_geometry segment_geometry proc~ocean_data_input_register_segment_2d->proc~segment_geometry error error proc~register_common->error nf90_inq_varid nf90_inq_varid proc~register_common->nf90_inq_varid nf90_inquire_dimension nf90_inquire_dimension proc~register_common->nf90_inquire_dimension nf90_inquire_variable nf90_inquire_variable proc~register_common->nf90_inquire_variable proc~data_input_read_slab_impl data_input_read_slab_impl proc~register_common->proc~data_input_read_slab_impl proc~data_input_time_mode_from_string data_input_time_mode_from_string proc~register_common->proc~data_input_time_mode_from_string proc~data_input_time_scale_from_units data_input_time_scale_from_units proc~register_common->proc~data_input_time_scale_from_units proc~dims_geometry_ok dims_geometry_ok proc~register_common->proc~dims_geometry_ok proc~fail fail proc~register_common->proc~fail proc~nc_check nc_check proc~register_common->proc~nc_check proc~nc_close nc_close proc~register_common->proc~nc_close proc~nc_get_att_text nc_get_att_text proc~register_common->proc~nc_get_att_text proc~nc_get_var_1d nc_get_var_1d proc~register_common->proc~nc_get_var_1d proc~nc_open_read nc_open_read proc~register_common->proc~nc_open_read proc~reg_io_ok reg_io_ok proc~register_common->proc~reg_io_ok proc~resolve_time_var resolve_time_var proc~register_common->proc~resolve_time_var to_string to_string proc~register_common->to_string proc~segment_geometry->proc~fail proc~segment_geometry->to_string proc~data_input_workspace_ensure data_input_workspace_ensure proc~data_input_read_slab_impl->proc~data_input_workspace_ensure proc~nc_get_var_slab_3d nc_get_var_slab_3d proc~data_input_read_slab_impl->proc~nc_get_var_slab_3d proc~data_input_time_mode_from_string->error to_lower to_lower proc~data_input_time_mode_from_string->to_lower proc~data_input_time_scale_from_units->to_lower proc~fail->error proc~error_ring_push error_ring_push proc~fail->proc~error_ring_push proc~nc_check->proc~fail nf90_strerror nf90_strerror proc~nc_check->nf90_strerror proc~nc_close->proc~nc_check nf90_close nf90_close proc~nc_close->nf90_close nf90_get_att nf90_get_att proc~nc_get_att_text->nf90_get_att proc~nc_get_var_1d->proc~nc_check nf90_get_var nf90_get_var proc~nc_get_var_1d->nf90_get_var proc~nc_open_read->proc~nc_check nf90_open nf90_open proc~nc_open_read->nf90_open proc~reg_io_ok->proc~nc_close proc~resolve_time_var->nf90_inq_varid proc~resolve_time_var->nf90_inquire_dimension proc~nc_get_var_slab_3d->proc~nc_check proc~nc_get_var_slab_3d->nf90_get_var

Variables

Type Visibility Attributes Name Initial
integer, private :: di0
integer, private :: dj0
integer, private :: i0
integer, private :: j0
integer, private :: nx
integer, private :: ny

Source Code

   subroutine ocean_data_input_register_segment_2d(this, file, var, grid, edge, &
                                                   dest_n1, dest_n2, id, time_mode, &
                                                   cycle_period, t_offset, t_scale, &
                                                   scale, add_offset, oor, ierr)
      !! Register a 2-D OBC-segment field.  The degenerate horizontal
      !! axis (x for west/east, y for south/north) reads as `start=1,
      !! count=1`; the along-edge axis slices from the global index
      !! range exactly as `register_2d` does.  `dest_i0`/`dest_j0` are
      !! implied by `edge` (degenerate axis -> index 1; along-edge axis
      !! -> `grid%nghost + 1`) — not arguments (see module docstring).
      class(ocean_data_input_t), intent(inout) :: this
      character(len=*), intent(in) :: file, var
      type(hgrid_t), intent(in) :: grid
      integer, intent(in) :: edge, dest_n1, dest_n2
      integer, intent(out) :: id
      character(len=*), intent(in), optional :: time_mode
      real(wp), intent(in), optional :: cycle_period, t_offset, t_scale, scale, add_offset
      integer, intent(in), optional :: oor
      integer, intent(out), optional :: ierr

      integer :: i0, j0, nx, ny, di0, dj0

      call segment_geometry(grid, edge, i0, j0, nx, ny, di0, dj0, ierr=ierr)
      if (present(ierr)) then
         if (ierr /= OCEAN_STATUS_OK) return
      end if
      call register_common(this, file, var, .false., i0, j0, nx, ny, 1, &
                           di0, dj0, dest_n1, dest_n2, 1, &
                           time_mode, cycle_period, t_offset, t_scale, scale, add_offset, oor, id, &
                           edge=edge, ierr=ierr)
   end subroutine ocean_data_input_register_segment_2d