Copy a pre-filled cell-centre Coriolis magnitude |f| (1/s) onto the
MEKE slot, so beta = |grad f| for the Rhines length is live. The
caller (setup) builds f_centre with the same metrics_fill_coriolis
path the Coriolis / VarMix / EPBL slots use (handles beta-plane AND
spherical). Host loop — call after init, before enter_data.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ocean_meke_t), | intent(inout) | :: | this | |||
| type(hgrid_t), | intent(in) | :: | grid | |||
| real(kind=wp), | intent(in) | :: | f_centre(grid%nx_total,grid%ny_total) |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private | :: | i | ||||
| integer, | private | :: | j |
subroutine ocean_meke_set_f_centre(this, grid, f_centre) !! Copy a pre-filled cell-centre Coriolis magnitude |f| (1/s) onto the !! MEKE slot, so `beta = |grad f|` for the Rhines length is live. The !! caller (setup) builds `f_centre` with the same `metrics_fill_coriolis` !! path the Coriolis / VarMix / EPBL slots use (handles beta-plane AND !! spherical). Host loop — call after `init`, before `enter_data`. class(ocean_meke_t), intent(inout) :: this type(hgrid_t), intent(in) :: grid real(wp), intent(in) :: f_centre(grid%nx_total, grid%ny_total) integer :: i, j if (.not. allocated(this%f_centre)) return do j = 1, grid%ny_total do i = 1, grid%nx_total this%f_centre(i, j) = f_centre(i, j) end do end do end subroutine ocean_meke_set_f_centre