Run tidal mixing over the domain: fill this%kd_int (interface
diffusivity). Call at thermo cadence with the thermo dt.
Outer shim: dereferences the tracer-registry hTr arrays on the
host (the array-of-DT indirection blocks NVHPC device codegen),
then forwards to the column kernel. dt is unused (the steady
diagnostic Kd does not integrate in time) but carried for
signature parity with the other interior closures.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(hgrid_t), | intent(in) | :: | grid | |||
| type(ocean_tidal_mixing_t), | intent(inout) | :: | this | |||
| type(multilayer_state_t), | intent(in) | :: | ms | |||
| real(kind=wp), | intent(in) | :: | dt |
pure subroutine tidal_mixing_compute(grid, this, ms, dt) !! Run tidal mixing over the domain: fill `this%kd_int` (interface !! diffusivity). Call at thermo cadence with the thermo dt. !! Outer shim: dereferences the tracer-registry hTr arrays on the !! host (the array-of-DT indirection blocks NVHPC device codegen), !! then forwards to the column kernel. `dt` is unused (the steady !! diagnostic Kd does not integrate in time) but carried for !! signature parity with the other interior closures. type(hgrid_t), intent(in) :: grid type(ocean_tidal_mixing_t), intent(inout) :: this type(multilayer_state_t), intent(in) :: ms real(wp), intent(in) :: dt if (dt < 0.0_wp) return if (ms%idx_temperature <= 0 .or. ms%idx_salinity <= 0) return call tidal_mixing_column_kernel(grid, this, ms, & ms%tracers(ms%idx_temperature)%hTr, & ms%tracers(ms%idx_salinity)%hTr) end subroutine tidal_mixing_compute