Vertical salt (+ every passive tracer) diffusivity (m^2/s):
vmix%ks, shape (nx_total, ny_total, nz_ml+1) (layer
INTERFACES). ks ≡ kt unless &ocean_ddiff_nml double diffusion
is enabled.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | intent(in), | value | :: | c_handle | ||
| type(c_ptr), | intent(out) | :: | ptr | |||
| integer(kind=c_int), | intent(out) | :: | nx | |||
| integer(kind=c_int), | intent(out) | :: | ny | |||
| integer(kind=c_int), | intent(out) | :: | nz | |||
| integer(kind=c_int), | intent(out) | :: | gen |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(ocean_handle_t), | private, | pointer | :: | h | |||
| real(kind=wp), | private, | pointer | :: | tmp(:,:,:) |
function rdb_ocean_get_ks_ptr(c_handle, ptr, nx, ny, nz, gen) result(status) & bind(c, name="rdb_ocean_get_ks_ptr") !! Vertical salt (+ every passive tracer) diffusivity (m^2/s): !! `vmix%ks`, shape `(nx_total, ny_total, nz_ml+1)` (layer !! INTERFACES). `ks ≡ kt` unless `&ocean_ddiff_nml` double diffusion !! is enabled. type(c_ptr), intent(in), value :: c_handle type(c_ptr), intent(out) :: ptr integer(c_int), intent(out) :: nx, ny, nz, gen integer(c_int) :: status type(ocean_handle_t), pointer :: h real(wp), pointer :: tmp(:, :, :) ptr = c_null_ptr nx = 0 ny = 0 nz = 0 gen = 0 status = resolve_ocean(c_handle, h) if (status /= OCEAN_STATUS_OK) return tmp => h%state%vmix%ks call fill_getter_3d(ptr, nx, ny, nz, gen, tmp, h%state%dyn%outer_step_count) end function rdb_ocean_get_ks_ptr