Uniform Cartesian: every length is constant, areaX = dx*dy.
Geography is left at zero (a Cartesian beta-plane has no lat/lon
— the Coriolis fill uses the Cartesian y coordinate, D7). Fills
all ghost rows/columns (constants, trivially). Call
metrics_finalize afterwards.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ocean_metrics_t), | intent(inout) | :: | this | |||
| type(hgrid_t), | intent(in) | :: | grid | |||
| real(kind=wp), | intent(in) | :: | dx | |||
| real(kind=wp), | intent(in) | :: | dy |
subroutine metrics_fill_cartesian(this, grid, dx, dy) !! Uniform Cartesian: every length is constant, `areaX = dx*dy`. !! Geography is left at zero (a Cartesian beta-plane has no lat/lon !! — the Coriolis fill uses the Cartesian y coordinate, D7). Fills !! all ghost rows/columns (constants, trivially). Call !! `metrics_finalize` afterwards. type(ocean_metrics_t), intent(inout) :: this type(hgrid_t), intent(in) :: grid real(wp), intent(in) :: dx, dy this%dxT = dx this%dyT = dy this%dxCu = dx this%dyCu = dy this%dxCv = dx this%dyCv = dy this%dxBu = dx this%dyBu = dy this%dy_cu = dy this%dx_cv = dx this%areaT = dx*dy this%areaCu = dx*dy this%areaCv = dx*dy this%areaBu = dx*dy ! `grid` is part of the generator contract (shapes already come ! from `init(grid)`); cartesian metrics are pure constants so the ! geometry is not re-read here. associate (unused => grid%nx_total) end associate end subroutine metrics_fill_cartesian