Fill a cell-centre |Coriolis| array via metrics_fill_coriolis
(D7). beta_plane (default) is BIT-IDENTICAL to the legacy
EPBL / kappa-shear set_f_centre. The corner output is
discarded here (filled into local scratch).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(config_t), | intent(in) | :: | cfg | |||
| type(ocean_metrics_t), | intent(in) | :: | metrics | |||
| type(hgrid_t), | intent(in) | :: | grid | |||
| real(kind=wp), | intent(out) | :: | f_centre(:,:) |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | private, | allocatable | :: | f_corner_scratch(:,:) |
subroutine fill_coriolis_centre(cfg, metrics, grid, f_centre) !! Fill a cell-centre |Coriolis| array via `metrics_fill_coriolis` !! (D7). beta_plane (default) is BIT-IDENTICAL to the legacy !! EPBL / kappa-shear `set_f_centre`. The corner output is !! discarded here (filled into local scratch). type(config_t), intent(in) :: cfg type(ocean_metrics_t), intent(in) :: metrics type(hgrid_t), intent(in) :: grid real(wp), intent(out) :: f_centre(:, :) real(wp), allocatable :: f_corner_scratch(:, :) allocate (f_corner_scratch(grid%nx_total + 1, grid%ny_total + 1)) call metrics_fill_coriolis(metrics, & parse_coriolis_scheme(cfg%ocean%grid%coriolis_scheme), & cfg%coriolis_f, cfg%ocean%topo%coriolis_beta, & cfg%ocean%topo%coriolis_y_ref, cfg%ocean%grid%omega, & grid, f_corner_scratch, f_centre) deallocate (f_corner_scratch) end subroutine fill_coriolis_centre