bt_auto_n_inner_from_dt Function

public pure function bt_auto_n_inner_from_dt(dt_outer, dt_bt_safe) result(n_inner)

Smallest n_inner >= 1 with dt_outer/n_inner <= dt_bt_safe, for an ALREADY-LIMITED safe barotropic substep dt_bt_safe (s) — the per-wet-cell minimum bt_cfl_dt_wet returns, reduced across ranks. bt_auto_n_inner is this with dt_bt_safe formed from a single (c_ext, l_cfl) pair.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: dt_outer

Outer (baroclinic) step (s).

real(kind=wp), intent(in) :: dt_bt_safe

Largest stable barotropic substep, safety factor included (s).

Return Value integer


Called by

proc~~bt_auto_n_inner_from_dt~~CalledByGraph proc~bt_auto_n_inner_from_dt bt_auto_n_inner_from_dt proc~bt_auto_n_inner bt_auto_n_inner proc~bt_auto_n_inner->proc~bt_auto_n_inner_from_dt proc~configure_ocean_bt_split configure_ocean_bt_split proc~configure_ocean_bt_split->proc~bt_auto_n_inner_from_dt proc~engine_setup engine_setup proc~engine_setup->proc~configure_ocean_bt_split proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_setup proc~driver_validate driver_validate proc~driver_validate->proc~engine_setup proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~complete_ocean_create proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~complete_ocean_create

Source Code

   pure function bt_auto_n_inner_from_dt(dt_outer, dt_bt_safe) result(n_inner)
      !! Smallest `n_inner >= 1` with `dt_outer/n_inner <= dt_bt_safe`,
      !! for an ALREADY-LIMITED safe barotropic substep `dt_bt_safe` (s) —
      !! the per-wet-cell minimum `bt_cfl_dt_wet` returns, reduced across
      !! ranks.  `bt_auto_n_inner` is this with `dt_bt_safe` formed from a
      !! single `(c_ext, l_cfl)` pair.
      real(wp), intent(in) :: dt_outer
         !! Outer (baroclinic) step (s).
      real(wp), intent(in) :: dt_bt_safe
         !! Largest stable barotropic substep, safety factor included (s).
      integer :: n_inner
      n_inner = max(1, ceiling(dt_outer/dt_bt_safe))
   end function bt_auto_n_inner_from_dt