In-situ density (kg/m^3): multilayer%rho_layer, same shape as
h_layer. Filled by the EOS each thermo step (and by every P2
setter that touches T/S/h).
| 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_rho_layer_ptr(c_handle, ptr, nx, ny, nz, gen) result(status) & bind(c, name="rdb_ocean_get_rho_layer_ptr") !! In-situ density (kg/m^3): `multilayer%rho_layer`, same shape as !! `h_layer`. Filled by the EOS each thermo step (and by every P2 !! setter that touches T/S/h). 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%multilayer%rho_layer call fill_getter_3d(ptr, nx, ny, nz, gen, tmp, h%state%dyn%outer_step_count) end function rdb_ocean_get_rho_layer_ptr