metrics_window_all Subroutine

private subroutine metrics_window_all(tile, whole, io, jo)

Cut a tile’s storage window (ghosts included) out of a larger assembled metric set, for every array the supergrid assembler and the fold/periodic ghost fill write: tile%X(i, j) = whole%X(i + io, j + jo). Shared by the decomposed tripolar generator (whole grid) and the decomposed supergrid reader (a full-width row band).

Arguments

Type IntentOptional Attributes Name
type(ocean_metrics_t), intent(inout) :: tile
type(ocean_metrics_t), intent(in) :: whole
integer, intent(in) :: io
integer, intent(in) :: jo

Calls

proc~~metrics_window_all~~CallsGraph proc~metrics_window_all metrics_window_all proc~metrics_window_2d metrics_window_2d proc~metrics_window_all->proc~metrics_window_2d

Called by

proc~~metrics_window_all~~CalledByGraph proc~metrics_window_all metrics_window_all proc~metrics_fill_from_supergrid metrics_fill_from_supergrid proc~metrics_fill_from_supergrid->proc~metrics_window_all proc~metrics_fill_tripolar metrics_fill_tripolar proc~metrics_fill_tripolar->proc~metrics_window_all proc~configure_ocean_metrics configure_ocean_metrics proc~configure_ocean_metrics->proc~metrics_fill_from_supergrid proc~configure_ocean_metrics->proc~metrics_fill_tripolar proc~engine_setup engine_setup proc~engine_setup->proc~configure_ocean_metrics proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup 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~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

Source Code

   subroutine metrics_window_all(tile, whole, io, jo)
      !! Cut a tile's storage window (ghosts included) out of a larger
      !! assembled metric set, for every array the supergrid assembler and
      !! the fold/periodic ghost fill write: `tile%X(i, j) = whole%X(i + io,
      !! j + jo)`.  Shared by the decomposed tripolar generator (whole grid)
      !! and the decomposed supergrid reader (a full-width row band).
      type(ocean_metrics_t), intent(inout) :: tile
      type(ocean_metrics_t), intent(in) :: whole
      integer, intent(in) :: io, jo
      call metrics_window_2d(tile%dxT, whole%dxT, io, jo)
      call metrics_window_2d(tile%dyT, whole%dyT, io, jo)
      call metrics_window_2d(tile%areaT, whole%areaT, io, jo)
      call metrics_window_2d(tile%geolatT, whole%geolatT, io, jo)
      call metrics_window_2d(tile%geolonT, whole%geolonT, io, jo)
      call metrics_window_2d(tile%angle_dx, whole%angle_dx, io, jo)
      call metrics_window_2d(tile%dxCu, whole%dxCu, io, jo)
      call metrics_window_2d(tile%dyCu, whole%dyCu, io, jo)
      call metrics_window_2d(tile%areaCu, whole%areaCu, io, jo)
      call metrics_window_2d(tile%dy_cu, whole%dy_cu, io, jo)
      call metrics_window_2d(tile%dxCv, whole%dxCv, io, jo)
      call metrics_window_2d(tile%dyCv, whole%dyCv, io, jo)
      call metrics_window_2d(tile%areaCv, whole%areaCv, io, jo)
      call metrics_window_2d(tile%dx_cv, whole%dx_cv, io, jo)
      call metrics_window_2d(tile%dxBu, whole%dxBu, io, jo)
      call metrics_window_2d(tile%dyBu, whole%dyBu, io, jo)
      call metrics_window_2d(tile%areaBu, whole%areaBu, io, jo)
      call metrics_window_2d(tile%geolatBu, whole%geolatBu, io, jo)
      call metrics_window_2d(tile%geolonBu, whole%geolonBu, io, jo)
   end subroutine metrics_window_all