cavity_melt_status_is_fatal Function

public pure function cavity_melt_status_is_fatal(n_nonfinite) result(is_fatal)

Is this step’s status tally a FAIL-LOUD condition?

A non-finite input or intermediate on a covered column means the state feeding the interface is already corrupt; the kernel’s safe state (zero melt) would hide it behind a plausible run. NOT_CONVERGED and NO_PHYSICAL_ROOT are NOT fatal — they are counted and warned, and those columns take the documented zero-melt safe state.

A pure predicate so the test suite can assert the DECISION without provoking error stop, the way the repo tests every other fail-loud rule.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_nonfinite

n_nonfinite_step from cavity_status_counts_impl.

Return Value logical


Called by

proc~~cavity_melt_status_is_fatal~~CalledByGraph proc~cavity_melt_status_is_fatal cavity_melt_status_is_fatal proc~ocean_cavity_flux_step ocean_cavity_flux_step proc~ocean_cavity_flux_step->proc~cavity_melt_status_is_fatal proc~engine_step_finalize engine_step_finalize proc~engine_step_finalize->proc~ocean_cavity_flux_step proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_step_finalize proc~rdb_ocean_step rdb_ocean_step proc~rdb_ocean_step->proc~engine_step_finalize proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean

Source Code

   pure function cavity_melt_status_is_fatal(n_nonfinite) result(is_fatal)
      !! Is this step's status tally a FAIL-LOUD condition?
      !!
      !! A non-finite input or intermediate on a covered column means the
      !! state feeding the interface is already corrupt; the kernel's
      !! safe state (zero melt) would hide it behind a plausible run.
      !! `NOT_CONVERGED` and `NO_PHYSICAL_ROOT` are NOT fatal — they are
      !! counted and warned, and those columns take the documented
      !! zero-melt safe state.
      !!
      !! A `pure` predicate so the test suite can assert the DECISION
      !! without provoking `error stop`, the way the repo tests every
      !! other fail-loud rule.
      integer, intent(in) :: n_nonfinite
         !! `n_nonfinite_step` from `cavity_status_counts_impl`.
      logical :: is_fatal
      is_fatal = (n_nonfinite > 0)
   end function cavity_melt_status_is_fatal