supergrid_ghost_fill_cv Subroutine

private subroutine supergrid_ghost_fill_cv(arr, grid)

Ghost fill for Cv arrays (nx_total, ny_total+1). Physical i-range [ng+1, ng+ni], j-range [ng+1, ng+nj+1].

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: arr(:,:)
type(hgrid_t), intent(in) :: grid

Called by

proc~~supergrid_ghost_fill_cv~~CalledByGraph proc~supergrid_ghost_fill_cv supergrid_ghost_fill_cv proc~metrics_assemble_from_supergrid_arrays metrics_assemble_from_supergrid_arrays proc~metrics_assemble_from_supergrid_arrays->proc~supergrid_ghost_fill_cv proc~engine_setup engine_setup proc~engine_setup->proc~metrics_assemble_from_supergrid_arrays proc~configure_ocean_metrics configure_ocean_metrics proc~engine_setup->proc~configure_ocean_metrics proc~metrics_fill_from_supergrid metrics_fill_from_supergrid proc~metrics_fill_from_supergrid->proc~metrics_assemble_from_supergrid_arrays proc~metrics_fill_tripolar_whole metrics_fill_tripolar_whole proc~metrics_fill_tripolar_whole->proc~metrics_assemble_from_supergrid_arrays proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup proc~configure_ocean_metrics->proc~metrics_fill_from_supergrid proc~metrics_fill_tripolar metrics_fill_tripolar proc~configure_ocean_metrics->proc~metrics_fill_tripolar proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_setup proc~driver_validate driver_validate proc~driver_validate->proc~engine_setup proc~metrics_fill_tripolar->proc~metrics_fill_tripolar_whole proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~complete_ocean_create proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~complete_ocean_create

Variables

Type Visibility Attributes Name Initial
integer, private :: i
integer, private :: j
integer, private :: ng
integer, private :: nx
integer, private :: ny

Source Code

   subroutine supergrid_ghost_fill_cv(arr, grid)
      !! Ghost fill for Cv arrays `(nx_total, ny_total+1)`.
      !! Physical i-range `[ng+1, ng+ni]`, j-range `[ng+1, ng+nj+1]`.
      real(wp), intent(inout) :: arr(:, :)
      type(hgrid_t), intent(in) :: grid
      integer :: ng, nx, ny, i, j
      ng = grid%nghost
      nx = grid%nx_phys
      ny = grid%ny_phys
      ! west/east ghost columns
      do j = 1, size(arr, 2)
         do i = 1, ng
            arr(i, j) = arr(ng + 1, j)
            arr(ng + nx + i, j) = arr(ng + nx, j)
         end do
      end do
      ! south/north ghost rows
      do j = 1, ng
         do i = 1, size(arr, 1)
            arr(i, j) = arr(i, ng + 1)
            arr(i, ng + ny + 1 + j) = arr(i, ng + ny + 1)
         end do
      end do
   end subroutine supergrid_ghost_fill_cv