ocean_data_input_register_segment_3d Subroutine

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

3-D twin of register_segment_2d (PR-22 OBC segment files).

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) :: nz_src
integer, intent(in) :: dest_n1
integer, intent(in) :: dest_n2
integer, intent(in) :: dest_n3
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_3d~~CallsGraph proc~ocean_data_input_register_segment_3d ocean_data_input_register_segment_3d proc~register_common register_common proc~ocean_data_input_register_segment_3d->proc~register_common proc~segment_geometry segment_geometry proc~ocean_data_input_register_segment_3d->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_3d(this, file, var, grid, edge, nz_src, &
                                                   dest_n1, dest_n2, dest_n3, id, time_mode, &
                                                   cycle_period, t_offset, t_scale, &
                                                   scale, add_offset, oor, ierr)
      !! 3-D twin of `register_segment_2d` (PR-22 OBC segment files).
      class(ocean_data_input_t), intent(inout) :: this
      character(len=*), intent(in) :: file, var
      type(hgrid_t), intent(in) :: grid
      integer, intent(in) :: edge, nz_src, dest_n1, dest_n2, dest_n3
      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, .true., i0, j0, nx, ny, nz_src, &
                           di0, dj0, dest_n1, dest_n2, dest_n3, &
                           time_mode, cycle_period, t_offset, t_scale, scale, add_offset, oor, id, &
                           edge=edge, ierr=ierr)
   end subroutine ocean_data_input_register_segment_3d