zfixed_cavity_nu_h_below_envelope Function

public pure function zfixed_cavity_nu_h_below_envelope(cfg) result(below)

Uses

  • proc~~zfixed_cavity_nu_h_below_envelope~~UsesGraph proc~zfixed_cavity_nu_h_below_envelope zfixed_cavity_nu_h_below_envelope module~rdb_constants rdb_constants proc~zfixed_cavity_nu_h_below_envelope->module~rdb_constants module~rdb_vcoord rdb_vcoord proc~zfixed_cavity_nu_h_below_envelope->module~rdb_vcoord pic_types pic_types module~rdb_constants->pic_types module~rdb_vcoord->module~rdb_constants pic_logger pic_logger module~rdb_vcoord->pic_logger pic_strings pic_strings module~rdb_vcoord->pic_strings

Is the constant harmonic viscosity below the z_fixed x cavity lower envelope ZFIXED_CAVITY_NU_H_MIN? The predicate behind validate_config’s WARNING (never a refusal — the vcoord stability matrix runs this combination inviscid on purpose).

The envelope is measured, not derived. ISOMIP+ Ocean0 idealised at 2 km, z_fixed + zfixed_closed_faces, melt off, 30 days (cavity_rest_growth_diagnosis.md §Q.3/§Q.0 item 7): nu_h = 0 grows EXPONENTIALLY at 0.180 /day (d15-30) and accelerating (0.142 -> 0.220 /day, d15-20 -> d25-30; En(30 d) = 1.44E-06), nu_h = 2 decelerates (0.092 -> 0.068 /day, d5-10 -> d25-30; 1.12E-07), the protocol’s 6 gives 5.63E-08 (V100, v0.1.0 defaults: bebt = 0.1, renorm_consistent_flux, I1’). The inviscid mode is arrested somewhere in 0 < nu_h < 2; the bracket below 2 was not refined, so 2 is the bound of record.

.false. whenever the cavity is off or the coordinate is not z_fixed, so it cannot fire on any other configuration.

Arguments

Type IntentOptional Attributes Name
type(config_t), intent(in) :: cfg

Return Value logical


Calls

proc~~zfixed_cavity_nu_h_below_envelope~~CallsGraph proc~zfixed_cavity_nu_h_below_envelope zfixed_cavity_nu_h_below_envelope proc~parse_vcoord_type parse_vcoord_type proc~zfixed_cavity_nu_h_below_envelope->proc~parse_vcoord_type

Called by

proc~~zfixed_cavity_nu_h_below_envelope~~CalledByGraph proc~zfixed_cavity_nu_h_below_envelope zfixed_cavity_nu_h_below_envelope proc~validate_config validate_config proc~validate_config->proc~zfixed_cavity_nu_h_below_envelope proc~build_pending_handle build_pending_handle proc~build_pending_handle->proc~validate_config proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~build_pending_handle proc~rdb_ocean_create_pending rdb_ocean_create_pending proc~rdb_ocean_create_pending->proc~build_pending_handle

Source Code

   pure function zfixed_cavity_nu_h_below_envelope(cfg) result(below)
      !! Is the constant harmonic viscosity below the `z_fixed` x cavity
      !! lower envelope `ZFIXED_CAVITY_NU_H_MIN`?  The predicate behind
      !! `validate_config`'s WARNING (never a refusal — the vcoord
      !! stability matrix runs this combination inviscid on purpose).
      !!
      !! The envelope is measured, not derived.  ISOMIP+ Ocean0 idealised
      !! at 2 km, `z_fixed` + `zfixed_closed_faces`, melt off, 30 days
      !! (`cavity_rest_growth_diagnosis.md` §Q.3/§Q.0 item 7):
      !! `nu_h = 0` grows EXPONENTIALLY at `0.180 /day` (d15-30) and
      !! accelerating (0.142 -> 0.220 /day, d15-20 -> d25-30;
      !! `En(30 d) = 1.44E-06`), `nu_h = 2` decelerates (0.092 -> 0.068
      !! /day, d5-10 -> d25-30; `1.12E-07`), the protocol's 6 gives
      !! `5.63E-08` (V100, v0.1.0 defaults: bebt = 0.1,
      !! renorm_consistent_flux, I1').  The
      !! inviscid mode is arrested somewhere in `0 < nu_h < 2`; the
      !! bracket below 2 was not refined, so 2 is the bound of record.
      !!
      !! `.false.` whenever the cavity is off or the coordinate is not
      !! `z_fixed`, so it cannot fire on any other configuration.
      use rdb_vcoord, only: parse_vcoord_type
      use rdb_constants, only: VCOORD_EULERIAN_Z, VCOORD_Z_FIXED
      type(config_t), intent(in) :: cfg
      logical :: below
      below = .false.
      if (.not. cfg%ocean%cavity_dyn%enable) return
      if (parse_vcoord_type(cfg%vcoord_type, default_code=VCOORD_EULERIAN_Z) &
          /= VCOORD_Z_FIXED) return
      below = cfg%ocean%hvisc%nu_h < ZFIXED_CAVITY_NU_H_MIN
   end function zfixed_cavity_nu_h_below_envelope