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 | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ocean_metrics_t), | intent(inout) | :: | tile | |||
| type(ocean_metrics_t), | intent(in) | :: | whole | |||
| integer, | intent(in) | :: | io | |||
| integer, | intent(in) | :: | jo |
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